LINGUAGENS FORMAIS Modelos Determinísticos e Não Determinísticos Modelos Matemáticos Usam-se modelos matemáticos para representar eventos (fenômenos) do mundo real. Ressalta-se contudo que é muito importante distiguir entre o fenômeno propriamente dito e o(s) modelo(s) matemático(s) usado(s) para representá-lo!!! Todas as vezes que empregamos Matemática a fim de estudar alguns fenômenos de observação, devemos essencialmente começar por construir um modelo matemático (determinístico ou probabilístico) para esses fenômenos. (...) A fim de verificar a validade de um modelo, devemos deduzir um certo número de consequências de nosso modelo e, a seguir, comparar esses resultados previstos (pelo modelo) com observações efetuadas. (Prof. J. Neyman University of California Publications in Statistics, Vol I, University of California Press, 1954) 41
LINGUAGENS FORMAIS Modelos Determinísticos e Não Determinísticos Os modelos podem ser dois tipos: Determinísticos ou Não Determinísticos Modelos Determinísticos Nos modelos determinísticos, os fenômenos são representados por um conjunto E = { e 1, e 2,... e n } de variáveis de entrada e um conjunto S = { s 1, s 2,..., s k } de variáveis de saída cujos valores dependem dos valores das variáveis de entrada. O modelo é dito determinístico sempre que para uma determinada instância de E se produz a mesma instância de S. 42
LINGUAGENS FORMAIS Modelos Determinísticos e Não Determinísticos Modelos Determinísticos - Exemplo Espaço percorrido por um móvel à uma determinada velocidade constante num determinado espaço de tempo: E = V * T onde E = espaço (variável de saída), V = velocidade constante (variável de entrada) T = tempo decorrido do deslocamento do móvel (variável de entrada) Sempre que V = 80 Km/h e T = 2h, tem-se que E = 160 Km. Modelo Determinístico!!! 43
LINGUAGENS FORMAIS Modelos Determinísticos e Não Determinísticos Modelos Determinísticos - Exemplo Autômatos Finitos (AF). Porquê AFD? Porquê o termo determinístico? Note que em um AFD, se a máquina AF se encontra em determinado estado q k e na fita de entrada de dados for lida uma determinada primitiva a, então sempre o novo estado do AF é um determinado estado q m. q k x a q m 44
LINGUAGENS FORMAIS Modelos Determinísticos e Não Determinísticos Modelos Não Determinísticos Nos modelos não determinísticos, os fenômenos são representados por um conjunto E = { e 1, e 2,... e n } de variávies de entrada e um conjunto S = { s 1, s 2,..., s k } de variáveis de saída cujos valores dependem dos valores das variávies de entrada. O modelo é dito não determinístico se para uma mesma determinada instância de E é possível produzir instâncias distintas de S. Os modelos não determinísticos, em geral, estão associados a fenômenos probabilísticos (ou estocásticos). Exemplo: Resultado do lançamento de uma moeda 45
LINGUAGENS FORMAIS Modelos Determinísticos e Não Determinísticos Modelos Não Determinísticos - Exemplos Modelagem dos seguintes fenômenos (experimentos): Lançar um dado e observar o número mostrado na face de cima. Lançar uma moeda quatro vezes e observar o número total de caras obtido. Lançar uma moeda quatro vezes e observar a sequência obtida de caras e coroas. Em uma linha de produção, fabricar peças em série e contar o número de peças defeituosas produzidas num período contínuo de 24 horas. Em uma urna que contém 18 bolas pretas e 12 bolas azuis retirar ao acaso uma bola e anotar sua cor Fabricar uma lâmpada e colocá-la num soquete anotando o tempo decorrido (em horas) até queimar Com base no banco de dados de compras de clientes de uma empresa, verificar, em quantos dias o estoque de determinada mercadoria será zerado. 46
LINGUAGENS FORMAIS Modelos Determinísticos e Não Determinísticos Modelos Não Determinísticos - Exemplo Considerando-se a existência de máquinas AFD, é possível supor a existência e/ou construção de autômatos finitos não determinísticos (AFN)? Sim, é possível projetar um autômato finito (AF) de modo que, se a máquina AF se encontra em determinado estado q k e na fita de entrada de dados for lida uma determinada primitiva a, então o AF pode assumir estados alternativos q m1, q m2,... q mr. 47
LINGUAGENS FORMAIS Autômato Finito Não Determinístico Autômato Finito Não Determinístico (AFN) Máquina igual ao AFD composta de 3 partes: a) Fita : dispositivo de entrada que contém a informação a ser processada b) Unidade de controle: Reflete o estado corrente da máquina. Possui uma unidade de leitura (cabeça da fita) a qual acessa uma célula da fita de cada vez e movimentase exclusivamente para a direita c) Programa ou função de transição: função que comanda as leituras e define o estado (status) da máquina 48
LINGUAGENS FORMAIS Autômato Finito Não Determinístico Autômato Finito Não Determinístico (AFN) X Autômato Finito Determinístico (AFD) A função programa do AFN, ao processar uma entrada (estado corrente e símbolo lido) tem como resultado um conjunto de novos estados: δ: Q x Σ 2 Q Um AFN assume um conjunto de estados alternativos, como se houvesse uma multiplicação da unidade de controle da máquina, uma para cada alternativa, processando independentemente, sem compartilhar recursos com as demais. Assim o processamento de um caminho não influencia nem é influenciado pelos demais caminhos 49
LINGUAGENS FORMAIS Autômato Finito Não Determinístico Autômato finito não determinístico (AFN) é uma 5-upla: Onde: M = (Σ, Q, δ, q 0, F) Σ Alfabeto de símbolo de entrada Q Conjunto de estados possíveis do autômato δ Função programa ou função de transição δ: Q x Σ 2 Q q 0 Estado inicial do autômato (Obs.: q 0 Q ) F Conjunto de estados finais tal que F Q Processamento de um AFN M, para uma palavra (SENTENÇA) w de entrada Sucessiva aplicação da função programa para cada símbolo de w (da esquerda para a direita) até ocorrer uma condição de parada Após processar o último símbolo da palavra w escrita na fita, o AFN assume um estado em cada um dos caminhos obtidos. Se em ao menos um caminho o estado é um estado final, então o AFN aceita w. 50
51 LINGUAGENS FORMAIS Autômato Finito Não Determinístico
52 LINGUAGENS FORMAIS Autômato Finito Não Determinístico
LINGUAGENS FORMAIS Autômato Finito Não Determinístico Embora a facilidade de não-determinismo seja, aparentemente, um significativo acréscimo ao Autômato finito, na realidade não aumenta seu poder computacional (em termos de reconhecimento) AFD podem levar a reconhecedores mais rápidos que AFN. Contudo, AFD pode ser muito maior do que um AFN Para cada AFN é possível construir um AFD equivalente que realiza o mesmo processamento. Também é possível construir a partir de um AFD, um AFN equivalente. 53
54 LINGUAGENS FORMAIS AFN AFD Construção de um AFD a partir de um AFN
AFN AFD Construção de um AFD a partir de um AFN - Exemplo 55
Autômatos Finitos com Movimentos Vazios Movimentos vazios Generalização dos modelos de máquinas não-determinísticas A facilidade de movimentos vazios não aumenta o poder de reconhecimento das linguagens uso de movimentos vazios facilitam algumas construções e demonstrações relacionadas com autômatos 56
LINGUAGENS FORMAIS Autômato Finito com Movimentos Vazios Autômato finito com movimentos vazios (AFε): 5-upla Onde: M = (Σ, Q, δ, q 0, F) Σ Alfabeto de símbolo de entrada Q Conjunto de estados possíveis do autômato δ Função programa ou função de transição δ: Q x (Σ {ε}) 2 Q q 0 Estado inicial do autômato (Obs.: q 0 Q ) F Conjunto de estados finais tal que F Q A partir de um AFε qualquer é possível construir um AFN que realiza o mesmo processamento 57
58 LINGUAGENS FORMAIS AFN e AFε - Exemplos
59 LINGUAGENS FORMAIS AFN e AFε - Exemplos
60 LINGUAGENS FORMAIS AFN e AFε - Exemplos
LINGUAGENS FORMAIS AFD, AFN e AFε Poder de reconhecimento limitado Não dispõem de memória Os estados da máquina representariam memória 61
Linguagem LINGUAGENS FORMAIS Brevíssima revisão do que foi visto De modo resumido, podemos dizer que linguagem é um conjunto (finito ou não) de sentenças (Σ*) construídas sobre um determinado alfabeto (Σ). Sentença É formada pela justaposição ( colagem ) dos símbolos do alfabeto Σ da linguagem em questão. É a sentença que carrega embutida em si significados compreensíveis pelos usuários da linguagem. Gramática De modo resumido, gramática é o conjunto de regras usadas que definem quais justaposições ( colagens ) podem ser realizadas com os símbolos do alfabeto Σ da linguagem em questão para formação das sentenças da mesma. Em última instância, é a fábrica de sentenças da linguagem. 62
LINGUAGENS FORMAIS Brevíssima revisão do que foi visto Linguagens Regulares ( ou Lineares ou Tipo 3) Uma Linguagem L é dita ser uma Linguagem Regular (ou Linear ou Tipo 3) se existe uma Gramática Regular G tal que G gera todas as sentenças de L Uma Linguagem L é dita ser uma Linguagem Regular (ou Linear ou Tipo 3) se existe um AFD (ou AFN) M talque M reconhece todas as sentenças de L. Gramáticas Regulares ( ou Lineares ou Tipo 3) Uma Gramática G = (V,T,P,S) é Regular (ou Linear ou Tipo 3) se todas suas regras de produção apresentam forma A wb ou A w onde A, B V e w T * 63
LINGUAGENS FORMAIS Gramáticas Tipo 3, 2, 1 e 0 Gramáticas Regulares ( ou Lineares ou Tipo 3) Regras de produção com formato A wb ou A w onde A, B V e w T * Gramáticas Livres de Contexto ( ou Tipo 2) Regras de produção com formato A α onde α (V T) * Gramáticas Sensíveis ao Contexto ( ou Tipo 1) Regras de produção com formato α β onde α (V T) *, β (V T) * e α β Gramáticas Irrestritas ( ou Tipo 0) Regras de produção com formato α β onde α (V T) *, β (V T) * As gramáticas tipo 3, 2, 1 e 0 são as 4 classes de gramáticas capazes de gerar 4 classes de linguagens, de acordo com a denominada hierarquia de linguagens de Chomsk. 64
LINGUAGENS FORMAIS Gramáticas Tipo 3, 2, 1 e 0 Observe que as gramáticas Tipo 3 (Regulares) são as mais restritivas: à esquerda da regra de produção deve conter uma e somente uma variável não terminal. Além disso, à direita da regra só pode ocorrer no máximo uma variável não terminal. As gramáticas Tipo 2 (Livre Contexto) são pouco menos restritivas em relação às gramáticas Tipo 3. À esquerda da regra de produção deve, assim como na gramática Tipo 3, conter uma e somente uma variável não terminal, mas, à direita da regra de produção, o contexto é livre, ou seja, não há restrições. As gramáticas Tipo 1 (Sensíveis ao Contexto) não restringem o conteúdo nem à esquerda, nem à direita das regras de produção. Apenas exigem que o tamanho dos componentes à direita da regra de produção seja maior que o tamanho de componentes à esquerda da regra de produção. As gramáticas Tipo 0 (Irrestritas) não apresentam restrição alguma no formato das regras de produção. Correspondem ao dispositivo mais abrangente de geração de linguagens. 65
LINGUAGENS FORMAIS Linguagens Tipo 3, 2, 1 e 0 As Gramáticas Tipo 3, 2, 1 e 0 geram, respectivamente Linguagens Tipo 3, 2, 1 e 0 Gramática gera Linguagem Tipo 3 (Regular) Tipo 3 (Regular) Tipo 2 (Livre Contexto) Tipo 2 (Livre Contexto) Tipo 1 (Sensível ao Contexto) Tipo 1 (Sensível ao Contexto) Tipo 0 (Irrestrita) Tipo 0 (Irrestrita) As Linguagens Tipo 3, 2, 1 e 0 podem ser formalmente definidas, não somente por suas respectivas gramáticas, mas também por um tipo específico de reconhecedor. Os autômatos finitos (AFD ou AFN) reconhecem sentenças de linguagens Tipo 3 (linguagens regulares) Os autômatos de pilha (AP) reconhecem sentenças de linguagens Tipo 2 (linguagens de livre contexto) As Máquinas de Turing com fita limitada reconhecem sentenças de linguagens Tipo 1 (linguagens Sensíveis ao Contexto) As Máquinas de Turing reconhecem sentenças de linguagens Tipo 0 (linguagens recursivamente enumeráveis) 66
LINGUAGENS FORMAIS Linguagens Tipo 3, 2, 1 e 0 Asociação entre classes de linguagens, gramáticas e reconhecedores Linguagem Gramática Reconhecedor Tipo 3: Regular Tipo 3: Regular Autômatos finitos (AFD ou AFN) Tipo 2: Livre Contexto Tipo 2: Livre Contexto Autômatos de Pilha Tipo 1: Sensíveis ao contexto Tipo 1: Sensíveis ao contexto Máquina de Turing com fita limitada Tipo 0: Recursivamente enumerável Tipo 0: Irrestrita Máquina de Turing 67
68 LINGUAGENS FORMAIS Linguagens de Livre Contexto (Tipo 2) Reconhecedores - Autômatos de Pilha
69
70
71
72
73
74
75
76
77 LINGUAGENS FORMAIS Máquina de Turing - Caracterização rigorosa
78 LINGUAGENS FORMAIS Máquina de Turing - Caracterização rigorosa
79 LINGUAGENS FORMAIS Máquina de Turing - Caracterização rigorosa
80 LINGUAGENS FORMAIS Máquina de Turing - Caracterização rigorosa
LINGUAGENS FORMAIS Máquina de Turing - Exercícios 1) Projete uma Máquina de Turing sobre o alfabeto Σ = {0, 1} que reconheça sentenças w da linguagem L onde L = { w w possui número igual de primitivas 0 e 1 } 2) Projete uma Máquina de Turing sobre o alfabeto Σ = {0, 1} que reconheça sentenças w da linguagem L onde L = { w w é palíndroma } 3) Projete uma Máquina de Turing sobre o alfabeto Σ = {0, 1} que reconheça sentenças da linguagem L onde L = {ww R }. Obs.: R significa reverso. Exemplo: se w = 0100, então ww R = 01000010 4) Projete uma Máquina de Turing sobre o alfabeto Σ = {0, 1} que reconheça sentenças w da linguagem L onde L = { w w = 0 n 1 m onde n m 1 } 5) Projete uma Máquina de Turing sobre o alfabeto Σ = {0, 1} que reconheça sentenças w da linguagem L onde L = { w w = 0 n 1 2n onde n 0 } 81
LINGUAGENS FORMAIS Máquina de Turing - Exercícios 6) Projete uma Máquina de Turing sobre o alfabeto Σ = {a,b,c} que reconheça sentenças w da linguagem L onde L = { w w = a i b k c m onde i 1,k 1,m 1 } 7) Projete uma Máquina de Turing sobre o alfabeto Σ = {a,b,c} que reconheça sentenças w da linguagem L onde L = { w w = a i b k c m onde i = k ou i = m mas k m } 8) Projete uma Máquina de Turing sobre o alfabeto Σ = {a,b,c} que reconheça sentenças w da linguagem L onde L = { w w = a n b n c n onde n 1 } 9) Projete uma Máquina de Turing sobre o alfabeto Σ = {a,b,c} que reconheça sentenças w da linguagem L onde L = {w w possui o mesmo número de símbolos a, b e c} 10) Projete uma Máquina de Turing sobre o alfabeto Σ = {a,b} que reconheça sentenças w da linguagem L onde L = { w w = a n b n a n+m onde n 0 e m 0 } 82
LINGUAGENS FORMAIS Máquina de Turing - Exercícios 11) Projete uma Máquina de Turing sobre o alfabeto Σ = {a,b} que reconheça sentenças w da linguagem L onde L = { ww w é palavra de {a,b}* } 12) Projete uma Máquina de Turing sobre o alfabeto Σ = {a,b} que reconheça sentenças w da linguagem L onde L = {(awwa) n w é palavra de {a,b}* e n 0 } 13) Projete uma Máquina de Turing sobre o alfabeto Σ = {a,b} que reconheça sentenças w da linguagem L onde L = {w w = a 1 b 2 a 3 b 4...a n-1 b n e n é par } 14) Execução de soma de número binário: projete uma Máquina de Turing sobre o alfabeto Σ = {0, 1} que adicione 1 ao número binário (sentença w) que está armazenado na fita da MT. 15) Projete uma Máquina de Turing para computar a função 83
LINGUAGENS FORMAIS Máquina de Turing - Exercícios 16) Execução de multiplicação de uma sentença w = 0 m. projete uma Máquina de Turing sobre o alfabeto Σ = {0, 1} que multiplique a sentença n vezes, conforme a indicação 0 n. Inicialmente a fita se encontra assim: 0 m 10 n 1. Note então que o símbolo 1 é um separador dos operandos 0 m e 0 n. Exemplo: Fita inicialmente: 000100001. Após a multiplicação a fita fica assim: 000000000000. (Em resumo, 3 x 4 = 12!!) 17) Projete uma Máquina de Turing sobre o alfabeto Σ = {a,b,c,d} que reconheça sentenças w da linguagem L onde L = {w w = a p b m a p+3 b m-1, onde p 0 e m 1 } 84