Baixe o app para aproveitar ainda mais
Prévia do material em texto
Teoria da Computação Máquinas de Turing Prof. Dr.-Ing. Leonardo Andrade Ribeiro DCC-UFLA, Lavras Prof. Dr.-Ing. Leonardo Andrade Ribeiro Autômatos Finitos: Desafio Projete um automâto finito (determinístico ou não-determinístico) que reconheça a seguinte linguagem: 𝐿 = 0𝑛1𝑛 | 𝑛 ≥ 0 2 Prof. Dr.-Ing. Leonardo Andrade Ribeiro Autômatos Finitos: Desafio Problema: Para reconhecer 𝐿, um autômato precisa de alguma maneira “lembrar” a quantidade de 0‘s lidos na entrada Temos que a quantida de 0‘s não é limitada (0𝑛, onde 𝑛 não é limitado) Para reconhecer 𝐿 seria necessário “acompanhar“ uma quantidade ilimitada de possibilidades de processamento Automâtos finitos realizam este “acompanhamento” através de estados e transições Entretanto, o número de estados é limitado... 3 Prof. Dr.-Ing. Leonardo Andrade Ribeiro Expressões Regulares, AFs e Linguagens Regulares 4 Expressoões Regulares Operações Regulares {∪,°, *} Autômatos Finitos Linguagens Regulares reconhecem descrevem Também podemos dizer que autômatos descrevem linguagens regulares Prof. Dr.-Ing. Leonardo Andrade Ribeiro Gramáticas e Linguagens Livres de Contexto e Autômatos de Pilha 5 Grámaticas Livres de Contexto Autômatos de Pilha Linguagens Livres de Contexto reconhecem descrevem Também podemos dizer que autômatos de pilha descrevem linguagens livres de contexo Prof. Dr.-Ing. Leonardo Andrade Ribeiro Linguagens e Autômatos 6 Linguagens Livres de Contexto Linguagens Regulares Autômato de Pilha Autômato Finito reconhece reconhece Prof. Dr.-Ing. Leonardo Andrade Ribeiro Linguagens Enumeráveis Recursivamente ou Tipo 0 Linguagens Sensitivas ao Contexto ou Tipo 1 Linguagens Livres de Contexto ou Tipo 2 Hierarquia de Chomsky 7 Linguagens Regulares ou Tipo 3 Prof. Dr.-Ing. Leonardo Andrade Ribeiro Linguagens e Máquinas 8 Linguagens Máquinas Recursivamente Enumeráveis Máquina de Turing, Máquina de Turing Não-Determinística Sensitivas ao Contexto Autômato Limitado Linearmente Livres de Contexto Autômato de Pilha Regulares Autômato Finito Determinístico, Automato Finito Não-Determinístico Prof. Dr.-Ing. Leonardo Andrade Ribeiro Linguagens e Máquinas 9 Linguagens Máquinas Recursivamente Enumeráveis Máquina de Turing, Máquina de Turing Não-Determinística Sensitivas ao Contexto Autômato Linearmente Limitado Livres de Contexto Autômato de Pilha Regulares Autômato Finito Determinístico, Automato Finito Não-Determinístico Prof. Dr.-Ing. Leonardo Andrade Ribeiro Máquinas de Turing (MT) 10 Modelo computacional proposto por Alan Turing em 1936 Máquina de estados finita com mémoria ilimitada Modelo computacional universalmente aceito como possuindo poder de expressão equivalente aos computadores modernos Prof. Dr.-Ing. Leonardo Andrade Ribeiro Máquinas de Turing (2) Componentes: • Uma fita infinita usada como dispositivo de entrada (a palavra de entrada encontra-se inicialmente escrita na fita), como aréa de memória para informações intermediárias de processamento, e como dispositivo de saída (resultados podem ser escritos na fita após a computação) • Uma cabeça de leitura/escrita (cabeça le) e movimentação ao longo da fita • Um controle de estados finitos A MT pode Aceitar ou Rejeitar a entrada caso a máquina entre nos estados de aceitação ou rejeição, respectivamente; ou então a MT pode continuar executando para sempre 11 Prof. Dr.-Ing. Leonardo Andrade Ribeiro Máquinas de Turing (3) Uma MT pode escrever e ler na fita, irrestritamente A cabeça de leitura/escrita (cabeça le) pode se movimentar tanto para a direita quanto para a esquerda A fita é infinita • Entretanto, por simplicidade, vamos convencionar que a fita pode extender-se indefinidamente apenas da esquerda para a direita Estados especificados para rejeição ou aceitação possuem efeito imediato 12 controle a b c b ˽ ˽ ... ˽ símbolo em branco Prof. Dr.-Ing. Leonardo Andrade Ribeiro Exemplo 13 Considere a linguagem B = {p#p | 𝑝 ∈ 0,1 ∗ } Vamos descrever uma MT para aceitar a entrada se ela pertence a B 0 1 0 0 1 1 1 1 0 # 0 1 0 0 1 1 1 1 0 ˽ … Prof. Dr.-Ing. Leonardo Andrade Ribeiro Exemplo (2) 14 0 1 0 0 1 1 1 1 0 # 1 1 0 0 1 1 1 1 0 ˽ … 0 1 0 0 1 1 1 1 0 # x 1 0 0 1 1 1 1 0 ˽ … x 1 0 0 1 1 1 1 0 # x 1 0 0 1 1 1 1 0 ˽ … x x x x x x x x x # x x x x x x x x x ˽ … . . . Aceita Prof. Dr.-Ing. Leonardo Andrade Ribeiro Exemplo (3)* 1. Percorra toda a entrada e verifica se a mesma contém um único símbolo #. Se não for o caso, Rejeita 2. Faça movimentos em zig-zag em torno do símbolo #: movimente a cabeça para ler um símbolo à esquerda de # e depois à direita. Identifique cada símbolo já lido sobescrevendo este símbolo com X 3. Quando todos os símbolo à esquerda tiverem sido marcados, verifique se ainda existem símbolos à direita. Se sim, Rejeita; se não, Aceita 15 Esta descrição visa passar uma idéia inicial a respeito do processamento de MTs. O formato para descrição de alto-nível de MTs será refinado mais adiante. Prof. Dr.-Ing. Leonardo Andrade Ribeiro Definição Formal de MTs Uma Máquina de Turing é uma sétupla, 𝑄, ∑, Γ, 𝛿, 𝑞𝑎, 𝑞𝑟 onde 𝑄, ∑, Γ são conjuntos finitos e 1. 𝑄 é o conjunto de estados; 2. ∑ é o alfabeto de entrada; 3. Γ é o alfabeto da fita que contém necessariamente o alfabeto de entrada e o símbolo “branco” ˽ , onde ˽ ∈ Γ − ∑ ; portanto temos que ∑ ⊂ Γ 4. : Q Γ Q Γ {L, R}; 5. q0 ∈ Q é o estado inicial 6. qa é o estado de Aceitação 7. qr é o estado de Rejeição e qa ≠qr 16 Prof. Dr.-Ing. Leonardo Andrade Ribeiro A Função de Transição : Q Γ Q Γ {L, R} L e R determinam movimentos da cabeça para a esquerda e direita, respectivamente Exmplo: (q,a) (r, b, L) • Quando a máquina estiver em um estado q e a cabeça está sobre um quadrante da fita contendo o símbolo a, então a máquina vai para o estado r, sobescreve o símbolo a com o símbolo b e a cabeça le é movimentada para a esquerda 17 Prof. Dr.-Ing. Leonardo Andrade Ribeiro A Função de Transição: Exemplos 18 0 1 0 0 1 1 1 1 0 # 1 1 0 0 1 1 1 1 0 ˽ … (q1,1) (q2, x, L) 0 1 0 0 1 1 1 1 0 # x 1 0 0 1 1 1 1 0 ˽ … Representação em diagrama de estados q1 q2 1→x, L Prof. Dr.-Ing. Leonardo Andrade Ribeiro A Palavra de Entrada Inicialmente a máquina M recebe uma palavra 𝑝1𝑝2 … 𝑝𝑛 ∈ ∑* escrita nos n quadrantes mais à esquerda da fita O restante da fita é preenchido com simbolos ˽ ; portanto, como ˽ ∉ ∑, o primeiro símbolo branco denota o final da entrada 19 e n t r a d a ˽ ˽ ˽ … Exemplo Prof. Dr.-Ing. Leonardo Andrade Ribeiro A Computação de MTs Uma MT M inicia sua computação posicionando a cabeça de le no primeiro quadrante da fita, da esquerda para a direita 20 e n t r a d a ˽ ˽ ˽ … Exemplo Prof. Dr.-Ing. Leonardo Andrade Ribeiro A Computação de MTs (2) A computação prossegue de acordo com a entrada e as regras descritas pela função de transição de estados A cabeça de le movimenta-se de acordo com as regras de transição. De acordo com a nossa convenção, a única exceção ocorrerá quando a transição indicar movimentação para a esquerda e cabeça esteja sobre o primeiro símbolo da fita. Neste caso a cabeça permance no mesmo lugar 21 Prof. Dr.-Ing. Leonardo Andrade Ribeiro A Computação de MTs (2) A computação continua até M entrar nos estados qa ou qr . Neste ponto, M para. Caso contrárioM continua executando para sempre 22 q qa ˽ → ˽, R qr 0 → 0, R loop aceita rejeita Prof. Dr.-Ing. Leonardo Andrade Ribeiro Configuração de MTs Existem três componentes que são modificáveis em uma MT • Estados • Conteúdo da fita • Localização da cabeça de le O conjunto destes três componentes é chamado de configuração da MT 23 Prof. Dr.-Ing. Leonardo Andrade Ribeiro Notação Para Configurações u q v representa uma configuração de MT onde • q é um estado • o conteúdo da fita é uv, onde u e v são palavras sobre o alfabeto Γ • A cabeça de le encontra-se sobre o primeiro símbolo de v. A fita contém apenas símbolos brancos após o último símbolo de v 24 Prof. Dr.-Ing. Leonardo Andrade Ribeiro Exemplo 25 1 2 3 4 5 6 7 8 9 ˽ … qi • u = 1234 • v = 56789 • Configuração: 1234qi56789 Prof. Dr.-Ing. Leonardo Andrade Ribeiro Exercício 1 Apresente o diagrama para a máquina M1 que reconhece a linguagem B = {p#p | 𝑝 ∈ 0,1 ∗ } Simplificação: não é necessário representar o estado de rejeição e as transições que conduzem a este estado 26 Prof. Dr.-Ing. Leonardo Andrade Ribeiro Exercício 2: Solução 27 q1 q8 qa q6 q7 q2 q4 q3 q5 #→R x→R ˽→R #→R 0,1→R x→R 0,1,x→L #→L x→R 0,1→L #→R 0,1→R x→R Prof. Dr.-Ing. Leonardo Andrade Ribeiro Configurações de MTs Uma configuração C1 produz outra configuração C2 se a MT pode transitar de C1 para C2 em um único passo, isto é, se existe uma transição de estados que conduz a MT da configuração C1 para C2 28 Prof. Dr.-Ing. Leonardo Andrade Ribeiro Configurações de MTs (2) Considere a, b, e c em Γ e u e v em Γ* e os estados qi e qj Caso em que MT move-se para a esquerda • Considere as configurações uaqibv e uqjacv • Dizemos que uaqibv produz uqjacv se na função de transição: (q1,b) (qj, c, L) Caso em que MT move-se para a direita • Considere as configurações uaqibv e uacqjv • Dizemos que uaqibv produz uacqjv se na função de transição: (q1,b) (qj, c, R) 29 Prof. Dr.-Ing. Leonardo Andrade Ribeiro Configurações de MTs (3) Ínicio da fita -> qibv • qibv produz qicv quando o movimento é para esquerda (cabeça le não se movimenta ) • qibv produz cqiv quando o movimento é para direita Final da fita • uaqi é equivalente a uaqi ˽ 30 Prof. Dr.-Ing. Leonardo Andrade Ribeiro Configurações Especiais Configuração de início: q0p para uma entrada p Configuração de aceitação: o estado da configuração é qa Configuração de rejeição: o estado da configuração é qr Configurações de aceitação e rejeição são também configurações de parada porque não produzem outras configurações 31 Prof. Dr.-Ing. Leonardo Andrade Ribeiro Aceitação da Entrada Uma MT aceita uma entrada p se existe uma sequência de configurações C1C2,...,Ck onde • C1 é uma configuração de ínicio de M para entrada p • Cada Ci produz Ci+1 • Ck é uma configuração de aceitação A coleção de palavras que M aceita ou a linguagem que M reconhece, denotado por L(M), é a linguagem de M 32 Prof. Dr.-Ing. Leonardo Andrade Ribeiro Exercício 2 Projete uma TM M2 que reconheça a linguagem A = {02 𝑛 𝑛 ≥ 0 Ou seja a TM deve reconhecer palavras de comprimento igual a alguma potência de 2 (0, 00, 0000, 00000000, etc, mas não 000 ou 000000) 33 Prof. Dr.-Ing. Leonardo Andrade Ribeiro Exercício 1 (2) Intuição: |p| = 2n = 2 X 2 X ... X 2 34 n Caso trivial: comprimento de p é ímpar->Rejeita Se o comprimento de p é par e realizarmos divisões sucessivas por 2 iremos obter em algum momento o resultado 1 (após n divisões). Qualquer outro número ímpar obtido como resultado de uma divisão implica que o tamanho de p não é uma potência de dois Como podemos expressar esta computação usando uma MT? Prof. Dr.-Ing. Leonardo Andrade Ribeiro Exercício 2 (3) 1. Percorra a palavra p realizando o seguinte procedimento: após ler um 0, marque o zero seguinte com x. Se apenas um 0 foi lido no Passo 1, Aceita 2. Se a fita continha mais de um zero e o número é impar, Rejeita 3. Volte a cabeça le para o começo da fita 4. Vá para o passo 1 35 Prof. Dr.-Ing. Leonardo Andrade Ribeiro Exercício 2 (4) M2 = (Q, ∑, Γ, , q1, qa, qr) Q = {q1, q2, q3, q4, q5, qa, qr}, ∑={0}, Γ = {0, x, ˽} (diagrama de estados nos próximos slides) Estado inicial, de aceitação e rejeição são q1, qa, e qr, respectivamente Notação: • 0 → x,R: associado a transição saindo do estado q1 para q2 corresponde a (q1,0) = (q2, x, R) • 0 → R: significa que o símbolo lido não é sobescrito ou permance o mesmo: (q1,0) = (q2, 0, R) 36 Prof. Dr.-Ing. Leonardo Andrade Ribeiro Exercício 2 (5) 37 q1 q2 q3 qr qa q4 q5 ˽→R x→R 0→˽, R ˽→R ˽→R 0→x, R x→R 0→R x→R 0→x, R 0→L x→L x→R Prof. Dr.-Ing. Leonardo Andrade Ribeiro Sequência de Configurações Considerando a MT anterior, apresente a sequência de configurações para entrada 0 1. q10 2. ˽q2 3. ˽ ˽qa Apresente a sequência de configurações para entrada 000 1. q1000 2. ˽ q200 3. ˽ xq30 4. ˽ x0q4 5. ˽ x0 ˽ qr 38 Prof. Dr.-Ing. Leonardo Andrade Ribeiro Exercício 4 Apresente a sequência de configurações para as entrada 000000 e 000000000000 39 Prof. Dr.-Ing. Leonardo Andrade Ribeiro Exercício 4 Projete uma MT para resolver o problema dos elementos distintos. Dado um lista de palavras sobre {0,1} separadas pelo símbolo #, a MT deve aceitar a entrada se todas as palavras contidas na lista forem diferentes • L = {#a1#a2…#an} cada ai Є {0,1}* and ai ≠ aj para i ≠ j 40 Prof. Dr.-Ing. Leonardo Andrade Ribeiro Exercício 4 Projete uma MT para resolver o problema dos elementos distintos. Dado um lista de palavras sobre {0,1} separadas pelo símbolo #, a MT deve aceitar a entrada se todas as palavras contidas na lista forem diferentes • L = {#a1#a2…#an} cada ai Є {0,1}* and ai ≠ aj para i ≠ j Dica: Represente loops aninhados na MT (for- for) 41 Prof. Dr.-Ing. Leonardo Andrade Ribeiro Exercício 4 Projete uma MT para resolver o problema dos elementos distintos. Dado um lista de palavras sobre {0,1} separadas pelo símbolo #, a MT deve aceitar a entrada se todas as palavras contidas na lista forem diferentes • L = {#a1#a2…#an} cada ai Є {0,1}* and ai ≠ aj para i ≠ j Dica: Represente loops aninhados na MT (for- for) 42 Prof. Dr.-Ing. Leonardo Andrade Ribeiro Exercício 3: Solução 1. Escreva um marcador (m1) no lugar do primeiro símbolo da entrada. Se o símbolo original for #, prossiga para o próximo passo; caso contrário rejeite 2. Percorra a fita até o próximo símbolo # e escreva um segundo marcador sobre ele (m2). Se nenhum for encontrado, aceite (a lista de entrada contém apenas 1 palavra) 3. Fazendo movimentos em zig-zag, compare as palavras à direita de cada marcador. Se forem iguais rejeite 43 Prof. Dr.-Ing. Leonardo Andrade Ribeiro Exercício 3: Solução (2) 4. “Mova” m2 para o próximo símbolo #, isto é, substitua m2 por # na sua posição original e escreva-o na posição do próximo símbolo # encontrado. Se nenhum outro # for encontrado, então mova m1 (marcador mais a esquerda) para o próximo símbolo # à sua direita e depois mova m2 para próximo símbolo # à direita de m1. Neste ponto, se não existir mais símbolos # para m2, então todas palavras foram comparadas. Aceite 5. Volte ao passo 3 44 Prof. Dr.-Ing. Leonardo Andrade Ribeiro Linguagens Turing Reconhecível Uma linguagem é chamada Turing reconhecível se alguma MT a reconhece Estas linguagens são também chamadas linguagens recursivamente enumeráveis 45 Prof. Dr.-Ing. Leonardo Andrade Ribeiro Decididores Existem três possibilidades para o resultado de uma MT • Aceita • Rejeita • Executa para sempre (entraem “loop infinito” e nunca termina) É difícil diferenciar entre MTs de demoram bastante para produzir uma saída daquelas que entram em loop Uma MT falha em aceitar uma palavra entrando no estado de rejeição ou entrando em loop Um Decididor é uma MT que sempre produz Aceita ou Rejeita (fazem uma decisão) como resultado 46 Prof. Dr.-Ing. Leonardo Andrade Ribeiro Linguagens Turing Decidíveis Uma linguagem é chamada Turing decidível se alguma MT a decide Estas linguagens são também chamadas linguagens recursivas 47 Prof. Dr.-Ing. Leonardo Andrade Ribeiro Relação entre Linguagens Reconhecíveis e Decidíveis Toda linguagem decidível é também Turing reconhecível. Entretanto algumas linguagens são Turing reconhecíveis mas não decidíveis 48 Prof. Dr.-Ing. Leonardo Andrade Ribeiro Exercício Projete uma MT que reconheça a linguagem A = { anbncn| n>=0 }. Descreva-a em alto-nível 49 Prof. Dr.-Ing. Leonardo Andrade Ribeiro Exercício 2 Projete uma MT que reconheça a seguinte linguagem L= {p| p contém um número igual de 0s e 1s} 50 Prof. Dr.-Ing. Leonardo Andrade Ribeiro Exercício 3 Projete uma MT que reconheça a seguinte linguagem: L = {01𝑛101𝑛2, … , 01𝑛𝑘| 𝑘 > 0 𝑒 𝑛1 < 𝑛2 … < 𝑛𝑘}. Informalmente, nas palavras aceitas pela MT, cada 0 deverá ser seguido por um número crescente de 1’s. A máquina poderá conter uma ou duas fitas. Descreva-a em alto-nível 51 Prof. Dr.-Ing. Leonardo Andrade Ribeiro Variantes de Máquinas de Turing Possíveis variações • A fita pode extender-se para ambos os lados • Mais de uma fita, e.g., uma fita para escrita e outra para leitura • Mais de uma cabeça le • Máquinas não-determinísticas • ... 52 Prof. Dr.-Ing. Leonardo Andrade Ribeiro Variantes de Máquinas de Turing Todas variações produzem modelos computacionais diferentes O modelo original da Máquina de Turing e todas suas variantes possuem o mesmo poder de expressão – todos modelos reconhecem a mesma linguagem Com isso, dizemos que MTs são robustas 53 Prof. Dr.-Ing. Leonardo Andrade Ribeiro Toy Example Considere a seguinte modificação na função de transição: • : Q Γ Q Γ {L, R, N} N significa nenhum movimento da cabeça le Poderíamos reconhecer linguagens adicionais com esta modificação, i.e., aumentariamos o poder do modelo original? 54 Prof. Dr.-Ing. Leonardo Andrade Ribeiro Toy Example (2) Não. Podemos converter qualquer MT do novo modelo em uma MT do modelo original • Substitua todas transições envolvendo N por duas transições, um com R e outra com L 55 Prof. Dr.-Ing. Leonardo Andrade Ribeiro Máquinas de Turing Multi-fita MT contendo mais de uma fita (F1, F2,..., Fk) Cada fita possui sua própria cabeça le Inicialmente a entrada está escrita apenas em uma fita (convenção: F1). As demais contém apenas símbolos brancos 56 Prof. Dr.-Ing. Leonardo Andrade Ribeiro Máquinas de Turing Multi-fita Nova função de transição: • : Q Γk Q Γk {L, R}k, onde k é o número de fitas • (qi, a1,...,ak) = (qj, b1, ..., bk, L, R, ..., L) • A expressão acima significa que a MT está no estado qi quando ela lê os símbolos a1,...,ak para F1,...,Fk. A MT transita então para o estado qj escrevendo os símbolos b1,...,bk nas fitas fazendo os movimentos correspondentes 57 Prof. Dr.-Ing. Leonardo Andrade Ribeiro Exercício Projete uma MT multi-fita que aceite palavras que são palíndromos 58 Prof. Dr.-Ing. Leonardo Andrade Ribeiro Equivalência entre MTs Multi-fita e MT Convencionais Teorema 3.1: Toda MT multi-fita possui uma MT equivalente com apenas uma fita Prova (por construção): mostrar como converter uma MT multi-fita M em uma MT com apenas uma fita S • Idéia: mostrar como simular M com S 59 Prof. Dr.-Ing. Leonardo Andrade Ribeiro Equivalência entre MTs Multi-fita e MT Convencionais (2) Armazene a informação de múltiplas fitas em uma única fita Use um símbolo especial (e.g., #) para delimitar o conteúdo de cada fita Acompanhe a posição da cabeça le de cada fita colocando uma marca especial sobre cada sobre o qual a cabeça está posicionada 60 Prof. Dr.-Ing. Leonardo Andrade Ribeiro ˽ Equivalência entre MTs Multi-fita e MT Convencionais (2) 61 M a b c ˽ ... 0 1 0 ˽ ... a b ˽ ... S # a b c # 1 0 0 # a b ... Símbolos com um ponto em cima podem ser interpretados como novos símbolos no alfabeto da fita Prof. Dr.-Ing. Leonardo Andrade Ribeiro Equivalência entre MTs Multi-fita e MT Convencionais (3) Dado uma entrada p=p1,…,pn, faça: 1. Primeiramente, S formata a fita para representar todas k-fitas de M. O fomato é #p1p2…pn#˽#˽#...# 2. Um único movimento de M é simulado em dois passos sobre a fita. O primeiro passo determina os símbolos sobre as cabeças le virtuais. O segundo passo atualiza as fitas de acordo com o resultado da função de transição 62 Prof. Dr.-Ing. Leonardo Andrade Ribeiro 3. Se em algum ponto, S encontra algum # após algum movimento para a direita, isto significa que M movimentou sua cabeça para um ponto com símbolo branco da fita correspondente. Neste caso, todo o conteúdo restante da fita é movido para a direita em uma casa (mais especificamente, até o último #) e o símbolo branco é na posição da cabeça virtual 63 Equivalência entre MTs Multi-fita e MT Convencionais (3) Prof. Dr.-Ing. Leonardo Andrade Ribeiro Linguagens Reconhecíveis e MT Multi-fita Corolário 3.1 : Uma linguagem é Turing reconhecível sse alguma MT Multi-fita a reconhece 64 Prof. Dr.-Ing. Leonardo Andrade Ribeiro Máquina de Turing Não-Determinística (MTND) A qualquer ponto, a computação da máquina pode seguir caminhos diferentes Função de transição: : 2Q Γ {Q Γ {L, R}} A MTND aceita a entrada quando qualquer uma de suas ramificações de computação chega a uma configuração de aceitação 65 Prof. Dr.-Ing. Leonardo Andrade Ribeiro Equivalência Entre MTs e MTNDs Teorema 3.2: Toda MTND possui uma MT equivalente Prova (Intuição): Demonstrar que nós podemos simular qualquer MTND N com uma MT D • D tenta todos os possíveis branches da computação não-determinística de N. Se D chega até uma configuração de aceitação em algum destes branches, então D aceita a entrada. Caso contrário a simulação de D não termina. 66 Prof. Dr.-Ing. Leonardo Andrade Ribeiro Prova Teorema 3.2 (2) Assim como para AFNDs, a computação naõ- determinística de N pode ser vista como uma árvore de possibilidades • Cada ramificação da árvore é uma ramificação de não- determinismo • Cada nó é uma configuração de N • A raiz é a configuração de início Idéia: M realiza uma busca nesta árvore pelo estado de aceitação • Qual melhor estratégia de busca? Busca em profundidade (depth-first) ou busca em largura (breadth-first)? 67 Prof. Dr.-Ing. Leonardo Andrade Ribeiro Prova Teorema 3.2 (3) Usando busca em profundidade podemos encontrar uma ramificação infinita • O algoritmo de busca nunca retorna Melhor estratégia: busca em largura • Visita todos os nós no mesmo nível da árvore 68 Prof. Dr.-Ing. Leonardo Andrade Ribeiro Prova Teorema 3.2 (4) Considere uma MT determinística com três fitas (de acordo com o Teorema 3.1 esta MT é equivalente a uma MT com uma única fita) Cada fita possui uma finalidade específica: • Fita 1: Contém a palavra de entrada e nunca é alterada • Fita 2: Mantém a cópia da fita de N em alguma ramificação • Fita 3: Mantém informação sobre a posição de D na árvore de possiblidades 69 Prof. Dr.-Ing. Leonardo Andrade Ribeiro Prova Teorema 3.2 (5) Considere Fita 3. Cada nó na árvore pode ter no máximo n filhos, onde n é o tamanho do maior conjunto de possíveis escolhas retornado pela função de transição de N Atribua um endereçopara cada nó na árvore • Uma palavra sobre ∑b = {1,2,…,b} • Nó com endereço 321: Chegamos até este nó seguindo o 3º filho da raiz, u1, o 2º filho de u1, u2, e, finalmente , 1º primeiro filho de u2 • Podem existir endereços inválidos (não conduzem a nenhum nó) O alfabeto da Fita 3 é ∑b; a palavra vazia representa a raiz 70 Prof. Dr.-Ing. Leonardo Andrade Ribeiro Prova Teorema 3.2 (6) 1. Incialmente Fita 1 contém a palavra de entrada e as demais fitas estão vazias 2. Copie Fita 1 para Fita 2 3. Use Fita 2 para simular N com entrada 𝑝 em algum branch. Antes de cada passo de N, consulte o próximo símbolo na Fita 3 para determinar qual escolha fazer entre aquelas permitidas pela função de transição de N. Se não existirem mais símbolos na Fita 3 ou se sua escolha não- deterministica é inválida, aborte este branch e vá para o passo 4. Também vá para o passo 4 se uma configuração de rejeição é encontra. Se uma configuração de aceitação for encontrada, Aceite a entrada 71 Prof. Dr.-Ing. Leonardo Andrade Ribeiro Prova Teorema 3.2 (7) 4. Substitua a palavra na Fita 3 com a próxima palavra em ordem lexicográfica. Simule o próximo branch da computação de voltando ao passo 2 72 Prof. Dr.-Ing. Leonardo Andrade Ribeiro Linguagens Reconhecíveis e MTNDs Corolário 3.2: Uma linguagem é Turing reconhecível sse alguma MTNDs a reconhece 73 Prof. Dr.-Ing. Leonardo Andrade Ribeiro MTNDs e Decididores Uma MTND é um decididor se todas as possíveis ramificações de computação terminam em todas entradas Corolário 3.3: Uma linguagem é decidível se alguma MTND a decide 74 Prof. Dr.-Ing. Leonardo Andrade Ribeiro Enumeradores Turing reconhecível recursivamente enumerável Além de funcionarem como reconhecedores de uma linguagem, MTs também podem ser projetadas para enumerar um linguagem – um enumerador A computação deste tipo máquina produz sequencialmente uma lista exaustiva de uma linguagem 75 Prof. Dr.-Ing. Leonardo Andrade Ribeiro Enumeradores (2) Informalmente, podem ser interpretadas como uma impressora conectada Um enumerador não possui entrada---inicia-se com uma fita em branco Pode produzir uma lista infinita de palavras, caso não termine A linguagem enumerada por E é a coleção de todas palavras que eventualmente é impressa • Palavras podem aparecer fora de ordem ou com repetiçoes 76 Prof. Dr.-Ing. Leonardo Andrade Ribeiro Enumeradores: Definição Formal Uma Máquina de Turing com k fitas enumera um linguagem L se i. A computação começa com todas as fitas em branco ii. Em cada transição, a cabeça le da Fita 1 (a fita de saída de impressão) permanece parada ou move-se para a direita 77 Prof. Dr.-Ing. Leonardo Andrade Ribeiro Enumeradores: Definição Formal (2) iii. Em qualquer ponto da computação, a parte escrita da Fita 1 tem a forma: B#u1#u2#...#uk# ou B#u1#u2#...#uk#v, onde ui está em L e v está em ∑* iv. u será escrita na Fita 1 precedido por um # sse u está em L 78 Prof. Dr.-Ing. Leonardo Andrade Ribeiro Linguagem Turing Reconhecível e Enumeradores Teorema 3.3: Uma linguagem é Turing reconhecível sse algum Enumerador a enumera 79 Prof. Dr.-Ing. Leonardo Andrade Ribeiro Prova Teorema 3.3 Primeiro, nós mostramos que se nós temos um Enumerador E que enumera uma linguagem A, então existe uma TM M a reconhece. A TM trabalha da seguinte forma: M=“Na entrada p: 1. Execute E. Sempre que E imprimir uma palavra, compare ela com p. 2. Se p aparecer alguma vez como a saída de E, aceite” 80 Prof. Dr.-Ing. Leonardo Andrade Ribeiro Prova Teorema 3.3 (2) Agora a segunda parte da prova. Se uma TM reconhece uma linguagem A, nós podemos construir o seguinte enumerador E para A. Seja s1, s2,... a lista de todas possíveis palavras em ∑* E = „Ignore a entrada. Repita para i=1,2,3… Execute M por i passos em cada entrada s1, s2, …, si Se si é aceita por M, então imprima si 81 Prof. Dr.-Ing. Leonardo Andrade Ribeiro Equivalência Entre Modelos Nós temos visto diversas variantes do modelo de máquinas de Turing com poder computacional equivalente Além disso, vários outros modelos, alguns bastante diferentes do conceito de MTs tem sido propostos Todos tem em comum o acesso a memória infinita Todos são equivalentes em poder computacional desde que satisfaçam certos requistos mínimos como a habilidade de executar apenas um número finito de trabalho em um único passo 82 Prof. Dr.-Ing. Leonardo Andrade Ribeiro A Definição de Algoritmo Décimo problema de Hilbert: Existe um processo, que pode ser determinado por um número finito de operações, que encontre a raiz integral de um polinômio? O que Hilbert perguntou foi se existia um algoritmo para resolver esta tarefa Ainda outra interpretação, dada a linguagem D = {p | p é um polinômio com uma raiz integral}, o que Hilbert perguntou foi se D é decidível 83 Prof. Dr.-Ing. Leonardo Andrade Ribeiro A Definição de Algoritmo (2) Um polinômio é a soma de termos, onde cada termo é o produto de certas variáveis e uma constante chamada coeficiente Exemplo: • 6𝑥3𝑦𝑧2 + 3𝑥𝑦2 − 𝑥3 − 10, é um polinômio de 4 termos sobre as variáveis x, y, z. A raiz de um polinômio é uma atribuição de valores para suas variáveis de maneira que o valor do polinômio é zero (por exemplo, x =5, y = 3, e z=0) A raiz é integral se todos valores atribuídos a variáveis são inteiros 84 Prof. Dr.-Ing. Leonardo Andrade Ribeiro A Definição de Algoritmo (3) Por simplicidade, considere uma versão mais simples do polinômio contendo apenas uma variável, como 4𝑥3 − 2𝑥2 + x − 7 Seja D1 = {p|p é um polinômio sobre x com uma raiz integral} A MT M1 reconhece D1 M1= A entrada é um polinômio p sobre a variável x 1. Avalia p com a variável x atribuída sucessivamente os valores 0, 1, -1, 2, -2, 3, -3, … Se a qualquer ponto o resultado do polinômio é 0, aceite 85 Prof. Dr.-Ing. Leonardo Andrade Ribeiro A Definição de Algoritmo (4) Se p possui uma raiz integra, M1 irá em algum momento encontra-la e aceitar Caso contrário M1 irá executar para sempre Conclusão: M1 reconhece D1 mas não a decide 86 Prof. Dr.-Ing. Leonardo Andrade Ribeiro A Definição de Algoritmo (5) Para o problema específico de encontar uma raiz integral de polinômios contendo apenas uma variável, é possível projetar uma MT decididora • É conhecido que a raiz do polinômio, se existir estar no intevalo ±𝑘 𝑐𝑚𝑎𝑥 𝑐1 , onde é o número de termos do polinômio, 𝑐𝑚𝑎𝑥 é o coeficiente com o maior valor absoluto, e c1 é o coeficiente do termo de maior ordem Se uma raiz não é encontrada dentro destes limites, então a máquina rejeita 87 Prof. Dr.-Ing. Leonardo Andrade Ribeiro Church-Turing Thesis Conexão entre a noção informal de algoritmos e definição formal baseada no modelo de Máquinas de Turing • Máquinas de Turing capturam e representam precisamente a noção abstrata a respeito do que é um algoritmo e quais são seus limites 88 Noção intuitiva de algoritmos = Algoritmos de Máquinas de Turing
Compartilhar