|


|
|
Projeto
e Análise de Algoritmos I (Turmas A e B)

Prof. Pedro J. de Rezende
Segundo
Semestre
de 2012
Links
rápidos:
Novidades - Docente
- Aulas Teóricas - Aulas
de Laboratório - Monitor - Avaliação
e Critérios para Aprovação
Notas - Exercícios
- Tópicos a serem cobertos - Slides
das Aulas - Referências
Bibliográficas - Datas Importantes
Novidades
- Aqui
serão colocados avisos importantes. Consulte esta página
regularmente.
- Estão disponíveis as notas
do Exame (E)
e as Médias Finais (MF).
Atenção: os alunos que desejarem rever seus
Exames devem comparecer à
sala do Professor (IC-29), exclusivamente,
na segunda-feira, dia 07/01/2013 entre 10h00 e 10h30, ou na
segunda-feira, dia 25/02/2013 entre 12h00 e 12h30. [20121217]
- Haverá um horário de
atendimento no dia 10 de dezembro de 9h00 às 10h00 na sala do
Professor (IC-29) para os alunos que tomarão o Exame da
disciplina. [20121126]

- Estão disponíveis as notas
da P2 e as Médias Semestrais. Atenção: os
alunos que desejarem rever sua Prova 2 devem comparecer exclusivamente
no dia 26/11 à sala do Professor (IC-29)
entre 9h00 e 10h00. [20121120]
- Estão disponíveis as notas
do Lab6. Atenção: os alunos que desejarem
conversar com o PED (Lucas) sobre esse Lab devem comparecer exclusivamente
na segunda-feira, dia 12/11, à sala IC-322
entre 12h00 e 13h00.
[20121111]
- O enunciado do Lab6
já está disponível.
(A chave só é informada em classe!) [20121111]
- Estão disponíveis as notas
do Lab5. Atenção: os alunos que desejarem
conversar com o PED (Lucas) sobre esse Lab devem comparecer exclusivamente
na quarta-feira, dia 31/10, à sala IC-322
entre 12h00 e 13h00.
[20121028]
- O enunciado do Lab5
já está disponível.
(A chave só é informada em classe!) [20121022]
- O enunciado do Lab4
já está disponível.
(A chave só é informada em classe!) [20121017]
- Estão disponíveis as notas
do Lab4. Atenção: os alunos que desejarem
conversar com o PED (Lucas) sobre esse Lab devem comparecer exclusivamente
na quarta-feira, dia 17/10, à sala IC-322
entre 12h00 e 13h00.
[20121011]
- Estão disponíveis as notas
da P1. Atenção: os alunos que desejarem
rever sua prova devem comparecer exclusivamente no dia
01/10 à sala de aulas CB-14 às 8h00.
[20120930]
- Estão disponíveis as notas
do Lab3. Atenção: os alunos que desejarem
conversar com o PED (Lucas) sobre esse Lab devem comparecer exclusivamente
no dia 24/9 à sala IC-322 entre 12h30 e
13h30. Observe que o horário
deste atendimento não é o mesmo dos anteriores!
[20120922]
- O enunciado do Lab3
já está disponível.
(A chave só é informada em classe!) [20120922]
- Os slides de todas as aulas
que precedem a Prova 1 já estão disponíveis. Guie-se pelos
slides, estude pelos livros-textos e faça (pelo menos) todos
os exercícios e você estará preparado para a prova. [20120913]
- Os enunciados dos Labs
passados estão disponíveis: Lab1,
Lab2.
(As chaves foram informadas em classe.) [20120910]
- Estão disponíveis as notas
do Lab2. Atenção: os alunos que desejarem
conversar com o PED (Lucas) sobre esse Lab devem comparecer exclusivamente
no dia 10/9 à sala IC-322 entre 18h00 e
19h00. [20120909]
- Estão disponíveis as notas
do Lab1. Atenção: os alunos que desejarem
conversar com o PED (Lucas) sobre esse Lab devem comparecer exclusivamente
no dia 27/8 à sala IC-322 entre 18h00 e
19h00. [20120824]
- Adiante-se na leitura do Guia
dos Labs e do Guia
sobre Depuradores. [20120807]
- As aulas tóricas serão na
sala CB-14 a partir de segunda-feira, dia 1 de agosto.
[20120731]
- Verifique as datas de
laboratório no texto abaixo e marque em sua agenda.
[20120731]
- Procure conseguir um
exemplar dos livros recomentados (Cormen [1] e Manber [2])
desde a primeira semana de aulas.
[20120731]
Docente
- Prof.
Pedro J. de Rezende [MC458
- Turmas A e B]
- Sala IC-29,
http://www.ic.unicamp.br/~rezende,
(19) 3521-5860,

- Atendimento: (na
sala IC-29) às segundas-feiras de 18h05 às 19h00.
Aulas
Teóricas
- As
aulas serão às segundas-feiras e quartas
08h10-09:50.
- Todas
as aulas das quartas-feiras serão aulas teóricas, e as
aulas das segundas-feiras alternar-se-ão entre
teóricas e de laboratório conforme calendário abaixo.
- As aulas teóricas
serão na sala CB-14.
Aulas
de Laboratório
- As
aulas de laboratório serão às segundas-feiras
08h00-09h50 nos seguintes dias:
- 20/08
- 03/09
- 17/09
- 08/10
- 22/10
- 05/11
- A
Turma A terá as aulas de laboratório na
sala CC-02 e a Turma B
na sala CC-03.
- Nas
demais segunda-feiras, as aulas serão teóricas (na
sala CB-14).
Monitor
- Teremos
um Monitor-PED (Lucas Oliveira, e-mail: oliveiralukas at
yahoo dot com dot br) para esta disciplina que acompanhará
as atividades de laboratório.
Avaliação
e Critérios para Aprovação
Haverá
duas provas (P1, P2)
nas datas indicadas ao final deste documento. Cada Prova será
em classe nos horários normais de aula, sem exceção, terá
duração de 120 minutos e receberá nota entre 0,0
e 10,0.
Haverá
seis trabalhos de laboratório (L1, L2,
L3, L4, L5,
L6) aos quais serão atribuídas notas também
entre 0,0 e 10,0.
Não
serão ministradas provas antecipadas
nem substitutivas e os laboratórios
deverão ser realizados na sala de laboratório, em dia e
horário designados. Sem exceção.
A
Média
dos Laboratórios
(ML)
será a média aritmética das notas dos trabalhos de laboratório,
i.e., ML
:= (L1 + L2 + L3
+ L4 + L5 + L6)
/ 6.
A
Média
das Provas
(MP) será
a média ponderada de P1 e P2 com pesos iguais
a 1 e 2,
respectivamente, i.e., MP
:= (P1 + 2 P2) / 3.
Cálculo da
Média Semestral
(MS):
Se min {ML,
MP}
>= 5,0
então MS
:= (ML
+ 2 MP)
/ 3
senão
se ML < MP
então
MS
:= (3 ML
+ 2
MP) / 5
senão
MS
:= ( ML
+
4
MP)
/ 5
Cálculo da Média
Final
(MF)
e obrigatoriedade do Exame
Final:
Se
(MS
>= 6,0 e {o aluno não fizer Exame})
ou (MS
< 2,5)
então MF
:= MS
senão se (MS
>=
6,0 e {o aluno fizer o Exame})
ou (2,5 <= MS
< 6,0)
então
MF
:= (MS + E)
/ 2
onde E
é a nota obtida pelo aluno no Exame
Final. Alunos com 2,5 <=
MS
< 6,0 são obrigados a tomar o Exame Final, se
não, será atribuído zero a E;
alunos com MS
< 2,5 não poderão fazer o Exame Final;
e alunos com MS
>= 6,0 só poderão fazer o Exame Final se
comunicarem ao professor, por escrito, até dia 22/11, sua
decisão de tomá-lo.
Será considerado aprovado
o aluno que obtiver Média Final (MF)
maior que ou igual a 5,0.
Será considerado reprovado o
aluno que obtiver Média Final (MF)
menor que 5,0.

Gráfico
mostrando a superfície MS(ML,MP) e o plano MS=6,0.
Aviso:
Qualquer tentativa de cola ou fraude, detectada durante ou
posteriormente a uma prova ou laboratório, acarretará nota zero
naquela avaliação para todos os
implicados, além das sansões regimentais previstas
Notas
Tabelas
de notas que estão disponíveis: Notas
dos Labs,
Notas das Provas e Médias.
Exercícios
Listas
de exercícios serão atribuídas ao longo do semestre. Além de
servir para maior fixação do material apresentado em classe,
o conteúdo dos exercícios é considerado parte
integrante do material visto e será assumido como parte da
matéria coberta. Como as listas não farão parte da
avaliação, suas soluções não serão coletadas. Os alunos são
encorajados a resolver todos os exercícios individualmente
e, só posteriormente, realizar discussão em grupo.
Quaisquer dificuldades devem ser prontamente discutidas com
o Professor nos horários de atendimentos. Dúvidas não
sanadas geram mais dúvidas.
Listas
de exercícios
(As
listas serão indicadas nesta página à medida que cada tópico
for sendo coberto. A relação abaixo é apenas tentativa e
poderá sofrer alterações e acréscimos ao longo do semestre.
Visite esta página assiduamente.)
-
Lista 1a:
[1] Capítulo 1: Exercícios: 1.2-2;
-
Lista 1b:
[1] Capítulo 1: Problemas: 1-1;
-
Lista 2a:
[1] Capítulo 2: Exercícios: 2.1-3, 2.1-4,
2.2-2, 2.2-3, 2.3-3, 2.3-5, 2.3-6, 2.3-7;
-
Lista 2b:
[1] Capítulo 2: Problemas: 2-1;
-
Lista 3a:
[1] Capítulo 3: Exercícios: 3.1-1, 3.1-2,
3.1-3, 3.1-4, 3.1-6, 3.1-7, 3.1-8, 3.2-3;
-
Lista 3b:
[1] Capítulo 3: Problemas: 3-1, 3-2, 3-3,
3-4;
-
Lista 4a:
[1] Capítulo 4: Exercícios: 4.1-2, 4.1-5,
4.2-2, 4.2-4, 4.2-5, 4.3-1, 4.3-2, 4.3-4, 4.3-5, 4.4-2;
-
Lista 4b:
[1] Capítulo 4: Problemas: 4-1, 4-3 b.,
4-4 a., c., d., e., f., h., i.;
-
Lista 5:
[2] Capítulo 2:
Exercícios: 2.1, 2.4, 2.7, 2.9, 2.12, 2.14, 2.15
(substituindo, no enunciado, o número 81 por 49), 2.18
(substituindo, no enunciado, a palavra cycle por circle),
2.19, 2.21;
-
Lista 6:
[2] Capítulo 5:
Exercícios: 5.6, 5.12, 5.14, 5.15, 5.25a.;
-
Lista 7:
[2] Capítulo 6:
Exercícios: 6.14, 6.22, 6.23, 6.24, 6.25, 6.29;
-
Lista 8:
[1] Capítulo 9: Exercícios: 9.2-4,
Problemas: 9-1a.,b,c;
-
Lista 9:
[2] Capítulo 6:
Exercícios: 6.11, 6.21, 6.34;
-
Lista 10:
[1] Capítulo 6: Exercícios: 6.1-4, 6.1-5,
6.2-1, 6.2-2, 6.2-3, 6.2-4, 6.2-6, 6.4-3, 6.4-4, 6.4-5,
6.5-8;
-
Lista 11:
[1] Capítulo 7: Exercícios: 7.2-2, 7.2-3;
-
Lista 12:
[1] Capítulo 8: Exercícios: 8.1-1, 8.1-2,
8.2-1, 8.2-4, 8.3-3, 8.4-1, 8.4-2, Problemas: 8-3a, 8-6;
-
Lista 13:
[1] Capítulo 9: Exercícios: 9.1-1;
-
Lista 14:
[1] Capítulo 15: Exercícios: 15.2-1,
15.2-2, 15.2-3, 15.3-2, 15.3-3, 15.3-5, 15.4-1, 15.4-2,
15.4-3, 15.4-4, 15.4-5, 15.4-6, Problemas: 15-4, 15-6, 15-7;
-
Lista 15:
[1] Capítulo 16: Exercícios: 16.1-1,
16.1-2, 16.1-3, 16.1-4, 16.3-1, 16.3-4, 16.3-7, 16.3-8,
Problemas: 16-1, 16-4a.
Tópicos
a serem cobertos
- O
programa da disciplina consiste dos seguintes tópicos:
(Legenda: M=Modelo, A=Análise, P=Projeto/Paradigma)
-
1. Conceitos de Análise de Algoritmos ([1] Cap 1., 2., 3.).
· (M) Modelos Computacionais.
· (A) Classes de funções, crescimento e o conceito de assintossidade.
· (A) O que é análise de um algoritmo -- quota superior.
· (A) O que é análise de complexidade de um problema -- quota inferior.
·
- Exemplos: busca em vetor ordenado, entrada/saída,
quotas superiores, quota inferior e algoritmo ótimo.
· (A) O
que é análise de pior caso.
2. Ferramental Matemático para Análise de Algoritmos ([1] Cap 4. e
[Notas
de aula])
· (A) Crescimento assintótico e classes de funções.
· (A) Resolução de recorrências.
· (A) Métodos diversos.
· (A) Teorema Master.
3.
(P) Projeto de algoritmos por indução ([2] Cap 5.,
[Paper
do Manber] e [Notas
de aula])
· (P)
[Manber] 2.7, 2.8, 2.10
- Revisão.
· (P)
[Manber] 5.2, 5.3, 5.4, 5.5,
5.7, 5.8, 5.9, 6.11.1, 6.11.2.
Leitura:
[2] 2.7, 2.8, 2.10, 5.2, 5.3, 5.4,
5.5, 5.7, 5.8, 5.9, 6.5.1, 6.11.1, 6.11.2
([2] 5.4, 6.11.1 não serão
cobertos em classe, mas a leitura é um requisito. Em
caso de dúvidas, procure o professor nos horários de
atendimento.)
4.
Busca, ordenação e estatísticas de ordem (Ênfase em [M] Divisão e
Conquista) ([2] Cap 6., e [1]
Cap 6., 7., 8., 9.)
· (P)
Busca binária (simples, variações, seqüências gaguejantes,
n=ab
para n, a, b naturais).
· (P) Paradigma de Divisão e Conquista (mergesort,
busca binária, mediana).
· (P)
Conquista pode preceder a divisão (quicksort).
· (A)
Análise de caso médio de quicksort.
·
(A)
Quota inferior para busca em vetor ordenado, ordenação e
determinação do máximo.
-
·
(M/A/P)
Algoritmos lineares para ordenação.
-
·
(P) Seleção do mediano e
do k-ésimo menor elemento via
partição do quicksort.
· (A)
Algoritmo de pior caso linear para seleção do mediano e do
k-ésimo menor elemento.
· (P) Benefícios da escolha de estrutura de dados adequada para projeto de
algoritmos eficientes (ordenação com várias estruturas de
apoio).
Leitura:
[2] Cap 6 = 6.2, 6.4, 6.5, 6.11, [1] Cap 6; 7;
8; 9.1, 9.2, 9.3
5. [M]
Programação Dinâmica ([1] Cap 15.)
·
(P) Programação de linha de montagem.
·
(P)
Multiplicação de cadeias
de matrizes.
· (P) Mais longa
subseqüência comum.
· (P) Problema da
mochila.
· (P) Árvore binária
de busca ótima.
Leitura:
[1] Cap 15 = 15.2, 15.3, 15.4
6.
[M]
Algoritmos Gulosos ([1] Cap 16.)
·
(P) Problema de seleção de atividade.
·
(P) Códigos de Huffman.
·
(P) Outros exemplos.
Leitura:
[1] Cap 16 = 16.1, 16.2, 16.3
Tópicos opcionais
à escolha do docente:
·
(P) Problemas geométricos (para ilustrar os paradigmas de Divisão
e Conquista e Guloso).
·
(P)
Emparelhamento de cadeias de caracteres e biologia
computacional (para ilustrar o paradigma de Programação
Dinâmica).
·
(P) Reduções de Problemas. [Notas
de aula]
Slides
das aulas
A
numeração das Aulas é apenas tentativa e poderá ser alterada ao
longo do semestre.
01/08 - Aula 01 - Slides
- Tópico 1 - Introdução e Modelos
06/08
- Aula 02 - Slides
- Tópico 2 -
Crescimento de funções
08/08
- Aula 03 - Slides
- Tópico 2 -
Recorrências
13/08
- Aula 04 - Slides
- Tópico 3 - Indução
15/08
- Aula 05 - Slides
- Tópico 3 - Indução
(continuação)
20/08 - (Aula 06) = Lab 1
22/08 - Aula 07 - Slides
- Tópico 3 - Projeto
de Algoritmos por indução
27/08
- Aula 08 - Slides
- Tópico 3 - Projeto
de Algoritmos por indução (continuação)
29/08
- Aula 09 - Slides
- Tópico 4 - Paradigma
de Divisão e Conquista
Busca binária e
aplicações
03/09
- (Aula
10)
= Lab 2
05/09 - Aula 11
- Slides
- Tópico 4 - Ordenação
10/09
- Aula 12 -
Slides - Tópico
4 - Ordenação
(continuação)
12/09
- Aula 13 -
Slides - Tópico 4 - Modelos
de Árvores de Decisões e Quotas
inferiores
Algoritmos Lineares
de Ordenação
17/09
- (Aula
14)
= Lab 3
19/09 - Aula 15 -
Slides - Tópico 4 - Algoritmos
Lineares de Ordenação (continuação)
Revisão
24/09 - (Aula
16)
= Prova
1
- Toda a matéria desde a aula 1.
26/09
- Aula 17
- Slides
- Tópico 4 - Estatísticas
de Ordem
01/10 - (Aula 18)
= Discussão
da Prova 1
03/10
- Aula 19
- Slides
- Tópico
5 - Paradigma
de Programação Dinâmica
08/10 - (Aula
20)
= Lab 4
10/10 - Aula 21
- Slides
- Tópico
5 - Paradigma
de Programação Dinâmica
(continuação)
15/10
- Aula 22
-
Acima - Tópico
5 - Paradigma
de Programação Dinâmica
(continuação)
17/10
- Aula 23
- Slides
- Tópico
6 - Paradigma
Guloso
22/10 - (Aula
24)
= Lab 5
24/10 - Aula 25
- Acima
-
Tópico 6 - Paradigma
Guloso (continuação)
29/10
- (Aula 26)
= Revisão
- Não há slides
31/10
- Aula 27
- Texto
- Tópico Extra: Redução de Problemas
05/11 - (Aula
28)
= Lab 6
07/11 - (Aula
29)
= Prova
2
- Toda
a matéria desde a aula 1, com ênfase na matéria vista desde a
aula 17.
12/11
- Aula 30
- Acima - Tópico
Extra:
Redução de Problemas (continuação)
12/12
Exame
- Toda a matéria desde a aula 1.
Nunca estude apenas pelas
suas anotações ou pelos slides das aulas. Compareça às aulas,
guie-se por suas anotações, mas estude
pelos livros indicados.
Referências
Bibliográficas
-
T. Cormen, C. Leiserson, R. Rivest, C. Stein, Algoritmos
-
Teoria e Prática (tradução da 2ª
Ed. Americana), Ed. Campus (2002).
Há cópias do livro [1] na "Reserva" da
Biblioteca do IMECC.
-
U. Manber, Algorithms: A Creative Approach,
Addison-Wesley (1989).
- J. Kleinberg e E. Tardos,
Algorithm Design, Addison Wesley, (2005).
- G. Brassard e P. Bratley,
Algorithmics: Theory and Practice, Prentice-Hall.
- A. Aho, J. Hopcroft, e J. Ullman.
The Design and Analysis of Computer Algorithms. Addison-Wesley
(1974).
- N. Ziviani Projeto de Algoritmos com
Implementações em Pascal e C, Pioneira Thomson Learning, 2ª.
edição, (2004).
- J. Szwarcfiter, Algoritmos em
Grafos, Editora Campus (1987).
- J. Szwarcfiter e L. Markenson,
Estruturas de Dados e seus Algoritmos, LTC Editora (1994).
Datas
importantes
|
Dia
|
Evento
|
Local
- Turma A
|
Local
- Turma B
|
|
01/08 |
Primeiro
dia de aula
|
CB-14
|
CB-14
|
|
20/08 |
Laboratório
1 (L1)
|
CC-02
|
CC-03
|
|
03/09 |
Laboratório
2 (L2)
|
CC-02
|
CC-03
|
|
17/09 |
Laboratório
3 (L3)
|
CC-02
|
CC-03
|
|
24/09 |
Prova
1 (P1)
|
CB-14
|
CB-14
|
|
08/10 |
Laboratório
4 (L4)
|
CC-02
|
CC-03
|
|
22/10 |
Laboratório
5 (L5)
|
CC-02
|
CC-03
|
|
05/11 |
Laboratório
6 (L6)
|
CC-02
|
CC-03
|
|
07/11 |
Prova
2 (P2)
|
CB-14
|
CB-14
|
|
12/11 |
Último
dia de aula
|
CB-14
|
CB-14
|
|
19/11 |
Resultados
parciais (MP,
ML, MS) |
Esta
página
|
Esta
página
|
|
12/12 |
Exame
Final (E)
|
CB-14
|
CB-14
|
|
17/12 |
Resultados
Finais (MF)
|
Esta
página
|
Esta
página
|
|