El documento describe la máquina de Turing, un modelo matemático de computación. Una máquina de Turing consiste en un autómata finito que puede leer y escribir símbolos en una cinta semi-infinita, moviéndose entre posiciones. El documento explica cómo una máquina de Turing puede reconocer lenguajes formales y resolver problemas computables, aunque hay límites a lo que puede computar. También describe las configuraciones y transiciones de estado que modelan el proceso de computación de una máquina de Turing.
Tutorial de JFLAP en español que explica paso a paso todas las funcionalidades de la herramienta y al final contiene varias prácticas que van de un nivel de dificultad bajo hacia uno más alto.
Automata de Pila y Maquina de Turing No DeterministasPedro Roman
Presentación de los temas Automata de Pila No Deterministas y Maquina de Turing No Deterministas
Universidad Iberoamericana
Lenguajes Formales y Teorias de Automatas
Estudiantes:
Luis R. Sánchez 15-0589
Pedro Román Infante 15-0298
Tutorial de JFLAP en español que explica paso a paso todas las funcionalidades de la herramienta y al final contiene varias prácticas que van de un nivel de dificultad bajo hacia uno más alto.
Automata de Pila y Maquina de Turing No DeterministasPedro Roman
Presentación de los temas Automata de Pila No Deterministas y Maquina de Turing No Deterministas
Universidad Iberoamericana
Lenguajes Formales y Teorias de Automatas
Estudiantes:
Luis R. Sánchez 15-0589
Pedro Román Infante 15-0298
Esta presentación es parte del contenido del curso de Programación Avanzada impartido en la Universidad Rafael Landívar durante el año 2015.
Incluye los temas:
• Búsqueda por método secuencial
• Búsqueda por método binario
• Búsqueda por método hashing
Creado por Ing. Alvaro Enrique Ruano
Esta presentación es parte del contenido del curso de Programación Avanzada impartido en la Universidad Rafael Landívar durante el año 2015.
Incluye los temas:
• Búsqueda por método secuencial
• Búsqueda por método binario
• Búsqueda por método hashing
Creado por Ing. Alvaro Enrique Ruano
1. 3.1 Máquina de Turing3.1 Máquina de Turing
Adolfo Guzmán ArenasAdolfo Guzmán Arenas
a.guzman@acm.orga.guzman@acm.org
2. Máquina de TuringMáquina de Turing
Es un modelo mucho más cercano a unaEs un modelo mucho más cercano a una
computadora de propósito general.computadora de propósito general.
– Puede hacer cualquier cosa que unaPuede hacer cualquier cosa que una
computadora pueda hacer.computadora pueda hacer.
– Aún así, ciertas cosas no las puede hacerAún así, ciertas cosas no las puede hacer
Ciertos problemas no los puede resolver.Ciertos problemas no los puede resolver.
En un sentido real, tales problemas están más alláEn un sentido real, tales problemas están más allá
de los límites teóricos de la computación.de los límites teóricos de la computación.
3. Su control es un autómata finito.Su control es un autómata finito.
Usa una cinta semi-infinita.Usa una cinta semi-infinita.
– Inicialmente, contiene solo la cadena de entradaInicialmente, contiene solo la cadena de entrada
y blancos (y blancos (þþ) en los demás espacios.) en los demás espacios.
– Puede guardar información en la cinta,Puede guardar información en la cinta,
escribiendo en ella.escribiendo en ella. Un caracter a la vezUn caracter a la vez..
Mueve la cabeza (Mueve la cabeza (un caracter a la vezun caracter a la vez) a la) a la
izquierda y derecha para leer y escribir.izquierda y derecha para leer y escribir.
– Cuando decide emitir un resultado, emiteCuando decide emitir un resultado, emite aceptaacepta
oo rechazarechaza entrando al estado aceptador o alentrando al estado aceptador o al
rechazador.rechazador.
Al entrar a uno de esos, se para (termina el cómputo).Al entrar a uno de esos, se para (termina el cómputo).
Si no entra a uno de estos dos estados, continúaSi no entra a uno de estos dos estados, continúa
calculando para siempre.calculando para siempre.
4. a b ab a þ þ þ þ þ þ …
Máquina de Turing
R
cadena de entrada
5. Diferencias entre una máquina deDiferencias entre una máquina de
Turing y un autómata finitoTuring y un autómata finito
La máquina de Turing puede leer y escribir en laLa máquina de Turing puede leer y escribir en la
cinta.cinta.
– La entrada está al principio de la cinta.La entrada está al principio de la cinta.
Puede mover su cabeza a izquierda y derecha.Puede mover su cabeza a izquierda y derecha.
La cinta es infinita.La cinta es infinita.
Los estadosLos estados rechazarechaza yy aceptaacepta tienen efectotienen efecto
inmediatamente.inmediatamente.
– La máquina se para. Termina. Ya no hace másLa máquina se para. Termina. Ya no hace más
cálculos.cálculos.
6. Ejemplo. Máquina de Turing que reconoce elEjemplo. Máquina de Turing que reconoce el
lenguaje B = {lenguaje B = {ww##ww || ww ∈∈ {0,1}* }{0,1}* }
– B no es libre de contexto (B no es libre de contexto (ya lo demostréya lo demostré).).
Va a aceptar su entradaVa a aceptar su entrada ww sisi ww ∈∈ B.B.
– La va a rechazar en otro caso.La va a rechazar en otro caso.
Póngase usted en el lugar de la máquina.Póngase usted en el lugar de la máquina.
– Está parado frente a una cinta con miles y miles deEstá parado frente a una cinta con miles y miles de
caracteres.caracteres.
– La va a aceptar si está formada de dos cadenasLa va a aceptar si está formada de dos cadenas
idénticas separadas por un #.idénticas separadas por un #.
– La cinta es demasiado larga para memorizarla toda.La cinta es demasiado larga para memorizarla toda.
– Pero usted puede ir y venir varias veces, y ponerPero usted puede ir y venir varias veces, y poner
marcas en ella.marcas en ella.
La estrategia es ir y venir de uno a otro lado del
# y marcar los lugares que se correspondan.
y ver si son iguales.
7. Así voy a diseñar la máquina.Así voy a diseñar la máquina.
– Va a hacer varios pasos sobre la cinta.Va a hacer varios pasos sobre la cinta.
– En cada paso se fija si un caracter antes del #En cada paso se fija si un caracter antes del #
y uno después son iguales. Los tacha.y uno después son iguales. Los tacha.
Si descubre una desigualdad, rechaza.Si descubre una desigualdad, rechaza.
– Si todos están tachados (excepto #), acepta.Si todos están tachados (excepto #), acepta.
8. M = “Para la entradaM = “Para la entrada w,w,
1.1. Ve y ven sobre la cinta, a ambos lados del #, aVe y ven sobre la cinta, a ambos lados del #, a
posiciones correspondientes, para ver si contienenposiciones correspondientes, para ver si contienen
el mismo símbolo.el mismo símbolo.
1.1. Si no es el mismo símbolo, o si no hay #, rechaza.Si no es el mismo símbolo, o si no hay #, rechaza.
2.2. Tacha los dos símbolos verificados para saber enTacha los dos símbolos verificados para saber en
qué símbolo va.qué símbolo va.
2.2. Cuando ya haya tachado todos los símbolos a laCuando ya haya tachado todos los símbolos a la
izquierda del #, verifica que no sobren símbolos (sinizquierda del #, verifica que no sobren símbolos (sin
marcar) a su derecha. Si alguno sobra,marcar) a su derecha. Si alguno sobra, rechaza.rechaza. EnEn
otro caso,otro caso, acepta.”acepta.”
Esta descripción esboza cómo trabaja M, pero esEsta descripción esboza cómo trabaja M, pero es
informal.informal.
Se puede dar una descripción formal para M, como loSe puede dar una descripción formal para M, como lo
hice para los autómatas finitos y de pila.hice para los autómatas finitos y de pila.
Casi nunca lo hago porque resultan muy extensas.Casi nunca lo hago porque resultan muy extensas.
10. Descripción formal de una máquinaDescripción formal de una máquina
de Turingde Turing
El corazón de ella esEl corazón de ella es δδ, la función de, la función de
transición.transición.
– Nos dice cómo opera, cómo da cada pasoNos dice cómo opera, cómo da cada paso
δδ : Q: Q ×× ΓΓ QQ ×× ΓΓ ×× {L, R}.{L, R}.
Si la máquina está en el estado q y la cabezaSi la máquina está en el estado q y la cabeza
está sobre el símbolo a,está sobre el símbolo a,
δδ(q, a) = (r, b, R),(q, a) = (r, b, R),
la máquina lee el símbolo a, escribe el símbolola máquina lee el símbolo a, escribe el símbolo
b y mueve su cabeza a la derecha (R).b y mueve su cabeza a la derecha (R).
Primero lee, antes de escribir sobre lo leído.
11. Una máquina de Turing es una 7-tuplaUna máquina de Turing es una 7-tupla
(Q,(Q, ΣΣ,, ΓΓ,, δδ, q, q00, q, qacceptaccept, q, qrejectreject)) dondedonde
Q es el conjunto de estados;Q es el conjunto de estados;
ΣΣ es el alfabeto de entrada, no contienees el alfabeto de entrada, no contiene þ;
Γ es el alfabeto de la cinta,es el alfabeto de la cinta, þ ∈∈ ΓΓ yy ΣΣ ⊂⊂ ΓΓ;;
δ : Q: Q ×× ΓΓ QQ ×× ΓΓ ×× {L, R}{L, R} es la función dees la función de
transición;transición;
qq00 ∈∈ Q es el estado inicial;Q es el estado inicial;
qqacceptaccept ∈∈ Q es el estado aceptor;Q es el estado aceptor;
qqrejectreject ∈∈ Q es el estado rechazador, conQ es el estado rechazador, con
qqrejectreject ≠≠qqacceptaccept..
12. Cómo computaCómo computa
La entrada es w = wLa entrada es w = w00ww11ww22…w…wnn ∈∈ ΣΣ** en losen los
cuadros más izquierdos.cuadros más izquierdos.
– El resto lleno deEl resto lleno de Þ.Þ.
el primerel primer Þ indica el fin de la w.Þ indica el fin de la w.
– La cabeza en la primer posición (La cabeza en la primer posición (izquierdaizquierda).).
Al correr, obedece aAl correr, obedece a δδ..
– Si acaso trata de ir a la izquierda del primerSi acaso trata de ir a la izquierda del primer
cuadro de la cinta, se queda ahí (cuadro de la cinta, se queda ahí (aunqueaunque δδ diga Ldiga L).).
– El cómputo continúa hasta que llegue a qEl cómputo continúa hasta que llegue a qacceptaccept óó
qqrejectreject. Se para inmediatamente.. Se para inmediatamente.
No tiene que procesar toda la entrada.
Si no llega a qaccept ó a qreject,
sigue procesando para siempre.
13. Configuración de una máquina de TConfiguración de una máquina de T
Conforme avanza la computación, ocurrenConforme avanza la computación, ocurren
cambios encambios en
– Estado.Estado.
– Contenido de la cinta.Contenido de la cinta.
– Posición de la cabeza.Posición de la cabeza.
– Se representan medianteSe representan mediante configuraciones.configuraciones.
Nos dicen cómo está la máquina en este momento.Nos dicen cómo está la máquina en este momento.
Son “fotografías” de la máquina en ese momento.
14. Configuración de una máquina de TConfiguración de una máquina de T
Conforme avanza la computación, ocurrenConforme avanza la computación, ocurren
cambios encambios en
– Estado.Estado.
– Contenido de la cinta.Contenido de la cinta.
– Posición de la cabeza.Posición de la cabeza.
a b ab a þ þ þ þ þ þ
q7
La configuración en este momento esLa configuración en este momento es a b qa b q77 b a a.b a a.
Cadena a la izq de la
cabeza.
Estado actual
Cadena bajo la cabeza
y a su derecha.
15. De una configuración a otraDe una configuración a otra
SiSi δδ(q(q77, b) = (q, b) = (q99, c, R), c, R)
y la máquina está en la configuracióny la máquina está en la configuración
a b qa b q77 b a ab a a
q7
a b ab a þ þ þ þ þ þ
bc,R q9
16. De una configuración a otraDe una configuración a otra
SiSi δδ(q(q77, b) = (q, b) = (q99, c, R), c, R)
y la máquina está en la configuracióny la máquina está en la configuración
a b qa b q77 b a ab a a
Entonces su próxima configuración esEntonces su próxima configuración es
a b c qa b c q99 a a.a a.
a b ac a þ þ þ þ þ þ
a b ab a þ þ þ þ þ þ
Se dice que la configuraciónSe dice que la configuración
CC11 = a b q= a b q77 b a ab a a produceproduce la configuraciónla configuración
CC22 = a b c q= a b c q99 a aa a
Si la máquina puede ir legalmente de CSi la máquina puede ir legalmente de C11 a Ca C22 enen
un solo paso.un solo paso.
q7
bc,R q9
17. Definición. Supongo que a, b, cDefinición. Supongo que a, b, c ∈∈ ΓΓ;;
u, vu, v ∈∈ ΓΓ*; q*; qii, q, qjj ∈∈ Q.Q.
SeanSean ua qua qii bvbv yy uquqjj acvacv dosdos
configuraciones.configuraciones.
Digo que la configuración ua qDigo que la configuración ua qii bvbv
produceproduce u qu qjj acvacv
si se tienesi se tiene δδ(q(qii, b) = (q, b) = (qjj, c, L), c, L)
u a b v þ þþ
u a c v þ þþ
qi
qj
u y v son cadenas.
18. Definición. Supongo que a, b, cDefinición. Supongo que a, b, c ∈∈ ΓΓ;;
u, vu, v ∈∈ ΓΓ*; q*; qii, q, qjj ∈∈ Q.Q.
SeanSean u qu qii abvabv yy uc quc qjjbvbv dos configuraciones.dos configuraciones.
La configuración u qLa configuración u qii abvabv produceproduce uc quc qjjbvbv
si se tienesi se tiene δδ(q(qii, a) = (q, a) = (qjj, c, R), c, R)
u a b v þ þþ
u c b v þ þþ
qi
qj
19. La configuración qLa configuración qii bvbv
produce qproduce qjj cvcv
si se tienesi se tiene δδ(q(qii, b) = (q, b) = (qjj, c, L), c, L)
Caso especial: cabeza en la posición inicial de la cadena.
b v þ þþ
qi
c v þ þþ
qj
20. La configuración qLa configuración qii bvbv
produce qproduce qjj cvcv
si se tienesi se tiene δδ(q(qii, b) = (q, b) = (qjj, c, L), c, L)
La configuración ua qLa configuración ua qii es equivalente aes equivalente a
ua qua qii ÞÞ
y no se requiere caso especial.y no se requiere caso especial.
Cabeza en posición más
derecha de la cadena
21. La configuración inicial es qLa configuración inicial es q00w.w.
La configuración final es u qLa configuración final es u qacceptaccept vv
óó u qu qrejectreject vv
Configuración aceptora
Configuración rechazadora
22. La máquina de Turing aceptaLa máquina de Turing acepta ww
Se dice que una máquina de TuringSe dice que una máquina de Turing
aceptaacepta una cadenauna cadena ww si existe unasi existe una
secuencia de configuraciones Csecuencia de configuraciones C11, C, C22,…C,…Ckk
tales quetales que
CC11 es la configuración inicial;es la configuración inicial;
Cada CCada Cii produce Cproduce Ci+1i+1, y, y
CCkk es una configuración aceptora.es una configuración aceptora.
Cuando llega a configuración aceptora (o
rechazadora) ya no procesa más. Se para.
Fin de la computación.
23. La máquina de Turing aceptaLa máquina de Turing acepta ww
Se dice que una máquina de TuringSe dice que una máquina de Turing
aceptaacepta una cadenauna cadena ww si existe unasi existe una
secuencia de configuraciones Csecuencia de configuraciones C11, C, C22,…C,…Ckk
tales quetales que
CC11 es la configuración inicial;es la configuración inicial;
Cada CCada Cii produce Cproduce Ci+1i+1, y, y
CCkk es una configuración aceptora.es una configuración aceptora.
Entonces, la máquina no acepta w si Ck es una
configuración rechazadora ó si nunca se para.
O sea, si no hay configuracion aceptora.
24. El lenguaje de MEl lenguaje de M
El conjunto de cadenas que M acepta esEl conjunto de cadenas que M acepta es
elel lenguaje delenguaje de MM
O el lenguajeO el lenguaje reconocido por Mreconocido por M..
Se escribe L(M).Se escribe L(M).
Lenguaje Turing-reconocibleLenguaje Turing-reconocible
Un lenguaje esUn lenguaje es reconociblereconocible oo Turing-Turing-
reconociblereconocible si alguna máquina de Turing losi alguna máquina de Turing lo
reconoce.reconoce.
También: recursivamente enumerable.
También: semidecidible.
25. Cuando una máquina de Turing procesaCuando una máquina de Turing procesa
una cadena, puede pasar:una cadena, puede pasar:
– La acepta.La acepta.
– La rechaza.La rechaza.
– Nunca termina.Nunca termina.
Sigue calculando indefinidamente.Sigue calculando indefinidamente.
– Se mete en un ciclo.Se mete en un ciclo.
– O exhibe otro comportamiento complejo (ejemplo: seO exhibe otro comportamiento complejo (ejemplo: se
pone a calcular cadenas cada vez más largas).pone a calcular cadenas cada vez más largas).
En este caso, no acepta la cadena.En este caso, no acepta la cadena.
A veces es difícil distinguir si una máquinaA veces es difícil distinguir si una máquina
no va a terminarno va a terminar
– O simplemente está tomando su tiempo.O simplemente está tomando su tiempo.
26. Es preferible tratar con máquinas queEs preferible tratar con máquinas que
siempre terminan.siempre terminan.
– Nunca se meten en un ciclo.Nunca se meten en un ciclo.
Ni se ponen a hacer cálculos interminables.Ni se ponen a hacer cálculos interminables.
– A veces aceptan su entrada.A veces aceptan su entrada.
– En las otras veces, la rechazan.En las otras veces, la rechazan.
SiempreSiempre decidendeciden (aceptar o rechazar).(aceptar o rechazar).
– Nunca “se quedan pensando” (calculando)Nunca “se quedan pensando” (calculando)
para siempre.para siempre.
Son losSon los decididores.decididores.
– Un decididor que también reconoce ciertoUn decididor que también reconoce cierto
lenguaje se dice quelenguaje se dice que decidedecide ese lenguaje.ese lenguaje.
27. Lenguajes decidiblesLenguajes decidibles
Un lenguaje es Turing-decidible oUn lenguaje es Turing-decidible o
simplementesimplemente decidibledecidible si alguna máquinasi alguna máquina
de Turing lo decide.de Turing lo decide.
Todo lenguaje decidible es tambiénTodo lenguaje decidible es también
reconocible.reconocible.
– Algunos lenguajes son reconocibles pero noAlgunos lenguajes son reconocibles pero no
decidibles.decidibles.
También: lenguaje recursivo.
28. Ejemplo de máquina de Turing.Ejemplo de máquina de Turing.
MM22 decide A = {0decide A = {022nn
| n| n ≥≥ 0}0}
La longitud de una cadena en A es una potenciaLa longitud de una cadena en A es una potencia
de dos.de dos.
¿Cómo me doy cuenta si tengo una cadena cuya¿Cómo me doy cuenta si tengo una cadena cuya
longitud es potencia de dos?longitud es potencia de dos?
24 ÷ 2 = 12 par
12 ÷ 2 = 6 par
6 ÷ 2 = 3 impar
Rechaza: no es potencia de 2.
32 ÷ 2 = 16 par
16 ÷ 2 = 8 par
8 ÷ 2 = 4 par
4 ÷ 2 = 2 par
2 ÷ 2 = 1
Acepta: cuando el único cociente impar sea 1.
29. Ejemplo de máquina de Turing.Ejemplo de máquina de Turing.
MM22 decide A = {0decide A = {022nn
| n| n ≥≥ 0}0}
La longitud de una cadena en A es una potenciaLa longitud de una cadena en A es una potencia
de dos.de dos.
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
x 0 x 0x 0 x 0 x 0 x 0 x 0x 0 x 0 x 0 x 0 x 0 xx 0 x 0 x 00
x X x 0 x X x 0 x X x 0 x X xx X x 0 x X x 0 x X x 0 x X x 00
x X xx X x ΘΘ x X xx X x 0 x X x0 x X x ΘΘ x X x 0x X x 0
x X xx X x ΘΘ xx XX xx ØØ xx X xX x ΘΘ x X x 0x X x 0
0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0
x 0 x 0x 0 x 0 x 0 x 0x 0 x 0 x 0 xx 0 x 00
x X x 0x X x 0 xx XX x 0 x X xx 0 x X x 00
Divido entre 2
tachando un 0 sí
y otro no.
par
par
par
par
Uno. Acepta.
par
par
Impar no uno. Rechaza.
30. Ejemplo de máquina de Turing.Ejemplo de máquina de Turing.
MM22 decide A = {0decide A = {022nn
| n| n ≥≥ 0}0}
La longitud de una cadena en A es una potenciaLa longitud de una cadena en A es una potencia
de dos.de dos.
MM22 = “Para la entrada= “Para la entrada w,w,
1.1. Barre la cinta de izq a der, y cruza un 0Barre la cinta de izq a der, y cruza un 0
sí y otro nosí y otro no
1.1. Fíjate si el número de 0s sobrevivientes esFíjate si el número de 0s sobrevivientes es
par o impar.par o impar.
2.2. Si en (1) había un solo 0,Si en (1) había un solo 0, acepta.acepta.
3.3. Si en (1) había más de un 0 y un númeroSi en (1) había más de un 0 y un número
impar de ellos,impar de ellos, rechaza.rechaza.
4.4. Ve a (1).”Ve a (1).”
Cada iteración de (1)
corta los 0s a la mitad.
Si los 0s que quedan
son impares, w no es
potencia de 2.
Si queda un solo 0,
w es potencia de 2.
31. MM22 = (Q,= (Q, ΣΣ,, ΓΓ,, δδ, q, q11, q, qacceptaccept, q, qrejectreject))
Q = {qQ = {q11, q, q22, q, q33, q, q44, q, q55, q, qacceptaccept, q, qrejectreject))
ΣΣ = {0}= {0}
ΓΓ = {0, x,= {0, x, ÞÞ}}
δδ se describe con un diagrama de estados.se describe con un diagrama de estados.
32. Tacha el primer 0 con un ÞÞ y no
con una x, para poder hallar el
extremo izquierdo de la cinta.
Tacha el primer 0
Brinca los taches
Luego, tacha un 0 no y otro si
Brinca los taches
No. par de
0s vistos
Un 0 visto
33. No. par de
0s vistos
No. impar
de 0s vistos
Si ya hay ÞÞ (llegaste al fin
de la entrada), ve a la izq
brincando ceros y taches.
Con el primer 0
(un ÞÞ) ve a der
Si hay ÞÞ (llegas
al fin de la
entrada), acepta
Cinta vacía o no
contiene 0s, rechaza
No. impar de 0s vistos y llegas al fin de cinta, rechaza
Un 0 visto
34. Ejemplo. MEjemplo. M11 = {Q,= {Q, ΣΣ,, ΓΓ,, δδ, q, q11, q, qacceptaccept, q, qrejectreject} es} es
una máquina de Turing que acepta eluna máquina de Turing que acepta el
lenguaje B = {w#w | wlenguaje B = {w#w | w ∈∈ {0,1}*}{0,1}*}
Q = {qQ = {q11, q, q22, … q, … q88, q, qacceptaccept, q, qrejectreject}.}.
ΣΣ = {0, 1, #} y= {0, 1, #} y ΓΓ = {0, 1, #,= {0, 1, #, þþ, x}., x}.
δδ viene dada por el siguiente diagrama.viene dada por el siguiente diagrama.
35. # R
þ R
x R
Hay un # con puros
tachados, aceptaqaccept
x R Brinca los tachados…
… hasta que llegues
al #, pásalo.
Brinca los tachados…
36. # R
þ R
1 x,R
x R
qaccept
0,1 R
x R
# R
Tacha el primer simbolo
que no sea x. Es un 1.
Ignora los
demás símbolos
hasta llegar al #
x R
Brinca los tachados
moviéndote a la der.
1 x,L
Si ves un 1, táchalo
y empieza a moverte
a la izquierda.
El primer 1 que
taché por no estar
tachado, a la izq del
#, coincide con el
primer 1 que taché,
a la derecha del #
Si ves un 0 ó un þþ, rechaza
0, þþ R
Ya no fueron iguales
qreject
37. # R
þ R
1 x,R
x R
qaccept
0,1 R
x R
# R
x R
1 x,R
qreject
0,1,x L
Sigue moviéndote a
la izquierda hasta
que encuentres el #
0, þþ R
38. # R
þ R
1 x,R
x R
qaccept
0,1 R
x R
# R
x R
1 x,L
qreject
0,1,x L
Cuando encuentres el #, sigue
moviéndote a la izquierda pero
ya no ignores x
# L
0,1 L
0, þþ R
39. # R
þ R
1 x,R
x R
qaccept
0,1 R
x R
# R
x R
1 x,L
qreject
0,1,x L
Cuando encuentres la
primer x, ya no
necesitas ir más a la izq
de la cinta. Puedes ir a
la derecha a buscar el
primer símbolo no
tachado
# L
0,1 L
x R
0, þþ R
Cosa parecida
va a suceder si
el primer
símbolo no
tachado es 0.
40. # R
þ R
1 x,R
x R
qaccept
# R
x R
1 x,L
qreject
0,1,x L
# L0,1 L
x R
0, þþ R
0 x,R
0,1 R
0,1 R
# R
x R
0 x,L
1, þþ R
41. Ejemplo.Ejemplo. Aritmética. Construya una máquinaAritmética. Construya una máquina
de Turing que decida el lenguajede Turing que decida el lenguaje
A = {aA = {aii
bbjj
cckk
| i| i ×× j = k y i,j,kj = k y i,j,k≥≥1}1}
El número deEl número de aa’s multiplicado por el número de’s multiplicado por el número de bb’s’s
debe ser igual al número dedebe ser igual al número de cc’s.’s.
MM33 = “para la entrada= “para la entrada w,w,
1.1. Verifica queVerifica que ww tenga purastenga puras aa’s seguidas de’s seguidas de
puraspuras bb’s seguidas de puras’s seguidas de puras cc’s.’s. RechazaRechaza si no.si no.
2.2. Regresa la cabeza a su posición inicial.Regresa la cabeza a su posición inicial.
3.3. Cruza unaCruza una aa y barre hasta encontrary barre hasta encontrar bb’s.’s.
1.1. Zigzagueando entre lasZigzagueando entre las bb’s y las’s y las cc’s, cruza una’s, cruza una bb yy
unauna cc, hasta que todas las, hasta que todas las bb’s estén cruzadas. Si’s estén cruzadas. Si
todas lastodas las cc’s están cruzadas y sobran’s están cruzadas y sobran bb’s,’s, rechazarechaza..
¿Y cómo sabe que ya llegó a la posición inicial?
42. MM33 = “para la entrada= “para la entrada w,w,
1.1. Verifica queVerifica que ww tenga purastenga puras aa’s seguidas de’s seguidas de
puraspuras bb’s seguidas de puras’s seguidas de puras cc’s. Rechaza si no.’s. Rechaza si no.
2.2. Regresa la cabeza a su posición inicial.Regresa la cabeza a su posición inicial.
3.3. Cruza unaCruza una aa y barre hasta encontrary barre hasta encontrar bb’s.’s.
1.1. Zigzagueando entre lasZigzagueando entre las bb’s y las’s y las cc’s, cruza una’s, cruza una bb yy
unauna cc, hasta que todas las, hasta que todas las bb’s estén cruzadas. Si’s estén cruzadas. Si
todas lastodas las cc’s están cruzadas y sobran’s están cruzadas y sobran bb’s, rechaza.’s, rechaza.
4.4. Restablece lasRestablece las bb’s y repite (3) si hay otra’s y repite (3) si hay otra aa sinsin
cruzar. Si todas lascruzar. Si todas las aa’s se han cruzado,’s se han cruzado,
determina si también todas lasdetermina si también todas las cc’s se han’s se han
cruzado. Si así es,cruzado. Si así es, acepta.acepta. Si no,Si no, rechaza.”rechaza.”
43. Ejemplo. Todas las cadenas diferentes.Ejemplo. Todas las cadenas diferentes.
E = {#xE = {#x11#x#x22#x#x33#...#x#...#xnn | cada x| cada xii ∈∈ {0, 1}* y{0, 1}* y
xxii ≠≠ xxjj para cada ipara cada i ≠≠ j, para n>=0}j, para n>=0}
La máquina que decide E esLa máquina que decide E es
MM44 = “Para la entrada= “Para la entrada w,w,
1. Coloca una marca encima del símbolo más1. Coloca una marca encima del símbolo más
izquierdo de la cinta. Si era unizquierdo de la cinta. Si era un þþ,, acepta.acepta. Si eraSi era
un #, sigue con el siguiente paso. Si no,un #, sigue con el siguiente paso. Si no, rechaza.rechaza.
2. Barre a la derecha hasta el próximo # y ponle2. Barre a la derecha hasta el próximo # y ponle
una segunda marca. Si no encuentro # antes deuna segunda marca. Si no encuentro # antes de
unun þþ, solo x, solo x11 estaba presente.estaba presente. Acepta.Acepta.
3. Zigzagueando, compara las dos cadenas a la3. Zigzagueando, compara las dos cadenas a la
derecha de los # marcados. Si son iguales,derecha de los # marcados. Si son iguales,
rechaza.rechaza.
Cada cadena no vacía comienza con #.
44. 1. Coloca una marca encima del símbolo más1. Coloca una marca encima del símbolo más
izquierdo de la cinta. Si era unizquierdo de la cinta. Si era un þþ,, acepta.acepta. Si eraSi era
un #, sigue con el siguiente paso. Si no,un #, sigue con el siguiente paso. Si no, rechaza.rechaza.
2. Barre a la derecha hasta el próximo # y ponle2. Barre a la derecha hasta el próximo # y ponle
una segunda marca. Si no encuentro # antes deuna segunda marca. Si no encuentro # antes de
unun þþ, solo x, solo x11 estaba presente.estaba presente. Acepta.Acepta.
3. Zigzagueando, compara las dos cadenas a la3. Zigzagueando, compara las dos cadenas a la
derecha de los # marcados. Si son iguales,derecha de los # marcados. Si son iguales,
rechaza.rechaza.
4. Mueve la marca más a la derecha al siguiente # a4. Mueve la marca más a la derecha al siguiente # a
su derecha.su derecha. Si no hay # antes deSi no hay # antes de þþ, mueve la marca, mueve la marca
más izquierda al próximo # a su derecha, y el # más a lamás izquierda al próximo # a su derecha, y el # más a la
derecha al siguiente # a su derecha. Esta vez, si no hay #derecha al siguiente # a su derecha. Esta vez, si no hay #
disponible para la segunda marca, todas las cadenas sedisponible para la segunda marca, todas las cadenas se
han comparado, entonceshan comparado, entonces acepta.acepta.””
Aquí muestro la técnica de marcar un símbolo.
Todos los lenguajes que he visto en los
ejemplos son decidibles. Por consiguiente,
son reconocibles (ó Turing-reconocibles).
Hallar (y demostrar) un lenguaje que es
reconocible pero no decidible es más difícil.
Lo veré en el Capítulo 4.