Teoria da Computação (LEIC-Alameda)


Sumários das aulas teóricas

Turmas 10104, 10105 e 10106

Docente: Paula Gouveia
Horário: 3ªfeira, 9h-10h, FA1; 5ªfeira, 8h-9h, FA1; 6ªfeira, 10h-11h, GA3


T01-30Set
Apresentação: conteúdo, bibliografia e avaliação


T02-2Out
Autómatos finitos deterministas. Exemplos de aplicações (e.g. processadores de texto). Exemplos de autómatos (representação através de um grafo orientado e etiquetado).


T03-3Out
Mais exemplos de autómatos finitos deterministas. Definição algébrica (ps, pdf). Alguns comentários relativos a funções, funções totais e não totais.


T04-7Out
Fecho de Kleene de um conjunto, comprimento de sequência e concatenação de sequências. Linguagem sobre um alfabeto. Alguns comentários relativos a funções definidas por recursão. Função transição de autómato finito determinista. Exemplos.


T05-9Out
Sequência aceite por autómato finito determinista. Linguagem reconhecida por autómato finito determinista. Linguagem regular. Proposição (ps,pdf): a classe das linguagens reconhecidas por autómatos finitos deterministas com o mesmo vocabulário está fechada para as operações de (a) intersecção, (b) complementação, (c) união, (d) diferença, (e) fecho de Kleene, (f) concatenação. Exemplos de aplicação. Esboço da prova da alínea (b) (início).


T06-10Out
Esboço da prova da alínea (b) (conclusão). Esboço da prova das alíneas (a) e (c).


T07-14Out
Esboço da prova da alínea (d). Proposição (ps,pdf): dado um autómato finito determinista D existem algoritmos que permitem determinar se são ou não verdadeiras as afirmações seguintes: (a) a linguagem reconhecida por D é vazia, (b) D reconhece todas as palavras sobre o seu alfabeto, (c) a linguagem reconhecida por D está contida na linguagem reconhecida por um outro autómato finito determinista D' dado, (d) a linguagem reconhecida por D é igual à linguagem reconhecida por um outro autómato finito determinista D' dado, (e) existe um autómato finito determinista D' tal que a linguagem reconhecida por D é igual à linguagem reconhecida por D' e D' tem menos estados que D. Esboço das provas das alíneas (a), (b) e (c).


T08-16Out
Estados produtivos, estados relevantes e estados inúteis. Estados equivalentes e estados distinguíveis: motivação e definição. Algoritmo de procura exaustiva de pares de estados distinguíveis (ps,pdf): motivação e descrição (início).


T09-17Out
Algoritmo de procura exaustiva de pares de estados distinguíveis (conclusão). Exemplos de aplicação.


T10-21Out
Esboço da prova de correcção do algoritmo de procura exaustiva de pares de estados distinguíveis. Algoritmo de teste à igualdade das linguagens reconhecidas por dois autómatos finitos deterministas. Exemplo de aplicação.


T11-23Out
Algoritmo de minimização de autómatos finitos deterministas (relativamente ao número de estados): motivação e descrição. Exemplo de aplicação.


T12-24Out
Autómatos finitos não deterministas (ps,pdf). Definição e exemplos.


T13-28Out
Função de transição em autómatos finitos não deterministas. Exemplos. Linguagem reconhecida por um autómato finito não determinista. Equivalência de autómatos finitos deterministas e não deterministas (ps,pdf). Proposição: se D é um autómato finito determinista, então existe um autómato finito não determinista A tal que a linguagem reconhecida por A é igual à linguagem reconhecida por D. Esboço da prova da proposição. Proposição : se A é um autómato finito não determinista, então existe um autómato finito determinista D tal que a linguagem reconhecida por A é igual à linguagem reconhecida por D. Esboço da prova da proposição (início).


T14-30Out
Função de transição em autómatos finitos não deterministas (conclusão). Linguagem reconhecida por um autómato finito não determinista. Equivalência de autómatos finitos deterministas e não deterministas (ps,pdf). Proposição: se D é um autómato finito determinista, então existe um autómato finito não determinista A tal que a linguagem reconhecida por A é igual à linguagem reconhecida por D. Esboço da prova da proposição. Proposição : se A é um autómato finito não determinista, então existe um autómato finito determinista D tal que a linguagem reconhecida por A é igual à linguagem reconhecida por D. Esboço da prova da proposição.


T15-31Out
Esboço da prova da proposição "A linguagem {0^n1^n: n>=0} não é regular". Referência informal ao lema da bombagem para linguagens regulares. Descrição informal de um autómato de pilha que reconhece a linguagem {0^n1^n: n>=0}.


T16-4Nov
Gramáticas: motivação, definição (ps,pdf). Denotação compacta do conjunto das produções de uma gramática. Demonstração em gramática. Linguagem gerada por uma gramática. Exemplos.


T17-6Nov
Gramática independente do contexto e gramática regular. Exemplos.


T18-7Nov
Proposição (ps,pdf): Para cada autómato finito determinista D (não determinista A) existe uma gramática regular G tal que a linguagem reconhecida por D (A) é igual à linguagem gerada por G. Esboço da prova da proposição. Proposição (ps,pdf): Para cada gramática regular G existe umautómato finito não determinista A tal que a linguagem reconhecida por A é igual à linguagem gerada por G. Esboço da prova da proposição.


T19-11Nov
Expressões regulares (ps,pdf). Motivação. Definição. Conjunto denotado por expressão regular. Exemplos.


T20-13Nov
Equivalência de expressões regulares. Exemplos.


T21-14Nov
Proposição (ps,pdf): a linguagem gerada por uma gramática regular é denotada por uma expressão regular.
Técnicas de resolução de equações às linguagens - regra R. Exemplos.


T22-18Nov
Autómato finito não determinista com movimentos épsilon. Definição(ps,pdf). Conceito de fecho-épsilon de um estado. Proposição(ps,pdf): Para cada autómato finito não determinista com movimentos épsilon A existe um autómato finito não determinista sem movimentos épsilon A' que reconhece exactamente a linguagem reconhecida por A. Esboço da prova.


T23-22Nov
Proposição(ps,pdf): Para cada expressão regular existe um autómato finito não determinista com movimentos épsilon A tal que a linguagem denotada pela expressão é a linguagem reconhecida por A. Esboço da prova: algoritmo de construção do autómato por indução na complexidade das expressões regulares.


T24-21Nov
Computabilidade: motivação e breve introdução histórica. Modelos alternativos no estudo da computabilidade (ps,pdf). Postulado de Church-Turing.


T25-25Nov
A máquina URM (Unlimited Register Machine) (ps,pdf). Memória da máquina URM: registos e valores. Comandos da máquina URM: comandos zero, comandos sucessor, comandos tranferência, comandos salto. Exemplo de programa para a máquina URM: o programa que calcula a função binária que a x e y faz corresponder x+y.


T26-27Nov
Programa normalizado. Exemplos de programas para a máquina URM: (i) o programa que calcula a função unária que a x faz corresponder x-1 se x é maior que 0 e 0 caso contrário; (ii) o programa que calcula a função binária que a x e y faz corresponder x-y se x é maior ou igual a y e 0 caso contrário.



T27-28Nov
Algumas observações sobre a sintaxe usada no emulador, incluindo referência ao comado HALT[] e à utilização de oráculos. Exemplos de programas para a máquina URM: o programa que calcula a função binária que a x e y faz corresponder o respectivo produto (usando o oráculo SUM). Noção informal de computação finita e de computação infinita de programa. Notações. Função URM-computável. Preenchimento dos inquéritos pedagógicos.


T28-2Dez
Função de aridade n calculada por um programa. Predicados. Função característica de um predicado. Predicados decidíveis. Prova de que o predicado unário sobre os naturais "x é par" é decidível.


T29-4Dez
Conjuntos I e P de todos os comandos URM e de todos os programas URM, respectivamente. Godelização de programas URM (ps,pdf): as bijecções pi, xi e beta. Exemplos.


T30-5Dez
Godelização de programas URM (continuação): as funções inversas de pi xi e beta. Exemplos.


T31-9Dez
Godelização de programas URM (conclusão): as bijecções tau e gama e respectivas inversas. Exemplos.


T32-10Dez
Definição de P_n, fi_n_m, W_n_m e de E_n_m. Proposição : Existe uma função natural unária e total que não é URM-computável. Prova da proposição. Problema da paragem: formulação informal. Prova informal da não decidibilidade do problema da paragem.


T33-12Dez
Proposição : O problema da paragem não é decidível. Prova da proposição. Proposição : O predicado 'm pertence a E_n' não é decidível. Proposição : Seja g uma função unária computável. O predicado 'fi_n=g' não é decidível. Proposição : O predicado 'fi_n=fi_m' não é decidível. (Algumas notas (ps,pdf) sobre estes assuntos).


T34-16Dez
Um outro modelo de computabilidade: a classe das funções parciais recursivas (ps,pdf - Nota: neste semestre foram apenas leccionados os assuntos expostos na seccão 1). Funções atómicas (Z, S, U(n,i)). Definição de uma função por composição. Exemplos. Definição de uma função por recursão primitiva (início).


T35-18Dez
Definição de uma função por recursão primitiva. Exemplos de funções definidas por recursão (primitiva): h(x)=x!, h(x)=x^2, h(x)=x mónus 1.


T36-19Dez
Definição de uma função por recursão primitiva (conclusão). Exemplos de funções definidas por recursão primitiva: h(x,y)=x+y, h(x,y)=xy, h(x,y)=x^y. A função h(x,y)=x+y é função parcial recursiva: construção de h a partir de funções atómicas, composição e recursão. h(x,y)=x+y, h(x,y)=xy. Função definida por minimização. Exemplos de funções definidas por minimização: h(x)=raiz quadrada inteira de x, h(x)=quociente da divisão inteira de x por 4.

FIM