Você está na página 1de 41

Mquinas de Turing

Complexity D.Moshkovitz

Motivacin
Nuestra meta, en este curso, es analizar problemas y clasificarlos de acuerdo a su complejidad .

Complexity D.Moshkovitz

Motivacin
Nos hacemos preguntas como: Cunto tiempo tarda en computarse algo?

Complexity D.Moshkovitz

Motivacin
Para poder resolver estas cuestiones debemos definir formalmente un modelo de computacin.

Complexity D.Moshkovitz

Introduccin
Objetivos: Introducir el modelo de computacin denominado Mquina de Turing. Resumen: Mquinas de Turing deterministas (MTD) Mquinas de Turing con varias cintas (MTVC) Mquinas de Turing no deterministas (MTND) La tesis de Church-Turing

Complexity D.Moshkovitz

Esquema de una MT
Aqu hay una b!

cabeza: lee/escribe movimientos: izda/dcha

a cinta infinita
Complexity D.Moshkovitz

SIP 128-129

Definicin formal de la MT
Una mquina de Turing determinista es una tupla formada por varios objetos.

Complexity D.Moshkovitz

Definicin formal de la MT
1. Q un conjunto finito de estados.

Complexity D.Moshkovitz

Definicin formal de la MT
2. - El alfabeto de entrada: un conjunto finito de smbolos que no contiene al smbolo blanco.

Complexity D.Moshkovitz

Definicin formal de la MT
3. - el alfabeto de cinta, tal que: y en smbolo _ est en .

Complexity D.Moshkovitz

10

Definicin formal de la MT
4. :QQ{I,D} la funcin de transicin.
q0 q0

Complexity D.Moshkovitz

11

Definicin formal de la MT
5. q0Q el estado inicial

Complexity D.Moshkovitz

12

Definicin formal de la MT
6. qsiQ el estado aceptador.

Complexity D.Moshkovitz

13

Definicin formal de la MT
7. qnoQ el estado no aceptador. qnoqsi.

Complexity D.Moshkovitz

14

Definicin formal de la MT Resumen


1. Q el conjunto de estados. 2. - el alfabeto de entrada. 3. - el alfabeto de cinta. 4. :QQ{I,D} la funcin de transicin. 5. q0 Q el estado inicial. 6. qsiQ el estado aceptador. 7. qnoQ el estado que rechaza.
Complexity D.Moshkovitz

15

Ejecucin de un MTD
La configuracin inicial
estado inicial q0 cabeza: en la casilla ms a la izda

La entrada: a partir de la casilla ms a la izda


Complexity D.Moshkovitz

16

Ejecucin de un MTD
Ejemplo
(q0,a)=(q0,b,D) q0 q0

Nota: La cabeza no se puede mover ms a la izda de esta casilla!


Complexity D.Moshkovitz

17

La configuracin aceptadora
qsi Si la ejecucin alcanza el estado aceptador, para.

Ejecucin de un MTD

Complexity D.Moshkovitz

18

La configuracin rechazadora
qno Si la ejecucin alcanza el estado que rechaza, tambin para.

Ejecucin de un MTD

Nota: La mquina podra ciclar y no alcanzar ninguno de los estados aceptador y rechazador!
Complexity D.Moshkovitz

19

Lenguaje aceptado por una MT


Una MT acepta su entrada si, partiendo de la configuracin inicial, durante el cmputo alcanza la configuracin aceptadora. El conjunto de entradas aceptadas por un MT se denomina su lenguaje.

Complexity D.Moshkovitz

20

Configuraciones
Cuntas configuraciones distintas puede alcanzar una MT que use N casillas?

||N N |Q|
El estado El contenido La de la cinta posicin de la cabeza

Complexity D.Moshkovitz

21

Construccin de una MTD para un lenguaje


L = { anbncn | n0 }
Ejemplos: Miembros de L: No miembros de L:
aaabbbccc aaabbbccc aaabbcccc aaabbcccc

Complexity D.Moshkovitz

22

La mquina de Turing determinista


1. Q = {q0,q1,q2,q3,q4,qsit,qno} 2. = {a,b,c} 3. = {a,b,c,_,X,Y,Z} 4. especificada mediante diagrama. 5. q0 Q el estado inicial. 6. qsiQ el estado aceptador. 7. qnoQ el estado que rechaza.
Complexity D.Moshkovitz

23

La funcin de transicin
aa, D YY, D aX,D __, D

q1

bY,D

bb, D ZZ, D

q0

q2

XX, D YY, D

cZ,I

Las transiciones a estado qno no se especifican.

qac

q3

__, D

q4

ZZ, I

bb, I aa, I YY, I

YY, D ZZ, D
Complexity D.Moshkovitz

24

Lenguaje aceptado { anbncn | n0 }


__, D

aa, D YY, D aX,D

q1

bY,D

bb, D ZZ, D

q0

q2
cZ,I

XX, D YY, D

qsi

q3

__, D

q4
YY, D ZZ, D

ZZ, I bb, I YY, I aa, I

X a

Y b

Z c

. . .
25

Complexity D.Moshkovitz

Modelos equivalentes
Las mquinas de Turing deterministas tienen mucho poder de computacin. Podemos simular con ellas otros modelos, aparentemente ms poderosos, con un coste polinmico. A continuacin vemos un ejemplo.

Complexity D.Moshkovitz

26

Mquinas de Turing con varias cintas


La entrada se escribe en la primera cinta

SIP 136-138

a b b

a b a

b b a

a b b

b b a

b _ _

_ _ _

...

...

...

Complexity D.Moshkovitz

27

Mquinas de Turing con varias cintas


1. Q el conjunto de estados. 2. - el alfabeto de entrada. 3. - el alfabeto de cinta. 4. :QkQ({I,D})k la funcin de transicin, donde k (el nmero de cintas) es una constante. 5. q0 Q el estado inicial. 6. qsiQ el estado aceptador. 7. qnoQ el estado que rechaza.
Complexity D.Moshkovitz

28

Robustez del modelo


Las mquinas de Turing con varias cintas son polinmicamente equivalentes (en cuanto a tiempo) a las que tienen una sola cinta. Podemos afirmar algo mucho ms importante sobre la robustez del modelo de mquina de Turing:
Complexity D.Moshkovitz

29

La Tesis de Church-Turing
Nocin Nocin (intuitiva) (intuitiva) de de algoritmos algoritmos

Mquinas Mquinas de de Turing Turing

Complexity D.Moshkovitz

30

Qu ms?
Definimos otro modelo de computacin menos realista, que puede ser simulado por las MTDs. Sin embargo, con un coste exponencial de tiempo.

Complexity D.Moshkovitz

31

Mquinas de Turing no deterministas MTND


1. Q el conjunto de estados. 2. - el alfabeto de entrada. Partes de 3. - el alfabeto de cinta. P(A)={B | BA} 4. :QP(Q{I,D}) la funcin de transicin. 5. q0Q el estado inicial. 6. qsiQ el estado aceptador. 7. qnoQ el estado que rechaza.
Complexity D.Moshkovitz

32

Ejecucin de un MTND
cmputo determinista acepta si alguna rama alcanza la configuracin aceptadora Nota: el tamao de un rbol es exponencial en su profundidad
33

rbol de cmputo no determinista

tiempo . . .

Complexity D.Moshkovitz

Descripcin alternativa
Una mquina de Turing no determinista adivina el camino correcto y luego comprueba que efectivamente es correcto.

Complexity D.Moshkovitz

34

Ejemplo
Una MTND que decide si dos vrtices de un grafo estn conectados puede simplemente adivinar un camino entre ellos. A continuacin necesita verificar que efectivamente el camino es vlido (existe).

Complexity D.Moshkovitz

35

SIP 138-140

Simulacin de una MTND por una MTD


Describimos una MTD con 3-cintas que simula una MTND dada.

Complexity D.Moshkovitz

36

Simulacin de una MTND por una MTD


cinta de entrada cinta simuladora ... ... ...

cinta de direcciones

Complexity D.Moshkovitz

37

Direcciones
1 111 1 1 1 2 1 1 1 1 1 2 2 1 2
38

3 1

computacin no determinista

1312

Complexity D.Moshkovitz

Simulacin
1. Escribe 1111 en la cinta de direcciones. 2. Copia la entrada en la cinta simuladora. 3. Simula la MTND: usa la eleccin dictada por la cinta de direcciones (si es vlida). 4. Si se acepta acepta y termina. 5. Cambia la direccin por la siguiente en orden lexicogrfico. Si no hay ms rechaza. 6. Ir al paso 2.
Complexity D.Moshkovitz

39

Resumen
Presentamos dos modelos de computacin: la mquina de Turing determinista frente a la mquina de Turing no determinista. Simulamos las MTNDs por MTDs con un coste exponencial en tiempo.

Complexity D.Moshkovitz

40

Resumen
La Tesis de Church-Turing: Las mquinas de Turing deterministas son equivalentes a nuestra idea intuitiva de algoritmo. Hay que tener en cuenta que normalmente describiremos los algoritmos en pseudocdigo y no con MTDs

Complexity D.Moshkovitz

41