5COP096 Teoria da Computação Aula 1 Apresentação da Disciplina e Revisão de Conceitos Prof. Dr. Sylvio Barbon Junior 1
Sobre o Professor Dr. Sylvio Barbon Junior 5COP096 Teoria da Computação Formação: Ciência e Engenharia da Computação (2005 e 2008) São José do Rio Preto, Mestrado em Física Computacional (2007) São Carlos, Doutorado em Física Computacional (2011) São Carlos. Experiência Acadêmica: Docente no Senac(2008-2010), Universidade do Estado de Minas Gerais (2008 2012) e Faculdade de Tecnologia de São José do Rio Preto (2010 2012). Experiência Não Acadêmica: Analista desenvolvedor Riosoft(2004 2006) e Gerente de Projetos Net-Fit(2008-2011). Certificado SCJP. Áreas de Interesse: Processamento de Sinais (Imagem e Áudio), Jogos Digitais e Mineração de Dados. 2
Ementa Teoria da Computação Projeto e Análise de Algoritmos Objetivo: 5COP096 Teoria da Computação Esta disciplina abordar a complexidade de algoritmos. Análise e projeto de algoritmos visa o estudo em relação aos algoritmos e suas complexidades. Serão vistos, algoritmos de classificação, seleção, métodos gulosos, programação dinâmica e algoritmos em grafos. O objetivo está em verificar o que faz um algoritmo ser fácil ou difícil. Também serão estudadas as noções de intratabilidade de problemas(p, NP, NP-Dif cil e NP completo). Avaliação: 1-Lista de Exercícios: serão propostas listas de exercícios, sendo as questões das provas semelhantes a construção dos exercícios propostos. 2- Provas: serão realizadas provas bimestrais conforme os assuntos abordados. 3- Média: a média será computada como a média aritmética das provas, Média = Prova/2. 3
Ementa Teoria da Computação Projeto e Análise de Algoritmos 5COP096 Teoria da Computação Conteúdo: 1- Apresentação da Disciplina; 2- Algoritmos; 3- Medida de Tempo de Execução; 4- Comportamento assintótico de funções de classe de comportamento; 5- Técnicas de Análise de Algoritmos; 6- Indução e Recursividade; 7- Algoritmos de Tentativa e Erro; 8- Algoritmos de Divisão e Conquista; 9- Balanceamento e Programação Dinâmica; 10- Algoritmos Gulosos; 11- Algoritmos Aproximados; 12- Algoritmos Ordenados I, II e III; 13-AlgoritmosdeOrdenaçãoExternaI,IIeIII; 4
Ementa Teoria da Computação Projeto e Análise de Algoritmos Conteúdo: 14 Algoritmos de Pesquisa em Memória Primária e Secundária; 15- Pesquisa Sequencial e Binária; 16- Árvore de Pesquisa Binária; 17- Pesquisa Digital; 18- Hashing; 19-ÁrvoredePesquisaBeB*; 20- Algoritmos em Grafos; 21- Busca em profundidade e largura; 22- Ordenação Topológica; 23- Árvore Geradora Mínima; 24- Caminhos mais curso; 25- Problemas NP-Completos; 26- Heurísticas e Algoritmos aproximados. 5COP096 Teoria da Computação 5
Sumário 1) Algoritmos 6
Algoritmos 7
Algoritmos Um algoritmo pode ser visto como uma sequência de ações executáveis para a obtenção de uma solução para determinado tipo de problema Algoritmos Notáveis: 1-1946: Método MonteCarlo; 2-1947: Método Simplex; 3-1951: Método de Krylov(Gradiente Conjugado); 4-1957: Compilador Fortran; 5-1959: Algoritmo QR; 6-1962: QuickSort; 7-1965: Fast Fourier Transform; 8-1998: PageRank??? 8
Algoritmos 9
Algoritmos 10
Algoritmos 5COP096 Teoria da Computação Informalmente, para a computação, um algoritmo é um procedimento que considera um valor (ou grupo de valores) como uma entrada, e produz um valor (ou grupo de valores) como saída - Por exemplo receber como entrada um grupo de números e obtê-los seqüencialmente classificados. - Um algoritmo é dito como correto, se para qualquer instância de entrada é determinada a saída correta (ou com margem de erro aceitável). - Um algoritmo correto resolve um problema computacional. - Os problemas tratados pelos Projetos de Algoritmos são pautados na análise da eficiência para um algoritmo correto. A solução de um problema nem sempre é somente uma resposta correta. 11
Algoritmos 12
Referências Ziviani, Nivio. Projeto de algoritmos: com implementações em Java e C. Thomson Learning, 2007. Leiserson, Charles E., Ronald L. Rivest, and Clifford Stein. Introduction to algorithms. Ed. Thomas H. Cormen. The MIT press, 2001.