Sie sind auf Seite 1von 361

M aquinas de Turing

F. de Sande

20112012

F. de Sande ()

M aquinas de Turing

20112012

1 / 90

M aquinas de Turing
Asociado con los lenguajes regulares y con los CFLs hemos estudiado respectivamente los AFs y los APs

F. de Sande ()

M aquinas de Turing

20112012

2 / 90

M aquinas de Turing
Asociado con los lenguajes regulares y con los CFLs hemos estudiado respectivamente los AFs y los APs Se trata de m aquinas abstractas capaces de reconocer cadenas de cada uno de esos lenguajes, respectivamente

F. de Sande ()

M aquinas de Turing

20112012

2 / 90

M aquinas de Turing
Asociado con los lenguajes regulares y con los CFLs hemos estudiado respectivamente los AFs y los APs Se trata de m aquinas abstractas capaces de reconocer cadenas de cada uno de esos lenguajes, respectivamente Estas m aquinas son modelos de computaci on: reciben una cadena de s mbolos de entrada, realizan ciertos movimientos en respuesta a los s mbolos de la cadena y proporcionan una respuesta rudimentaria; s o no

F. de Sande ()

M aquinas de Turing

20112012

2 / 90

M aquinas de Turing
Asociado con los lenguajes regulares y con los CFLs hemos estudiado respectivamente los AFs y los APs Se trata de m aquinas abstractas capaces de reconocer cadenas de cada uno de esos lenguajes, respectivamente Estas m aquinas son modelos de computaci on: reciben una cadena de s mbolos de entrada, realizan ciertos movimientos en respuesta a los s mbolos de la cadena y proporcionan una respuesta rudimentaria; s o no Sabemos que hay lenguajes simples (p. ej. L = {an bn cn |n 0}) que no son independientes del contexto, y por ello ni los AFs ni los APs pueden ser considerados modelos generales de computaci on

F. de Sande ()

M aquinas de Turing

20112012

2 / 90

M aquinas de Turing
Asociado con los lenguajes regulares y con los CFLs hemos estudiado respectivamente los AFs y los APs Se trata de m aquinas abstractas capaces de reconocer cadenas de cada uno de esos lenguajes, respectivamente Estas m aquinas son modelos de computaci on: reciben una cadena de s mbolos de entrada, realizan ciertos movimientos en respuesta a los s mbolos de la cadena y proporcionan una respuesta rudimentaria; s o no Sabemos que hay lenguajes simples (p. ej. L = {an bn cn |n 0}) que no son independientes del contexto, y por ello ni los AFs ni los APs pueden ser considerados modelos generales de computaci on El reconocimiento de las cadenas de L = {an bn cn |n 0} requiere capacidades que ni los AFs ni los APs poseen

F. de Sande ()

M aquinas de Turing

20112012

2 / 90

M aquinas de Turing
Asociado con los lenguajes regulares y con los CFLs hemos estudiado respectivamente los AFs y los APs Se trata de m aquinas abstractas capaces de reconocer cadenas de cada uno de esos lenguajes, respectivamente Estas m aquinas son modelos de computaci on: reciben una cadena de s mbolos de entrada, realizan ciertos movimientos en respuesta a los s mbolos de la cadena y proporcionan una respuesta rudimentaria; s o no Sabemos que hay lenguajes simples (p. ej. L = {an bn cn |n 0}) que no son independientes del contexto, y por ello ni los AFs ni los APs pueden ser considerados modelos generales de computaci on El reconocimiento de las cadenas de L = {an bn cn |n 0} requiere capacidades que ni los AFs ni los APs poseen En este tema estamos listos para ampliar nuestra idea de computaci on y para considerar modelos m as generales
F. de Sande () M aquinas de Turing 20112012 2 / 90

M aquinas de Turing

Alan Turing (1936), On Computable Numbers, With an Application to the Entscheidungsproblem, Proceedings of the London Mathematical Society, Series 2, Volume 42 (1936). Eprint. Reprinted in The Undecidable pp.115154. http://www.turingarchive.org/browse.php/B/12
F. de Sande () M aquinas de Turing 20112012 3 / 90

M aquinas de Turing
Una M aquina de Turing (MT) es una tupla M (Q, , , q0 , b, F, )
Q es el conjunto de estados. Q es nito, Q =

F. de Sande ()

M aquinas de Turing

20112012

4 / 90

M aquinas de Turing
Una M aquina de Turing (MT) es una tupla M (Q, , , q0 , b, F, )
Q es el conjunto de estados. Q es nito, Q = es el alfabeto de cinta

F. de Sande ()

M aquinas de Turing

20112012

4 / 90

M aquinas de Turing
Una M aquina de Turing (MT) es una tupla M (Q, , , q0 , b, F, )
Q es el conjunto de estados. Q es nito, Q = es el alfabeto de cinta es el alfabeto de entrada. Generalmente ( { b})

F. de Sande ()

M aquinas de Turing

20112012

4 / 90

M aquinas de Turing
Una M aquina de Turing (MT) es una tupla M (Q, , , q0 , b, F, )
Q es el conjunto de estados. Q es nito, Q = es el alfabeto de cinta es el alfabeto de entrada. Generalmente ( { b}) q0 Q es el estado de arranque

F. de Sande ()

M aquinas de Turing

20112012

4 / 90

M aquinas de Turing
Una M aquina de Turing (MT) es una tupla M (Q, , , q0 , b, F, )
Q es el conjunto de estados. Q es nito, Q = es el alfabeto de cinta es el alfabeto de entrada. Generalmente ( { b}) q0 Q es el estado de arranque F Q es el conjunto de estados de aceptaci on

F. de Sande ()

M aquinas de Turing

20112012

4 / 90

M aquinas de Turing
Una M aquina de Turing (MT) es una tupla M (Q, , , q0 , b, F, )
Q es el conjunto de estados. Q es nito, Q = es el alfabeto de cinta es el alfabeto de entrada. Generalmente ( { b}) q0 Q es el estado de arranque F Q es el conjunto de estados de aceptaci on b es el s mbolo blanco. b

F. de Sande ()

M aquinas de Turing

20112012

4 / 90

M aquinas de Turing
Una M aquina de Turing (MT) es una tupla M (Q, , , q0 , b, F, )
Q es el conjunto de estados. Q es nito, Q = es el alfabeto de cinta es el alfabeto de entrada. Generalmente ( { b}) q0 Q es el estado de arranque F Q es el conjunto de estados de aceptaci on b es el s mbolo blanco. b es la funci on de transici on: : Q Q {L, R} (q, a) (p, t, X ) con p, q Q, a, t ( { b}), X {L, R}

F. de Sande ()

M aquinas de Turing

20112012

4 / 90

M aquinas de Turing
Una M aquina de Turing (MT) es una tupla M (Q, , , b, q0 , F, )

Figure: Esquema de una M aquina de Turing

Cualquier cadena de entrada se le suministra a la MT sobre su cinta de entrada que est a inicialmente rellena (toda) con s mbolos b

F. de Sande ()

M aquinas de Turing

20112012

5 / 90

M aquinas de Turing

Ejemplo
Q = {q1 , q2 } = {a, b} = {a, b, b} F = { q2 } (q1 , a) = (q1 , a, R) (q1 , b) = (q1 , a, R) (q1 , b) = (q2 , b, L)

F. de Sande ()

M aquinas de Turing

20112012

6 / 90

Descripci on Instant anea (DI) de una MT


Dada una MT M (Q, , , q0 , b, F, ) consideraremos dos formas diferentes de descripciones instant aneas:
1

(qi , w1 aw2 ) donde:

F. de Sande ()

M aquinas de Turing

20112012

7 / 90

Descripci on Instant anea (DI) de una MT


Dada una MT M (Q, , , q0 , b, F, ) consideraremos dos formas diferentes de descripciones instant aneas:
1

(qi , w1 aw2 ) donde:


qi Es el estado actual

F. de Sande ()

M aquinas de Turing

20112012

7 / 90

Descripci on Instant anea (DI) de una MT


Dada una MT M (Q, , , q0 , b, F, ) consideraremos dos formas diferentes de descripciones instant aneas:
1

(qi , w1 aw2 ) donde:


qi Es el estado actual w1 Cadena a la izquierda de la cabeza de lectura/escritura (L/E)

F. de Sande ()

M aquinas de Turing

20112012

7 / 90

Descripci on Instant anea (DI) de una MT


Dada una MT M (Q, , , q0 , b, F, ) consideraremos dos formas diferentes de descripciones instant aneas:
1

(qi , w1 aw2 ) donde:


qi Es el estado actual w1 Cadena a la izquierda de la cabeza de lectura/escritura (L/E) w2 Cadena a la derecha de la cabeza de L/E

F. de Sande ()

M aquinas de Turing

20112012

7 / 90

Descripci on Instant anea (DI) de una MT


Dada una MT M (Q, , , q0 , b, F, ) consideraremos dos formas diferentes de descripciones instant aneas:
1

(qi , w1 aw2 ) donde:


qi Es el estado actual w1 Cadena a la izquierda de la cabeza de lectura/escritura (L/E) w2 Cadena a la derecha de la cabeza de L/E a S mbolo sobre el que se encuentra la cabeza de L/E

F. de Sande ()

M aquinas de Turing

20112012

7 / 90

Descripci on Instant anea (DI) de una MT


Dada una MT M (Q, , , q0 , b, F, ) consideraremos dos formas diferentes de descripciones instant aneas:
1

(qi , w1 aw2 ) donde:


qi Es el estado actual w1 Cadena a la izquierda de la cabeza de lectura/escritura (L/E) w2 Cadena a la derecha de la cabeza de L/E a S mbolo sobre el que se encuentra la cabeza de L/E

a1 a2 . . . ak1 qi ak . . . an Esta DI equivale a: (qi , wak u) en el formato anterior, con w = a1 a2 . . . ak1 y u = ak+1 ak+2 . . . an

F. de Sande ()

M aquinas de Turing

20112012

7 / 90

Descripci on Instant anea (DI) de una MT


Dada una MT M (Q, , , q0 , b, F, ) consideraremos dos formas diferentes de descripciones instant aneas:
1

(qi , w1 aw2 ) donde:


qi Es el estado actual w1 Cadena a la izquierda de la cabeza de lectura/escritura (L/E) w2 Cadena a la derecha de la cabeza de L/E a S mbolo sobre el que se encuentra la cabeza de L/E

a1 a2 . . . ak1 qi ak . . . an Esta DI equivale a: (qi , wak u) en el formato anterior, con w = a1 a2 . . . ak1 y u = ak+1 ak+2 . . . an

F. de Sande ()

M aquinas de Turing

20112012

7 / 90

Descripci on Instant anea (DI) de una MT


Dada una MT M (Q, , , q0 , b, F, ) consideraremos dos formas diferentes de descripciones instant aneas:
1

(qi , w1 aw2 ) donde:


qi Es el estado actual w1 Cadena a la izquierda de la cabeza de lectura/escritura (L/E) w2 Cadena a la derecha de la cabeza de L/E a S mbolo sobre el que se encuentra la cabeza de L/E

a1 a2 . . . ak1 qi ak . . . an Esta DI equivale a: (qi , wak u) en el formato anterior, con w = a1 a2 . . . ak1 y u = ak+1 ak+2 . . . an

Se utilizan los s mbolos Para el ejemplo anterior: (q1 , baabb b) . . .

con los signicados habituales

F. de Sande ()

M aquinas de Turing

20112012

7 / 90

Descripci on Instant anea (DI) de una MT


Dada una MT M (Q, , , q0 , b, F, ) consideraremos dos formas diferentes de descripciones instant aneas:
1

(qi , w1 aw2 ) donde:


qi Es el estado actual w1 Cadena a la izquierda de la cabeza de lectura/escritura (L/E) w2 Cadena a la derecha de la cabeza de L/E a S mbolo sobre el que se encuentra la cabeza de L/E

a1 a2 . . . ak1 qi ak . . . an Esta DI equivale a: (qi , wak u) en el formato anterior, con w = a1 a2 . . . ak1 y u = ak+1 ak+2 . . . an

Se utilizan los s mbolos

con los signicados habituales

Para el ejemplo anterior: (q1 , baabb b) . . . (q1 , baabb b) (q1 , baabb b)


F. de Sande ()

(q1 , baabb b)
M aquinas de Turing

...
20112012 7 / 90

Descripci on Instant anea (DI) de una MT


Dada una MT M (Q, , , q0 , b, F, ) consideraremos dos formas diferentes de descripciones instant aneas:
1

(qi , w1 aw2 ) donde:


qi Es el estado actual w1 Cadena a la izquierda de la cabeza de lectura/escritura (L/E) w2 Cadena a la derecha de la cabeza de L/E a S mbolo sobre el que se encuentra la cabeza de L/E

a1 a2 . . . ak1 qi ak . . . an Esta DI equivale a: (qi , wak u) en el formato anterior, con w = a1 a2 . . . ak1 y u = ak+1 ak+2 . . . an

Se utilizan los s mbolos

con los signicados habituales

Para el ejemplo anterior: (q1 , baabb b) . . . (q1 , baabb b) (q1 , baabb b) (q1 , baabb b) q1 aabb aq1 abb aaq1 bb . . .
F. de Sande () M aquinas de Turing

...
20112012 7 / 90

M aquinas de Turing
Ejemplo
Q = {q1 , q2 , q3 } = {a, b} = {a, b, b} F = { q3 } q0 = q1 (q1 , a) = (q1 , a, L) (q1 , b) = (q1 , b, L) (q1 , b) = (q2 , b, R) (q2 , a) = (q3 , a, L) (q2 , b) = (q3 , b, L) (q2 , b) = (q3 , b, R)

Esta MT examina su cinta hacia la izquierda hasta hallar el primer b. Entonces para y se coloca sobre el b (q1 , baababb b) . . .

F. de Sande ()

M aquinas de Turing

20112012

8 / 90

M aquinas de Turing
Ejemplo
Q = {q1 , q2 , q3 } = {a, b} = {a, b, b} F = { q3 } q0 = q1 (q1 , a) = (q1 , a, L) (q1 , b) = (q1 , b, L) (q1 , b) = (q2 , b, R) (q2 , a) = (q3 , a, L) (q2 , b) = (q3 , b, L) (q2 , b) = (q3 , b, R)

Esta MT examina su cinta hacia la izquierda hasta hallar el primer b. Entonces para y se coloca sobre el b (q1 , baababb b) . . . (q1 , baababb b) (q1 , baababb b) (q1 , baababb b) (q1 , baababb b) (q1 , baababb b) (q2 , baababb b) (q3 , baababb b) aabq1 abb aaq1 babb aq1 ababb q1 aababb q1 baababb q2 aababb q3 baababb
F. de Sande () M aquinas de Turing 20112012 8 / 90

MT Parada
Consideremos una MT M (Q, , , q0 , b, F, )
Cuando (q, a) no est a denida y la conguraci on de la MT es (q, w1 aw2 ) es imposible que la MT cambie la conguraci on

F. de Sande ()

M aquinas de Turing

20112012

9 / 90

MT Parada
Consideremos una MT M (Q, , , q0 , b, F, )
Cuando (q, a) no est a denida y la conguraci on de la MT es (q, w1 aw2 ) es imposible que la MT cambie la conguraci on En estas circunstancias, se dice que la MT est a Parada

F. de Sande ()

M aquinas de Turing

20112012

9 / 90

MT Parada
Consideremos una MT M (Q, , , q0 , b, F, )
Cuando (q, a) no est a denida y la conguraci on de la MT es (q, w1 aw2 ) es imposible que la MT cambie la conguraci on En estas circunstancias, se dice que la MT est a Parada Una MT puede estar parada en un estado q F o bien en un q F

F. de Sande ()

M aquinas de Turing

20112012

9 / 90

MT Parada
Consideremos una MT M (Q, , , q0 , b, F, )
Cuando (q, a) no est a denida y la conguraci on de la MT es (q, w1 aw2 ) es imposible que la MT cambie la conguraci on En estas circunstancias, se dice que la MT est a Parada Una MT puede estar parada en un estado q F o bien en un q F Por simplicaci on, convendremos en NO denir transiciones para estados q F

F. de Sande ()

M aquinas de Turing

20112012

9 / 90

MT Parada
Consideremos una MT M (Q, , , q0 , b, F, )
Cuando (q, a) no est a denida y la conguraci on de la MT es (q, w1 aw2 ) es imposible que la MT cambie la conguraci on En estas circunstancias, se dice que la MT est a Parada Una MT puede estar parada en un estado q F o bien en un q F Por simplicaci on, convendremos en NO denir transiciones para estados q F

F. de Sande ()

M aquinas de Turing

20112012

9 / 90

MT Parada
Consideremos una MT M (Q, , , q0 , b, F, )
Cuando (q, a) no est a denida y la conguraci on de la MT es (q, w1 aw2 ) es imposible que la MT cambie la conguraci on En estas circunstancias, se dice que la MT est a Parada Una MT puede estar parada en un estado q F o bien en un q F Por simplicaci on, convendremos en NO denir transiciones para estados q F

Denici on
Computaci on de una MT es la secuencia de movimientos (DIs) que conducen a una conguraci on de parada

F. de Sande ()

M aquinas de Turing

20112012

9 / 90

MT que nunca para


Consideremos una MT M (Q, , , q0 , b, F, ) denida como:
Q = {q1 , q2 } = {a, b} = {a, b, b} F = q0 = q1 (q1 , a) = (q2 , a, R) (q1 , b) = (q2 , b, R) (q1 , b) = (q2 , b, R) (q2 , a) = (q1 , a, L) (q2 , b) = (q1 , b, L) (q2 , b) = (q1 , b, L)

Estudiemos el c omputo que realiza esta MT: q1 abw . . .

F. de Sande ()

M aquinas de Turing

20112012

10 / 90

MT que nunca para


Consideremos una MT M (Q, , , q0 , b, F, ) denida como:
Q = {q1 , q2 } = {a, b} = {a, b, b} F = q0 = q1 (q1 , a) = (q2 , a, R) (q1 , b) = (q2 , b, R) (q1 , b) = (q2 , b, R) (q2 , a) = (q1 , a, L) (q2 , b) = (q1 , b, L) (q2 , b) = (q1 , b, L)

Estudiemos el c omputo que realiza esta MT: q1 abw . . . q1 abw aq2 bw q1 abw aq2 bw . . . Esta MT nunca para Podr amos decir que entra en un bucle innito La situaci on se representa (q, w1 aw2 ) O bien: w1 qaw2
F. de Sande () M aquinas de Turing 20112012 10 / 90

MT como aceptores de lenguajes

Sea M una MT M (Q, , , q0 , b, F, )

Denici on: Lenguaje aceptado por M


L(M ) = {w | q0 w

w1 pw2 para p F, wi }

F. de Sande ()

M aquinas de Turing

20112012

11 / 90

MT como aceptores de lenguajes

Sea M una MT M (Q, , , q0 , b, F, )

Denici on: Lenguaje aceptado por M


L(M ) = {w | q0 w w1 pw2 para p F, wi } Una cadena w es aceptada si M alcanza un estado de aceptaci on p y para Nota: hemos supuesto que una MT siempre para al alcanzar un estado de aceptaci on, puesto que no denimos transiciones en los estados p F

F. de Sande ()

M aquinas de Turing

20112012

11 / 90

MT versus AF

Una MT puede leer o escribir informaci on de la cinta, un AF s olo puede leer su entrada La cabeza de lectura/escritura puede moverse a izquierda o derecha, un AF lee s mbolos en una sola direcci on La cinta de una MT es innita, la entrada en un AF es nita Los estados en los que una MT acepta o rechaza toman efecto inmediatamente, un AF debe consumir toda su entrada para terminar su c omputo

F. de Sande ()

M aquinas de Turing

20112012

12 / 90

Una TM que reconoce cadenas de as


Dise nemos una MT M tal que L(M ) = L[a] sobre {a, b}
M ser a M (Q, , , q0 , b, F, ) con:

F. de Sande ()

M aquinas de Turing

20112012

13 / 90

Una TM que reconoce cadenas de as


Dise nemos una MT M tal que L(M ) = L[a] sobre {a, b}
M ser a M (Q, , , q0 , b, F, ) con: Q = {q1 , q2 } = {a, b} = {a, b, b} F = { q2 } q0 = q1 (q1 , a) = (q1 , a, R) (q1 , b) = (q2 , b, R)

F. de Sande ()

M aquinas de Turing

20112012

13 / 90

Una TM que reconoce cadenas de as


Dise nemos una MT M tal que L(M ) = L[a] sobre {a, b}
M ser a M (Q, , , q0 , b, F, ) con: Q = {q1 , q2 } = {a, b} = {a, b, b} F = { q2 } q0 = q1 Hay dos posibilidades para rechazar una cadena w :
1

(q1 , a) = (q1 , a, R) (q1 , b) = (q2 , b, R)

M para en un estado que no es de aceptaci on

F. de Sande ()

M aquinas de Turing

20112012

13 / 90

Una TM que reconoce cadenas de as


Dise nemos una MT M tal que L(M ) = L[a] sobre {a, b}
M ser a M (Q, , , q0 , b, F, ) con: Q = {q1 , q2 } = {a, b} = {a, b, b} F = { q2 } q0 = q1 Hay dos posibilidades para rechazar una cadena w :
1 2

(q1 , a) = (q1 , a, R) (q1 , b) = (q2 , b, R)

M para en un estado que no es de aceptaci on M no para nunca (entrando en un bucle innito)

F. de Sande ()

M aquinas de Turing

20112012

13 / 90

Una TM que reconoce cadenas de as


Dise nemos otra MT M tal que L(M ) = L[a] sobre {a, b}
M ser a M (Q, , , q0 , b, F, ) con: Q = {q1 , q2 , q3 } = {a, b} = {a, b, b} F = { q3 } q0 = q1 (q1 , a) = (q1 , a, R) (q1 , b) = (q2 , b, R) (q1 , b) = (q3 , b, R) (q2 , a) = (q2 , a, R) (q2 , b) = (q2 , b, R) (q2 , b) = (q2 , b, R)

F. de Sande ()

M aquinas de Turing

20112012

14 / 90

Una TM que reconoce cadenas de as


Dise nemos otra MT M tal que L(M ) = L[a] sobre {a, b}
M ser a M (Q, , , q0 , b, F, ) con: Q = {q1 , q2 , q3 } = {a, b} = {a, b, b} F = { q3 } q0 = q1 (q1 , a) = (q1 , a, R) (q1 , b) = (q2 , b, R) (q1 , b) = (q3 , b, R) (q2 , a) = (q2 , a, R) (q2 , b) = (q2 , b, R) (q2 , b) = (q2 , b, R)

Si esta TM lee un s mbolo b, pasa al estado q2 donde se mueve indenidamente hacia la derecha

F. de Sande ()

M aquinas de Turing

20112012

14 / 90

Una TM que reconoce un CFL


Dise nemos otra MT M tal que L(M ) = {an bn |n 1}
M ser a M (Q, , , q0 , b, F, )

F. de Sande ()

M aquinas de Turing

20112012

15 / 90

Una TM que reconoce un CFL


Dise nemos otra MT M tal que L(M ) = {an bn |n 1}
M ser a M (Q, , , q0 , b, F, ) M cambia la primera a por c. Se desplaza hacia la derecha hasta hallar la 1a b y la cambia por d Se mueve a la izquierda hasta posicionarse en la u ltima c (la m as a la derecha): (q1 , a) = (q2 , c, R) (q2 , a) = (q2 , a, R) (q2 , d) = (q2 , d, R) (q2 , b) = (q3 , d, L)

F. de Sande ()

M aquinas de Turing

20112012

15 / 90

Una TM que reconoce un CFL


Dise nemos otra MT M tal que L(M ) = {an bn |n 1}
M ser a M (Q, , , q0 , b, F, ) M cambia la primera a por c. Se desplaza hacia la derecha hasta hallar la 1a b y la cambia por d Se mueve a la izquierda hasta posicionarse en la u ltima c (la m as a la derecha): (q1 , a) = (q2 , c, R) (q2 , a) = (q2 , a, R) Para retroceder hacia la izquierda: (q3 , d) = (q3 , d, L) (q2 , d) = (q2 , d, R) (q2 , b) = (q3 , d, L)

F. de Sande ()

M aquinas de Turing

20112012

15 / 90

Una TM que reconoce un CFL


Dise nemos otra MT M tal que L(M ) = {an bn |n 1}
M ser a M (Q, , , q0 , b, F, ) M cambia la primera a por c. Se desplaza hacia la derecha hasta hallar la 1a b y la cambia por d Se mueve a la izquierda hasta posicionarse en la u ltima c (la m as a la derecha): (q1 , a) = (q2 , c, R) (q2 , a) = (q2 , a, R) Para retroceder hacia la izquierda: (q3 , d) = (q3 , d, L) (q3 , a) = (q3 , a, L) (q2 , d) = (q2 , d, R) (q2 , b) = (q3 , d, L)

F. de Sande ()

M aquinas de Turing

20112012

15 / 90

Una TM que reconoce un CFL


Dise nemos otra MT M tal que L(M ) = {an bn |n 1}
M ser a M (Q, , , q0 , b, F, ) M cambia la primera a por c. Se desplaza hacia la derecha hasta hallar la 1a b y la cambia por d Se mueve a la izquierda hasta posicionarse en la u ltima c (la m as a la derecha): (q1 , a) = (q2 , c, R) (q2 , a) = (q2 , a, R) Para retroceder hacia la izquierda: (q3 , d) = (q3 , d, L) (q3 , a) = (q3 , a, L) (q3 , c) = (q1 , c, R) (q2 , d) = (q2 , d, R) (q2 , b) = (q3 , d, L)

F. de Sande ()

M aquinas de Turing

20112012

15 / 90

Una TM que reconoce un CFL


Si se acaban los s mbolos a, M estar a situada sobre un s mbolo d en el estado q1 . Basta ahora comprobar que todos los s mbolos b han sido sustitu dos por ds: (q1 , d) = (q4 , d, R)

F. de Sande ()

M aquinas de Turing

20112012

16 / 90

Una TM que reconoce un CFL


Si se acaban los s mbolos a, M estar a situada sobre un s mbolo d en el estado q1 . Basta ahora comprobar que todos los s mbolos b han sido sustitu dos por ds: (q1 , d) = (q4 , d, R) (q4 , d) = (q4 , d, R)

F. de Sande ()

M aquinas de Turing

20112012

16 / 90

Una TM que reconoce un CFL


Si se acaban los s mbolos a, M estar a situada sobre un s mbolo d en el estado q1 . Basta ahora comprobar que todos los s mbolos b han sido sustitu dos por ds: (q1 , d) = (q4 , d, R) (q4 , d) = (q4 , d, R) (q4 , b) = (q5 , b, L)

F. de Sande ()

M aquinas de Turing

20112012

16 / 90

Una TM que reconoce un CFL


Si se acaban los s mbolos a, M estar a situada sobre un s mbolo d en el estado q1 . Basta ahora comprobar que todos los s mbolos b han sido sustitu dos por ds: (q1 , d) = (q4 , d, R) (q4 , d) = (q4 , d, R) (q4 , b) = (q5 , b, L)

F. de Sande ()

M aquinas de Turing

20112012

16 / 90

Una TM que reconoce un CFL


Si se acaban los s mbolos a, M estar a situada sobre un s mbolo d en el estado q1 . Basta ahora comprobar que todos los s mbolos b han sido sustitu dos por ds: (q1 , d) = (q4 , d, R) (q4 , d) = (q4 , d, R) (q4 , b) = (q5 , b, L) El resto de componentes de M se denen como: Q = {q1 , q2 , q3 , q4 , q5 } = {a, b} = {a, b, c, d, b} F = { q5 } q0 = q1

F. de Sande ()

M aquinas de Turing

20112012

16 / 90

Diagramas de Transiciones para MT

Una MT M (Q, , , q0 , b, F, ) puede ser representada gr acamente mediante un diagrama de transiciones


Una transici on (qi , x) = (qj , y, T ) con T {L, R} se representa mediante el diagrama:

F. de Sande ()

M aquinas de Turing

20112012

17 / 90

Diagramas de Transiciones para MT

Una MT M (Q, , , q0 , b, F, ) puede ser representada gr acamente mediante un diagrama de transiciones


Una transici on (qi , x) = (qj , y, T ) con T {L, R} se representa mediante el diagrama: x/y, T qj qi

F. de Sande ()

M aquinas de Turing

20112012

17 / 90

Diagramas de Transiciones para MT

Una MT M (Q, , , q0 , b, F, ) puede ser representada gr acamente mediante un diagrama de transiciones


Una transici on (qi , x) = (qj , y, T ) con T {L, R} se representa mediante el diagrama: x/y, T qj qi El estado de arranque de M se indica tal como se hace con los diagramas de transiciones de AFs Los estados de aceptaci on se representan usando doble trazo

F. de Sande ()

M aquinas de Turing

20112012

17 / 90

Diagramas de Transiciones para MT

MT que reconoce L = {an bn |n 1}

F. de Sande ()

M aquinas de Turing

20112012

18 / 90

Diagramas de Transiciones para MT

MT que reconoce L = {an bn |n 1}


q1 q2 q3 q4 a q2 , c, R q2 , a, R q3 , a, L b q3 , d, L q1 , c, R c d q4 , d, R q2 , d, R q3 , d, L q4 , d, R b

q5 , b, L

F. de Sande ()

M aquinas de Turing

20112012

18 / 90

Diagramas de Transiciones para MT


Veamos el diagrama de la MT que reconoce L = {an bn |n 1}

F. de Sande ()

M aquinas de Turing

20112012

19 / 90

Diagramas de Transiciones para MT


Veamos el diagrama de la MT que reconoce L = {an bn |n 1}
start q1 a/c, R q2 a/a, R d/d, R d/d, R c/c, R q4 q3 a/a, L d/d, L b/ b, L b/d, L

q5
F. de Sande () M aquinas de Turing 20112012 19 / 90

Lenguajes reconocidos por MT


Denici on: Lenguaje Recursivamente Enumerable (LRE)
Un Lenguaje L se dice que es Recursivamente Enumerable si existe una MT M (Q, , , q0 , b, F, ) tal que L = L(M )

F. de Sande ()

M aquinas de Turing

20112012

20 / 90

Lenguajes reconocidos por MT


Denici on: Lenguaje Recursivamente Enumerable (LRE)
Un Lenguaje L se dice que es Recursivamente Enumerable si existe una MT M (Q, , , q0 , b, F, ) tal que L = L(M )

Denici on: Lenguaje Recursivo (LREC)


Un lenguaje L es recursivo si existe al menos una MT que reconoce las cadenas de L y para con toda cadena de entrada. Los Lenguajes Recursivos son un subconjunto de los Lenguajes Recursivamente Enumerables

F. de Sande ()

M aquinas de Turing

20112012

20 / 90

Lenguajes reconocidos por MT


Denici on: Lenguaje Recursivamente Enumerable (LRE)
Un Lenguaje L se dice que es Recursivamente Enumerable si existe una MT M (Q, , , q0 , b, F, ) tal que L = L(M )

Denici on: Lenguaje Recursivo (LREC)


Un lenguaje L es recursivo si existe al menos una MT que reconoce las cadenas de L y para con toda cadena de entrada. Los Lenguajes Recursivos son un subconjunto de los Lenguajes Recursivamente Enumerables T engase en cuenta que para que una MT reconozca un lenguaje no necesita parar sobre cualquier cadena de entrada; basta que pare en un estado q F para aquellas cadenas w L

F. de Sande ()

M aquinas de Turing

20112012

20 / 90

Lenguajes reconocidos por MT


Denici on: Lenguaje Recursivamente Enumerable (LRE)
Un Lenguaje L se dice que es Recursivamente Enumerable si existe una MT M (Q, , , q0 , b, F, ) tal que L = L(M )

Denici on: Lenguaje Recursivo (LREC)


Un lenguaje L es recursivo si existe al menos una MT que reconoce las cadenas de L y para con toda cadena de entrada. Los Lenguajes Recursivos son un subconjunto de los Lenguajes Recursivamente Enumerables T engase en cuenta que para que una MT reconozca un lenguaje no necesita parar sobre cualquier cadena de entrada; basta que pare en un estado q F para aquellas cadenas w L Si un L es un LREC, existe al menos una MT M tal que, si le pasamos a M una w L, entonces M para y acepta w. Si le pasamos una w L, entonces M para y rechaza w M siempre para.
F. de Sande () M aquinas de Turing 20112012 20 / 90

MT como transformador de cadenas


Una MT tiene la capacidad de transformar una cadena de entrada (secuencia de s mbolos sobre su cinta) en una cadena de salida (secuencia resultante al nalizar el c omputo) por ello a las MT se les considera un modelo abstracto de computador

F. de Sande ()

M aquinas de Turing

20112012

21 / 90

MT como transformador de cadenas


Una MT tiene la capacidad de transformar una cadena de entrada (secuencia de s mbolos sobre su cinta) en una cadena de salida (secuencia resultante al nalizar el c omputo) por ello a las MT se les considera un modelo abstracto de computador

Ejemplo: una MT que complementa cadenas de {a, b}


M (Q, , , q0 , b, F, ) se dene como: Q = {q1 , q2 , q3 } = {a, b} = {a, b, b} F = { q3 } q0 = q1

F. de Sande ()

M aquinas de Turing

20112012

21 / 90

MT como transformador de cadenas


Una MT tiene la capacidad de transformar una cadena de entrada (secuencia de s mbolos sobre su cinta) en una cadena de salida (secuencia resultante al nalizar el c omputo) por ello a las MT se les considera un modelo abstracto de computador

Ejemplo: una MT que complementa cadenas de {a, b}


M (Q, , , q0 , b, F, ) se dene como: Q = {q1 , q2 , q3 } = {a, b} = {a, b, b} a b q1 q1 , b, R q1 , a, R q2 q2 , a, L q2 , b, L a si ai = b bi = b si ai = a
F. de Sande ()

F = { q3 } q0 = q1 b q2 , b, L (q1 , a1 a2 . . . an ) q3 , b, R

(q3 , b1 b2 . . . bn )

M aquinas de Turing

20112012

21 / 90

MT como transformador de cadenas


Ejemplo: una MT que complementa cadenas de {a, b}
M (Q, , , q0 , b, F, ) se dene como: a b b q1 q1 , b, R q1 , a, R q2 , b, L (q1 , a1 a2 . . . an ) q2 q2 , a, L q2 , b, L q3 , b, R a si ai = b bi = b si ai = a a/b, R b/a, R start q1 b/ b, L q2 a/a, L b/b, L b/ b, R q3

(q3 , b1 b2 . . . bn )

F. de Sande ()

M aquinas de Turing

20112012

22 / 90

Funciones Turing computables

Denici on
Una funci on de cadena es una funci on f :

Denici on
Se dice que una funci on de cadena es Turing computable (o computable) si una MT M (Q, , , q0 , b, F, ) para la cual q0 w qf u para alg un qf F cuando f (w) = u

F. de Sande ()

M aquinas de Turing

20112012

23 / 90

Funciones Turing computables: ejemplo


Esta denici on se puede extender f acilmente a funciones integrables:

Ejemplo
Supongamos = {a, b} y representemos los n Z+ por cadenas de s mbolos a n Z+ se representar a con la cadena an La funci on suma f (n, m) = n + m se puede implementar mediante la transformaci on de an bam en an+m b: a b b q1 q1 , a, R q2 , a, R q2 q2 , a, R q3 , b, L q3 q4 , b, L q4 q4 , a, L q5 , b, R Esta MT desplaza el s mbolo b hacia la derecha, despu es de an+m Cuando termina, la MT sit ua su cabeza de L/E sobre el s mbolo a situado m as a la izquierda
F. de Sande () M aquinas de Turing 20112012 24 / 90

Funciones Turing computables: ejemplo

Ejemplo
q1 q2 q3 q4 a q1 , a, R q2 , a, R q4 , b, L q4 , a, L b q2 , a, R b q3 , b, L q5 , b, R a/a, R start q1 b/a, R q2 a/a, R b/ b, L q3 a/b, L q4 a/a, L b/ b, R

F. de Sande ()

M aquinas de Turing

20112012

25 / 90

Combinaci on de MTs
Consideremos una MT M1 Rb :
q1 q2 q3 a q2 , a, R q2 , a, R q4 , a, R b q2 , b, R q3 , b, L q4 , b, R

F. de Sande ()

M aquinas de Turing

20112012

26 / 90

Combinaci on de MTs
Consideremos una MT M1 Rb :
a q1 q2 , a, R q2 , q2 q2 , a, R q3 , q3 q4 , a, R q4 , Rb Busca el primer cabeza L/E b b, R b, L b, R s mbolo b a la derecha de la posici on inicial de su

Consideremos otra MT M2 a:
p1 a p2 , a, R b p2 , a, R

F. de Sande ()

M aquinas de Turing

20112012

26 / 90

Combinaci on de MTs
Consideremos una MT M1 Rb :
a q1 q2 , a, R q2 , q2 q2 , a, R q3 , q3 q4 , a, R q4 , Rb Busca el primer cabeza L/E b b, R b, L b, R s mbolo b a la derecha de la posici on inicial de su

Consideremos otra MT M2 a:
a b p1 p2 , a, R p2 , a, R La m aquina a escribe un s mbolo a y para

F. de Sande ()

M aquinas de Turing

20112012

26 / 90

Combinaci on de MTs
Consideremos una MT M1 Rb :
a q1 q2 , a, R q2 , q2 q2 , a, R q3 , q3 q4 , a, R q4 , Rb Busca el primer cabeza L/E b b, R b, L b, R s mbolo b a la derecha de la posici on inicial de su

Consideremos otra MT M2 a:
a b p1 p2 , a, R p2 , a, R La m aquina a escribe un s mbolo a y para Al combinar M1 y M2 de modo que una computaci on de M1 vaya seguida de una de M2 obtendremos una MT que busca el primer s mbolo b a la derecha de la posici on inicial de su cabeza L/E y lo sustituye por una a La MT compuesta la representaremos como M1 M2 (o bien Rb a)
F. de Sande () M aquinas de Turing 20112012 26 / 90

Combinaci on de MTs
Sean M1 y M2 dos MT sobre el mismo y con el mismo y con Q1 Q2 = M1 (Q1 , , , q01 , b, F1 , 1 ) M2 (Q2 , , , q02 , b, F2 , 2 )

Denici on
Denimos la combinaci on de M1 y M2 como M1 M2 (Q, , , q0 , b, F, ) Con Q = Q1 Q2 q0 = q01 F = F2 (q, a) = si q Q1 y 1 (q, a) = (p, t, X ) p F1 1 (q, a) (q02 , t, X ) si q Q1 y 1 (q, a) = (p, t, X )para alg un p F1 2 (q, a) si q Q2

F. de Sande ()

M aquinas de Turing

20112012

27 / 90

Combinaci on de MTs
Sean M1 y M2 dos MT sobre el mismo y con el mismo y con Q1 Q2 = M1 (Q1 , , , q01 , b, F1 , 1 ) M2 (Q2 , , , q02 , b, F2 , 2 )

Denici on
Denimos la combinaci on de M1 y M2 como M1 M2 (Q, , , q0 , b, F, ) Con Q = Q1 Q2 q0 = q01 F = F2 (q, a) = si q Q1 y 1 (q, a) = (p, t, X ) p F1 1 (q, a) (q02 , t, X ) si q Q1 y 1 (q, a) = (p, t, X )para alg un p F1 2 (q, a) si q Q2 M1 M2 se comporta como M1 hasta que alcanza un estado de F1 . En ese momento, cambia al estado q02 y se comporta como M2 hasta el nal del c omputo.
F. de Sande () M aquinas de Turing 20112012 27 / 90

MT con posibilidad de no moverse

Originalmente hemos denido: : Q Q {L, R}

F. de Sande ()

M aquinas de Turing

20112012

28 / 90

MT con posibilidad de no moverse

Originalmente hemos denido: : Q Q {L, R} De forma alternativa podr amos denir: : Q Q {L, R, S }

F. de Sande ()

M aquinas de Turing

20112012

28 / 90

MT con posibilidad de no moverse

Originalmente hemos denido: : Q Q {L, R} De forma alternativa podr amos denir: : Q Q {L, R, S }

F. de Sande ()

M aquinas de Turing

20112012

28 / 90

MT con posibilidad de no moverse

Originalmente hemos denido: : Q Q {L, R} De forma alternativa podr amos denir: : Q Q {L, R, S } En este caso, la MT tiene la posibilidad de no mover su cabeza de L/E en cada paso de c omputo Este tipo de MT se puede simular por una MT tal como la denimos originalmente

F. de Sande ()

M aquinas de Turing

20112012

28 / 90

MT con m ultiples pistas


En una MT con m ultiples pistas, cada celda no contiene un u nico s mbolo, sino un vector de s mbolos : Q k Q k {L, R} En cada movimiento, la MT lee un vector de s mbolos, cambia de estado, escribe un nuevo vector y mueve su cabeza de L/E

F. de Sande ()

M aquinas de Turing

20112012

29 / 90

MT multipista para sumar n umeros en binario

(q1 , a) =

(q1 , a, R) (q2 , a, L)

si a = ( b b b) si a = ( b b b) (q3 , (0, 0, b)) = (q2 , (0, 0, 1), L) (q3 , (0, 1, b)) = (q3 , (0, 1, 0), L) (q3 , (1, 0, b)) = (q3 , (1, 0, 0), L) (q3 , (1, 1, b)) = (q3 , (1, 1, 1), L) (q3 , ( b, b, b)) = (q4 , ( b, b, 1), L)
20112012 30 / 90

(q2 , (0, 0, b)) = (q2 , (0, 0, 0), L) (q2 , (0, 1, b)) = (q2 , (0, 1, 1), L) (q2 , (1, 0, b)) = (q2 , (1, 0, 1), L) (q2 , (1, 1, b)) = (q3 , (1, 1, 0), L) (q2 , ( b, b, b)) = (q4 , ( b, b, 0), L)
F. de Sande ()

M aquinas de Turing

MT con cinta innita s olo en un sentido

En este caso, la cinta de la MT se extiende innitamente s olo en un sentido (izquierda o derecha)


En este caso no est a permitido realizar ning un movimiento hacia la izquierda (derecha) del l mite de la cinta

F. de Sande ()

M aquinas de Turing

20112012

31 / 90

MT multi-cinta
La MT tiene varias cintas, cada una con su cabeza de L/E
En un solo movimiento, la MT
1

Cambia de estado, dependiendo del estado actual y del contenido de todas las cintas

F. de Sande ()

M aquinas de Turing

20112012

32 / 90

MT multi-cinta
La MT tiene varias cintas, cada una con su cabeza de L/E
En un solo movimiento, la MT
1

Cambia de estado, dependiendo del estado actual y del contenido de todas las cintas Escribe un nuevo s mbolo en cada una de sus cintas

F. de Sande ()

M aquinas de Turing

20112012

32 / 90

MT multi-cinta
La MT tiene varias cintas, cada una con su cabeza de L/E
En un solo movimiento, la MT
1

Cambia de estado, dependiendo del estado actual y del contenido de todas las cintas Escribe un nuevo s mbolo en cada una de sus cintas Mueve cada cabeza de L/E a izquierda o derecha ({L, R}) de forma independiente

2 3

F. de Sande ()

M aquinas de Turing

20112012

32 / 90

MT multi-cinta
La MT tiene varias cintas, cada una con su cabeza de L/E
En un solo movimiento, la MT
1

Cambia de estado, dependiendo del estado actual y del contenido de todas las cintas Escribe un nuevo s mbolo en cada una de sus cintas Mueve cada cabeza de L/E a izquierda o derecha ({L, R}) de forma independiente

2 3

F. de Sande ()

M aquinas de Turing

20112012

32 / 90

MT multi-cinta
La MT tiene varias cintas, cada una con su cabeza de L/E
En un solo movimiento, la MT
1

Cambia de estado, dependiendo del estado actual y del contenido de todas las cintas Escribe un nuevo s mbolo en cada una de sus cintas Mueve cada cabeza de L/E a izquierda o derecha ({L, R}) de forma independiente

2 3

Para una MT con n cintas: : Q n Q n {L, R}n (q, (a1 , a2 , . . . , an )) = (p, (b1 , b2 , . . . , bn ), (X1 , X2 , . . . , Xn )) Este tipo de MT se puede simular por una MT tal como la denimos originalmente

F. de Sande ()

M aquinas de Turing

20112012

32 / 90

MT multicinta: ejemplo

Una MT con 2 cintas que reconoce L = {an bn |n 1}


(q1 , (a, b)) = (q1 , (a, a), (R, R)) Mientras ve s mbolos a las deja a a en la 1 cinta y las copia en la 2

F. de Sande ()

M aquinas de Turing

20112012

33 / 90

MT multicinta: ejemplo

Una MT con 2 cintas que reconoce L = {an bn |n 1}


(q1 , (a, b)) = (q1 , (a, a), (R, R)) Mientras ve s mbolos a las deja a a en la 1 cinta y las copia en la 2 (q1 , (b, b)) = (q2 , (b, b), (S, L)) Cuando ve la 1a b la deja en la cinta 1 y se mueve L en la cinta 2

F. de Sande ()

M aquinas de Turing

20112012

33 / 90

MT multicinta: ejemplo

Una MT con 2 cintas que reconoce L = {an bn |n 1}


(q1 , (a, b)) = (q1 , (a, a), (R, R)) Mientras ve s mbolos a las deja a a en la 1 cinta y las copia en la 2 (q1 , (b, b)) = (q2 , (b, b), (S, L)) Cuando ve la 1a b la deja en la cinta 1 y se mueve L en la cinta 2 (q2 , (b, a)) = (q2 , (b, a), (R, L)) Trata de emparejar las b de la 1a cinta con las a de la 2a avanzando R L

F. de Sande ()

M aquinas de Turing

20112012

33 / 90

MT multicinta: ejemplo

Una MT con 2 cintas que reconoce L = {an bn |n 1}


(q1 , (a, b)) = (q1 , (a, a), (R, R)) Mientras ve s mbolos a las deja a a en la 1 cinta y las copia en la 2 (q1 , (b, b)) = (q2 , (b, b), (S, L)) Cuando ve la 1a b la deja en la cinta 1 y se mueve L en la cinta 2 (q2 , (b, a)) = (q2 , (b, a), (R, L)) Trata de emparejar las b de la 1a cinta con las a de la 2a avanzando R L (q2 , ( b, b)) = (q3 , ( b, b), (R, L)) Cuando ve ( b, b) pasa a q3 y acaba

F. de Sande ()

M aquinas de Turing

20112012

33 / 90

MT con cinta multidimensional

En este caso la cinta de la MT es N-dimensional Una posibilidad ser a una cinta bidimensional, que se extiende innitamente hacia la izquierda, derecha, arriba y abajo, de modo que la funci on de transici on estar a denida: delta : Q Q {L, R, U, D} La dimensionalidad de la cinta (N ) puede ser cualquiera N (N )

F. de Sande ()

M aquinas de Turing

20112012

34 / 90

MT no determinista

En cada paso de un c omputo, una MT no determinista puede evolucionar siguiendo diferentes posibilidades. La funci on de transici on de una MT no determinista tiene la forma: : Q 2Q{L,R}

Ejemplo
Si tuvi eramos la denici on: (q, a) = {(q1 , b, R), (q2 , a, L)} Podr amos tener el movimiento (q1 , abbab) (q1 , abbbb) y tambi en: (q1 , abbab) (q2 , abbab)

F. de Sande ()

M aquinas de Turing

20112012

35 / 90

Modicaciones de la MT

Todas las variantes que hemos introducido con respecto a la MT tal como se deni o originalmente se puede demostrar que tienen la misma capacidad de c omputo que la MT original
Todo c omputo que pueda realizarse con una MT de la forma original puede ser tambi en realizado por cualquiera de las variantes Alternativamente, si un c omputo puede realizarse con cualquiera de las variantes, tambi en puede ser llevado a cabo por una MT denida de la forma original Si una de las variantes resulta m as adecuada para resolver un determinado problema, se puede utilizar

F. de Sande ()

M aquinas de Turing

20112012

36 / 90

M aquina de Turing Universal

Denici on: una MT Universal (MU ) es una MT que, a partir de una descripci on adecuada de una MT (M ) y una cadena de entrada (w ), simula el comportamiento de M ante la cadena w

F. de Sande ()

M aquinas de Turing

20112012

37 / 90

M aquina de Turing Universal

Denici on: una MT Universal (MU ) es una MT que, a partir de una descripci on adecuada de una MT (M ) y una cadena de entrada (w ), simula el comportamiento de M ante la cadena w Veamos a continuaci on c omo podemos describir una MT arbitraria: M (Q, , , q0 , b, F, ) puesto que esta ser a una de las dos entradas (M, w) para la MU
Codicaremos M utilizando un alfabeto = {0, 1} estableciendo algunos convenios:

F. de Sande ()

M aquinas de Turing

20112012

37 / 90

M aquina de Turing Universal


Codicaci on de una MT arbitraria: M (Q, , , q0 , b, F, ):
1

Haremos que |F | = 1 (siempre se puede conseguir) y supondremos que Q = {q1 , q2 , . . . , qn } siendo q0 = q1 y F = {qn }

F. de Sande ()

M aquinas de Turing

20112012

38 / 90

M aquina de Turing Universal


Codicaci on de una MT arbitraria: M (Q, , , q0 , b, F, ):
1

Haremos que |F | = 1 (siempre se puede conseguir) y supondremos que Q = {q1 , q2 , . . . , qn } siendo q0 = q1 y F = {qn } Supondremos = {a1 , a2 , . . . , am } siendo a1 = b

F. de Sande ()

M aquinas de Turing

20112012

38 / 90

M aquina de Turing Universal


Codicaci on de una MT arbitraria: M (Q, , , q0 , b, F, ):
1

Haremos que |F | = 1 (siempre se puede conseguir) y supondremos que Q = {q1 , q2 , . . . , qn } siendo q0 = q1 y F = {qn } Supondremos = {a1 , a2 , . . . , am } siendo a1 = b Representaremos qi mediante 1i (p. ej. q5 = 11111)

2 3

F. de Sande ()

M aquinas de Turing

20112012

38 / 90

M aquina de Turing Universal


Codicaci on de una MT arbitraria: M (Q, , , q0 , b, F, ):
1

Haremos que |F | = 1 (siempre se puede conseguir) y supondremos que Q = {q1 , q2 , . . . , qn } siendo q0 = q1 y F = {qn } Supondremos = {a1 , a2 , . . . , am } siendo a1 = b Representaremos qi mediante 1i (p. ej. q5 = 11111) Representaremos ai mediante 1i (p. ej. a3 = 111)

2 3 4

F. de Sande ()

M aquinas de Turing

20112012

38 / 90

M aquina de Turing Universal


Codicaci on de una MT arbitraria: M (Q, , , q0 , b, F, ):
1

Haremos que |F | = 1 (siempre se puede conseguir) y supondremos que Q = {q1 , q2 , . . . , qn } siendo q0 = q1 y F = {qn } Supondremos = {a1 , a2 , . . . , am } siendo a1 = b Representaremos qi mediante 1i (p. ej. q5 = 11111) Representaremos ai mediante 1i (p. ej. a3 = 111) Representaremos L = 1 y R = 11

2 3 4 5

F. de Sande ()

M aquinas de Turing

20112012

38 / 90

M aquina de Turing Universal


Codicaci on de una MT arbitraria: M (Q, , , q0 , b, F, ):
1

Haremos que |F | = 1 (siempre se puede conseguir) y supondremos que Q = {q1 , q2 , . . . , qn } siendo q0 = q1 y F = {qn } Supondremos = {a1 , a2 , . . . , am } siendo a1 = b Representaremos qi mediante 1i (p. ej. q5 = 11111) Representaremos ai mediante 1i (p. ej. a3 = 111) Representaremos L = 1 y R = 11 Utilizando el s mbolo 0 como separador podemos representar: (q2 , a3 ) = (q3 , a2 , R) como: 011011101110110110 (q5 , a1 ) = (q2 , a3, L) como: 1111101011011101 De este modo podemos especicar completamente la funci on de M

2 3 4 5 6

F. de Sande ()

M aquinas de Turing

20112012

38 / 90

M aquina de Turing Universal


Codicaci on de una MT arbitraria: M (Q, , , q0 , b, F, ):
1

Haremos que |F | = 1 (siempre se puede conseguir) y supondremos que Q = {q1 , q2 , . . . , qn } siendo q0 = q1 y F = {qn } Supondremos = {a1 , a2 , . . . , am } siendo a1 = b Representaremos qi mediante 1i (p. ej. q5 = 11111) Representaremos ai mediante 1i (p. ej. a3 = 111) Representaremos L = 1 y R = 11 Utilizando el s mbolo 0 como separador podemos representar: (q2 , a3 ) = (q3 , a2 , R) como: 011011101110110110 (q5 , a1 ) = (q2 , a3, L) como: 1111101011011101 De este modo podemos especicar completamente la funci on de M

2 3 4 5 6

F. de Sande ()

M aquinas de Turing

20112012

38 / 90

M aquina de Turing Universal


Codicaci on de una MT arbitraria: M (Q, , , q0 , b, F, ):
1

Haremos que |F | = 1 (siempre se puede conseguir) y supondremos que Q = {q1 , q2 , . . . , qn } siendo q0 = q1 y F = {qn } Supondremos = {a1 , a2 , . . . , am } siendo a1 = b Representaremos qi mediante 1i (p. ej. q5 = 11111) Representaremos ai mediante 1i (p. ej. a3 = 111) Representaremos L = 1 y R = 11 Utilizando el s mbolo 0 como separador podemos representar: (q2 , a3 ) = (q3 , a2 , R) como: 011011101110110110 (q5 , a1 ) = (q2 , a3, L) como: 1111101011011101 De este modo podemos especicar completamente la funci on de M Una MT arbitraria M tiene una codicaci on representada por una cadena de ceros y unos de longitud nita Dada una codicaci on, podemos decodicarla un vocamente
F. de Sande () M aquinas de Turing 20112012 38 / 90

2 3 4 5 6

M aquina de Turing Universal

Implementaci on: MU se puede implementar como una MT con 3 cintas cuyo alfabeto contenga {0, 1}:
1

La primera cinta (C1) contiene la codicaci on de M y tiene su cabeza de L/E situada sobre el primer 0 de la codicaci on

F. de Sande ()

M aquinas de Turing

20112012

39 / 90

M aquina de Turing Universal

Implementaci on: MU se puede implementar como una MT con 3 cintas cuyo alfabeto contenga {0, 1}:
1

La primera cinta (C1) contiene la codicaci on de M y tiene su cabeza de L/E situada sobre el primer 0 de la codicaci on La segunda cinta (C2) contiene la codicaci on (con {0, 1}) del contenido de la cinta de M , con la cabeza de L/E situada sobre el primer 1 del s mbolo actual

F. de Sande ()

M aquinas de Turing

20112012

39 / 90

M aquina de Turing Universal

Implementaci on: MU se puede implementar como una MT con 3 cintas cuyo alfabeto contenga {0, 1}:
1

La primera cinta (C1) contiene la codicaci on de M y tiene su cabeza de L/E situada sobre el primer 0 de la codicaci on La segunda cinta (C2) contiene la codicaci on (con {0, 1}) del contenido de la cinta de M , con la cabeza de L/E situada sobre el primer 1 del s mbolo actual La tercera cinta almacena el estado actual de M e inicialmente contiene: b b . . . b1 b . . . b es decir, est a en q0

F. de Sande ()

M aquinas de Turing

20112012

39 / 90

M aquina de Turing Universal

Implementaci on de MU
El modo de funcionamiento de MU es el siguiente:

F. de Sande ()

M aquinas de Turing

20112012

40 / 90

M aquina de Turing Universal

Implementaci on de MU
El modo de funcionamiento de MU es el siguiente:
1

MU analiza y compara el contenido de las cintas C2 y C3 (s mbolo y estado)

F. de Sande ()

M aquinas de Turing

20112012

40 / 90

M aquina de Turing Universal

Implementaci on de MU
El modo de funcionamiento de MU es el siguiente:
1

MU analiza y compara el contenido de las cintas C2 y C3 (s mbolo y estado) Busca en C1 una transici on para ese par (s mbolo, estado) hasta encontrarla o nalizar la b usqueda

F. de Sande ()

M aquinas de Turing

20112012

40 / 90

M aquina de Turing Universal

Implementaci on de MU
El modo de funcionamiento de MU es el siguiente:
1

MU analiza y compara el contenido de las cintas C2 y C3 (s mbolo y estado) Busca en C1 una transici on para ese par (s mbolo, estado) hasta encontrarla o nalizar la b usqueda Si no encuentra una transici on, MU para (como lo har a M ), en caso contrario, MU simula M

F. de Sande ()

M aquinas de Turing

20112012

40 / 90

M aquina de Turing Universal

Implementaci on de MU
El modo de funcionamiento de MU es el siguiente:
1

MU analiza y compara el contenido de las cintas C2 y C3 (s mbolo y estado) Busca en C1 una transici on para ese par (s mbolo, estado) hasta encontrarla o nalizar la b usqueda Si no encuentra una transici on, MU para (como lo har a M ), en caso contrario, MU simula M

F. de Sande ()

M aquinas de Turing

20112012

40 / 90

M aquina de Turing Universal

Implementaci on de MU
El modo de funcionamiento de MU es el siguiente:
1

MU analiza y compara el contenido de las cintas C2 y C3 (s mbolo y estado) Busca en C1 una transici on para ese par (s mbolo, estado) hasta encontrarla o nalizar la b usqueda Si no encuentra una transici on, MU para (como lo har a M ), en caso contrario, MU simula M

Si M para ante w, MU parar a cuando tenga como entrada (M, w)

F. de Sande ()

M aquinas de Turing

20112012

40 / 90

M aquina de Turing Universal

Ejercicios

F. de Sande ()

M aquinas de Turing

20112012

41 / 90

M aquina de Turing Universal

Ejercicios
1

Obtener una codicaci on completa para la siguiente MT:


(q1 , a1 ) = (q1 , a1 , R) (q1 , a2 ) = (q3 , a1 , L) (q3 , a1 ) = (q2 , a2 , L)

Dise nar un algoritmo que determine si una cadena w {0, 1}+ representa una codicaci on v alida de una MT

F. de Sande ()

M aquinas de Turing

20112012

41 / 90

Lenguajes regulares, recursivos y recursivamente enumerables


Sea M (Q, , q0 , F, ) un DFA Se puede construir una MT M (Q , , , b, q0 , F , ) tal que L(M ) = L(M )
Q = Q {q } (q Q es un nuevo estado)

F. de Sande ()

M aquinas de Turing

20112012

42 / 90

Lenguajes regulares, recursivos y recursivamente enumerables


Sea M (Q, , q0 , F, ) un DFA Se puede construir una MT M (Q , , , b, q0 , F , ) tal que L(M ) = L(M )
Q = Q {q } (q Q es un nuevo estado) =

F. de Sande ()

M aquinas de Turing

20112012

42 / 90

Lenguajes regulares, recursivos y recursivamente enumerables


Sea M (Q, , q0 , F, ) un DFA Se puede construir una MT M (Q , , , b, q0 , F , ) tal que L(M ) = L(M )
Q = Q {q } (q Q es un nuevo estado) = = { b}

F. de Sande ()

M aquinas de Turing

20112012

42 / 90

Lenguajes regulares, recursivos y recursivamente enumerables


Sea M (Q, , q0 , F, ) un DFA Se puede construir una MT M (Q , , , b, q0 , F , ) tal que L(M ) = L(M )
Q = Q {q } (q Q es un nuevo estado) = = { b} F = {q }

F. de Sande ()

M aquinas de Turing

20112012

42 / 90

Lenguajes regulares, recursivos y recursivamente enumerables


Sea M (Q, , q0 , F, ) un DFA Se puede construir una MT M (Q , , , b, q0 , F , ) tal que L(M ) = L(M )
Q = Q {q } (q Q es un nuevo estado) = = { b} F = {q } (q, a) = ( (q, a), a, R) q Q, a

F. de Sande ()

M aquinas de Turing

20112012

42 / 90

Lenguajes regulares, recursivos y recursivamente enumerables


Sea M (Q, , q0 , F, ) un DFA Se puede construir una MT M (Q , , , b, q0 , F , ) tal que L(M ) = L(M )
Q = Q {q } (q Q es un nuevo estado) = = { b} F = {q } (q, a) = ( (q, a), a, R) q Q, a (q, b) = (q , b, S ) q F

F. de Sande ()

M aquinas de Turing

20112012

42 / 90

Lenguajes regulares, recursivos y recursivamente enumerables


Sea M (Q, , q0 , F, ) un DFA Se puede construir una MT M (Q , , , b, q0 , F , ) tal que L(M ) = L(M )
Q = Q {q } (q Q es un nuevo estado) = = { b} F = {q } (q, a) = ( (q, a), a, R) q Q, a (q, b) = (q , b, S ) q F

F. de Sande ()

M aquinas de Turing

20112012

42 / 90

Lenguajes regulares, recursivos y recursivamente enumerables


Sea M (Q, , q0 , F, ) un DFA Se puede construir una MT M (Q , , , b, q0 , F , ) tal que L(M ) = L(M )
Q = Q {q } (q Q es un nuevo estado) = = { b} F = {q } (q, a) = ( (q, a), a, R) q Q, a (q, b) = (q , b, S ) q F La MT analiza su entrada de izquierda a derecha y con cada s mbolo cambia de estado del mismo modo que lo hace el DFA y acepta la cadena si al llegar al nal de la cadena (encuentra un b) se encuentra en un estado de aceptaci on
F. de Sande () M aquinas de Turing 20112012 42 / 90

Lenguajes regulares y recursivos

Teorema:
Si L es un lenguaje regular, entonces L es un lenguaje recursivo

F. de Sande ()

M aquinas de Turing

20112012

43 / 90

Lenguajes regulares y recursivos

Teorema:
Si L es un lenguaje regular, entonces L es un lenguaje recursivo L = {an bn |n 1} es un lenguaje recursivo (hemos constru do varias MT que lo reconocen) pero sabemos que L no es regular. As pues, hay lenguajes recursivos que no son regulares: LREG LREC

F. de Sande ()

M aquinas de Turing

20112012

43 / 90

CFL, LREC y LRE

Sea M (Q, , , q0 , F, Z, ) un APND Se puede construir una MT M (Q , , , b, q0 , F , ) que emule el comportamiento de M en cuanto se reere a rechazo o aceptaci on de cadenas
Para esta construcci on utilizaremos una MT con 2 cintas: la 1a almacenar a la cadena de entrada, y la 2a almacenar a el contenido de la pila de M La cabeza de L/E de la cinta 2 siempre analizar a el s mbolo del top de la pila Veamos un ejemplo de esta simulaci on de un APND por una MT:

F. de Sande ()

M aquinas de Turing

20112012

44 / 90

Lenguajes recursivos
Teorema
Si L1 y L2 son lenguajes recursivos, entonces L1 L2 tambi en lo es
1

Sean M1 y M2 las MT que reconocen L1 y L2 respectivamente, y que paran ante cualquier cadena

F. de Sande ()

M aquinas de Turing

20112012

45 / 90

Lenguajes recursivos
Teorema
Si L1 y L2 son lenguajes recursivos, entonces L1 L2 tambi en lo es
1

Sean M1 y M2 las MT que reconocen L1 y L2 respectivamente, y que paran ante cualquier cadena Si w L(Mi ), Mi parar a en un estado de aceptaci on

F. de Sande ()

M aquinas de Turing

20112012

45 / 90

Lenguajes recursivos
Teorema
Si L1 y L2 son lenguajes recursivos, entonces L1 L2 tambi en lo es
1

Sean M1 y M2 las MT que reconocen L1 y L2 respectivamente, y que paran ante cualquier cadena Si w L(Mi ), Mi parar a en un estado de aceptaci on Si w L(Mi ), Mi parar a en un estado que no es de aceptaci on

2 3

F. de Sande ()

M aquinas de Turing

20112012

45 / 90

Lenguajes recursivos
Teorema
Si L1 y L2 son lenguajes recursivos, entonces L1 L2 tambi en lo es
1

Sean M1 y M2 las MT que reconocen L1 y L2 respectivamente, y que paran ante cualquier cadena Si w L(Mi ), Mi parar a en un estado de aceptaci on Si w L(Mi ), Mi parar a en un estado que no es de aceptaci on Sea M una MT con 2 cintas. Colocaremos w en la cinta 1 y M har a una copia de ella en la cinta 2

2 3 4

F. de Sande ()

M aquinas de Turing

20112012

45 / 90

Lenguajes recursivos
Teorema
Si L1 y L2 son lenguajes recursivos, entonces L1 L2 tambi en lo es
1

Sean M1 y M2 las MT que reconocen L1 y L2 respectivamente, y que paran ante cualquier cadena Si w L(Mi ), Mi parar a en un estado de aceptaci on Si w L(Mi ), Mi parar a en un estado que no es de aceptaci on Sea M una MT con 2 cintas. Colocaremos w en la cinta 1 y M har a una copia de ella en la cinta 2 M emular a a M1 mediante la cinta 1 hasta que M1 pare.

2 3 4

F. de Sande ()

M aquinas de Turing

20112012

45 / 90

Lenguajes recursivos
Teorema
Si L1 y L2 son lenguajes recursivos, entonces L1 L2 tambi en lo es
1

Sean M1 y M2 las MT que reconocen L1 y L2 respectivamente, y que paran ante cualquier cadena Si w L(Mi ), Mi parar a en un estado de aceptaci on Si w L(Mi ), Mi parar a en un estado que no es de aceptaci on Sea M una MT con 2 cintas. Colocaremos w en la cinta 1 y M har a una copia de ella en la cinta 2 M emular a a M1 mediante la cinta 1 hasta que M1 pare. Si M1 para en un estado que no es de aceptaci on, entonces M tambi en rechaza w

2 3 4

5 6

F. de Sande ()

M aquinas de Turing

20112012

45 / 90

Lenguajes recursivos
Teorema
Si L1 y L2 son lenguajes recursivos, entonces L1 L2 tambi en lo es
1

Sean M1 y M2 las MT que reconocen L1 y L2 respectivamente, y que paran ante cualquier cadena Si w L(Mi ), Mi parar a en un estado de aceptaci on Si w L(Mi ), Mi parar a en un estado que no es de aceptaci on Sea M una MT con 2 cintas. Colocaremos w en la cinta 1 y M har a una copia de ella en la cinta 2 M emular a a M1 mediante la cinta 1 hasta que M1 pare. Si M1 para en un estado que no es de aceptaci on, entonces M tambi en rechaza w Si M1 acepta w, entonces M emular a ahora a M2 usando la copia de la cinta 2
F. de Sande () M aquinas de Turing 20112012 45 / 90

2 3 4

5 6

Lenguajes recursivos
1

Si M2 rechaza w entonces M rechaza la cadena

F. de Sande ()

M aquinas de Turing

20112012

46 / 90

Lenguajes recursivos
1 2

Si M2 rechaza w entonces M rechaza la cadena Si M2 acepta la cadena, entonces M acepta w

F. de Sande ()

M aquinas de Turing

20112012

46 / 90

Lenguajes recursivos
1 2 3

Si M2 rechaza w entonces M rechaza la cadena Si M2 acepta la cadena, entonces M acepta w As pues tenemos que w L(M ) w L(M1 ) y w L(M2 ), luego L(M ) = L(M1 ) L(M2 )

F. de Sande ()

M aquinas de Turing

20112012

46 / 90

Lenguajes recursivos
1 2 3

Si M2 rechaza w entonces M rechaza la cadena Si M2 acepta la cadena, entonces M acepta w As pues tenemos que w L(M ) w L(M1 ) y w L(M2 ), luego L(M ) = L(M1 ) L(M2 ) M para ante cualquier cadena de entrada, de modo que L(M ) es recursivo

F. de Sande ()

M aquinas de Turing

20112012

46 / 90

Lenguajes recursivos
1 2 3

Si M2 rechaza w entonces M rechaza la cadena Si M2 acepta la cadena, entonces M acepta w As pues tenemos que w L(M ) w L(M1 ) y w L(M2 ), luego L(M ) = L(M1 ) L(M2 ) M para ante cualquier cadena de entrada, de modo que L(M ) es recursivo

F. de Sande ()

M aquinas de Turing

20112012

46 / 90

Lenguajes recursivos
1 2 3

Si M2 rechaza w entonces M rechaza la cadena Si M2 acepta la cadena, entonces M acepta w As pues tenemos que w L(M ) w L(M1 ) y w L(M2 ), luego L(M ) = L(M1 ) L(M2 ) M para ante cualquier cadena de entrada, de modo que L(M ) es recursivo

F. de Sande ()

M aquinas de Turing

20112012

46 / 90

Lenguajes recursivos
Teorema
Si L es un lenguaje recursivo, entonces L tambi en lo es
1

Si L es recursivo, existe una MT M (Q, , , , F, q0 , b) que acepta L y que para ante cualquier entrada

F. de Sande ()

M aquinas de Turing

20112012

47 / 90

Lenguajes recursivos
Teorema
Si L es un lenguaje recursivo, entonces L tambi en lo es
1

Si L es recursivo, existe una MT M (Q, , , , F, q0 , b) que acepta L y que para ante cualquier entrada Sea M (Q, , , , Q F, q0 , b)

F. de Sande ()

M aquinas de Turing

20112012

47 / 90

Lenguajes recursivos
Teorema
Si L es un lenguaje recursivo, entonces L tambi en lo es
1

Si L es recursivo, existe una MT M (Q, , , , F, q0 , b) que acepta L y que para ante cualquier entrada Sea M (Q, , , , Q F, q0 , b) Si w L, M parar a en un estado de aceptaci on y M parar a en un estado que no es de aceptaci on

2 3

F. de Sande ()

M aquinas de Turing

20112012

47 / 90

Lenguajes recursivos
Teorema
Si L es un lenguaje recursivo, entonces L tambi en lo es
1

Si L es recursivo, existe una MT M (Q, , , , F, q0 , b) que acepta L y que para ante cualquier entrada Sea M (Q, , , , Q F, q0 , b) Si w L, M parar a en un estado de aceptaci on y M parar a en un estado que no es de aceptaci on Si w L, M parar a en un estado que no es de aceptaci on y M aceptar aw

2 3

F. de Sande ()

M aquinas de Turing

20112012

47 / 90

Lenguajes recursivos
Teorema
Si L es un lenguaje recursivo, entonces L tambi en lo es
1

Si L es recursivo, existe una MT M (Q, , , , F, q0 , b) que acepta L y que para ante cualquier entrada Sea M (Q, , , , Q F, q0 , b) Si w L, M parar a en un estado de aceptaci on y M parar a en un estado que no es de aceptaci on Si w L, M parar a en un estado que no es de aceptaci on y M aceptar aw As pues, L(M ) = L = L

2 3

F. de Sande ()

M aquinas de Turing

20112012

47 / 90

Lenguajes recursivos
Teorema
Si L es un lenguaje recursivo, entonces L tambi en lo es
1

Si L es recursivo, existe una MT M (Q, , , , F, q0 , b) que acepta L y que para ante cualquier entrada Sea M (Q, , , , Q F, q0 , b) Si w L, M parar a en un estado de aceptaci on y M parar a en un estado que no es de aceptaci on Si w L, M parar a en un estado que no es de aceptaci on y M aceptar aw As pues, L(M ) = L = L Puesto que M para ante cualquier cadena de entrada, M tambi en

2 3

5 6

F. de Sande ()

M aquinas de Turing

20112012

47 / 90

Lenguajes recursivos
Teorema
Si L es un lenguaje recursivo, entonces L tambi en lo es
1

Si L es recursivo, existe una MT M (Q, , , , F, q0 , b) que acepta L y que para ante cualquier entrada Sea M (Q, , , , Q F, q0 , b) Si w L, M parar a en un estado de aceptaci on y M parar a en un estado que no es de aceptaci on Si w L, M parar a en un estado que no es de aceptaci on y M aceptar aw As pues, L(M ) = L = L Puesto que M para ante cualquier cadena de entrada, M tambi en Luego conclu mos que L es recursivo
F. de Sande () M aquinas de Turing 20112012 47 / 90

2 3

5 6 7

Lenguajes recursivos
Teorema
Si L es un lenguaje recursivo, entonces L tambi en lo es Veamos una demostraci on alternativa:

F. de Sande ()

M aquinas de Turing

20112012

48 / 90

Lenguajes recursivos
Teorema
Si L es un lenguaje recursivo, entonces L tambi en lo es Veamos una demostraci on alternativa:

F. de Sande ()

M aquinas de Turing

20112012

48 / 90

Lenguajes recursivamente enumerables

Hemos visto que:

Teorema
Si L es un lenguaje recursivo, entonces L tambi en lo es

F. de Sande ()

M aquinas de Turing

20112012

49 / 90

Lenguajes recursivamente enumerables

Hemos visto que:

Teorema
Si L es un lenguaje recursivo, entonces L tambi en lo es En general, esta propiedad no es cierta para lenguajes recursivamente enumerables:

F. de Sande ()

M aquinas de Turing

20112012

49 / 90

Lenguajes recursivamente enumerables

Hemos visto que:

Teorema
Si L es un lenguaje recursivo, entonces L tambi en lo es En general, esta propiedad no es cierta para lenguajes recursivamente enumerables:

Teorema
un lenguaje recursivamente enumerable L para cual L no es recursivamente enumerable

F. de Sande ()

M aquinas de Turing

20112012

49 / 90

Lenguajes recursivamente enumerables


Teorema
un lenguaje recursivamente enumerable L para cual L no es recursivamente enumerable

F. de Sande ()

M aquinas de Turing

20112012

50 / 90

Lenguajes recursivamente enumerables


Teorema
un lenguaje recursivamente enumerable L para cual L no es recursivamente enumerable

Demostraci on
Sea un alfabeto. es numerable, de modo que podemos enumerar: = {w1 , w2 , w3 , . . .}

F. de Sande ()

M aquinas de Turing

20112012

50 / 90

Lenguajes recursivamente enumerables


Teorema
un lenguaje recursivamente enumerable L para cual L no es recursivamente enumerable

Demostraci on
Sea un alfabeto. es numerable, de modo que podemos enumerar: = {w1 , w2 , w3 , . . .} Las MT con alfabeto se pueden representar mediante n umeros, de modo que tambi en son enumerables: M T () = {M1 , M2 , M3 , . . .}

F. de Sande ()

M aquinas de Turing

20112012

50 / 90

Lenguajes recursivamente enumerables


Teorema
un lenguaje recursivamente enumerable L para cual L no es recursivamente enumerable

Demostraci on
Sea un alfabeto. es numerable, de modo que podemos enumerar: = {w1 , w2 , w3 , . . .} Las MT con alfabeto se pueden representar mediante n umeros, de modo que tambi en son enumerables: M T () = {M1 , M2 , M3 , . . .} Sea L = {wi |wi es aceptada por Mi }

F. de Sande ()

M aquinas de Turing

20112012

50 / 90

Lenguajes recursivamente enumerables


Teorema
un lenguaje recursivamente enumerable L para cual L no es recursivamente enumerable

Demostraci on
Sea un alfabeto. es numerable, de modo que podemos enumerar: = {w1 , w2 , w3 , . . .} Las MT con alfabeto se pueden representar mediante n umeros, de modo que tambi en son enumerables: M T () = {M1 , M2 , M3 , . . .} Sea L = {wi |wi es aceptada por Mi } Veamos en primer lugar que L es recursivamente enumerable:

F. de Sande ()

M aquinas de Turing

20112012

50 / 90

Lenguajes recursivamente enumerables


L = {wi |wi es aceptada por Mi } es recursivamente enumerable:

F. de Sande ()

M aquinas de Turing

20112012

51 / 90

Lenguajes recursivamente enumerables


L = {wi |wi es aceptada por Mi } es recursivamente enumerable:
Para demostrarlo, construiremos una MT, M que acepte L.

F. de Sande ()

M aquinas de Turing

20112012

51 / 90

Lenguajes recursivamente enumerables


L = {wi |wi es aceptada por Mi } es recursivamente enumerable:
Para demostrarlo, construiremos una MT, M que acepte L. La MT que construiremos ser a composici on de varias MT auxiliares:

F. de Sande ()

M aquinas de Turing

20112012

51 / 90

Lenguajes recursivamente enumerables


L = {wi |wi es aceptada por Mi } es recursivamente enumerable:
Para demostrarlo, construiremos una MT, M que acepte L. La MT que construiremos ser a composici on de varias MT auxiliares:
1

Sea w . La MT M genera las cadenas w1 , w2 , w3 , . . . hasta hallar un i N | w = wi

F. de Sande ()

M aquinas de Turing

20112012

51 / 90

Lenguajes recursivamente enumerables


L = {wi |wi es aceptada por Mi } es recursivamente enumerable:
Para demostrarlo, construiremos una MT, M que acepte L. La MT que construiremos ser a composici on de varias MT auxiliares:
1

Sea w . La MT M genera las cadenas w1 , w2 , w3 , . . . hasta hallar un i N | w = wi A continuaci on, M genera (codicada) la i- esima MT(), Mi

F. de Sande ()

M aquinas de Turing

20112012

51 / 90

Lenguajes recursivamente enumerables


L = {wi |wi es aceptada por Mi } es recursivamente enumerable:
Para demostrarlo, construiremos una MT, M que acepte L. La MT que construiremos ser a composici on de varias MT auxiliares:
1

Sea w . La MT M genera las cadenas w1 , w2 , w3 , . . . hasta hallar un i N | w = wi A continuaci on, M genera (codicada) la i- esima MT(), Mi M pasa el par (Mi , wi ) a la MT Universal, MU , que simular a Mi con wi = w como entrada

2 3

F. de Sande ()

M aquinas de Turing

20112012

51 / 90

Lenguajes recursivamente enumerables


L = {wi |wi es aceptada por Mi } es recursivamente enumerable:
Para demostrarlo, construiremos una MT, M que acepte L. La MT que construiremos ser a composici on de varias MT auxiliares:
1

Sea w . La MT M genera las cadenas w1 , w2 , w3 , . . . hasta hallar un i N | w = wi A continuaci on, M genera (codicada) la i- esima MT(), Mi M pasa el par (Mi , wi ) a la MT Universal, MU , que simular a Mi con wi = w como entrada Si Mi para y acepta wi entonces M para y acepta w

2 3

F. de Sande ()

M aquinas de Turing

20112012

51 / 90

Lenguajes recursivamente enumerables


L = {wi |wi es aceptada por Mi } es recursivamente enumerable:
Para demostrarlo, construiremos una MT, M que acepte L. La MT que construiremos ser a composici on de varias MT auxiliares:
1

Sea w . La MT M genera las cadenas w1 , w2 , w3 , . . . hasta hallar un i N | w = wi A continuaci on, M genera (codicada) la i- esima MT(), Mi M pasa el par (Mi , wi ) a la MT Universal, MU , que simular a Mi con wi = w como entrada Si Mi para y acepta wi entonces M para y acepta w Puede ocurrir que Mi pare sin aceptar wi o puede que Mi no pare ante wi . En ambos casos, M rechaza la cadena w

2 3

4 5

F. de Sande ()

M aquinas de Turing

20112012

51 / 90

Lenguajes recursivamente enumerables


L = {wi |wi es aceptada por Mi } es recursivamente enumerable:
Para demostrarlo, construiremos una MT, M que acepte L. La MT que construiremos ser a composici on de varias MT auxiliares:
1

Sea w . La MT M genera las cadenas w1 , w2 , w3 , . . . hasta hallar un i N | w = wi A continuaci on, M genera (codicada) la i- esima MT(), Mi M pasa el par (Mi , wi ) a la MT Universal, MU , que simular a Mi con wi = w como entrada Si Mi para y acepta wi entonces M para y acepta w Puede ocurrir que Mi pare sin aceptar wi o puede que Mi no pare ante wi . En ambos casos, M rechaza la cadena w

2 3

4 5

F. de Sande ()

M aquinas de Turing

20112012

51 / 90

Lenguajes recursivamente enumerables


L = {wi |wi es aceptada por Mi } es recursivamente enumerable:
Para demostrarlo, construiremos una MT, M que acepte L. La MT que construiremos ser a composici on de varias MT auxiliares:
1

Sea w . La MT M genera las cadenas w1 , w2 , w3 , . . . hasta hallar un i N | w = wi A continuaci on, M genera (codicada) la i- esima MT(), Mi M pasa el par (Mi , wi ) a la MT Universal, MU , que simular a Mi con wi = w como entrada Si Mi para y acepta wi entonces M para y acepta w Puede ocurrir que Mi pare sin aceptar wi o puede que Mi no pare ante wi . En ambos casos, M rechaza la cadena w

2 3

4 5

As pues, w L(M ) wi L(Mi ) Hemos constru do una MT, M que reconoce L y por lo tanto L es recursivamente enumerable
F. de Sande () M aquinas de Turing 20112012 51 / 90

Lenguajes recursivamente enumerables


Sea L = {wi |wi es aceptada por Mi } veamos por reducci on al absurdo que L no es recursivamente enumerable:

F. de Sande ()

M aquinas de Turing

20112012

52 / 90

Lenguajes recursivamente enumerables


Sea L = {wi |wi es aceptada por Mi } veamos por reducci on al absurdo que L no es recursivamente enumerable:
Si L es recursivamente enumerable, ha de ser aceptado por una MT(). Sea Mj la MT que reconoce L: L = L(Mj )

F. de Sande ()

M aquinas de Turing

20112012

52 / 90

Lenguajes recursivamente enumerables


Sea L = {wi |wi es aceptada por Mi } veamos por reducci on al absurdo que L no es recursivamente enumerable:
Si L es recursivamente enumerable, ha de ser aceptado por una MT(). Sea Mj la MT que reconoce L: L = L(Mj ) Consideremos la cadena wj

F. de Sande ()

M aquinas de Turing

20112012

52 / 90

Lenguajes recursivamente enumerables


Sea L = {wi |wi es aceptada por Mi } veamos por reducci on al absurdo que L no es recursivamente enumerable:
Si L es recursivamente enumerable, ha de ser aceptado por una MT(). Sea Mj la MT que reconoce L: L = L(Mj ) Consideremos la cadena wj Si wj L(Mj ) entonces wj L wj L = L(Mj ) wj L(Mj )

F. de Sande ()

M aquinas de Turing

20112012

52 / 90

Lenguajes recursivamente enumerables


Sea L = {wi |wi es aceptada por Mi } veamos por reducci on al absurdo que L no es recursivamente enumerable:
Si L es recursivamente enumerable, ha de ser aceptado por una MT(). Sea Mj la MT que reconoce L: L = L(Mj ) Consideremos la cadena wj Si wj L(Mj ) entonces wj L wj L = L(Mj ) wj L(Mj ) Si wj L(Mj ) entonces wj L wj L = L(Mj ) wj L(Mj )

F. de Sande ()

M aquinas de Turing

20112012

52 / 90

Lenguajes recursivamente enumerables


Sea L = {wi |wi es aceptada por Mi } veamos por reducci on al absurdo que L no es recursivamente enumerable:
Si L es recursivamente enumerable, ha de ser aceptado por una MT(). Sea Mj la MT que reconoce L: L = L(Mj ) Consideremos la cadena wj Si wj L(Mj ) entonces wj L wj L = L(Mj ) wj L(Mj ) Si wj L(Mj ) entonces wj L wj L = L(Mj ) wj L(Mj ) En ambos casos hemos llegado a un absurdo, as pues, conclu mos (por reducci on al absurdo) que L no es recursivamente enumerable

F. de Sande ()

M aquinas de Turing

20112012

52 / 90

Lenguajes recursivamente enumerables


Sea L = {wi |wi es aceptada por Mi } veamos por reducci on al absurdo que L no es recursivamente enumerable:
Si L es recursivamente enumerable, ha de ser aceptado por una MT(). Sea Mj la MT que reconoce L: L = L(Mj ) Consideremos la cadena wj Si wj L(Mj ) entonces wj L wj L = L(Mj ) wj L(Mj ) Si wj L(Mj ) entonces wj L wj L = L(Mj ) wj L(Mj ) En ambos casos hemos llegado a un absurdo, as pues, conclu mos (por reducci on al absurdo) que L no es recursivamente enumerable

F. de Sande ()

M aquinas de Turing

20112012

52 / 90

Lenguajes recursivamente enumerables


Sea L = {wi |wi es aceptada por Mi } veamos por reducci on al absurdo que L no es recursivamente enumerable:
Si L es recursivamente enumerable, ha de ser aceptado por una MT(). Sea Mj la MT que reconoce L: L = L(Mj ) Consideremos la cadena wj Si wj L(Mj ) entonces wj L wj L = L(Mj ) wj L(Mj ) Si wj L(Mj ) entonces wj L wj L = L(Mj ) wj L(Mj ) En ambos casos hemos llegado a un absurdo, as pues, conclu mos (por reducci on al absurdo) que L no es recursivamente enumerable

Teorema:
Existe un lenguaje L recursivamente enumerable tal que su complementario no lo es
F. de Sande () M aquinas de Turing 20112012 52 / 90

Lenguajes recursivos
Teorema
Si L1 y L2 son lenguajes recursivos, entonces L1 L2 tambi en lo es

F. de Sande ()

M aquinas de Turing

20112012

53 / 90

Lenguajes recursivos
Teorema
Si L1 y L2 son lenguajes recursivos, entonces L1 L2 tambi en lo es

F. de Sande ()

M aquinas de Turing

20112012

53 / 90

Lenguajes recursivamente enumerables


Teorema
Si L1 y L2 son lenguajes recursivamente enumerables, entonces L1 L2 tambi en lo es

F. de Sande ()

M aquinas de Turing

20112012

54 / 90

Lenguajes recursivamente enumerables


Teorema
Si L1 y L2 son lenguajes recursivamente enumerables, entonces L1 L2 tambi en lo es En este caso, la construcci on anterior no funciona porque las Mi pueden no parar ante la cadena de entrada La alternativa es:

F. de Sande ()

M aquinas de Turing

20112012

54 / 90

Lenguajes recursivamente enumerables


Teorema
Si L1 y L2 son lenguajes recursivamente enumerables, entonces L1 L2 tambi en lo es En este caso, la construcci on anterior no funciona porque las Mi pueden no parar ante la cadena de entrada La alternativa es:

M simula en paralelo M1 y M2 sobre cintas separadas Si cualquiera de ellas acepta, M tambi en


F. de Sande () M aquinas de Turing 20112012 54 / 90

Lenguajes recursivamente enumerables y recursivos


Teorema
Si un lenguaje L y su complementario L son ambos recursivamente enumerables, entonces L (y por tanto L) es recursivo

F. de Sande ()

M aquinas de Turing

20112012

55 / 90

Lenguajes recursivamente enumerables y recursivos


Teorema
Si un lenguaje L y su complementario L son ambos recursivamente enumerables, entonces L (y por tanto L) es recursivo

Demostraci on
L y L son ambos recursivamente enumerables. Sean M1 y M2 las MT tales que L = L(M1 ), L = L(M2 )

F. de Sande ()

M aquinas de Turing

20112012

55 / 90

Lenguajes recursivamente enumerables y recursivos


Teorema
Si un lenguaje L y su complementario L son ambos recursivamente enumerables, entonces L (y por tanto L) es recursivo

Demostraci on
L y L son ambos recursivamente enumerables. Sean M1 y M2 las MT tales que L = L(M1 ), L = L(M2 ) Construiremos una MT M que siempre para ante cualquier cadena de entrada y tal que L(M ) = L

F. de Sande ()

M aquinas de Turing

20112012

55 / 90

Lenguajes recursivamente enumerables y recursivos


Teorema
Si un lenguaje L y su complementario L son ambos recursivamente enumerables, entonces L (y por tanto L) es recursivo

Demostraci on
L y L son ambos recursivamente enumerables. Sean M1 y M2 las MT tales que L = L(M1 ), L = L(M2 ) Construiremos una MT M que siempre para ante cualquier cadena de entrada y tal que L(M ) = L

F. de Sande ()

M aquinas de Turing

20112012

55 / 90

Lenguajes recursivamente enumerables y recursivos


Teorema
Si un lenguaje L y su complementario L son ambos recursivamente enumerables, entonces L (y por tanto L) es recursivo

Demostraci on
L y L son ambos recursivamente enumerables. Sean M1 y M2 las MT tales que L = L(M1 ), L = L(M2 ) Construiremos una MT M que siempre para ante cualquier cadena de entrada y tal que L(M ) = L

F. de Sande ()

M aquinas de Turing

20112012

55 / 90

Lenguajes recursivos y recursivamente enumerables

Dados un par de lenguajes complementarios L y L


De los teoremas anteriores se deduce que s olo caben las siguientes posibilidades:
1

Tanto L como L son recursivos

F. de Sande ()

M aquinas de Turing

20112012

56 / 90

Lenguajes recursivos y recursivamente enumerables

Dados un par de lenguajes complementarios L y L


De los teoremas anteriores se deduce que s olo caben las siguientes posibilidades:
1 2

Tanto L como L son recursivos Ni L ni L son recursivamente enumerables

F. de Sande ()

M aquinas de Turing

20112012

56 / 90

Lenguajes recursivos y recursivamente enumerables

Dados un par de lenguajes complementarios L y L


De los teoremas anteriores se deduce que s olo caben las siguientes posibilidades:
1 2 3

Tanto L como L son recursivos Ni L ni L son recursivamente enumerables Uno de los dos L o bien L es recursivamente enumerable pero no recursivo; el otro no es recursivamente enumerable

F. de Sande ()

M aquinas de Turing

20112012

56 / 90

Lenguajes recursivamente enumerables

Teorema
Si G es una gram atica no restringida (de tipo-0) entonces L(G) es un lenguaje recursivamente enumerable

F. de Sande ()

M aquinas de Turing

20112012

57 / 90

Lenguajes recursivamente enumerables

Teorema
Si G es una gram atica no restringida (de tipo-0) entonces L(G) es un lenguaje recursivamente enumerable

Teorema
Un lenguaje L es recursivamente enumerable L = L(G) para alguna gram atica G no restringida (de tipo-0)

F. de Sande ()

M aquinas de Turing

20112012

57 / 90

Simulaci on de un computador con una MT

Un computador real es una tripleta Computador = {P rocesador, M emoria, DispositivosIO} RunProgram:: while Conectado and Encendido do Ejecuta (PC); PC := Next(PC); Cuestiones:
Procesador = (PC, Programa) El Programa se almacena en Memoria (colecci on de instrucciones) PC siempre apunta a la siguiente instrucci on a ejecutar

F. de Sande ()

M aquinas de Turing

20112012

58 / 90

Simulaci on de un computador con una MT

Memoria TM: cinta innita I/O TM: cabeza lectora que puede leer/escribir s mbolos y moverse por la cinta Procesador TM: dispositivo de control procesa los s mbolos referenciados por la cabeza lectora cuand esta se mueve Cuestiones:
Cuales son las similitudes con un computador real? Y las diferencias?

F. de Sande ()

M aquinas de Turing

20112012

59 / 90

Simulaci on de un computador con una MT

F. de Sande ()

M aquinas de Turing

20112012

60 / 90

Simulaci on de un computador con una MT


La RAM: un modelo abstracto de computador digital
La m aquina posee:
1

Un n umero innito de celdas de memoria numeradas 0, 1, 2, . . . cada una de las cuales puede almacenar un n umero entero

F. de Sande ()

M aquinas de Turing

20112012

60 / 90

Simulaci on de un computador con una MT


La RAM: un modelo abstracto de computador digital
La m aquina posee:
1

Un n umero innito de celdas de memoria numeradas 0, 1, 2, . . . cada una de las cuales puede almacenar un n umero entero Un n umero nito (arbitrariamente grande) de registros aritm eticos que pueden almacenar tambi en un entero

F. de Sande ()

M aquinas de Turing

20112012

60 / 90

Simulaci on de un computador con una MT


La RAM: un modelo abstracto de computador digital
La m aquina posee:
1

Un n umero innito de celdas de memoria numeradas 0, 1, 2, . . . cada una de las cuales puede almacenar un n umero entero Un n umero nito (arbitrariamente grande) de registros aritm eticos que pueden almacenar tambi en un entero Un registro especial PC (Program Counter)

F. de Sande ()

M aquinas de Turing

20112012

60 / 90

Simulaci on de un computador con una MT


La RAM: un modelo abstracto de computador digital
La m aquina posee:
1

Un n umero innito de celdas de memoria numeradas 0, 1, 2, . . . cada una de las cuales puede almacenar un n umero entero Un n umero nito (arbitrariamente grande) de registros aritm eticos que pueden almacenar tambi en un entero Un registro especial PC (Program Counter) Un registro especial AC (Acumulador)

3 4

F. de Sande ()

M aquinas de Turing

20112012

60 / 90

Simulaci on de un computador con una MT


La RAM: un modelo abstracto de computador digital
La m aquina posee:
1

Un n umero innito de celdas de memoria numeradas 0, 1, 2, . . . cada una de las cuales puede almacenar un n umero entero Un n umero nito (arbitrariamente grande) de registros aritm eticos que pueden almacenar tambi en un entero Un registro especial PC (Program Counter) Un registro especial AC (Acumulador)

3 4

F. de Sande ()

M aquinas de Turing

20112012

60 / 90

Simulaci on de un computador con una MT


La RAM: un modelo abstracto de computador digital
La m aquina posee:
1

Un n umero innito de celdas de memoria numeradas 0, 1, 2, . . . cada una de las cuales puede almacenar un n umero entero Un n umero nito (arbitrariamente grande) de registros aritm eticos que pueden almacenar tambi en un entero Un registro especial PC (Program Counter) Un registro especial AC (Acumulador)

3 4

Instrucciones de la RAM
LOAD op STORE op ADD op SUB op
F. de Sande ()

MULT op DIV op READ op WRITE op


M aquinas de Turing

JUMP label JGTZ label JZERO label HALT


20112012 60 / 90

Simulaci on de un computador con una MT


Modos de direccionamiento de la RAM:
Un operando de una instrucci on de la RAM puede ser:
1

=i El entero i (inmediato)

F. de Sande ()

M aquinas de Turing

20112012

61 / 90

Simulaci on de un computador con una MT


Modos de direccionamiento de la RAM:
Un operando de una instrucci on de la RAM puede ser:
1 2

=i El entero i (inmediato) i El contenido de la posici on de memoria i (directo)

F. de Sande ()

M aquinas de Turing

20112012

61 / 90

Simulaci on de un computador con una MT


Modos de direccionamiento de la RAM:
Un operando de una instrucci on de la RAM puede ser:
1 2 3

=i El entero i (inmediato) i El contenido de la posici on de memoria i (directo) *i El operando est a en la posici on de memoria almacenada en la posici on i (indirecto)

F. de Sande ()

M aquinas de Turing

20112012

61 / 90

Simulaci on de un computador con una MT


Modos de direccionamiento de la RAM:
Un operando de una instrucci on de la RAM puede ser:
1 2 3

=i El entero i (inmediato) i El contenido de la posici on de memoria i (directo) *i El operando est a en la posici on de memoria almacenada en la posici on i (indirecto)

F. de Sande ()

M aquinas de Turing

20112012

61 / 90

Simulaci on de un computador con una MT


Modos de direccionamiento de la RAM:
Un operando de una instrucci on de la RAM puede ser:
1 2 3

=i El entero i (inmediato) i El contenido de la posici on de memoria i (directo) *i El operando est a en la posici on de memoria almacenada en la posici on i (indirecto) v(=i) = i

Consideremos v(a), el valor del operando a. Puede ser:


1

F. de Sande ()

M aquinas de Turing

20112012

61 / 90

Simulaci on de un computador con una MT


Modos de direccionamiento de la RAM:
Un operando de una instrucci on de la RAM puede ser:
1 2 3

=i El entero i (inmediato) i El contenido de la posici on de memoria i (directo) *i El operando est a en la posici on de memoria almacenada en la posici on i (indirecto) v(=i) = i v(i) = M[i]

Consideremos v(a), el valor del operando a. Puede ser:


1 2

F. de Sande ()

M aquinas de Turing

20112012

61 / 90

Simulaci on de un computador con una MT


Modos de direccionamiento de la RAM:
Un operando de una instrucci on de la RAM puede ser:
1 2 3

=i El entero i (inmediato) i El contenido de la posici on de memoria i (directo) *i El operando est a en la posici on de memoria almacenada en la posici on i (indirecto) v(=i) = i v(i) = M[i] v(*i) = M[M[i]]

Consideremos v(a), el valor del operando a. Puede ser:


1 2 3

F. de Sande ()

M aquinas de Turing

20112012

61 / 90

Simulaci on de un computador con una MT


Modos de direccionamiento de la RAM:
Un operando de una instrucci on de la RAM puede ser:
1 2 3

=i El entero i (inmediato) i El contenido de la posici on de memoria i (directo) *i El operando est a en la posici on de memoria almacenada en la posici on i (indirecto) v(=i) = i v(i) = M[i] v(*i) = M[M[i]]

Consideremos v(a), el valor del operando a. Puede ser:


1 2 3

F. de Sande ()

M aquinas de Turing

20112012

61 / 90

Simulaci on de un computador con una MT


Modos de direccionamiento de la RAM:
Un operando de una instrucci on de la RAM puede ser:
1 2 3

=i El entero i (inmediato) i El contenido de la posici on de memoria i (directo) *i El operando est a en la posici on de memoria almacenada en la posici on i (indirecto) v(=i) = i v(i) = M[i] v(*i) = M[M[i]]

Consideremos v(a), el valor del operando a. Puede ser:


1 2 3

Ejercicio
Desarrollar un programa para la RAM que calcule: nn si n 1 f (n) = 0 si n = 0
F. de Sande () M aquinas de Turing 20112012 61 / 90

Simulaci on de un computador con una MT


Ejercicio
Desarrollar un programa para la RAM que calcule: nn si n 1 f (n) = 0 si n = 0

F. de Sande ()

M aquinas de Turing

20112012

62 / 90

Simulaci on de un computador con una MT


Ejercicio
Desarrollar un programa para la RAM que calcule: nn si n 1 f (n) = 0 si n = 0 read r1 ; if r1 0 then write 0 else r2 r1 ; r3 r1 1 ; while r3 > 0 do r2 r2 r1 ; r3 r3 1 ; write r2 ;

F. de Sande ()

M aquinas de Turing

20112012

62 / 90

Simulaci on de un computador con una MT


READ 1 LOAD 1 JGTZ pos WRITE 0 JUMP e n d i f LOAD 1 STORE 2 LOAD 1 SUB =1 STORE 3 LOAD 3 JGTZ c o n t i n u e JUMP endwhile LOAD 2 MULT 1 STORE 2 LOAD 3 SUB =1 STORE 3 JUMP w h i l e WRITE 2 HALT

read r1 ; if r1 0 then write 0 else r2 r1 ; r3 r1 1 ; while r3 > 0 do r2 r2 r1 ; r3 r3 1 ; write r2 ;

pos :

while :

continue :

endwhile : endif :

F. de Sande ()

M aquinas de Turing

20112012

63 / 90

Simulaci on de un computador con una MT


Simulaci on de la RAM con una TM
Utilizaremos una MT con m ultiples cintas

F. de Sande ()

M aquinas de Turing

20112012

64 / 90

Simulaci on de un computador con una MT


Simulaci on de la RAM con una TM
Utilizaremos una MT con m ultiples cintas
1

La primera cinta almacenar a el contenido de las posiciones de memoria de la RAM que no sean 0, de la forma: ##i1 c1 #i2 c2 #i3 c3 # . . . #in cn ## Donde ij Direcci on de memoria j cj : Contenido de la direcci on de memoria j Estos n umeros se codican en binario

F. de Sande ()

M aquinas de Turing

20112012

64 / 90

Simulaci on de un computador con una MT


Simulaci on de la RAM con una TM
Utilizaremos una MT con m ultiples cintas
1

La primera cinta almacenar a el contenido de las posiciones de memoria de la RAM que no sean 0, de la forma: ##i1 c1 #i2 c2 #i3 c3 # . . . #in cn ## Donde ij Direcci on de memoria j cj : Contenido de la direcci on de memoria j Estos n umeros se codican en binario La cinta C2 almacenar a en binario el contenido del contador de programa (PC)

F. de Sande ()

M aquinas de Turing

20112012

64 / 90

Simulaci on de un computador con una MT


Simulaci on de la RAM con una TM
Utilizaremos una MT con m ultiples cintas
1

La primera cinta almacenar a el contenido de las posiciones de memoria de la RAM que no sean 0, de la forma: ##i1 c1 #i2 c2 #i3 c3 # . . . #in cn ## Donde ij Direcci on de memoria j cj : Contenido de la direcci on de memoria j Estos n umeros se codican en binario La cinta C2 almacenar a en binario el contenido del contador de programa (PC) Una cinta C3 almacenar a el valor del Acumulador (AC), donde se almacena el resultado de cada operaci on

F. de Sande ()

M aquinas de Turing

20112012

64 / 90

Simulaci on de un computador con una MT

Simulaci on de la RAM con una TM


1

Buscar en C1 la secuencia P C Si no se encuentra, se para Si se encuentra, se ha encontrado #P C cP C #

F. de Sande ()

M aquinas de Turing

20112012

65 / 90

Simulaci on de un computador con una MT

Simulaci on de la RAM con una TM


1

Buscar en C1 la secuencia P C Si no se encuentra, se para Si se encuentra, se ha encontrado #P C cP C # Se leen los bits de cP C que se corresponder an con un c odigo de instrucci on La MT dispone de MT auxiliares para la realizaci on de ADD, MULT, SUB, etc. con las cintas colocadas del modo adecuado

F. de Sande ()

M aquinas de Turing

20112012

65 / 90

Simulaci on de un computador con una MT

Simulaci on de la RAM con una TM


1

Buscar en C1 la secuencia P C Si no se encuentra, se para Si se encuentra, se ha encontrado #P C cP C # Se leen los bits de cP C que se corresponder an con un c odigo de instrucci on La MT dispone de MT auxiliares para la realizaci on de ADD, MULT, SUB, etc. con las cintas colocadas del modo adecuado Se actualiza el valor de PC

F. de Sande ()

M aquinas de Turing

20112012

65 / 90

Simulaci on de un computador con una MT

Simulaci on de la RAM con una TM


1

Buscar en C1 la secuencia P C Si no se encuentra, se para Si se encuentra, se ha encontrado #P C cP C # Se leen los bits de cP C que se corresponder an con un c odigo de instrucci on La MT dispone de MT auxiliares para la realizaci on de ADD, MULT, SUB, etc. con las cintas colocadas del modo adecuado Se actualiza el valor de PC Volver al paso 1

3 4

F. de Sande ()

M aquinas de Turing

20112012

65 / 90

Simulaci on de un computador con una MT


Instrucci on STORE 30
Almacenar el contenido del acumulador en la direcci on de memoria 30

F. de Sande ()

M aquinas de Turing

20112012

66 / 90

Simulaci on de un computador con una MT


Instrucci on STORE 30
Almacenar el contenido del acumulador en la direcci on de memoria 30
1

Buscar en C1 la direcci on 30: #11110

F. de Sande ()

M aquinas de Turing

20112012

66 / 90

Simulaci on de un computador con una MT


Instrucci on STORE 30
Almacenar el contenido del acumulador en la direcci on de memoria 30
1 2

Buscar en C1 la direcci on 30: #11110 Si se encuentra, copiar en una cinta auxiliar (C4) todo lo que haya a la dcha. de esta posici on, salvo el entero inmediatamente siguiente (que es el antiguo contenido de M[30]).

F. de Sande ()

M aquinas de Turing

20112012

66 / 90

Simulaci on de un computador con una MT


Instrucci on STORE 30
Almacenar el contenido del acumulador en la direcci on de memoria 30
1 2

Buscar en C1 la direcci on 30: #11110 Si se encuentra, copiar en una cinta auxiliar (C4) todo lo que haya a la dcha. de esta posici on, salvo el entero inmediatamente siguiente (que es el antiguo contenido de M[30]). Copiar el contenido del acumulador (C3) inmediatamente a la derecha del 30: #11110 AC # y detr as de ese valor, c opiese toda la cadena que se volc o en C4

F. de Sande ()

M aquinas de Turing

20112012

66 / 90

Simulaci on de un computador con una MT


Instrucci on STORE 30
Almacenar el contenido del acumulador en la direcci on de memoria 30
1 2

Buscar en C1 la direcci on 30: #11110 Si se encuentra, copiar en una cinta auxiliar (C4) todo lo que haya a la dcha. de esta posici on, salvo el entero inmediatamente siguiente (que es el antiguo contenido de M[30]). Copiar el contenido del acumulador (C3) inmediatamente a la derecha del 30: #11110 AC # y detr as de ese valor, c opiese toda la cadena que se volc o en C4 Si en C1 no se encuentra el 30, a n adase al nal de la C1: #11110 AC #

F. de Sande ()

M aquinas de Turing

20112012

66 / 90

Simulaci on de un computador con una MT


Instrucci on ADD *20
Sumar al AC el contenido de la direcci on de memoria apuntado en M[20]

F. de Sande ()

M aquinas de Turing

20112012

67 / 90

Simulaci on de un computador con una MT


Instrucci on ADD *20
Sumar al AC el contenido de la direcci on de memoria apuntado en M[20]
1

Buscar en C1 la direcci on 20: #10100

F. de Sande ()

M aquinas de Turing

20112012

67 / 90

Simulaci on de un computador con una MT


Instrucci on ADD *20
Sumar al AC el contenido de la direcci on de memoria apuntado en M[20]
1 2

Buscar en C1 la direcci on 20: #10100 Si se encuentra, copiar su contenido en C4

F. de Sande ()

M aquinas de Turing

20112012

67 / 90

Simulaci on de un computador con una MT


Instrucci on ADD *20
Sumar al AC el contenido de la direcci on de memoria apuntado en M[20]
1 2 3

Buscar en C1 la direcci on 20: #10100 Si se encuentra, copiar su contenido en C4 Si no se encuentra, HALT: En M[20] hay un 0 y no se puede hacer la indirecci on

F. de Sande ()

M aquinas de Turing

20112012

67 / 90

Simulaci on de un computador con una MT


Instrucci on ADD *20
Sumar al AC el contenido de la direcci on de memoria apuntado en M[20]
1 2 3

Buscar en C1 la direcci on 20: #10100 Si se encuentra, copiar su contenido en C4 Si no se encuentra, HALT: En M[20] hay un 0 y no se puede hacer la indirecci on Buscar en C1 la direcci on que se anot o en C4

F. de Sande ()

M aquinas de Turing

20112012

67 / 90

Simulaci on de un computador con una MT


Instrucci on ADD *20
Sumar al AC el contenido de la direcci on de memoria apuntado en M[20]
1 2 3

Buscar en C1 la direcci on 20: #10100 Si se encuentra, copiar su contenido en C4 Si no se encuentra, HALT: En M[20] hay un 0 y no se puede hacer la indirecci on Buscar en C1 la direcci on que se anot o en C4 Si se encuentra, copiar su contenido en C4

4 5

F. de Sande ()

M aquinas de Turing

20112012

67 / 90

Simulaci on de un computador con una MT


Instrucci on ADD *20
Sumar al AC el contenido de la direcci on de memoria apuntado en M[20]
1 2 3

Buscar en C1 la direcci on 20: #10100 Si se encuentra, copiar su contenido en C4 Si no se encuentra, HALT: En M[20] hay un 0 y no se puede hacer la indirecci on Buscar en C1 la direcci on que se anot o en C4 Si se encuentra, copiar su contenido en C4 Si no se encuentra, escribir un 0 en C4

4 5 6

F. de Sande ()

M aquinas de Turing

20112012

67 / 90

Simulaci on de un computador con una MT


Instrucci on ADD *20
Sumar al AC el contenido de la direcci on de memoria apuntado en M[20]
1 2 3

Buscar en C1 la direcci on 20: #10100 Si se encuentra, copiar su contenido en C4 Si no se encuentra, HALT: En M[20] hay un 0 y no se puede hacer la indirecci on Buscar en C1 la direcci on que se anot o en C4 Si se encuentra, copiar su contenido en C4 Si no se encuentra, escribir un 0 en C4 Sumar AC con el valor almacenado en C4 en el paso anterior

4 5 6 7

F. de Sande ()

M aquinas de Turing

20112012

67 / 90

La tesis de Church-Turing
Tesis de Church-Turing
Toda funci on efectivamente computable es Turing-computable Alonzo Church, American Journal of Mathematics 58: 345-363, 1936

F. de Sande ()

M aquinas de Turing

20112012

68 / 90

La tesis de Church-Turing
Tesis de Church-Turing
Toda funci on efectivamente computable es Turing-computable Alonzo Church, American Journal of Mathematics 58: 345-363, 1936

Tesis de Church-Turing
Cualquier procedimiento algor tmico que pueda ser implementado por un humano, un grupo de humanos o un ordenador, puede ser realizado por alguna M aquina de Turing

F. de Sande ()

M aquinas de Turing

20112012

68 / 90

La tesis de Church-Turing
Tesis de Church-Turing
Toda funci on efectivamente computable es Turing-computable Alonzo Church, American Journal of Mathematics 58: 345-363, 1936

Tesis de Church-Turing
Cualquier procedimiento algor tmico que pueda ser implementado por un humano, un grupo de humanos o un ordenador, puede ser realizado por alguna M aquina de Turing

Porqu e es una tesis ?


Se le llama tesis porque no se trata de una sentencia matem aticamente precisa, debido a la carencia de una denici on precisa de procedimiento algor tmico (o algoritmo) y debido a ello, la tesis no es una sentencia que pueda ser demostrada matem aticamente
F. de Sande () M aquinas de Turing 20112012 68 / 90

Procedimiento algor tmico o algoritmo


Noci on intuitiva
Secuencia de instrucciones simples para llevar a cabo alguna tarea

F. de Sande ()

M aquinas de Turing

20112012

69 / 90

Procedimiento algor tmico o algoritmo


Noci on intuitiva
Secuencia de instrucciones simples para llevar a cabo alguna tarea En la vida cotidiana les conocemos como procedimientos o recetas

F. de Sande ()

M aquinas de Turing

20112012

69 / 90

Procedimiento algor tmico o algoritmo


Noci on intuitiva
Secuencia de instrucciones simples para llevar a cabo alguna tarea En la vida cotidiana les conocemos como procedimientos o recetas Como sabemos, juegan un papel esencial en matem aticas y algunos de ellos son bien conocidos desde la antig uedad: hallar n umeros primos, hallar m aximo com un denominador, etc.

F. de Sande ()

M aquinas de Turing

20112012

69 / 90

Procedimiento algor tmico o algoritmo


Noci on intuitiva
Secuencia de instrucciones simples para llevar a cabo alguna tarea En la vida cotidiana les conocemos como procedimientos o recetas Como sabemos, juegan un papel esencial en matem aticas y algunos de ellos son bien conocidos desde la antig uedad: hallar n umeros primos, hallar m aximo com un denominador, etc.

F. de Sande ()

M aquinas de Turing

20112012

69 / 90

Procedimiento algor tmico o algoritmo


Noci on intuitiva
Secuencia de instrucciones simples para llevar a cabo alguna tarea En la vida cotidiana les conocemos como procedimientos o recetas Como sabemos, juegan un papel esencial en matem aticas y algunos de ellos son bien conocidos desde la antig uedad: hallar n umeros primos, hallar m aximo com un denominador, etc.

Procedimiento efectivo, M
1

Su expresi on ha de constar de un n umero nito de instrucciones exactas, estando cada instrucci on especicada por un n umero nito de s mbolos

F. de Sande ()

M aquinas de Turing

20112012

69 / 90

Procedimiento algor tmico o algoritmo


Noci on intuitiva
Secuencia de instrucciones simples para llevar a cabo alguna tarea En la vida cotidiana les conocemos como procedimientos o recetas Como sabemos, juegan un papel esencial en matem aticas y algunos de ellos son bien conocidos desde la antig uedad: hallar n umeros primos, hallar m aximo com un denominador, etc.

Procedimiento efectivo, M
1

Su expresi on ha de constar de un n umero nito de instrucciones exactas, estando cada instrucci on especicada por un n umero nito de s mbolos M produce el resultado deseado, si se ejecuta sin error, en un n umero nito de pasos

F. de Sande ()

M aquinas de Turing

20112012

69 / 90

Procedimiento algor tmico o algoritmo


Noci on intuitiva
Secuencia de instrucciones simples para llevar a cabo alguna tarea En la vida cotidiana les conocemos como procedimientos o recetas Como sabemos, juegan un papel esencial en matem aticas y algunos de ellos son bien conocidos desde la antig uedad: hallar n umeros primos, hallar m aximo com un denominador, etc.

Procedimiento efectivo, M
1

Su expresi on ha de constar de un n umero nito de instrucciones exactas, estando cada instrucci on especicada por un n umero nito de s mbolos M produce el resultado deseado, si se ejecuta sin error, en un n umero nito de pasos M puede ser realizado por un humano sin asistencia de ninguna m aquina, utilizando solamente l apiz y papel
F. de Sande () M aquinas de Turing 20112012 69 / 90

Procedimiento algor tmico o algoritmo


Noci on intuitiva
Secuencia de instrucciones simples para llevar a cabo alguna tarea En la vida cotidiana les conocemos como procedimientos o recetas Como sabemos, juegan un papel esencial en matem aticas y algunos de ellos son bien conocidos desde la antig uedad: hallar n umeros primos, hallar m aximo com un denominador, etc.

Procedimiento efectivo, M
1

Su expresi on ha de constar de un n umero nito de instrucciones exactas, estando cada instrucci on especicada por un n umero nito de s mbolos M produce el resultado deseado, si se ejecuta sin error, en un n umero nito de pasos M puede ser realizado por un humano sin asistencia de ninguna m aquina, utilizando solamente l apiz y papel M no requiere trucos ni ingenuidad por parte del humano
F. de Sande () M aquinas de Turing 20112012 69 / 90

La tesis de Church-Turing
Evidencias de la veracidad de la tesis
Alonzo Church y Alan Turing llegaron al mismo resultado (la tesis) desde dos modelos de c omputo diferentes (el -c alculo y las m aquinas de Turing respectivamente), sin embargo demostraron que ambos modelos eran computacionalmente equivalentes

F. de Sande ()

M aquinas de Turing

20112012

70 / 90

La tesis de Church-Turing
Evidencias de la veracidad de la tesis
Alonzo Church y Alan Turing llegaron al mismo resultado (la tesis) desde dos modelos de c omputo diferentes (el -c alculo y las m aquinas de Turing respectivamente), sin embargo demostraron que ambos modelos eran computacionalmente equivalentes Todas las variantes de la MT original que se han propuesto, siempre se ha demostrado que tienen la misma capacidad de c omputo que la m aquina ideada por Alan Turing

F. de Sande ()

M aquinas de Turing

20112012

70 / 90

La tesis de Church-Turing
Evidencias de la veracidad de la tesis
Alonzo Church y Alan Turing llegaron al mismo resultado (la tesis) desde dos modelos de c omputo diferentes (el -c alculo y las m aquinas de Turing respectivamente), sin embargo demostraron que ambos modelos eran computacionalmente equivalentes Todas las variantes de la MT original que se han propuesto, siempre se ha demostrado que tienen la misma capacidad de c omputo que la m aquina ideada por Alan Turing Muchos otros modelos abstractos de c omputo (-c alculo, funciones recursivas, sistemas can onicos, m aquinas de registros, l ogica combinatoria, algoritmos de Markov, etc.) han sido ideados.

F. de Sande ()

M aquinas de Turing

20112012

70 / 90

La tesis de Church-Turing
Evidencias de la veracidad de la tesis
Alonzo Church y Alan Turing llegaron al mismo resultado (la tesis) desde dos modelos de c omputo diferentes (el -c alculo y las m aquinas de Turing respectivamente), sin embargo demostraron que ambos modelos eran computacionalmente equivalentes Todas las variantes de la MT original que se han propuesto, siempre se ha demostrado que tienen la misma capacidad de c omputo que la m aquina ideada por Alan Turing Muchos otros modelos abstractos de c omputo (-c alculo, funciones recursivas, sistemas can onicos, m aquinas de registros, l ogica combinatoria, algoritmos de Markov, etc.) han sido ideados. En todos los casos se ha demostrado que son computacionalmente equivalentes a la MT

F. de Sande ()

M aquinas de Turing

20112012

70 / 90

La tesis de Church-Turing

Evidencias de la veracidad de la tesis


La inmensa mayor a de los investigadores de la inform atica te orica la considera v alida hoy en d a

F. de Sande ()

M aquinas de Turing

20112012

71 / 90

La tesis de Church-Turing

Evidencias de la veracidad de la tesis


La inmensa mayor a de los investigadores de la inform atica te orica la considera v alida hoy en d a Es m as f acil refutar la tesis que demostrar su veracidad: para refutarla basta hallar un algoritmo que no sea Turing computable

F. de Sande ()

M aquinas de Turing

20112012

71 / 90

La tesis de Church-Turing
Algoritmos y MTs
Una MT modela un proceso (ya sea el reconocimiento de una cadena o la codicaci on de una secuencia de s mbolos en su cinta)

F. de Sande ()

M aquinas de Turing

20112012

72 / 90

La tesis de Church-Turing
Algoritmos y MTs
Una MT modela un proceso (ya sea el reconocimiento de una cadena o la codicaci on de una secuencia de s mbolos en su cinta) Un algoritmo es un proceso que siempre ha de terminar en un n umero nito de pasos

F. de Sande ()

M aquinas de Turing

20112012

72 / 90

La tesis de Church-Turing
Algoritmos y MTs
Una MT modela un proceso (ya sea el reconocimiento de una cadena o la codicaci on de una secuencia de s mbolos en su cinta) Un algoritmo es un proceso que siempre ha de terminar en un n umero nito de pasos Una MT que pare ante cualquier entrada es un modelo abstracto de algoritmo

F. de Sande ()

M aquinas de Turing

20112012

72 / 90

La tesis de Church-Turing
Algoritmos y MTs
Una MT modela un proceso (ya sea el reconocimiento de una cadena o la codicaci on de una secuencia de s mbolos en su cinta) Un algoritmo es un proceso que siempre ha de terminar en un n umero nito de pasos Una MT que pare ante cualquier entrada es un modelo abstracto de algoritmo Para un lenguaje L que sea recursivo existe un algoritmo M que permite determinar si una w es w L

F. de Sande ()

M aquinas de Turing

20112012

72 / 90

La tesis de Church-Turing
Algoritmos y MTs
Una MT modela un proceso (ya sea el reconocimiento de una cadena o la codicaci on de una secuencia de s mbolos en su cinta) Un algoritmo es un proceso que siempre ha de terminar en un n umero nito de pasos Una MT que pare ante cualquier entrada es un modelo abstracto de algoritmo Para un lenguaje L que sea recursivo existe un algoritmo M que permite determinar si una w es w L Sin embargo, el problema w L? en el caso de un lenguaje L recursivamente enumerable pero no recursivo es un ejemplo de problema irresoluble: no existe un algoritmo que lo resuelva

F. de Sande ()

M aquinas de Turing

20112012

72 / 90

Problemas resolubles e irresolubles


Denici on: Funci on caracter stica de un lenguaje
Dado un lenguaje L , se dene su funci on caracter stica L : {0, 1} como:

F. de Sande ()

M aquinas de Turing

20112012

73 / 90

Problemas resolubles e irresolubles


Denici on: Funci on caracter stica de un lenguaje
Dado un lenguaje L , se dene su funci on caracter stica L : {0, 1} como: 1 si w L L ( w ) = 0 si w L

F. de Sande ()

M aquinas de Turing

20112012

73 / 90

Problemas resolubles e irresolubles


Denici on: Funci on caracter stica de un lenguaje
Dado un lenguaje L , se dene su funci on caracter stica L : {0, 1} como: 1 si w L L ( w ) = 0 si w L Una funci on f es Turing computable si existe una MT que computa f (w) w del dominio de f

F. de Sande ()

M aquinas de Turing

20112012

73 / 90

Problemas resolubles e irresolubles


Denici on: Funci on caracter stica de un lenguaje
Dado un lenguaje L , se dene su funci on caracter stica L : {0, 1} como: 1 si w L L ( w ) = 0 si w L Una funci on f es Turing computable si existe una MT que computa f (w) w del dominio de f De este modo tenemos que L es Turing computable si L es un lenguaje recursivo

F. de Sande ()

M aquinas de Turing

20112012

73 / 90

Problemas resolubles e irresolubles


Denici on: Funci on caracter stica de un lenguaje
Dado un lenguaje L , se dene su funci on caracter stica L : {0, 1} como: 1 si w L L ( w ) = 0 si w L Una funci on f es Turing computable si existe una MT que computa f (w) w del dominio de f De este modo tenemos que L es Turing computable si L es un lenguaje recursivo Por el contrario sabemos que la funci on L para un lenguaje L que sea recursivamente enumerable pero no recursivo no es computable, puesto que hay cadenas de para las que la MT que reconoce L no para

F. de Sande ()

M aquinas de Turing

20112012

73 / 90

Problemas resolubles e irresolubles


Denici on: Funci on caracter stica de un lenguaje
Dado un lenguaje L , se dene su funci on caracter stica L : {0, 1} como: 1 si w L L ( w ) = 0 si w L Una funci on f es Turing computable si existe una MT que computa f (w) w del dominio de f De este modo tenemos que L es Turing computable si L es un lenguaje recursivo Por el contrario sabemos que la funci on L para un lenguaje L que sea recursivamente enumerable pero no recursivo no es computable, puesto que hay cadenas de para las que la MT que reconoce L no para As pues, tenemos que existen funciones computables y funciones no computables
F. de Sande () M aquinas de Turing 20112012 73 / 90

El problema de la parada (Halting Problem)

El problema de la parada
Se trata posiblemente del m as famoso de los problemas irresolubles

F. de Sande ()

M aquinas de Turing

20112012

74 / 90

El problema de la parada (Halting Problem)

El problema de la parada
Se trata posiblemente del m as famoso de los problemas irresolubles Sea M una MT arbitraria con alfabeto de entrada

F. de Sande ()

M aquinas de Turing

20112012

74 / 90

El problema de la parada (Halting Problem)

El problema de la parada
Se trata posiblemente del m as famoso de los problemas irresolubles Sea M una MT arbitraria con alfabeto de entrada Sea w

F. de Sande ()

M aquinas de Turing

20112012

74 / 90

El problema de la parada (Halting Problem)

El problema de la parada
Se trata posiblemente del m as famoso de los problemas irresolubles Sea M una MT arbitraria con alfabeto de entrada Sea w HP : Parar a M ante la cadena w?

F. de Sande ()

M aquinas de Turing

20112012

74 / 90

El problema de la parada (Halting Problem)

El problema de la parada
Se trata posiblemente del m as famoso de los problemas irresolubles Sea M una MT arbitraria con alfabeto de entrada Sea w HP : Parar a M ante la cadena w? Una instancia de HP es un par < M, w >

F. de Sande ()

M aquinas de Turing

20112012

74 / 90

El problema de la parada (Halting Problem)

El problema de la parada
Se trata posiblemente del m as famoso de los problemas irresolubles Sea M una MT arbitraria con alfabeto de entrada Sea w HP : Parar a M ante la cadena w? Una instancia de HP es un par < M, w > Una soluci on al HP ser a un algoritmo (una MT) que ante cualquier codicaci on e(I ) de una instancia I del problema respondiera SI / NO de forma correcta

F. de Sande ()

M aquinas de Turing

20112012

74 / 90

El problema de la parada

Consideremos un alfabeto

F. de Sande ()

M aquinas de Turing

20112012

75 / 90

El problema de la parada

Consideremos un alfabeto Hemos estudiado que es enumerable: = {w1 , w2 , w3 , w4 , . . .}

F. de Sande ()

M aquinas de Turing

20112012

75 / 90

El problema de la parada

Consideremos un alfabeto Hemos estudiado que es enumerable: = {w1 , w2 , w3 , w4 , . . .} Puesto que las MT con alfabeto , MT() se pueden codicar como cadenas binarias, y hay un n umero numerable de cadenas binarias (no todas representan codicaciones v alidas de MTs), hay un n umero numerable de MT(): M T () = {M1 , M2 , M3 , M4 , . . .}

F. de Sande ()

M aquinas de Turing

20112012

75 / 90

El problema de la parada

Consideremos un alfabeto Hemos estudiado que es enumerable: = {w1 , w2 , w3 , w4 , . . .} Puesto que las MT con alfabeto , MT() se pueden codicar como cadenas binarias, y hay un n umero numerable de cadenas binarias (no todas representan codicaciones v alidas de MTs), hay un n umero numerable de MT(): M T () = {M1 , M2 , M3 , M4 , . . .} Consideremos L = {wi |wi no es aceptada por Mi }

F. de Sande ()

M aquinas de Turing

20112012

75 / 90

El problema de la parada

Lema: L = {wi |wi no es aceptada por Mi } no es recursivamente enumerable


Lo demostramos por reducci on al absurdo: Supongamos que L es recursivamente enumerable

F. de Sande ()

M aquinas de Turing

20112012

76 / 90

El problema de la parada

Lema: L = {wi |wi no es aceptada por Mi } no es recursivamente enumerable


Lo demostramos por reducci on al absurdo: Supongamos que L es recursivamente enumerable Entonces, sea Mk la MT que lo reconoce: L = L(Mk )

F. de Sande ()

M aquinas de Turing

20112012

76 / 90

El problema de la parada

Lema: L = {wi |wi no es aceptada por Mi } no es recursivamente enumerable


Lo demostramos por reducci on al absurdo: Supongamos que L es recursivamente enumerable Entonces, sea Mk la MT que lo reconoce: L = L(Mk ) Consideremos la cadena wk

F. de Sande ()

M aquinas de Turing

20112012

76 / 90

El problema de la parada

Lema: L = {wi |wi no es aceptada por Mi } no es recursivamente enumerable


Lo demostramos por reducci on al absurdo: Supongamos que L es recursivamente enumerable Entonces, sea Mk la MT que lo reconoce: L = L(Mk ) Consideremos la cadena wk Si wk L, wk no es aceptada por Mk , as que wk L(Mk ) = L

F. de Sande ()

M aquinas de Turing

20112012

76 / 90

El problema de la parada

Lema: L = {wi |wi no es aceptada por Mi } no es recursivamente enumerable


Lo demostramos por reducci on al absurdo: Supongamos que L es recursivamente enumerable Entonces, sea Mk la MT que lo reconoce: L = L(Mk ) Consideremos la cadena wk Si wk L, wk no es aceptada por Mk , as que wk L(Mk ) = L Si wk L, wk es aceptada por Mk , as que wk L(Mk ) = L

F. de Sande ()

M aquinas de Turing

20112012

76 / 90

El problema de la parada

Lema: L = {wi |wi no es aceptada por Mi } no es recursivamente enumerable


Lo demostramos por reducci on al absurdo: Supongamos que L es recursivamente enumerable Entonces, sea Mk la MT que lo reconoce: L = L(Mk ) Consideremos la cadena wk Si wk L, wk no es aceptada por Mk , as que wk L(Mk ) = L Si wk L, wk es aceptada por Mk , as que wk L(Mk ) = L Por tanto una MT que reconozca L y por ello L no es recursivamente enumerable

F. de Sande ()

M aquinas de Turing

20112012

76 / 90

El problema de la parada

Teorema: El problema de la parada es irresoluble


Demostraremos que HP es irresoluble por reducci on al absurdo: veremos que si HP es resoluble, podr amos construir una MT ML que reconozca el lenguaje anterior: L = {wi |wi no es aceptada por Mi }

F. de Sande ()

M aquinas de Turing

20112012

77 / 90

El problema de la parada

Teorema: El problema de la parada es irresoluble


Demostraremos que HP es irresoluble por reducci on al absurdo: veremos que si HP es resoluble, podr amos construir una MT ML que reconozca el lenguaje anterior: L = {wi |wi no es aceptada por Mi } Supongamos que HP es resoluble y que por tanto existe un algoritmo que resuelve el problema: una MT MHP que para ante cualquier entrada y que ante descripciones codicadas de una MT M y una cadena de entrada w determina si M para ante w

F. de Sande ()

M aquinas de Turing

20112012

77 / 90

El problema de la parada es irresoluble


L = {wi |wi no es aceptada por Mi } No es RE
1

Sea w

F. de Sande ()

M aquinas de Turing

20112012

78 / 90

El problema de la parada es irresoluble


L = {wi |wi no es aceptada por Mi } No es RE
1 2

Sea w ML enumera w1 , w2 , w3 , w4 , . . . hasta hallar un k N|w = wk

F. de Sande ()

M aquinas de Turing

20112012

78 / 90

El problema de la parada es irresoluble


L = {wi |wi no es aceptada por Mi } No es RE
1 2 3

Sea w ML enumera w1 , w2 , w3 , w4 , . . . hasta hallar un k N|w = wk ML genera la MT Mk

F. de Sande ()

M aquinas de Turing

20112012

78 / 90

El problema de la parada es irresoluble


L = {wi |wi no es aceptada por Mi } No es RE
1 2 3 4

Sea w ML enumera w1 , w2 , w3 , w4 , . . . hasta hallar un k N|w = wk ML genera la MT Mk ML pasa < Mk , wk > a la MHP

F. de Sande ()

M aquinas de Turing

20112012

78 / 90

El problema de la parada es irresoluble


L = {wi |wi no es aceptada por Mi } No es RE
1 2 3 4 5

Sea w ML enumera w1 , w2 , w3 , w4 , . . . hasta hallar un k N|w = wk ML genera la MT Mk ML pasa < Mk , wk > a la MHP Si ML obtiene que Mk no para ante wk , entonces ML para y acepta wk = w

F. de Sande ()

M aquinas de Turing

20112012

78 / 90

El problema de la parada es irresoluble


L = {wi |wi no es aceptada por Mi } No es RE
1 2 3 4 5

Sea w ML enumera w1 , w2 , w3 , w4 , . . . hasta hallar un k N|w = wk ML genera la MT Mk ML pasa < Mk , wk > a la MHP Si ML obtiene que Mk no para ante wk , entonces ML para y acepta wk = w Si ML obtiene que Mk para ante wk , entonces ML pasa < Mk , wk > a MU , la MT Universal

F. de Sande ()

M aquinas de Turing

20112012

78 / 90

El problema de la parada es irresoluble


L = {wi |wi no es aceptada por Mi } No es RE
1 2 3 4 5

Sea w ML enumera w1 , w2 , w3 , w4 , . . . hasta hallar un k N|w = wk ML genera la MT Mk ML pasa < Mk , wk > a la MHP Si ML obtiene que Mk no para ante wk , entonces ML para y acepta wk = w Si ML obtiene que Mk para ante wk , entonces ML pasa < Mk , wk > a MU , la MT Universal En esta situaci on, sabemos que MU parar a (lo ha dicho MHP ) indicando si wk L(Mk )

F. de Sande ()

M aquinas de Turing

20112012

78 / 90

El problema de la parada es irresoluble


L = {wi |wi no es aceptada por Mi } No es RE
1 2 3 4 5

Sea w ML enumera w1 , w2 , w3 , w4 , . . . hasta hallar un k N|w = wk ML genera la MT Mk ML pasa < Mk , wk > a la MHP Si ML obtiene que Mk no para ante wk , entonces ML para y acepta wk = w Si ML obtiene que Mk para ante wk , entonces ML pasa < Mk , wk > a MU , la MT Universal En esta situaci on, sabemos que MU parar a (lo ha dicho MHP ) indicando si wk L(Mk ) Si wk L(Mk ) entonces ML para y rechaza w = wk

F. de Sande ()

M aquinas de Turing

20112012

78 / 90

El problema de la parada es irresoluble


L = {wi |wi no es aceptada por Mi } No es RE
1 2 3 4 5

Sea w ML enumera w1 , w2 , w3 , w4 , . . . hasta hallar un k N|w = wk ML genera la MT Mk ML pasa < Mk , wk > a la MHP Si ML obtiene que Mk no para ante wk , entonces ML para y acepta wk = w Si ML obtiene que Mk para ante wk , entonces ML pasa < Mk , wk > a MU , la MT Universal En esta situaci on, sabemos que MU parar a (lo ha dicho MHP ) indicando si wk L(Mk ) Si wk L(Mk ) entonces ML para y rechaza w = wk Si wk L(Mk ) entonces ML para y acepta w = wk

8 9

F. de Sande ()

M aquinas de Turing

20112012

78 / 90

El problema de la parada es irresoluble


L = {wi |wi no es aceptada por Mi } No es RE
1 2 3 4 5

Sea w ML enumera w1 , w2 , w3 , w4 , . . . hasta hallar un k N|w = wk ML genera la MT Mk ML pasa < Mk , wk > a la MHP Si ML obtiene que Mk no para ante wk , entonces ML para y acepta wk = w Si ML obtiene que Mk para ante wk , entonces ML pasa < Mk , wk > a MU , la MT Universal En esta situaci on, sabemos que MU parar a (lo ha dicho MHP ) indicando si wk L(Mk ) Si wk L(Mk ) entonces ML para y rechaza w = wk Si wk L(Mk ) entonces ML para y acepta w = wk Por lo tanto w L(ML ) w L de modo que L = L(ML ) y esto contradice el hecho de que L no es recursivamente enumerable
F. de Sande () M aquinas de Turing 20112012 78 / 90

8 9 10

El problema de la parada

Veamos una demostraci on alternativa:


Supongamos que el problema de la parada es resoluble

F. de Sande ()

M aquinas de Turing

20112012

79 / 90

El problema de la parada

Veamos una demostraci on alternativa:


Supongamos que el problema de la parada es resoluble Esto equivale a asumir la existencia de un algorimo (MT) que para ante cualquier entrada (e(M ), x) indicando 1 si M para ante entrada x o 0 si M no para ante entrada x:

F. de Sande ()

M aquinas de Turing

20112012

79 / 90

El problema de la parada

Veamos una demostraci on alternativa:


Supongamos que el problema de la parada es resoluble Esto equivale a asumir la existencia de un algorimo (MT) que para ante cualquier entrada (e(M ), x) indicando 1 si M para ante entrada x o 0 si M no para ante entrada x:

F. de Sande ()

M aquinas de Turing

20112012

79 / 90

El problema de la parada

Veamos una demostraci on alternativa:


Supongamos que el problema de la parada es resoluble Esto equivale a asumir la existencia de un algorimo (MT) que para ante cualquier entrada (e(M ), x) indicando 1 si M para ante entrada x o 0 si M no para ante entrada x:

F. de Sande ()

M aquinas de Turing

20112012

79 / 90

El problema de la parada
Construyamos otra MT H tomando como base MHP :
H toma como entrada e(M ), la codicaci on de una MT

F. de Sande ()

M aquinas de Turing

20112012

80 / 90

El problema de la parada
Construyamos otra MT H tomando como base MHP :
H toma como entrada e(M ), la codicaci on de una MT Utiliza una MT auxiliar copiadora que duplica su entrada

F. de Sande ()

M aquinas de Turing

20112012

80 / 90

El problema de la parada
Construyamos otra MT H tomando como base MHP :
H toma como entrada e(M ), la codicaci on de una MT Utiliza una MT auxiliar copiadora que duplica su entrada y se la pasa a una MHP

F. de Sande ()

M aquinas de Turing

20112012

80 / 90

El problema de la parada
Construyamos otra MT H tomando como base MHP :
H toma como entrada e(M ), la codicaci on de una MT Utiliza una MT auxiliar copiadora que duplica su entrada y se la pasa a una MHP H se comporta de modo que entra en un bucle (no para) cuando MHP responde 1

F. de Sande ()

M aquinas de Turing

20112012

80 / 90

El problema de la parada
Construyamos otra MT H tomando como base MHP :
H toma como entrada e(M ), la codicaci on de una MT Utiliza una MT auxiliar copiadora que duplica su entrada y se la pasa a una MHP H se comporta de modo que entra en un bucle (no para) cuando MHP responde 1

F. de Sande ()

M aquinas de Turing

20112012

80 / 90

El problema de la parada
Construyamos otra MT H tomando como base MHP :
H toma como entrada e(M ), la codicaci on de una MT Utiliza una MT auxiliar copiadora que duplica su entrada y se la pasa a una MHP H se comporta de modo que entra en un bucle (no para) cuando MHP responde 1

F. de Sande ()

M aquinas de Turing

20112012

80 / 90

El problema de la parada
Puesto que H es una MT, se la podemos dar como entrada a la propia H :

F. de Sande ()

M aquinas de Turing

20112012

81 / 90

El problema de la parada
Puesto que H es una MT, se la podemos dar como entrada a la propia H :

F. de Sande ()

M aquinas de Turing

20112012

81 / 90

El problema de la parada
Puesto que H es una MT, se la podemos dar como entrada a la propia H :

Obtenemos que:
H NO PARA (entra en un bucle) cuando H PARA ante entrada e(H )

F. de Sande ()

M aquinas de Turing

20112012

81 / 90

El problema de la parada
Puesto que H es una MT, se la podemos dar como entrada a la propia H :

Obtenemos que:
H NO PARA (entra en un bucle) cuando H PARA ante entrada e(H ) H PARA cuando H NO PARA ante entrada e(H )

F. de Sande ()

M aquinas de Turing

20112012

81 / 90

El problema de la parada
Puesto que H es una MT, se la podemos dar como entrada a la propia H :

Obtenemos que:
H NO PARA (entra en un bucle) cuando H PARA ante entrada e(H ) H PARA cuando H NO PARA ante entrada e(H ) Hemos alcanzado un absurdo, debido a suponer la existencia de MHP , el algoritmo que resolver a el problema de la parada
F. de Sande () M aquinas de Turing 20112012 81 / 90

Ejercicio

Construir una MT M que reconozca el lenguaje L = {wcw|w {a, b} } Estrategia:


Consideramos la cadena wcw como w1 cw2

F. de Sande ()

M aquinas de Turing

20112012

82 / 90

Ejercicio

Construir una MT M que reconozca el lenguaje L = {wcw|w {a, b} } Estrategia:


Consideramos la cadena wcw como w1 cw2 Marcamos un s mbolo de w1 con X

F. de Sande ()

M aquinas de Turing

20112012

82 / 90

Ejercicio

Construir una MT M que reconozca el lenguaje L = {wcw|w {a, b} } Estrategia:


Consideramos la cadena wcw como w1 cw2 Marcamos un s mbolo de w1 con X Buscamos en w2 el s mbolo correspondiente y lo marcamos con Y

F. de Sande ()

M aquinas de Turing

20112012

82 / 90

Ejercicio
Transiciones:
(q0 , a) = (q1 , X, R) Marcar el primer s mbolo de w1

F. de Sande ()

M aquinas de Turing

20112012

83 / 90

Ejercicio
Transiciones:
(q0 , a) = (q1 , X, R) Marcar el primer s mbolo de w1 (q0 , b) = (q2 , X, R)

F. de Sande ()

M aquinas de Turing

20112012

83 / 90

Ejercicio
Transiciones:
(q0 , a) = (q1 , X, R) Marcar el primer s mbolo de w1 (q0 , b) = (q2 , X, R) (q1 , a) = (q1 , a, R) Saltar s mbolos hasta encontrar la c

F. de Sande ()

M aquinas de Turing

20112012

83 / 90

Ejercicio
Transiciones:
(q0 , a) = (q1 , X, R) Marcar el primer s mbolo de w1 (q0 , b) = (q2 , X, R) (q1 , a) = (q1 , a, R) Saltar s mbolos hasta encontrar la c (q1 , b) = (q1 , b, R)

F. de Sande ()

M aquinas de Turing

20112012

83 / 90

Ejercicio
Transiciones:
(q0 , a) = (q1 , X, R) Marcar el primer s mbolo de w1 (q0 , b) = (q2 , X, R) (q1 , a) = (q1 , a, R) Saltar s mbolos hasta encontrar la c (q1 , b) = (q1 , b, R) (q2 , a) = (q2 , a, R)

F. de Sande ()

M aquinas de Turing

20112012

83 / 90

Ejercicio
Transiciones:
(q0 , a) = (q1 , X, R) Marcar el primer s mbolo de w1 (q0 , b) = (q2 , X, R) (q1 , a) = (q1 , a, R) Saltar s mbolos hasta encontrar la c (q1 , b) = (q1 , b, R) (q2 , a) = (q2 , a, R) (q2 , b) = (q2 , b, R)

F. de Sande ()

M aquinas de Turing

20112012

83 / 90

Ejercicio
Transiciones:
(q0 , a) = (q1 , X, R) Marcar el primer s mbolo de w1 (q0 , b) = (q2 , X, R) (q1 , a) = (q1 , a, R) Saltar s mbolos hasta encontrar la c (q1 , b) = (q1 , b, R) (q2 , a) = (q2 , a, R) (q2 , b) = (q2 , b, R) (q1 , c) = (q3 , c, R)

F. de Sande ()

M aquinas de Turing

20112012

83 / 90

Ejercicio
Transiciones:
(q0 , a) = (q1 , X, R) Marcar el primer s mbolo de w1 (q0 , b) = (q2 , X, R) (q1 , a) = (q1 , a, R) Saltar s mbolos hasta encontrar la c (q1 , b) = (q1 , b, R) (q2 , a) = (q2 , a, R) (q2 , b) = (q2 , b, R) (q1 , c) = (q3 , c, R) (q2 , c) = (q4 , c, R)

F. de Sande ()

M aquinas de Turing

20112012

83 / 90

Ejercicio
Transiciones:
(q0 , a) = (q1 , X, R) Marcar el primer s mbolo de w1 (q0 , b) = (q2 , X, R) (q1 , a) = (q1 , a, R) Saltar s mbolos hasta encontrar la c (q1 , b) = (q1 , b, R) (q2 , a) = (q2 , a, R) (q2 , b) = (q2 , b, R) (q1 , c) = (q3 , c, R) (q2 , c) = (q4 , c, R) (q3 , Y ) = (q3 , Y, R) Saltar todos los s mbolos de w2 ya marcados

F. de Sande ()

M aquinas de Turing

20112012

83 / 90

Ejercicio
Transiciones:
(q0 , a) = (q1 , X, R) Marcar el primer s mbolo de w1 (q0 , b) = (q2 , X, R) (q1 , a) = (q1 , a, R) Saltar s mbolos hasta encontrar la c (q1 , b) = (q1 , b, R) (q2 , a) = (q2 , a, R) (q2 , b) = (q2 , b, R) (q1 , c) = (q3 , c, R) (q2 , c) = (q4 , c, R) (q3 , Y ) = (q3 , Y, R) Saltar todos los s mbolos de w2 ya marcados (q4 , Y ) = (q4 , Y, R)

F. de Sande ()

M aquinas de Turing

20112012

83 / 90

Ejercicio
Transiciones:
(q3 , a) = (q5 , Y, L) Comprobar que el s mbolo de w2 alcanzado coincide con el que se marc o en w1

F. de Sande ()

M aquinas de Turing

20112012

84 / 90

Ejercicio
Transiciones:
(q3 , a) = (q5 , Y, L) Comprobar que el s mbolo de w2 alcanzado coincide con el que se marc o en w1 (q4 , b) = (q5 , Y, L)

F. de Sande ()

M aquinas de Turing

20112012

84 / 90

Ejercicio
Transiciones:
(q3 , a) = (q5 , Y, L) Comprobar que el s mbolo de w2 alcanzado coincide con el que se marc o en w1 (q4 , b) = (q5 , Y, L) (q5 , Y ) = (q5 , Y, L) Volver atr as hasta encontrar X ( ultimo s mbolo marcado de w1 y comenzar de nuevo

F. de Sande ()

M aquinas de Turing

20112012

84 / 90

Ejercicio
Transiciones:
(q3 , a) = (q5 , Y, L) Comprobar que el s mbolo de w2 alcanzado coincide con el que se marc o en w1 (q4 , b) = (q5 , Y, L) (q5 , Y ) = (q5 , Y, L) Volver atr as hasta encontrar X ( ultimo s mbolo marcado de w1 y comenzar de nuevo (q5 , c) = (q5 , c, L)

F. de Sande ()

M aquinas de Turing

20112012

84 / 90

Ejercicio
Transiciones:
(q3 , a) = (q5 , Y, L) Comprobar que el s mbolo de w2 alcanzado coincide con el que se marc o en w1 (q4 , b) = (q5 , Y, L) (q5 , Y ) = (q5 , Y, L) Volver atr as hasta encontrar X ( ultimo s mbolo marcado de w1 y comenzar de nuevo (q5 , c) = (q5 , c, L) (q5 , a) = (q5 , a, L)

F. de Sande ()

M aquinas de Turing

20112012

84 / 90

Ejercicio
Transiciones:
(q3 , a) = (q5 , Y, L) Comprobar que el s mbolo de w2 alcanzado coincide con el que se marc o en w1 (q4 , b) = (q5 , Y, L) (q5 , Y ) = (q5 , Y, L) Volver atr as hasta encontrar X ( ultimo s mbolo marcado de w1 y comenzar de nuevo (q5 , c) = (q5 , c, L) (q5 , a) = (q5 , a, L) (q5 , b) = (q5 , b, L)

F. de Sande ()

M aquinas de Turing

20112012

84 / 90

Ejercicio
Transiciones:
(q3 , a) = (q5 , Y, L) Comprobar que el s mbolo de w2 alcanzado coincide con el que se marc o en w1 (q4 , b) = (q5 , Y, L) (q5 , Y ) = (q5 , Y, L) Volver atr as hasta encontrar X ( ultimo s mbolo marcado de w1 y comenzar de nuevo (q5 , c) = (q5 , c, L) (q5 , a) = (q5 , a, L) (q5 , b) = (q5 , b, L) (q5 , X ) = (q0 , X, R)

F. de Sande ()

M aquinas de Turing

20112012

84 / 90

Ejercicio
Transiciones:
(q3 , a) = (q5 , Y, L) Comprobar que el s mbolo de w2 alcanzado coincide con el que se marc o en w1 (q4 , b) = (q5 , Y, L) (q5 , Y ) = (q5 , Y, L) Volver atr as hasta encontrar X ( ultimo s mbolo marcado de w1 y comenzar de nuevo (q5 , c) = (q5 , c, L) (q5 , a) = (q5 , a, L) (q5 , b) = (q5 , b, L) (q5 , X ) = (q0 , X, R) (q0 , c) = (q6 , c, R) Comprobar que todos los s mbolos de w2 est an emparejadas

F. de Sande ()

M aquinas de Turing

20112012

84 / 90

Ejercicio
Transiciones:
(q3 , a) = (q5 , Y, L) Comprobar que el s mbolo de w2 alcanzado coincide con el que se marc o en w1 (q4 , b) = (q5 , Y, L) (q5 , Y ) = (q5 , Y, L) Volver atr as hasta encontrar X ( ultimo s mbolo marcado de w1 y comenzar de nuevo (q5 , c) = (q5 , c, L) (q5 , a) = (q5 , a, L) (q5 , b) = (q5 , b, L) (q5 , X ) = (q0 , X, R) (q0 , c) = (q6 , c, R) Comprobar que todos los s mbolos de w2 est an emparejadas (q6 , Y ) = (q6 , Y, R)

F. de Sande ()

M aquinas de Turing

20112012

84 / 90

Ejercicio
Transiciones:
(q3 , a) = (q5 , Y, L) Comprobar que el s mbolo de w2 alcanzado coincide con el que se marc o en w1 (q4 , b) = (q5 , Y, L) (q5 , Y ) = (q5 , Y, L) Volver atr as hasta encontrar X ( ultimo s mbolo marcado de w1 y comenzar de nuevo (q5 , c) = (q5 , c, L) (q5 , a) = (q5 , a, L) (q5 , b) = (q5 , b, L) (q5 , X ) = (q0 , X, R) (q0 , c) = (q6 , c, R) Comprobar que todos los s mbolos de w2 est an emparejadas (q6 , Y ) = (q6 , Y, R) (q6 , b) = (q7 , b, L) Reconocimiento nal de la cadena
F. de Sande () M aquinas de Turing 20112012 84 / 90

Ejercicio
Especicar completamente una m aquina de Turing M (Q, , , q0 , F, b), con no m as de 5 estados, que acepte las cadenas sobre el alfabeto = {a, b, c} que no tienen ninguna a en su primera mitad y ninguna b en su segunda mitad. Las cadenas de longitud impar no deben ser aceptadas.

F. de Sande ()

M aquinas de Turing

20112012

85 / 90

Ejercicio
Especicar completamente una m aquina de Turing M (Q, , , q0 , F, b), con no m as de 5 estados, que acepte las cadenas sobre el alfabeto = {a, b, c} que no tienen ninguna a en su primera mitad y ninguna b en su segunda mitad. Las cadenas de longitud impar no deben ser aceptadas. Estrategia:
Mover la m aquina alternativamente desde el extremo izq. al dcho. de la cadena, marcando el s mbolo que encuentra en el extremo izquierdo con d y el que encuentra en el extremo derecho, con e

F. de Sande ()

M aquinas de Turing

20112012

85 / 90

Ejercicio
Especicar completamente una m aquina de Turing M (Q, , , q0 , F, b), con no m as de 5 estados, que acepte las cadenas sobre el alfabeto = {a, b, c} que no tienen ninguna a en su primera mitad y ninguna b en su segunda mitad. Las cadenas de longitud impar no deben ser aceptadas. Estrategia:
Mover la m aquina alternativamente desde el extremo izq. al dcho. de la cadena, marcando el s mbolo que encuentra en el extremo izquierdo con d y el que encuentra en el extremo derecho, con e Si por la izq. encuentra una a, parar

F. de Sande ()

M aquinas de Turing

20112012

85 / 90

Ejercicio
Especicar completamente una m aquina de Turing M (Q, , , q0 , F, b), con no m as de 5 estados, que acepte las cadenas sobre el alfabeto = {a, b, c} que no tienen ninguna a en su primera mitad y ninguna b en su segunda mitad. Las cadenas de longitud impar no deben ser aceptadas. Estrategia:
Mover la m aquina alternativamente desde el extremo izq. al dcho. de la cadena, marcando el s mbolo que encuentra en el extremo izquierdo con d y el que encuentra en el extremo derecho, con e Si por la izq. encuentra una a, parar Si por la derecha se encuentra una b, parar

F. de Sande ()

M aquinas de Turing

20112012

85 / 90

Ejercicio
Transiciones:
(q0 , b) = (q1 , d, R) En q0 cambia b o c por d y pasa a q1

F. de Sande ()

M aquinas de Turing

20112012

86 / 90

Ejercicio
Transiciones:
(q0 , b) = (q1 , d, R) En q0 cambia b o c por d y pasa a q1 (q0 , c) = (q1 , d, R)

F. de Sande ()

M aquinas de Turing

20112012

86 / 90

Ejercicio
Transiciones:
(q0 , b) = (q1 , d, R) En q0 cambia b o c por d y pasa a q1 (q0 , c) = (q1 , d, R) (q1 , a) = (q1 , a, R) En q1 se mueve a la derecha hasta encontrar una e o bien un blanco.

F. de Sande ()

M aquinas de Turing

20112012

86 / 90

Ejercicio
Transiciones:
(q0 , b) = (q1 , d, R) En q0 cambia b o c por d y pasa a q1 (q0 , c) = (q1 , d, R) (q1 , a) = (q1 , a, R) En q1 se mueve a la derecha hasta encontrar una e o bien un blanco. (q1 , b) = (q1 , b, R)

F. de Sande ()

M aquinas de Turing

20112012

86 / 90

Ejercicio
Transiciones:
(q0 , b) = (q1 , d, R) En q0 cambia b o c por d y pasa a q1 (q0 , c) = (q1 , d, R) (q1 , a) = (q1 , a, R) En q1 se mueve a la derecha hasta encontrar una e o bien un blanco. (q1 , b) = (q1 , b, R) (q1 , c) = (q1 , c, R)

F. de Sande ()

M aquinas de Turing

20112012

86 / 90

Ejercicio
Transiciones:
(q0 , b) = (q1 , d, R) En q0 cambia b o c por d y pasa a q1 (q0 , c) = (q1 , d, R) (q1 , a) = (q1 , a, R) En q1 se mueve a la derecha hasta encontrar una e o bien un blanco. (q1 , b) = (q1 , b, R) (q1 , c) = (q1 , c, R) (q1 , e) = (q2 , e, L) Cuando encuentra una e o bien un blanco, pasa a q2 y mueve a la izq.

F. de Sande ()

M aquinas de Turing

20112012

86 / 90

Ejercicio
Transiciones:
(q0 , b) = (q1 , d, R) En q0 cambia b o c por d y pasa a q1 (q0 , c) = (q1 , d, R) (q1 , a) = (q1 , a, R) En q1 se mueve a la derecha hasta encontrar una e o bien un blanco. (q1 , b) = (q1 , b, R) (q1 , c) = (q1 , c, R) (q1 , e) = (q2 , e, L) Cuando encuentra una e o bien un blanco, pasa a q2 y mueve a la izq. (q1 , b) = (q2 , b, L)

F. de Sande ()

M aquinas de Turing

20112012

86 / 90

Ejercicio
Transiciones:
(q0 , b) = (q1 , d, R) En q0 cambia b o c por d y pasa a q1 (q0 , c) = (q1 , d, R) (q1 , a) = (q1 , a, R) En q1 se mueve a la derecha hasta encontrar una e o bien un blanco. (q1 , b) = (q1 , b, R) (q1 , c) = (q1 , c, R) (q1 , e) = (q2 , e, L) Cuando encuentra una e o bien un blanco, pasa a q2 y mueve a la izq. (q1 , b) = (q2 , b, L) (q2 , a) = (q3 , e, L) En q2 , cambia a o c por e y pasa a q3 .

F. de Sande ()

M aquinas de Turing

20112012

86 / 90

Ejercicio
Transiciones:
(q0 , b) = (q1 , d, R) En q0 cambia b o c por d y pasa a q1 (q0 , c) = (q1 , d, R) (q1 , a) = (q1 , a, R) En q1 se mueve a la derecha hasta encontrar una e o bien un blanco. (q1 , b) = (q1 , b, R) (q1 , c) = (q1 , c, R) (q1 , e) = (q2 , e, L) Cuando encuentra una e o bien un blanco, pasa a q2 y mueve a la izq. (q1 , b) = (q2 , b, L) (q2 , a) = (q3 , e, L) En q2 , cambia a o c por e y pasa a q3 . (q2 , c) = (q3 , e, L)

F. de Sande ()

M aquinas de Turing

20112012

86 / 90

Ejercicio
Transiciones:
(q0 , b) = (q1 , d, R) En q0 cambia b o c por d y pasa a q1 (q0 , c) = (q1 , d, R) (q1 , a) = (q1 , a, R) En q1 se mueve a la derecha hasta encontrar una e o bien un blanco. (q1 , b) = (q1 , b, R) (q1 , c) = (q1 , c, R) (q1 , e) = (q2 , e, L) Cuando encuentra una e o bien un blanco, pasa a q2 y mueve a la izq. (q1 , b) = (q2 , b, L) (q2 , a) = (q3 , e, L) En q2 , cambia a o c por e y pasa a q3 . (q2 , c) = (q3 , e, L) (q0 , e) = (q4 , e, R) Si en q0 encuentra e pasa a q4 y acepta.
F. de Sande () M aquinas de Turing 20112012 86 / 90

Ejercicio

Transiciones:
(q3 , a) = (q3 , a, L) En q3 se mueve a la izquierda hasta encontrar una d y pasa a q0 (repite).

F. de Sande ()

M aquinas de Turing

20112012

87 / 90

Ejercicio

Transiciones:
(q3 , a) = (q3 , a, L) En q3 se mueve a la izquierda hasta encontrar una d y pasa a q0 (repite). (q3 , c) = (q3 , c, L)

F. de Sande ()

M aquinas de Turing

20112012

87 / 90

Ejercicio

Transiciones:
(q3 , a) = (q3 , a, L) En q3 se mueve a la izquierda hasta encontrar una d y pasa a q0 (repite). (q3 , c) = (q3 , c, L) (q3 , b) = (q3 , b, L)

F. de Sande ()

M aquinas de Turing

20112012

87 / 90

Ejercicio

Transiciones:
(q3 , a) = (q3 , a, L) En q3 se mueve a la izquierda hasta encontrar una d y pasa a q0 (repite). (q3 , c) = (q3 , c, L) (q3 , b) = (q3 , b, L) (q3 , d) = (q0 , d, R)

F. de Sande ()

M aquinas de Turing

20112012

87 / 90

Ejercicio

Transiciones:
(q3 , a) = (q3 , a, L) En q3 se mueve a la izquierda hasta encontrar una d y pasa a q0 (repite). (q3 , c) = (q3 , c, L) (q3 , b) = (q3 , b, L) (q3 , d) = (q0 , d, R)

F. de Sande ()

M aquinas de Turing

20112012

87 / 90

Ejercicio

Transiciones:
(q3 , a) = (q3 , a, L) En q3 se mueve a la izquierda hasta encontrar una d y pasa a q0 (repite). (q3 , c) = (q3 , c, L) (q3 , b) = (q3 , b, L) (q3 , d) = (q0 , d, R) Q = {q0 , q1 , q2 , q3 , q4 } = {a, b, c} = {a, b, c, d, e}

F. de Sande ()

M aquinas de Turing

20112012

87 / 90

Ejercicio

Considere la siguiente armaci on: Si L es un lenguaje regular, entonces existe una m aquina de Turing que reconoce las cadenas w L.
Si es falsa, demu estrelo, y si es cierta demuestre una cota superior para el n umero de pasos de c omputo que utiliza la m aquina de Turing para reconocer las cadenas de L

F. de Sande ()

M aquinas de Turing

20112012

88 / 90

Ejercicio
Construir una MT est andar M que escriba sucesivamente en su cinta los n umeros naturales codicados en binario: 0, 1, 10, 11, 100, 101, . . .
La cabeza de L/E comienza situada sobre un 0: . . . b0 b . . . Cada n umero n N se sobreescribe en la cinta sobre el anterior

F. de Sande ()

M aquinas de Turing

20112012

89 / 90

Ejercicio
Construir una MT est andar M que escriba sucesivamente en su cinta los n umeros naturales codicados en binario: 0, 1, 10, 11, 100, 101, . . .
La cabeza de L/E comienza situada sobre un 0: . . . b0 b . . . Cada n umero n N se sobreescribe en la cinta sobre el anterior

Estrategia
La cabeza de L/E se coloca en el bit menos signicativo (LSB) del n umero Y cada n umero se genera sumando 1 al anterior Para sumar 1, lo hacemos del modo habitual en binario Simplemente controlamos con un estado q1 si ha habido acarreo en el u ltimo d gito procesado
F. de Sande () M aquinas de Turing 20112012 89 / 90

Ejercicio
M:
1

(q0 , 0) = (q0 , 1, S ) Si el LSB es 0, se cambia por 1

Q = {q0 , q1 , q2 } = {0, 1} = {0, 1, b}


F. de Sande () M aquinas de Turing 20112012 90 / 90

Ejercicio
M:
1 2

(q0 , 0) = (q0 , 1, S ) Si el LSB es 0, se cambia por 1 (q0 , 1) = (q1 , 0, L) Si es 1, se cambia por 0 y se pasa a q1 , estado de acarreo (EA)

Q = {q0 , q1 , q2 } = {0, 1} = {0, 1, b}


F. de Sande () M aquinas de Turing 20112012 90 / 90

Ejercicio
M:
1 2

(q0 , 0) = (q0 , 1, S ) Si el LSB es 0, se cambia por 1 (q0 , 1) = (q1 , 0, L) Si es 1, se cambia por 0 y se pasa a q1 , estado de acarreo (EA) (q1 , 0) = (q2 , 1, R) Si en el EA encontramos 0, cambiamos por 1

Q = {q0 , q1 , q2 } = {0, 1} = {0, 1, b}


F. de Sande () M aquinas de Turing 20112012 90 / 90

Ejercicio
M:
1 2

(q0 , 0) = (q0 , 1, S ) Si el LSB es 0, se cambia por 1 (q0 , 1) = (q1 , 0, L) Si es 1, se cambia por 0 y se pasa a q1 , estado de acarreo (EA) (q1 , 0) = (q2 , 1, R) Si en el EA encontramos 0, cambiamos por 1 (q1 , 1) = (q1 , 0, L) Si en el EA encuentra 0 lo cambia por 1

3 4

Q = {q0 , q1 , q2 } = {0, 1} = {0, 1, b}


F. de Sande () M aquinas de Turing 20112012 90 / 90

Ejercicio
M:
1 2

(q0 , 0) = (q0 , 1, S ) Si el LSB es 0, se cambia por 1 (q0 , 1) = (q1 , 0, L) Si es 1, se cambia por 0 y se pasa a q1 , estado de acarreo (EA) (q1 , 0) = (q2 , 1, R) Si en el EA encontramos 0, cambiamos por 1 (q1 , 1) = (q1 , 0, L) Si en el EA encuentra 0 lo cambia por 1 (q1 , b) = (q2 , 1, R) Si en el EA encuentra b lo cambia por 1

3 4 5

Q = {q0 , q1 , q2 } = {0, 1} = {0, 1, b}


F. de Sande () M aquinas de Turing 20112012 90 / 90

Ejercicio
M:
1 2

(q0 , 0) = (q0 , 1, S ) Si el LSB es 0, se cambia por 1 (q0 , 1) = (q1 , 0, L) Si es 1, se cambia por 0 y se pasa a q1 , estado de acarreo (EA) (q1 , 0) = (q2 , 1, R) Si en el EA encontramos 0, cambiamos por 1 (q1 , 1) = (q1 , 0, L) Si en el EA encuentra 0 lo cambia por 1 (q1 , b) = (q2 , 1, R) Si en el EA encuentra b lo cambia por 1 (q2 , 1) = (q2 , 1, R) En q2 se mueve R para posicionarse en el LSB

3 4 5 6

Q = {q0 , q1 , q2 } = {0, 1} = {0, 1, b}


F. de Sande () M aquinas de Turing 20112012 90 / 90

Ejercicio
M:
1 2

(q0 , 0) = (q0 , 1, S ) Si el LSB es 0, se cambia por 1 (q0 , 1) = (q1 , 0, L) Si es 1, se cambia por 0 y se pasa a q1 , estado de acarreo (EA) (q1 , 0) = (q2 , 1, R) Si en el EA encontramos 0, cambiamos por 1 (q1 , 1) = (q1 , 0, L) Si en el EA encuentra 0 lo cambia por 1 (q1 , b) = (q2 , 1, R) Si en el EA encuentra b lo cambia por 1 (q2 , 1) = (q2 , 1, R) En q2 se mueve R para posicionarse en el LSB (q2 , 0) = (q2 , 0, R)

3 4 5 6 7

Q = {q0 , q1 , q2 } = {0, 1} = {0, 1, b}


F. de Sande () M aquinas de Turing 20112012 90 / 90

Ejercicio
M:
1 2

(q0 , 0) = (q0 , 1, S ) Si el LSB es 0, se cambia por 1 (q0 , 1) = (q1 , 0, L) Si es 1, se cambia por 0 y se pasa a q1 , estado de acarreo (EA) (q1 , 0) = (q2 , 1, R) Si en el EA encontramos 0, cambiamos por 1 (q1 , 1) = (q1 , 0, L) Si en el EA encuentra 0 lo cambia por 1 (q1 , b) = (q2 , 1, R) Si en el EA encuentra b lo cambia por 1 (q2 , 1) = (q2 , 1, R) En q2 se mueve R para posicionarse en el LSB (q2 , 0) = (q2 , 0, R) (q2 , b) = (q0 , b, L) Cuando encuentra el b ya ha llegado al extremo izq. Q = {q0 , q1 , q2 } = {0, 1} = {0, 1, b}
F. de Sande () M aquinas de Turing 20112012 90 / 90

3 4 5 6 7 8

Das könnte Ihnen auch gefallen