Teoria da Computação
Período letivo 2019.1:
Calendário de final de período:
- Prova final: 27/08/2018, 3ª feira
Simuladores:
- Máquina Norma
- Máquina de Post
- Máquina de Turing
- JFLAP
- Simulador gráfico e interativo para experimentação com gramáticas, expressões regulares e autômatos:
- Download (renomeie para "JFLAP.jar" caso o seu S.O. modifique o nome para "JFLAP.zip")
- Site
- Máquina de Turing - Implementação "real"
- Dispositivo eletromecânico que reproduz o comportamento da Máquina de Turing;
- Site
- Calculadora lambda
do Prof. Dr. Carl Burch do Hendrix College
- Efetua reduções e obtém forma normal.
- Site
Máquinas de Turing (salvar como .jff e depois abrir no JFLAP):
- \{ww^R | w \in {a,b}^*\} determinística, baixar
- \{ww | w \in {a,b}^*\} não-determinística, baixar
- \{a^ib^jc^k | i=j ou j=k\} não-determinística, baixar
- \{a^ib^j | i>=1, j>=i e j par\} determinística, baixar
- \{a^ib^j | i>1, j>=i e j par\} determinística, baixar
- \{mwn | |w|_a=|w|_b=|w|_c\} determinística, baixar
Slides:
Material complementar:
- Artigo "A Teoria da Computação e o Profissional de Informática", João José Neto, RECET, Outubro de 2009
- Livro "Foundations of Computer Science" de A.V. Aho e J.D. Ullman, disponível para download gratuito na página dos autores
- Capítulo 3 - The Running Time of Programs
- P versus NP:
- Último Teorema de Fermat:
- Equivalência de Máquinas Universais:
Demonstração, Análise e Simulação, trabalho de Conclusão de Curso de Débora Pandolfi Alves, com orientação da Profa. Dra. Ana Paula Lüdtke Ferreira (UNISINOS, 2007).
- Documentário Dangerous Knowledge, de David Malone para a BBC, sobre as vidas e obras de Cantor, Boltzmann, Gödel e Turing.
Avaliações:
Aulas ministradas:
Aula 01 - 23/04 - Apresentação e motivação.
Aula 02 - 25/04 - Programas e Máquinas.
Aula 03 - 30/04 - Programa para uma máquina. Computação.
Aula 04 - 02/05 - Função computada. Equivalência forte de programas. Relação entre as classes recursiva, monolítica e iterativa.
Aula 05 - 07/05 - Máquina de Traços. Equivalência forte de programas e Máquinas de Traços.
Aula 06 - 09/05 - Verificação da equivalência forte de programas monolíticos. Exemplo.
Aula 07 - 14/05 - Máquinas Universais. Hipótese de Church. Teorema Fundamental da Aritmética. Codificação de dados estruturados.
Aula 08 - 16/05 - Máquina Norma.
Aula 09 - 21/05 - Máquina Norma (continuação). Máquina de Turing. Linguagens recursivamente enumerável e recursiva. Função computável.
Aula 10 - 23/05 - Prova 1.
Aula 11 - 28/05 - Máquina de Turing <= Máquina Norma. Máquina Norma <= Máquina de Turing.
Aula 12 - 30/05 - Máquina de Post. Máquina de Turing <= Máquina de Post.
Aula 13 - 04/06 - Máquina de Post <= Máquina de Turing. Máquina com Pilhas. Autômatos com Duas Pilhas. Máquina de Turing <= Autômato com Duas Pilhas.
Aula 14 - 11/06 - Autômato com Duas Pilhas <= Máquina de Turing. Máquina de Turing com múltiplas trilhas.
Aula 15 - 13/06 - Máquina de Turing não-determinística.
Aula 16 - 18/06 - Máquina de Turing com múltiplas fitas. Máquina de Turing com fita limitada à esquerda.
Aula 17 - 25/06 - Máquina de Turing que não escreve brancos na fita. Decidibilidade. Problemas de decisão.
Aula 18 - 27/06 - Problemas x linguagens. Problemas decidíveis. Codificação de Máquinas de Turing. Método diagonal de Cantor. Ld é não-RE.
Aula 19 - 04/07 - Linguagens e seus complementos.
Aula 20 - 09/07 - Prova 2.
Aula 21 - 11/07 - Máquina de Turing Universal e linguagem Lu. Redutibilidade.
Aula 22 - 23/07 - Redutibilidade. Problema da Parada. Linguagens Le e Lne. Teorema de Rice. Autômato Linearmente Limitado.
Aula 23 - 30/07 - Problema do pertencimento em ALLs. Histórias de computação. Problemas V_all e TODAS_glc.
Aula 24 - 01/08 - PCP. Redução MPCP -> PCP.
Aula 25 - 06/08 - Redução L_u -> PCP. Problema AMB_glc.
Aula 26 - 08/08 - Outros problemas indecidíveis relacionados com LLCs e GLCs por redução a partir do PCP. Introdução à complexidade.
Aula 27 - 13/08 - Medição do tempo de execução.
Aula 28 - 15/08 - Classe P. Classe NP.
Aula 29 - 20/08 - Verificadores de tempo polinomial. Redução de tempo polinomial.
Aula 30 - 22/08 - Prova 3.
Aula 31 - 29/08 - (extra) NP-competude. Estratégias para lidar com problemas de NP-P.
Aula 32 - 10/09 - (extra) Introdução ao Cálculo Lambda. Linguagem Lambda.
Aula 33 - 11/09 - (extra) Substituições, conversões-alfa e reduções-beta.
Aula 34 - 12/09 - (extra) Exercícios. Numerais de Church.
Aula 35 - 13/09 - (extra) Igualdade-beta. Ponto fixo. Recursão. Exemplos.
Aula 36 - 20/09 - (extra) Indecidibilidade. Introdução ao Cálculo Lambda Tipado.