• No se han encontrado resultados

M´ aquinas de Turing

f1, . . . , fn tales quefn esf y cadafi es recursiva elemental o est´a definida por composici´on, recursi´on o minimizaci´on parcial a partir de funciones anteriores de la sucesi´on.

Obviamente, toda funci´on recursiva es recursiva parcial. Ahora s´ı podemos enumerar expl´ıcitamente todas las funciones recursivas parciales, pero ya no llegamos a ninguna contradicci´on. Simplemente, la funci´on g(n, n) + 1 puede ser igual a una funci´ongn de modo quegn(n) no est´e definido.

5.6

M´aquinas de Turing

El argumento de Turing para probar que las funciones recursivas coinciden con las funciones calculables mediante un algoritmo se basa en el concepto de m´aquina de Turing. Una m´aquina de Turing es un modelo te´orico de ordena- dor con infinita memoria disponible. Aunque la descripci´on que sigue parezca la descripci´on de una m´aquina real, debemos tener presente que una m´aquina de Turing es un concepto abstracto de la misma naturaleza que una teor´ıa axiom´atica, es decir, un sistema conceptual que fundamenta una serie de afir- maciones objetivas.

Una m´aquina de Turing consta de una cinta infinita dividida en infinitas casillas contiguas infinitamente prolongable tanto a izquierda como a derecha:

Cada casilla puede estar en blanco o tener impreso un signo de entre los de una lista finita que llamaremos alfabeto: s1, . . . , sj (j 1) fija para cada m´aquina particular. Escribiremoss0para nombrar al “blanco” y as´ı la situaci´on

posible de una casilla ser´a una de entres0, . . . , sj. En cualquier momento la cinta tendr´a un n´umero finito de casillas impresas (con signos distintos des0).

Representaremos la cinta con signos as´ı:

s1 s2 s2 s3 s1 s1 s4 s1

Se sobrentiende que el resto de la cinta est´a en blanco. Si queremos indicar que el resto de la cinta puede no estar en blanco pero que no importa lo que haya impreso, lo representaremos as´ı:

s1 s2 s2 s3 s1 s1 s4 s1

El estado de la cinta en un momento dado lo llamaremossituaci´on.

En cada instante la m´aquina se encontrar´a en unestadode entre un n´umero finito posible de ellosq0, . . . , qk (k≥1) fijo para cada m´aquina particular. Cada estado puede seractivoopasivo. El estado q0 siempre es pasivo,q1 siempre es

activo. A q1 le llamaremos estado inicial, es el estado en que se encuentra la

m´aquina cuando empieza a funcionar.

En cada instante la m´aquina lee el signo de una casilla de la cinta. Esta casilla se llamacasilla escrutaday el signo se llamasigno escrutado.

El estado de la m´aquina y el signo escrutado determinan laconfiguraci´onde la m´aquina en un instante dado. La configuraci´on y la situaci´on determinan la

configuraci´on completa.

Expresaremos las configuraciones completas indicando el estado sobre la ca- silla escrutada as´ı:

s1 s2 s2 s3 s1 s1

q4

s4 s1

Si no queremos indicar el estado usaremos un gui´on “—”.

Si en un instante dado una m´aquina de Turing se encuentra en un estado activo, ´esta realizar´a unacto. Un acto consiste en:

a) Leer el signo de la casilla escrutada,

b) Imprimir un signo (quiz´as0) en la casilla escrutada,

c) Mover un lugar la cinta de modo que la nueva casilla escrutada pase a ser la contigua izquierda, la misma casilla o la contigua derecha,

d) Cambiar de estado (pasando quiz´a al mismo),

de tal modo que el signo que se imprime, el movimiento que se hace y el estado al que se pasa, son funci´on exclusivamente de la configuraci´on de la m´aquina en ese instante.

Si el estado es pasivo no se produce ning´un acto: la m´aquina est´aparada.

Seg´un esto una m´aquina de Turing viene determinada por: a) El alfabetos0, . . . , sj, conj≥1,

b) El conjunto de estados posiblesq0, . . . , qk, conk≥1,

c) Una funci´on que a cada configuraci´on activa (sa, qb) le asigna una terna (sc, M, qd), donde sc, M, qd son, respectivamente el signo impreso, el movimiento realizadoI,DoC(izquierda, derecha o centro) y el estado al que se pasa, todo esto cuando la configuraci´on es (sa, qb). A esta funci´on se le llamaprogramade la m´aquina.

En la pr´actica escribiremos el programa en forma de tabla. Por ejemplo: Sea Ala m´aquina de Turing con alfabetos0,s1, estadosq0,q1 y programa

A s0 s1

q1 s1Cq0 s1Dq1

La m´aquinaAse mueve sobre la cinta hacia la derecha hasta encontrar una casilla en blanco, donde imprimes1 y se para.

5.6. M´aquinas de Turing 141 Seg´un advert´ıamos al principio, las m´aquinas de Turing no existen (como objetos f´ısicos). No son ordenadores porque ning´un ordenador puede trabajar con una “cinta” de memoria infinita. Son un modelo de ordenador ideal exento de limitaciones de memoria. Lo ´unico importante es que podemos hablar consis- tentemente de ellas y determinar qu´e hace una m´aquina dada a partir de unos datos dados, como acabamos de hacer con la m´aquinaA.

Computabilidad Consideremos una m´aquina de Turing y sea s=s1. Lla-

maremos representaci´on del n´umero natural n a la situaci´on de la cinta que consta den+ 1 signossconsecutivos, con el anterior y posterior en blanco.

Llamaremos representaci´on de los n´umeros a1, . . . , an a la situaci´on que consta de n secuencias de ai + 1 signos s consecutivos cada una, separadas por un blanco. Por ejemplo, la representaci´on de 2, 0, 3 es

s s s s s s s s

Llamaremos vac´ıo en la cinta a dos o m´as casillas en blanco consecutivas. Llamaremosrepresentaci´on normaloposici´on normalde los naturalesa1, . . . , an a la representaci´on dea1, . . . , an cuando la casilla escrutada es la ´ultima casilla impresa dean. Por ejemplo 2, 0, 3 en posici´on normal es

s s s s s s s s

Diremos que una m´aquina de TuringM computa la funci´on parcialn-´adica f si cuando M comienza con los n´umeros a1, . . . , an en posici´on normal y el resto de la cinta en blanco, termina con la representaci´on normal de

a1, . . . , an, f(a1, . . . , an)

en el caso de quef(a1, . . . , an) est´e definido y no se detiene o no se detiene con

a1, . . . , an, aen posici´on normal para ning´un n´umeroasif(a1, . . . , an) no est´a

definido.

Por ejemplo si f(2,0,3) = 0 yM computaf, cuandoM comienza con

s s s s s s s s

q1

termina con

s s s s s s s s s

No se exige que la posici´on absoluta de los n´umeros en la cinta sea la misma que al comienzo.

Una funci´on parcial es computable si hay una m´aquina de Turing que la computa. Una m´aquina de TuringM computa 1|1 la funci´on parcialn-´adica f si cumple:

a) El alfabeto deM ess0,s,

b) SiM comienza cona1, . . . , an en posici´on normal y el resto de la cinta a la derecha en blanco se cumple:

1. Las casillas a la izquierda de la representaci´on dea1, . . . , an (o sea, a la izquierda del blanco anterior aa1) no son nunca escrutadas.

2. Sif(a1, . . . , an) est´a definido, entonces M acaba con a1, . . . , an, f(a1, . . . , an)

en posici´on normal de modo que la representaci´on comienza en la misma casilla donde comenzaba la dea1, . . . , anal principio. Adem´as todas las casillas a la derecha quedan en blanco.

3. Sif(a1, . . . , an) no est´a definido entoncesM no se para.

Una funci´on parcial es 1|1computablesi hay una m´aquina de Turing que la computa 1|1. Vamos a demostrar que una funci´on es computable si y s´olo si es 1|1 computable si y s´olo si es recursiva parcial. El concepto de computabilidad 1|1 es un concepto auxiliar t´ecnico para la prueba.

Por el momento trabajaremos con m´aquinas de un solo signo. Para ellas usaremos la siguiente notaci´on m´as c´omoda:

a) Llamaremos 0 as0y 1 as1.

b) Imprimir 1 sobre un 0 lo representaremosE(escribir). c) Imprimir 0 sobre un 1 lo representaremos B (borrar). d) Si un signo no se modifica no indicaremos nada.

e) Los estados pasivos ser´an 01, . . . ,0n (o “0” si s´olo hay uno). f) Los estados activos ser´an 1, 2, 3, . . . (1 es el estado inicial).

Por ejemplo la m´aquinaA de antes se representa ahora as´ı:

A 0 1

1 E0 D1

Concatenaci´on de m´aquinas de Turing SiM es una m´aquina de Turing con estados pasivos 01, . . . ,0n yN1, . . . , Nn son otras m´aquinas de Turing, lla- maremos M    N1 .. . Nn a la m´aquina de Turing definida como sigue:

5.6. M´aquinas de Turing 143 Siq1, . . . , qj son los estados activos deM yq1i, . . . qjii son los estados activos de Ni, los estados activos de la nueva m´aquina son q1, . . . , qj, q1i, . . . qjii , para i= 1, . . . , j.

Los estados pasivos son los de las m´aquinasN1, . . . , Nn. El estado inicial es q1, es decir, el estado inicial deM. El programa es como sigue:

Dada una configuraci´on, se realiza el acto marcado por el programa de la m´aquina a la que pertenece el estado en curso, a excepci´on del caso en queM deba pasar al estado 0i, en cuyo caso se pasa al estadoqi

1.

En otras palabras, se trata de la m´aquina que empieza actuando comoM y, cuando se ´esta se ha de parar por pasar al estado 0i, en lugar de ello comienza a actuar la m´aquinaNi.

M N1

N2

P1

La concatenaci´on puede repetirse cuantas veces se quiera, in- cluso de forma circular. Por ejemplo, la m´aquina de la figura empieza actuando como M, cuando ´esta acaba empieza N1 o

N2, seg´un el estado pasivo deM al que se llegue; si empiezaN2,

cuando ´esta acaba empieza P1 o vuelve a empezar M seg´un el

estado pasivo final.

SiMes una m´aquina de Turing con un ´unico estado pasivo, llamaremosMn a la m´aquina que resulta de concatenarM consigo mismanveces.

Construcci´on de m´aquinas de Turing Construimos ahora algunas m´aqui- nas de Turing concretas e indicamos la actividad que realizan (bajo determi- nadas condiciones iniciales). Un gui´on en la tabla del programa indica que no importa la instrucci´on que pongamos en esa casilla, pues no afecta al compor- tamiento que se requiere de la m´aquina.

B1 0 1 1 BI2 2 EI3 I2 3 D01 D02 B2 0 1 1 I0 D1 B3 0 1 1 BD0 B=B1 B2 B3A

Si B comienza con un n´umero en posici´on normal y otro a su izquierda, mueve el primero hasta eliminar el vac´ıo que los separa (si hay tal vac´ıo) sin escrutar las casillas a la izquierda del segundo n´umero.

Por ejemplo, partiendo de

1 1 1 1 1

B termina as´ı:

1 1 1 1 1

C 0 1 D 0 1 1 D2 1 I2 I1 2 D3 2 I2 0 3 E0 E 0 1 F 0 1 1 I2 1 BI0 2 D01 D02 G 0 1 H 0 1 1 D2 1 D2 2 D2 D3 2 ED2 I3 3 I0 D3 3 BI0 El comportamiento de estas m´aquinas es el siguiente:

C Cuando empieza con un n´umero en posici´on normal va dos lugares a la derecha e imprime.

D Cuando empieza con un n´umero en posici´on normal que no sea el extremo izquierdo de la cinta, se sit´ua en posici´on normal respecto al n´umero si- guiente por la izquierda.

E Cuando empieza con un n´umero en posici´on normal toma la salida 01 o

02 seg´un sea 0 o distinto de 0 y termina en posici´on normal.

F Cuando comienza en una casilla impresa, borra y va una casilla a la iz- quierda.

G Va un n´umero a la derecha (al rev´es queD).

H Cuando comienza con un n´umero en posici´on normal que no sea el extremo derecho de la cinta, lo completa con unos hasta eliminar el vac´ıo (si existe) que lo separa del siguiente n´umero por la derecha y termina con el n´umero completado en posici´on normal.

Im=CDmE HGm F GmA

La m´aquinaIm, cuando comienza cona1, . . . , am en posici´on normal y con lasa1+2 casillas siguientes por la derecha en blanco, termina cona1, . . . , am, a1,

en posici´on normal.

Km=AImmF DmF Gm.

La m´aquinaKm, cuando comienza cona1, . . . , am en posici´on normal y las a1+· · ·+am+ 2m+ 1 casillas siguientes por la derecha en blanco, termina

5.7. La tesis de Church-Turing 145