Beruflich Dokumente
Kultur Dokumente
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, )
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
F. de Sande ()
M aquinas de Turing
20112012
7 / 90
F. de Sande ()
M aquinas de Turing
20112012
7 / 90
F. de Sande ()
M aquinas de Turing
20112012
7 / 90
F. de Sande ()
M aquinas de Turing
20112012
7 / 90
F. de Sande ()
M aquinas de Turing
20112012
7 / 90
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
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
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
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
(q1 , baabb b)
M aquinas de Turing
...
20112012 7 / 90
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
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
F. de Sande ()
M aquinas de Turing
20112012
10 / 90
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
w1 pw2 para p F, wi }
F. de Sande ()
M aquinas de Turing
20112012
11 / 90
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
F. de Sande ()
M aquinas de Turing
20112012
13 / 90
F. de Sande ()
M aquinas de Turing
20112012
13 / 90
F. de Sande ()
M aquinas de Turing
20112012
13 / 90
F. de Sande ()
M aquinas de Turing
20112012
13 / 90
F. de Sande ()
M aquinas de Turing
20112012
14 / 90
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
F. de Sande ()
M aquinas de Turing
20112012
15 / 90
F. de Sande ()
M aquinas de Turing
20112012
15 / 90
F. de Sande ()
M aquinas de Turing
20112012
15 / 90
F. de Sande ()
M aquinas de Turing
20112012
15 / 90
F. de Sande ()
M aquinas de Turing
20112012
15 / 90
F. de Sande ()
M aquinas de Turing
20112012
16 / 90
F. de Sande ()
M aquinas de Turing
20112012
16 / 90
F. de Sande ()
M aquinas de Turing
20112012
16 / 90
F. de Sande ()
M aquinas de Turing
20112012
16 / 90
F. de Sande ()
M aquinas de Turing
20112012
16 / 90
F. de Sande ()
M aquinas de Turing
20112012
17 / 90
F. de Sande ()
M aquinas de Turing
20112012
17 / 90
F. de Sande ()
M aquinas de Turing
20112012
17 / 90
F. de Sande ()
M aquinas de Turing
20112012
18 / 90
q5 , b, L
F. de Sande ()
M aquinas de Turing
20112012
18 / 90
F. de Sande ()
M aquinas de Turing
20112012
19 / 90
q5
F. de Sande () M aquinas de Turing 20112012 19 / 90
F. de Sande ()
M aquinas de Turing
20112012
20 / 90
F. de Sande ()
M aquinas de Turing
20112012
20 / 90
F. de Sande ()
M aquinas de Turing
20112012
20 / 90
F. de Sande ()
M aquinas de Turing
20112012
21 / 90
F. de Sande ()
M aquinas de Turing
20112012
21 / 90
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
(q3 , b1 b2 . . . bn )
F. de Sande ()
M aquinas de Turing
20112012
22 / 90
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
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
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
F. de Sande ()
M aquinas de Turing
20112012
28 / 90
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
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
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
F. de Sande ()
M aquinas de Turing
20112012
29 / 90
(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
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
F. de Sande ()
M aquinas de Turing
20112012
33 / 90
MT multicinta: ejemplo
F. de Sande ()
M aquinas de Turing
20112012
33 / 90
MT multicinta: ejemplo
F. de Sande ()
M aquinas de Turing
20112012
33 / 90
MT multicinta: ejemplo
F. de Sande ()
M aquinas de Turing
20112012
33 / 90
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
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
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
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
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
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
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
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
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
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
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
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
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
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
Implementaci on de MU
El modo de funcionamiento de MU es el siguiente:
F. de Sande ()
M aquinas de Turing
20112012
40 / 90
Implementaci on de MU
El modo de funcionamiento de MU es el siguiente:
1
F. de Sande ()
M aquinas de Turing
20112012
40 / 90
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
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
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
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
Ejercicios
F. de Sande ()
M aquinas de Turing
20112012
41 / 90
Ejercicios
1
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
F. de Sande ()
M aquinas de Turing
20112012
42 / 90
F. de Sande ()
M aquinas de Turing
20112012
42 / 90
F. de Sande ()
M aquinas de Turing
20112012
42 / 90
F. de Sande ()
M aquinas de Turing
20112012
42 / 90
F. de Sande ()
M aquinas de Turing
20112012
42 / 90
F. de Sande ()
M aquinas de Turing
20112012
42 / 90
F. de Sande ()
M aquinas de Turing
20112012
42 / 90
Teorema:
Si L es un lenguaje regular, entonces L es un lenguaje recursivo
F. de Sande ()
M aquinas de Turing
20112012
43 / 90
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
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
F. de Sande ()
M aquinas de Turing
20112012
46 / 90
Lenguajes recursivos
1 2
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
Teorema
Si L es un lenguaje recursivo, entonces L tambi en lo es
F. de Sande ()
M aquinas de Turing
20112012
49 / 90
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
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
F. de Sande ()
M aquinas de Turing
20112012
50 / 90
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
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
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
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
F. de Sande ()
M aquinas de Turing
20112012
51 / 90
F. de Sande ()
M aquinas de Turing
20112012
51 / 90
F. de Sande ()
M aquinas de Turing
20112012
51 / 90
F. de Sande ()
M aquinas de Turing
20112012
51 / 90
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
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
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
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
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
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
F. de Sande ()
M aquinas de Turing
20112012
52 / 90
F. de Sande ()
M aquinas de Turing
20112012
52 / 90
F. de Sande ()
M aquinas de Turing
20112012
52 / 90
F. de Sande ()
M aquinas de Turing
20112012
52 / 90
F. de Sande ()
M aquinas de Turing
20112012
52 / 90
F. de Sande ()
M aquinas de Turing
20112012
52 / 90
F. de Sande ()
M aquinas de Turing
20112012
52 / 90
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
F. de Sande ()
M aquinas de Turing
20112012
54 / 90
F. de Sande ()
M aquinas de Turing
20112012
54 / 90
F. de Sande ()
M aquinas de Turing
20112012
55 / 90
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
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
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
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
F. de Sande ()
M aquinas de Turing
20112012
56 / 90
F. de Sande ()
M aquinas de Turing
20112012
56 / 90
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
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
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
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
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
F. de Sande ()
M aquinas de Turing
20112012
60 / 90
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
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
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
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
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
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 ()
=i El entero i (inmediato)
F. de Sande ()
M aquinas de Turing
20112012
61 / 90
F. de Sande ()
M aquinas de Turing
20112012
61 / 90
=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
=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
=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
F. de Sande ()
M aquinas de Turing
20112012
61 / 90
=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]
F. de Sande ()
M aquinas de Turing
20112012
61 / 90
=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]]
F. de Sande ()
M aquinas de Turing
20112012
61 / 90
=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]]
F. de Sande ()
M aquinas de Turing
20112012
61 / 90
=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]]
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
F. de Sande ()
M aquinas de Turing
20112012
62 / 90
F. de Sande ()
M aquinas de Turing
20112012
62 / 90
pos :
while :
continue :
endwhile : endif :
F. de Sande ()
M aquinas de Turing
20112012
63 / 90
F. de Sande ()
M aquinas de Turing
20112012
64 / 90
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
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
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
F. de Sande ()
M aquinas de Turing
20112012
65 / 90
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
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
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
F. de Sande ()
M aquinas de Turing
20112012
66 / 90
F. de Sande ()
M aquinas de Turing
20112012
66 / 90
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
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
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
F. de Sande ()
M aquinas de Turing
20112012
67 / 90
F. de Sande ()
M aquinas de Turing
20112012
67 / 90
F. de Sande ()
M aquinas de Turing
20112012
67 / 90
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
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
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
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
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
F. de Sande ()
M aquinas de Turing
20112012
69 / 90
F. de Sande ()
M aquinas de Turing
20112012
69 / 90
F. de Sande ()
M aquinas de Turing
20112012
69 / 90
F. de Sande ()
M aquinas de Turing
20112012
69 / 90
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 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 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 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
F. de Sande ()
M aquinas de Turing
20112012
71 / 90
La tesis de Church-Turing
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
F. de Sande ()
M aquinas de Turing
20112012
73 / 90
F. de Sande ()
M aquinas de Turing
20112012
73 / 90
F. de Sande ()
M aquinas de Turing
20112012
73 / 90
F. de Sande ()
M aquinas de Turing
20112012
73 / 90
F. de Sande ()
M aquinas de Turing
20112012
73 / 90
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
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
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
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
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
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
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
F. de Sande ()
M aquinas de Turing
20112012
76 / 90
El problema de la parada
F. de Sande ()
M aquinas de Turing
20112012
76 / 90
El problema de la parada
F. de Sande ()
M aquinas de Turing
20112012
76 / 90
El problema de la parada
F. de Sande ()
M aquinas de Turing
20112012
76 / 90
El problema de la parada
F. de Sande ()
M aquinas de Turing
20112012
76 / 90
El problema de la parada
F. de Sande ()
M aquinas de Turing
20112012
76 / 90
El problema de la parada
F. de Sande ()
M aquinas de Turing
20112012
77 / 90
El problema de la parada
F. de Sande ()
M aquinas de Turing
20112012
77 / 90
Sea w
F. de Sande ()
M aquinas de Turing
20112012
78 / 90
F. de Sande ()
M aquinas de Turing
20112012
78 / 90
F. de Sande ()
M aquinas de Turing
20112012
78 / 90
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
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
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
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
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
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
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
F. de Sande ()
M aquinas de Turing
20112012
79 / 90
El problema de la parada
F. de Sande ()
M aquinas de Turing
20112012
79 / 90
El problema de la parada
F. de Sande ()
M aquinas de Turing
20112012
79 / 90
El problema de la parada
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
F. de Sande ()
M aquinas de Turing
20112012
82 / 90
Ejercicio
F. de Sande ()
M aquinas de Turing
20112012
82 / 90
Ejercicio
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
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)
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
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
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
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
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
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