You are on page 1of 12

1.

LENGUAJE NO RECURSIVAMENTE ENUMERABLE


Recuerde que un lenguaje L es recursivamente enumerable (RE) si L = L ( M ) para
alguna mquina de Turing M.
Nuestro objetivo a largo plazo es demostrar la indecibilidad del lenguaje que consta de
pares ( M , w ) tales que:
1. M es una mquina de Turing (codicada adecuadamente en binario) con el alfabeto
de entrada { 0 , 1 } ,
2. w es una cadena de ceros y unos, y
3. M acepta la entrada w.
El primer paso consiste en enunciar este problema como una cuestin acerca de la
pertenencia a un determinado lenguaje. Por tanto, tenemos que determinar una codificacin
para las mquinas de Turing que slo utilizan ceros y unos, independientemente de cuntos
estados tengan la MT. Una vez que dispongamos de esta codificacin, podremos tratar
cualquier cadena binaria como si fuera una mquina de Turing. Si la cadena no es una
representacin bien formada de una MT, podemos interpretarlo como una representacin de
un MT sin movimientos. Por tanto, podemos pensar que cualquier cadena binaria representa
una MT.
Un objetivo intermedio, que adems es el objeto de esta seccin, implica al lenguaje

Ld

el lenguaje de diagonalizacin, formado por todas aquellas cadenas w tales que la MT


Ld
representada por w no acepta la entrada w. Demostraremos que
no es aceptado por
ninguna mquina de Turing. Recuerde que demostrando que no existe ninguna mquina de
Turing para un lenguaje, estamos demostrando algo an ms restrictivo que el hecho de que
el lenguaje sea indecidible (es decir, que no existe ningn algoritmo, o ninguna MT que
siempre se pare).
1.1

Enumeracin de cadenas binarias

Si w es una cadena binaria, tratamos 1w como el entero binario i. Entonces se considera


que w es la i-sima cadena. Es decir, es la primera cadena, 0 es la segunda, 1 la tercera, 00
la cuarta, 01 la quinta, etc. De forma equivalente, las cadenas se ordenan de acuerdo con la
longitud, y las cadenas de la misma longitud se ordenan alfabticamente. De aqu en
wi
adelante, denominaremos
a la cadena i-sima.
1.2

Cdigos para las mquinas de Turing

Nuestro siguiente objetivo es definir un cdigo binario para las mquinas de Turing de
modo que cada MT con el alfabeto de entrada { 0 , 1 } pueda interpretarse como una
cadena binaria. Puesto que ya hemos visto cmo enumerar cadenas binarias, disponemos
entonces de un medio de identificacin de las mquinas de Turing mediante enteros, y
Mi
podremos hablar de la i-sima mquina de Turing,
. Para representar una MT
q1

M = ( Q ,{ 0 , 1 }, , ,

, B , F ) como una cadena binaria, primero tenemos que

asignar nmeros enteros al estado, los smbolos de cinta y las direcciones L y R.

q1

Supondremos que los estados son


q1

inicial siempre ser

q2

,y

q2

qk

,...,

para algn k. El estado

ser el nico estado de aceptacin. Observe

que, dado que podemos suponer que la MT se para cuando entra en un estado de
aceptacin, nunca existe la necesidad de que haya ms de un estado de
aceptacin.

X1

Supondremos que los smbolos de cinta son


X1

m.

siempre ser el smbolo 0,

X2

X2

ser el 1 y

,...,
X3

Xm

para algn

ser B, el espacio

en blanco. No obstante, pueden asignarse otros smbolos de cinta a los restantes


enteros de forma arbitraria.

Denominaremos a la direccin L (izquierda)


D2

D1

y a la direccin R (derecha)

Dado que el orden en que se asignan los enteros a los estados y smbolos de cinta de
cada MT M puede ser diferente, existir ms de una codificacin para cada MT. Sin
embargo, este hecho no es importante, ya que vamos a demostrar que ninguna codificacin
Ld
puede representar una MT M tal que L ( M ) =
.
Una vez que hemos asignado un entero a cada estado, smbolo y direccin, podemos
q
codificar la funcin de transicin . Supongamos que una regla de transicin es ( i ,
Xj

)=(

qk

X1

cadena mediante la cadena

Dm
i

) , para los valores enteros i, j, k, l y m. Codificamos esta


j

0 ,1 0 ,1 0 , 10 , 1 0

. Observe que, dado que i, j, k, l y m

valen, como mnimo, uno, no existen subcadenas de dos o ms unos consecutivos en el


cdigo de una nica transicin.
Un cdigo para la MT completa TM M consta de todos los cdigos correspondientes a
las transiciones, en un cierto orden, separados por pares de unos:

donde cada una de las C corresponde al cdigo de una transicin de M.


EJEMPLO1:
Sea la MT

donde consta de las reglas siguientes:

Los cdigos de cada una de estas reglas son, respectivamente:

Por ejemplo, la primera regla puede escribirse como (


D2

) , ya que 1 =

X2

Por tanto, su cdigo es

X1

,0=
1

D2

yR=
3

0 ,1 0 , 10 , 1 0 ,1 0

cdigo para M es entonces:

q1

X2

)=(

q3

X3

, como se ha indicado anteriormente. Un

Observe que existen otros muchos posibles cdigos para M. En particular, los cdigos de
las cuatro transiciones pueden enumerarse en cualquiera de las 4! ordenaciones posibles, lo
que nos da 24 cdigos para M.

Figura 1: Tabla que representa la aceptacin de cadenas por mquinas de Turing.

1.3

El lenguaje de diagonalizacin

La mquina de Turing i-sima: es aquella MT M cuyo cdigo es

wi

, la cadena

binaria i-sima. Muchos enteros no se corresponden con ninguna MT. Por ejemplo, 11001
wi
no comienza por 0, y 0010111010010100 tiene tres unos consecutivos. Si
no es un
cdigo vlido de MT, interpretaremos que

Mi

transicin. Es decir, para dichos valores de i,

es una MT con un estado y ninguna


Mi

es una mquina de Turing que se

detiene de forma inmediata para cualquier entrada. Por tanto, L (

Mi

) es si

wi

no es

un cdigo vlido de la MT.


El lenguaje
que

wi

Ld

, el lenguaje de diagonalizacin, es el conjunto de cadenas

no pertenece a L (

Mi

).

wi

tal

Es decir,

Ld

consta de todas las cadenas w tales que la MT M, cuyo cdigo es w, no

acepta cuando se proporciona w como entrada.


La razn por la que

Ld

se denomina lenguaje de diagonalizacin puede verse

fijndose en la Figura 1. Esta tabla indica para todo i y j, si la MT Mi acepta o no la cadena


wj
de entrada
; 1 signfica que s la acepta y 0 indica que no la acepta.1 La fila isima puede intrepretarse como el vector caracterstico del lenguaje L (

Mi

) ; es decir,

los unos de esta fila indican las cadenas que pertenecen a este lenguaje.
Los valores de la diagonal indican si

Mi

acepta

wi

. Para construir

Ld

, se

complementa la diagonal de la tabla. Por ejemplo, si la Figura 1 fuera la tabla correcta,


Ld
entonces la diagonal complementada comenzara por 1, 0, 0, 0,.... Por tanto,
contendra w1 =, no contendra w2 hasta w4, que son 0,1 y 00, etc.
El proceso que consiste en complementar la diagonal para construir el vector
caracterstico de un lenguaje, que no puede ser el lenguaje que aparece en ninguna de las
filas, se denomina diagonalizacin. Este proceso funciona porque el complementario de la
diagonal es en s mismo un vector caracterstico que describe la pertenencia a un lenguaje,
Ld
que denominaremos,
. Este vector caracterstico difiere en alguna columna de todas
las filas de la tabla mostrada en la Figura 1. Por tanto, el complementario de la diagonal no
puede ser el vector caracterstico de ninguna mquina de Turing.
1.4
Ld

Demostracin de que

Ld

no es recursivamente enumerable

no es un lenguaje recursivamente enumerable. Es decir, no existe ninguna mquina

de Turing que acepte

Ld

DEMOSTRACIN. Supongamos que


Ld

Ld

fuera L ( M ) para alguna MT M. Dado que

es un lenguaje sobre el alfabeto { 0 , 1 } , M debera estar en la lista de mquinas de

Turing que hemos construido, dado que incluye todas las MT cuyo alfabeto de entrada es
Mi
{ 0 , 1 } . Por tanto, existe al menos un cdigo para M, por ejemplo i; es decir, M =
.
Ahora veamos si wi pertenece a

Ld

Si

wi

Ld

denicin de
aquellas

Ld

pertenece a

wj

wi

De manera similar, si

wi

Por tanto, por denicin de


Dado que

wi

no acepta

wj
Ld

no pertenece a
Ld

wi

wi

acepta
Ld

no pertenece a

Mj

tales que

Mi

, entonces

. Pero entonces, por


Ld

, porque

slo contiene

.
Mi

no acepta

wi

y no pertenecer a

Ld

, entonces
Ld

pertenece a

no puede simultneamente pertenecer a

Ld

concluimos que existe una contradiccin en la suposicin de que existe M. Es decir,

Ld

no es un lenguaje recursivamente enumerable.

2. PROBLEMAS INDECIDIBLES PARA LAS MAQUINAS DE


TURING
Reducciones
P1

En general, si tenemos un algoritmo para convertir casos de un problema


P2

de un problema
reduce a

P2

P2

P1

. Por tanto, si

es no-RE, entonces

P1

no es recursivo, entonces

P1

P2

todo caso de

P2

P1

P2

se

es al menos
no puede ser

cuya respuesta sea s

cuya respuesta sea tambin s, y todo caso de

sea no en un caso de

P2

P1

no puede ser RE. Como se muestra en la

Figura 1, una reduccin tiene que convertir cualquier caso de


en un caso de

P2

. Podemos utilizar esta demostracin para comprobar que

tan complejo como


recursivo. Si

que proporciona la misma respuesta, entonces decimos que

en casos

P1

cuya respuesta

cuya respuesta sea no. Observe que no es esencial que a

le corresponda uno o ms casos de

habitual que slo una pequea fraccin de

P2

P1

, y de hecho es bastante

sea el objetivo de la reduccin.

P1

Formalmente, una reduccin de


P1

a P2 es una mquina de Turing que toma un caso de


P2

de su cinta y se para cuando en su cinta hay un caso de

TEOREMA1
Si existe una reduccin de
P1

a) Si

P1

P2

es indecidible, entonces

, entonces:
P2

tambin lo es.

Figura 1: Reducciones de casos positivos en positivos, y negativos en negativos.


P1

b) Si

P2

es no-RE, entonces

tambin lo es.
P1

DEMOSTRACIN. En primer lugar, suponemos que


posible decidir sobre

P2

P2

P2

P1

decir, w pertenece a
P1

P1
P1

P2

P2

. Aplicamos a w el algoritmo

. A continuacin aplicamos el algoritmo que decide

a x. Si dicho algoritmo da como respuesta s, entonces x est en

que hemos reducido

parte de

P2

para construir un algoritmo que decida sobre

. Suponemos que disponemos de un caso w de

que convierte w en un caso x de


sobre

P1

, entonces podemos combinar la reduccin de

con el algoritmo que decide sobre


P1

es indecidible. Si es

, sabemos que la respuesta de

. Igualmente, si x no forma parte de

, y lo que responda a la cuestin est x en

P2
P2

P1

P2

. Dado

a w es s; es

entonces w no forma
? ser tambin la

P1

respuesta correcta a est w en


suposicin de que
entonces

P2

P1

? Por tanto, hemos llegado a una contradiccin de la

es indecidible. La conclusin es que si

P1

es indecidible,

tambin es lo es.
P1

Consideremos ahora el apartado (b). Supongamos que


P1

RE. Ahora tenemos un algoritmo para reducir


procedimiento para reconocer
su entrada pertenece a

P2

P2

P2

P2

es no-RE, pero

es

, pero slo disponemos de un

; es decir, existe una MT que da como respuesta s si


P2

pero puede no pararse si su entrada no pertenece a

Como en el apartado (a), partimos de una instancia w de


P2

el algoritmo de reduccin en una instancia x de

P1

, la convertimos mediante

. Luego aplicamos la MT para

P2

a x. Si x se acepta, entonces w se acepta.


Este procedimiento describe una MT (que puede no pararse) cuyo lenguaje es
P1

w pertenece a
P1

pertenece a

, entonces x pertenece a

, entonces x no pertenece a

P2
P2

P1

. Si

, por lo que esta MT aceptar w. Si w no


. Luego la MT puede o no pararse, pero

seguro que no aceptar w. Dado que hemos supuesto que no existe ninguna MT para

P1

hemos demostrado por reduccin al absurdo que tampoco existe ninguna MT para

P2

Le

es decir, si

P1

es no-RE, entonces

P2

es no-RE.

Mquinas de Turing que aceptan el lenguaje vaco


Si L (
Por tanto,

Mi
Le

) =, es decir, Mi no acepta ninguna entrada, entonces w pertenece a

es el lenguaje formado por todas aquellas codicaciones de MT cuyo

lenguaje es el lenguaje vaco. Por el contrario, si L (


entonces w pertenece a

Lne

. Por tanto,

Lne

Mi

) no es el lenguaje vaco,

es el lenguaje que consta de todos los

cdigos de las mquinas de Turing que aceptan al menos una cadena de entrada.

Figura 2: Construccin de una MT no determinista que acepta

Lne

De aqu en adelante, resultar conveniente interpretar las cadenas como las mquinas de
Turing que representan. As, podemos definir los dos lenguajes que acabamos de mencionar
como sigue:

Le

={M|L(M)=}

Lne

= { M | L ( M ) }

Observe que

Le

Lne

son lenguajes sobre el alfabeto binario { 0 , 1 } , y que son

complementarios entre s. Veremos que


no recursivo. Por el contrario,

Le

Lne

es el ms sencillo de los dos y es RE pero

es no-RE.

TEOREMA 2
Lne

es recursivamente enumerable.

DEMOSTRACIN. Hay que demostrar que existe una MT que acepta

Lne

. Para

ello, lo ms sencillo es describir una MT no determinista M, cuyo esquema se muestra en la


Figura 2.
El funcionamiento de M es el siguiente.
1. M toma como entrada el cdigo de una MT

Mi

2. Utilizando su capacidad no determinista, M prueba con una entrada w que


podra aceptar.
3. M comprueba si

Mi

Mi

acepta w. Para esta parte del proceso, M puede simular a

la MT universal U que acepta Lu.


Mi
4. Si
acepta w, entonces M acepta su propia entrada, que es

Mi

De esta forma, si

Mi

acepta aunque sea una sola cadena, M terminara encontrndola


Mi

(entre otras muchas, por supuesto), y aceptara


entonces ninguna cadena w sera aceptada por
tanto, L ( M ) =

Lne

Lne

, por lo que M no aceptar

Mi
Mi

) = ,
. Por

El siguiente paso consiste en demostrar que


Lu a

Mi

. Sin embargo, si L (

Lne

no es recursivo. Para ello, reducimos

. Es decir, describiremos un algoritmo que transforme una entrada (M, w ) en

una salida M , el cdigo de otra mquina de Turing, tal que w pertenezca a L ( M ) si y slo
si L ( M ) no es el lenguaje vaco. Es decir, M acepta w si y slo si M acepta al menos una
cadena. El truco est en que M ignora su entrada, en lugar de simular M para la entrada w.
Si M acepta, entonces M acepta su propia entrada; por tanto, la aceptacin de w por parte
Lne
de M es equivalente a que L (M) no sea el lenguaje vaco. Si
fuera recursivo,
entonces tendramos un algoritmo para determinar si M acepta o no la cadena w:
construiramos M y veramos si L ( M) = .
TEOREMA 3
Lne

no es recursivo.

Figura 4: Esquema de la MT M construida a partir de ( M , w ) en el Teorema 3: M


acepta una entrada arbitraria si y slo si M acepta w.

DEMOSTRACIN. Seguiremos la misma lnea que en la demostracin anterior.


Tenemos que disear un algoritmo que convierta una entrada, que es un par codificado en
binario ( M , w ) , en una MT M tal que L ( M) si y slo si M acepta la entrada w. La
construccin de M se muestra en la Figura 4. Como veremos, si M no acepta w, entonces

M no acepta ninguna de sus entradas; es decir, L ( M) = . Sin embargo, si M acepta w,


entonces M acepta todas las entradas y, por tanto, L ( M) no ser .
M se disea como sigue:
1. M ignora su propia entrada x. En su lugar, reemplaza su entrada por la cadena que
representa la MT M y la cadena de entrada w. Puesto que M est diseada para un
par especfico ( M , w ) , cuya longitud ser por ejemplo n, podemos construir M
q0
q1
qn
q0
para disponer de una secuencia de estados
,
,...,
, donde
es
el estado inicial.
a) En el estado

qi

, para i = 0 , 1 ,..., n 1, M escribe el ( i + 1 ) -simo bit del

cdigo de ( M , w ) , pasa al estado qi + 1 y se mueve hacia la derecha.


qn
b) En el estado
, M se mueve hacia la derecha, si fuera necesario,
reemplazando los smbolos no blancos (que correspondern a la cola de x, si
dicha entrada a M tiene una longitud mayor que n) por espacios en blanco.
2. Cuando M encuentra un espacio en blanco estando en el estado qn, utiliza una
coleccin similar de estados para volver a posicionar su cabeza en el extremo
izquierdo de la cinta.
3. Ahora, utilizando estados adicionales, M simula una MT universal U en su cinta
actual.
4. Si U acepta, entonces M acepta. Si U nunca acepta, entonces M tampoco aceptar
nunca.
La anterior descripcin de M debera bastar para convencerle de que se podra disear
una mquina de Turing que transformara el cdigo de M y la cadena w en el cdigo
correspondiente a M. Es decir, existe un algoritmo que permite llevar a cabo la reduccin
Lu
Lne
de
a
. Vemos tambin que si M acepta w, entonces M aceptar cualquier
entrada x que estuviera originalmente en su cinta. El hecho de que x sea ignorada es
irrelevante; la definicin de aceptacin por una MT establece que lo que la MT acepta es lo
que haya en su cinta antes de comenzar a operar. Por tanto, si M acepta w, entonces el
Lne
cdigo correspondiente a M pertenece a
. Inversamente, si M no acepta w, entonces
M nunca acepta, independientemente de cul sea su entrada. Por tanto, en este caso, el
Lne
Lu
Lne
cdigo para M no pertenece a
. Hemos reducido satisfactoriamente
a
aplicando el algoritmo que construye M a partir de M y w; podemos concluir que, dado

que

Lu

no es recursivo,

Lne

tampoco lo es. La existencia de esta reduccin es

suficiente para completar la demostracin. Sin embargo, para ilustrar la influencia de esta
Lne
reduccin, vamos a llevar este argumento un paso ms all. Si
fuera recursivo,
entonces podramos desarrollar un algoritmo para Lu de la forma siguiente:
1. Convertimos ( M , w ) en la MT M como anteriormente.
Lne
2. Utilizamos el algoritmo hipottico para
para determinar si resulta o no que L
( M) = /0. En caso afirmativo, decimos que M no acepta w; y si L ( M) ,
entonces decimos que M acepta w.
Dado que, de acuerdo con el Teorema 3, sabemos que no existe tal algoritmo para
hemos llegado a una contradiccin de la hiptesis que estableca que
y concluimos que

Lne

Lne

Lu

era recursivo,

no es recursivo.

Ahora ya conocemos el estado de Le. Si Le fuera RE, entonces por el Teorema 9.4, tanto
Lne
Lne
l como
seran recursivos. Dado que, de acuerdo con el Teorema 4,
no es
recursivo, podemos concluir que:
TEOREMA 4
Le

no es RE.

You might also like