Você está na página 1de 240

Mquinas Universais

Prof. Marcus Vincius Midena Ramos

Universidade Federal do Vale do So 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 Computao (captulo 3)


T. A. Diverio e P. B. Menezes

Bookman, 2008, 2

edio

Introduction to Automata Theory, Languages and Computation


(captulo 8)
J. E. Hopcroft, R. Motwani e J. D. Ullman
Addison-Wesley, 2007, 3

Marcus Ramos (UNIVASF)

edio

TC 2010-1

22 de abril de 2010

2 / 240

Roteiro
1 Introduo
2 Hiptese de Church
3 Codicao de dados estruturados
4 Mquina Norma
5 Mquina de Turing
6 Mquina de Post
7 Mquina com Pilhas
8 Autmato com Duas Pilhas
9 Variaes das Mquinas de Turing

Marcus Ramos (UNIVASF)

TC 2010-1

22 de abril de 2010

3 / 240

Algoritmo

Introduo

I Denio informal;
I Descrio nita e no-ambgua;
I Passos discretos, executveis mecanicamente;
I Tempo nito;
I Restries de ordem prtica: tempo e espao;
I Restries de ordem terica: tanto quanto necessrio.

Marcus Ramos (UNIVASF)

TC 2010-1

22 de abril de 2010

4 / 240

Introduo

Algoritmo

I Realizao na forma de programa;


I Progama demanda uma mquina para sua execuo;
I Caractersticas desejveis das mquinas:
I

Simplicidade:

Apenas caractersticas essenciais, com omisso de

caractersticas no-relevantes. Permitir concluses generalizadas sobre


a classe das funes computveis.
I

Poder:

Representao de qualquer funo computvel. Simulao de

qualquer outra mquina real ou terica.

Marcus Ramos (UNIVASF)

TC 2010-1

22 de abril de 2010

5 / 240

Mquina universal

Introduo

Conceito

I Aquela que permite a representao de qualquer algoritmo na forma


de um programa para a mesma;

I Evidncias que permitem caracterizar uma mquina como sendo


universal:
I

Interna:

Quaisquer extenses ou variaes no aumentam o seu poder

computacional (o conjunto de funes computveis permanece


inalterado).

Externa:

Equivalncia com outros modelos (mquinas ou no) que

representam a noo de algoritmo.

Marcus Ramos (UNIVASF)

TC 2010-1

22 de abril de 2010

6 / 240

Mquina universal

Introduo

Modelos estudados

I Mquina Norma;
I Mquina de Turing;
I Mquina de Post;
I Mquina com Pilhas.

Marcus Ramos (UNIVASF)

TC 2010-1

22 de abril de 2010

7 / 240

Hiptese de Church

Hiptese de Church

I Alonzo Church, 1903-1995, matemtico norte-americano;


I Tambm conhecida como Hiptese de Church-Turing, 1936;
I Mesmo ano em que foi apresentada a Mquina de Turing;
I Estabelece a equivalncia entre a noo de algoritmo e Mquina de
Turing;

I Como a noo de algoritmo informal, a hiptese no pode ser


provada;

I A necessidade por uma denio formal de algoritmo grande, pois


apenas a partir dela que possvel investigar a existncia de
algoritmos que resolvem (ou no) certos problemas e calculam (ou
no) certas funes, alm de poder demonstrar certas propriedades
dos mesmos.

Marcus Ramos (UNIVASF)

TC 2010-1

22 de abril de 2010

8 / 240

Hiptese de Church

Hiptese de Church

I Qualquer funo computvel pode ser processada por alguma


Mquina de Turing;

I A Mquina de Turing o dispositivo de computao mais genrico


que existe;

I Tudo que computvel computvel por uma Mquina de Turing;


I  A capacidade de computao representada pela Mquina de Turing
o limite mximo que pode ser atingido por qualquer dispositivo de
computao;

I Qualquer outra forma de expressar algoritmos ter, no mximo, a


mesma capacidade computacional da Mquina de Turing.

Marcus Ramos (UNIVASF)

TC 2010-1

22 de abril de 2010

9 / 240

Hiptese de Church

Hiptese de Church

I Ao longo das dcadas, evidncias internas e externas apenas reforam


a Hiptese de Church, que aceita como verdadeira de forma
praticamente generalizada e no questionada;

I A Mquina de Turing (entre outros modelos), pela sua simplicidade,


passa a ser usada como denio formal de algoritmo, atendendo aos
propsitos citados anteriormente.

Marcus Ramos (UNIVASF)

TC 2010-1

22 de abril de 2010

10 / 240

Codicao de dados estruturados

Algoritmos e tipos de dados

I Algoritmos manipulam, normalmente, diversos tipos de dados (inteiros


positivos, negativos, racionais, reais, lgicos, cadeias de caracteres,
vetores, estruturas etc);

I Com o objetivo de evitar que os modelos matemticos abstratos se


tornem (desnecessariamente) complexos, o escopo de manipulao de
dados dos algoritmos que sero estudados restrito aos nmeros
inteiros positivos;

I Essa restrio no traz maiores conseqncias, uma vez que esses e


vrios outros tipos de dados podem ser representados atravs de
codicaes apropriadas dos mesmos no espao dos nmeros inteiros
no negativos.

Marcus Ramos (UNIVASF)

TC 2010-1

22 de abril de 2010

11 / 240

Codicao de dados estruturados

Funo de codicao
Seja

um conjunto de dados estruturados. A funo

injetora:

c:XN
tal que,
Como

x X, c(x)

representa a codicao do dado estruturado

x.

injetora,

(c(x) = c(y)) (x = y)
portanto a codicao representa de forma unvoca o dado estruturado
na forma de um nmero natural

Marcus Ramos (UNIVASF)

c(x).

TC 2010-1

22 de abril de 2010

12 / 240

Codicao de dados estruturados

Teorema fundamental da aritmtica

Enunciado
Seja

a > 1.

Ento:

a = pn1 1 pn2 2 ...pnk k

onde:

p1 < p2 < ... < pk

so nmeros primos (no necessariamente os

primeiros, no necessariamente consecutivos);

n1 , n2 , ..., nk

so nmeros inteiros positivos maiores ou iguais a 1;

I Essa decomposio nica, a menos de permutaes.

Qualquer nmero inteiro maior que

pode ser decomposto, de forma

unvoca, no produto de potncias de nmeros primos.

Nmeros primos so a base para a denio dos demais nmeros

(nmeros compostos).

Marcus Ramos (UNIVASF)

TC 2010-1

22 de abril de 2010

13 / 240

Codicao de dados estruturados

Teorema fundamental da aritmtica

Exemplos

2 = 21 ;

17 = 171 ;

256 = 28 ;

143 = 111 .131 ;

42706587 = 31 .76 .112 ;

132187055 = 51 .75 .112 .131 .

Marcus Ramos (UNIVASF)

TC 2010-1

22 de abril de 2010

14 / 240

Exemplo

Codicao de dados estruturados

-uplas de nmeros naturais

I Deseja-se obter

c : Nn N

I Teorema fundamental da aritmtica;


I Considere os
I Ento

primeiros nmeros primos,

c(x1 , x2 , ..., xn ) =

p1 , p2 , ..., pn ;

px1 1 .px2 2 .....pxnn

I Todo nmero natural decomponvel nos


corresponde a uma (nica)

I Representao unvoca de

primeiros nmeros primos

n-upla;

n-uplas

como nmeros naturais.

Exemplo:

c(1, 2, 3) = 21 .32 .53 = 2.9.125 = 450;

450

representa, de forma unvoca, a tripla

Marcus Ramos (UNIVASF)

TC 2010-1

(1, 2, 3).
22 de abril de 2010

15 / 240

Codicao de dados estruturados

Exemplo

Programas monolticos
I Deseja-se obter

c : P N,

onde

o conjunto dos programas

monolticos;

I Considere que o programa


testes

possui as operaes

O1 , O2 , ..., Om

e os

T1 , T2 , ..., Tn ;

I Considere rtulos numricos sequenciais, com rtulo inicial 1 e rtulo


nal (nico) 0;

I Qudruplas representam as instrues;


I Considere que

r1 :

faa

Ok

(0, k, r2 , r2 )
r2

representa a instruo

v_para

(1, k, r2 , r3 ) representa a instruo


Tk ento v_para r2 seno v_para r3

I Considere que

r1 :

se

Marcus Ramos (UNIVASF)

TC 2010-1

22 de abril de 2010

16 / 240

Exemplo

Codicao de dados estruturados

Programas monolticos

I Cada instruo de

codicada na forma de uma qudrupla;

I Cada qudrupla codicada na forma de um nmero inteiro;


I Se

contm

instrues, sero geradas

consequentemente,

qudruplas e,

nmeros inteiros;

I Considere a t-upla formada por esses

nmeros inteiros;

I Codique a t-upla como um nmero inteiro.

Marcus Ramos (UNIVASF)

TC 2010-1

22 de abril de 2010

17 / 240

Exemplo

Codicao de dados estruturados

Programas monolticos
Considere o programa monoltico
1: se

T1 v_para 2 seno
O1 v_para 1

P:

v_para 0

2: faa

(1, 1, 2, 0)

representa a instruo associada ao rtulo 1;

(0, 1, 1, 1)

representa a instruo associada ao rtulo 2;

c(1, 1, 2, 0) = 21 .31 .52 .70 = 150;

c(0, 1, 1, 1) = 20 .31 .51 .71 = 105;

I Considere
I

(150, 105)

c(150, 105) =

I O nmero

como a representao de

P;

2150 .3105

2150 .3105

Marcus Ramos (UNIVASF)

representa

P.

TC 2010-1

22 de abril de 2010

18 / 240

Exemplo

Codicao de dados estruturados

Programas monolticos
Genericamente, se

representa um programa monoltico

com

instrues, ento:

I
I

w = 2i1 .3i2 .5i3 .....pitt


j, 1 j t:
I

ij = 2a .3b .5c .7d


a = 0, ij representa a instruo:
rj : faa Ob v_para rc
Se a = 1, ij representa a instruo:
rj : se Tb ento v_para rc seno v_para rd

I Se

Marcus Ramos (UNIVASF)

TC 2010-1

22 de abril de 2010

19 / 240

Generalidades

Mquina Norma

I Denida por Richard Bird em 1976;


I Number Theoretic Register MAchine (e, tambm, o nome da esposa
dele...);

I uma mquina de registradores (possui uma quantidade ilimitada


deles);

I Arquitetura semelhante dos computadores modernos;


I Cada registrador armazena um nico nmero natural;
I Operaes e testes (para cada registrador):
I Adicionar o valor 1;
I Subtrair o valor 1 (se 0, continua com 0);
I Testar se o contedo 0.

I Mquina Universal.

Marcus Ramos (UNIVASF)

TC 2010-1

22 de abril de 2010

20 / 240

Mquina Norma

Denio
Norma

= (N , N, N, ent, sai, {addk , subk |k 0}, {zerok |k 0})

I Os registradores so denotados
I

A(k = 0), B(k = 1), ...;

ent : N N ,

A, B, ..., X, Y ;

transfere o valor da entrada para

e zera os demais

registradores;

sai : N N,

Marcus Ramos (UNIVASF)

transfere o valor de

TC 2010-1

para a sada;

22 de abril de 2010

21 / 240

Mquina Norma

Denio
Norma

= (N , N, N, ent, sai, {addk , subk |k 0}, {zerok |k 0})

addk : N N ,

adiciona 1 ao

k-simo

registrador, mantendo os

demais inalterados;

subk : N N ,

subtrai 1 do

k-simo

registrador, mantendo os

demais inalterados; se 0, mantm 0;

zerok : N {verdadeiro, f also}, retorna verdadeiro se


contedo do k -simo registrador 0, f also caso contrrio;

I Notao:

K := K + 1, K := K 1, K = 0

Marcus Ramos (UNIVASF)

TC 2010-1

22 de abril de 2010

22 / 240

Evidncias internas

Mquina Norma

I Operaes e testes;
I Tipos de dados;
I Agregados;
I Endereamento indireto;
I Recurso.

Marcus Ramos (UNIVASF)

TC 2010-1

22 de abril de 2010

23 / 240

Operaes e testes

Mquina Norma

Denies incrementais, atravs da expanso sucessiva do repertrio de


operaes e testes da Mquina Norma.

I Atribuio do valor 0 a um registrador;


I Atribuio de um valor qualquer a um registrador;
I Adio de dois registradores;
I Atribuio de registrador registrador;
I Multiplicao de dois registradores;
I Teste se o valor de um registrador primo;
I Atribuio do

n-simo

Marcus Ramos (UNIVASF)

nmero primo a um registrador.

TC 2010-1

22 de abril de 2010

24 / 240

Operaes e testes

Mquina Norma

Atribuio do valor 0 a um registrador

Denotado:

A := 0
para o registrador

A.

I Operao implementada atravs do programa iterativo:

A=0
faa A := A 1

at

I Considerada como

Marcus Ramos (UNIVASF)

macro, A := 0

representa uma nova operao.

TC 2010-1

22 de abril de 2010

25 / 240

Operaes e testes

Mquina Norma

Atribuio de um valor qualquer a um registrador


Denotado:

A := n
para o registrador

A.

I Operao implementada atravs do programa iterativo, com


repeties da operao

A := A + 1:

A := 0
A := A + 1
A := A + 1
...

A := A + 1
I Considerada como

Marcus Ramos (UNIVASF)

macro, A := n

representa uma nova operao.

TC 2010-1

22 de abril de 2010

26 / 240

Mquina Norma

Operaes e testes

Adio de dois registradores


Denotado:

A := A + B
para os registradores

B.

I Operao implementada atravs do programa iterativo:


at

B=0

faa (A:=A+1; B:=B-1)

I O registrador

zerado;

I Para preservar o valor de


I Considerada como

Marcus Ramos (UNIVASF)

B,

deve-se usar um registrador auxiliar;

macro, A := A + B

TC 2010-1

representa uma nova operao.

22 de abril de 2010

27 / 240

Mquina Norma

Operaes e testes

Adio de dois registradores


Denotado:

A := A + B
para os registradores

B,

usando

empregando

como auxiliar.

I Operao implementada atravs do programa iterativo:

C := 0
at B=0 faa (A:=A+1; C:=C+1; B:=B-1);
at C=0
faa (B:=B+1; C:=C-1)

I O registrador

zerado;

I O identicao explcita do registrador

serve para evitar conitos no

uso do mesmo;

I Considerada como

macro,  A := A + B

usando

C

representa uma

nova operao.

Marcus Ramos (UNIVASF)

TC 2010-1

22 de abril de 2010

28 / 240

Mquina Norma

Operaes e testes

Atribuio de registrador registrador


Denotado:

A := B
para os registradores

B,

ou

A := B

empregando

:= B usando C  denota:
A := 0
A := A + B usando C
ou seja, B permanece inalterado

usando

como auxiliar.

I A

aps a atribuio.

I A

:= B  denota:
A := 0
A := A + B
ou seja, B zerado

aps a atribuio.

I Consideradas como

macros,  A := B 

e A

:= B

usando

C

representam novas operaes;

Marcus Ramos (UNIVASF)

TC 2010-1

22 de abril de 2010

29 / 240

Mquina Norma

Operaes e testes

Multiplicao de dois registradores


Denotado:

A := A B
para os registradores

B,

usando

empregando

C, D
e

como auxiliares.

I Operao implementada atravs do programa iterativo:

C := 0
at A = 0
faa (C := C + 1; A := A 1)
at (C = 0)
faa (A := A + B usando D; C := C 1)
I Considerada como

macro,  A := A B

usando

C, D

representa uma

nova operao.

Marcus Ramos (UNIVASF)

TC 2010-1

22 de abril de 2010

30 / 240

Mquina Norma

Operaes e testes

Teste se o valor de um registrador primo


Denotado:
teste_primo(A) usando
para o registrador

A,

empregando

C, D

como auxiliar.

I Operao implementada atravs do programa iterativo:


se

A = 0 ento FALSO seno


C := A usando D;
C := C 1;
se C = 0 ento FALSO seno
at teste_mod (A, C)
faa C := C 1
C := C 1
se C = 0 ento VERDADEIRO

I Considerada como

macro,

seno FALSO

 teste_primo(A) usando

C, D

representa

uma nova operao.

Marcus Ramos (UNIVASF)

TC 2010-1

22 de abril de 2010

31 / 240

Mquina Norma

Operaes e testes

Atribuio do n-simo nmero primo a um registrador


Denotado:

A :=
para o registrador

A,

primo

supondo que

(B)

usando

contm

n1

e empregando

como

auxiliar.

I Operao implementada atravs do programa iterativo:

A := 1;
D := B ;
at D = 0 faa
D := D 1;
A := A + 1;
at teste_primo

I Considerada como

(A)

faa

A := A + 1

macro,  A :=

primo

(B)

usando

D

representa

uma nova operao.

Marcus Ramos (UNIVASF)

TC 2010-1

22 de abril de 2010

32 / 240

Mquina Norma

Tipos de dados

Nmeros inteiros positivos e negativos


Nmeros inteiros com sinal

podem ser representados pela dupla:

(s, |m|)
onde

|m|

I se

representa o valor absoluto de

m<0

ento

s=1

seno

m;

s = 0.

A representao em Norma pode ser feita:

I Codicao de duplas, ou
I Par de registradores.

Marcus Ramos (UNIVASF)

TC 2010-1

22 de abril de 2010

33 / 240

Tipos de dados

Mquina Norma

Nmeros inteiros positivos e negativos


Denotado:

A := A + 1
supondo que

representa o par de registradores

A1 (s)

A2 (m).

I Operao implementada atravs do programa iterativo:


se

A1 = 0 ento A2 := A2 + 1 seno
A2 := A2 1;
se A2 = 0 ento A1 := A1 1 seno X

I Outras operaes podem ser implementadas sem diculdade.

Marcus Ramos (UNIVASF)

TC 2010-1

22 de abril de 2010

34 / 240

Mquina Norma

Tipos de dados
Nmeros racionais

Nmeros racionais

r=

a
b podem ser representados pela dupla:

(a, b)
com

b > 0.

I Soma:

Algumas operaes e testes sobre os nmeros racionais:

(a, b) + (c, d) = (a d + b c, b d)

I Subtrao:

(a, b) (c, d) = (a d b c, b d)

I Multiplicao:
I Diviso:

(a, b) (c, d) = (a c, b d)

(a, b) (c, d) = (a d, b c),

I Igualdade:

(a, b) = (c, d)

Marcus Ramos (UNIVASF)

para

se e somente se

TC 2010-1

c 6= 0

ad=bc

22 de abril de 2010

35 / 240

Mquina Norma

Agregados
Vetores

I Vetores com

elementos (inclusive com

varivel) podem ser

representados em um nico registrador, usando codicao de

I Suponha que o registrador

n-uplas;

representa o vetor com os elementos

A[1], A[2], ...,


I Indexao direta (com nmero natural) ou indireta (com registrador).
Algumas operaes e testes sobre vetores:

I Adiciona 1 uma posio indexada;


I Subtrai 1 de uma posio indexada;
I Testa se uma posio indexada contm o valor 0.

Marcus Ramos (UNIVASF)

TC 2010-1

22 de abril de 2010

36 / 240

Mquina Norma

Agregados
Vetores

Suposies:

pn

representa o

n-simo

I A macro teste_div

nmero primo;

(A, C),

que retorna verdadeiro se

divisor de

e falso caso contrrio, dada;

I A macro
por

C,

A := A/C ,

que retorna o resultado da diviso inteira de

dada;

I Ser omitido o termo usando das macros j denidas.

Marcus Ramos (UNIVASF)

TC 2010-1

22 de abril de 2010

37 / 240

Agregados

Mquina Norma

Vetores

Denio da macro:

addA[n]
Adio de uma unidade ao elemento

usando

do vetor

A,

usando indexao

direta.

C := pn ;
A := A C

Marcus Ramos (UNIVASF)

TC 2010-1

22 de abril de 2010

38 / 240

Mquina Norma

Agregados
Vetores

Denio da macro:

subA[n]

usando

Subtrao de uma unidade do elemento

do vetor

A,

usando indexao

direta.

C := pn ;
(A, C)
A := A/C
X

se teste_div
ento
seno

Marcus Ramos (UNIVASF)

TC 2010-1

22 de abril de 2010

39 / 240

Mquina Norma

Agregados
Vetores

Denio da macro:

zeroA[n]
Testa se o elemento

do vetor

usando

contm o valor 0, usando indexao

direta.

C := pn ;
se teste_div

(A, C)

ento FALSO
seno VERDADEIRO

Marcus Ramos (UNIVASF)

TC 2010-1

22 de abril de 2010

40 / 240

Mquina Norma

Agregados
Vetores

Denio da macro:

addA[B]

usando

Adio de uma unidade ao elemento do vetor


atravs do registrador

A,

usando indexao indireta

B.

C := primo (B);
A := A C

Marcus Ramos (UNIVASF)

TC 2010-1

22 de abril de 2010

41 / 240

Agregados

Mquina Norma

Vetores

Denio da macro:

subA[n]

usando

Subtrao de uma unidade do elemento do vetor


indireta atravs do registrador

A,

usando indexao

B.

C := primo (B);
se teste_div (A, C)
ento A := A/C
seno X

Marcus Ramos (UNIVASF)

TC 2010-1

22 de abril de 2010

42 / 240

Agregados

Mquina Norma

Vetores

Denio da macro:

zeroA[n]
Testa se o elemento do vetor

usando

A contm
B.

o valor 0, usando indexao

indireta atravs do registrador

C := primo (B);
se teste_div (A, C)
ento FALSO
seno VERDADEIRO

Marcus Ramos (UNIVASF)

TC 2010-1

22 de abril de 2010

43 / 240

Mquina Norma

Agregados

Mquina Norma com apenas 2 registradores


I Os registradores

A, B, ...

da Mquina Norma podem ser simulados

numa mquina equivalente, com apenas dois registradores, usando a


representao de vetores na forma de

n-uplas;

I Suponha que a mquina tenha apenas os registradores

Y;

I Todo o processamento de uma Mquina Norma pode ser simulado na


nova mquina com apenas esses dois registradores;

I Convenciona-se que
registrador

X[1]

representa o registrador

A, X[2]

e assim por diante;

I As seguintes operaes so 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

Agregados

Mquina Norma

Pilhas

I Estruturas do tipo

last-in-rst-out;

I Podem ser simuladas em Mquinas Norma atravs de dois


registradores;

I O primeiro representa o contedo da pilha, considerado como um


vetor e conforme visto anteriormente;

I O segundo contm o nmero do elemento que corresponde ao topo da


pilha;

I As operaes abaixo podem ser denidas facilmente:


I
I

empilha
desempilha

Marcus Ramos (UNIVASF)

TC 2010-1

22 de abril de 2010

45 / 240

Mquina Norma

Endereamento indireto

Desviar para a instruo cujo rtulo corresponde ao contedo de um


registrador.

r:

faa

r:

se

v_para

v_para

seno v_para

I  A e  B  so registradores;
I Desvia para o endereo contido em  A ( B );
I A macro  EndA  para calcula o endereo correspondente;
I  r : faa

I  r : se

v_para

v_para

Marcus Ramos (UNIVASF)

EndA 

EndA

seno v_para

TC 2010-1

EndB 

22 de abril de 2010

46 / 240

Mquina Norma

Endereamento indireto
Suponha que

contm valores

k.

O valor de

permanece inalterado.

Macro  EndA :

i
i+1
i+2
i+3
i+4
i+5
i+6
i+7

se

faa

:
:
:
:
:
:

...

i+k31
i+k3
i+k3+1

zeroA ento v_para 0 seno v_para i + 1


subA v_para i + 2
se zeroA ento v_para i + 3 seno v_para i + 4
faa A := 1 v_para 1
faa subA v_para i + 5
se zeroA ento v_para i + 6 seno v_para i + 7
faa A := 2 v_para 2
faa subA v_para i + 8

...

zeroA ento v_para i + k 3


A := k v_para k
faa subA v_para i + k 3 + 2

se

faa

Marcus Ramos (UNIVASF)

TC 2010-1

seno v_para

i+k3+1

22 de abril de 2010

47 / 240

Recurso

Mquina Norma

I Chamada de subprogramas e recurso podem ser simuladas em


programas monolticos com o uso do endereamento indireto;

I Demonstrao em Bird76.

Marcus Ramos (UNIVASF)

TC 2010-1

22 de abril de 2010

48 / 240

Generalidades

Mquina de Turing

I Denida por Alan Turing em 1936;


I Formulada antes da construo do primeiro computador digital;
I Aceita como formalizao na noo informal de algoritmo;
I Possui, no mnimo, o mesmo poder computacional de qualquer
computador moderno ou outro modelo de computao;

I Incorpora o programa na sua denio.

Marcus Ramos (UNIVASF)

TC 2010-1

22 de abril de 2010

49 / 240

Conceito

Mquina de Turing

Procura reproduzir uma pessoa trabalhando na soluo de um problema:

I Instrumento para escrever, outro para apagar;


I Folha de papel dividida em regies;
I Dados iniciais na folha de papel.
Durante o trabalho:

I Novo smbolo pode ser lido;


I Smbolo existente pode ser alterado;
I Olhos podem ser deslocar de regio;
I Ao a ser executada depende do smbolo lido e do estado mental
do trabalhador;

I Estados inicial e nais indicam comeo e trmino das atividades.

Marcus Ramos (UNIVASF)

TC 2010-1

22 de abril de 2010

50 / 240

Conceito

Mquina de Turing

Algumas simplicaes:

I A folha de papel tem dimenses to grandes quanto necessrias;


I Ela organizada de forma unidimensional e dividida em clulas;
I O conjunto de smbolos nito;
I O conjunto de estados mentais nito;
I Apenas um smbolo lido de cada vez;
I A ateno se desloca apenas para as clulas adjacentes.

Marcus Ramos (UNIVASF)

TC 2010-1

22 de abril de 2010

51 / 240

Componentes

Marcus Ramos (UNIVASF)

Mquina de Turing

TC 2010-1

22 de abril de 2010

52 / 240

Formalizao

Mquina de Turing

Uma Mquina de Turing uma 8-upla:

M = (, Q, , q0 , F, V, , )
onde:

o alfabeto de entrada;

o conjunto de estados;

a funo (parcial) de transio:

: Q ( V {, }) Q ( V {, }) {E, D}

Marcus Ramos (UNIVASF)

TC 2010-1

22 de abril de 2010

53 / 240

Mquina de Turing

Formalizao

Uma Mquina de Turing uma 8-upla:

M = (, Q, , q0 , F, V, , )
onde:

q0 Q

o estado inicial;

F Q

o conjunto de estados nais;

/ ( V )

o smbolo especial branco;

/ ( V )

o marcador de incio de ta.

o alfabeto auxiliar,

Marcus Ramos (UNIVASF)

V = ;

TC 2010-1

22 de abril de 2010

54 / 240

Mquina de Turing

Diagrama de estados
Se:

(qi , x) = (qj , y, m)
ento:

Marcus Ramos (UNIVASF)

TC 2010-1

22 de abril de 2010

55 / 240

Mquina de Turing

Critrios de aceitao

Existem vrias maneiras de formular a aceitao de uma cadeia


Mquina de Turing

Estado nal:

M.
w

por uma

Todas elas so equivalentes entre si:

aceita se, aps a parada,

se encontra em um

estado nal; uma cadeia rejeitada se, aps a parada,

se encontra

em um estado no-nal;

Entrada:

aceita imediatamente aps a entrada de

em um

estado nal, mesmo que existam outras possibilidades de


movimentao nesse estado; uma cadeia rejeitada se, aps a parada,

M
3

se encontra em estado no-nal;

Parada:

aceita se

pra; uma cadeia rejeitada se

entra

em loop innito;
Em todos os casos,

rejeitada se a cabea de leitura/escrita se deslocar

esquerda da primeira clula da ta de entrada.

Marcus Ramos (UNIVASF)

TC 2010-1

22 de abril de 2010

56 / 240

MT e linguagens

Mquina de Turing

Considere-se o critrio de aceitao por Entrada e a Mquina de Turing:

M = (, Q, , q0 , F, V, , )

I A linguagem aceita por M , 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 , denotada REJEIT A(M ) :


{w |M pra em um estado qf
/ F ao processar a entrada

ou a cabea de leitura/escrita se desloca para a


esquerda da primeira posio}

I A linguagem para a qual M entra em loop, denotada


{w |M processa a entrada indenidamente}

Marcus Ramos (UNIVASF)

TC 2010-1

LOOP (M )

22 de abril de 2010

57 / 240

Particionamento

Marcus Ramos (UNIVASF)

Mquina de Turing

TC 2010-1

22 de abril de 2010

58 / 240

Exemplo

Marcus Ramos (UNIVASF)

Mquina de Turing

TC 2010-1

22 de abril de 2010

59 / 240

Mquina de Turing

Exemplo
I

ACEIT A(M ) = {an bn |n 0}

REJEIT A(M ) = ACEIT A(M )

LOOP (M ) = {}

Computao de

com a entrada

aabb:

(, q0 , aabb), (, q0 , aabb),


(A, q1 , abb), (Aa, q1 , bb),
(A, q2 , aBb), (, q2 , AaBb),
(A, q0 , aBb), (AA, q1 , Bb),
(AAB, q1 , b), (AA, q2 , BB),
(A, q2 , BB), (AA, q0 , BB),
(AAB, q3 , B), (AABB, q3 , ),
(AAB, q4 , B)

Marcus Ramos (UNIVASF)

TC 2010-1

22 de abril de 2010

60 / 240

Mquina de Turing

Linguagem recursivamente enumervel


Denio

L dita
M tal que:
I Se
I Se

recursivamente enumervel se existe uma Mquina de Turing

w L, M pra
w
/ L, M :

e aceita a entrada;

I Pra e rejeita a entrada, ou


I Entra em processamento indenido e no pra (loop innito).

Corresponde maior classe de linguagens que pode ser reconhecida


mecanicamente, porm sem garantia de que o processamento pra quando
a cadeia de entrada no pertence linguagem denida.

Marcus Ramos (UNIVASF)

TC 2010-1

22 de abril de 2010

61 / 240

Mquina de Turing

Linguagem recursiva
Denio

dita recursiva se existe uma Mquina de Turing

I Se

w L, M

I Se

w
/ L, M :

tal que:

pra e aceita a entrada;


pra e rejeita a entrada.

Corresponde maior classe de linguagens que pode ser reconhecida


mecanicamente, com garantia de que o processamento pra para toda e
qualquer cadeia de entrada.

Marcus Ramos (UNIVASF)

TC 2010-1

22 de abril de 2010

62 / 240

Mquina de Turing

Linguagem recursivamente enumervel linguagem


recursiva
I Toda linguagem recursiva tambm recursivamente enumervel;
I Existem linguagens que so recursivamente enumerveis porm no
so recursivas;

CLR CLRE ;
L uma dessas linguagens,
Turing que aceita L tal que:

I Se

I
I
I

ento toda e qualquer Mquina de

ACEIT A(M ) = L;
REJEIT A(M ) = L LOOP (M );
LOOP (M ) 6= {}.

I Ou seja, existe pelo menos uma cadeia de entrada que faz

entrar

em loop innito.

Marcus Ramos (UNIVASF)

TC 2010-1

22 de abril de 2010

63 / 240

Propriedades

Mquina de Turing

I O complemento de uma linguagem recursiva uma linguagem


recursiva;

I Se uma linguagem e o seu complemento so recursivamente


enumerveis, ento a linguagem recursiva.

Marcus Ramos (UNIVASF)

TC 2010-1

22 de abril de 2010

64 / 240

MT funes

Mquina de Turing

I Mquinas de Turing pode ser vista e estudadas como dispositivos que


denem linguagens;

I Mquinas de Turing podem, tambm, ser vistas como dispositivos que


computam funes:
I O argumento posicionado na ta de entrada;
I Ao trmino da computao o contedo da ta representa o resultado

da aplicao da funo ao argumento fornecido.

I Denio de linguagens

Marcus Ramos (UNIVASF)

Computao de funes.

TC 2010-1

22 de abril de 2010

65 / 240

Funo computvel

Mquina de Turing

Uma funo parcial:

f : ( )n
dita

Funo Turing-Computvel,

existe uma Mquina de Turing

f,

ou simplesmente

Funo Computvel

M = (, Q, , q0 , F, V, , )

se

que computa

ou seja:

(w1 , w2 , ..., wn ) ( )n , representada na ta


como w1 w2 ...wn
Se f (w1 , w2 , ..., wn ) = w , ento o processamento de M
entrada w1 w2 ...wn :

I Considere

de entrada

com a

I Pra (no importa se aceitando ou rejeitando);


I O contedo da ta de entrada

I Se

w.

(w1 , w2 , ..., wn ),
w1 w2 ...wn :

no denida para o argumento

processamento de

com a entrada

ento o

I Entra em loop innito.

Marcus Ramos (UNIVASF)

TC 2010-1

22 de abril de 2010

66 / 240

Mquina de Turing

Funo computvel total


Uma funo total:

f : ( )n

Funo Turing-Computvel Total, ou simplesmente Funo


Computvel Total se existe uma Mquina de Turing:

dita

M = (, Q, , q0 , F, V, , )
que computa

e que sempre pra para qualquer entrada.

Marcus Ramos (UNIVASF)

TC 2010-1

22 de abril de 2010

67 / 240

Mquina de Turing

Funo computvel total

Exemplo 1

Considere a funo total:

f : ({a, b} )2 {a, b}
f

devolve a concatenao de duas cadeias quaisquer fornecidas como

entrada, ou seja
delimitar

w1

f (w1 , w2 ) = w1 w2 .

w2

O smbolo

ser usado para

na cadeia de entrada. Exemplos:

f (b, a) = ba.

f (abb, abab) = abbabab.


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

Mquina de Turing

Funo computvel total

Exemplo 1

Marcus Ramos (UNIVASF)

TC 2010-1

22 de abril de 2010

69 / 240

Mquina de Turing

Funo computvel total

Exemplo 1

Algoritmo: a segunda cadeia deslocada uma posio para a esquerda,


smbolo por smbolo; o smbolo # desaparece.

I Desloca a cabea para a direita at encontrar o primeiro branco;


I Desloca uma posio para a esquerda, memoriza o smbolo lido no
estado e desloca novamente para a esquerda;

q2

representa que o ltimo smbolo lido foi

q3

representa

b;

I Conforme o smbolo corrente, grava um novo smbolo no lugar dele


correspondente ao estado em que a mquina se encontra;

I Se houver necessidade, mudar de

q2

para

q3

e vice-versa para manter a

coerncia no signicado atribudo aos estados;

I Fazer isso sucessivas vezes, at encontrar o smbolo #.

Marcus Ramos (UNIVASF)

TC 2010-1

22 de abril de 2010

70 / 240

Mquina de Turing

Funo computvel total

Exemplo 2

Considere a funo total:

g : {1} {1}
f

devolve o quadrado do nmero de entrada (ambos representados em

unrio), ou seja

g(n) = n2 .

f (1) = 1.

f (111) = 111111111.
111111111

Exemplos:

A ta inicia com

Marcus Ramos (UNIVASF)

e termina com

A ta inicia com

TC 2010-1

111

1
e termina com

22 de abril de 2010

71 / 240

Mquina de Turing

Funo computvel total

Exemplo 2

Marcus Ramos (UNIVASF)

TC 2010-1

22 de abril de 2010

72 / 240

Teorema 1

Mquina de Turing

Mquina de Turing Mquina Norma

I Toda Mquina de Turing pode ser simulada por alguma Mquina


Norma.

M = (, Q, , q0 , F, V, , ) uma Mquina
existe um programa monoltico P que simula M

I Se

Marcus Ramos (UNIVASF)

TC 2010-1

de Turing, ento
na Mquina Norma.

22 de abril de 2010

73 / 240

Teorema 1

Mquina de Turing

Pr-requisitos

I O critrio de aceitao deve ser por Entrada;


I A funo de transio
Q0 Q {qe }
0

deve ser total:

q Q0 , ( V ), se no denida
0
0
ento {(q, ) (qe , , E)}

para

(q, )

I As cadeias sero rejeitadas por tentativa de movimentao da cabea


de leitura/escrita esquerda da primeira posio da ta.

Marcus Ramos (UNIVASF)

TC 2010-1

22 de abril de 2010

74 / 240

Mquina de Turing

Teorema 1

Convenes

V , | V | = m:
j , considerando 1 j m, representado
representado por 0;
representado por m + 1.

I Smbolos de

pelo valor

j;

I A ta de entrada representada como um vetor armazenado no


registrador

X;

I Observar que a escolha da representao de


existam innitos smbolos

por

faz com que

direita do ltimo smbolo da cadeia de

entrada. Qualquer elemento do vetor que no contenha um elemento


de

retorna, na codicao de nuplas, o valor

representa o smbolo

Marcus Ramos (UNIVASF)

(de

20 ),

que

TC 2010-1

22 de abril de 2010

75 / 240

Mquina de Turing

Teorema 1

Convenes

I A posio referenciada pela cabea de leitura/escrita corresponde ao


contedo do registrador

C:

valor inicial 1 aponta para o smbolo

I O estado corrente representado pelo contedo do registrador

qi , i 0,

representado pelo valor

I Ao trmino do processamento,
entrada;

Y 6= 0

Q:

i;

Y =0

indica rejeio da cadeia de

indica aceitao da cadeia de entrada, e o valor de

representa o contedo da ta nessa situao;

I Observar que o contedo da ta representado por um valor sempre


maior ou igual a 1 (ser 1 se ela contiver apenas brancos).

Marcus Ramos (UNIVASF)

TC 2010-1

22 de abril de 2010

76 / 240

Teorema 1

Mquina de Turing

Algoritmo

P para a Mquina Norma:


zeroC ento v_para r01 seno v_para r02
faa Y := 0 v_para r05
Q
X[C] v_para End_A
faa A := 2 3
se zeroC ento v_para r01 seno v_para r04
faa Y := X v_para r05

Instrues iniciais de

r0
r01
r02
r03
r04
I

:
:
:
:
:
r0

se

o rtulo inicial;

I O controle retorna para

r0

I O controle retorna para

r03

r05

sempre que o prximo estado no-nal;


sempre que o prximo estado nal;

o rtulo nal.

Marcus Ramos (UNIVASF)

TC 2010-1

22 de abril de 2010

77 / 240

Mquina de Turing

Teorema 1

Algoritmo

Para cada transio

(qi , m ) = (qj , n , D),

acrescentar

o seguinte

conjunto de instrues:

r2i 3m :
r2i 3m 1 :
r2i 3m 2 :
I Grava

faa
faa
faa

X[C] := n v_para r2i 3m 1


addC v_para r2i 3m 2
Q := j v_para r0

na posio corrente da ta;

I Desloca a cabea de leitura/escrita para a direita;


I Atualiza o estado corrente para

qj ;

I Se o movimento for para a esquerda, usar


I Se

qj F ,

ento substituir

Marcus Ramos (UNIVASF)

r0

por

subC

no lugar de

addC ;

r03 .

TC 2010-1

22 de abril de 2010

78 / 240

Mquina de Turing

Teorema 1

Algoritmo
Se

|Q| = m

| V | = n,

ento o programa monoltico correspondente

possuir:

5 + m (n + 2) 3
instrues rotuladas.
Detalhamento do clculo:

5:

n + 2: n

m (n + 2):

3:

quantidade de instrues rotuladas iniciais;


smbolos, mais

funo de transio total, quantidade total de transies;

quantidade de instrues rotuladas por transio.

Marcus Ramos (UNIVASF)

TC 2010-1

22 de abril de 2010

79 / 240

Exemplo

Mquina de Turing

Funo de transio total


Considere a Mquina de Turing

0
Ento

que aceita a linguagem

{an bn |n 0}.

{
(q0 , b) (qe , b, E)
(q1 , B) (qe , B, E)
(q2 , b) (qe , b, E)
(q2 , ) (qe , , E)
(q3 , A) (qe , , E)
(q4 , b) (qe , b, E)
(q4 , ) (qe , , E)
(qe , b) (qe , b, E)
(qe , ) (qe , , E)
}
Marcus Ramos (UNIVASF)

,
,
,
,
,
,
,
,
,

(q0 , A) (qe , A, E)
(q1 , ) (qe , , E)
(q2 , B) (qe , B, E)
(q3 , a) (qe , a, E)
(q3 , ) (qe , , E)
(q4 , A) (qe , A, E)
(q4 , ) (qe , , E)
(qe , A) (qe , A, E)
(qe , ) (qe , , E)

TC 2010-1

, (q1 , A) (qe , A, E),


, (q1 , ) (qe , , E),
, (q2 , ) (qe , , E),
, (q3 , b) (qe , b, E),
, (q4 , a) (qe , a, E),
, (q4 , B) (qe , B, E),
, (qe , a) (qe , a, E),
, (qe , B) (qe , B, E),

22 de abril de 2010

80 / 240

Mquina de Turing

Exemplo

Representao dos estados


Considere a Mquina de Turing

que aceita a linguagem

{an bn |n 0}.

Ento:

Q0 = {q0 , q1 , q2 , q3 , q4 , qe }
Representao 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

Exemplo

Mquina de Turing

Representao dos smbolos


Considere a Mquina de Turing

que aceita a linguagem

{an bn |n 0}.

Ento:

V = {a, b} {A, B} = {a, b, A, B}


Representao no registrador X :
I
I
I
I

a por 1,
b por 2,
A por 3,
B por 4,

Adicionalmente:
I
I

por 0
como 5

Marcus Ramos (UNIVASF)

TC 2010-1

22 de abril de 2010

82 / 240

Mquina de Turing

Exemplo

Congurao inicial

Situao inicial dos registradores na Mquina Norma para a cadeia de


entrada

aabb:

aabb

X = 25 31 51 72 112 = 2.845.920

Q=0

C=1

representada pela seqncia

Marcus Ramos (UNIVASF)

TC 2010-1

51122

22 de abril de 2010

83 / 240

Exemplo

Mquina de Turing

Programa para Mquina Norma

r0
r01
r02
r03
r04

:
:
:
:
:

zeroC ento v_para r01 seno v_para r02


Y := 0 v_para r05
Q
X[C] v_para End_A
faa A := 2 3
se zeroC ento v_para r01 seno v_para r04
faa Y := X v_para r05
se

faa

Marcus Ramos (UNIVASF)

TC 2010-1

22 de abril de 2010

84 / 240

Exemplo

Mquina de Turing

Programa para Mquina Norma

r243 :
r2431 :
r2432 :
r3 :
r31 :
r32 :

(q0 , ) = (q0 , , D)
faa X[C] := 5 v_para r2431
faa addC v_para r2432
faa Q := 0 v_para r0
(q0 , a) = (q1 , A, D)
faa X[C] := 3 v_para r31
faa addC v_para r32
faa Q := 1 v_para r0
...

Marcus Ramos (UNIVASF)

TC 2010-1

22 de abril de 2010

85 / 240

Exemplo

Mquina de Turing

Programa para Mquina Norma

r81 :
r811 :
r812 :

r8 :
r81 :
r82 :

...
(q0 , B) = (q3 , B, D)
faa X[C] := 4 v_para r811
faa addC v_para r822
faa Q := 3 v_para r0
...
(q3 , ) = (q4 , , E)
faa X[C] := 0 v_para r81
faa subC v_para r82
faa Q := 4 v_para r03
...

Marcus Ramos (UNIVASF)

TC 2010-1

22 de abril de 2010

86 / 240

Exemplo

Mquina de Turing

Endereos das transies

Marcus Ramos (UNIVASF)

TC 2010-1

22 de abril de 2010

87 / 240

Mquina de Turing

Exemplo

Conguraes
Cadeia

ab L(M ):
Turing

(q0 , ) = (q0 , , D)

(q0 , a) = (q1 , A, D)

Marcus Ramos (UNIVASF)

rtulo

r0
r243
r2431
r2432
r0
r3
r31
r32

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

Mquina de Turing

Exemplo

Conguraes
Turing

(q1 , b) = (q2 , B, E)

(q2 , A) = (q0 , A, D)

Marcus Ramos (UNIVASF)

rtulo

r0
r18
r181
r182
r0
r108
r1081
r1082

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

Mquina de Turing

Exemplo

Conguraes
Turing

(q0 , B) = (q3 , B, D)

(q3 , ) = (q4 , , E)

Marcus Ramos (UNIVASF)

rtulo

r0
r81
r811
r812
r0
r8
r81
r82

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

Mquina de Turing

Exemplo

Conguraes

Turing

rtulo

r03
r04
r05

Marcus Ramos (UNIVASF)

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

Mquina de Turing

Exemplo

Conguraes
Cadeia

ba
/ L(M ):
Turing

(q0 , ) = (q0 , , D)

(q0 , b) = (qe , b, E)

Marcus Ramos (UNIVASF)

rtulo

r0
r243
r2431
r2432
r0
r9
r91
r92

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

Exemplo

Mquina de Turing

Conguraes

Turing

(qe , ) = (qe , , E)

Marcus Ramos (UNIVASF)

rtulo

r0

r7776
r77761
r77762
r0
r01
r05

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

Teorema 2

Mquina de Turing

Mquina Norma Mquina de Turing

I Conforme demonstrado em Bird76, programas recursivos (com


denio e chamada de subprogramas e recurso) podem ser
simulados em Mquinas Norma atravs de programas monolticos,
com o uso de endereamento indireto.

I Portanto, suciente considerar programas monolticos e as Mquinas


de Turing que computam as mesmas funes;

I Tambm suciente considerar Mquina Norma com apenas dois


registradores (X e

Marcus Ramos (UNIVASF)

Y ).

Ela ser denotada

TC 2010-1

N orma2 .

22 de abril de 2010

94 / 240

Teorema 2

Mquina de Turing

Mquina Norma Mquina de Turing

I Todo Mquina Norma pode ser simulada por alguma Mquina de


Turing.

P = (I, r0 ) para N orma2 , ento existe


M : (, Q, , q0 , F, V, , ) que simula P .

I Se

I Mquina de Turing simula

Marcus Ramos (UNIVASF)

N orma2 ,

TC 2010-1

que por sua vez simula Norma.

22 de abril de 2010

95 / 240

Mquina de Turing

Teorema 2

Convenes

I Registrador

X:

Seu contedo representado em unrio e armazenado

M;
| |1|1|1|1|1|1|1||||...|

nas clulas pares da ta de


A ta de entrada

I Registrador

Y:

representa

Seu contedo representado em unrio e armazenado

M;
X=3

nas clulas mpares (exceto a primeira) da ta de


entrada

| |1|1|1|1|1|1|1||||...|

representa

I Rtulos das instrues: Cada rtulo


com um estado
rtulo nal

rf

X=4

qr

de

M . r0

de

est em correspondncia

corresponde ao estado inicial

corresponde a um estado nal

Marcus Ramos (UNIVASF)

A ta de

TC 2010-1

q0

e cada

qf F .

22 de abril de 2010

96 / 240

Mquina de Turing

Teorema 2

Componentes da Mquina de Turing

= {1}

Q = {qi |ri

= {}

rtulo deP }

I Estado inicial=q0 (supondo que


I

F = {qi |ri

V = {}

r0

o rtulo inicial de

P)

rtulo nal deP }

Marcus Ramos (UNIVASF)

TC 2010-1

22 de abril de 2010

97 / 240

Mquina de Turing

Teorema 2

Algoritmo

Para cada instruo

r:

faa

addk

i I:

v_para

I A partir do estado

r0
qr ,

deslocar a cabea de leitura/escrita at

encontrar a primeira clula par (se


contenha um smbolo
I Substituir esse

por

K = X)

ou mpar (se

K =Y)

que

;
1;

I Deslocar a cabea de leitura/escrita, posicionando-a sobre o primeiro

smbolo da ta ();


I Ir para o estado

Marcus Ramos (UNIVASF)

qr0 .

TC 2010-1

22 de abril de 2010

98 / 240

Mquina de Turing

Teorema 2

Algoritmo

Para cada instruo

r:

faa

subk

i I:

v_para

I A partir do estado

r0
qr ,

a ltima clula par (se


um smbolo

deslocar a cabea de leitura/escrita at encontrar

K = X)

ou mpar (se

K = Y ) que contenha
, ir para 3);

(se a primeira clula pesquisada for

I Substituir esse

por

I Deslocar a cabea de leitura/escrita, posicionando-a sobre o primeiro

smbolo da ta ();


I Ir para o estado

Marcus Ramos (UNIVASF)

qr0 .

TC 2010-1

22 de abril de 2010

99 / 240

Mquina de Turing

Teorema 2

Algoritmo

Para cada instruo

I se

zeroK

i I:

ento v_para

I A partir do estado

qr ,

r0

seno v_para

deslocar a cabea de leitura/escrita at

encontrar a primeira clula par (se


(se

r 00

K = X)

ou a segunda clula mpar

K = Y );

I Se a clula encontrada contiver o smbolo


I

Deslocar a cabea de leitura/escrita, posicionando-a sobre o primeiro


smbolo da ta ();
Ir para o estado q

Deslocar a cabea de leitura/escrita, posicionando-a sobre o primeiro


smbolo da ta ();
Ir para o estado q
r0

I Se a clula encontrada no contiver o smbolo


I

Marcus Ramos (UNIVASF)

r 00

TC 2010-1

22 de abril de 2010

100 / 240

Mquina de Turing

Teorema 2

Exemplo
r1 :
r2 :
r3 :

zeroX v_para r4 seno


subX v_para r3
faa addY v_para r1
se

v_para

r2

faa

= {1}

Q = {q1 , q2 , q3 , q4 }

= {}

I Estado inicial
I

F = {q4 }

V = {}

q1

(pois

Marcus Ramos (UNIVASF)

(pois

r4

r1

o rtulo inicial de

rtulo nal de

P)

P)

TC 2010-1

22 de abril de 2010

101 / 240

Mquina de Turing

Teorema 2

Exemplo
r1 :

se

zeroX

v_para

Marcus Ramos (UNIVASF)

r4

seno v_para

TC 2010-1

r2

22 de abril de 2010

102 / 240

Mquina de Turing

Teorema 2

Exemplo
r2 :

faa

subX

v_para

Marcus Ramos (UNIVASF)

r3

TC 2010-1

22 de abril de 2010

103 / 240

Mquina de Turing

Teorema 2

Exemplo
r3 :

faa

addY

v_para

Marcus Ramos (UNIVASF)

r1

TC 2010-1

22 de abril de 2010

104 / 240

Teorema 2

Mquina de Turing

Exemplo

Marcus Ramos (UNIVASF)

TC 2010-1

22 de abril de 2010

105 / 240

Generalidades

Mquina de Post

I Denida por Emil Leon Post em 1936;


I Posui uma nica varivel, denominada

X:

rst-in-rst-out);

I Fila (

I Entrada, sada e trabalho;


I Tamanho inicial igual ao comprimento da cadeia de entrada;
I Tamanho pode variar, sem restries.

I Possui um programa associado (uxograma):


I Partida;
I Parada;
I Desvio condicional;
I Atribuio.

I Mquina Universal.

Marcus Ramos (UNIVASF)

TC 2010-1

22 de abril de 2010

106 / 240

Denio

Mquina de Post

Uma Mquina de Post uma tripla:

M = (, D, #)
onde:

= {1 , 2 , ..., n }

o alfabeto de entrada;

o programa (ou uxograma), constitudo pelos componentes

partida, parada, desvio condicional e atribuio;

o smbolo auxiliar,

Marcus Ramos (UNIVASF)

#
/ .

TC 2010-1

22 de abril de 2010

107 / 240

Denio

Mquina de Post

Componente Partida:

I nico em cada programa

P;

I Indica o incio da execuo de

Marcus Ramos (UNIVASF)

P.

TC 2010-1

22 de abril de 2010

108 / 240

Denio

Mquina de Post

Componente Parada:

I Pode ser de dois tipos: parada com aceitao ou parada com rejeio;
I Mltiplas ocorrncias so permitidas, sem restries (inclusive zero
ocorrncias de qualquer ou de ambos os componentes).

Marcus Ramos (UNIVASF)

TC 2010-1

22 de abril de 2010

109 / 240

Mquina de Post

Denio

Componente Desvio condicional:

I Analisa o primeiro smbolo da la (varivel

X );

I Conforme o smbolo encontrado, desvia de acordo;


I O smbolo encontrado removido do incio da la;
I Se

|| = n,

devem ser previstos

n+2

desvios;

I Desvio para o smbolo auxiliar (#) e tambm para o caso de

conter

a cadeia vazia ().

Marcus Ramos (UNIVASF)

TC 2010-1

22 de abril de 2010

110 / 240

Denio

Mquina de Post

Componente Atribuio:

I Concatena o smbolo

ao nal da cadeia contida em

(vai para o

nal da la);

( {#})

Marcus Ramos (UNIVASF)

TC 2010-1

22 de abril de 2010

111 / 240

Mquina de Post

Exemplo  programa P que reconhece a b

n n

Estratgia:

contm a cadeia a ser analisada;

I Acrescentar o smbolo

ao nal da mesma, para indicar nal de

cadeia;

I Se o primeiro smbolo for

a,

I Transportar todos os demais


I Se chegar num

b,

remover;

para o nal da cadeia;

para o nal da cadeia;

remover;

I Transportar todos os demais


I Repetir;

I Se a cadeia contiver apenas o smbolo de nal de cadeia, ACEITA;


seno REJEITA.

Marcus Ramos (UNIVASF)

TC 2010-1

22 de abril de 2010

112 / 240

Mquina de Post

Exemplo  programa P que reconhece a b

n n

Marcus Ramos (UNIVASF)

TC 2010-1

22 de abril de 2010

113 / 240

Mquina de Post

Exemplo  programa P que reconhece a b

n n

I Valores da varivel

para a entrada

aabb;

I Parada com a condio 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

Teorema 3

Mquina de Post

Mquina de Turing Mquina de Post

Seja:

M = (, Q, , q0 , F, V, , )
uma Mquina de Turing. Ento, existe uma Mquina de Post:

M 0 = ( V, D, #)
que simula

M.

Marcus Ramos (UNIVASF)

TC 2010-1

22 de abril de 2010

115 / 240

Teorema 3

Mquina de Post

Fita

I Representada pela varivel

X;

I A posio correntemente referenciada pelo cursor indica a primeira


posio da la contida na varivel

X;

I O smbolo # usado para sinalizar o nal da cadeia de entrada;


I A parte situada esquerda da ta de entrada corresponde parte nal
da la, situada aps o smbolo #.

Marcus Ramos (UNIVASF)

TC 2010-1

22 de abril de 2010

116 / 240

Teorema 3

Mquina de Post

Fita

A situao da ta acima representada na Mquina de Post por:

X = a3 a4 ...an #a1 a2

Marcus Ramos (UNIVASF)

TC 2010-1

22 de abril de 2010

117 / 240

Teorema 3

Mquina de Post

Movimento para a esquerda

necessrio representar, na Mquina de Post:

I A substituio de um smbolo por outro, conforme a funo de


transio;

I O deslocamento do cursor uma posio para a esquerda;


I Seqncia de testes e atribuies que resultem na modicao
pretendida (n testes e

Marcus Ramos (UNIVASF)

atribuies).

TC 2010-1

22 de abril de 2010

118 / 240

Teorema 3

Mquina de Post

Movimento para a esquerda

I Seja

(qi , a3 ) = (qj , A3 , E);

I O contedo da varivel

deve ser alterado de

a3 a4 ...an #a1 a2

para

a2 A3 a4 ...an #a1
Marcus Ramos (UNIVASF)

TC 2010-1

22 de abril de 2010

119 / 240

Teorema 3

Mquina de Post

Movimento para a direita

necessrio representar, na Mquina de Post:

I A substituio de um smbolo por outro, conforme a funo de


transio;

I O deslocamento do cursor uma posio para a direita;


I Seqncia de testes e atribuies que resultem na modicao
pretendida (nico teste e nica atribuio).

Marcus Ramos (UNIVASF)

TC 2010-1

22 de abril de 2010

120 / 240

Teorema 3

Mquina de Post

Movimento para a direita

I Seja

(qi , a2 ) = (qj , A2 , D);

I O contedo da varivel

deve ser alterado de

a2 a3 a4 ...an #a1

para

a3 a4 ...an #a1 A2
Marcus Ramos (UNIVASF)

TC 2010-1

22 de abril de 2010

121 / 240

Teorema 3

Mquina de Post

Estados, aceitao e rejeio

I Instruo Partida simula o estado inicial

q0 ;

I Instruo Aceita simula os estados nais

qi F ;

I Cada um dos demais estados corresponde a uma instruo Desvio


condicional;

I A rejeio por funo de transio indenida ou movimento invlido


so simuladas pela instruo Rejeita.

Marcus Ramos (UNIVASF)

TC 2010-1

22 de abril de 2010

122 / 240

Teorema 4

Mquina de Post

Mquina de Post Mquina de Turing

Seja:

M = (, D, #)
uma Mquina de Post. Ento, existe uma Mquina de Turing:

M 0 = (, Q, , q0 , F, {#}, , )
que simula

M.

Marcus Ramos (UNIVASF)

TC 2010-1

22 de abril de 2010

123 / 240

Teorema 4

Mquina de Post

Varivel X
I

simulada pela ta;

I O cursor aponta para o primeiro de


I Se

X = a1 a2 a3 ...am #am+1 ...an ,

X;

ento a representao de

na ta

Marcus Ramos (UNIVASF)

TC 2010-1

22 de abril de 2010

124 / 240

Teorema 4

Mquina de Post

Desvio condicional
I O consumo do smbolo mais esquerda representado pela
substituio do smbolo lido por

seguido do deslocamento do cursor

para direita;

I Se
em

X = a1 a2 a3 ...am #am+1 ...an ,


X = a2 a3 ...am #am+1 ...an

Marcus Ramos (UNIVASF)

um teste com o smbolo

TC 2010-1

a1

22 de abril de 2010

resulta

125 / 240

Teorema 4

Mquina de Post

Atribuio

I A atribuio de um smbolo varivel

representado pelo

acrscimo de um smbolo no nal da ta seguido do retorno do cursor


para a posio mais esquerda da ta que no seja

X = a1 a2 a3 ...am #am+1 ...an , uma atribuio


resulta em X = a1 a2 a3 ...am #am+1 ...an s

I Se

Marcus Ramos (UNIVASF)

TC 2010-1

com o smbolo

22 de abril de 2010

126 / 240

Teorema 4

Mquina de Post

Partida, aceita e rejeita

I A instruo Partida simulada pelo estado inicial


I A instruo Aceita simulada por

q0 ;

qF F ;

I A instruo Rejeita simulada por movimento invlido.

Marcus Ramos (UNIVASF)

TC 2010-1

22 de abril de 2010

127 / 240

Generalidades

Mquina com Pilhas

I Formalizada por vrios autores na dcada de 1960;


I A memria de entrada separada das memrias auxiliar e de sada
(diferente das Mquinas de Turing e de Post);

I Fita de entrada contm a cadeia a ser analisada;


I Memria auxiliar:

rst-in-last-out);

I Pilha (

I Uma ou mais pilhas;


I As pilhas no tem limitao de tamanho.

I Possui um programa associado (uxograma):


I Partida;
I Parada;
I Desvio condicional (desempilha);
I Empilha.

I Mquina Universal.
Marcus Ramos (UNIVASF)

TC 2010-1

22 de abril de 2010

128 / 240

Mquina com Pilhas

Denio

Uma Mquina de Pilhas uma dupla:

M = (, D)
onde:

= {1 , 2 , ..., n }

o alfabeto de entrada;

o programa (ou uxograma), constitudo pelos componentes

partida, parada, desvio condicional (desempilha) e empilha;

Yi , i 0,

representa a ta de entrada;


representa as pilhas.

Marcus Ramos (UNIVASF)

TC 2010-1

22 de abril de 2010

129 / 240

Denio

Mquina com Pilhas

Componente Partida:

I nico em cada programa

P;

I Indica o incio da execuo de

Marcus Ramos (UNIVASF)

P.

TC 2010-1

22 de abril de 2010

130 / 240

Denio

Mquina com Pilhas

Componente Parada:

I Pode ser de dois tipos: parada com aceitao ou parada com rejeio;
I Mltiplas ocorrncias so permitidas, sem restries (inclusive zero
ocorrncias de qualquer ou de ambos os componentes).

Marcus Ramos (UNIVASF)

TC 2010-1

22 de abril de 2010

131 / 240

Mquina com Pilhas

Denio

Componente Desvio condicional (desempilha):

I Analisa o primeiro smbolo da entrada ou da pilha

(variveis

Yi ,

respectivamente);

I Conforme o smbolo encontrado, desvia de acordo;


I O smbolo encontrado removido do incio da entrada ou da pilha;
I Se

|| = n,

devem ser previstos

I Desvio tambm para o caso de

Marcus Ramos (UNIVASF)

n+1

ou

TC 2010-1

desvios;

Yi

conter a cadeia vazia ().

22 de abril de 2010

132 / 240

Mquina com Pilhas

Denio

Componente Empilha:

I Insere o smbolo
I

no topo da pilha

Yi ;

Marcus Ramos (UNIVASF)

TC 2010-1

22 de abril de 2010

133 / 240

Mquina com Pilhas

Exemplo  a b

n n

Estratgia:

I Usa uma nica pilha;


I Ler os smbolos

da entrada (X ), empilhando os mesmos em seguida

(Y );

I Quando encontrar o primeiro


smbolos

a,

na entrada, comear a desempilhar os

garantindo que para cada

I Se a seqncia de smbolos
a seqncia de smbolos

em

existe um

em

Y;

da entrada (X ) acabar juntamente com

da pilha (Y ), ento ACEITA; seno,

REJEITA.

Marcus Ramos (UNIVASF)

TC 2010-1

22 de abril de 2010

134 / 240

Exemplo  a b

Mquina com Pilhas

n n

Marcus Ramos (UNIVASF)

TC 2010-1

22 de abril de 2010

135 / 240

Exemplo  a b

Mquina 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

Exemplo  a b c

Mquina com Pilhas

n n n

Estratgia:

I Usa duas pilhas,

Y1

Y2 ;

I Remover simbolos

da entrada, inserindo-os na piha

I Para cada smbolo

da entrada, remover o mesmo de

smbolo

de

Y1

e inserir um smbolo

I Deve-se garantir que as quantidades de

em

Y1 ;
X,

remover um

Y2 ;

em

Y1

na entrada sejam

idnticas;

I Para cada smbolo


um smbolo

da

da entrada, remover o mesmo de

e remover

Y2 ;

I Se as quantidade de

em

Y2

em

forem iguais, ACEITA; seno

REJEITA.

Marcus Ramos (UNIVASF)

TC 2010-1

22 de abril de 2010

137 / 240

Exemplo  a b c

Mquina com Pilhas

n n n

Marcus Ramos (UNIVASF)

TC 2010-1

22 de abril de 2010

138 / 240

Exemplo  a b c

Mquina 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

Mquina com Pilhas

Exemplo  aaa(a|b)

Estratgia:

I No usa pilha;
I Verica se os trs primeiros smbolos da entrada

so

a;

I Consome os demais smbolos da entrada;


I Quando esgotar a cadeia de entrada, ACEITA. Se as condies
anteriores no forem vericadas, REJEITA.

Marcus Ramos (UNIVASF)

TC 2010-1

22 de abril de 2010

140 / 240

Mquina com Pilhas

Exemplo  aaa(a|b)

Marcus Ramos (UNIVASF)

TC 2010-1

22 de abril de 2010

141 / 240

Mquina 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

Mquina com Pilhas

Quantidade de pilhas

A classe de linguagens representadas por Mquinas de Pilhas depende da


quantidade de pilhas que ela possui:

I Nenhuma pilha: corresponde ao autmato nito, capaz de reconhecer


a classe das linguagens regulares;

I Uma pilha: corresponde ao autmato de pilha, capaz de reconhecer a


classe das linguagens livres de contexto;

I Duas pilhas: corresponde Mquina de Turing, capaz de aceitar a


classe das linguagens recursivamente enumerveis;

I Trs ou mais pilhas: podem sempre ser simuladas por uma mquina
com apenas duas pilhas.

Marcus Ramos (UNIVASF)

TC 2010-1

22 de abril de 2010

143 / 240

Generalidades

Autmato com Duas Pilhas

I Similar Mquina com Duas Pilhas;


I No lugar de um diagrama de uxos usa-se um diagrama de estados;
I Componentes:
I Fita de entrada;
I Duas pilhas;
I Mquina de estados.

I Mquina Universal.

Marcus Ramos (UNIVASF)

TC 2010-1

22 de abril de 2010

144 / 240

Autmato com Duas Pilhas

Fita de entrada
I Finita;

I Contm a cadeia a ser analisada;


I Leitura apenas;
I Deslocamento do cursor para a direita apenas;
I A leitura provoca o deslocamento do cursor;
I Teste se a entrada foi esgotada;
I Leitura opcional.

Marcus Ramos (UNIVASF)

TC 2010-1

22 de abril de 2010

145 / 240

Pilhas

Autmato com Duas Pilhas

I Tamanho ilimitado;
I Usadas como memria auxiliar;
I Leitura/escrita;
I A leitura remove o smbolo consultado (topo da pilha);
I Cada pilha acessada por uma cabea de leitura/escrita independente;
I Teste se a pilha est vazia;
I Leitura opcional.

Marcus Ramos (UNIVASF)

TC 2010-1

22 de abril de 2010

146 / 240

Denio

Autmato com Duas Pilhas

Um Autmato com Duas Pilhas uma sextupla:

M = (, Q, , q0 , F, V )
onde:

o alfabeto de entrada;

o conjunto de estados;

a funo de transio:

: Q({, ?})(V {, ?})(V {, ?}) Q(V {})(V {})


I

q0 Q

o estado inicial;

F Q

o conjunto de estados nais;

o alfabeto auxiliar.

Marcus Ramos (UNIVASF)

TC 2010-1

22 de abril de 2010

147 / 240

Autmato com Duas Pilhas

Diagrama de estados
Se:

(qi , x, y1 , z1 ) = (qj , y2 , z2 )
ento:

Marcus Ramos (UNIVASF)

TC 2010-1

22 de abril de 2010

148 / 240

Autmato com Duas Pilhas

e  em

Seja

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

Ento:

I Se

x = ,

I Se

x =?,

I Se

y 1 = ,

I Se

y1 =?,

testa se a primeira pilha est vazia;

I Se

z1 = ,

no l smbolo da segunda pilha e no desempilha smbolo;

I Se

z1 =?,

I Se

y 2 = ,

mantm a primeira pilha inalterada;

I Se

z2 = ,

mantm a segunda pilha inalterada.

no l smbolo da ta de entrada e no desloca o cursor;


testa se a cadeia de entrada est esgotada;
no l smbolo da primeira pilha e no desempilha smbolo;

testa se a segunda pilha est vazia;

Marcus Ramos (UNIVASF)

TC 2010-1

22 de abril de 2010

149 / 240

Autmato com Duas Pilhas

Exemplo  a b

n n

Marcus Ramos (UNIVASF)

TC 2010-1

22 de abril de 2010

150 / 240

Autmato 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

Autmato com Duas Pilhas

Exemplo  a b c

n n n

Marcus Ramos (UNIVASF)

TC 2010-1

22 de abril de 2010

152 / 240

Autmato 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

Autmato com Duas Pilhas

Mquina de Turing Autmato com Duas Pilhas


Toda Mquina de Turing pode ser simulada por algum Autmato com
Duas Pilhas.

I A primeira pilha (P1 ) simula o contedo da ta de entrada situado


esquerda da cabea de leitura/escrita;

I A segunda pilha (P2 ) simula o contedo da ta de entrada situado


direita da cabea de leitura/escrita, incluindo o smbolo 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 )

so usados para simular

clulas em branco direita (esquerda) do ltimo (primeiro) smbolo


diferente de branco presente na ta.

Marcus Ramos (UNIVASF)

TC 2010-1

22 de abril de 2010

154 / 240

Autmato com Duas Pilhas

Teorema 5

Deslocamento direita

I Considere

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

I Considere

P1 =

P2 = x

(topo direita);

I O autmato deve executar os movimentos necessrios para que

P1 = y

I Portanto,

P2 = ;

(, qi , xR ) ` (y, qj , R )

Marcus Ramos (UNIVASF)

TC 2010-1

22 de abril de 2010

155 / 240

Teorema 5

Autmato com Duas Pilhas

Deslocamento direita

Marcus Ramos (UNIVASF)

TC 2010-1

22 de abril de 2010

156 / 240

Autmato com Duas Pilhas

Teorema 5

Deslocamento esquerda

I Considere

(qi , x) = (qj , y, E);

I Considere

P1 = z

P2 = x

(topo direita);

I O autmato deve executar os movimentos necessrios para que

P1 =

I Portanto,

P2 = yz ;
(z, qi , xR ) ` (, qj , zyR )

Marcus Ramos (UNIVASF)

TC 2010-1

22 de abril de 2010

157 / 240

Teorema 5

Autmato com Duas Pilhas

Deslocamento esquerda

Marcus Ramos (UNIVASF)

TC 2010-1

22 de abril de 2010

158 / 240

Teorema 6

Autmato com Duas Pilhas

Autmato com Duas Pilhas Mquina de Turing


Todo Autmato com Duas Pilhas pode ser simulado por alguma Mquina
de Turing.

I A cadeia de entrada ocupa as primeiras posies da ta da Mquina


de Turing

I A primeira pilha (P1 ) simulada nas posies mpares da ta da


Mquina de Turing, aps a cadeia de entrada;

I A segunda pilha (P2 ) simulada nas posies pares da ta da


Mquina de Turing, aps a cadeia de entrada.

Marcus Ramos (UNIVASF)

TC 2010-1

22 de abril de 2010

159 / 240

Teorema 6

Autmato com Duas Pilhas

Autmato com Duas Pilhas Mquina de Turing

Marcus Ramos (UNIVASF)

TC 2010-1

22 de abril de 2010

160 / 240

Conceito

Variaes das Mquinas de Turing

Iremos explorar variaes sobre as Mquinas de Turing, mostrando que


todas elas podem ser simuladas pela Mquina de Turing bsica:

I Fita de entrada com mltiplas trilhas;


I No-determinismo;
I Mltiplas tas de entrada;
I Fita limitada esquerda.
Alm de reforar a noo da Mquina de Turing como uma Mquina
Universal, tais variaes sero teis na demonstrao de alguns teoremas
que sero vistos mais adiante.

Marcus Ramos (UNIVASF)

TC 2010-1

22 de abril de 2010

161 / 240

Denio

Variaes das Mquinas de Turing

Adotaremos uma denio um pouco diferente para Mquina de Turing,


porm equivalente anteriormente vista. Ela corresponde denio
utilizada em Hopcroft07:

I A ta innita em ambos os sentidos;


I No h marcador de incio de ta.

Marcus Ramos (UNIVASF)

TC 2010-1

22 de abril de 2010

162 / 240

Denio

Variaes das Mquinas de Turing

Marcus Ramos (UNIVASF)

TC 2010-1

22 de abril de 2010

163 / 240

Variaes das Mquinas de Turing

Formalizao

Uma Mquina de Turing uma 7-upla:

M = (Q, , , , q0 , B, F )
onde:

o conjunto (nito) de estados;

o alfabeto de entrada;

o conjunto de smbolos da ta,

a funo de transio:

: Q Q {L, R}

Marcus Ramos (UNIVASF)

TC 2010-1

22 de abril de 2010

164 / 240

Variaes das Mquinas de Turing

Formalizao

Uma Mquina de Turing uma 7-upla:

M = (Q, , , , q0 , B, F )
onde:

q0 Q

o estado inicial;

representa o smbolo branco, usado para preencher todas as

posies da ta no inicializadas com smbolos da cadeia de entrada;

B ( );
I

o conjunto de estados nais,

Marcus Ramos (UNIVASF)

F Q.

TC 2010-1

22 de abril de 2010

165 / 240

Variaes das Mquinas de Turing

Complexidade no tempo

A complexidade no tempo ou tempo de execuo de uma Mquina de


Turing

com uma entrada

denida como:

I A quantidade de movimentos que

executa com a entrada

at

parar (aceitando ou rejeitando);

I Se

no pra com a entrada

Marcus Ramos (UNIVASF)

w,

o tempo innito.

TC 2010-1

22 de abril de 2010

166 / 240

Variaes das Mquinas de Turing

Complexidade no tempo

A complexidade no tempo ou tempo de execuo


de uma Mquina de Turing

I A funo
I

T (n)

denida como:

T (n);

representa um certo comprimento da cadeia de entrada;


o tempo mximo de execuo quando so consideradas todas

as possveis cadeias

Marcus Ramos (UNIVASF)

de comprimento

TC 2010-1

n.

22 de abril de 2010

167 / 240

Variaes das Mquinas de Turing

Complexidade no tempo

Independentemente de fatores ou coecientes, considera-se:

I Problemas tratveis so aqueles que possuem tempo de execuo


k
polinomial, ou seja, T (n) = O(n ), para algum k ;
I Problemas intratveis so aqueles que possuem tempo de execuo
n
exponencial, ou seja, T (n) = O(k ), para algum k ;
I Excees parte, funes exponenciais crescem muito mais
rapidamente do que funes polinomiais;

I Problemas tratveis geralmente possuem solues viveis em


computadores; problemas intratveis geralmente no possuem.

Marcus Ramos (UNIVASF)

TC 2010-1

22 de abril de 2010

168 / 240

Variaes das Mquinas de Turing

Fita de entrada com mltiplas trilhas


Conceito

Marcus Ramos (UNIVASF)

TC 2010-1

22 de abril de 2010

169 / 240

Variaes das Mquinas de Turing

Fita de entrada com mltiplas trilhas


Formalizao

I Para uma ta de entrada com

trilhas:

:Q
{z } Q | ...
{z } {L, R}
| ...
n

Em cada estado, o controle nito consulta o smbolo armazenado em


cada uma das trilhas individualmente, providencia uma substituio
para cada um deles, e desloca a cabea de leitura/escrita para a
direita ou para a esquerda;

I Se

M = (Q, , , , q0 , B, F )

uma Mquina de Turing com

trilhas, essa mquina pode ser simulada por

M0

cujo conjunto de

0 = n ; os demais elementos de M permanecem


0
inalterados em M ;
n
Cada elemento de considerado um novo smbolo, e dessa forma

smblos da ta

um nico smbolo consultado/gravado de cada vez, como numa


mquina com apenas uma trilha.

Marcus Ramos (UNIVASF)

TC 2010-1

22 de abril de 2010

170 / 240

Variaes das Mquinas de Turing

Fita de entrada com mltiplas trilhas


Exemplo

Suponha uma Mquina de Turing com 2 trilhas e:

= {a, X, B}
Ento:

0 = {(a, a), (a, X), (a, B), (X, a), (X, X), (X, B), (B, a), (B, X), (B, B)}

Marcus Ramos (UNIVASF)

TC 2010-1

22 de abril de 2010

171 / 240

Variaes das Mquinas de Turing

No-determinismo
Denio

Uma Mquina de Turing

dita no-determinstica se existir mais de

uma possibilidade de movimentao a partir de uma mesma congurao.


Formalmente:

: Q 2Q{L,R}

Marcus Ramos (UNIVASF)

TC 2010-1

22 de abril de 2010

172 / 240

Variaes das Mquinas de Turing

No-determinismo
Linguagem denida
Seja

uma Mquina de Turing

no-determinstica e

w .

So

considerados trs casos, que cobrem todas as situaes possveis:

w ACEIT A(M )

se e somente se existe pelo menos uma seqncia

de movimentos que conduz

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 seqncias de
conduzem conguraes de

parada no-nais;

w LOOP (M )

se e somente se:

I No existe nenhuma seqncia de movimentos que conduza

estado nal com a cadeia

a um

w;

I Existe pelo menos uma seqncia de movimentos que fazem com que

entre em loop com a cadeia

Marcus Ramos (UNIVASF)

w.

TC 2010-1

22 de abril de 2010

173 / 240

Variaes das Mquinas de Turing

No-determinismo
Exemplo

I A Mquina de Turing da gura seguinte no-determinstica e possui

= {a, b, c, d, e, f, g};
I So consideradas cadeias de entrada que provocam todas as
combinaes possveis entre as situaes de aceitao, rejeio e loop,
inclusive combinaes duas a duas e as trs simultaneamente;

I O resultado serve para ilustrar a determinao de

ACEIT A(M ), REJEIT A(M )

LOOP (M )

em Mquinas de

Turing no-determinsticas.

Marcus Ramos (UNIVASF)

TC 2010-1

22 de abril de 2010

174 / 240

Variaes das Mquinas de Turing

No-determinismo
Exemplo

Marcus Ramos (UNIVASF)

TC 2010-1

22 de abril de 2010

175 / 240

Variaes das Mquinas de Turing

No-determinismo
Exemplo

Marcus Ramos (UNIVASF)

TC 2010-1

22 de abril de 2010

176 / 240

Variaes das Mquinas de Turing

No-determinismo
Exemplo

Marcus Ramos (UNIVASF)

TC 2010-1

22 de abril de 2010

177 / 240

Variaes das Mquinas de Turing

No-determinismo
Exemplo

Portanto,

particiona

nos seguintes conjuntos:

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

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

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

Marcus Ramos (UNIVASF)

TC 2010-1

22 de abril de 2010

178 / 240

Variaes das Mquinas de Turing

No-determinismo
Combinaes de casos
Seja

w.

As diversas seqncias de movimentao de

ser classicadas em

ACEIT A, REJEIT A

LOOP .

com

podem

Considere a

quantidade de ocorrncias de cada uma delas no conjunto de todas as


ocorrncias como sendo:

I pelo menos um (

1);

I nenhuma (0), ou
I todas (all).
As tabelas seguintes mostram as vrias combinaes possveis para os
valores dessas trs variveis, e como a cadeia

deve ser considerada do

ponto de vista de aceitao, rejeio ou loop. Das 27 combinaes

possveis (3 ), apenas

Marcus Ramos (UNIVASF)

10

so vlidas.

TC 2010-1

22 de abril de 2010

179 / 240

Variaes das Mquinas de Turing

No-determinismo
Combinaes de casos

Marcus Ramos (UNIVASF)

TC 2010-1

22 de abril de 2010

180 / 240

Variaes das Mquinas de Turing

No-determinismo
Combinaes de casos

Marcus Ramos (UNIVASF)

TC 2010-1

22 de abril de 2010

181 / 240

Variaes das Mquinas de Turing

No-determinismo
Combinaes de casos

Marcus Ramos (UNIVASF)

TC 2010-1

22 de abril de 2010

182 / 240

Variaes das Mquinas de Turing

No-determinismo
Equivalncia

Teorema:
Toda Mquina de Turing no-determinstica

pode ser simulada por uma

0
Mquina de Turing determinstica M equivalente. Ou seja:
I

ACEIT A(M 0 ) = ACEIT A(M );

REJEIT A(M 0 ) = REJEIT A(M );

LOOP (M 0 ) = LOOP (M ).

Marcus Ramos (UNIVASF)

TC 2010-1

22 de abril de 2010

183 / 240

Variaes das Mquinas de Turing

No-determinismo
Equivalncia
Mtodo:

I Simular as conguraes de

M,

representando-as na ta de

I As conguraes so delimitadas pelo smbolo especial

I A congurao corrente marcada pelo smbolo especial


ocupa o lugar do

M 0;

X,

que

situado esquerda da mesma;

I A funo de transio

de

est armazenada no controle de

M 0;

I Considerar a rvore de todos os caminhos possveis;


I Fazer uma busca em largura para determinar se alguma congurao
nal e aceitar quando encontrar;

I Parar e rejeitar quando no houverem novas conguraes a serem


consideradas;

I Parar e aceitar quando o estado corrente for nal.


Marcus Ramos (UNIVASF)

TC 2010-1

22 de abril de 2010

184 / 240

Variaes das Mquinas de Turing

No-determinismo
Equivalncia

Algoritmo:
1. A ta de
cadeia

M0

contm, inicialmente, a congurao inicial de

com a

w;

2. Essa congurao marcada como sendo a congurao corrente;


3.

M0

analisa a congurao corrente para determinar se o estado

corrente nal;
4. Em caso armativo,

M0

pra e aceita

w;

em caso negativo,

a congurao corrente para determinar o estado corrente


smbolo corrente

M0

qi

analisa

e o

x;

0
5. M insere, no nal da cadeia de entrada, tantas novas conguraes
quantos sejam os elementos de

Marcus Ramos (UNIVASF)

(qi , x);

TC 2010-1

22 de abril de 2010

185 / 240

Variaes das Mquinas de Turing

No-determinismo
Equivalncia

6. Cada uma dessas conguraes modicada para reetir a aplicao


de uma particular transio:

(, qi , x) seja a congurao corrente e


(qi , x) = {(qj , y, R), ..., (qm , z, R)};
As novas conguraes so (y, qj , ), ..., (z, qm , );

I Suponha que

que

I De maneira anloga se os deslocamentos forem esquerda.

7.

M0

procura a prxima congurao na ta de entrada;

8. Caso no exista,

Marcus Ramos (UNIVASF)

M0

pra e rejeita

w;

TC 2010-1

caso exista, v para 2.

22 de abril de 2010

186 / 240

Variaes das Mquinas de Turing

No-determinismo
Exemplo

Marcus Ramos (UNIVASF)

TC 2010-1

22 de abril de 2010

187 / 240

Variaes das Mquinas de Turing

No-determinismo
Exemplo

Marcus Ramos (UNIVASF)

TC 2010-1

22 de abril de 2010

188 / 240

Variaes das Mquinas de Turing

No-determinismo
Exemplo

Marcus Ramos (UNIVASF)

TC 2010-1

22 de abril de 2010

189 / 240

Variaes das Mquinas de Turing

No-determinismo
Exemplo

Marcus Ramos (UNIVASF)

TC 2010-1

22 de abril de 2010

190 / 240

Variaes das Mquinas de Turing

No-determinismo
Exemplo

Marcus Ramos (UNIVASF)

TC 2010-1

22 de abril de 2010

191 / 240

Variaes das Mquinas de Turing

No-determinismo
Exemplo

Marcus Ramos (UNIVASF)

TC 2010-1

22 de abril de 2010

192 / 240

Variaes das Mquinas de Turing

No-determinismo
Exemplo

Marcus Ramos (UNIVASF)

TC 2010-1

22 de abril de 2010

193 / 240

Variaes das Mquinas de Turing

No-determinismo
Exemplo

Marcus Ramos (UNIVASF)

TC 2010-1

22 de abril de 2010

194 / 240

Variaes das Mquinas de Turing

No-determinismo
Converso  incio
I Seja

I Seja

w = aa;

especicada no slide seguinte;

I A congurao inicial de
I Os estados q0 , q1 ,
0
e 3 em M ;

q2

q3

M
de

(, q0 , aa);

so denotados respectivamente

M0

(, q0 , X0aa);
0
I M procura a congurao direita do smbolo

I A congurao inicial de

X;

I M 0 determina o estado corrente e o smbolo corrente de

Marcus Ramos (UNIVASF)

0, 1, 2

TC 2010-1

M.

22 de abril de 2010

195 / 240

Variaes das Mquinas de Turing

No-determinismo
Verso no-determinstica

Marcus Ramos (UNIVASF)

TC 2010-1

22 de abril de 2010

196 / 240

Variaes das Mquinas de Turing

No-determinismo

Verso no-determinstica equivalente (parcial)

Marcus Ramos (UNIVASF)

TC 2010-1

22 de abril de 2010

197 / 240

Variaes das Mquinas de Turing

No-determinismo
Converso  trmino
M0

est especicado parcialmente:

q3 , gravar duas novas conguraes no nal da ta, uma


0a na congurao corrente por a1 e outra substituindo
a2; terminar ambas com ; ir para (d);

a) A partir de

substituindo

0a

por

b) A partir de

q9 , gravar uma nova congurao no nal da ta,


0b na congurao corrente por b3; terminar com ;

ir

substituindo
para (d);

q6 , gravar uma nova


substituindo a2 na congurao

c) A partir de

congurao no nal da ta,


corrente por

0a;

terminar com

ir

para (d);

Marcus Ramos (UNIVASF)

TC 2010-1

22 de abril de 2010

198 / 240

Variaes das Mquinas de Turing

No-determinismo
Converso  trmino

d) Procurar o
primeiro

esquerda e substituir por

direita e substituir por

e) Deslocar a cabea at o
f ) Nos estados

q2

q5 ,

X;

depois disso, procurar o

ir para (e);

e ir para o estado

se a entrada corrente for

q0 ;

ou branco, executar os

passos (d) e (e).

Marcus Ramos (UNIVASF)

TC 2010-1

22 de abril de 2010

199 / 240

Variaes das Mquinas de Turing

No-determinismo
Concluses
I Se

alcana alguma congurao de aceitao para

w, M 0

aceita

e pra;

I Se

pra em conguraes no-nais em todos os caminhos,

pra e rejeita

I Se

I Se

M0

w;

entra em loop em algum caminho,

M0

M0

entra em loop.

alcana uma congurao de aceitao para

caminho de aceitao para

I Se

M0

pra e rejeita

w, M

os caminhos com a entrada

em

w,

existe um

M;

pra em conguraes no-nais em todos

w;

I Se M 0 entra em loop em algum caminho,

M0

entra em loop em algum

caminho.

Marcus Ramos (UNIVASF)

TC 2010-1

22 de abril de 2010

200 / 240

Variaes das Mquinas de Turing

No-determinismo
Concluses

I Considere que

executa

movimentos;

I Considere que o maior nmero de transies em qualquer congurao


de

m;
M (a partir da
m conguraes seguintes;

I Aps a execuo do primeiro movimento de


congurao inicial) havero, no mximo,

I Aps a execuo do segundo movimento de

mm

M,

havero, no mximo,

M,

havero, no mximo,

conguraes seguintes;

I Aps a execuo do n-simo movimento de


mn conguraes seguintes;

Marcus Ramos (UNIVASF)

TC 2010-1

22 de abril de 2010

201 / 240

Variaes das Mquinas de Turing

No-determinismo
Concluses

I Portanto, o total de conguraes alcanadas por


1 + m + m2 + ... + mn ;

1 + m + m2 + ... + mn 1 + n mn , m 0, n 0, se
0
caminho de M analisa 1 + n conguraes, M precisa analisar,
n
sozinha, 1 + n m conguraes;

I Como

I O tempo de execuo de
I Se

M0

0
O(n), ento M

Marcus Ramos (UNIVASF)

cada

exponencial;

O(n mn ).

TC 2010-1

22 de abril de 2010

202 / 240

Variaes das Mquinas de Turing

Mltiplas tas de entrada

Conceito

Ao invs de uma nica ta, a Mquina de Turing possui uma quantidade


nita de tas:

I A cadeia de entrada posicionada na primeira ta;


I Cada ta possui uma cabea de leitura/escrita independente das
demais;

I As transies controlam as leituras, as escritas e as movimentaes de


todas as cabeas;

I A cabea pode permanecer no lugar de origem, sem se deslocar.

Marcus Ramos (UNIVASF)

TC 2010-1

22 de abril de 2010

203 / 240

Variaes das Mquinas de Turing

Mltiplas tas de entrada

Denio

Mquina de Turing com

tas:

... |{z}

: Q |{z}
|{z}
Fita 1

Fita 2

Fita n

Q ( {L, R, S}) ( {L, R, S}) ... ( {L, R, S})


|
{z
} |
{z
}
{z
}
|
Fita 1

Marcus Ramos (UNIVASF)

Fita 2

TC 2010-1

Fita n

22 de abril de 2010

204 / 240

Variaes das Mquinas de Turing

Mltiplas tas de entrada

Representao

Marcus Ramos (UNIVASF)

TC 2010-1

22 de abril de 2010

205 / 240

Variaes das Mquinas de Turing

Mltiplas tas de entrada

Representao

Suponha:

(q0 , a, , , ) = (q1 , (X, R), (Y, R), (W, L), (Z, S))

Marcus Ramos (UNIVASF)

TC 2010-1

22 de abril de 2010

206 / 240

Variaes das Mquinas de Turing

Mltiplas tas de entrada

Representao

Marcus Ramos (UNIVASF)

TC 2010-1

22 de abril de 2010

207 / 240

Variaes das Mquinas de Turing

Mltiplas tas de entrada

Equivalncia

Como toda Mquina de Turing uma Mquina de Turing com mltiplas


tas, fato que Mquinas de Turing com mltiplas tas aceitam todas as
linguagens recursivamente enumerveis. No entanto, cabe questionar se
existem linguagens que no so recursivamente enumerveis e que so
aceitas por alguma Mquina de Turing com duas ou mais tas.

Marcus Ramos (UNIVASF)

TC 2010-1

22 de abril de 2010

208 / 240

Variaes das Mquinas de Turing

Mltiplas tas de entrada

Equivalncia

Teorema: A classe das linguagens aceitas por Mquinas de Turing com


mltiplas tas corresponde exatamente classe das linguagens aceitas por
Mquinas de Turing com uma nica ta.

I MT com uma nica ta simula MT com mltiplas tas,


independentemente da quantidade de tas.

Marcus Ramos (UNIVASF)

TC 2010-1

22 de abril de 2010

209 / 240

Variaes das Mquinas de Turing

Mltiplas tas de entrada

Conveno

I Uma MT com
ta e

2n

tas ser representada por uma MT com uma nica

trilhas;

I A trilha

2i1

I A trilha

2i

representa o contedo da ta

X ) a posio
2 i 1, 1 i n;

representa (smbolo

leitura/escrita na ta

I Exemplo para

i, 1 i n;
corrente da cabea de

n = 4.

Marcus Ramos (UNIVASF)

TC 2010-1

22 de abril de 2010

210 / 240

Variaes das Mquinas de Turing

Mltiplas tas de entrada

Exemplo

Marcus Ramos (UNIVASF)

TC 2010-1

22 de abril de 2010

211 / 240

Variaes das Mquinas de Turing

Mltiplas tas de entrada

Exemplo

Marcus Ramos (UNIVASF)

TC 2010-1

22 de abril de 2010

212 / 240

Variaes das Mquinas de Turing

Mltiplas tas de entrada

Equivalncia
Mtodo:
1.

M2

M2

simula

M1

precisa localizar as posies onde esto os marcadores das

cabeas de leitura/escrita de
2. Para no se perder,

M2

M1

na sua ta de entrada;

deve manter sempre, armazenado no seu

conjunto de estados, a quantidade de marcadores que esto


esquerda e direita da posio corrente de leitura/escrita;
3. Aps a localizao de cada marcador,

M2

deve armazenar, no seu

conjunto de estados, o smbolo lido em cada uma das posies


correspondentes;

M1
M2 ;

4. O estado de
estados de

Marcus Ramos (UNIVASF)

deve estar armazenado tambm no conjunto de

TC 2010-1

22 de abril de 2010

213 / 240

Variaes das Mquinas de Turing

Mltiplas tas de entrada

Equivalncia
Mtodo:
5.
6.

M2

simula

M1

M2

determina a transio a ser aplicada;

M2

revisita cada um dos marcadores, desloca os mesmos de posio

(se for o caso), substitui os smbolos correspondentes e registra uma


eventual mudana de estado de

M1

no seu prprio conjunto de

estados;
7. Os estados de aceitao de
de aceitao de

Marcus Ramos (UNIVASF)

M2

so aqueles que representam estados

M1 .

TC 2010-1

22 de abril de 2010

214 / 240

Variaes das Mquinas de Turing

Mltiplas tas de entrada

Equivalncia

Teorema: O tempo que


movimentos de

M1

M2

(com uma nica ta) leva para simular

(com mltiplas tas)

Marcus Ramos (UNIVASF)

TC 2010-1

O(n2 ).

22 de abril de 2010

215 / 240

Variaes das Mquinas de Turing

Mltiplas tas de entrada

Equivalncia
I Aps

movimento de

por no mximo

I Aps

2
n

M1 ,

estaro separados

os marcadores de

M2

estaro separados

2n

M1 ,

os marcadores de

M2

estaro separados

posies;

I Para localizar todos os marcadores,

2i

M2

posies;

movimentos de

por no mximo

os marcadores de

posies;

movimentos de

por no mximo

I Aps

M1 ,

M2 deve executar, no mximo,


i o nmero de movimentos

movimentos para a direita, onde

executados por

M1

at o momento;

I Uma vez determinada a transio a ser aplicada,

M2

deve substituir os

smbolos nas trilhas mpares na ta de entrada; para isso so


requeridos, no mximo,

Marcus Ramos (UNIVASF)

2i

movimentos para a esquerda;

TC 2010-1

22 de abril de 2010

216 / 240

Variaes das Mquinas de Turing

Mltiplas tas de entrada

Equivalncia

I Tambm necessrio deslocar os marcadores das trilhas pares para a


esquerda ou para a direita; para isso sero necessrios outros

movimentos por marcador (um em cada sentido), num total de


movimentos, onde

clculo independe do valor de


Movimentos de

M1

i.

Distncia mxima em

M2

Movimentos de

4+2k
8+2k

...

...

...

2n

4n+2k

Marcus Ramos (UNIVASF)

2k

o nmero de tas sendo simuladas. Esse

TC 2010-1

22 de abril de 2010

M2

217 / 240

Variaes das Mquinas de Turing

Mltiplas tas de entrada

Equivalncia

I Portanto, para simular


n
P

movimento de

M1

so requeridos

(4 i + 2 k) n (4 n + 2 k) = 4 n2 + 2 k n

movimentos;

i=1
I Logo, para simular n movimentos de
O(n2 ) movimentos.

Marcus Ramos (UNIVASF)

TC 2010-1

M1

sero requeridos, no mximo,

22 de abril de 2010

218 / 240

Variaes das Mquinas de Turing

Fita limitada esquerda


Conceito

Ao invs de uma ta com tamanho ilimitado em ambos os sentidos, a


Mquina de Turing possui uma ta limitada esquerda e sem limitao
direita:

I A ta possui duas trilhas;


I A cadeia de entrada posicionada na primeira trilha no incio da ta;
I A ta preenchida com brancos direita do ltimo smbolo da cadeia
de entrada na primeira trilha, e integralmente na segunda trilha;

I Qualquer tentativa de movimentao da cabea de leitura/escrita para


a esquerda da primeira posio da ta gera uma condio de parada
com rejeio da cadeia de entrada.

Marcus Ramos (UNIVASF)

TC 2010-1

22 de abril de 2010

219 / 240

Variaes das Mquinas de Turing

Fita limitada esquerda


Equivalncia

Teorema: A classe das linguagens aceitas por Mquinas de Turing com ta
ilimitada em ambos os sentidos corresponde exatamente classe das
linguagens aceitas por Mquinas de Turing com ta limitada esquerda.

I MT

M1

M2

com ta limitada esquerda simula MT

com ta

ilimitada;

M1

nunca escreve branco (B ) na ta de entrada;

I A cabea de leitura/escrita nunca se desloca para a esquerda da


primeira posio.

Marcus Ramos (UNIVASF)

TC 2010-1

22 de abril de 2010

220 / 240

Variaes das Mquinas de Turing

Fita limitada esquerda


Representao

Marcus Ramos (UNIVASF)

TC 2010-1

22 de abril de 2010

221 / 240

Variaes das Mquinas de Turing

Fita limitada esquerda


Nunca escreve branco

Algoritmo:
Seja

M2 = (Q2 , , 2 , 2 , q2 , B, F2 ).

I Fazer

2 2

Ento:

{B 0 };

I Substituir toda regra do tipo 2 (q, X)


2 (q, X) = (p, B 0 , D);
I q Q2 , fazer 2 (q, B 0 ) = 2 (q, B).

Marcus Ramos (UNIVASF)

TC 2010-1

= (p, B, D), D {L, R},

22 de abril de 2010

por

222 / 240

Variaes das Mquinas de Turing

Fita limitada esquerda


Equivalncia
Mtodo:

I Usar a trilha superior para representar o lado direito da ta, e a trilha


inferior para representar o lado esquerdo da ta;

I Memorizar, nos estados de

M1 ,

se a cabea de leitura/escrita est

posicionada esquerda ou direita da posio inicial em

I Conforme o estado de

M1 ,

M2 ;

manipular apenas a trilha superior ou

inferior da ta de entrada;

I Garantir que toda movimentao para a direita da primeira posio


seleciona a trilha superior, e que toda movimentao esquerda da
primeira posio seleciona a trilha inferior.

Marcus Ramos (UNIVASF)

TC 2010-1

22 de abril de 2010

223 / 240

Variaes das Mquinas de Turing

Fita limitada esquerda


Equivalncia

M2 = (Q2 , , 2 , 2 , q2 , B, F2 ) modicado para nunca escrever


M2 simulado por M1 com ta limitada esquerda,
M1 = (Q1 , 1 , 1 , 1 , q0 , (B, B), F1 ), onde:
Considere

brancos na ta.

Q1 = {q0 , q1 } (Q2 {U, L});


U indica a manipulao da trilha

superior da ta,

indica a

manipulao da trilha inferior;

1 = {B};

1 = (2 2 ) {(X, )|X 2 };

/ 2 usado para indicar o incio da

(B, B)

F1 = {(q, T ) (F2 {U, L})|q F2 }.

representa o branco de

Marcus Ramos (UNIVASF)

ta.

M2 ;

TC 2010-1

22 de abril de 2010

224 / 240

Variaes das Mquinas de Turing

Fita limitada esquerda


Equivalncia

Obteno de
1.

1 :

1 (q0 , (, B)) = (q1 , (, ), R), ( {B});


primeiro movimento: insero do marcador de incio de ta na
segunda trilha;

2.

1 (q1 , (X, B)) = ((q2 , U ), (X, B), L), X 2 ;


segundo movimento: retornar para a posio inicial da ta, selecionar

M1 )
Z 2 :

trilha superior (parte direita da ta de


3. Se

2 (q, X) = (p, Y, D),

I
I

ento,

e ir para o estado inicial

q2 ;

1 ((q, U ), (X, Z)) = ((p, U ), (Y, Z), D) e


1 ((q, L), (Z, X)) = ((p, L), (Z, Y ), D).

simula

M2

levando em considerao a trilha corrente, exceto se estiver

na primeira posio.

Marcus Ramos (UNIVASF)

TC 2010-1

22 de abril de 2010

225 / 240

Variaes das Mquinas de Turing

Fita limitada esquerda


Equivalncia

Obteno de

1 :

2 (q, X) = (p, Y, R), ento:


1 ((q, L), (X, )) = 1 ((q, U ), (X, )) = ((p, U ), (Y, ), R)

4. Se

deslocamento direita da primeira posio seleciona a trilha superior;

2 (q, X) = (p, Y, L), ento:


1 ((q, L), (X, )) = 1 ((q, U ), (X, )) = ((p, L), (Y, ), R)

5. Se

deslocamento esquerda a primeira posio seleciona trilha inferior.

Marcus Ramos (UNIVASF)

TC 2010-1

22 de abril de 2010

226 / 240

Variaes das Mquinas de Turing

Fita limitada esquerda


Concluso

I
I

M1

reproduz as conguraes de

M2 ;

M1

entra em um estado de aceitao se e somente se

M2

tambm

entra;

L(M1 ) = L(M2 ).

Marcus Ramos (UNIVASF)

TC 2010-1

22 de abril de 2010

227 / 240

Variaes das Mquinas de Turing

Fita limitada esquerda


Exemplo

Marcus Ramos (UNIVASF)

TC 2010-1

22 de abril de 2010

228 / 240

Variaes das Mquinas de Turing

Fita limitada esquerda


Exemplo
I

Q1 = {q0 , q1 ,
(q2 , U ), (q2 , L), (q3 , U ), (q3 , L),
(q4 , U ), (q4 , L), (q5 , U ), (q5 , L),
(q6 , U ), (q6 , L)}

1 = {(a, B), (b, B), (c, B), (d, B)}

1 = {(a, ), (b, ), (c, ), (d, ),


(a, a), (a, b), (a, c), (a, d), (a, B),
(b, a), (b, b), (b, c), (b, d), (b, B),
(c, a), (c, b), (c, c), (c, d), (c, B),
(d, a), (d, b), (d, c), (d, d), (d, B),
(B, a), (B, b), (B, c), (B, d), (B, B)}

F1 = {(q6 , U ), (q6 , L)}

Marcus Ramos (UNIVASF)

TC 2010-1

22 de abril de 2010

229 / 240

Variaes das Mquinas de Turing

Fita limitada esquerda


Exemplo

Obteno de

1 :

1.

1 (q0 , (a, B)) = (q1 , (a, ), R)


1 (q0 , (b, B)) = (q1 , (b, ), R)
1 (q0 , (c, B)) = (q1 , (c, ), R)
1 (q0 , (d, B)) = (q1 , (d, ), R)
1 (q0 , (B, B)) = (q1 , (B, ), R)

2.

1 (q1 , (a, B)) = ((q2 , U ), (a, B), L)


1 (q1 , (b, B)) = ((q2 , U ), (b, B), L)
1 (q1 , (c, B)) = ((q2 , U ), (c, B), L)
1 (q1 , (d, B)) = ((q2 , U ), (d, B), L)
1 (q1 , (B, B)) = ((q2 , U ), (B, B), L)

Marcus Ramos (UNIVASF)

TC 2010-1

22 de abril de 2010

230 / 240

Variaes das Mquinas de Turing

Fita limitada esquerda


Exemplo

A partir de
3.

2 (q2 , c) = (q3 , c, R):

1 ((q2 , U ), (c, a)) = ((q3 , U ), (c, a), R)


1 ((q2 , U ), (c, b)) = ((q3 , U ), (c, b), R)
1 ((q2 , U ), (c, c)) = ((q3 , U ), (c, c), R)
1 ((q2 , U ), (c, d)) = ((q3 , U ), (c, d), R)
1 ((q2 , U ), (c, B)) = ((q3 , U ), (c, B), R)
1 ((q2 , L), (a, c)) = ((q3 , L), (a, c), L)
1 ((q2 , L), (b, c)) = ((q3 , L), (b, c), L)
1 ((q2 , L), (c, c)) = ((q3 , L), (c, c), L)
1 ((q2 , L), (d, c)) = ((q3 , L), (d, c), L)
1 ((q2 , L), (B, c)) = ((q3 , L), (B, c), L)

Marcus Ramos (UNIVASF)

TC 2010-1

22 de abril de 2010

231 / 240

Variaes das Mquinas de Turing

Fita limitada esquerda


Exemplo

A partir de
3.

2 (q3 , d) = (q4 , d, L):

1 ((q3 , U ), (d, a)) = ((q4 , U ), (d, a), L)


1 ((q3 , U ), (d, b)) = ((q4 , U ), (d, b), L)
1 ((q3 , U ), (d, c)) = ((q4 , U ), (d, c), L)
1 ((q3 , U ), (d, d)) = ((q4 , U ), (d, d), L)
1 ((q3 , U ), (d, B)) = ((q4 , U ), (d, B), L)
1 ((q3 , L), (a, d)) = ((q4 , L), (a, d), R)
1 ((q3 , L), (b, d)) = ((q4 , L), (b, d), R)
1 ((q3 , L), (c, d)) = ((q4 , L), (c, d), R)
1 ((q3 , L), (d, d)) = ((q4 , L), (d, d), R)
1 ((q3 , L), (B, d)) = ((q4 , L), (B, d), R)

Marcus Ramos (UNIVASF)

TC 2010-1

22 de abril de 2010

232 / 240

Variaes das Mquinas de Turing

Fita limitada esquerda


Exemplo

A partir de
3.

2 (q4 , c) = (q4 , c, L):

1 ((q4 , U ), (c, a)) = ((q4 , U ), (c, a), L)


1 ((q4 , U ), (c, b)) = ((q4 , U ), (c, b), L)
1 ((q4 , U ), (c, c)) = ((q4 , U ), (c, c), L)
1 ((q4 , U ), (c, d)) = ((q4 , U ), (c, d), L)
1 ((q4 , U ), (c, B)) = ((q4 , U ), (c, B), L)
1 ((q4 , L), (a, c)) = ((q4 , L), (a, c), R)
1 ((q4 , L), (b, c)) = ((q4 , L), (b, c), R)
1 ((q4 , L), (c, c)) = ((q4 , L), (c, c), R)
1 ((q4 , L), (d, c)) = ((q4 , L), (d, c), R)
1 ((q4 , L), (B, c)) = ((q4 , L), (B, c), R)

Marcus Ramos (UNIVASF)

TC 2010-1

22 de abril de 2010

233 / 240

Variaes das Mquinas de Turing

Fita limitada esquerda


Exemplo

A partir de
3.

2 (q4 , B) = (q5 , b, L):

1 ((q4 , U ), (B, a)) = ((q5 , U ), (b, a), L)


1 ((q4 , U ), (B, b)) = ((q5 , U ), (b, b), L)
1 ((q4 , U ), (B, c)) = ((q5 , U ), (b, c), L)
1 ((q4 , U ), (B, d)) = ((q5 , U ), (b, d), L)
1 ((q4 , U ), (B, B)) = ((q5 , U ), (b, B), L)
1 ((q4 , L), (a, B)) = ((q5 , L), (a, b), R)
1 ((q4 , L), (b, B)) = ((q5 , L), (b, b), R)
1 ((q4 , L), (c, B)) = ((q5 , L), (c, b), R)
1 ((q4 , L), (d, B)) = ((q5 , L), (d, b), R)
1 ((q4 , L), (B, B)) = ((q5 , L), (B, b), R)

Marcus Ramos (UNIVASF)

TC 2010-1

22 de abril de 2010

234 / 240

Variaes das Mquinas de Turing

Fita limitada esquerda


Exemplo

A partir de
3.

2 (q4 , B) = (q5 , a, R):

1 ((q5 , U ), (B, a)) = ((q6 , U ), (a, a), R)


1 ((q5 , U ), (B, b)) = ((q6 , U ), (a, b), R)
1 ((q5 , U ), (B, c)) = ((q6 , U ), (a, c), R)
1 ((q5 , U ), (B, d)) = ((q6 , U ), (a, d), R)
1 ((q5 , U ), (B, B)) = ((q6 , U ), (a, B), R)
1 ((q5 , L), (a, B)) = ((q6 , L), (a, a), L)
1 ((q5 , L), (b, B)) = ((q6 , L), (b, a), L)
1 ((q5 , L), (c, B)) = ((q6 , L), (c, a), L)
1 ((q5 , L), (d, B)) = ((q6 , L), (d, a), L)
1 ((q5 , L), (B, B)) = ((q6 , L), (B, a), L)

Marcus Ramos (UNIVASF)

TC 2010-1

22 de abril de 2010

235 / 240

Variaes das Mquinas de Turing

Fita limitada esquerda


Exemplo

A partir de
4.

1 ((q2 , L), (c, )) = 1 ((q2 , U ), (c, )) = ((q3 , U ), (c, ), R)

A partir de
4.

2 (q2 , c) = (q3 , c, R):


2 (q5 , B) = (q6 , a, R):

1 ((q5 , L), (B, )) = 1 ((q5 , U ), (B, )) = ((q6 , U ), (a, ), R)

Marcus Ramos (UNIVASF)

TC 2010-1

22 de abril de 2010

236 / 240

Variaes das Mquinas de Turing

Fita limitada esquerda


Exemplo

A partir de
5.

1 ((q3 , L), (d, )) = 1 ((q3 , U ), (d, )) = ((q4 , L), (d, ), R)

A partir de
5.

2 (q4 , c) = (q4 , c, L):

1 ((q4 , L), (c, )) = 1 ((q4 , U ), (c, )) = ((q4 , L), (c, ), R)

A partir de
5.

2 (q3 , d) = (q4 , d, L):

2 (q4 , B) = (q5 , b, L):

1 ((q4 , L), (B, )) = 1 ((q4 , U ), (B, )) = ((q5 , L), (b, ), R)

Marcus Ramos (UNIVASF)

TC 2010-1

22 de abril de 2010

237 / 240

Variaes das Mquinas de Turing

Fita limitada esquerda


Exemplo

Marcus Ramos (UNIVASF)

TC 2010-1

22 de abril de 2010

238 / 240

Variaes das Mquinas de Turing

Fita limitada esquerda


Exemplo

Marcus Ramos (UNIVASF)

TC 2010-1

22 de abril de 2010

239 / 240

Variaes das Mquinas de Turing

Fita limitada esquerda


Exemplo

Marcus Ramos (UNIVASF)

TC 2010-1

22 de abril de 2010

240 / 240

Você também pode gostar