Modelos de Computação 2.ano LCC e LERSI URL: http://www.ncc.up.pt/~nam/aulas/0405/mc Escolaridade: 3.5T e 1P Frequência:Semanalmente serão propostos trabalhos aos alunos, que serão entregues nas caixas de MC junto ao segurança até hora indicada e que serão discutidos nas aulas práticas. Obtenção de frequência: Aproveitamento em 2/3 dos trabalhos propostos (7 em 10). Métodos de avaliação T rab trabalhos apresentados nas aulas práticas Exame Exame final. Nota mínima: 7 Aprovação por exame:(t rab 0.25) + Exame 0.75 9.5 Departamento de Ciência de Computadores da FCUP MC Aula 1 1
Bibliografia Livro adoptado: Introduction to Automata Theory, Languages and Computation, John E. Hopcroft, Rajeev Motwani and Jeffrey D. Ullman, 2000, AW, 2000, 2nd edition. (Cap 1-9) Leituras suplementares: Automata and Computability, Dexter C. Kozen, Springer, 1997. Departamento de Ciência de Computadores da FCUP MC Aula 1 2
Objectivos e Programa Objectivos Introdução ao estudo das linguagens formais, autómatos e computabilidade. Programa 1. Noção de linguagem formal 2. Autómatos finitos determinísticos 3. Autómatos finitos não determinísticos. 4. Expressões regulares e autómatos finitos 5. Propriedades das linguagens regulares 6. Minimização de autómatos finitos 7. Limitações dos autómatos finitos e Lema da repetição Departamento de Ciência de Computadores da FCUP MC Aula 1 3
8. Gramáticas independentes de contexto 9. Autómatos de pilha e GIC 10. Simplificações de gramáticas independentes de contexto e formas normais 11. Propriedades das linguagens independentes de contexto (LIC) 12. Lema da repetição para LIC 13. Autómatos de pilha determinísticos 14. Análise sintáctica. Algoritmos de Cocke-Kasami-Younger. 15. Máquinas de Turing. Vários modelos. 16. Computabilidade e Tese de Church-Turing. 17. Máquinas universais de Turing 18. Indecidibilidade Departamento de Ciência de Computadores da FCUP MC Aula 1 4
Fundamentos da Computação Pretende-se respoder às seguintes questões: [?] (Cap 1.1) O que significa uma função ser computável? Existem funções não computáveis? Como é que o poder computacional depende dos constructores da programação? O que é que um computador pode fazer eficientemente? Departamento de Ciência de Computadores da FCUP MC Aula 1 5
Origens fundamentos da matemática neurobiologia, linguística electrónica digital, etc Departamento de Ciência de Computadores da FCUP MC Aula 1 6
Ferramentas Demonstrações formais: por dedução por contradição por indução finita Departamento de Ciência de Computadores da FCUP MC Aula 1 7
Aplicações Vários tipos de software: compiladores pesquisadores em documentos na Web verificadores de sistemas; protocolos de comunicações e criptográficos... Departamento de Ciência de Computadores da FCUP MC Aula 1 8
Modelos de Computação Capturam certos aspectos da computação. Por ordem crescente de poder computacional: 1. memória finita: autómatos finitos, expressões regulares 2. memória finita com pilha infinita: autómatos de pilha 3. memória não restrita: máquinas de Turing, λ-calculus, funções recursivas, C, Haskel Departamento de Ciência de Computadores da FCUP MC Aula 1 9
Gramáticas e Linguagens Noam Chomsky (1959): hierarquia de classes de linguagens, que seriam modelos das linguagens naturais, definidas por gramáticas de complexidade crescente: 1. gramáticas lineares à direita 2. gramáticas independentes de contexto 3. gramáticas não restritas Facto: As gramáticas são computacionalmente equivalentes aos respectivos modelos de computação Departamento de Ciência de Computadores da FCUP MC Aula 1 10
Problemas decisão Um problema de decisão é uma função cujo resultado (resposta) pode ser apenas sim ou não. É especificado por: um conjunto A de dados, chamados instâncias. um subconjunto B A, das instâncias cuja a resposta é sim Exemplos Problema Instâncias Instâncias sim Dado um inteiro n, n é N inteiros primos primo? Dado um grafo G, G é conexo? grafos grafos conexos Departamento de Ciência de Computadores da FCUP MC Aula 1 11
Conceitos centrais de modelos de computação Abstração do conceito de computação manipulação de sequências finitas de símbolos Dados de um problema de decisão: sequências finitas de símbolos Problema A Codificação Símbolos Dado um inteiro n, n é primo? N representação de inteiros numa base b 0,1,.....b 1 Dado um grafo G, G é conexo? grafos matriz de adjacência 0 e 1 Departamento de Ciência de Computadores da FCUP MC Aula 1 12
Vamos então considerar: conjuntos (finitos) de símbolos (alfabeto) sequências de símbolos (palavras) conjuntos de palavras (linguagens) Vamos agrupar as linguagens em classes e caracterizar as suas propriedades computacionais. Departamento de Ciência de Computadores da FCUP MC Aula 1 13
Alfabeto e palavras Alfabeto conjunto finito de símbolos (Σ). {A,...,Z}, {α, β,... }, {a,b}, {0,1}, ASCII Palavra de Σ sequência finita de símbolos do alfabeto Σ Σ = {a, b} aabba a aaaaaaaa Comprimento duma palavra x, é número de símbolos de x, x Σ = {a, b} palavras de comprimento 2: aa ab ba bb Palavra vazia é a palavra com zero símbolos, denota-se ɛ a n é a palavra constituída por n símbolos a a 5 = aaaaa a 1 = a a 0 = ɛ Podemos definir a n indutivamente: a 0 = ɛ a n+1 = a n a Departamento de Ciência de Computadores da FCUP MC Aula 1 14
Σ k conjunto de todas as palavras de Σ de comprimento k(σ 0 = {ɛ}) {a, b} 2 = {aa, ab, ba, bb} Σ conjunto de todas as palavras de Σ (incluindo ɛ) Qual o cardinal de Σ? (Para responder mais tarde...) {a, b} = {ɛ, a, b, aa, ab, ba, bb, aaa, aab,...} {a} = {ɛ, a, aa, aaa, aaaa,...} = {a n n 0} Por definição: ={ɛ} Não confundir conjuntos de símbolos com palavras: {a, b} = {b, a} mas ab ba;{a, a, b} = {a, b} mas aab ab Departamento de Ciência de Computadores da FCUP MC Aula 1 15
Operações sobre palavras A concatenação ( ) de x e y é a palavra xy, obtida por justaposição de y no fim de x(representamos x y = xy) aab concatenada com bba é aabbba flor concatenada com bela é florbela é associativa (xy)z = x(yz) a palavra vazia é identidade: ɛx = xɛ = x xy = x + y (Σ,, ɛ) é um monóide Uma palavra v é uma subpalavra de w sse existem x e y tal que w = xvy Se y = ɛ então v é um sufixo de w. Se x = ɛ então v é um prefixo de w. Departamento de Ciência de Computadores da FCUP MC Aula 1 16
Σ = {0, 1} w = 010110 011 é subpalavra de w? e 10? e 111? flor é um prefixo de florbela. bela é um sufixo de florbela Quais os prefixos de 010111? E os sufixos? ɛ é uma subpalavra de qualquer palavra x n é a concatenação de n cópias da palavra x. Define-se indutivamente por: x 0 = ɛ x n+1 = x n x Sendo w = aaba determina w 0, w 1, w 2, w 3 e w 4 Para todo n 0, x n = n x. Prova! Departamento de Ciência de Computadores da FCUP MC Aula 1 17
Qual a relação entre amor e roma?e baabba e abbaab? A palavra inversa de x, denota-se por x R e pode-se definir por indução no comprimento de x: 1. Se x = 0 então x R = x = ɛ 2. Se x = n + 1, então x = ya (a Σ) e x R = ay R Exercício 1.1. Determina as inversas de: aabaab, bbabb, b Exercício 1.2. Mostra por indução que (xy) R = y R x R. Departamento de Ciência de Computadores da FCUP MC Aula 1 18
Linguagem (formal) de alfabeto Σ Linguagem é qualquer subconjunto de Σ, i.e. qualquer conjunto de palavras de Σ Σ = {a, b} {aa, ab, ba, bb} ou {x x {a, b} e x = 2} {a, aa, ab, ba, aaa, aab, aba,...} ou {x x {a, b} com pelo menos um a} {ɛ, ab, ba, abab, aabb, baba, bbaa, abba, baab,...} ou {x x {a, b} com o mesmo número de a e b} Σ Σ n Σ {ɛ} As linguagens podem ser finitas ou infinitas. Dá exemplo de cada... Pretende-se obter representações finitas para as linguagens infinitas, i.e. L = {x Σ x têm a propriedade P } Departamento de Ciência de Computadores da FCUP MC Aula 1 19
Problemas e Linguagens Um problema de decisão equivale a decidir se uma palavra pertence a uma dada linguagem. Portanto podemos identificar problemas e linguagens. Dado um alfabeto Σ e L uma linguagem sobre Σ (L Σ ), o problema L é: Dado w Σ, decidir se w L Exemplo: Primalidade L p L p = {x {0, 1} x é a representação binária de um número primo} Departamento de Ciência de Computadores da FCUP MC Aula 1 20
Revisões de Conjuntos a A a pertence a A, a é elemento de A a {a, b, c} a / A a não pertence a A d / {a, b, c} A B A contido em B, x A x B {a, b} {b, c, a} A B A contém B, B A {b, c, a} {a, b} A = B igualdade de conjuntos, A B e B A {a, b, c} = {b, c, a} A B x tal que x A e x / B ou vice-versa ou {} conjunto vazio #A ou A cardinal de A, número de elementos (finito {a, b, c} = 3 ou infinito) P(A) Conjunto dos subconjuntos de A P({a, b}) = {, {a}, {b}, {a, b}} Partição de A subconjunto de P(A), tal que os elementos são {{a}, {c, b}} não vazios, disjuntos 2 a 2 e a reunião é A A B Produto cartesiano de A e B, conjunto de pares ordenados (a, b), a A e b B R A B Relação binária de A em B Departamento de Ciência de Computadores da FCUP MC Aula 1 21
Operações sobre linguagens Intersecção de A com B A B = {x x A e x B} Reunião de A com B A B = {x x A ou x B} Complementar de B em A A \ B = {x x A e x / B} Complementar de A A, complementar de A em U, quando está impĺıcito um universo U Complementar de A em Σ : {x Σ x / A} Concatenação AB = {xy x A e y B} {a, ab}{b, ba} = {ab, aba, abb, abba} Normalmente AB BA Departamento de Ciência de Computadores da FCUP MC Aula 1 22
As potências L n de L são definidas indutivamente por: L 0 = {ɛ} L n+1 = LL n Isto é, L n = {x 1 x 2... x n x i L, 1 i n} {ab, aab} 0 = {ɛ} {ab, aab} 1 = {ab, aab} {ab, aab} 2 = {abab, abaab, aabab, aabaab} {ab, aab} 3 = {ababab,ababaab,abaabab,aababab, abaabaab,aababaab,aabaabab,aabaabaab} Departamento de Ciência de Computadores da FCUP MC Aula 1 23
Fecho de Kleene O fecho de Kleene L de L é a reunião de todas as potências finitas de L L = L 0 L 1 L 2 L 3... = n 0 L n ou, equivalentemente, L = {x 1 x 2... x n n 0 e x i L, 1 i n} i.e, a linguagem das palavras que são concatenação de palavras de L. Exercício 1.3. Mostrar a equivalência das duas definições. Σ, o conjunto das palavras de alfabeto Σ, é o fecho de Kleene de Σ = {ɛ} {01} = {ɛ, 01, 0101, 010101, 01010101, 0101010101,...} {000} = {ɛ, 000, 000000, 000000000,...} = {0 3n n N} L + é a reunião das potências não nulas de L L + = LL = n 1 L n Departamento de Ciência de Computadores da FCUP MC Aula 1 24
Exercício 1.4. Seja Σ o alfabeto {0, 1}. Sendo A = {10, 11} e B = {00, 1}, determina: A B, AB,BA, A 3, A Exercício 1.5. Seja aaaba uma palavra de alfabeto {a, b}. A que linguagens pertence: (a) {a, b} (b) {aaa, bab}{ba, bb} (c) {aaa} {b} {a} (d) {a} {b} {a} (e) {aa} {a} {a, ba, bb, ɛ} Departamento de Ciência de Computadores da FCUP MC Aula 1 25
Algumas propriedades das operações Associatividade, e concatenação: (A B) C = A (B C), (A B) C = A (B C), (AB)C = A(BC) Comutatividade e (A B) = (B A), (A B) = (B A) é o elemento neutro para a A = A = A é elemento absorvente para a concatenação A = A = Departamento de Ciência de Computadores da FCUP MC Aula 1 26
e distribuem sobre uma sobre a outra (A (B C)) = (A B) (A C), (A (B C)) = (A B) (A C) Concatenação distribui sobre a (mas não sobre ) A(B C) = AB AC Leis de Morgan (A B) = A B, (A B) = A B Se L 1, L 2 Σ e L 1 L 2 então L n 1 L n 2 (n N), e L 1 L 2 Sejam L 1, L 2 Σ. L 1 L 1 L 2 Se ɛ L 1 então L 2 L 1 L 2 e se ɛ L 2 então o fecho de Kleene verifica Departamento de Ciência de Computadores da FCUP MC Aula 1 27
A A = A (A ) = A ({ɛ} A) = A (A B ) = (A B) = {ɛ} Exercício 1.6. Mostra todas as propriedades anteriores. Departamento de Ciência de Computadores da FCUP MC Aula 1 28
Alfabeto Palavra Sumário dos conceitos novos Concatenação Inversa Vazia Linguagem concatenação fecho de Kleene relação com outras operações sobre conjuntos Departamento de Ciência de Computadores da FCUP MC Aula 1 29
Leituras [?] (Cap. 1) 1.1 Modelos de Computação; 1.2 a 1.4 Revisão de demonstrações formais; 1.5 Departamento de Ciência de Computadores da FCUP MC Aula 1 30