Maquinas de Turing
Maquinas de Turing
Maquinas de Turing
PROBLEMAS INDECIDIBLES
Roberto J. de la Fuente Lpez
VERSION 20100922
Mquinas de Turing
Problemas indecidibles
PRESENTACIN
El presente documento surge de los apuntes tomados de diversas fuentes durante mi
paso por la Ingeniera Tcnica en Informtica de Sistemas de la Universidad Nacional de
Educacin a Distancia.
Tiene pocos ejemplos y ningn ejercicio propuesto: solo es un tratado terico, poco
formal pero riguroso. Este inconveniente se puede solventar ampliamente si se consulta la
bibliografa del apndice A.
Por ltimo, aunque el documento est enfocado a las asignaturas de teora de
autmatas y computacin de la UNED, el lector no tendr problemas en su compresin si
tiene conocimientos previos de lgebra elemental, teora de conjuntos grafos y,
complementariamente, autmatas finitos y de pila.
Mquinas de Turing
Problemas indecidibles
INDICE
Mquinas de Turing
Problemas indecidibles
1.- INTRODUCCIN
La primera pregunta que nos vamos a plantear es Qu clase de problemas es capaz
de resolver un computador? O, de forma ms genrica qu clase de problemas es capaz de
computar una mquina? Para contestarla primero tenemos que definir en trminos tericos
esta pregunta y su posterior respuesta.
Un problema es una pregunta precisa sobre un conjunto de elementos, que arroja
como solucin otro conjunto de elementos. De manera informal hemos dado la definicin de
una funcin de un conjunto origen (dominio) sobre un conjunto imagen (rango).
Si
Mquinas de Turing
Problemas indecidibles
10
Mquinas de Turing
1.3.- ALGORITMO
1.4.-
CONJUNTOS
RECURSIVOS
CONJUNTOS
RECURSIVOS
ENUMERABLES
Como sabemos
S y f(x)=0 si
X se dice
tal que
S (en este caso se dice que la funcin es
recursiva primitiva)
recursivamente enumerables.
1
S y
han de ser
11
Problemas indecidibles
complementacin).
Qu tiene que ver esto con las Mquinas de Turing? Antes se ha dicho que Turing
lleg a la conclusin de que no se puede decidir la verdad o falsedad de una proposicin
matemtica. Esto es lo mismo que decir que el conjunto de las proposiciones matemticas
(basadas en un sistema axiomtico) no es recursivo.
Una mquina de Turing slo es capaz de reconocer conjuntos recursivos
enumerables (luego se ver la diferencia entre decidir y reconocer). En trminos de teora de
computacin y lenguajes formales, conjunto aqu es equivalente a lenguaje aceptado
(conjunto de cadenas que acepta la mquina). Cuando se defina formalmente la Mquina de
Turing, retomaremos la capacidad computacional de esta, utilizndola para demostrar todas
estas afirmaciones.
Mquinas de Turing
12
avance tambin podremos memorizar algn valor intermedio de nuestro clculo para su
posterior uso durante la computacin.
Aunque esta mquina fue descrita para realizar clculos sobre nmeros computables
(esto es, nmeros reales cuya parte decimal es calculable en intervalos finitos) de manera
que aceptaba la solucin cuando esta estaba escrita, se va a definir la Mquina de Turing
(MT) en los trminos descritos en la introduccin: aceptacin de una cadena que pertenece a
un lenguaje (es otra forma de decir que soluciona un problema).
As la MT va a estar compuesta por una unidad de control (la mente) que va estar
en uno de entre un conjunto finito de estados (qi) y que va a tener asociada una cabeza de
lectura/escritura (el lpiz). Como soporte de almacenamiento va a tener una cinta (para
hacernos una idea podemos pensar en una cinta de papel), sobre la que apunta la cabeza de
lectura/escritura. Esta cinta, que tendr una longitud infinita por ambos lados (lo que hace
que la MT tenga una capacidad infinita de almacenamiento), va a estar dividida en casillas o
celdas (a una de ellas, y slo una, apunta la cabeza) y cada una de estas casillas va a
contener un smbolo (que puede ser ms de un carcter). La unidad de control solo puede
considerar, en cada paso de clculo, el smbolo de la casilla a la que apunta la cabeza y el
estado en el que se encuentre la unidad de control (UC). Si esta unidad tiene la capacidad de
almacenar un conjunto finito de smbolos de entre los que ya se visitaron durante el proceso
de computacin, entonces tendr que considerar, adems del estado en el que se encuentra,
tanto los smbolos almacenados como al que apunta la cabeza (ver variante de MT en 4.2.4).
Problemas indecidibles
13
La figura representa una MT con la unidad de control en el estado qi, con m celdas
de almacenamiento temporal y cuya cabeza apunta a un smbolo Sk en una cinta infinita.
Realmente, la forma de representar la MT es indiferente, pues se trata de una mquina
conceptual. De momento, vamos a considerar la mquina sin memoria en la UC.
2.1. CMO OPERA LA MT?
Primero hay que inicializar la mquina. Al principio, la cinta est en blanco. A
continuacin se introduce la cadena de entrada en la cinta, que ser una secuencia de
smbolos del alfabeto que entiende, se pone la unidad de control en el estado inicial y se
posiciona la cabeza sobre la primera letra de la cadena introducida.
El cambio de condicin (de estado), es decir el avance en el clculo, es lo que vamos a
llamar transicin2). Este, como ya hemos dicho, depende del estado actual y del smbolo al
que apunta la cabeza. La transicin se producir en el siguiente orden:
En la bibliografa a esto lo suelen llamar movimiento, por la analoga con el movimiento de la cabeza de
lectura/escritura. Sin embargo este nombre no es del todo adecuado, pues se puede definir un modelo de MT
que permita el no movimiento de la cabeza, efectuando, sin embargo, una transicin de la mquina.
14
Mquinas de Turing
Que el problema no tenga solucin, en cuyo caso la mquina puede pararse o entrar
en un bucle infinito y no parar nunca. Este comportamiento depender
exclusivamente del problema que se est intentando computar.
15
Problemas indecidibles
B.- Smbolo de cinta que representa la casilla en blanco3. Este, que no puede
pertenecer al alfabeto de la mquina, puede representarse tambin con los smbolos
, o
de la mquina (B
/B
).
F.- Subconjunto de Q, y por tanto finito, que contiene los estados finales o de
aceptacin. Es decir, (F
Q).
En las publicaciones consultadas, a B se le llama espacio en blanco a lo que aqu llamamos smbolo de casilla
en blanco. Esta diferenciacin la hacemos para distinguir el caso de que el alfabeto contenga el espacio en
blanco como tal (separacin entre palabras).
16
Mquinas de Turing
entre palabras); como smbolos de cinta, los del alfabeto ms el de casilla en blanco
(que denotamos aqu con , para no confundir con el alfabeto de la mquina), el
estado inicial es q0, y los estados de aceptacin son q2 y q4. As la definicin formal
de la mquina (incompleta, porque nos falta al funcin de transicin) ser:
M=({ q0, q1, q2, q3, q4 }, {a,b,c, }, {a,b,c, , },
{: (Q x ) Q x x S}, q0, ,{ q2, q4})
-Se podr tener una MT que, aunque tenga dos o ms estados, ninguno lo sea de
aceptacin: en este caso la MT no acepta ninguna cadena, con lo que se dice que acepta el
lenguaje vaco .
{a + b}* }
17
Problemas indecidibles
= {a,b,$, ,X}
Aceptando la cadena, si se han marcado todas las letras y las subcadenas son
iguales, es decir, parndose en un estado de aceptacin.
Mquinas de Turing
18
Problemas indecidibles
19
2.4. CONFIGURACIONES
En el ejemplo anterior se han mostrado unas cuantas instantneas de la MT. A cada
una de estas se la llama configuracin. En esta tenemos representadas tres cosas: el
contenido de la cinta, el smbolo que contiene la casilla a la que apunta la cabeza de
lectura/escritura y el estado en el que se encuentra la unidad de control de la maquina en ese
instante.
Para no tener que realizar un dibujo de la mquina con cada configuracin que se
pueden dar en la aceptacin/rechazo de una cadena, se va a definir una notacin ms concisa
para representarlas: con cadenas de texto.
El primer problema que se plantea en esta nueva representacin es cmo se puede
representar el contenido de una cinta si su longitud es infinita?. Como se ha dicho, al
principio la cinta est en blanco y a continuacin slo tendr la cadena de entrada. En este
caso los smbolos de casilla en blanco son irrelevantes para representar una configuracin, y
por lo tanto no se van a representar. Es decir, solo se escribir desde el primer smbolo de la
izquierda de la cadena de entrada hasta el ltimo de esta.
Antes de continuar, es necesario fijar un convenio de notacin para las
configuraciones:
20
Mquinas de Turing
normalmente por el cero. No obstante, y para evitar ambigedades, hay que tener
cuidado con que la notacin de los estados no pertenezca al alfabeto de la cinta.
Una configuracin se representar de la siguiente manera: la cinta contiene una cadena
de smbolos de cinta = , donde y son dos subcadenas que, concatenadas, forman .
Dado un estado qi y la cabeza de lectura/escritura posicionada sobre el primer smbolo de la
subcadena , la configuracin se representa como
qi
As, la primera instantnea del ejemplo anterior en texto estar representada por:
X q1 baa$abaa
Que es mucho ms conciso que dibujar la mquina en cada configuracin.
Una configuracin especial es la configuracin de inicio: Si es la cadena de entrada,
y q0 el estado inicial, la posicin de inicio ser el primer smbolo de . Se representa por
q0
En nuestro ejemplo, la configuracin de inicio estar representada por
q0 abaa$abaa
Una configuracin de aceptacin es aquella cuyo estado es de aceptacin. En el
ejemplo, es la ltima instantnea dibujada.
XXXX$XXXX qa
Una configuracin de rechazo es aquella cuyo estado es cualquiera que no sea de
aceptacin y para el que no hay definida una transicin.
21
Problemas indecidibles
2.5. TRANSICIONES
Se dice que una configuracin Ci produce otra Ci+1 cuando, por aplicacin de la
funcin de transicin a Ci se obtiene Ci+1.
Para una mquina M, vamos a definir el operador transicin con el smbolo
, donde
*
M
22
Mquinas de Turing
X q1 baa$abaa
XXaa$ q7 XXaa
23
Problemas indecidibles
p B Y X-(n-1)X-2 X-1 X0 X1 X2 X3. Xm-1 Xm
Mquinas de Turing
24
2.6. REPRESENTANDO LA MT
Cuando se ha definido el modelo de MT, se ha dicho que la funcin de transicin es
la que define el comportamiento (produce el conjunto de producciones- transiciones) de la
mquina. No se ha dicho que, al ser una funcin de transicin, por cada par (estado, smbolo
de cinta) vamos a tener una sola transicin (no un conjunto de transiciones posibles), con lo
que estamos definiendo una MT determinista. Al igual que en los autmatas finitos y de
pila, esta definicin no es estrictamente cierta, pues se necesitara tener definidas las
transiciones para todas las posibles combinaciones de smbolo de cinta-estado. Este punto se
tratar cuando se vean las MT no deterministas.
Por tanto, representar este conjunto funcin de transicin es equivalente a
representar la MT que describe, que puede ser mediante una tabla de transiciones o
mediante un diagrama de transiciones. Como ocurre en los autmatas finitos y de pila, la
representacin mediante el diagrama de transiciones es adecuada mientras la mquina sea
sencilla, pues en caso contrario puede llegar a ser ilegible.
25
Problemas indecidibles
Cada una de las aristas dirigidas representar cada una de las transiciones definidas
para la mquina. Se permiten transiciones sobre el mismo estado o desde un estado
hacia otro. Estas aristas estarn etiquetadas con: smbolo de cinta actual, smbolo de
cinta que lo sustituye y la direccin del movimiento. Si X es el smbolo actual de
cinta, Y el que lo sustituye y S la direccin del movimiento, para la transicin
(q,X)=(p,Y,S), se podrn encontrar las siguientes notaciones, dependiendo de los
autores
X/Y S X/Y, S X;Y,S
X Y,S
Tambin se puede simplificar si X e Y son iguales (el smbolo se deja como est)
X/S X/X, S
XS X Y,S
O la simplificacin cuando hay varias transiciones del mismo tipo entre dos mismos
estados.
X1 , X2 /S { X1/S , X2/S }
X1 , X2 S { X1S , X2S }
26
Mquinas de Turing
= {a,b,$}
y
= {a,b,$, ,X}
La funcin de transicin se va a representar mediante la siguiente tabla
a
q1
q1,a,D
q1,b,D
q2,$,D
q2
q7,X,I
q2,X,D
q3
q3,a,I
q3,b,I
q4,X,D
q5,a,D
q5,b,D
q6,$,D
q6
q7,X,I
q6,X,D
q7
q3,$,I
q7,X,I
q8
qa
qa, ,D q8,X,D
-
Si la mquina se para en un estado para el que no hay transicin pueden ocurrir dos
cosas: que la cadena se rechace si se para en uno que no es de aceptacin o que la
cadena se acepte si lo era de aceptacin (de hecho, esta mquina parar siempre).
As, ya se puede mostrar la definicin formal completa4 de esta mquina:
M=({ q0, q1, q2, q3, q4 ,q5, q6, q7, q8, qa }, {a, b, $} {a, b, $, , X },
{(q0,a ) (q1,X,D), , (q8,X) (q8,X,D )}, q0, ,{ qa})
Al ser esta una mquina sencilla, tambin se poede representar mediante un
diagrama de transiciones (en este diagrama representamos la casilla en blanco con
):
Realmente es una definicin formal resumida, pues para que fuera estrictamente completa se deberan haber
explicitado todas las transiciones de la mquina.
Problemas indecidibles
27
28
Mquinas de Turing
X q1 baa$abaa
Xb q1 aa$abaa
Xbaa q7 $Xabaa
Xba q1 a$abaa
Xba q3 a$Xabaa
X q3 baa$Xabaa
q3 Xbaa$Xabaa
X q4 baa$Xabaa
XXaa q5 $Xbaa
XXaa$ q6 Xbaa
XXaa q7 $XXaa
XXa q3 a$XXaa
XX q3 aa$XXaa X q3 Xaa$XXaa
XX q4 aa$XXaa
XXX q1 a$XXaa
XXXa q1 $XXaa
XXXa$ q2 XXaa
XXXa$X q2 Xaa
XXXa$XX q2 aa
XXXa$X q7 XXa
XXXa$ q7 XXXa
XXXa q7 $XXXa
XXX q3 a$XXXa
XX q3 Xa$XXXa
XXX q4 a$XXXa
XXXX q1 $XXXa
XXXX$ q2 XXXa
XXXX$X q2 XXa
XXXX$XX q2 Xa
XXXX$XX q7 XX
XXXX$X q7 XXX
XXXX$ q7 XXXX
XXXX q7 $XXXX
XXX q3 X$XXXX
XXXX q4 $XXXX
XXXX$ q8 XXXX
XXXX$X q8 XXX
XXXX$XX q8 XX
XXXX$XXX q8 X
XXXX$XXXX q8
XXXX$XXX q2 a
XXXX$XXXX qa
X q1 b$ba
Xb q1 $ba
Xba$ q2 ba
29
Problemas indecidibles
q0
qa
Dicho de otra forma, una MT, M, acepta la cadena si la mquina para en un estado
de aceptacin. El conjunto de cadenas aceptadas por la MT es el lenguaje L(M) que
acepta esta MT. Ojo hemos definido un lenguaje aceptado por una MT, no decidido. Ms
adelante se ver esta matizacin.
Mquinas de Turing
30
31
Problemas indecidibles
C=(Q, , , , q0, B)
Para introducir en la mquina los nmeros del clculo, primero se deben convertir
(codificar). Un mtodo muy utilizado es la notacin unaria6: dado un nmero natural con
valor n se codifica con n smbolos consecutivos (n unos o n ceros) y se separa por otro
smbolo de marcado (un cero o un uno respectivamente).
Ejemplo: Construir una mquina que multiplique dos nmeros naturales n y m
(mayores que cero). La mquina tendr una cadena inicial de n ceros seguida de un 1
y seguido de m ceros (0n 1 0m ), y se parar con la cinta conteniendo n veces m ceros
(0nm ). Los componentes de la definicin formal de la mquina sern
Q={ q0 ,., q13}
= {0,1}
= {0,1,B,X} donde B es la casilla en blanco y X un marcador
=
La notacin unaria es histricamente la anterior a la posicional: se corresponde con el concepto de contar por
palotes; cuando se llega a un nmero determinado (por regla general cinco), estos se agrupan (se dibuja una
lnea de tachado) y se continua aadiendo palotes.
32
Mquinas de Turing
q0 001000
q13 BBBBB000000
Problemas indecidibles
33
-Para demostrar que esta mquina tiene el mismo poder computacional que el modelo
con estado de aceptacin, se puede convertir esta mquina calculadora en una mquina
aceptadora de cadenas aadiendo, primero, un estado de aceptacin y luego relacionando
cada estado en el que paraba con la solucin en la cinta con el de aceptacin, aadiendo,
para cada uno de aquellos, tantas transiciones como smbolos de cinta tenga la mquina
original. Si el clculo termina siempre en el mismo estado, se marca este como de
aceptacin, no necesitndose aadir ninguno ms. De esta forma esta mquina simular el
funcionamiento de la mquina calculadora, aceptando cuando se pare con resultado sea
positivo y rechazando cuando el resultado sea negativo.
Ahora hay que demostrar lo contrario: una mquina que acepta un lenguaje
parndose en un estado de aceptacin, con cualquier configuracin en la cinta (se dijo que
no nos importaba lo que haba en ella cuando se paraba), se puede convertir, en una primera
fase, en otra MT que acepta el lenguaje con un contenido de cinta determinado (solucin),
que precisamente es el resultado del clculo. En una segunda fase se elimina el estado de
aceptacin, pues con el contenido en la cinta como solucin, se da por vlido el clculo (ver
variantes de MT, punto 3.2.3 para ver como se procede). As, la mquina calculadora
obtenida aceptar si tiene la solucin en la cinta y rechazar si tiene cualquier otro contenido
en la misma.
Por tanto, se ha encontrado la forma de simular, en una y otra direccin, las dos
mquinas, de manera que se ha demostrado que las dos aceptan el mismo lenguaje. En
conclusin, ambas mquinas tienen la misma potencia computacional. A partir de ahora se
van a considerar todas las MT como aceptadoras de cadenas.
la mquina
calculadora no tena conjunto de estados de aceptacin. Cada una de las variantes que se
34
Mquinas de Turing
mostrarn se podrn utilizar tal cual o construir otras que sean una mezcla de varias de ellas
segn convenga, habida cuenta de que, con las debidas transformaciones, todas van a ser
computacionalmente equivalentes entre s.
3.2.1. Que solo tenga un estado de aceptacin y slo uno.
La definicin formal con esta restriccin sera
M= (Q, , , , q0, B, qa )
Es fcil convertir la MT original M en una que slo tenga un estado de aceptacin,
M, creando un estado de aceptacin nuevo, quitando la caracterstica de aceptacin a los
que antes la tenan y definir, desde cada uno de estos y para cada smbolo de cinta, una
transicin al nuevo estado de aceptacin (para que se pueda mover a este, sea el que sea el
contenido de la cinta) sin sustituir el smbolo actual, siendo la direccin del movimiento de
la cabeza indiferente. Por tanto M aceptar los lenguajes que acepte M.
Al ser un caso particular de la MT original en el que F slo tiene un estado de
aceptacin, tanto cualquier lenguaje aceptado por M tambin lo es por M. Por tanto M y M
aceptan exactamente los mismos lenguajes.
3.2.2. Que tenga un conjunto R de estados de rechazo
Si la mquina para, en lugar de hacerlo en cualquier estado que no sea de aceptacin
cuando la cadena no pertenezca al lenguaje, esta lo har en algn estado de rechazo. As, la
MT con esta ampliacin se define formalmente:
M= (Q, , , , q0, B, F, R )
donde R es un conjunto al que pertenecen los estados de rechazo.
Con esta variacin lo que realmente se est haciendo es definir completamente una
mquina determinista, de manera que, para cada par (estado, smbolo de cinta), hay una
transicin.
35
Problemas indecidibles
36
Mquinas de Turing
En el ejemplo del lenguaje L={$ /
S)
37
Problemas indecidibles
(Q x )
(q,a)(p,b,E)
(q,a)(p,a,I)
(q,a)(p,b,I)
(q,a)(p,a,D)
(q,a)(p,a,D)
(q,a)(p,b)
(q,a)(p,I)
(q,a)(p,b)
(q,a)(p,D)
(q,a)(p,b)
Q x x S
(Q x )
Q x ( u S)
(p,b)(p,I)
(Q x )
(q,a)(p,b,D)
QxxS
(p,b)(p,b,I)
(q,a)(p,a,I)
(q,a)(p,b,I)
(p,b)(p,D)
(q,a)(p,a,D)
(q,a)(p,a,D)
38
Mquinas de Turing
{a+b}*}
= {a,b,$}
39
Problemas indecidibles
a
[q8,],$,D
q1,a
[q1,a],a,D
[q1,a],b,D
[q2,a],$,D
q1,b
[q1,b],a,D
[q1,b],b,D
[q2,b],$,D
q2,a
[q7,a],X,I
[q2,a],X,D
q2,b
[q7,b],X,I
[q2,b],X,D
q7,a
[q3,a],$,I
[q7,a],X,I
q7,b
[q3,b],$,I
[q7,b],X,I
q3,a
[q3,a],a,I
[q3,a],b,I
[q4,a],X,D
q3,b
[q3,b],a,I
[q3,b],b,I
[q4,b],X,D
q4,a
q4,b
q8,
qa,
[q0, ], Z = [q8,],$,D
[q1,Z],Y = [q1,Z],Y,D
[q3,Z],Y = [q3,Z],Y,I
[q8, ], = [qa, ], ,D
Para convertir esta mquina M con transiciones agrupadas en una que no tenga
memoria, M, procedemos de la siguiente forma:
Mquinas de Turing
40
Se comprueban las filas de la tabla para eliminar aquellos estados que tengan las
mismas transiciones.
Toda cadena aceptada por M ser aceptada por M, luego M aceptar los lenguajes que
acepte M. La mquina original M es un caso particular de M sin memoria, luego M
aceptar cualquier lenguaje que acepte M. Por tanto, M y M aceptan exactamente los
mismos lenguajes.
Continuando con el ejemplo, si se aplican estos pasos, el resultado es la tabla de
transiciones de la mquina original (no tiene porqu ser as).
La representacin con el diagrama de transiciones ser igual que sin memoria, con la
salvedad de que los estados estarn etiquetados ahora por la tupla estado (qi , Z1, Z2, . Zm)
donde cada Zi ser el contenido de la memoria i.
3.2.5 Cinta con varias pistas
Con anterioridad se dijo que un smbolo de cinta no tiene porqu ser un solo
carcter; pues bien, este es el caso. Se divide la cinta en bandas paralelas, que se van a
llamar pistas, y, a su vez, se van a dividir en casillas tal como se hizo con la cinta nica,
resultando en una matriz con tantas filas como pistas y con un nmero infinito de columnas
a ambos lados de la cabeza.
Hay que tener en cuenta que no es lo mismo un smbolo de cinta y un smbolo de
pista. Ahora un smbolo de cinta va a ser una tupla de i smbolos de pista, donde i es el
nmero de pistas. Para ello, la mquina acceder solidariamente al contenido de todas las
casillas de la misma columna, es decir, acceder a la i-tupla de smbolos de pista.
41
Problemas indecidibles
El conjunto de smbolos, para cada pista, podr ser el mismo o distinto y el conjunto
de smbolos de cinta de la mquina sern las tuplas pertenecientes al producto cartesiano de
los conjuntos de smbolos de todas las pistas. Si se tienen i pistas, y cada k (para 1 k i)
es el conjunto de smbolos de la pista k, el alfabeto de cinta de M ser el conjunto de ituplas
= {1 x 2 x 3 xx i}
Y un smbolo de cinta de M ser, si estamos en la columna k, una i-tupla de
smbolos atmicos de la forma
(Sk1, Sk2, Sk3,.Ski)
Una forma tpica de utilizar una mquina de este tipo es colocar la cadena de entrada
en la primera pista y utilizar el resto para marcar lo que se necesite (que se ha visitado un
smbolo, recordar una posicin, dar un mensaje de aceptacin.). Al principio, todas las
pistas estn en blanco, y a continuacin se introduce la cadena de entrada. En este instante
todas las pistas, a excepcin de la primera, estn vacas. As cada smbolo del alfabeto de la
mquina ser una i-tupla del conjunto
= { x B2 x B3 x.xBi}
42
Mquinas de Turing
= 1
adicionales.
43
Problemas indecidibles
Si en una subcadena que representa una pista, despus del movimiento la cabeza,
esta apuntara al delimitador, a partir de este (inclusive) hay que desplazar una casilla
a la derecha el resto de subcadena, y aadir un smbolo de casilla vaca en el hueco
que hemos hecho. Por ejemplo, se ha marcado en negrilla la situacin y subrayada la
subcadena desplazada a la derecha
# @ #@ Bqx#....# @ B #
# @ #@ BqxB#....# @ B #
44
Mquinas de Turing
ofrece una mejora con respecto a la MT original: la mquina de varias pistas es una
generalizacin de la mquina de una pista (tuplas de un solo elemento) y por tanto cualquier
lenguaje aceptado por la mquina de pista nica (ya se vio que la MT con memoria es
equivalente a la MT sin memoria), lo ser por una mquina de una cinta con varias pistas.
Por tanto, aceptan exactamente los mismos lenguajes.
3.2.6. MT con varias cintas
Esta variante, que es una generalizacin de la MT con una cinta, es importante
porque con ella se simula de manera directa el comportamiento de un computador. El
hecho de que la MT de una cinta sea un caso particular de la de varias cintas hace que el
lenguaje aceptado por la primera tambin sea aceptado por la segunda. Despus de definir
esta mquina se proceder a demostrar que existe una MT de una cinta que simula el
funcionamiento de una mquina con varias cintas, y por tanto cualquier lenguaje aceptado
por una MT de una cinta tambin lo ser por la MT de varias cintas. Esto demuestra que una
mquina con una cinta acepta exactamente los mismo lenguajes que una mquina con varias
cintas.
Esta MT estar compuesta por varias cintas como soporte de almacenamiento y una
unidad de control
asociadas tantas cabezas de lectura/escritura como cintas, independientes todas ellas entre s.
En cada paso del clculo la unidad de control va a tener en cuenta el estado en el que se
encuentra y el contenido de la casilla a la que apunta cada una de las cabezas.
45
Problemas indecidibles
Una MT con transicin estacionaria se puede simular con una MT si transicin estacionaria. Se define as la
mquina para que esta sea ms simple.
Mquinas de Turing
46
47
Problemas indecidibles
Para las pistas correspondientes a cada cinta i, M vuelve a leer el contenido del
marcador de la pista 2i-1 y la casilla correspondiente de la pista 2i: Escribe el
smbolo que determina la transicin correspondiente a la cinta i y mueve la marca
(izquierda, derecha o estacionaria) a la casilla que determine la transicin. Al final
de las 2k pistas, M tendr varias tuplas que representan el contenido de las k cintas
y la posicin de cada cabeza sobre ellas despus del movimiento. Utilizar la
memoria para almacenar el smbolo de cada cinta de M despus de cada transicin.
Mquinas de Turing
48
Para reducir M a una MT con una sola cinta, M, se aplicara la demostracin antes
dada para la MT de varias pistas: Las distintas pistas 2i se concatenan en una sola pista,
introduciendo el marcado de posicin de cabeza en cada pista 2i. As, en nuestro ejemplo
partiramos del contenido en la cinta de M con8
Aunque aqu se represente una columna con una fila por cada pista, realmente es una sola cinta con todas
concatenadas en el orden de las filas
49
Problemas indecidibles
#S1,-3 S1,-2 S1,-1@ S1,0 S1,+1 S1,+2 S1,+3
# S2,-3 S2,-2 @ S2,-1S2,0 S2,+1 S2,+2 S2,+3
# S3,-3 S3,-2 S3,-1S3,0 @ S3,+1 S3,+2 S3,+3
.
.
Tabla de transiciones.- Tendr una fila por cada uno de los estados y tendr una
columna por cada tupla del producto cartesiano de los k alfabetos de cinta. Cada
entrada contendr la 2k-tupla con los smbolos a sustituir y el desplazamiento de las
cabezas correspondiente.
Diagrama de transiciones.- El diagrama ser el mismo que la MT con una cinta, con
la excepcin de que la relacin entre estados (arista del grafo) se etiqueta con todas
las transiciones posibles para esos dos estados en cada una de las cintas, separados
por una barra.
50
Mquinas de Turing
3.3.7. MT no determinista (MTN)
Como ya es sabido, el no determinismo de una mquina puede ser de dos tipos: que
la mquina no est totalmente definida y que, para un estado y un smbolo de cinta, la
mquina pueda tener ms de una opcin posible.
Ya se ha dicho que el modelo de la mquina original podra incurrir en el primer tipo
de no determinismo y que la consideramos determinista ya que se define con una funcin
(solo una posible transicin) y sin estados de rechazo para simplificar su representacin. Por
tanto, se considerarn no deterministas a las del segundo caso, en las que cada transicin,
para un estado y un smbolo de cinta, ser un conjunto de movimientos posibles, en lugar de
un solo movimiento. As, una mquina no determinista, MTN, para un mismo estado y
mismo smbolo de cinta puede no tener transicin definida, tener un nico movimiento o
tener la posibilidad de varios movimientos. En los dos primeros casos se comporta como la
MT ya vista, mientras que cuando ocurre el tercero, la mquina sigue todos los posibles
caminos en paralelo hasta un estado de aceptacin. En paralelo significa que no se coge un
camino y se sigue hasta que se rechace o se acepte, sino que se producen las configuraciones
sucesoras de cada camino a la vez. Si uno de los caminos llega a un estado de rechazo, este
camino se desecha y si es el ltimo posible, entonces se rechaza la cadena.
Se dice que una MTN acepta un lenguaje, si existe algn camino que lleve desde la
configuracin inicial a una configuracin de aceptacin. Observar que se habla de
posibilidad de existencia de un camino, no de produccin por la funcin de transicin.
La definicin formal de la MTN, M, ser
M = (Q, , , , q0, B, F)
donde es el conjunto de transiciones
{Q x (Q x x S) / para todo Q ,, S }
51
Problemas indecidibles
nodos sern las configuraciones y las aristas las transiciones. El nodo raz va a ser la
configuracin de inicio. Cuando la transicin tenga varios posibles movimientos, cada una
de las configuraciones resultantes ser un nodo hijo del anterior. Los distintos caminos se
seguirn en paralelo, desechndose aquel para el que no haya transicin posible. Se aceptar
la cadena si llegamos por algn camino a un estado de aceptacin. Esta aceptacin ser la de
menor profundidad en el grafo.
Para obtener la MT determinista (MTD) M, que simule la MTN, M, se construye
una MT de tres cintas (ya sabemos que es equivalente a una MT de una cinta) que va a
simular el recorrido en anchura del grafo implcito asociado a las transiciones de M.
Definimos M = (Q, , , , q0, B, F) donde
{Q x (Q x x S) / para todo Q ,, S }
Mquinas de Turing
52
transiciones para esta, y guarda las configuraciones resultantes al final del contenido
de la cinta 2, precedidas por # como separador de configuraciones.
53
Problemas indecidibles
Para convertir una MT original M, en una MT de cinta semi infinita M, que descrita
formalmente es
M= (Q, , , , q0, (B,B), F)
lo primero que hay que hacer es partir la cinta de M en dos mitades por la posicin indicada
por la configuracin inicial de M. Despus se convierten las dos mitades en una cinta semi
infinita de dos pistas, de manera que, si asociamos las posiciones de la cinta de M con un
nmero entero, la pista superior sern las posiciones positivas incluido el cero y el resto en
la segunda pista, pero en orden invertido y precedidas por * como marcador de comienzo de
cinta. As, para la cinta de M con los subndices como posiciones, X como smbolos de cinta
y B como smbolo de casilla en blanco
B -m B -(m-1) B -3 B -2 B -1 X0 X1 X2 X3. Xm-1 Xm B m+1
dar como resultado, para M, una cinta de dos pistas semi infinitas de la siguiente forma
, el equivalente en es (a,B).
Al principio la cinta en M est vaca (las dos pistas). Se introduce la entrada a partir de
la primera casilla, que sern pares del tipo (a,B), y se posiciona la cabeza sobre la primera
columna. Antes de simular los estados de M, se debe marcar el principio de cinta con * en la
primera casilla de la segunda pista. Para ello se define Q como { q0, q1}
{Q x P},
donde q0y q1 son los estados que marcan el principio de cinta, en la segunda pista, con *,
Q es el conjunto de estados de M, y P es una memoria que indica si la mquina se encuentra
54
Mquinas de Turing
( x *)
Una vez definidos los estados y los smbolos de cinta de M, se puede especificar q0 y
q1 de manera que, al iniciar la ejecucin, las dos primeras transiciones sean
((q0,B),(a, B)) (q1,B), (a, *), D) que marca la primera casilla de la cinta inferior
con * .
((q1,B),(X, B)) ((q0,S), (X, B), I) para volver a la primera casilla de la cinta
superior.
el complementario de S (si la
55
Problemas indecidibles
El punto crtico de M est cuando pasamos de una pista a otra, y esto lo hacemos
utilizando el marcador *. Esta situacin se da cuando M ha vuelto a la posicin inicial, ya
sea desde la izquierda (por la segunda pista) o desde la derecha (por la primera pista).
56
Mquinas de Turing
L={$ /
{a + b}* }
de los
Problemas indecidibles
57
5. ALGORITMO (y 2)
El hecho de que un problema decidible (un lenguaje decidible) se pueda resolver con
una MT que siempre se para, constituye un punto importante en la teora de la decidibilidad.
Es ms, una MT que resuelve un problema decidible es la definicin formal de
algoritmo. De esta forma se puede afirmar que si, para un problema existe un algoritmo
que lo resuelve, entonces se dice que el problema (el lenguaje que lo representa) es
decidible por una MT.
Precisamente aqu es donde empiezan los problemas, ya que hay problemas
(lenguajes) para los que no hay un algoritmo que los solucione (que los decida) e incluso
hay otros para los que no existe ni siquiera una MT que los reconozca (luego se ver
porqu). Una MT que slo reconozca un lenguaje (un lenguaje RE), soluciona un problema
a medias, por lo que realmente no ser til en la resolucin de un problema.
Un algoritmo es el procedimiento seguido para resolver un problema por una
MT que siempre se para, y ya se ha visto que estos lenguajes son llamados decididibles.
Todo lenguaje para el que no haya esta MT, se dice que es indecidible (ya sea un
lenguaje reconocible o no por una MT).
6. CODIFICACIN DE LAS MT
Para demostrar que existen lenguajes que no son ni siquiera aceptados por las MT, se
va a proceder primero a codificar la entrada para que las cadenas sean binarias, esto es que
= {0, 1} (ya se ha dicho que el formato que tenga la entrada es irrelevante, pues se puede
codificar como se precise). Luego se codificar tambin la descripcin de la mquina como
una cadena binaria. Esta codificacin no es nica, pudiendo haber otras variantes. Un detalle
que servir ms adelante es que la longitud del cdigo resultante de la mquina ser finita,
pues su descripcin tiene un nmero finito de elementos.
Ejemplo: Volvamos a la MT que acepta el lenguaje L ={$ /
{a + b}* }. Lo
primero que hacemos es listar los elementos del alfabeto de la mquina y codificarlos en
binario: Cada smbolo se codificar con una cadena i ceros, donde i es la posicin dentro
de la lista ordenada, as, si ={a,b,$}
58
Mquinas de Turing
Orden
Smbolo
cdigo
00
000
Cdigo de los estados.- Poner los estados en una lista ordenada, de forma que el
primero sea el estado de inicio y el segundo el de aceptacin. Cada estado se
codificar con una cadena i ceros, donde i es la posicin dentro de la lista ordenada.
Smbolos de cinta.- Poner los smbolos de cinta en una lista ordenada, de forma que
los tres primeros smbolos de la lista sern 0, 1 y B, si estos existen en la mquina, y
a continuacin los dems. Cada smbolo de cinta se codificar con una cadena de i
ceros, donde i es la posicin dentro de la lista ordenada.
Sentido del movimiento.- Codificar con un cero a la izquierda y con dos ceros a la
derecha.
59
Problemas indecidibles
Funcin de transicin.- Se ordenan las transiciones (el orden puede ser arbitrario), y
se concatenan, intercalando dos unos consecutivos entre cada una de ellas. Esta
codificacin es vlida pues en cada transicin nunca va a haber dos unos
consecutivos.
Ejemplo: supongamos la siguiente mquina, que acepta cadenas con solo unos y
cadenas con solo ceros:
M= ({q0, q1, q2, qa}, {0,1}, {0,1,B}, {[(q0,0) = (q1,0,D)], [(q0,1) = (q2,1,D)], [(q1,0) =
( q1,0,D)], [(q2,1) = (q2,1,D)], [(q1,B) = (qa, B, D)]}, [(q2,B) = (qa, B, D)]}, q0, B, qa)
Primero hacemos una lista ordenada tanto de los estados como de los smbolos de
cinta (el orden de los estados no es nico):
Estado
Cdigo
q0
qa
00
q1
000
q2
0000
Smbolo
0
00
000
60
Mquinas de Turing
En este ejemplo se puede observar que esta es una de las muchas posibles
codificaciones para la misma mquina M. De hecho, el nmero de codificaciones para una
mquina M que acepte alguna cadena ser, si esta tiene un estado de aceptacin y en la cinta
tiene al menos los smbolos 0,1 y B:
(N estados-2)! * (N smbolos de cinta-3)! * (nmero de transiciones)!
Cmo identificamos cada codificacin? Porque plasmar cada cadena binaria es
tedioso adems de ilegible (ya sea de entrada o la codificacin de una mquina). Dado un
alfabeto = {0,1}, el conjunto de todas las cadenas binarias posibles (*) es infinito
contable ya que podemos asociar un nmero natural a cada una de las cadenas, es decir,
existe la funcin (f: *
y dentro de esta por orden binario, asignando en orden, a cada una, un nmero natural. As,
dada una cadena i , esta ser la i-sima cadena de *. Las primeras cadenas correspondern
al nmero:
9 = 1, 0 =2, 1=3; 00=4; 01=5; 10=6; 11=7; 000=8; 001=9; .
Para obtener la cadena binaria a partir del valor de i, decimos que la cadena isima es el valor decimal de la cadena obtenida de la concatenacin de 1 y :
i (10 = 1 (2
Dado que cualquier MT se codifica con una cadena binaria, i , entonces se puede
asociar a cada codificacin un nmero natural, de manera que podemos hablar de la MT isima, Mi. As mismo se puede asociar un nmero natural a cada una de las cadenas de
entrada de la mquina. Se puede observar que, al ser cadenas binarias, una cadena de
entrada cualquiera con nmero de orden n, sea la codificacin de la mquina Mn.
Problemas indecidibles
61
Se coge el primer dgito de la primera cadena, y1: para la nueva cadena no listada se
elige un dgito cualquiera de Y1. De esta manera se asegura que la nueva cadena no
puede ser igual a la primera.
62
Mquinas de Turing
Se coge el segundo dgito de la segunda cadena y2: para la nueva cadena no listada
se elige un dgito cualquiera de Y2. De esta manera se asegura que la nueva cadena
no puede ser igual a la primera.
Se coge el dgito i de la cadena i-sima, yi: para la nueva cadena no listada se elige
un dgito cualquiera de Yi. De esta manera se asegura que la nueva cadena no puede
ser igual a la i-sima.
De esta forma se ha obtenido una cadena de 3 dgitos que no es igual a ninguna de las
existentes en la lista.
Ejemplo: dada la lista 455, 273, 921, encontrar una cadena que no est en esta lista. Si
o 455 y1 = 4, escogemos y1=7
o 273 y2 = 7, escogemos y2=2
o 921 y3 = 1, escogemos y3=5
La nueva cadena, 725, no est en la lista.
-Cantor demostr que el intervalo (0,1) es incontable, extrapolando, posteriormente, su
resultado a todo el conjunto R: Suponiendo cierto que para el intervalo (0,1) tenemos la
funcin f: (0,1)
63
Problemas indecidibles
Para ello listaremos en una columna todas las MT, que hemos asociado con un nmero
natural. El resto de columnas (j) son cada una de las cadenas de *, asociadas tambin con
un nmero natural. As una porcin de la lista podra quedar
j
Mi
44
45
46
47
44
45
46
47
As, cada fila de la tabla ser el vector caracterstico del lenguaje aceptado por la
mquina correspondiente, donde se reflejan las cadenas que pertenecen al lenguaje de cada
mquina.
Suponer el lenguaje compuesto por cada una de las cadenas que representan el cdigo de
la Mi cuya codificacin es aceptada por ellas mismas. Como se puede observar, el vector
caracterstico de este lenguaje se corresponde con la diagonal de la tabla (la M45 y M46
aceptan 45 y 46, es decir, aceptan su propia codificacin, mientras que M44 y M47 no). Se
puede demostrar que la mquina que acepta este lenguaje existe, siendo el vector
caracterstico de alguna Mk de la lista.
Mquinas de Turing
64
Es decir Ld, es el lenguaje compuesto por cada una de las cadenas que representan el
cdigo de la Mi cuya codificacin no es aceptada por ella misma.
Con este mtodo se ha encontrado un conjunto de cadenas que no es el vector
caracterstico de ninguna MT, es decir, no hay ninguna MT que acepte Ld. Para aclarar esta
afirmacin, suponer que existe una MT, Mk, que acepta el lenguaje Ld. Entonces esta
mquina debera estar en la lista. Si la cadena k es el cdigo de Mk, pueden ocurrir dos
cosas:
Que k pertenezca a Ld. En este caso Mk debera aceptar la cadena. Sin embargo, se
ha demostrado que Ld no contiene k si existe alguna mquina que acepte su propia
codificacin, debiendo Mk rechazarla. Luego se produce una contradiccin.
65
Problemas indecidibles
8.- CONJUNTOS RECURSIVOS Y RECURSIVOS ENUMERABLES (y II)
han de ser recursivamente enumerables. Para demostrar esto, se construir una MT,
Mr, de dos cintas, donde la primera sirve para simular M, que acepta L(M), y la segunda
sirva para simular M, que acepta
Hasta ahora se han demostrado los casos en los que el lenguaje y su complementario
son simtricos (decidibles por una MT). En este caso se puede considerar que el problema
es el mismo.
Sin embargo, tambin hay casos en los que no lo son, como se demostr en con el
lenguaje de diagonalizacin Ld y su complementario. En este caso cada lenguaje es un
problema diferente. Es ms, el complementario a Ld es RE (es aceptado por alguna Mk),
mientras que Ld no, de lo que se demuestra que la complementacin para RE no es cerrada.
En resumen, podemos relacionar un lenguaje y su complementario de la siguiente
manera:
Ly
son recursivos.
66
Mquinas de Turing
Ly
L es RE pero
es RE pero L es no RE.
Problemas indecidibles
67
Por este comportamiento ltimo, es por el que, intuitivamente, se puede observar que Lu
es indecidible. Sin embargo, este lenguaje s es RE, ya que Lu es precisamente lo que
representa toda la lista de mquinas con todas las cadenas que acepta cada una. Luego se
puede construir una MT, U, de tres cintas que simule cualquier otra MT, M, con una cadena
de entrada determinada:
Cinta 2.- Simula el contenido de la cinta de M (en el mismo cdigo binario utilizado
para codificar la mquina, es decir, un cero para el cero, dos ceros para el 1, tres
ceros para B,.). El cdigo de cada smbolo se precede con un uno. Esto es correcto
porque ningn smbolo de cinta de M se va a codificar con un uno.
Cinta 3.- Contendr el estado en el que se encuentra M. Al igual que antes, con el
mismo cdigo que la mquina.
10
Como ya se ha dicho, Turing dise la MT calculadora con aceptacin por parada. Para esta mquina el
problema equivalente al de la parada es si la mquina sera capaz de parar para todas las cadenas a su entrada.
Dado que el modelo es distinto, el problema es distinto. Ms concretamente, a este problema, para U, se le
debera llamar el problema de la aceptacin, pues se trata de un modelo de aceptacin de cadenas. Las
conclusiones que sacaremos son las mismas.
68
Mquinas de Turing
1010010010100. Un
69
Problemas indecidibles
Una vez que se ha demostrado que hay una MT que simula cualquier MT que acepta una
cadena, y por tanto que es RE, ahora hay que demostrar que Lu es indecidible, es decir que
no hay una MT para el lenguaje
es un
MT que acepte Ld, por lo tanto no habr ninguna mquina que acepte
Para demostrar esta afirmacin, suponer que Lu es recursivo; esto es lo mismo que
suponer que existe una MT, Mk, que con una entrada (M, ) acepta Lu, aceptando si la
cadena est en el lenguaje y rechazando si no lo est.
, que acepte
la rechazar y
, para obtener
, que en lugar de tener como entrada el par (M, ) tenga el par (M,M), es decir, una M
que acepte su propia codificacin. As,
) si
) si
tampoco
,
) debe
afirmar que, como Lu es RE, cualquier subconjunto suyo tambin lo es, entre ellos
Mquinas de Turing
70
Problemas indecidibles
71
Mquinas de Turing
72
Otro ejemplo ms mundano: El jefe al fin se ha decidido a dar las vacaciones, pero
estamos a 30 de julio y queremos ir con la familia, que resulta que est en Australia. El
problema entonces se reduce a encontrar un billete de avin a este destino.
En trminos de mquinas de Turing, dado un lenguaje L1, que define un problema,
su decisin se reduce a otro lenguaje L2 que es decidible. Para ello se debe encontrar un
algoritmo que convierta una cadena de L1 en otra cadena de L2 (L2 puede tener ms
cadenas aceptables, pero nos interesan las que se pueden obtener por el algoritmo desde L1),
decidindose entonces si pertenece a L2.
Para demostrar la indecidibilidad de un lenguaje L, se va a utilizar la reduccin ante
dos situaciones distintas:
Que haya que demostrar que L2 es RE. Para ello partimos de la certeza de que L1 es
RE (por ejemplo Lu) y lo reducimos a L2. Se supondr que este ltimo es decidible,
es decir, que se puede encontrar una MT que, siendo la entrada una cadena de L1,
esta se puede convertir en una cadena de L2, y decidir si esta ltima pertenece a
L2 o no. Si se encuentra al algoritmo de conversin, se habr encontrado una MT que
es capaz de reducir L1 a L2, y por tanto, la manera de decidir L1. Pero esto es una
contradiccin, pues sabemos de antemano que L1 es RE, por lo que, forzosamente,
L2 no puede ser decidible. Se llega a la conclusin de que L2 tambin es RE.
Que haya que demostrar que L2 no es RE. Para ello partimos de la certeza de que L1
no es RE (por ejemplo Ld) y lo reducimos a L2. Se supondr que este ltimo es RE,
Problemas indecidibles
73
es decir, que se puede encontrar una MT que, siendo la entrada una cadena de L1,
esta se puede convertir en una cadena de L2, y aceptarla si esta ltima pertenece a
L2. Si se encuentra un algoritmo de conversin, se habr encontrado una MT que es
capaz de reducir L1 a L2, y por tanto la manera de aceptar L1. Pero esto es una
contradiccin, pues sabemos de antemano que L1 no es RE (ninguna MT puede
aceptarlo), por lo que, forzosamente, L2 no puede ser RE. Se llega a la conclusin de
que L2 tampoco es RE.
Mquinas de Turing
74
75
Problemas indecidibles
ISBN 970-
94484-0-4.
[Brookshear, 1993]. Brookshear, J., G. Teora de la computacin. Lenguajes formales,
autmatas y complejidad. 1 edicin. Mxico, Addison Wesley Iberoamericana, 1993. ISBN
9789684443846
[de la Fuente, 2010] de la Fuente Lpez, R.,J. Matemtica discreta: Conjuntos,
combinatoria y grafos. [en lnea]. Divulgacin web, 2010. [consulta 17-07-2010].
Disponible en:
http://www.innova.uned.es/webpages/aconute/matematicas/documentos/Matematica%20dis
creta_conjuntos_combinatoria_grafos_v20100712-r.pdf
[Fernndez 1997]. Fernndez Vindel, J., L. Computabilidad y complejidad. Resumen
informal de conceptos bsicos [en lnea]. Universidad Nacional de Educacin a Distancia
UNED
1997.[consulta
15-10-2002].
Actualmente
no
disponible.
Obtenido
en
http://www.ia.uned.es/asignaturas/autmatas-2
[Hernndez et al 2009] Hernndez Fernndez, I., Mateos Contreras, C., Nez Valds, J.
Diofanto, Hilbert y Robinson: Alguna relacin entre ellos?. Nmeros, revista didctica de
las matemticas [on-line]. Abril 2009, volumen 70 [consulta 15-12-2009]. Pgs 75-87.
Publicacin disponible en http://www.sinewton.org/numeros, artculo disponible en
http://www.sinewton.org/numeros/numeros/70/Volumen%2070.pdf
ISSN: 1887-1984
Mquinas de Turing
76