Análise e Síntese de Algoritmos http://fenix.ist.utl.pt/leic-a/disciplinas/asa
Corpo Docente Aulas Teóricas: Vasco Manquinho INESC-ID, Sala 329 Email: vasco.manquinho@inesc-id.pt Tel: 21 3100204 (INESC-ID) Aulas Práticas Jan Cederquist Email: jan.cederquist@ist.utl.pt Nuno Lopes Email: nuno.lopes@ist.utl.pt 2007/2008 Análise e Síntese de Algoritmos 2
Organização Aulas: Teóricas: 3ª feira, 08:00 09:30, FA1 ; 09:30 11:00, FA2 4ª feira, 09:00 10:30, FA1 ; 10:30 12:00, FA1 Práticas: 3ª feira: 11:00 12:30 ; 13:00 14:30 5ª feira: 11:00 12:30 (2 turnos) 6ª feira: 09:00 10:30 (2 turnos); 10:30 12:00 Horário de dúvidas (Vasco Manquinho) 2ª feira, 13:30 15:00 3ª feira, 13:30 15:00 Local: INESC-ID, sala 329 2007/2008 Análise e Síntese de Algoritmos 3
Bibliografia Livro da disciplina CLRS Introduction to Algorithms, 2ª edição, T. Cormen, C. Leiserson, R. Rivest, e C. Stein McGraw-Hill, 2001 Bibliografia adicional: Acetatos e apontamentos das aulas Bibliografia adicional disponível na página da disciplina 2007/2008 Análise e Síntese de Algoritmos 4
Objectivos Estudo dos Algoritmos Complementar Algoritmos e Estruturas de Dados Técnicas para análise e síntese de algoritmos Introdução à Complexidade Computacional 2007/2008 Análise e Síntese de Algoritmos 5
Programa Revisão Fundamentos; notação; exemplos [CLRS, Cap.1-13] Algoritmos em Grafos [CLRS, Cap. 22-26] Algoritmos elementares; árvores abrangentes; caminhos mais curtos; fluxos máximos Programação Linear [CLRS, Cap. 29] 2007/2008 Análise e Síntese de Algoritmos 6
Programa (Cont.) Técnicas de Síntese de Algoritmos [CLRS, Cap. 15-17] Programação dinâmica Algoritmos greedy Tópicos Adicionais [CLRS, Cap. 32-35] Emparelhamento de Cadeias de Caracteres Complexidade Computacional Algoritmos de Aproximação 2007/2008 Análise e Síntese de Algoritmos 7
Requisitos Rever programa de AED: Fundamentos [CLRS, Cap. 1-4] Ordenação [CLRS, Cap. 6-9] Estruturas de Dados [CLRS, Cap. 10-13] Revisão destas matérias nas primeiras aulas (teóricas e práticas) 2007/2008 Análise e Síntese de Algoritmos 8
Avaliação Avaliação contínua: 2 testes + 3 mini-projectos 2 Testes 70% Duração de 1h30 Datas: 1º Teste: 10 de Maio 2º Teste: 11 de Junho Repescagem:14 de Julho Nota mínima da média dos testes: 7,5 valores 2007/2008 Análise e Síntese de Algoritmos 9
Avaliação 3 Mini-Projectos 30% 1º Projecto: 09 de Abril 2º Projecto: 16 de Maio 3º Projecto: 14 de Junho Projectos individuais Sem nota mínima Projectos em C ou C++ Os projectos são avaliados automaticamente Será utilizado software para detecção de situações de cópia Discussões só em casos pontuais Os repetentes podem usar a nota dos projectos do ano passado (devem enviar email para o responsável da cadeira) 2007/2008 Análise e Síntese de Algoritmos 10
TIUP Torneio Inter-Universitário de Programação Objectivos Consolidação de conhecimentos de programação Preparação para análise rápida de problemas Teste à capacidade de resolução de problemas Avaliação de trabalho de equipa Selecção de equipas para a MIUP (Maratona Inter- Universitária de Programação) Selecção de equipas para o SWERC (SouthWestern European Regional Contest) 2007/2008 Análise e Síntese de Algoritmos 11
Provas da TIUP Equipas de 3 elementos Duração: 3 horas 5 problemas para resolver Linguagens de Programação: C, C++, Java ou Pascal (linguagens suportadas nos concursos do ACM) Mooshak MIUP: equipas fisicamente nas mesmas instalações http://acm.ist.utl.pt/miup07 2007/2008 Análise e Síntese de Algoritmos 12
Critérios para Classificação 1. Número de problemas resolvidos 2. Somatório dos tempos dos problemas resolvidos Tempo passado desde o inicio da prova até à submissão correcta Penalização de 20 min. por cada submissão incorrecta 2007/2008 Análise e Síntese de Algoritmos 13
Material para competições (MIUP) 25 páginas A4 impressas Tamanho de letra igual ou superior a 9 1 cópia do mesmo material para cada elemento da equipa Documentação online disponível no ambiente da competição 2007/2008 Análise e Síntese de Algoritmos 14
Contactos e Outras Informações Inscrições por email: acm@dei.ist.utl.pt ou contactar o responsável da cadeira http://acm.ist.utl.pt (site IST) http://acm.up.pt/local (site U. Porto) http://acm.ist.utl.pt/miup07/ (site MIUP 2007) Calendário Provas TIUP (provisório): 26 de Março de 2008 (U. Coimbra) 23 de Abril de 2008 (U. Aveiro) 21 de Maio de 2008 (U. Algarve) 18 de Junho de 2008 (IST) 2007/2008 Análise e Síntese de Algoritmos 15
Problema Suponha que uma instituição financeira tem N processos (com N > 10 6 ) em que cobrou uma comissão ao cliente. As comissões cobradas estão tabeladas e são sempre múltiplos de 10 EUR até um máximo de 1000 EUR. Calcule a mediana das comissões cobradas nos N processos. Solução: Seja P o vector dos processos; ordenar P segundo o valor da comissão cobrada em cada processo; Comissão do processo na posição N/2 indica o valor da mediana; Complexidade da solução? Melhor solução? 2007/2008 Análise e Síntese de Algoritmos 16
Informações Adicionais Página da disciplina: http://fenix.ist.utl.pt/leic-a/disciplinas/asa Início das aulas teóricas: 4ª feira, 27/02 Início das aulas práticas: 2ª feira, 03/03 2007/2008 Análise e Síntese de Algoritmos 17