Está en la página 1de 41

Mquinas de Turing

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

Complexity 2
D.Moshkovitz
Motivacin
Nos hacemos preguntas como: Cunto
tiempo tarda en computarse algo?

Complexity 3
D.Moshkovitz
Motivacin
Para poder resolver estas cuestiones
debemos definir formalmente un
modelo de computacin.

Complexity 4
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 5
D.Moshkovitz
Esquema de una MT

cabeza: lee/escribe
Aqu hay
una b! movimientos: izda/dcha

cinta infinita

Complexity 6
D.Moshkovitz
SIP 128-129

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

Complexity 7
D.Moshkovitz
Definicin formal de la MT
1. Q un conjunto finito de estados.

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

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

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

Complexity 11
D.Moshkovitz
Definicin formal de la MT
5. q0Q el estado inicial

Complexity 12
D.Moshkovitz
Definicin formal de la MT
6. qsiQ el estado aceptador.

Complexity 13
D.Moshkovitz
Definicin formal de la MT
7. qnoQ el estado no aceptador.
qnoqsi.

Complexity 14
D.Moshkovitz
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 15
D.Moshkovitz
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 16
D.Moshkovitz
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 17
D.Moshkovitz
Ejecucin de un MTD
La configuracin aceptadora
Si la ejecucin alcanza el estado
aceptador, para.
qsi

Complexity 18
D.Moshkovitz
Ejecucin de un MTD
La configuracin rechazadora
Si la ejecucin alcanza el estado que
rechaza, tambin para.
qno

Nota: La mquina podra ciclar y


no alcanzar ninguno de los estados
aceptador y rechazador!
Complexity 19
D.Moshkovitz
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 20
D.Moshkovitz
Configuraciones
Cuntas configuraciones
distintas puede alcanzar una
MT que use N casillas?

||N N |Q|
El contenido La El estado
de la cinta posicin
de la
Complexity cabeza 21
D.Moshkovitz
Construccin de una MTD para un
lenguaje

L = { anbncn | n0 }

Ejemplos:
Miembros de L: aaabbbccc
aaabbbccc

No miembros de L: aaabbcccc
aaabbcccc

Complexity 22
D.Moshkovitz
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 23
D.Moshkovitz
La funcin de transicin
aa, D
YY, D bb, D
ZZ, D
q1 bY,D
aX,D q2 Las transiciones
a estado qno no se
q0 cZ,I especifican.
XX, D
__, D
q3 bb, I
YY, D
aa, I
qac YY, I
__, D q4 ZZ, I

YY, D
ZZ, D

Complexity 24
D.Moshkovitz
aa, D
Lenguaje aceptado YY, D
bb, D
ZZ, D
{ anbncn | n0 } aX,D q1 bY,D
q2
q0 XX, D cZ,I
__, D
YY, D q3 ZZ, I
bb, I
qsi __, D YY, I
q4 aa, I

YY, D
ZZ, D

Xa Y
b Zc _ _
. . .

Complexity 25
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 26
D.Moshkovitz
SIP 136-138

Mquinas de Turing con varias cintas


La entrada se escribe
en la primera cinta
a a b a b b _ ...

b b b b b _ _ ...

b a a b a _ _ ...

Complexity 27
D.Moshkovitz
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 28
D.Moshkovitz
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 29
D.Moshkovitz
La Tesis de Church-Turing

Nocin
Nocin (intuitiva)
de
(intuitiva)
de algoritmos
algoritmos
Mquinas
Mquinas de
Turing
Turing
de

Complexity 30
D.Moshkovitz
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 31
D.Moshkovitz
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 32
D.Moshkovitz
Ejecucin de un MTND
cmputo rbol de cmputo
determinista no determinista

acepta si alguna
rama alcanza la
tiempo configuracin
aceptadora
.
.
.
Nota: el tamao de un
rbol es exponencial
en su profundidad
Complexity 33
D.Moshkovitz
Descripcin alternativa
Una mquina de Turing no determinista
adivina el camino correcto y luego
comprueba que efectivamente es
correcto.

Complexity 34
D.Moshkovitz
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 35
D.Moshkovitz
SIP 138-140

Simulacin de una MTND por una MTD

Describimos una MTD con 3-cintas


que simula una MTND dada.

Complexity 36
D.Moshkovitz
Simulacin de una MTND por una MTD

cinta de entrada ...

cinta simuladora ...

...
cinta de direcciones

Complexity 37
D.Moshkovitz
Direcciones
1
computacin no
1 2 3 determinista
111

1 1 2 1

1312
1 2 1 1 2

1 1 1 2

Complexity 38
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 39
D.Moshkovitz
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 40
D.Moshkovitz
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 pseudo-
cdigo y no con MTDs

Complexity 41
D.Moshkovitz

También podría gustarte