You are on page 1of 240

Máquinas Universais

Prof. Marcus Vinícius Midena Ramos

Universidade Federal do Vale do São Francisco
22 de abril de 2010

marcus.ramos@univasf.edu.br

www.univasf.edu.br/~marcus.ramos

Marcus Ramos (UNIVASF)

TC 2010-1

22 de abril de 2010

1 / 240

Bibliograa
1

Teoria da Computação (capítulo 3)
T. A. Diverio e P. B. Menezes

a

Bookman, 2008, 2

2

edição

Introduction to Automata Theory, Languages and Computation
(capítulo 8)
J. E. Hopcroft, R. Motwani e J. D. Ullman
Addison-Wesley, 2007, 3

Marcus Ramos (UNIVASF)

a

edição

TC 2010-1

22 de abril de 2010

2 / 240

Roteiro
1 Introdução
2 Hipótese de Church
3 Codicação de dados estruturados
4 Máquina Norma
5 Máquina de Turing
6 Máquina de Post
7 Máquina com Pilhas
8 Autômato com Duas Pilhas
9 Variações das Máquinas de Turing

Marcus Ramos (UNIVASF)

TC 2010-1

22 de abril de 2010

3 / 240

Algoritmo

Introdução

I Denição informal;
I Descrição nita e não-ambígua;
I Passos discretos, executáveis mecanicamente;
I Tempo nito;
I Restrições de ordem prática: tempo e espaço;
I Restrições de ordem teórica: tanto quanto necessário.

Marcus Ramos (UNIVASF)

TC 2010-1

22 de abril de 2010

4 / 240

Simulação de qualquer outra máquina real ou teórica. Marcus Ramos (UNIVASF) TC 2010-1 22 de abril de 2010 5 / 240 . com omissão de características não-relevantes. I Poder: Representação de qualquer função computável. I Progama demanda uma máquina para sua execução. Permitir conclusões generalizadas sobre a classe das funções computáveis.Introdução Algoritmo I Realização na forma de programa. I Características desejáveis das máquinas: I Simplicidade: Apenas características essenciais.

Máquina universal Introdução Conceito I Aquela que permite a representação de qualquer algoritmo na forma de um programa para a mesma. Marcus Ramos (UNIVASF) TC 2010-1 22 de abril de 2010 6 / 240 . I Evidências que permitem caracterizar uma máquina como sendo universal: I Interna: Quaisquer extensões ou variações não aumentam o seu poder computacional (o conjunto de funções computáveis permanece inalterado). I Externa: Equivalência com outros modelos (máquinas ou não) que representam a noção de algoritmo.

Marcus Ramos (UNIVASF) TC 2010-1 22 de abril de 2010 7 / 240 .Máquina universal Introdução Modelos estudados I Máquina Norma. I Máquina com Pilhas. I Máquina de Turing. I Máquina de Post.

1936. I Como a noção de algoritmo é informal. 1903-1995. I A necessidade por uma denição formal de algoritmo é grande. pois apenas a partir dela é que é possível investigar a existência de algoritmos que resolvem (ou não) certos problemas e calculam (ou não) certas funções. I Mesmo ano em que foi apresentada a Máquina de Turing. matemático norte-americano.Hipótese de Church Hipótese de Church I Alonzo Church. além de poder demonstrar certas propriedades dos mesmos. I Estabelece a equivalência entre a noção de algoritmo e Máquina de Turing. Marcus Ramos (UNIVASF) TC 2010-1 22 de abril de 2010 8 / 240 . I Também conhecida como Hipótese de Church-Turing. a hipótese não pode ser provada.

I  A capacidade de computação representada pela Máquina de Turing é o limite máximo que pode ser atingido por qualquer dispositivo de computação. Marcus Ramos (UNIVASF) TC 2010-1 22 de abril de 2010 9 / 240 .Hipótese de Church Hipótese de Church I Qualquer função computável pode ser processada por alguma Máquina de Turing. a mesma capacidade computacional da Máquina de Turing. I Qualquer outra forma de expressar algoritmos terá. I A Máquina de Turing é o dispositivo de computação mais genérico que existe. no máximo. I Tudo que é computável é computável por uma Máquina de Turing.

evidências internas e externas apenas reforçam a Hipótese de Church. passa a ser usada como denição formal de algoritmo. I A Máquina de Turing (entre outros modelos). Marcus Ramos (UNIVASF) TC 2010-1 22 de abril de 2010 10 / 240 . atendendo aos propósitos citados anteriormente. pela sua simplicidade.Hipótese de Church Hipótese de Church I Ao longo das décadas. que é aceita como verdadeira de forma praticamente generalizada e não questionada.

Marcus Ramos (UNIVASF) TC 2010-1 22 de abril de 2010 11 / 240 . vetores. uma vez que esses e vários outros tipos de dados podem ser representados através de codicações apropriadas dos mesmos no espaço dos números inteiros não negativos. I Com o objetivo de evitar que os modelos matemáticos abstratos se tornem (desnecessariamente) complexos. diversos tipos de dados (inteiros positivos.Codicação de dados estruturados Algoritmos e tipos de dados I Algoritmos manipulam. estruturas etc). o escopo de manipulação de dados dos algoritmos que serão estudados é restrito aos números inteiros positivos. racionais. reais. normalmente. negativos. cadeias de caracteres. lógicos. I Essa restrição não traz maiores conseqüências.

(c(x) = c(y)) ⇒ (x = y) portanto a codicação representa de forma unívoca o dado estruturado na forma de um número natural Marcus Ramos (UNIVASF) x c(x). Como c ∀x ∈ X.Codicação de dados estruturados Função de codicação Seja X um conjunto de dados estruturados. TC 2010-1 22 de abril de 2010 12 / 240 . c(x) representa a codicação do dado estruturado x. é injetora. A função injetora: c:X→N é tal que.

n2 . ⇒ Números primos são a base para a denição dos demais números (números compostos). I Essa decomposição é única.. ⇒ Qualquer número inteiro maior que 1 pode ser decomposto.Codicação de dados estruturados Teorema fundamental da aritmética Enunciado Seja a > 1. Então: a = pn1 1 pn2 2 . a menos de permutações.pnk k onde: I p1 < p2 < . Marcus Ramos (UNIVASF) TC 2010-1 22 de abril de 2010 13 / 240 . nk são números inteiros positivos maiores ou iguais a 1.. de forma unívoca.. < pk são números primos (não necessariamente os primeiros. no produto de potências de números primos. .. I n1 ... não necessariamente consecutivos)..

76 .131 . I 132187055 = 51 .131 .112 .Codicação de dados estruturados Teorema fundamental da aritmética Exemplos I 2 = 21 . Marcus Ramos (UNIVASF) TC 2010-1 22 de abril de 2010 14 / 240 . I 256 = 28 . I 143 = 111 . I 42706587 = 31 .75 .112 . I 17 = 171 .

c(x1 ..125 = 450.. 22 de abril de 2010 15 / 240 . de forma unívoca. 2.pxnn I Todo número natural decomponível nos corresponde a uma (única) I Representação unívoca de n primeiros números primos n-upla.. 2.px2 2 .. I 450 representa. 3). I Considere os I Então n primeiros números primos. p2 . n-uplas como números naturais. pn . . px1 1 ..53 = 2...9. x2 ... 3) = 21 .32 .. xn ) = p1 . . Exemplo: I c(1.Exemplo Codicação de dados estruturados -uplas de números naturais n I Deseja-se obter c : Nn → N I Teorema fundamental da aritmética. a tripla Marcus Ramos (UNIVASF) TC 2010-1 (1.

.Codicação de dados estruturados Exemplo Programas monolíticos I Deseja-se obter c : P → N. r2 ) r2 representa a instrução vá_para (1. com rótulo inicial 1 e rótulo nal (único) 0... . r2 .. I Considere que o programa testes P possui as operações O1 . r2 . k.. I Considere que r1 : faça Ok (0. . I Quádruplas representam as instruções. Tn . O2 . I Considere rótulos numéricos sequenciais.. Om e os T1 . onde P é o conjunto dos programas monolíticos. r3 ) representa a instrução Tk então vá_para r2 senão vá_para r3 I Considere que r1 : se Marcus Ramos (UNIVASF) TC 2010-1 22 de abril de 2010 16 / 240 . T2 . k.

I Se P contém t instruções. I Codique a t-upla como um número inteiro. I Considere a t-upla formada por esses t números inteiros. I Cada quádrupla é codicada na forma de um número inteiro. Marcus Ramos (UNIVASF) TC 2010-1 22 de abril de 2010 17 / 240 . t t quádruplas e. números inteiros.Exemplo Codicação de dados estruturados Programas monolíticos I Cada instrução de P é codicada na forma de uma quádrupla. serão geradas consequentemente.

2. 1. I Considere I (150.51 . 1.70 = 150. 1) representa a instrução associada ao rótulo 2. 0) representa a instrução associada ao rótulo 1. 2150 .31 . 1. 105) = I O número como a representação de P.3105 2150 .52 . 1.71 = 105.31 . I c(0. TC 2010-1 22 de abril de 2010 18 / 240 . 1. 1. I c(1. 2.Exemplo Codicação de dados estruturados Programas monolíticos Considere o programa monolítico 1: se T1 vá_para 2 senão O1 vá_para 1 P: vá_para 0 2: faça I (1.3105 Marcus Ramos (UNIVASF) representa P. 105) c(150. 1) = 20 . I (0. 0) = 21 .

. então: I I w = 2i1 .3i2 . se w representa um programa monolítico P com t instruções.. 1 ≤ j ≤ t: I ij = 2a .7d a = 0.5c . ij representa a instrução: rj : faça Ob vá_para rc Se a = 1.5i3 .3b .Exemplo Codicação de dados estruturados Programas monolíticos Genericamente. ij representa a instrução: rj : se Tb então vá_para rc senão vá_para rd I Se I Marcus Ramos (UNIVASF) TC 2010-1 22 de abril de 2010 19 / 240 ..pitt ∀j..

). I Cada registrador armazena um único número natural. também. I Arquitetura semelhante à dos computadores modernos.. I Testar se o conteúdo é 0. Marcus Ramos (UNIVASF) TC 2010-1 22 de abril de 2010 20 / 240 . o nome da esposa dele. I Máquina Universal.Generalidades Máquina Norma I Denida por Richard Bird em 1976.. I Number Theoretic Register MAchine (e. I Subtrair o valor 1 (se 0. I É uma máquina de registradores (possui uma quantidade ilimitada deles). I Operações e testes (para cada registrador): I Adicionar o valor 1. continua com 0).

. .... Marcus Ramos (UNIVASF) transfere o valor de Y TC 2010-1 para a saída. 22 de abril de 2010 21 / 240 .. N. Y . {addk . ent. X. {zerok |k ≥ 0}) I Os registradores são denotados I A(k = 0). A. I sai : N∞ → N. B(k = 1). B. transfere o valor da entrada para X e zera os demais registradores. .. sai. N.Máquina Norma Denição Norma = (N∞ . I ent : N → N∞ . subk |k ≥ 0}.

f also}. subtrai 1 do k-ésimo registrador. I Notação: o K := K + 1. ent. mantendo os demais inalterados. mantém 0. K = 0 Marcus Ramos (UNIVASF) TC 2010-1 22 de abril de 2010 22 / 240 . mantendo os demais inalterados. subk |k ≥ 0}. N. I zerok : N∞ → {verdadeiro. adiciona 1 ao k-ésimo registrador. K := K − 1.Máquina Norma Denição Norma I = (N∞ . retorna verdadeiro se conteúdo do k -ésimo registrador é 0. N. {addk . I subk : N∞ → N∞ . {zerok |k ≥ 0}) addk : N∞ → N∞ . se 0. f also caso contrário. sai.

Marcus Ramos (UNIVASF) TC 2010-1 22 de abril de 2010 23 / 240 . I Endereçamento indireto.Evidências internas Máquina Norma I Operações e testes. I Recursão. I Tipos de dados. I Agregados.

através da expansão sucessiva do repertório de operações e testes da Máquina Norma. I Teste se o valor de um registrador é primo. I Atribuição do n-ésimo Marcus Ramos (UNIVASF) número primo a um registrador. I Atribuição de um valor qualquer a um registrador.Operações e testes Máquina Norma Denições incrementais. I Adição de dois registradores. I Atribuição do valor 0 a um registrador. I Atribuição de registrador à registrador. I Multiplicação de dois registradores. TC 2010-1 22 de abril de 2010 24 / 240 .

TC 2010-1 22 de abril de 2010 25 / 240 . I Operação implementada através do programa iterativo: A=0 faça A := A − 1 até I Considerada como Marcus Ramos (UNIVASF) macro.Operações e testes Máquina Norma Atribuição do valor 0 a um registrador Denotado: A := 0 para o registrador A. A := 0 representa uma nova operação.

com repetições da operação n A := A + 1: A := 0 A := A + 1 A := A + 1 ..Operações e testes Máquina Norma Atribuição de um valor qualquer a um registrador Denotado: A := n para o registrador A. I Operação implementada através do programa iterativo. A := n representa uma nova operação. TC 2010-1 22 de abril de 2010 26 / 240 .. A := A + 1 I Considerada como Marcus Ramos (UNIVASF) macro.

B:=B-1) I O registrador B é zerado. I Para preservar o valor de I Considerada como Marcus Ramos (UNIVASF) B. A := A + B TC 2010-1 representa uma nova operação. 22 de abril de 2010 27 / 240 .Máquina Norma Operações e testes Adição de dois registradores Denotado: A := A + B para os registradores A e B. I Operação implementada através do programa iterativo: até B=0 faça (A:=A+1. macro. deve-se usar um registrador auxiliar.

Máquina Norma Operações e testes Adição de dois registradores Denotado: A := A + B para os registradores A e B. C:=C-1) I O registrador C é zerado. I O identicação explícita do registrador C serve para evitar conitos no uso do mesmo. até C=0 faça (B:=B+1. I Operação implementada através do programa iterativo: C := 0 até B=0 faça (A:=A+1. I Considerada como macro.  A := A + B usando C representa uma nova operação. B:=B-1). Marcus Ramos (UNIVASF) TC 2010-1 22 de abril de 2010 28 / 240 . usando empregando C C como auxiliar. C:=C+1.

I A após a atribuição.  A := B  e A := B usando C representam novas operações. I Consideradas como macros.Máquina Norma Operações e testes Atribuição de registrador à registrador Denotado: A := B para os registradores A e B. B é zerado após a atribuição. B permanece inalterado usando C C como auxiliar. Marcus Ramos (UNIVASF) TC 2010-1 22 de abril de 2010 29 / 240 . I A := B  denota: A := 0 A := A + B ou seja. ou A := B empregando := B usando C  denota: A := 0 A := A + B usando C ou seja.

 A := A ∗ B usando C. I Operação implementada através do programa iterativo: C := 0 até A = 0 faça (C := C + 1. C := C − 1) I Considerada como macro. Marcus Ramos (UNIVASF) TC 2010-1 22 de abril de 2010 30 / 240 .Máquina Norma Operações e testes Multiplicação de dois registradores Denotado: A := A ∗ B para os registradores A e B. D representa uma nova operação. A := A − 1) até (C = 0) faça (A := A + B usando D. D e D como auxiliares. usando empregando C C.

empregando C C. I Operação implementada através do programa iterativo: se A = 0 então FALSO senão C := A usando D. Marcus Ramos (UNIVASF) TC 2010-1 22 de abril de 2010 31 / 240 . senão FALSO  teste_primo(A) usando C. C := C − 1. C) faça C := C − 1 C := C − 1 se C = 0 então VERDADEIRO I Considerada como macro. se C = 0 então FALSO senão até teste_mod (A.Máquina Norma Operações e testes Teste se o valor de um registrador é primo Denotado: teste_primo(A) usando para o registrador A. D como auxiliar. D representa uma nova operação.

A := A + 1. D := B .Máquina Norma Operações e testes Atribuição do n-ésimo número primo a um registrador Denotado: A := para o registrador A.  A := primo (B) usando D representa uma nova operação. Marcus Ramos (UNIVASF) TC 2010-1 22 de abril de 2010 32 / 240 . até D = 0 faça D := D − 1. até teste_primo I Considerada como (A) faça A := A + 1 macro. I Operação implementada através do programa iterativo: A := 1. primo supondo que (B) B usando contém D n≥1 e empregando D como auxiliar.

s = 0. ou I Par de registradores. A representação em Norma pode ser feita: I Codicação de duplas. |m|) onde I |m| I se representa o valor absoluto de m<0 então s=1 senão m.Máquina Norma Tipos de dados Números inteiros positivos e negativos Números inteiros com sinal m podem ser representados pela dupla: (s. Marcus Ramos (UNIVASF) TC 2010-1 22 de abril de 2010 33 / 240 .

I Operação implementada através do programa iterativo: se A1 = 0 então A2 := A2 + 1 senão A2 := A2 − 1. Marcus Ramos (UNIVASF) TC 2010-1 22 de abril de 2010 34 / 240 . se A2 = 0 então A1 := A1 − 1 senão X I Outras operações podem ser implementadas sem diculdade.Tipos de dados Máquina Norma Números inteiros positivos e negativos Denotado: A := A + 1 supondo que A representa o par de registradores A1 (s) e A2 (m).

d) = (a ∗ c. b) com b > 0. b ∗ d) (a. I Igualdade: (a. b) ∗ (c. d) = (a ∗ d. I Soma: Algumas operações e testes sobre os números racionais: (a. b ∗ d) I Subtração: (a. b) + (c. b) ÷ (c. b ∗ d) I Multiplicação: I Divisão: (a. b) = (c.Máquina Norma Tipos de dados Números racionais Números racionais r= a b podem ser representados pela dupla: (a. d) = (a ∗ d − b ∗ c. b) − (c. d) = (a ∗ d + b ∗ c. d) Marcus Ramos (UNIVASF) para se e somente se TC 2010-1 c 6= 0 a∗d=b∗c 22 de abril de 2010 35 / 240 . b ∗ c).

Algumas operações e testes sobre vetores: I Adiciona 1 à uma posição indexada. A[2].. I Subtrai 1 de uma posição indexada. usando codicação de I Suponha que o registrador A n-uplas.. Marcus Ramos (UNIVASF) TC 2010-1 22 de abril de 2010 36 / 240 . representa o vetor com os elementos A[1]. ..Máquina Norma Agregados Vetores I Vetores com n elementos (inclusive com n variável) podem ser representados em um único registrador. I Testa se uma posição indexada contém o valor 0. I Indexação direta (com número natural) ou indireta (com registrador).

Marcus Ramos (UNIVASF) TC 2010-1 22 de abril de 2010 37 / 240 . (A. I A macro por C. A := A/C . que retorna o resultado da divisão inteira de A é dada. que retorna verdadeiro se C é divisor de A e falso caso contrário. é dada. C). I Será omitido o termo usando das macros já denidas.Máquina Norma Agregados Vetores Suposições: I pn representa o n-ésimo I A macro teste_div número primo.

I C := pn .Agregados Máquina Norma Vetores Denição da macro: addA[n] Adição de uma unidade ao elemento usando n C do vetor A. usando indexação direta. A := A ∗ C Marcus Ramos (UNIVASF) TC 2010-1 22 de abril de 2010 38 / 240 .

(A. C) A := A/C X se teste_div então senão Marcus Ramos (UNIVASF) TC 2010-1 22 de abril de 2010 39 / 240 . I C := pn . usando indexação direta.Máquina Norma Agregados Vetores Denição da macro: subA[n] usando Subtração de uma unidade do elemento n C do vetor A.

I C := pn .Máquina Norma Agregados Vetores Denição da macro: zeroA[n] Testa se o elemento n do vetor A usando C contém o valor 0. se teste_div (A. usando indexação direta. C) então FALSO senão VERDADEIRO Marcus Ramos (UNIVASF) TC 2010-1 22 de abril de 2010 40 / 240 .

usando indexação indireta B. C := primo (B). A := A ∗ C Marcus Ramos (UNIVASF) TC 2010-1 22 de abril de 2010 41 / 240 .Máquina Norma Agregados Vetores Denição da macro: addA[B] usando C Adição de uma unidade ao elemento do vetor através do registrador I A.

C := primo (B).Agregados Máquina Norma Vetores Denição da macro: subA[n] usando C Subtração de uma unidade do elemento do vetor indireta através do registrador I A. se teste_div (A. C) então A := A/C senão X Marcus Ramos (UNIVASF) TC 2010-1 22 de abril de 2010 42 / 240 . usando indexação B.

C o valor 0. se teste_div (A. usando indexação indireta através do registrador I C := primo (B).Agregados Máquina Norma Vetores Denição da macro: zeroA[n] Testa se o elemento do vetor usando A contém B. C) então FALSO senão VERDADEIRO Marcus Ramos (UNIVASF) TC 2010-1 22 de abril de 2010 43 / 240 .

I Todo o processamento de uma Máquina Norma pode ser simulado na nova máquina com apenas esses dois registradores. I Convenciona-se que registrador B X[1] representa o registrador A..Máquina Norma Agregados Máquina Norma com apenas 2 registradores I Os registradores A. da Máquina Norma podem ser simulados numa máquina equivalente. I As seguintes operações são denidas: I I I addX[k] usando Y subX[k] usando Y zeroX[k] usando Y Marcus Ramos (UNIVASF) TC 2010-1 22 de abril de 2010 44 / 240 . I Suponha que a máquina tenha apenas os registradores X e Y. usando a representação de vetores na forma de n-uplas. B. .. X[2] o e assim por diante. com apenas dois registradores.

I Podem ser simuladas em Máquinas Norma através de dois registradores. I O primeiro representa o conteúdo da pilha. I O segundo contém o número do elemento que corresponde ao topo da pilha. considerado como um vetor e conforme visto anteriormente. I As operações abaixo podem ser denidas facilmente: I I empilha desempilha Marcus Ramos (UNIVASF) TC 2010-1 22 de abril de 2010 45 / 240 .Agregados Máquina Norma Pilhas I Estruturas do tipo last-in-rst-out.

I Desvia para o endereço contido em  A ( B ). I A macro  EndA  para calcula o endereço correspondente. I  r : faça F I  r : se vá_para T vá_para Marcus Ramos (UNIVASF) EndA  EndA senão vá_para TC 2010-1 EndB  22 de abril de 2010 46 / 240 .Máquina Norma Endereçamento indireto Desviar para a instrução cujo rótulo corresponde ao conteúdo de um registrador. I r: faça I r: se F T vá_para vá_para A A senão vá_para B I  A e  B  são registradores.

O valor de A permanece inalterado.Máquina Norma Endereçamento indireto Suponha que A contém valores ≤ k. zeroA então vá_para i + k ∗ 3 A := k vá_para k faça subA vá_para i + k ∗ 3 + 2 : se : faça : Marcus Ramos (UNIVASF) TC 2010-1 senão vá_para i+k∗3+1 22 de abril de 2010 47 / 240 .... i+k∗3−1 i+k∗3 i+k∗3+1 zeroA então vá_para 0 senão vá_para i + 1 subA vá_para i + 2 se zeroA então vá_para i + 3 senão vá_para i + 4 faça A := 1 vá_para 1 faça subA vá_para i + 5 se zeroA então vá_para i + 6 senão vá_para i + 7 faça A := 2 vá_para 2 faça subA vá_para i + 8 : .. Macro  EndA : i i+1 i+2 i+3 i+4 i+5 i+6 i+7 se : faça : : : : : : .

Recursão Máquina Norma I Chamada de subprogramas e recursão podem ser simuladas em programas monolíticos com o uso do endereçamento indireto. Marcus Ramos (UNIVASF) TC 2010-1 22 de abril de 2010 48 / 240 . I Demonstração em Bird76.

I Incorpora o programa na sua denição. o mesmo poder computacional de qualquer computador moderno ou outro modelo de computação. no mínimo. I Aceita como formalização na noção informal de algoritmo. I Formulada antes da construção do primeiro computador digital. I Possui.Generalidades Máquina de Turing I Denida por Alan Turing em 1936. Marcus Ramos (UNIVASF) TC 2010-1 22 de abril de 2010 49 / 240 .

Marcus Ramos (UNIVASF) TC 2010-1 22 de abril de 2010 50 / 240 . I Estados inicial e nais indicam começo e término das atividades. Durante o trabalho: I Novo símbolo pode ser lido. I Símbolo existente pode ser alterado. outro para apagar. I Dados iniciais na folha de papel. I Ação a ser executada depende do símbolo lido e do estado mental do trabalhador. I Folha de papel dividida em regiões. I Olhos podem ser deslocar de região.Conceito Máquina de Turing Procura reproduzir uma pessoa trabalhando na solução de um problema: I Instrumento para escrever.

I Apenas um símbolo é lido de cada vez. I A atenção se desloca apenas para as células adjacentes. I O conjunto de estados mentais é nito. I Ela é organizada de forma unidimensional e dividida em células. Marcus Ramos (UNIVASF) TC 2010-1 22 de abril de 2010 51 / 240 .Conceito Máquina de Turing Algumas simplicações: I A folha de papel tem dimensões tão grandes quanto necessárias. I O conjunto de símbolos é nito.

Componentes Marcus Ramos (UNIVASF) Máquina de Turing TC 2010-1 22 de abril de 2010 52 / 240 .

Π. F. I Π é a função (parcial) de transição: Π : Q × (Σ ∪ V ∪ {β. q0 . β. ◦) onde: I Σ é o alfabeto de entrada. V. ◦}) → Q × (Σ ∪ V ∪ {β. ◦}) × {E. I Q é o conjunto de estados.Formalização Máquina de Turing Uma Máquina de Turing é uma 8-upla: M = (Σ. Q. D} Marcus Ramos (UNIVASF) TC 2010-1 22 de abril de 2010 53 / 240 .

é o alfabeto auxiliar. V. I V I β∈ / (Σ ∪ V ) é o símbolo especial branco.Máquina de Turing Formalização Uma Máquina de Turing é uma 8-upla: M = (Σ. β. I F ⊆Q é o conjunto de estados nais. Q. Marcus Ramos (UNIVASF) V ∩ Σ = ∅. I ◦∈ / (Σ ∪ V ) é o marcador de início de ta. ◦) onde: I q0 ∈ Q é o estado inicial. q0 . TC 2010-1 22 de abril de 2010 54 / 240 . Π. F.

m) então: Marcus Ramos (UNIVASF) TC 2010-1 22 de abril de 2010 55 / 240 . x) = (qj . y.Máquina de Turing Diagrama de estados Se: Π(qi .

2 Entrada: w é aceita imediatamente após a entrada de M em um estado nal. uma cadeia é rejeitada se M entra em loop innito. uma cadeia é rejeitada se. após a parada. Em todos os casos. M se encontra em um estado nal. Parada: w é aceita se M pára. w por uma Todas elas são equivalentes entre si: é aceita se. Marcus Ramos (UNIVASF) TC 2010-1 22 de abril de 2010 56 / 240 . após a parada. após a parada. uma cadeia é rejeitada se. w é rejeitada se a cabeça de leitura/escrita se deslocar à esquerda da primeira célula da ta de entrada. mesmo que existam outras possibilidades de movimentação nesse estado. M se encontra em um estado não-nal.Máquina de Turing Critérios de aceitação w Existem várias maneiras de formular a aceitação de uma cadeia Máquina de Turing 1 Estado nal: M. M 3 se encontra em estado não-nal.

denotada REJEIT A(M ) é: {w ∈ Σ∗ |M pára em um estado qf ∈ / F ao processar a entrada w ou a cabeça de leitura/escrita se desloca para a esquerda da primeira posição} I A linguagem para a qual M entra em loop. β. V. F.MT e linguagens Máquina de Turing Considere-se o critério de aceitação por Entrada e a Máquina de Turing: M = (Σ. denotada {w ∈ Σ∗ |M processa a entrada indenidamente} Marcus Ramos (UNIVASF) TC 2010-1 LOOP (M ) 22 de abril de 2010 é: 57 / 240 . Q. ◦) I A linguagem aceita por M . q0 . denotada {w ∈ Σ∗ |M assume algum estado qf ACEIT A(M ) ou L(M ) é: ∈ F ao processar a entrada w} I A linguagem rejeitada por M . Π.

Particionamento Marcus Ramos (UNIVASF) Máquina de Turing TC 2010-1 22 de abril de 2010 58 / 240 .

Exemplo Marcus Ramos (UNIVASF) Máquina de Turing TC 2010-1 22 de abril de 2010 59 / 240 .

q4 . (◦Aa. q2 . B) Marcus Ramos (UNIVASF) TC 2010-1 22 de abril de 2010 60 / 240 . abb). (◦AAB. q1 . bb). q2 . q1 . (◦A. (◦AA. (◦AAB. BB). (◦. q0 . ). (◦A. q2 . q1 . aabb). ◦aabb). aBb). q2 . q0 . q0 . (◦AAB. AaBb). q1 . B). Bb). (◦A. aBb). q3 . BB). BB). (◦AA. (◦AABB. (◦A. (◦. q3 . (◦AA. b).Máquina de Turing Exemplo I ACEIT A(M ) = {an bn |n ≥ 0} I REJEIT A(M ) = Σ∗ − ACEIT A(M ) I LOOP (M ) = {} Computação de I M com a entrada aabb: (. q0 .

ou I Entra em processamento indenido e não pára (loop innito).Máquina de Turing Linguagem recursivamente enumerável Denição L ⊆ Σ∗ é dita M tal que: I Se I Se recursivamente enumerável se existe uma Máquina de Turing w ∈ L. M : e aceita a entrada. I Pára e rejeita a entrada. Marcus Ramos (UNIVASF) TC 2010-1 22 de abril de 2010 61 / 240 . porém sem garantia de que o processamento pára quando a cadeia de entrada não pertence à linguagem denida. Corresponde à maior classe de linguagens que pode ser reconhecida mecanicamente. M pára w∈ / L.

Máquina de Turing Linguagem recursiva Denição L ⊆ Σ∗ é dita recursiva se existe uma Máquina de Turing I Se w ∈ L. Marcus Ramos (UNIVASF) TC 2010-1 22 de abril de 2010 62 / 240 . pára e rejeita a entrada. Corresponde à maior classe de linguagens que pode ser reconhecida mecanicamente. M I Se w∈ / L. M : M tal que: pára e aceita a entrada. com garantia de que o processamento pára para toda e qualquer cadeia de entrada.

L é uma dessas linguagens.Máquina de Turing Linguagem recursivamente enumerável × linguagem recursiva I Toda linguagem recursiva é também recursivamente enumerável. existe pelo menos uma cadeia de entrada que faz M entrar em loop innito. Marcus Ramos (UNIVASF) TC 2010-1 22 de abril de 2010 63 / 240 . LOOP (M ) 6= {}. Turing que aceita L é tal que: I Se I I I então toda e qualquer Máquina de ACEIT A(M ) = L. I CLR ⊂ CLRE . I Existem linguagens que são recursivamente enumeráveis porém não são recursivas. REJEIT A(M ) = Σ∗ − L − LOOP (M ). I Ou seja.

então a linguagem é recursiva. Marcus Ramos (UNIVASF) TC 2010-1 22 de abril de 2010 64 / 240 . I Se uma linguagem e o seu complemento são recursivamente enumeráveis.Propriedades Máquina de Turing I O complemento de uma linguagem recursiva é uma linguagem recursiva.

I Denição de linguagens Marcus Ramos (UNIVASF) ⇔ Computação de funções. TC 2010-1 22 de abril de 2010 65 / 240 . I Ao término da computação o conteúdo da ta representa o resultado da aplicação da função ao argumento fornecido.MT funções Máquina de Turing I Máquinas de Turing pode ser vista e estudadas como dispositivos que denem linguagens. ser vistas como dispositivos que computam funções: I O argumento é posicionado na ta de entrada. também. I Máquinas de Turing podem.

.. ◦w1 w2 . existe uma Máquina de Turing f. . I O conteúdo da ta de entrada é I Se f ◦w.. w2 . V.wn Se f (w1 .Função computável Máquina de Turing Uma função parcial: f : (Σ∗ )n → Σ∗ é dita Função Turing-Computável.. Q. .. Marcus Ramos (UNIVASF) TC 2010-1 22 de abril de 2010 66 / 240 .... representada na ta como ◦w1 w2 .wn : I Considere de entrada I com a I Pára (não importa se aceitando ou rejeitando). . β..... ou simplesmente Função Computável M = (Σ. w2 . wn ) = w . w2 . então o processamento de M entrada ◦w1 w2 . q0 ..wn : não é denida para o argumento processamento de M com a entrada então o I Entra em loop innito. ◦) se que computa ou seja: (w1 . (w1 . F.. wn ). Π.. wn ) ∈ (Σ∗ )n .

F.Máquina de Turing Função computável total Uma função total: f : (Σ∗ )n → Σ∗ Função Turing-Computável Total. β. V. ou simplesmente Função Computável Total se existe uma Máquina de Turing: é dita M = (Σ. Marcus Ramos (UNIVASF) TC 2010-1 22 de abril de 2010 67 / 240 . Q. Π. ◦) que computa f e que sempre pára para qualquer entrada. q0 .

b}∗ )2 → {a. w2 O símbolo # será usado para na cadeia de entrada. w2 ) = w1 w2 . abab) = abbabab. Exemplos: I f (b. a) = ba. ◦abbabab A ta inicia com Marcus Ramos (UNIVASF) ◦b#a e termina com A ta inicia com TC 2010-1 ◦ba ◦abb#abab e termina com 22 de abril de 2010 68 / 240 . ou seja delimitar w1 e f (w1 . I f (abb.Máquina de Turing Função computável total Exemplo 1 Considere a função total: f : ({a. b}∗ f devolve a concatenação de duas cadeias quaisquer fornecidas como entrada.

Máquina de Turing Função computável total Exemplo 1 Marcus Ramos (UNIVASF) TC 2010-1 22 de abril de 2010 69 / 240 .

símbolo por símbolo. I q2 representa que o último símbolo lido foi a e q3 representa b. I Desloca a cabeça para a direita até encontrar o primeiro branco. I Desloca uma posição para a esquerda. até encontrar o símbolo #. grava um novo símbolo no lugar dele correspondente ao estado em que a máquina se encontra. memoriza o símbolo lido no estado e desloca novamente para a esquerda. I Se houver necessidade. mudar de q2 para q3 e vice-versa para manter a coerência no signicado atribuído aos estados. o símbolo # desaparece.Máquina de Turing Função computável total Exemplo 1 Algoritmo: a segunda cadeia é deslocada uma posição para a esquerda. Marcus Ramos (UNIVASF) TC 2010-1 22 de abril de 2010 70 / 240 . I Conforme o símbolo corrente. I Fazer isso sucessivas vezes.

◦111111111 Exemplos: A ta inicia com Marcus Ramos (UNIVASF) ◦1 e termina com A ta inicia com TC 2010-1 ◦111 ◦1 e termina com 22 de abril de 2010 71 / 240 . I f (111) = 111111111.Máquina de Turing Função computável total Exemplo 2 Considere a função total: g : {1}∗ → {1}∗ f devolve o quadrado do número de entrada (ambos representados em unário). ou seja g(n) = n2 . I f (1) = 1.

Máquina de Turing Função computável total Exemplo 2 Marcus Ramos (UNIVASF) TC 2010-1 22 de abril de 2010 72 / 240 .

M = (Σ. β. V.Teorema 1 Máquina de Turing Máquina de Turing ≤ Máquina Norma I Toda Máquina de Turing pode ser simulada por alguma Máquina Norma. q0 . F. ◦) é uma Máquina existe um programa monolítico P que simula M I Se Marcus Ramos (UNIVASF) TC 2010-1 de Turing. 22 de abril de 2010 73 / 240 . Q. então na Máquina Norma. Π.

se Π não é denida 0 0 então Π ← Π ∪ {(q. E)} para (q. τ ∈ (Σ ∪ V ). Marcus Ramos (UNIVASF) TC 2010-1 22 de abril de 2010 74 / 240 . τ ) I As cadeias serão rejeitadas por tentativa de movimentação da cabeça de leitura/escrita à esquerda da primeira posição da ta. τ ) → (qe . I A função de transição Q0 ← Q ∪ {qe } Π0 ← Π Π deve ser total: ∀q ∈ Q0 . τ.Teorema 1 Máquina de Turing Pré-requisitos I O critério de aceitação deve ser por Entrada.

que β. ◦ é representado por m + 1. I Símbolos de pelo valor j.Máquina de Turing Teorema 1 Convenções Σ ∪ V . na codicação de ênuplas. Qualquer elemento do vetor que não contenha um elemento de Σ∪V retorna. o valor representa o símbolo Marcus Ramos (UNIVASF) 0 (de 20 ). é representado β é representado por 0. I Observar que a escolha da representação de existam innitos símbolos β β por 0 faz com que à direita do último símbolo da cadeia de entrada. I A ta de entrada é representada como um vetor armazenado no registrador X. |Σ ∪ V | = m: τj . TC 2010-1 22 de abril de 2010 75 / 240 . considerando 1 ≤ j ≤ m.

é representado pelo valor I Ao término do processamento.Máquina de Turing Teorema 1 Convenções I A posição referenciada pela cabeça de leitura/escrita corresponde ao conteúdo do registrador C: valor inicial 1 aponta para o símbolo ◦. I Observar que o conteúdo da ta é representado por um valor sempre maior ou igual a 1 (será 1 se ela contiver apenas brancos). I O estado corrente é representado pelo conteúdo do registrador qi . i ≥ 0. Y 6= 0 Q: i. entrada. e o valor de Y representa o conteúdo da ta nessa situação. Y =0 indica rejeição da cadeia de indica aceitação da cadeia de entrada. Marcus Ramos (UNIVASF) TC 2010-1 22 de abril de 2010 76 / 240 .

Teorema 1 Máquina de Turing Algoritmo P para a Máquina Norma: zeroC então vá_para r01 senão vá_para r02 faça Y := 0 vá_para r05 Q X[C] vá_para End_A faça A := 2 ∗ 3 se zeroC então vá_para r01 senão vá_para r04 faça Y := X vá_para r05 Instruções iniciais de r0 r01 r02 r03 r04 I : : : : : r0 se é o rótulo inicial. I O controle retorna para r0 I O controle retorna para r03 I r05 sempre que o próximo estado é não-nal. é o rótulo nal. sempre que o próximo estado é nal. Marcus Ramos (UNIVASF) TC 2010-1 22 de abril de 2010 77 / 240 .

Máquina de Turing Teorema 1 Algoritmo Para cada transição Π(qi . I Desloca a cabeça de leitura/escrita para a direita. então substituir Marcus Ramos (UNIVASF) r0 por subC no lugar de addC . I Se o movimento for para a esquerda. acrescentar à P o seguinte conjunto de instruções: r2i ∗3m : r2i ∗3m 1 : r2i ∗3m 2 : I Grava faça faça faça τn X[C] := n vá_para r2i ∗3m 1 addC vá_para r2i ∗3m 2 Q := j vá_para r0 na posição corrente da ta. usar I Se qj ∈ F . r03 . D). τn . TC 2010-1 22 de abril de 2010 78 / 240 . I Atualiza o estado corrente para qj . τm ) = (qj .

símbolos. Marcus Ramos (UNIVASF) TC 2010-1 22 de abril de 2010 79 / 240 . quantidade total de transições. função de transição total.Máquina de Turing Teorema 1 Algoritmo Se |Q| = m e |Σ ∪ V | = n. Detalhamento do cálculo: I 5: I n + 2: n I m ∗ (n + 2): I 3: quantidade de instruções rotuladas iniciais. então o programa monolítico correspondente possuirá: 5 + m ∗ (n + 2) ∗ 3 instruções rotuladas. quantidade de instruções rotuladas por transição. mais β e ◦.

◦. b. . (q4 . β) → (qe . β. a. E) (qe . E) (qe . . β) → (qe . E). . ◦. . a) → (qe . b. . B) → (qe . a) → (qe . β. (qe . b) → (qe . E) TC 2010-1 . b. (q1 . E) (q3 . A) → (qe . B. A) → (qe . . E) (q2 . E). b) → (qe . . E). . ◦. A) → (qe . E) (q2 . E) (q1 . (q2 . A. ◦) → (qe . A. a. E) (q2 . . ◦) → (qe . ◦. . E) (qe . (q4 . E) (q3 . B) → (qe . ◦) → (qe . ◦) → (qe . E) (qe . B. ◦. ◦) → (qe . . . A) → (qe . 22 de abril de 2010 80 / 240 . E).Exemplo Máquina de Turing Função de transição total Considere a Máquina de Turing 0 Então Π M que aceita a linguagem {an bn |n ≥ 0}. ← Π∪ { (q0 . b) → (qe . β) → (qe . a) → (qe . . b) → (qe . (q3 . β) → (qe . (q0 . B. β. E) (q1 . ◦. E) (q3 . E). B) → (qe . β. E) (q4 . A. E). . B) → (qe . E). B. b) → (qe . E). A) → (qe . a. E) (q4 . E) (q4 . (q1 . E) (q4 . b. b. . A. (qe . E) } Marcus Ramos (UNIVASF) .

q4 .Máquina de Turing Exemplo Representação dos estados Considere a Máquina de Turing M que aceita a linguagem {an bn |n ≥ 0}. q2 . q1 . q3 . qe } Representação no registador I I I I I I q0 q1 q2 q3 q4 qe por por por por por por Q: 0 1 2 3 4 5 Marcus Ramos (UNIVASF) TC 2010-1 22 de abril de 2010 81 / 240 . Então: I Q0 = {q0 .

Adicionalmente: I I β por 0 ◦ como 5 Marcus Ramos (UNIVASF) TC 2010-1 22 de abril de 2010 82 / 240 .Exemplo Máquina de Turing Representação dos símbolos Considere a Máquina de Turing M que aceita a linguagem {an bn |n ≥ 0}. B} Representação no registrador X : I I I I a por 1. Então: I Σ ∪ V = {a. b por 2. b} ∪ {A. B} = {a. A por 3. b. A. B por 4.

845.Máquina de Turing Exemplo Conguração inicial Situação inicial dos registradores na Máquina Norma para a cadeia de entrada ◦aabb: I ◦aabb I X = 25 ∗ 31 ∗ 51 ∗ 72 ∗ 112 = 2.920 I Q=0 I C=1 é representada pela seqüência Marcus Ramos (UNIVASF) TC 2010-1 51122 22 de abril de 2010 83 / 240 .

Exemplo Máquina de Turing Programa para Máquina Norma r0 r01 r02 r03 r04 : : : : : zeroC então vá_para r01 senão vá_para r02 Y := 0 vá_para r05 Q X[C] vá_para End_A faça A := 2 ∗ 3 se zeroC então vá_para r01 senão vá_para r04 faça Y := X vá_para r05 se faça Marcus Ramos (UNIVASF) TC 2010-1 22 de abril de 2010 84 / 240 .

a) = (q1 . ◦.. ◦) = (q0 . A.. D) faça X[C] := 3 vá_para r31 faça addC vá_para r32 faça Q := 1 vá_para r0 .Exemplo Máquina de Turing Programa para Máquina Norma r243 : r2431 : r2432 : r3 : r31 : r32 : Π(q0 . D) faça X[C] := 5 vá_para r2431 faça addC vá_para r2432 faça Q := 0 vá_para r0 Π(q0 . Marcus Ramos (UNIVASF) TC 2010-1 22 de abril de 2010 85 / 240 .

B) = (q3 . Π(q0 .. β) = (q4 .. E) faça X[C] := 0 vá_para r81 faça subC vá_para r82 faça Q := 4 vá_para r03 . Marcus Ramos (UNIVASF) TC 2010-1 22 de abril de 2010 86 / 240 ..Exemplo Máquina de Turing Programa para Máquina Norma r81 : r811 : r812 : r8 : r81 : r82 : .. Π(q3 . B.. β. D) faça X[C] := 4 vá_para r811 faça addC vá_para r822 faça Q := 3 vá_para r0 ..

Exemplo Máquina de Turing Endereços das transições Marcus Ramos (UNIVASF) TC 2010-1 22 de abril de 2010 87 / 240 .

A. ◦. a) = (q1 . D) Marcus Ramos (UNIVASF) rótulo r0 r243 r2431 r2432 r0 r3 r31 r32 Q C 0 1 0 1 0 1 0 2 0 2 0 2 0 2 0 3 TC 2010-1 X ∗ 31 ∗ 52 5 2 ∗ 31 ∗ 52 25 ∗ 31 ∗ 52 25 ∗ 31 ∗ 52 25 ∗ 31 ∗ 52 25 ∗ 31 ∗ 52 25 ∗ 33 ∗ 52 25 ∗ 33 ∗ 52 25 A ∗ = 243 20 ∗ 35 = 243 20 ∗ 35 = 243 20 ∗ 35 = 243 20 ∗ 31 = 3 20 ∗ 31 = 3 20 ∗ 31 = 3 20 ∗ 31 = 3 20 35 22 de abril de 2010 88 / 240 . ◦) = (q0 . D) Π(q0 .Máquina de Turing Exemplo Congurações Cadeia ab ∈ L(M ): Turing Π(q0 .

b) = (q2 .Máquina de Turing Exemplo Congurações Turing Π(q1 . E) Π(q2 . B. A) = (q0 . A. D) Marcus Ramos (UNIVASF) rótulo r0 r18 r181 r182 r0 r108 r1081 r1082 Q C 1 3 1 3 1 3 1 2 2 2 2 2 2 2 2 3 TC 2010-1 X ∗ 33 ∗ 52 5 2 ∗ 33 ∗ 52 25 ∗ 33 ∗ 54 25 ∗ 33 ∗ 54 25 ∗ 33 ∗ 54 25 ∗ 33 ∗ 54 25 ∗ 33 ∗ 54 25 ∗ 33 ∗ 54 25 A ∗ 32 = 18 1 2 ∗ 32 = 18 21 ∗ 32 = 18 21 ∗ 32 = 18 22 ∗ 33 = 108 22 ∗ 33 = 108 22 ∗ 33 = 108 22 ∗ 33 = 108 21 22 de abril de 2010 89 / 240 .

B) = (q3 . D) Π(q3 . E) Marcus Ramos (UNIVASF) rótulo r0 r81 r811 r812 r0 r8 r81 r82 Q C 0 3 0 3 0 3 0 4 3 4 3 4 3 4 3 3 TC 2010-1 X ∗ 33 ∗ 54 5 2 ∗ 33 ∗ 54 25 ∗ 33 ∗ 54 25 ∗ 33 ∗ 54 25 ∗ 33 ∗ 54 25 ∗ 33 ∗ 54 25 ∗ 33 ∗ 54 25 ∗ 33 ∗ 54 25 A ∗ 34 = 81 0 2 ∗ 34 = 81 20 ∗ 34 = 81 20 ∗ 34 = 81 23 ∗ 30 = 8 23 ∗ 30 = 8 23 ∗ 30 = 8 23 ∗ 30 = 8 20 22 de abril de 2010 90 / 240 .Máquina de Turing Exemplo Congurações Turing Π(q0 . β. β) = (q4 . B.

Máquina de Turing Exemplo Congurações Turing rótulo r03 r04 r05 Marcus Ramos (UNIVASF) Q C 4 3 4 3 4 3 X ∗ 33 ∗ 54 5 2 ∗ 33 ∗ 54 25 ∗ 33 ∗ 54 25 TC 2010-1 A ∗ 30 = 8 3 2 ∗ 30 = 8 23 ∗ 30 = 8 23 22 de abril de 2010 91 / 240 .

Máquina de Turing Exemplo Congurações Cadeia ba ∈ / L(M ): Turing Π(q0 . b) = (qe . b. E) Marcus Ramos (UNIVASF) rótulo r0 r243 r2431 r2432 r0 r9 r91 r92 Q C 0 1 0 1 0 1 0 2 0 2 0 2 0 2 0 1 TC 2010-1 X ∗ 32 ∗ 51 5 2 ∗ 32 ∗ 51 25 ∗ 32 ∗ 51 25 ∗ 32 ∗ 51 25 ∗ 32 ∗ 51 25 ∗ 32 ∗ 51 25 ∗ 32 ∗ 51 25 ∗ 32 ∗ 51 25 A = 243 20 ∗ 35 = 243 20 ∗ 35 = 243 20 ∗ 35 = 243 20 ∗ 32 = 9 20 ∗ 32 = 9 20 ∗ 32 = 9 20 ∗ 32 = 9 20 ∗ 35 22 de abril de 2010 92 / 240 . ◦. D) Π(q0 . ◦) = (q0 .

E) Marcus Ramos (UNIVASF) rótulo Q C r0 5 1 r7776 r77761 r77762 r0 r01 r05 5 1 5 1 5 0 5 0 5 0 5 0 TC 2010-1 X ∗ 32 ∗ 51 25 ∗ 32 ∗ 51 25 ∗ 32 ∗ 51 25 ∗ 32 ∗ 51 25 ∗ 32 ∗ 51 25 ∗ 32 ∗ 51 25 ∗ 32 ∗ 51 25 A = 7776 5 5 2 ∗ 3 = 7776 25 ∗ 35 = 7776 25 ∗ 35 = 7776 25 ∗ 35 = 7776 25 ∗ 35 = 7776 25 ∗ 35 = 7776 25 ∗ 35 22 de abril de 2010 93 / 240 . ◦.Exemplo Máquina de Turing Congurações Turing Π(qe . ◦) = (qe .

22 de abril de 2010 94 / 240 . com o uso de endereçamento indireto. programas recursivos (com denição e chamada de subprogramas e recursão) podem ser simulados em Máquinas Norma através de programas monolíticos.Teorema 2 Máquina de Turing Máquina Norma ≤ Máquina de Turing I Conforme demonstrado em Bird76. I Portanto. é suciente considerar programas monolíticos e as Máquinas de Turing que computam as mesmas funções. I Também é suciente considerar Máquina Norma com apenas dois registradores (X e Marcus Ramos (UNIVASF) Y ). Ela será denotada TC 2010-1 N orma2 .

Π.Teorema 2 Máquina de Turing Máquina Norma ≤ Máquina de Turing I Todo Máquina Norma pode ser simulada por alguma Máquina de Turing. Q. r0 ) para N orma2 . q0 . então existe M : (Σ. 22 de abril de 2010 95 / 240 . ◦) que simula P . β. F. I Se I Máquina de Turing simula Marcus Ramos (UNIVASF) N orma2 . V. P = (I. TC 2010-1 que por sua vez simula Norma.

. | ◦ |1|1|1|1|1|1|1|β|β|β|.... X=3 nas células ímpares (exceto a primeira) da ta de entrada | ◦ |1|1|1|1|1|1|1|β|β|β|. r0 r de P está em correspondência corresponde ao estado inicial corresponde a um estado nal Marcus Ramos (UNIVASF) A ta de TC 2010-1 q0 e cada qf ∈ F .Máquina de Turing Teorema 2 Convenções I Registrador X: Seu conteúdo é representado em unário e armazenado M.| representa I Rótulos das instruções: Cada rótulo com um estado rótulo nal rf X=4 qr de M .| nas células pares da ta de A ta de entrada I Registrador Y: representa Seu conteúdo é representado em unário e armazenado M. 22 de abril de 2010 96 / 240 .

Máquina de Turing Teorema 2 Componentes da Máquina de Turing I Σ = {1} I Q = {qi |ri I Π = {} é rótulo deP } I Estado inicial=q0 (supondo que I F = {qi |ri I V = {} r0 é o rótulo inicial de P) é rótulo nal deP } Marcus Ramos (UNIVASF) TC 2010-1 22 de abril de 2010 97 / 240 .

1. deslocar a cabeça de leitura/escrita até encontrar a primeira célula par (se contenha um símbolo I Substituir esse β por K = X) ou ímpar (se K =Y) que β. I Deslocar a cabeça de leitura/escrita.Máquina de Turing Teorema 2 Algoritmo Para cada instrução I r: faça addk i ∈ I: vá_para I A partir do estado r0 qr . I Ir para o estado Marcus Ramos (UNIVASF) qr0 . posicionando-a sobre o primeiro símbolo da ta (◦). TC 2010-1 22 de abril de 2010 98 / 240 .

Máquina de Turing Teorema 2 Algoritmo Para cada instrução I r: faça subk i ∈ I: vá_para I A partir do estado r0 qr . posicionando-a sobre o primeiro símbolo da ta (◦). ir para 3). I Deslocar a cabeça de leitura/escrita. a última célula par (se um símbolo 1 deslocar a cabeça de leitura/escrita até encontrar K = X) ou ímpar (se K = Y ) que contenha β . TC 2010-1 22 de abril de 2010 99 / 240 . I Ir para o estado Marcus Ramos (UNIVASF) qr0 . (se a primeira célula pesquisada for I Substituir esse 1 por β.

r0 senão vá_para deslocar a cabeça de leitura/escrita até encontrar a primeira célula par (se (se r 00 K = X) ou a segunda célula ímpar K = Y ). posicionando-a sobre o primeiro símbolo da ta (◦). Ir para o estado q r0 I Se a célula encontrada não contiver o símbolo I I Marcus Ramos (UNIVASF) : r 00 TC 2010-1 22 de abril de 2010 100 / 240 . I Se a célula encontrada contiver o símbolo I I β: Deslocar a cabeça de leitura/escrita. posicionando-a sobre o primeiro símbolo da ta (◦). Ir para o estado q β Deslocar a cabeça de leitura/escrita.Máquina de Turing Teorema 2 Algoritmo Para cada instrução I se zeroK i ∈ I: então vá_para I A partir do estado qr .

q3 .Máquina de Turing Teorema 2 Exemplo r1 : r2 : r3 : zeroX vá_para r4 senão subX vá_para r3 faça addY vá_para r1 se vá_para r2 faça I Σ = {1} I Q = {q1 . q2 . q4 } I Π = {} I Estado inicial I F = {q4 } I V = {} q1 (pois Marcus Ramos (UNIVASF) (pois r4 r1 é o rótulo inicial de é rótulo nal de P) P) TC 2010-1 22 de abril de 2010 101 / 240 .

Máquina de Turing Teorema 2 Exemplo r1 : se zeroX vá_para Marcus Ramos (UNIVASF) r4 senão vá_para TC 2010-1 r2 22 de abril de 2010 102 / 240 .

Máquina de Turing Teorema 2 Exemplo r2 : faça subX vá_para Marcus Ramos (UNIVASF) r3 TC 2010-1 22 de abril de 2010 103 / 240 .

Máquina de Turing Teorema 2 Exemplo r3 : faça addY vá_para Marcus Ramos (UNIVASF) r1 TC 2010-1 22 de abril de 2010 104 / 240 .

Teorema 2 Máquina de Turing Exemplo Marcus Ramos (UNIVASF) TC 2010-1 22 de abril de 2010 105 / 240 .

saída e trabalho. I Fila ( I Entrada. I Máquina Universal. I Parada. sem restrições. denominada X: rst-in-rst-out). I Posui uma única variável. Marcus Ramos (UNIVASF) TC 2010-1 22 de abril de 2010 106 / 240 . I Possui um programa associado (uxograma): I Partida. I Desvio condicional.Generalidades Máquina de Post I Denida por Emil Leon Post em 1936. I Atribuição. I Tamanho pode variar. I Tamanho inicial igual ao comprimento da cadeia de entrada.

Denição Máquina de Post Uma Máquina de Post é uma tripla: M = (Σ. . σ2 .. D. Marcus Ramos (UNIVASF) #∈ / Σ. I # é o símbolo auxiliar... σn } I D é o alfabeto de entrada. desvio condicional e atribuição. parada. TC 2010-1 22 de abril de 2010 107 / 240 . constituído pelos componentes partida. é o programa (ou uxograma). #) onde: I Σ = {σ1 .

TC 2010-1 22 de abril de 2010 108 / 240 .Denição Máquina de Post Componente Partida: I Único em cada programa P. I Indica o início da execução de Marcus Ramos (UNIVASF) P.

sem restrições (inclusive zero ocorrências de qualquer ou de ambos os componentes).Denição Máquina de Post Componente Parada: I Pode ser de dois tipos: parada com aceitação ou parada com rejeição. Marcus Ramos (UNIVASF) TC 2010-1 22 de abril de 2010 109 / 240 . I Múltiplas ocorrências são permitidas.

I Se |Σ| = n. devem ser previstos n+2 desvios. I Desvio para o símbolo auxiliar (#) e também para o caso de X conter a cadeia vazia (). I Conforme o símbolo encontrado. I O símbolo encontrado é removido do início da la. Marcus Ramos (UNIVASF) TC 2010-1 22 de abril de 2010 110 / 240 . desvia de acordo.Máquina de Post Denição Componente Desvio condicional: I Analisa o primeiro símbolo da la (variável X ).

I µ ∈ (Σ ∪ {#}) Marcus Ramos (UNIVASF) TC 2010-1 22 de abril de 2010 111 / 240 .Denição Máquina de Post Componente Atribuição: I Concatena o símbolo µ ao nal da cadeia contida em X (vai para o nal da la).

I Transportar todos os demais I Se chegar num b. I Acrescentar o símbolo # ao nal da mesma. remover. I Transportar todos os demais I Repetir. I Se a cadeia contiver apenas o símbolo de nal de cadeia.Máquina de Post Exemplo  programa P que reconhece a b n n Estratégia: I X contém a cadeia a ser analisada. Marcus Ramos (UNIVASF) TC 2010-1 22 de abril de 2010 112 / 240 . para indicar nal de cadeia. I Se o primeiro símbolo for a. remover. ACEITA. a para o nal da cadeia. b para o nal da cadeia. senão REJEITA.

Máquina de Post Exemplo  programa P que reconhece a b n n Marcus Ramos (UNIVASF) TC 2010-1 22 de abril de 2010 113 / 240 .

Máquina de Post Exemplo  programa P que reconhece a b n n I Valores da variável X para a entrada aabb. I Parada com a condição ACEITA: aaabbb abbb# bbb#aa b#aab aabb bb# #a ab#  Marcus Ramos (UNIVASF) aaabbb# abbb#a bb#aa #aab aabb# bb#a #ab b# # TC 2010-1 aabbb# bbb#a b#aa #aabb abb# b#a ab #  22 de abril de 2010 114 / 240 .

#) que simula M. Π. Q.Teorema 3 Máquina de Post Máquina de Turing ≤ Máquina de Post Seja: M = (Σ. D. Então. V. β. ◦) uma Máquina de Turing. F. q0 . existe uma Máquina de Post: M 0 = (Σ ∪ V. Marcus Ramos (UNIVASF) TC 2010-1 22 de abril de 2010 115 / 240 .

I A posição correntemente referenciada pelo cursor indica a primeira posição da la contida na variável X. I O símbolo # é usado para sinalizar o nal da cadeia de entrada. Marcus Ramos (UNIVASF) TC 2010-1 22 de abril de 2010 116 / 240 . I A parte situada à esquerda da ta de entrada corresponde à parte nal da la.Teorema 3 Máquina de Post Fita I Representada pela variável X. situada após o símbolo #.

an #a1 a2 Marcus Ramos (UNIVASF) TC 2010-1 22 de abril de 2010 117 / 240 ..Teorema 3 Máquina de Post Fita A situação da ta acima é representada na Máquina de Post por: X = a3 a4 ..

conforme a função de transição. I Seqüência de testes e atribuições que resultem na modicação pretendida (n testes e Marcus Ramos (UNIVASF) n atribuições). TC 2010-1 22 de abril de 2010 118 / 240 . na Máquina de Post: I A substituição de um símbolo por outro. I O deslocamento do cursor uma posição para a esquerda.Teorema 3 Máquina de Post Movimento para a esquerda É necessário representar.

Teorema 3 Máquina de Post Movimento para a esquerda I Seja Π(qi ..an #a1 Marcus Ramos (UNIVASF) TC 2010-1 22 de abril de 2010 119 / 240 . A3 .. I O conteúdo da variável X deve ser alterado de a3 a4 .. a3 ) = (qj .. E).an #a1 a2 para a2 A3 a4 .

Marcus Ramos (UNIVASF) TC 2010-1 22 de abril de 2010 120 / 240 .Teorema 3 Máquina de Post Movimento para a direita É necessário representar. conforme a função de transição. I Seqüência de testes e atribuições que resultem na modicação pretendida (único teste e única atribuição). I O deslocamento do cursor uma posição para a direita. na Máquina de Post: I A substituição de um símbolo por outro.

.. I O conteúdo da variável X deve ser alterado de a2 a3 a4 .an #a1 A2 Marcus Ramos (UNIVASF) TC 2010-1 22 de abril de 2010 121 / 240 .. a2 ) = (qj . D).Teorema 3 Máquina de Post Movimento para a direita I Seja Π(qi . A2 .an #a1 para a3 a4 ..

aceitação e rejeição I Instrução Partida simula o estado inicial q0 . I A rejeição por função de transição indenida ou movimento inválido são simuladas pela instrução Rejeita.Teorema 3 Máquina de Post Estados. Marcus Ramos (UNIVASF) TC 2010-1 22 de abril de 2010 122 / 240 . I Instrução Aceita simula os estados nais qi ∈ F . I Cada um dos demais estados corresponde a uma instrução Desvio condicional.

F.Teorema 4 Máquina de Post Máquina de Post ≤ Máquina de Turing Seja: M = (Σ. existe uma Máquina de Turing: M 0 = (Σ. Então. ◦) que simula M. Q. β. {#}. Marcus Ramos (UNIVASF) TC 2010-1 22 de abril de 2010 123 / 240 . q0 . D. #) uma Máquina de Post. Π.

an . I O cursor aponta para o primeiro de I Se X = a1 a2 a3 .Teorema 4 Máquina de Post Variável X I X é simulada pela ta. então a representação de X na ta é: Marcus Ramos (UNIVASF) TC 2010-1 22 de abril de 2010 124 / 240 .....am #am+1 . X.

...an Marcus Ramos (UNIVASF) um teste com o símbolo TC 2010-1 a1 22 de abril de 2010 resulta 125 / 240 . X = a2 a3 . I Se em X = a1 a2 a3 ....Teorema 4 Máquina de Post Desvio condicional I O consumo do símbolo mais à esquerda é representado pela substituição do símbolo lido por β seguido do deslocamento do cursor para à direita...an .am #am+1 .am #am+1 .

.an .Teorema 4 Máquina de Post Atribuição I A atribuição de um símbolo à variável X é representado pelo acréscimo de um símbolo no nal da ta seguido do retorno do cursor para a posição mais à esquerda da ta que não seja X = a1 a2 a3 . uma atribuição resulta em X = a1 a2 a3 .... com o símbolo 22 de abril de 2010 s 126 / 240 .am #am+1 ....am #am+1 .an s I Se Marcus Ramos (UNIVASF) TC 2010-1 β..

aceita e rejeita I A instrução Partida é simulada pelo estado inicial I A instrução Aceita é simulada por q0 . qF ∈ F .Teorema 4 Máquina de Post Partida. I A instrução Rejeita é simulada por movimento inválido. Marcus Ramos (UNIVASF) TC 2010-1 22 de abril de 2010 127 / 240 .

I Máquina Universal.Generalidades Máquina com Pilhas I Formalizada por vários autores na década de 1960. I Parada. Marcus Ramos (UNIVASF) TC 2010-1 22 de abril de 2010 128 / 240 . I A memória de entrada é separada das memórias auxiliar e de saída (diferente das Máquinas de Turing e de Post). I Pilha ( I Uma ou mais pilhas. I Desvio condicional (desempilha). I Memória auxiliar: rst-in-last-out). I Empilha. I Fita de entrada contém a cadeia a ser analisada. I As pilhas não tem limitação de tamanho. I Possui um programa associado (uxograma): I Partida.

constituído pelos componentes partida.Máquina com Pilhas Denição Uma Máquina de Pilhas é uma dupla: M = (Σ. é o programa (ou uxograma). parada. I X I Yi . σ2 . representa as pilhas. desvio condicional (desempilha) e empilha. D) onde: I Σ = {σ1 .... . σn } I D é o alfabeto de entrada. i ≥ 0. representa a ta de entrada. Marcus Ramos (UNIVASF) TC 2010-1 22 de abril de 2010 129 / 240 .

I Indica o início da execução de Marcus Ramos (UNIVASF) P.Denição Máquina com Pilhas Componente Partida: I Único em cada programa P. TC 2010-1 22 de abril de 2010 130 / 240 .

Marcus Ramos (UNIVASF) TC 2010-1 22 de abril de 2010 131 / 240 . I Múltiplas ocorrências são permitidas.Denição Máquina com Pilhas Componente Parada: I Pode ser de dois tipos: parada com aceitação ou parada com rejeição. sem restrições (inclusive zero ocorrências de qualquer ou de ambos os componentes).

Máquina com Pilhas Denição Componente Desvio condicional (desempilha): I Analisa o primeiro símbolo da entrada ou da pilha i (variáveis X e Yi . respectivamente). devem ser previstos I Desvio também para o caso de Marcus Ramos (UNIVASF) n+1 X ou TC 2010-1 desvios. I Conforme o símbolo encontrado. desvia de acordo. Yi conter a cadeia vazia (). I O símbolo encontrado é removido do início da entrada ou da pilha. I Se |Σ| = n. 22 de abril de 2010 132 / 240 .

µ ∈ Σ.Máquina com Pilhas Denição Componente Empilha: I Insere o símbolo I µ no topo da pilha Yi . Marcus Ramos (UNIVASF) TC 2010-1 22 de abril de 2010 133 / 240 .

Marcus Ramos (UNIVASF) TC 2010-1 22 de abril de 2010 134 / 240 . I Ler os símbolos a da entrada (X ). REJEITA. b na entrada. começar a desempilhar os garantindo que para cada I Se a seqüência de símbolos a seqüência de símbolos a b b em X existe um a em Y. da entrada (X ) acabar juntamente com da pilha (Y ). empilhando os mesmos em seguida (Y ). I Quando encontrar o primeiro símbolos a. senão. então ACEITA.Máquina com Pilhas Exemplo  a b n n Estratégia: I Usa uma única pilha.

Exemplo  a b Máquina com Pilhas n n Marcus Ramos (UNIVASF) TC 2010-1 22 de abril de 2010 135 / 240 .

Exemplo  a b Máquina com Pilhas n n X aaabbb aabbb aabbb abbb abbb bbb bbb bb bb b b   Marcus Ramos (UNIVASF) Y   a a aa aa aaa aaa aa aa a a  TC 2010-1 22 de abril de 2010 136 / 240 .

Marcus Ramos (UNIVASF) TC 2010-1 22 de abril de 2010 137 / 240 . remover o mesmo de símbolo a de Y1 e inserir um símbolo b I Deve-se garantir que as quantidades de em a Y1 . em Y1 e b na entrada sejam idênticas. I Se as quantidade de b em Y2 e c em X forem iguais. X. inserindo-os na piha I Para cada símbolo b da entrada. I Remover simbolos a da entrada. I Para cada símbolo um símbolo b da c da entrada. remover um Y2 . ACEITA.Exemplo  a b c Máquina com Pilhas n n n Estratégia: I Usa duas pilhas. senão REJEITA. remover o mesmo de X e remover Y2 . Y1 e Y2 .

Exemplo  a b c Máquina com Pilhas n n n Marcus Ramos (UNIVASF) TC 2010-1 22 de abril de 2010 138 / 240 .

Exemplo  a b c Máquina com Pilhas n n n X aabbcc abbcc abbcc bbcc bbcc bcc bcc bcc cc cc cc c c   Marcus Ramos (UNIVASF) Y1   a a aa aa a a a       TC 2010-1 Y2        b b b bb bb b b  22 de abril de 2010 139 / 240 .

I Verica se os três primeiros símbolos da entrada X são a. I Quando esgotar a cadeia de entrada. I Consome os demais símbolos da entrada.Máquina com Pilhas Exemplo  aaa(a|b) ∗ Estratégia: I Não usa pilha. ACEITA. Marcus Ramos (UNIVASF) TC 2010-1 22 de abril de 2010 140 / 240 . Se as condições anteriores não forem vericadas. REJEITA.

Máquina com Pilhas Exemplo  aaa(a|b) Marcus Ramos (UNIVASF) ∗ TC 2010-1 22 de abril de 2010 141 / 240 .

Máquina com Pilhas Exemplo  aaa(a|b) ∗ X aaabc aabc abc bc c  Marcus Ramos (UNIVASF) TC 2010-1 22 de abril de 2010 142 / 240 .

capaz de aceitar a classe das linguagens recursivamente enumeráveis. I Duas pilhas: corresponde à Máquina de Turing. capaz de reconhecer a classe das linguagens livres de contexto. I Uma pilha: corresponde ao autômato de pilha. Marcus Ramos (UNIVASF) TC 2010-1 22 de abril de 2010 143 / 240 . I Três ou mais pilhas: podem sempre ser simuladas por uma máquina com apenas duas pilhas. capaz de reconhecer a classe das linguagens regulares.Máquina com Pilhas Quantidade de pilhas A classe de linguagens representadas por Máquinas de Pilhas depende da quantidade de pilhas que ela possui: I Nenhuma pilha: corresponde ao autômato nito.

I Componentes: I Fita de entrada.Generalidades Autômato com Duas Pilhas I Similar à Máquina com Duas Pilhas. I Máquina de estados. I Máquina Universal. I No lugar de um diagrama de uxos usa-se um diagrama de estados. I Duas pilhas. Marcus Ramos (UNIVASF) TC 2010-1 22 de abril de 2010 144 / 240 .

I A leitura provoca o deslocamento do cursor. I Leitura opcional. I Contém a cadeia a ser analisada. I Deslocamento do cursor para a direita apenas. I Leitura apenas.Autômato com Duas Pilhas Fita de entrada I Finita. I Teste se a entrada foi esgotada. Marcus Ramos (UNIVASF) TC 2010-1 22 de abril de 2010 145 / 240 .

Marcus Ramos (UNIVASF) TC 2010-1 22 de abril de 2010 146 / 240 . I Leitura/escrita. I A leitura remove o símbolo consultado (topo da pilha).Pilhas Autômato com Duas Pilhas I Tamanho ilimitado. I Cada pilha é acessada por uma cabeça de leitura/escrita independente. I Leitura opcional. I Usadas como memória auxiliar. I Teste se a pilha está vazia.

F. q0 . I Π é a função de transição: Π : Q×(Σ∪{. ?})×(V ∪{. I Q é o conjunto de estados. Π. I F ⊆Q é o conjunto de estados nais.Denição Autômato com Duas Pilhas Um Autômato com Duas Pilhas é uma sextupla: M = (Σ. Q. Marcus Ramos (UNIVASF) TC 2010-1 22 de abril de 2010 147 / 240 . ?})×(V ∪{. I V é o alfabeto auxiliar. V ) onde: I Σ é o alfabeto de entrada. ?}) → Q×(V ∪{})×(V ∪{}) I q0 ∈ Q é o estado inicial.

Autômato com Duas Pilhas

Diagrama de estados
Se:

Π(qi , x, y1 , z1 ) = (qj , y2 , z2 )
então:

Marcus Ramos (UNIVASF)

TC 2010-1

22 de abril de 2010

148 / 240

?

Autômato com Duas Pilhas

e  em Π

Seja

Π(qi , x, y1 , z1 ) = (qj , y2 , z2 ).

Então:

I Se

x = ,

I Se

x =?,

I Se

y 1 = ,

I Se

y1 =?,

testa se a primeira pilha está vazia;

I Se

z1 = ,

não lê símbolo da segunda pilha e não desempilha símbolo;

I Se

z1 =?,

I Se

y 2 = ,

mantém a primeira pilha inalterada;

I Se

z2 = ,

mantém a segunda pilha inalterada.

não lê símbolo da ta de entrada e não desloca o cursor;
testa se a cadeia de entrada está esgotada;
não lê símbolo da primeira pilha e não desempilha símbolo;

testa se a segunda pilha está vazia;

Marcus Ramos (UNIVASF)

TC 2010-1

22 de abril de 2010

149 / 240

Autômato com Duas Pilhas

Exemplo  a b

n n

Marcus Ramos (UNIVASF)

TC 2010-1

22 de abril de 2010

150 / 240

Autômato com Duas Pilhas

Exemplo  a b

n n

Marcus Ramos (UNIVASF)

Estado

Entrada

Primeira pilha

q0
q0
q0
q0
q1
q1
q1
qf

aaabbb
aabbb
abbb
bbb
bb
b  

B
BB
BBB
BB
B 

TC 2010-1

22 de abril de 2010

151 / 240

Autômato com Duas Pilhas Exemplo  a b c n n n Marcus Ramos (UNIVASF) TC 2010-1 22 de abril de 2010 152 / 240 .

Autômato com Duas Pilhas

Exemplo  a b c

n n n

Estado

Entrada

Primeira pilha

Segunda pilha

q0
q0
q0
q1
q1
q2
q2
qf

aabbcc
abbcc
bbcc
bcc
cc
c  

B
BB
B      

C
CC
C 

Marcus Ramos (UNIVASF)

TC 2010-1

22 de abril de 2010

153 / 240

Teorema 5

Autômato com Duas Pilhas

Máquina de Turing ≤ Autômato com Duas Pilhas
Toda Máquina de Turing pode ser simulada por algum Autômato com
Duas Pilhas.

I A primeira pilha (P1 ) simula o conteúdo da ta de entrada situado à
esquerda da cabeça de leitura/escrita;

I A segunda pilha (P2 ) simula o conteúdo da ta de entrada situado à
direita da cabeça de leitura/escrita, incluindo o símbolo corrente;

I A cadeia é copiada da ta de entrada inicialmente para
desta para

P1 ,

e depois

P2 ;

I Marcadores de fundo de pilha $ em

P2 (P1 )

são usados para simular

células em branco à direita (esquerda) do último (primeiro) símbolo
diferente de branco presente na ta.

Marcus Ramos (UNIVASF)

TC 2010-1

22 de abril de 2010

154 / 240

Autômato com Duas Pilhas

Teorema 5

Deslocamento à direita

I Considere

Π(qi , x) = (qj , y, D);

I Considere

P1 = γ

e

P2 = µx

(topo à direita);

I O autômato deve executar os movimentos necessários para que

P1 = γy

e

I Portanto,

P2 = µ;

(γ, qi , xµR ) ` (γy, qj , µR )

Marcus Ramos (UNIVASF)

TC 2010-1

22 de abril de 2010

155 / 240

Teorema 5

Autômato com Duas Pilhas

Deslocamento à direita

Marcus Ramos (UNIVASF)

TC 2010-1

22 de abril de 2010

156 / 240

x) = (qj . qj . xµR ) ` (γ. I Considere P1 = γz e P2 = µx (topo à direita). y.Autômato com Duas Pilhas Teorema 5 Deslocamento à esquerda I Considere Π(qi . E). zyµR ) Marcus Ramos (UNIVASF) TC 2010-1 22 de abril de 2010 157 / 240 . qi . (γz. P2 = µyz . I O autômato deve executar os movimentos necessários para que P1 = γ e I Portanto.

Teorema 5 Autômato com Duas Pilhas Deslocamento à esquerda Marcus Ramos (UNIVASF) TC 2010-1 22 de abril de 2010 158 / 240 .

após a cadeia de entrada. Marcus Ramos (UNIVASF) TC 2010-1 22 de abril de 2010 159 / 240 . I A cadeia de entrada ocupa as primeiras posições da ta da Máquina de Turing I A primeira pilha (P1 ) é simulada nas posições ímpares da ta da Máquina de Turing. após a cadeia de entrada. I A segunda pilha (P2 ) é simulada nas posições pares da ta da Máquina de Turing.Teorema 6 Autômato com Duas Pilhas Autômato com Duas Pilhas ≤ Máquina de Turing Todo Autômato com Duas Pilhas pode ser simulado por alguma Máquina de Turing.

Teorema 6 Autômato com Duas Pilhas Autômato com Duas Pilhas ≤ Máquina de Turing Marcus Ramos (UNIVASF) TC 2010-1 22 de abril de 2010 160 / 240 .

tais variações serão úteis na demonstração de alguns teoremas que serão vistos mais adiante. mostrando que todas elas podem ser simuladas pela Máquina de Turing básica: I Fita de entrada com múltiplas trilhas.Conceito Variações das Máquinas de Turing Iremos explorar variações sobre as Máquinas de Turing. I Não-determinismo. I Múltiplas tas de entrada. Marcus Ramos (UNIVASF) TC 2010-1 22 de abril de 2010 161 / 240 . I Fita limitada à esquerda. Além de reforçar a noção da Máquina de Turing como uma Máquina Universal.

Denição Variações das Máquinas de Turing Adotaremos uma denição um pouco diferente para Máquina de Turing. porém equivalente à anteriormente vista. Ela corresponde à denição utilizada em Hopcroft07: I A ta é innita em ambos os sentidos. I Não há marcador de início de ta. Marcus Ramos (UNIVASF) TC 2010-1 22 de abril de 2010 162 / 240 .

Denição Variações das Máquinas de Turing Marcus Ramos (UNIVASF) TC 2010-1 22 de abril de 2010 163 / 240 .

Σ. q0 . I Γ é o conjunto de símbolos da ta. F ) onde: I Q é o conjunto (nito) de estados. B. Γ.Variações das Máquinas de Turing Formalização Uma Máquina de Turing é uma 7-upla: M = (Q. R} Marcus Ramos (UNIVASF) TC 2010-1 22 de abril de 2010 164 / 240 . I Σ é o alfabeto de entrada. δ : Q × Γ → Q × Γ × {L. δ. I δ é a função de transição: Σ ⊆ Γ.

representa o símbolo branco. Σ. q0 . δ. F ) onde: I q0 ∈ Q I B é o estado inicial. usado para preencher todas as posições da ta não inicializadas com símbolos da cadeia de entrada. Marcus Ramos (UNIVASF) F ⊆ Q. B. B ∈ (Γ − Σ).Variações das Máquinas de Turing Formalização Uma Máquina de Turing é uma 7-upla: M = (Q. I F é o conjunto de estados nais. TC 2010-1 22 de abril de 2010 165 / 240 . Γ.

TC 2010-1 22 de abril de 2010 166 / 240 . I Se M não pára com a entrada Marcus Ramos (UNIVASF) w.Variações das Máquinas de Turing Complexidade no tempo A complexidade no tempo ou tempo de execução de uma Máquina de Turing M com uma entrada w é denida como: I A quantidade de movimentos que M executa com a entrada w até parar (aceitando ou rejeitando). o tempo é innito.

Variações das Máquinas de Turing Complexidade no tempo A complexidade no tempo ou tempo de execução de uma Máquina de Turing I A função I n I T (n) M é denida como: T (n). é o tempo máximo de execução quando são consideradas todas as possíveis cadeias Marcus Ramos (UNIVASF) w de comprimento TC 2010-1 n. representa um certo comprimento da cadeia de entrada. 22 de abril de 2010 167 / 240 .

Marcus Ramos (UNIVASF) TC 2010-1 22 de abril de 2010 168 / 240 . para algum k . ou seja. problemas intratáveis geralmente não possuem. T (n) = O(k ). considera-se: I Problemas tratáveis são aqueles que possuem tempo de execução k polinomial. T (n) = O(n ). funções exponenciais crescem muito mais rapidamente do que funções polinomiais. para algum k . I Exceções à parte.Variações das Máquinas de Turing Complexidade no tempo Independentemente de fatores ou coecientes. ou seja. I Problemas intratáveis são aqueles que possuem tempo de execução n exponencial. I Problemas tratáveis geralmente possuem soluções viáveis em computadores.

Variações das Máquinas de Turing Fita de entrada com múltiplas trilhas Conceito Marcus Ramos (UNIVASF) TC 2010-1 22 de abril de 2010 169 / 240 .

{z × Γ} ×{L. Σ. n Cada elemento de Γ é considerado um novo símbolo. I Se M = (Q. o controle nito consulta o símbolo armazenado em cada uma das trilhas individualmente.. os demais elementos de M permanecem 0 inalterados em M . Γn Γn Em cada estado. providencia uma substituição para cada um deles. Marcus Ramos (UNIVASF) TC 2010-1 22 de abril de 2010 170 / 240 . como numa máquina com apenas uma trilha. q0 . B.. essa máquina pode ser simulada por M0 n cujo conjunto de Γ0 = Γn .. R} | × Γ. δ..Variações das Máquinas de Turing Fita de entrada com múltiplas trilhas Formalização I Para uma ta de entrada com n trilhas: δ :Q×Γ {z × Γ} → Q × |Γ × Γ. e desloca a cabeça de leitura/escrita para a direita ou para a esquerda. F ) é uma Máquina de Turing com trilhas. Γ. e dessa forma símblos da ta é I um único símbolo é consultado/gravado de cada vez.

(B. (X. a). X). B).Variações das Máquinas de Turing Fita de entrada com múltiplas trilhas Exemplo Suponha uma Máquina de Turing com 2 trilhas e: Γ = {a. a). a). B)} Marcus Ramos (UNIVASF) TC 2010-1 22 de abril de 2010 171 / 240 . X. (B. (a. (X. (X. (B. B). (a. B} Então: Γ0 = {(a. X). X).

Variações das Máquinas de Turing

Não-determinismo
Denição

Uma Máquina de Turing

M

é dita não-determinística se existir mais de

uma possibilidade de movimentação a partir de uma mesma conguração.
Formalmente:

δ : Q × Γ → 2Q×Γ×{L,R}

Marcus Ramos (UNIVASF)

TC 2010-1

22 de abril de 2010

172 / 240

Variações das Máquinas de Turing

Não-determinismo
Linguagem denida
Seja

M

M

uma Máquina de Turing

não-determinística e

w ∈ Σ∗ .

São

considerados três casos, que cobrem todas as situações possíveis:

I

w ∈ ACEIT A(M )

se e somente se existe pelo menos uma seqüência

de movimentos que conduz

I

M

a um estado nal com a cadeia

w ∈ REJEIT A(M ) se e somente
movimentos de M com a cadeia w

w;

se todas as seqüências de
conduzem à congurações de

parada não-nais;

I

w ∈ LOOP (M )

se e somente se:

I Não existe nenhuma seqüência de movimentos que conduza

estado nal com a cadeia

M

a um

w;

I Existe pelo menos uma seqüência de movimentos que fazem com que

M

entre em loop com a cadeia

Marcus Ramos (UNIVASF)

w.

TC 2010-1

22 de abril de 2010

173 / 240

Variações das Máquinas de Turing

Não-determinismo
Exemplo

I A Máquina de Turing da gura seguinte é não-determinística e possui

Σ = {a, b, c, d, e, f, g};
I São consideradas cadeias de entrada que provocam todas as
combinações possíveis entre as situações de aceitação, rejeição e loop,
inclusive combinações duas a duas e as três simultaneamente;

I O resultado serve para ilustrar a determinação de

ACEIT A(M ), REJEIT A(M )

e

LOOP (M )

em Máquinas de

Turing não-determinísticas.

Marcus Ramos (UNIVASF)

TC 2010-1

22 de abril de 2010

174 / 240

Variações das Máquinas de Turing

Não-determinismo
Exemplo

Marcus Ramos (UNIVASF)

TC 2010-1

22 de abril de 2010

175 / 240

Variações das Máquinas de Turing

Não-determinismo
Exemplo

Marcus Ramos (UNIVASF)

TC 2010-1

22 de abril de 2010

176 / 240

Variações das Máquinas de Turing

Não-determinismo
Exemplo

Marcus Ramos (UNIVASF)

TC 2010-1

22 de abril de 2010

177 / 240

Variações das Máquinas de Turing

Não-determinismo
Exemplo

Portanto,

M

particiona

Σ∗

nos seguintes conjuntos:

I

ACEIT A(M ) = {a, d, e, g, ...};

I

REJEIT A(M ) = {b, ...};

I

LOOP (M ) = {c, f, ...};

Marcus Ramos (UNIVASF)

TC 2010-1

22 de abril de 2010

178 / 240

M com w podem Considere a quantidade de ocorrências de cada uma delas no conjunto de todas as ocorrências como sendo: I pelo menos um (≥ 1). Das 27 combinações 3 possíveis (3 ). As diversas seqüências de movimentação de ser classicadas em ACEIT A. rejeição ou loop. e como a cadeia w deve ser considerada do ponto de vista de aceitação. TC 2010-1 22 de abril de 2010 179 / 240 . I nenhuma (0). As tabelas seguintes mostram as várias combinações possíveis para os valores dessas três variáveis. REJEIT A e LOOP . apenas Marcus Ramos (UNIVASF) 10 são válidas. ou I todas (all).Variações das Máquinas de Turing Não-determinismo Combinações de casos Seja M e w.

Variações das Máquinas de Turing Não-determinismo Combinações de casos Marcus Ramos (UNIVASF) TC 2010-1 22 de abril de 2010 180 / 240 .

Variações das Máquinas de Turing Não-determinismo Combinações de casos Marcus Ramos (UNIVASF) TC 2010-1 22 de abril de 2010 181 / 240 .

Variações das Máquinas de Turing Não-determinismo Combinações de casos Marcus Ramos (UNIVASF) TC 2010-1 22 de abril de 2010 182 / 240 .

I REJEIT A(M 0 ) = REJEIT A(M ). Marcus Ramos (UNIVASF) TC 2010-1 22 de abril de 2010 183 / 240 .Variações das Máquinas de Turing Não-determinismo Equivalência Teorema: Toda Máquina de Turing não-determinística M pode ser simulada por uma 0 Máquina de Turing determinística M equivalente. Ou seja: I ACEIT A(M 0 ) = ACEIT A(M ). I LOOP (M 0 ) = LOOP (M ).

I A conguração corrente é marcada pelo símbolo especial ocupa o lugar do ∗ M 0. I Considerar a árvore de todos os caminhos possíveis. I A função de transição δ de M está armazenada no controle de M 0. Marcus Ramos (UNIVASF) TC 2010-1 22 de abril de 2010 184 / 240 . representando-as na ta de I As congurações são delimitadas pelo símbolo especial ∗. que situado à esquerda da mesma. X. I Parar e aceitar quando o estado corrente for nal. I Fazer uma busca em largura para determinar se alguma conguração é nal e aceitar quando encontrar.Variações das Máquinas de Turing Não-determinismo Equivalência Método: I Simular as congurações de M. I Parar e rejeitar quando não houverem novas congurações a serem consideradas.

Em caso armativo. M0 pára e aceita w. inicialmente. TC 2010-1 22 de abril de 2010 185 / 240 . M0 analisa a conguração corrente para determinar se o estado corrente é nal. A ta de cadeia M0 M contém. a conguração inicial de com a w. a conguração corrente para determinar o estado corrente símbolo corrente M0 qi analisa e o x.Variações das Máquinas de Turing Não-determinismo Equivalência Algoritmo: 1. 3. Essa conguração é marcada como sendo a conguração corrente. 0 5. x). 2. M insere. no nal da cadeia de entrada. 4. em caso negativo. tantas novas congurações quantos sejam os elementos de Marcus Ramos (UNIVASF) δ(qi .

As novas congurações são (αy. (qm .. R)}. 7. R). z. Marcus Ramos (UNIVASF) M0 pára e rejeita w. 8. TC 2010-1 caso exista.. .. I Suponha que I que I De maneira análoga se os deslocamentos forem à esquerda.Variações das Máquinas de Turing Não-determinismo Equivalência 6. qm . Cada uma dessas congurações é modicada para reetir a aplicação de uma particular transição: (α. xγ) seja a conguração corrente e δ(qi . γ). . γ). qi .. x) = {(qj . qj . y... vá para 2. M0 procura a próxima conguração na ta de entrada. Caso não exista. (αz. 22 de abril de 2010 186 / 240 .

Variações das Máquinas de Turing Não-determinismo Exemplo Marcus Ramos (UNIVASF) TC 2010-1 22 de abril de 2010 187 / 240 .

Variações das Máquinas de Turing Não-determinismo Exemplo Marcus Ramos (UNIVASF) TC 2010-1 22 de abril de 2010 188 / 240 .

Variações das Máquinas de Turing Não-determinismo Exemplo Marcus Ramos (UNIVASF) TC 2010-1 22 de abril de 2010 189 / 240 .

Variações das Máquinas de Turing Não-determinismo Exemplo Marcus Ramos (UNIVASF) TC 2010-1 22 de abril de 2010 190 / 240 .

Variações das Máquinas de Turing Não-determinismo Exemplo Marcus Ramos (UNIVASF) TC 2010-1 22 de abril de 2010 191 / 240 .

Variações das Máquinas de Turing Não-determinismo Exemplo Marcus Ramos (UNIVASF) TC 2010-1 22 de abril de 2010 192 / 240 .

Variações das Máquinas de Turing Não-determinismo Exemplo Marcus Ramos (UNIVASF) TC 2010-1 22 de abril de 2010 193 / 240 .

Variações das Máquinas de Turing Não-determinismo Exemplo Marcus Ramos (UNIVASF) TC 2010-1 22 de abril de 2010 194 / 240 .

22 de abril de 2010 195 / 240 . X0aa∗). 0 I M procura a conguração à direita do símbolo I A conguração inicial de X. q1 . q2 e q3 M de é (. M são denotados respectivamente M0 é (. 2 TC 2010-1 M.Variações das Máquinas de Turing Não-determinismo Conversão  início I Seja M I Seja w = aa. 1. I M 0 determina o estado corrente e o símbolo corrente de Marcus Ramos (UNIVASF) 0. q0 . especicada no slide seguinte. aa). I A conguração inicial de I Os estados q0 . q0 . 0 e 3 em M .

Variações das Máquinas de Turing Não-determinismo Versão não-determinística Marcus Ramos (UNIVASF) TC 2010-1 22 de abril de 2010 196 / 240 .

Variações das Máquinas de Turing Não-determinismo Versão não-determinística equivalente (parcial) Marcus Ramos (UNIVASF) TC 2010-1 22 de abril de 2010 197 / 240 .

gravar duas novas congurações no nal da ta. ir substituindo para (d). gravar uma nova substituindo a2 na conguração c) A partir de conguração no nal da ta. gravar uma nova conguração no nal da ta. a) A partir de substituindo 0a por b) A partir de q9 . terminar ambas com ∗. uma 0a na conguração corrente por a1 e outra substituindo a2.Variações das Máquinas de Turing Não-determinismo Conversão  término M0 está especicado parcialmente: q3 . terminar com ∗. q6 . Marcus Ramos (UNIVASF) TC 2010-1 22 de abril de 2010 198 / 240 . ir para (d). terminar com ∗. corrente por 0a. ir para (d). 0b na conguração corrente por b3.

X X.Variações das Máquinas de Turing Não-determinismo Conversão  término d) Procurar o primeiro ∗ X à esquerda e substituir por à direita e substituir por e) Deslocar a cabeça até o f ) Nos estados q2 e q5 . depois disso. e ir para o estado se a entrada corrente for q0 . ∗ ou branco. ∗. executar os passos (d) e (e). procurar o ir para (e). Marcus Ramos (UNIVASF) TC 2010-1 22 de abril de 2010 199 / 240 .

I Se M pára em congurações não-nais em todos os caminhos. I Se M 0 entra em loop em algum caminho. Marcus Ramos (UNIVASF) TC 2010-1 22 de abril de 2010 200 / 240 . entra em loop em algum caminho. M 0 aceita w e pára.Variações das Máquinas de Turing Não-determinismo Conclusões I Se M alcança alguma conguração de aceitação para w. M0 entra em loop em algum caminho. existe um M. pára em congurações não-nais em todos w. pára e rejeita I Se M I Se M0 w. M0 M0 entra em loop. M os caminhos com a entrada w em w. alcança uma conguração de aceitação para caminho de aceitação para I Se M0 pára e rejeita w.

congurações seguintes. no máximo. Marcus Ramos (UNIVASF) TC 2010-1 22 de abril de 2010 201 / 240 .Variações das Máquinas de Turing Não-determinismo Conclusões I Considere que M executa n movimentos. M (a partir da m congurações seguintes. no máximo. I Após a execução do segundo movimento de m∗m M. M. I Após a execução do n-ésimo movimento de mn congurações seguintes. haverão. I Considere que o maior número de transições em qualquer conguração de M é m. no máximo. I Após a execução do primeiro movimento de conguração inicial) haverão. haverão.

I Como I O tempo de execução de I Se M M0 0 é O(n). + mn ≤ 1 + n ∗ mn . O(n ∗ mn ).. M é 1 + m + m2 + . o total de congurações alcançadas por 1 + m + m2 + . se 0 caminho de M analisa 1 + n congurações.Variações das Máquinas de Turing Não-determinismo Conclusões I Portanto. então M é Marcus Ramos (UNIVASF) cada é exponencial. TC 2010-1 22 de abril de 2010 202 / 240 . 1 + n ∗ m congurações.. M precisa analisar. n sozinha. ∀m ≥ 0. + mn . ∀n ≥ 0...

I As transições controlam as leituras. I A cabeça pode permanecer no lugar de origem. I Cada ta possui uma cabeça de leitura/escrita independente das demais. as escritas e as movimentações de todas as cabeças.Variações das Máquinas de Turing Múltiplas tas de entrada Conceito Ao invés de uma única ta. Marcus Ramos (UNIVASF) TC 2010-1 22 de abril de 2010 203 / 240 . sem se deslocar. a Máquina de Turing possui uma quantidade nita de tas: I A cadeia de entrada é posicionada na primeira ta.

.. S}) | {z } | {z } {z } | Fita 1 Marcus Ramos (UNIVASF) Fita 2 TC 2010-1 Fita n 22 de abril de 2010 204 / 240 . × (Γ × {L.. S}) × (Γ × {L. |{z} Γ → δ : Q × |{z} Γ × |{z} Fita 1 Fita 2 Fita n Q × (Γ × {L. S}) . R. R.. R.Variações das Máquinas de Turing Múltiplas tas de entrada Denição Máquina de Turing com n tas: Γ ×.

Variações das Máquinas de Turing Múltiplas tas de entrada Representação Marcus Ramos (UNIVASF) TC 2010-1 22 de abril de 2010 205 / 240 .

a. β. (Z. R).Variações das Máquinas de Turing Múltiplas tas de entrada Representação Suponha: δ(q0 . L). β. S)) Marcus Ramos (UNIVASF) TC 2010-1 22 de abril de 2010 206 / 240 . (X. R). (W. β) = (q1 . (Y.

Variações das Máquinas de Turing Múltiplas tas de entrada Representação Marcus Ramos (UNIVASF) TC 2010-1 22 de abril de 2010 207 / 240 .

cabe questionar se existem linguagens que não são recursivamente enumeráveis e que são aceitas por alguma Máquina de Turing com duas ou mais tas.Variações das Máquinas de Turing Múltiplas tas de entrada Equivalência Como toda Máquina de Turing é uma Máquina de Turing com múltiplas tas. No entanto. Marcus Ramos (UNIVASF) TC 2010-1 22 de abril de 2010 208 / 240 . é fato que Máquinas de Turing com múltiplas tas aceitam todas as linguagens recursivamente enumeráveis.

independentemente da quantidade de tas. Marcus Ramos (UNIVASF) TC 2010-1 22 de abril de 2010 209 / 240 .Variações das Máquinas de Turing Múltiplas tas de entrada Equivalência Teorema: A classe das linguagens aceitas por Máquinas de Turing com múltiplas tas corresponde exatamente à classe das linguagens aceitas por Máquinas de Turing com uma única ta. I MT com uma única ta simula MT com múltiplas tas.

1 ≤ i ≤ n. corrente da cabeça de n = 4.Variações das Máquinas de Turing Múltiplas tas de entrada Convenção I Uma MT com ta e 2∗n n tas será representada por uma MT com uma única trilhas. I A trilha 2∗i−1 I A trilha 2∗i representa o conteúdo da ta X ) a posição 2 ∗ i − 1. representa (símbolo leitura/escrita na ta I Exemplo para i. 1 ≤ i ≤ n. Marcus Ramos (UNIVASF) TC 2010-1 22 de abril de 2010 210 / 240 .

Variações das Máquinas de Turing Múltiplas tas de entrada Exemplo Marcus Ramos (UNIVASF) TC 2010-1 22 de abril de 2010 211 / 240 .

Variações das Máquinas de Turing Múltiplas tas de entrada Exemplo Marcus Ramos (UNIVASF) TC 2010-1 22 de abril de 2010 212 / 240 .

3. M1 M2 . M2 M2 simula M1 precisa localizar as posições onde estão os marcadores das cabeças de leitura/escrita de 2. deve manter sempre. o símbolo lido em cada uma das posições correspondentes. armazenado no seu conjunto de estados. O estado de estados de Marcus Ramos (UNIVASF) deve estar armazenado também no conjunto de TC 2010-1 22 de abril de 2010 213 / 240 . M2 deve armazenar. M2 M1 n na sua ta de entrada. Para não se perder.Variações das Máquinas de Turing Múltiplas tas de entrada Equivalência Método: 1. 4. a quantidade de marcadores que estão à esquerda e à direita da posição corrente de leitura/escrita. no seu conjunto de estados. Após a localização de cada marcador.

6. Os estados de aceitação de de aceitação de Marcus Ramos (UNIVASF) M2 são aqueles que representam estados M1 . 7. M2 simula M1 M2 determina a transição a ser aplicada.Variações das Máquinas de Turing Múltiplas tas de entrada Equivalência Método: 5. substitui os símbolos correspondentes e registra uma eventual mudança de estado de M1 no seu próprio conjunto de estados. M2 revisita cada um dos marcadores. desloca os mesmos de posição (se for o caso). TC 2010-1 22 de abril de 2010 214 / 240 .

Variações das Máquinas de Turing Múltiplas tas de entrada Equivalência Teorema: O tempo que movimentos de M1 M2 (com uma única ta) leva para simular (com múltiplas tas) é Marcus Ramos (UNIVASF) TC 2010-1 n O(n2 ). 22 de abril de 2010 215 / 240 .

estarão separados os marcadores de M2 estarão separados 2∗n M1 . i é o número de movimentos movimentos para a direita. para isso são requeridos. M2 deve executar. no máximo. 2∗i M2 posições. no máximo. os marcadores de M2 estarão separados posições. movimentos de por no máximo os marcadores de posições.Variações das Máquinas de Turing Múltiplas tas de entrada Equivalência I Após 1 movimento de por no máximo I Após 2 n 4 M1 . I Uma vez determinada a transição a ser aplicada. M2 deve substituir os símbolos nas trilhas ímpares na ta de entrada. Marcus Ramos (UNIVASF) 2∗i movimentos para a esquerda. TC 2010-1 22 de abril de 2010 216 / 240 . onde executados por M1 até o momento. I Para localizar todos os marcadores. movimentos de por no máximo I Após 2 M1 .

.Variações das Máquinas de Turing Múltiplas tas de entrada Equivalência I Também é necessário deslocar os marcadores das trilhas pares para a esquerda ou para a direita.. Esse TC 2010-1 22 de abril de 2010 M2 217 / 240 .... . Distância máxima em M2 Movimentos de 1 2 2 4 4+2∗k 8+2∗k . num total de movimentos. onde k cálculo independe do valor de Movimentos de M1 i. n 2∗n 4∗n+2∗k Marcus Ramos (UNIVASF) 2∗k é o número de tas sendo simuladas. para isso serão necessários outros 2 movimentos por marcador (um em cada sentido)...

no máximo. 22 de abril de 2010 218 / 240 .Variações das Máquinas de Turing Múltiplas tas de entrada Equivalência I Portanto. para simular n movimentos de O(n2 ) movimentos. para simular n P n movimento de M1 são requeridos (4 ∗ i + 2 ∗ k) ≤ n ∗ (4 ∗ n + 2 ∗ k) = 4 ∗ n2 + 2 ∗ k ∗ n movimentos. i=1 I Logo. Marcus Ramos (UNIVASF) TC 2010-1 M1 serão requeridos.

e integralmente na segunda trilha. I Qualquer tentativa de movimentação da cabeça de leitura/escrita para a esquerda da primeira posição da ta gera uma condição de parada com rejeição da cadeia de entrada.Variações das Máquinas de Turing Fita limitada à esquerda Conceito Ao invés de uma ta com tamanho ilimitado em ambos os sentidos. a Máquina de Turing possui uma ta limitada à esquerda e sem limitação à direita: I A ta possui duas trilhas. I A ta é preenchida com brancos à direita do último símbolo da cadeia de entrada na primeira trilha. Marcus Ramos (UNIVASF) TC 2010-1 22 de abril de 2010 219 / 240 . I A cadeia de entrada é posicionada na primeira trilha no início da ta.

I M1 nunca escreve branco (B ) na ta de entrada. I A cabeça de leitura/escrita nunca se desloca para a esquerda da primeira posição.Variações das Máquinas de Turing Fita limitada à esquerda Equivalência Teorema: A classe das linguagens aceitas por Máquinas de Turing com ta ilimitada em ambos os sentidos corresponde exatamente à classe das linguagens aceitas por Máquinas de Turing com ta limitada à esquerda. I MT M1 M2 com ta limitada à esquerda simula MT com ta ilimitada. Marcus Ramos (UNIVASF) TC 2010-1 22 de abril de 2010 220 / 240 .

Variações das Máquinas de Turing Fita limitada à esquerda Representação Marcus Ramos (UNIVASF) TC 2010-1 22 de abril de 2010 221 / 240 .

B. R}. Γ2 . B). q2 . B 0 ) = δ2 (q. B 0 . Σ. δ2 . B. F2 ). fazer δ2 (q. Marcus Ramos (UNIVASF) TC 2010-1 = (p. D). I Substituir toda regra do tipo δ2 (q. X) = (p. I ∀q ∈ Q2 . I Fazer Γ2 ← Γ2 ∪ Então: {B 0 }. X) δ2 (q.Variações das Máquinas de Turing Fita limitada à esquerda Nunca escreve branco Algoritmo: Seja M2 = (Q2 . 22 de abril de 2010 por 222 / 240 . D ∈ {L. D).

e que toda movimentação à esquerda da primeira posição seleciona a trilha inferior. se a cabeça de leitura/escrita está posicionada à esquerda ou à direita da posição inicial em I Conforme o estado de M1 . Marcus Ramos (UNIVASF) TC 2010-1 22 de abril de 2010 223 / 240 . M2 . nos estados de M1 .Variações das Máquinas de Turing Fita limitada à esquerda Equivalência Método: I Usar a trilha superior para representar o lado direito da ta. e a trilha inferior para representar o lado esquerdo da ta. I Garantir que toda movimentação para a direita da primeira posição seleciona a trilha superior. manipular apenas a trilha superior ou inferior da ta de entrada. I Memorizar.

q1 } ∪ (Q2 × {U. Σ. B). Γ1 . M2 . F1 ). (B. q2 . δ1 . q0 . L}). onde: Considere brancos na ta. TC 2010-1 22 de abril de 2010 224 / 240 . F2 ) modicado para nunca escrever M2 é simulado por M1 com ta limitada à esquerda. L})|q ∈ F2 }. M1 = (Q1 . L indica a manipulação da trilha inferior. U indica a manipulação da trilha superior da ta. δ2 .Variações das Máquinas de Turing Fita limitada à esquerda Equivalência M2 = (Q2 . T ) ∈ (F2 × {U. ∗∈ / Γ2 é usado para indicar o início da I (B. Γ2 . ∗)|X ∈ Γ2 }. B) I F1 = {(q. representa o branco de Marcus Ramos (UNIVASF) ta. Σ1 . I Σ1 = Σ × {B}. I Γ1 = (Γ2 × Γ2 ) ∪ {(X. I Q1 = {q0 . B.

D). L). Marcus Ramos (UNIVASF) TC 2010-1 22 de abril de 2010 225 / 240 . Se δ2 (q. X)) = ((p. ∗). (X. Y. δ1 (q1 . δ1 ((q. U ). (X. U ). selecionar M1 ) ∀Z ∈ Γ2 : trilha superior (parte direita da ta de 3. X) = (p.Variações das Máquinas de Turing Fita limitada à esquerda Equivalência Obtenção de 1. D). ∀σ ∈ (Σ ∪ {B}). D) e δ1 ((q. ∀X ∈ Γ2 . segundo movimento: retornar para a posição inicial da ta. B). (Z. (Z. R). exceto se estiver na primeira posição. (Y. I I então. L). Y ). δ1 : δ1 (q0 . primeiro movimento: inserção do marcador de início de ta na segunda trilha. Z). (σ. e ir para o estado inicial q2 . (σ. L). B)) = (q1 . 2. simula M2 levando em consideração a trilha corrente. (X. B)) = ((q2 . U ). Z)) = ((p.

U ). L).Variações das Máquinas de Turing Fita limitada à esquerda Equivalência Obtenção de δ1 : δ2 (q. (X. (Y. X) = (p. X) = (p. δ2 (q. Y. ∗)) = δ1 ((q. então: δ1 ((q. U ). (X. (X. ∗). R) 5. ∗)) = δ1 ((q. L). Se deslocamento à esquerda a primeira posição seleciona trilha inferior. Y. ∗)) = ((p. (X. L). (Y. L). Se deslocamento à direita da primeira posição seleciona a trilha superior. Marcus Ramos (UNIVASF) TC 2010-1 22 de abril de 2010 226 / 240 . R) 4. U ). então: δ1 ((q. ∗)) = ((p. R). ∗).

Variações das Máquinas de Turing Fita limitada à esquerda Conclusão I I M1 reproduz as congurações de M2 . Marcus Ramos (UNIVASF) TC 2010-1 22 de abril de 2010 227 / 240 . M1 entra em um estado de aceitação se e somente se M2 também entra. I L(M1 ) = L(M2 ).

Variações das Máquinas de Turing Fita limitada à esquerda Exemplo Marcus Ramos (UNIVASF) TC 2010-1 22 de abril de 2010 228 / 240 .

d). ∗). c). d). L)} Marcus Ramos (UNIVASF) TC 2010-1 22 de abril de 2010 229 / 240 . (q3 . L). (b. d). (q5 . c). (c. (B. ∗). (a. (a. ∗). c). B). L)} I Σ1 = {(a. (c. L). B). U ). (d. q1 . b). (d. (b. (d. (b. ∗). L). (q6 . (a. d). c). B)} I Γ1 = {(a. (d. (c. (q2 . (a. B). B). (q4 . (B. B). (b. L). (b. (q5 . (c. (c. (q2 . a). a). (a. a). U ). U ). b). U ). U ). b). (b. (q6 . (q4 . (c. (B. B). d). (d. b). U ). (b. (c. a). (d. c). (B. (B. B)} I F1 = {(q6 . b). (q3 . (d. (q6 . B). a).Variações das Máquinas de Turing Fita limitada à esquerda Exemplo I Q1 = {q0 .

B)) = ((q2 . ∗). B)) = ((q2 . B). (c. (c. (d. (b. ∗). (d. (c. B). L) δ1 (q1 . ∗). (B. (B. ∗). (a. B). (b. (a. B)) = (q1 . B)) = (q1 . U ). ∗). R) δ1 (q0 . R) δ1 (q0 . (B.Variações das Máquinas de Turing Fita limitada à esquerda Exemplo Obtenção de δ1 : 1. B). (b. U ). R) δ1 (q0 . (b. L) δ1 (q1 . U ). B)) = ((q2 . B)) = (q1 . δ1 (q0 . R) δ1 (q0 . (c. U ). L) δ1 (q1 . (B. B)) = (q1 . (a. B)) = (q1 . L) Marcus Ramos (UNIVASF) TC 2010-1 22 de abril de 2010 230 / 240 . U ). B). B)) = ((q2 . B)) = ((q2 . (a. R) 2. (d. L) δ1 (q1 . (d. δ1 (q1 .

U ). c). U ). U ). L). U ). L). (B. U ). (c. L) δ1 ((q2 . L). (b. c. L). (c. d). R) δ1 ((q2 . b)) = ((q3 . c). a)) = ((q3 . (c. R) δ1 ((q2 . R): δ1 ((q2 . L). c). L). L). L) δ1 ((q2 .Variações das Máquinas de Turing Fita limitada à esquerda Exemplo A partir de 3. (a. L) δ1 ((q2 . (a. B)) = ((q3 . c)) = ((q3 . (c. R) δ1 ((q2 . (c. B). c)) = ((q3 . R) δ1 ((q2 . (B. (d. c). U ). (d. (c. c)) = ((q3 . c)) = ((q3 . (c. U ). c)) = ((q3 . U ). d)) = ((q3 . (c. c) = (q3 . c). U ). c)) = ((q3 . a). L). (c. L). (b. c). δ2 (q2 . L). L) Marcus Ramos (UNIVASF) TC 2010-1 22 de abril de 2010 231 / 240 . L) δ1 ((q2 . (c. U ). (c. (c. R) δ1 ((q2 . b).

(d. L) δ1 ((q3 . (d. c). (d. (d. (a. c)) = ((q4 . d. L). L) δ1 ((q3 . (d. U ). d). L) δ1 ((q3 . (d. B). B)) = ((q4 . d) = (q4 . L). a). (d. R) Marcus Ramos (UNIVASF) TC 2010-1 22 de abril de 2010 232 / 240 . L). L). U ). b)) = ((q4 . L). b). L). U ). R) δ1 ((q3 . d). L). U ). R) δ1 ((q3 . d). L): δ1 ((q3 . δ2 (q3 . U ). U ). (d. R) δ1 ((q3 . (c. (d. d). d)) = ((q4 .Variações das Máquinas de Turing Fita limitada à esquerda Exemplo A partir de 3. L). L). d). (d. d)) = ((q4 . a)) = ((q4 . (c. U ). (b. d). (b. U ). d)) = ((q4 . d)) = ((q4 . (B. (d. L). (B. (a. R) δ1 ((q3 . U ). (d. L) δ1 ((q3 . d)) = ((q4 . L) δ1 ((q3 . d)) = ((q4 . U ).

B). U ). (c. (c. R) δ1 ((q4 . (a. (c. (a. U ). (c. L). c. a)) = ((q4 . U ). L). c)) = ((q4 . U ). (b. c)) = ((q4 . L). c). R) Marcus Ramos (UNIVASF) TC 2010-1 22 de abril de 2010 233 / 240 . L). δ2 (q4 . b). d)) = ((q4 . L). c). (c. L) δ1 ((q4 . L) δ1 ((q4 . (c. (c. c)) = ((q4 . (B. (b. U ). L). R) δ1 ((q4 . c). c)) = ((q4 . R) δ1 ((q4 . c)) = ((q4 . (c. L). U ). U ). L) δ1 ((q4 . (c. c)) = ((q4 . L). b)) = ((q4 . L) δ1 ((q4 . R) δ1 ((q4 . L): δ1 ((q4 . (B. c). c). c). (c. B)) = ((q4 . d).Variações das Máquinas de Turing Fita limitada à esquerda Exemplo A partir de 3. (c. U ). L) δ1 ((q4 . c) = (q4 . a). (d. U ). L). (d. (c. L). U ).

R) δ1 ((q4 . c). U ). (b. b). L). (B. (b. L). c)) = ((q5 .Variações das Máquinas de Turing Fita limitada à esquerda Exemplo A partir de 3. L). (b. (B. L) δ1 ((q4 . U ). (d. (b. L) δ1 ((q4 . B)) = ((q5 . (B. b). B)) = ((q5 . a). U ). L) δ1 ((q4 . d). (a. b). U ). (b. B)) = ((q5 . L). (B. (B. U ). B)) = ((q5 . L). L). a)) = ((q5 . R) δ1 ((q4 . B). R) Marcus Ramos (UNIVASF) TC 2010-1 22 de abril de 2010 234 / 240 . (a. U ). B)) = ((q5 . d)) = ((q5 . (B. L) δ1 ((q4 . (B. (c. U ). δ2 (q4 . B)) = ((q5 . L). (b. L). (c. L) δ1 ((q4 . U ). U ). L). (b. b). B) = (q5 . b). b). R) δ1 ((q4 . b)) = ((q5 . (d. U ). R) δ1 ((q4 . L). L): δ1 ((q4 . b.

a)) = ((q6 . a). L) δ1 ((q5 . (B. (B. a). R): δ1 ((q5 . R) δ1 ((q5 . (a. (d. b). L) δ1 ((q5 . (c. R) δ1 ((q5 . a. R) δ1 ((q5 . R) δ1 ((q5 . (a. B)) = ((q6 . L). (B. U ). a). (B. U ). (b. a). (b. B)) = ((q6 . c). U ). L). b)) = ((q6 . L).Variações das Máquinas de Turing Fita limitada à esquerda Exemplo A partir de 3. L) δ1 ((q5 . (a. (B. U ). δ2 (q4 . (a. U ). U ). d)) = ((q6 . B) = (q5 . B)) = ((q6 . (d. (a. d). (B. B). (a. B)) = ((q6 . U ). B)) = ((q6 . L). L). (B. a). a). B)) = ((q6 . L). L) δ1 ((q5 . L). U ). L). L). R) δ1 ((q5 . U ). c)) = ((q6 . L) Marcus Ramos (UNIVASF) TC 2010-1 22 de abril de 2010 235 / 240 . L). (c. U ). (a.

c) = (q3 . (c. c. (c. R) Marcus Ramos (UNIVASF) TC 2010-1 22 de abril de 2010 236 / 240 . ∗)) = ((q6 .Variações das Máquinas de Turing Fita limitada à esquerda Exemplo A partir de 4. L). δ1 ((q2 . ∗)) = δ1 ((q5 . R): δ2 (q5 . δ2 (q2 . U ). (a. U ). (B. ∗). ∗)) = δ1 ((q2 . U ). ∗). a. B) = (q6 . (c. L). R): δ1 ((q5 . U ). (B. ∗)) = ((q3 . R) A partir de 4.

∗)) = δ1 ((q3 . (b. L): δ1 ((q4 . (d. L): δ1 ((q4 . ∗).Variações das Máquinas de Turing Fita limitada à esquerda Exemplo A partir de 5. (c. (c. B) = (q5 . L). ∗)) = ((q5 . R) Marcus Ramos (UNIVASF) TC 2010-1 22 de abril de 2010 237 / 240 . ∗). R) A partir de 5. (c. δ2 (q4 . ∗)) = ((q4 . ∗)) = ((q4 . d) = (q4 . L): δ2 (q4 . L). (d. U ). δ2 (q3 . (B. L). U ). b. L). ∗). (d. c. U ). ∗)) = δ1 ((q4 . δ1 ((q3 . L). d. R) A partir de 5. L). c) = (q4 . (B. ∗)) = δ1 ((q4 .

Variações das Máquinas de Turing Fita limitada à esquerda Exemplo Marcus Ramos (UNIVASF) TC 2010-1 22 de abril de 2010 238 / 240 .

Variações das Máquinas de Turing Fita limitada à esquerda Exemplo Marcus Ramos (UNIVASF) TC 2010-1 22 de abril de 2010 239 / 240 .

Variações das Máquinas de Turing Fita limitada à esquerda Exemplo Marcus Ramos (UNIVASF) TC 2010-1 22 de abril de 2010 240 / 240 .