Vous êtes sur la page 1sur 20
294 Introduccién ala teria de autdmatas,lenguales y computacion 8.5.1 Maquinas de Turing con cintas semi-infinitas ‘Aunque la cabeza de una méquina de Turing puede moverse hacia 1a izquierda o la derecha respecto de su posicidn inicial, en este caso basta con que la cabeza de la MT pueda moverse a las posiciones situadas a In derecha de la posici6n inicial de la cabeza, De hecho, podemos suponer que la cinta es semi-infnita, es deci, no existe ninguna casilla ala izquierda de la posicién inicial de la eabeza. Encl siguiente teorema, proporcionamos una construceidn que demuestra que una MT con una cinta semi-infinita puede simular una MT cuya cinta es infinita en ambas direcciones, al igual que en el modelo de MT original Esta construccién se basa en el uso de dos pistas en la cinta semi-infinita. La pista superior representa las casillas de la MT original situadas en o a la derecha de la posicién inicial de la cabeza. La pista inferior representa las posiciones ala izquierda de la posicidn inicial. pero en orden inverso. En la Figura 8,19 se muestra la disposici6n exacta. La pista superior representa las casillas Xo,X).... , donde Xp es la posicién inicial de ta cabeza Xi,X2, ete, son las casilla situadas a su derecha. Las casillas X_,X_g, ete, representan las casillas situadas ala izquierda de la posivi6n iniciel,Fijese en el simboto + almacenado en la casilla mas a la igquierda de Ia pista inferior. Este simbolo sirve como marcador de final e impide que la cabeza de la MT semi-infinita se salga accidentalmente del extremo izquierdo de la cinta. ‘Vamos a aplicar una restriceién mis a nuestra msquina de Turing: no puede escribir nunca un espacio en ‘blanco. Esta sencilla restriccién, junto con la restriceién de que la cinta sea semi-infinita, implica que la cinta en todo momento contendrd ua prefijo de simbolos distinios del espacio en blanco seguido de una cantidad infinita de expacios en blanco, Ademis, la secuencia de simbolos distintos del espacio en blanco siempre comienza en 11a posicisn inicial de la cinta, En el Teorema 9.19, y también en el Teorema 10.9, veremos lo dil que result supaner que las configuraciones o descripciones instantineas tienen esta forma. ‘TEOREMA 8.12 ‘Todo lenguaje aceptado por una MT Mz también es aceptado por una MT Mi con las siguientes restricciones: 1. La cabeza de M; nunca se mueve hacia la izquierda de su posicién inicial. 2. My nunca escribe un espacio en blanco, DEMOSTRACION. La condicidn (2) es bastante sencilla. Consiste en crear un nuevo simbolo de cinta BY que se ‘comporte como un espacio en blanco, pero no es el espacio en blanco B. Es decir: a) Si Mz tiene una regla 8;(9.X) = (p,B,D), esta regla se cambia por 5a(q,X) (p.B'.D). b) Luego, d:(¢,B") se hace igual a 52(g,B), para todo estado q. La condicién (1) requiere algo mais de trabajo. Sea Mz = (Q2.3.1°3.63.93.B.F3) 1a MT Mf que incluye las modifivaciones anteriores, de modo que nunca escribe espacios en blanco B. Cons- truimos: | (O12 {8}. 61.40.{B.8).Fi) onde: w + [Xa Figura 8.19. Una cinta semi-infinita puede simular una cinta infinita en ambos sentidos. — | Ce Capitulo € Introduccion alas maquina de Turing 285 Qt Losestados de My son {qo.41) U (Qo {U,L}). Fs decir los estados de M; son el estado inicial gp, 00 estado qr todos los estados de M; con una segunda componente de datos cuyo valor puede ser U (upper, superior) 0 (lower, inferior) Esta segunda componente nos dice si M; esta explorando la pista superior © inferior, como se muestra en la Figura 8.19. Dicho de otra manera, U indica que la cabeza de Mz se encuentra en la posicién inicial o en una posicidn la derecha de la misma, y€ indica si se encuentra a Ta izquierda de dicha posicién. Ty Los simbolos de cinta de Mi son todos los pares de simbolos de I>, es decir, F> x P>. Los simbolos de entrada de M; son aquellos pares con un simbolo de entrada de M3 como primera componente y un espacio en blanco en la segunda componente, es decir, pares dela forma |a,B}, donde a pertenece a S. El espacio en blanco de M; contiene espacios en blanco en ambos eomponentes. Adicionalmente, para cada simbolo X de P, existe un par [X, +] de Py. Aquf, «es un nuevo sfmbolo que no pertenece aT, sirve para marcar el extremo izquierdo dela cinta de Mi 5, Las transiciones de M; son las siguientes: 1, 8; (go.a.B)) = (q1.[a.«].R). para cualquier ade E. El primer movimiento de M; coloca cl marcador en la pista inferior de la caslla mas a la izquierda. El estado pasa a ser qi y la cabeza se mueve hacia la derecha, porque no puede moverse hacia la izquierda o quedarestacionaria, 2. 81(qi.[X-B)) = ((gn,U)]},X,B),L). para cualquier X de T>. En el estado qi. M; establece las condi cones iniiales de Ma, devolviencio la cabeza a su posicin inicial y cambiande el estado a [g2,U], es decir al estado iniial de Mo y seRialando a la pista superior de My. 3. Si 8:(9.X) = (p.¥.D), entonces para todo Z de Fy 2) 64((g.U}-(%.Z)) = ((p.U}¥.2],D) y b) 6y(\g.t)-(2,X1) = ([p.t),(2.¥1-B), donde B es el sentido opuesto a D, es decir, Lsi D= Ry R si D = L. SiM, noesté en la casilla mis a la izquierda, entonces simula M; en la pista apropiada (la pista superior sila segunda componente del estado es U y la pista inferior si la segunda componente es L). Observe sin embargo que cuando trabaja sobre a pista inferior, My se mueve en el sentido opuesto al que se mueve M. Esto resulta Jégico ya que el contenido de I mitad izquierda de la cinta de Mz se ha colocado en orden inverso «Jo largo dela pista inferior dela cinta de 4. SGX (p.¥.R), entonces: 8i((a.H1X.+) 5i((G,U]. 1X4) UL [¥e»].R) Eta regla cubre uno de los casos de emo se emplea el marcador final izquierdo *. SiMz se mueve hacia la derecha a partir de su posicién inicial, entonces independientemente de si anteriormente habia estado a la izquierda 0 ala derecha de dicha posicién (como reflej ef hecho de que la segunda componente del estado de My puede ser L 0 U), M; tiene que moverse hacia la derecha y apuntar ala pista superior. Es decir, Mj continuaré estando en la posicién representada por X; en la Figura 8.19, 5. SiG.) (p.¥,L), entonces: 8i((gL). 1X.) 8i((g.U),X.#]) (pL) [<].R) Esta regia es similar a la anterior, pero cubre el caso en que M; se mueve hacia Ia izquierda de su posicién inicial. My tiene que moverse hacia la derecha de su marcador final, pero ahora apuntando ‘la pista inferior; es decir, la casillaindicada mediante X_ en la Figura 8.19. 296. Intoduccién ala teoria de autématas,lenguajes y computacin F; Los estaios de aceptacién de F son aquellos estados de Fx {U,L}, es decir, todos los estados de M, cuya primera componente es un estado de aceptacién de Ms. En el momento de la aceptaci6n, Mi puede estar apuntando a la pista superior o a la inferior. ‘Ahora, Ia demostracisn del teorema esti completa. Podemos observar por induceién sobre el niimero de ‘movimientos realizados por M; que M; reproduciré las configuraciones de M sobre su propia cinta. Para ello, basta con tomar la pista inferior, invertila y concatenarla con la pista superior. Observemos también que Mi pasa a uno de sus estados de aceptacién exactamente cuando lo hace Mz. Por tanto, L(M\) = L(M2).. a 8.5.2 Méquinas con varias pilas Ahora vamos a ocupamos de varios modelos de computaci6a que estén basados en generalizaciones de! autémata, «pila, En primer lugar, consideremos lo que ocurre cuando se le proporcionan al autémata a pila varias pilas. Del Ejemplo 8.7, ya sabemos que una méquina de Turing puede aceptar lenguajes que no son aceptados por algunos autGinatae Ue una sola pila, Results que si propurcionanusal auiGinatadus piles, eutuuees puede aecpta cualquier lenguaje que pueda aceptar una MT. AA continuacién vamos a considerar una clase de méquinas conocidas como “méquinas contadoras”. Estas ‘mquinas slo tienen la capacidad de almacenar un nlimero fnito de enteros (“contadores”),y realizan diferentes movimientos dependiendo de si alguno de los contandores actualmente tiene el valor 0. La maquina contadora slo puede rumar 0 rortar uno al contador y no pusde dirtinguir entre dor valorse distintor de cero, En ‘un contador €s como una pila en la que podemos colocar slo dos simbolos: un marcador del fondo de pila que sélo aparece en la parte inferior y otro simbolo que puede introducirse o extraerse de la pila [No vamos a evar a cabo un tratamiento formal de la maquina de varias pilas, aunque la idea se sugiere en Ia Figura 820. Una maquina de k pilas es un autSmata a pila determinista con k pilas, Obtiene su entrada, al igual que lo hace un aut6mata a pila, de una fuente de entrada, en lugar de tenerla colocada sobre una cinta o en tuna pila, como es el caso de una MT. La méquina multipila dispone de una unidad de control. que se encuentra ‘en uno de los estados de su conjunto finito de estados. Tiene un alfabeto de pila finito, que utiliza para todas sus pilas. Un movimiento de Ia maquina de varias pilas esté basado en: 1. Elestado de la unidad de contro. 2, El simbolo de entrada leido, el cual se elige del afabeto de entrada finito, Alternativamente, la miquina de varias pilas puede realizar un movimiento utilizando la entrada €, pero para ser una méquina determinista, 1o se puede permitir que en alguna situacién pueda realizar un movimiento con la entrada € y a la vez coon una entrada distinta de €. Unidad | de Entrada —>} > Aceptaritechazar control Figura 8.20. Una méquina con tres pilas. Capitulo 8 lnvoducién alas maquinas de Turing 257 3. El simbolo superior de la pila en cada una de sus pilas. En un movimiento, una méquina de varias pilas puede: a) Cambiar a un nuevo estado. 'b) Reemplazar el sfmbolo superior de cada pila por una cadena de ceros o mas simbolos de pila. Puede existir (y normalmente existe) una cadena de sustituei6n diferente para cada pila Por tantn, sna regia de transi Hpicn para wna mAqiina de plas cert cimilar a 8(q.0, Xi Nanos oe) = (aM Yooh) 12, La interpretaciOn de esta regla es que en el estado q, estando X; en la cima de la pila i, para la ‘maquina puede consumir a (que es un simbolo de entrada 0 é) de su entrada, pasar al estado p y reemplazar sfaiboto X; de 1a cima de la pila f por la cadena 7, pate = 1,2,.0.5K La undiguina de vases piles avepta al alcanzar un estado final Afladamos ahora una eapacidad a esta maquina determinista que simplifigue el procesamiento de entrada: supongamos que existe un simbolo especial S, denominado marcador de final, que s6lo aparece al final de la entrada y que no forma parte de la misma, La presencia de este mareador de final nos permite saber cusindo hemos consumido toda la entrada disponible. Veremos en el siguiente teorema cémo el marcador de final facilita ala mquina de varias pilas simular una méquina de Turing. Observe que la MT convencional no necesita ningtin ‘marcador de final especial, ya que el primer espacio en blanco sirve para indicar el final de la entrada ‘TEOREMA 813 —__ ‘Si un Ienguaje L es aceptado por una maquina de Turing, entonces L es aceptado por una maquina de dos pilas. DEMOSTRACION. La idea principal es que dos pilas pueden simular cinta de una miquina de Turing, almace- nando en una pila lo que est la izquierda de la cabeza y en la otra pia lo que se encuentra a Ia derecha de la cabeza, excepto para el caso de cadenas de espacios en blanco infinitas situadas més ala izquierda y ms ala derecha de loa caractores no blancor. Mi detalladamente, sa Zl lenguaje (M) para una MT (de una cinta) ‘M. La maquina de dos plas Shard o siguiente: inicial 1. $ comienza con un marcador de fondo de pila en cada pila. Este marcador puede ser el simbol de las plas y no tiene que aparecer en ninguna otra posicién de las mismas. De aquf en adelante, diremos ‘que una “pila esté vacfa” cuando s6lo contenga el marcador de fondo de vila. 2, Supongamos que w$ es Ia entrada de 5. $ copia w en su primera pi ‘marcador de final en la entrada, deja de copiar cuando lee el 3. S.extrae cada simbolo por turno de Ia primera pila y lo introduce en la segunda. Act, la primera pila estard vvacfa y la segunda almacenard w, estando el extremo izquierdo de w en Ia cima, 4. S pasa al estado inicial (simulado) de M. Tiene una primera pla vacia, lo que representa el hecho de que -M no contiene nada mas que espacios en blanco a la izquierda de la caslla sefalada por la cabeza de la cinta, tiene una segunda pila que almacena w, lo que representa el hecho de que w aparece en la casilla seftalada por la cabeza de la cinta de M y las easillas situadas a su derecha. 5, S simula un movimiento de M como sigue. 4) Sconoce el estado de M, supongamos que es g, porque S simula el estado de M en su propia unidad de contro, 298 Introduecin ala terla de autémats,lenguajes y computacion +b) S sabe cual es el simbolo X seflalado por Ia eabeza de la cinta de M; es el s{mbolo colocado en la ccima de la segunda de pila de S. Excepcionalmente, si la segunda pila s6lo contiene e1 marcador de fondo de pila, quiere decir que M acaba de llegar a un espacio en blanco; S interpreta el simbolo sefilado por M como el espacio en blanco. 6) Por tanto, S conoce el siguiente movimiento de M. 4) El siguiente estado de M se registra en un componente de la unidad de control de S, en el lugar del estado anterior. ©) Si M reemplaza X por ¥ y se mueve hacia la derecha, entonees § introduce ¥ en su primera pila, repreiontando wat et hecho de quc uhora ¥ ecté a la izquicrda de la cabeza de Mf. X ae extrac de la segunda pila de S. Sin embargo, existen dos excepciones: D Sila segunda pila s6to tiene un marcador de fondo de pila (y, por tanto, X es el espacio en blanco). entonces la segunda pila no se modifica, ya que quiere decir que M se ha movido un ‘espacio en blanco mas hacia la derecha, 2) SLY es um espacio en blanco y la primera pila estd vaca, emoncey dicha pila permanece vaca La razén de ello es que slo quedan blancos ala izquierda de la cabeza de Mf. A) SiM reemplaza a X por ¥ y se mueve hacia la izquierda, $ extrac el simbolo situado en la cima de la primera pila, por ejemplo, Z, y a continuacién reemplaza X por ZY en la segunda pila, Este cambio reflea el hecho de que lo que se encontraba en una posicién inmediatamente ala izquierda de ta cabera de fa cinta ahora es 10 que Senta 1a cabeza, EXcepctonaimente, st Z es el marcador de fondo de pila, entonces M debe introducir BY en la segunda pila y no extraer ningtinsimbolo de la primera 6. S avepia si el nuevo estado de M es un estado de aceptacién. En cualquier otro caso, $ simula otro ‘movimiento de M de la misma forma. o 8.5.3 Maquinas contadoras ‘Una maquina contadora puede verse de dos maneras: 1. La méquina contadora tiene la misma estructura que la méquina de varias pilas (Figura 8.20), pero cada pila ahora es un contador. Los contadores almacenan cualquier entero no negativo, pero sélo podemos | distinguir entre contadores que estin a cero y contadores que no estin a cero. Es decir, el movimiento de Ja maquina contadora depende de su estado, el simbolo de entrada y de los contadores (si existen) que estén a cero. En un movimiento, la mquina contadora puede’ 4a) Cambiar de estado. +b) Sumar o restar 1 de cualquiera de sus contadores de manera independiente. Sin embargo, no est permitido que un contador tome un valor negativo, por lo que no puede restar I de un contador que esté a0. ‘Una méquina contadora también puede verse como una maquina de varias pilas restringida, Las restie~ ciones son las siguientes: 4) S6lo existen dos simbolos de pila, a los que haremos referencia como Zp (el marcador de fondo de pila) y X. +) Tnicialmente, Zp estéen cada pila, ©) Solo podemos reemplazar Zp por una cadena de la forma X'Zp, para i> 0. > | ae 4) Sélo podemos reemplazar X por X' para i> 0. Es decir, Zp sélo aparece en el fondo de cada una de las pilas y los restantes sfmbolos de pila, si existen, son X. Utilizaremos la definici6n (1) para las maquinas contadoras, pero ambas definiciones dan lugar elaramente a ‘miiquinas de potencia equivalente. La razén de ello es que la pila X'Z puede identificarse con el contador i. En Ja definicién (2), podemos diferenciar un contador que esté a 0 de otros contadores, ya que el contador que esti ‘cero, tend Zp en la cima de la pla, y en cualquier otro caso, estarfa el simbolo X. Sin embargo, no podemos, distinguir dos contadores positivos, ya que ambos tendrén X en la cima de la pla. 8.5.4 La potencia de las méquinas contadoras Hay varias observaciones acerca de los lenguajes aceptados por las méquinas contadoras que aungue resultan cevidentes merece la pena mencionar: * Todo lenguaje aceptado por una méquina contadora es recursivamente enumerable. La razén de ello es {que una maquina contadora es un caso especial de una maquina de pila y una maquina de pila es un caso especial de una maquina ce Turing de varia cintas, que acepla s6lo lenguajes recursivamente enumerables | eacerlocone rena 89 | ‘Texto lenguaje aceptado por una méquina con un contadores un LIC, Fijese en que un contador, de acuerdo ‘es una pil, por lo ue una midquina de un comador es un casveypectal Ue una maquina de una pila; es decir, un aut6mata a pila, De hecho, los lenguajes de las mquinas de un contador son aceptados por los autématas a pile determinisias, aunque Ia demostracién de esto es sorprendentemente ccompleja. La dificultad de la demostracién resulta del hecho de que las maquinas contadoras y de varias cintas tienen un marcador de final $ al final de su entrada, Una autémata a pila no determinista puede suponer que ha visto el iltimo sfmbolo de entrada al ver el marcador $: por tanto, es evidente que un ‘autémata a pila no determinista sin el mareador de final puede simular un APD con marcador de final ‘Sin embargo, la demostracién complicada que no vamos a abordar, es la que consiste en demostrar que ‘un APD sin marcador de final puede simular un APD que sf lo tenga. con la definicion ¢ EL resultado sorprendente acerca de las miquinas contadoras es que dos contadores son suficientes para simular ‘una méquina de Turing y, por tanto, para aceptar todos los lenguajes recursivamente enumerables. Ahora nos ‘vamos entrar en este resultado y vamos demostrar, primero, que tres contadores son suficientes para conseguir lo anterior y luego simularemos los tres contadores mediante dos contadores. ‘TEOREMA 8.14 ‘Todo lenguaje recursivamente enumerable es aceptado por una maquina de tes contadores. DEMOSTRACION. Partimos del Teorema 8.13, que establece que todo lenguaje recursivamente enumerable es ‘aceptado por una maquina de dos pilas. Necesitamos entonces ver e6mo simular una pila mediante contadores. Supongamos que la méquina de pla utiliza r —1 simbolos de cinta. Podemos identticar los sfmbotos con los digitos de 1 hasta r— 1, ¢ intexpretar el contenido de Ia pila XjXz2---Xy como enteros en base r. Es decir, esta pila (cuya cima se encuentra en el extremo izquierdo, como es habitual) se representa mediante el entero Ky Ny PP foot Nor ‘Utilizamos dos contadores para almacenar los enteros que representan a cada una de las dos pilas. El tereer contador se utiliza para ajustar los otros dos contadores. En particular, necesitamos el tercer contador cuando bien dividimos © multiplicamos por 7. Las operaciones sobre una pila pueden chasficarse en tes categorfas: extraceitn del silo de la cima de 1a pila, cambio del simbolo de la cima e introduccién de un simbolo en la pila. Un movimiento de la méquina 300 Inireduccién ala toria de autématas, enguales y computacién de dos pilas puede implicar varias de estas operaciones; en concreto, reemplazar el simbolo de Ta cima de la pila X por una cadena de s{mbolos precisa reemplazar X y luego introducir simbolos adicionales en la pila. Estas operaciones sobre una pila representada por un contador i se realizan de la forma siguiente, Observe que es posible utilizar a unidad de control de la maquina de varias pilas para realizar cada una de las operaciones. necesarias para contar hasta r 0 un valor menor. 1. Para extraer un sfmbolo de la pila tenemos que reemplazar i por i/r, despreeiando el resto, que es X ‘Teniendo inicialmente el tercer contador el valor 0, decrementamos repetidamente el contador fen r e inerementamosel tercer contador en 1. Cuando el contador que originalmente almacena i aleanza el valor 0, nos detenemos. A continuaciGn, aumentamos repetidamente el contador original en 1 y disminuimos el tercer contador en 1, hasta que este titimo alcanza de nuevo el valor 0. En esta situacién, el contador que hemos empleado para almacenar i almacena i/ 2. Para cambiar X por ¥ en la cima de una pila que esté representada por el contador i, incrementamos 0 decrementamos en una cantidad pequea, que seguro no ser mayor que r. SiY > X, siendo digitos, ise inorementa on ¥ —X; si ¥ X, entoncas ire dacremanta on ¥ —V. 3. Para introducir X en una pila que inicialmente almacena i, tenemos que reemplazar i por ir-+X. En primer lugar mulkiplicamos por r. Para ello, decrementamos repetidamente el contador jen una unidad e incrementamos el tercer contador (que, como siempre, inicialmente tiene el valor 0) en r. Cuando el contador original alcanzael valor 0, tendremos ir en el tercer contador. Se copia entoncesel tercer contador en al contador original y de nuevo el tercer contador se pone a 0, como se ha hecho en el punto (1). Por ‘timo, el contador original se incrementa en X ara completar la construccin, tenemos que inicializar los contadores con el fin de simular las pilas en sus condiciones iniciales: almacenando s6lo el simbolo inicial de 1a miquina de dos pilas. Este paso se leva a cabo incrementando los dos contadores en un entero pequefio, comprendido entre I y r—1, que serd el que se corresponde con el simbolo inicial. Oo TEOREMA 8.15 ‘Todo lenguaje recursivamente enumerable es aceptado por una méquina de dos contadores, DEMOSTRACION. Teniendo en cuenta el teorema anterior, s6lo tenemos que demostrar cémo simular tres contadores mediante dos contadores. La idea consiste en representar los tres contadores, por ejemplo, i, j y k, mediante un tnico entero. El entero que seleccionamos es m = 2'3/S*. Un contador almacenari es- ‘te nidmero, mientras que el otro se utiliza para multiplicar 0 dividir m por uno de los tres primeros nt meros primos: 2, 3 y 5. Para simular la maquina de tres contadores, tenemos que realizar las siguientes ‘operaciones: 1. Se incrementa i, j y/o &. Para incrementar i en 1, multiplicamos m por 2. Ya hemos visto en la demos- tracién del Teorema 8.14 c6mo multiplicar un contador por cualquier constante r utilizando un segundo ‘contador: Del mismo modo, incrementamos j multiplicando m por 3, incrementamos k multiplicando m por, 2. Seestablece quécontador de entre, jy kesté.a0, sialguno de ellos loestd. Paraestablecersi=0, tenemos ‘que determinar sim es divisible por 3. Se copia men el segundo contador, ilizando el estado de la maquina ‘contadora para recordar si hemos decrementado m un nimero par o impar de veces. Si hemos decrementado ‘mun ntimero impar de veces cuando ha legado 0, entonces = 0. A continuacion, restauramos mi copiando cl segundo contador en el primero. De forma similar, probamos si j = 0 determinando si m es divisible por 3 y si k=O determinando si m es divisible por 5. | Capitulo 8 Introduccién alas maquinas de Turing $01 Seleccién de constantes en a simulacién de tres contadores mediante dos contadores ‘Opserve la importancia en 1a demostracion del Teorema 8.13 de que los mumeros 2, 3 y 5 sean primos distintos. Si por ejemplo hemos elegido m = 2°3/4*, entonces m= 12 podria representar i= 0, j= 1 y k=1,04=2, j= Ly k=0. Por tanto, no podrfamos establecer qué contador, io k, estd a 0, por lo que ‘no podrfamos simular la méquina de (res contadores de manera fable, 3. Se decrementa i,j y/o k, Para ello, dividimos m entre 2,3 0 5, respeetivamente, La demeostacién de ‘Teorema 8.14 nos dice cémo realizar dicha divisién ene cualquier constante uizando un contador | adicional. Dado que una méquina de tes contadores no puede deeremectar un contador hasta un valor | menor que 0, si m no es divisible equitaivamente por la constate por la que estamos dividiendo, se produciraun erory a méquina de dos contadores que estamos simulando se detendré sin aceptat. |S 8.5.5 Ejercicios de la Secci6n 8.5 Ejercicio 85.1. De manera informal pero clara describa méquinas contadoras que acepten los siguientes lenguajes. En cada caso, utili la menor cantidad posible de contadores, y nunca mas de dos. a) {0M |n>m> 1} b {O"" | 1 (XysSn), donde cada 5; ¢s el conjunto de estados q para el que P aceptaré, partiendo de la configuraci6n (q.@,XiXis1---X) 8.6 Maquinas de Turing y computadoras Ahora vamos a comparar la méquina de Turing con las computadoras que habitualmente utilizamos, Aunque estos modelos parecen bastante diferentes, pueden aceptar exactamente los mismos lenguajes: los lenguajes recursivamente enumerables. Dado que no hemos definido matemsticamente el concepto de “computadora ‘comin’, los argumentos aplicados cn esta seecidn son ncecsariamente informales, Tenemos que recurcir a la intuicién en lo que se refiere a lo que las computadoras pueden hacer, especialmente cuando los niémeros cempleados exceden los limites normales que permite la arquitectura de estas maquinas (por ejemplo, espacios de direccionamiento de 32 bits). Los razonamientos aplicados en esta seccin estin basados en que: ‘302 Introduccion a la teora de autématas lenguaes y computacién 1. Una computadora puede simular una maquina de Turing, 2, Una méquina de Turing puede simular una computadora y puede hacerlo en un periodo de tiempo que es, cémo maximo, polinémico en lo que respecta al nimero de pasos utilizados por la computadora 8.6.1 Simulacién de una maquina de Turing mediante una computadora Examinemos en primer lugar e6mo una computadora puede simular una méquina de Turing. Dada una MT conereta M, debemos escribir un programa que actiée como M. Un aspecto de M es su unidad de control. Dado ue slo existen un numero finito de estados ¥ un niimero finito de reglas de transicién, nuestro programa puede codificar los estados como cadenas de caracteres y wilizaruna tabla de transiciones, que consultaré para determinar cada movimiento. Del mismo modo, los sfmbolos de cinta pueden codificarse como eadenas de caracteres de longitud fia, ya que el niimero de estos simbolos es finito. Al estdiar e6mo simulardel programa a cinta de la méquina de Turing surge una cuestiGn importante. Esta cinta puede crecer en longitud ininitamente, pero la memoria de una computadora (memoria principal, discos ¥ ottos dispositivos de almacenamiento) es fini, ;Podemos simular una cinta infinita con una cantidad fija de Si no existe la posibilidad de reeemplazar los dispositivos de almaccnamiento, entonces reslmente no ;podremos; la computadoraentonces se comportaria como un autémata fini y los tnicos lenguajes que aceptaria serfan los regulares. Sin embargo, las computadoras comunes disponen de dispositivos de almacenamiento intercambiables, por ejemplo, discos “Zip”. De hecho, el tipico disco duro es un dispositivo extraible y puede reemplazarse por otro disco idéntico pero vacio. Dado que no existe un limite evidente en lo que se refiere a cudntos discos podriamos utilizar, suponemos {que podemos disponer de tantos discos como necesite la computadora. Podemos por tanto disponer que los discos se coloquen en dos pilas, como se muestra en la Figura 8.21. Una pila almacena los datos de las casillas de Ta cinta de la maquina de Turing que estén situadas a la izquierda de la cabeza de la cinta y la otra pila atiaveus toy datos almavenados a la detect de ta Cabera de Ye cima, Cuan ids profunk se encuentre un simbolo en una pla, ms alejado de la cabeza de la cinta se encontraréel dato. Si la cabeza de la cinta de la MT se alejara hacia la izquicrda lo suficiente como para llegar a casillas que no estén representadas en el disco actualmente montado en la computadora, entonces se imprimiré el mensaje a OOU00M Cinta ala Cinta ala izquierda de derecha de la cabeza la cabeza Figura 8.21. Simulacién de una méquina de Turing mediante una computadora connin, re FH Capitulo 8 Introduccion a las maquinas de Turing 303, EI problema de los alfabetos de cinta muy grandes El argumento de la Seccién 8.6.1 comienza a ser cuestionable si el niimero de simbolos de cinta es tan grande que el eédige para uno de estos simbolos excede el espacio de almaccnamiento de disco, Realmente, tendria que haber muchos simbolos de cinta, ya que un disco de 30 gigabytes, por ejemplo, puede representar cualquier simbolo de un alfabeto de 2*#0°%%% simbolos, Del mismo modo, el ni- ‘mero de estados podria ser tan grande que no sea posible representar el estado utilizando el disco completo. Una sola n es limitarel simero de simbolos de cinta que puede milizar la MT. Siempre paclemos codificar en binario un alfabeto de cinta arbitrario. Por tanto, cualquier méquina de Turing M puede ser simulada por otra méquina de Turing "que s6lo utilice los simbolos de cinta 0,1 y B. Sin embargo, M necesita muchos estados, ya que para simular un movimiento de M, la maquina M’ tiene que explorar su cinta y recordar todos los bits que le indican qué sfmbolo esta explorando la miquina M. De esta forma, los conjuntos de estados sern muy grandes y el PC que simula ala maquina de Turing M" puede {ener gue montar y desmontar varios discos en el momento de decidir cudl es el estado de M’ y cus deberia ser el siguiente movimiento de la misma. Dado que no es de esperar que las computadoras, realicen areas de este tipo, Ios sistemas operativos tipicos no dan soporte a programas de esta clase. Sin ‘embargo, silo desedramos, podriamos programar la computadora en brutoy proporeionarie esta capacidad. Afortunadamente, la simulaci6n de una MT con un niimero muy grande de estados 0 sfmbolos de cinta puede ser més sutil. En la Seccién 9.2.3 veremos que es posible diseiar una MT que sea realmente “programable”. Esta MT, conocida como “universal”, puede leer en su cinta la funcién de transicién dde cualquier MT codificada en binario y simular dicha MT. La MT universal tiene un nimero bastante razonable de estados y simbolos de cinta. Simulando la MT universal, se puede programar una computadora ccomiin para aceptar cualquier languaje recursivaments enumerable que deseemor, rin toner que recurri 3 simular una cantidad de estados que alcance los limites de almacenamiento de un disco. “cambiar izquierda”. En este caso, un operador cambiarfa el disco que esté montado por otro y lo colocaria encima de la pila de la derecha. EI disco situado en la parte superior de la pula de la vaquierda se monta en la computadora y se reanuda el proceso. ‘De manera similar, sila cabeza de la cinta de la MT aleanza casillas suficientemente alejadas por la derecha {que no estin representadas porel diseo montado actualmente, entonces se imprime el mensaje “cambiar derecha’ El operador retirard entonces el disco actualmente montado en la parte superior de Ia pila izquierda y montard el aisco en ta parte superior de Ia pia derecta de la computadora. St cualqutera de las plas esta vacta cuando a computadora solicita que se monte un disco de dicha pila, quiere decir que la MT ha entradao en una zona, de todo blancos de la cinta. En este caso, el operador deberd acudir al almacén y adquirir un disco vacfo para instalarlo. 8.6.2 Simulacién de una computadora mediante un maquina de Turing ‘También tenemos que considerar la comparacién contatia: hay cosas que una computadora comiin puede hacer due una maquina de Turing no puede, Una cuestién subordinada importante es si la computadora puede hacer determinadas operaciones més répidamente que una maquina de Turing. En esta secciGn, afirmamos que una MT puede simular una computadora y en la Seccién 8.6.3 veremos que la simulacidn puede realizarse de forma lo suticientemente ripida como para que los tiempos de ejecucidn de la computadora y de la MT “3610” difieran polinémicamente para un problema dado, Debemos recordar de nuevo que existen importantes razones para pensar que las diferencias de orden polinémica en los tiempos deejecucién indican que los tiempos son similares, 204 Intoduccién a la teora de autdmatas lengua y computacién mientras que las diferencias exponenciales son “excesivas”. En el Capitulo 10 se aborda la teor‘a que compara los tiempos de ejecucién polinsmicos y exponenciales. Para comenzar nuestro estudio acerca de cémo una MT simula una computadora, partimos de un modelo realista aunque informal del funcionamiento de una computadorstipica a) En primer lugar, suponemos que el almacenamiento de una computadora consta de una secuencia infini- tamente larga de palabras, cada una con una divecci6n asociada. En una computadora rea, las palabras pueden tener 32 0 64 bits de longitud, aunque no vamos a imponer un limite ala longitud de una palabra dada. Supondremos que las direcciones estin dadas por los enteros 0,1, 2, etc. En una computadora real, {os bytes individuales se numeran con enteros consecutivos, por lo que las palabras tienen direociones ‘que son miltiplos de 4 u 8, aunque esta diferencia no es importante. Ademds, en una computadora real, cexistirfa un Limite sobre el ndmero de palabras en “memoria”, pero dado que deseamos considerar el contenido de un niimero arbitrario de discos o de otros dispositivos de almacenamiento, supondremos que no existe ningdin mite al nimero de palabras ® Suponemos que el programa de le eomputadora se almacena en algunas de les palabras de memoria. Cada una de estas palabras representan una instruccién, como en el Lenguaje méquina o ensamblador de una ‘computadora ipica. Algunos ejemplos son instrucciones que mueven datos de una palabra a otra 0 que aden una palabra a otra, Suponemos que el “direccionamniento indirecto” esti permitido, por lo que una instruccién puede hacer referencia a otra palabra y utilizar el contenido de la misma como la direccién de la palabra. la que se aplica la operacién. Esta capacidad, disponible en todas las computadoras actuales, cs necesaria para levar a cabo accesos a matrices, seguir vinculos de una lista o, en general, realizar ‘operaciones con punteros. ‘Suponemos que cada instruccién implica un niimero limitado (fnito) de palabras y que cada instruccién modifica el valor de como maximo una palabra 9) Una computadora tpica dispone de regsirs, que son palabras de memoria alas que se puede acceder especialmente répido. A menudo, las operaciones como la suma estén restringidas a levars acabo en los reistros. No aplicaremos ninguna de estas restrceiones, sino que vamos apermitir que serealie cualquier ‘peracid sobre cualquier palabra, No tendremos en cuenta la velocidad rlativa de las operaciones sobre diferentes palabras, ni seri nocesaria si s6lo estamos comparando ls capacidades de reconocimiento de lenguajes de las computadorasy las miquinas de Turing. Aunque nos interes los tiempos de ejecucién polinémicos, la velocidades relativas del acceso a distintas palabras no es important, ya que dichas dlifereneias son “solo” un factor constant. La Figura 8,22 muestra cémo disefar la méquina de Turing para simular una computadora. Esta MT utiliza varias cintas, pero podrfa convertirse en una MT de una nica cinta utilizando la construeciGn de la Seceién 8.4.1. La primera cinta representa la memoria completa de la computadora. Hemos empleado un cédigo en el ‘que las direceiones de las palabras de memoria, en orden numérico, alternan con el contenido de dichas palabras cde memoria, Tanto las direcciones como los contenidos estan escritos en binario. Los marcadotes * y # se utilizan para poder localizar mas fécilmente c! final de las direcciones y los contenidos, y para especificar si uuna cadena binaria es una direccién o un contenido. Otro marcador, , indica el principio de la secuencia de direcciones y contenidios. La segunda cinta es el “contador de instrucciones”. Esta cinta almacena un entero en binario, que representa una de Tas posiciones de memoria sobre la cinta 1. El valor almacenado en esta posicidn se interpreta como la siguiente instruccién de la computadora que hay que ejecutar. Latercera cinta almacena una “direceién de memoria’ oel contenido de dicha direccién después de que ésta hhaya sido localizada en la cinta 1. Paraejecutar una instruccidn, la MT tiene encontrar el contenido de unao més direcciones de memoria que almacenan ios datos implicadosen el célculo, Primero se copia a direceidn deseada Se Capitulo 8 Introduccion a las maquinas do Turing 305 Unidad de control ‘Memoria Contador de instrucciones __10011 Direceién Seti de memoria _ 101110 4 / Archivo de entrada dela computadora x Auxiliar Figura 8.22. Miquina de Turing que simula una computadora tipica, cen la cinta 3 y se compara com las direcciones de la cinta 1, hasta encontrarla. El contenido de esta direccién se copiaen la tervera cinta y se mueve al lugar donde sea necesario, normalmente a una de las direcciones més bbajas, que representan los registros de la computadora. La méquina de Turing simularé el ciclo de instruccién de la computadora como sigue: 1, Busca en la primera cinta la direccién que se corresponde con el nimero de instuccién de la cinta 2. Partimos del simbolo $ de la primera cinta y nos movemos hacia la derecha comparando cada direcciGn con los contenidos de la cinta 2. Realizar la comparacién de las direcciones de las dos cintas es sencillo, | ya que slo hay que mover la cabezas de las mismas hacia la derecha, en tandem, comprobando que los ‘fms leas siempre coineiden 2, Cuando se encuentra la direccién de la instruccién, se examina su valor. Suponemos que cuando una palabra es una instrucciGn, sus primeros bits representan la accién que hay que llevar a cabo (por ejemplo, copiar, sumar, bifurcar) y los restantes bits corresponden a una direccién o a las direcciones implicadas en la acci6n. 3, Silainstruccién requiere el valor de alguna direccién, entonces dicha direccin ser parte de la instruccién, Se copia dicha direccién en la tercera cinta y se marca la posici6n dela instruccién utilizando una segunda pista de la primera cinta (no se muestra en la Figura 8.22), con el fin de poder volver a la instruccién si fuera necesario, A continuacién, se copia la direccién de memoria en la primera cinta y se copia su valor en la tercera cinta, Ia cinta que almacena Is direceién de memoria. 4, Se ejecuta la instruccién, o la parte de la instruccién que implica aeste valor. Aunque no podemos entrar ‘en todas las posibles instrucciones de méquina, proporcionamos a continuacién una muestra del tipo de cosas que podemos hacer con el nuevo valor: 906 lnroducién ala teoria de autématas, enguales y computacién 4@) Copiarlo en alguna otradireccién. Obtenemos la segunda direccién de la instruccién, ls localizamos, introduciéndola en la tercera cinta y buscamos la direccién en la cinta 1, como se ha explicado anteriormente. Una vez que se encuentra la segunda direccién, se copia el valor en el espacio reservado para el valor de dicha direccién. Si se necesita mas espacio para el nuevo valor o éste uuiliza menos espacio que el antiguo, se modifica et espacio disponible mediante la operacion de desplacaniento.Es decit, 1) Se copia en la cinta auxiliar la parte ocupada de la cinta completa situads a la derecha del lugar ‘que ocupa el nuevo valor. 2) Se escribe el nuevo valor uilizando la cantidad de espacio adecuacla para el mismo. 3) Se copia de nuevo la cinta auxiliar en la cinta 1, inmediatamente a la cerecha del nuevo valor, Como caso especial, la direccién puede no aparecer todavia en la primera cinta, porque la compu- tadora no la haya utilizado anteriormente. En este caso, se busca la posici6n en la primera cinta en Ja que deberfa esta, se hace la operacién de desplazamiento para dejar el espacio necesario y se almacenan all tanto la direceién como el nuevo valor. ) Sesumael valorque se acaba de encontrar al valor de alguna otra direccién, Se vuelve ala instruccién para localizar la otra direccién, que estaré en la cinta 1. Se realiza la suma binaria del valor de dicha direccién y el valor almacenado en Ia cinta 3, Explorando los dos valores de sus extremos derechos, una MT puede realizar muy ficilmente una suma con propagacién de acarreo. Si el resultado necesitara ms espacio, bastarfa con utilizar la téenica de desplazamiento para crear més espacio en la cinta | «) La instrucein puede ser un “salto”; es decir, una directiva que establece que la siguiente instruccién que se tiene que ejecutar es aquella cuya direcci6n es el valor almacenado ahora en la cinta 3. En este caso, basta con copiar la cinta 3 en la cinta 2 e injeiar de nuevo el ciclo de instruccién ‘5. Después de ejecutar la instruceién y determiniar que la instruccién no es un salto, se suma I al contador de instrucciones de la cinta 2 y de nuevo se inicia el ciclo de instruceién, Hay muchos otros detalles acerea de cOmo la MT simula una computadora tipica. En la Figura 822 se ha ineluido una cuarta cinta que almacena la entrada simulada de la computadora, ya que ésta tiene que Teer su entrada (la palabra cuya pertenencia a un lenguaje se est comprobando) de un archivo. Ea su lugar, la MT. puede leer de su cinta. ‘También se ha incluido una cinta auxiliar. La simulacién de algunas instrucciones de computadora puede utilizar una cinta auxiliar 0 varias para realizar operaciones aritméticas como la multiplicacién, Por timo, suponemos que la computadora proporciona una salida que indica si acepta 0 no la entrada, Para traducir esta acei6n a términos que una maquina de Turing puada ejecutar,suponemr que la computadora dispone de una instruccién de “aceptacién’”, que podrfa corresponderse con una llamada a funcién que hace ta computadora para escribir sen un archivo de salida. Cuando la MT simula la ejecucién de esta instruccién de Ja computadora, entra en uno de sus propios estados de aceptacisn y se detiene ‘Aunque Ia explicacién anterior no es una demostracin completa y formal de que una MT pueda simular tuna computadora tipica, deberfa ser suficiente para convencemos de que una MT es una representacisn valida de lo que puede hacer una computadora, Por tanto, de ahora en adelante, slo utilizaremos la maquina de Turing como la representacién formal de lo que se puede calcular con cualquier tipo de dispositive computacional. 8.6.3 Comparacién de los tiempos de ejecucién de las camputadoras y las maquinas de Turing Ahora vamos abordare tema del empodeeecucin de una méquina de Turing que sila unacomputadora. | ‘Como hemos mencionado anteriormente: i Capitulo 8 Intoduccion@ las méquinas de Turing 907 ‘= El tiempo de ejecucién es importante porque ulilizaremos Ia MT no slo para examinar la cuestién de lo que se puede caleular, sino lo que se puede calcular con Ia efleiencia suficiente como para que resulte préctica una solucién basada en computadora del problema, * Lalinca divisoria ent los problemas rratables (aquellos que se pueden resolver de forma cficiente) y los intratables (aquellos que se pueden resolver, pero nolo suficientemente répido como para que la solucién pueda utilizarse) se encuentra, generalmente, entre lo que se puede calcular en un tiempo polinémico y Jo que requiere un tiempo mayor que un tiempo de ejecucién polinémico, * Por tanto, necesitamos asegurarmos de que si un problema puede resolverse en un tiempo polinémico en ‘una computadoratipica, entonces también una MT puede resolverlo en un tiempo polindmico, y viceversa. ‘Teniendo en cuenta esta equivalencia polinémica, las conclusiones a que se lleguen acerca de lo que una miiquina de Turing puede o no puede hacer con la eficiencia adecuada pueden aplicarse también a una computadora. Recucile que en la Seavign 0.4.3 hemos detciminado que la diferencia cae Tos tempus de ejecucign de tuna MT de una cinta y una MT de varias cintas era polinémica, en conereto, cuadrética. Por tanto, basta con demostrar que cualquier cosa que pueda hacer una computaciora la MT de varias cintas deseritaen la Seccién 8.6.2 puede hacerlo en un periodo de tiempo que es polindmieo respecto del tiempo que tarda Ia computadora Sabremos entonces que esto mismo se cumple en una MT de una sola cinta “Antes do proporcionar la democtraciGn de que la maquina de Turing dacorita anteriormente puede simular ‘n pasos de una computadora en un tiempo O(n), tenemos que abordar la cuestion de la multiplicacién como instraccién de computadora. El problema es que no hemos establecido un limite para el nimero de bits que puede tener una palabra de computador Por ejemplo, sila computadorapartiera de una palabra que almacenara el entero 2 y multiplicara dicha palabra por sf misma n veces consecutivas,entonces la palabra almacenarfa el niimero 2". La represontacién de este mimero requiore 2" +1, por lo que el tiempo que la maquina de Turing, tarda en simular estas instruceiones seria exponencial en funci6n de n, como minimo. ‘Unasolucin serfafjarlaldngitud maxima de palabra, por ejemplo, en 64 bits. Entonces, las multiplicaciones (las demés operaciones) que produjeran una pelabra demasiado larga harian que la computadorase detuviera. y Ja maquina de Turing no tendrfa que continuar con la simulacién. Sin embargo, vamos a adoptar una postura més liberal: I computadora puede utiliza palabras de evalquier longitud, pero una instracen de la comptadoen slo puede generar una palabra cuya longitud sea de un bit més que la longitud de sus argumentos. EJEMPLO 8.16 ‘Teniendo en cuenta la restriccién anterior, la operacién suma puede realizarse, ya que la longitu de su resultado s6lo puede tener un bit mas que la longitud maxima de los sumandos. Sin embargo, la multiplicacién no esta permitida, ya que dos palabras de m bits pueden dar como resultado un producto de longitud 2m. No obstante, podemos simular una multiplicacién de enteros de m bits mediante una secuencia de m sumas, intercaladas con esplazamientos det multiplicando de un bit hacia la izquierda (que es otra operacién que s6lo incrementa la longitud de la palabra en 1), Por tanto, podemos multiplicar palabras arbtrariamente largas, aunque el tiempo (que tarda Te Computadra es propurcivual al euadiady de la Tuugitud Ue Tus ypesaindus, a ‘Suponiendo un crecimiento méximo de un bit porinstruccin de computadoraejecutada, podemos demostrar la relaciGn polinémica existente entre los dos tiempos de ejecucién. La idea en que se basa la demostracién es la de observar que después de que se hayan ejecutado n instrucciones, el niimero de palabras a las que se hhabré hecho referencia en la cinta de memoria de la MT seré O(n) y cada palabra de la computadora reauiere (O(n) casilas de Ta méquina de Turing. Por tanto, la longitud de la cinta serd de O(n") casillas y la MT pod almacenar el niimero finito de palabras que necesita una instrucci6n de computadora en un tiempo O(n) 908. Inroduccién ala tori de autématas, lenguales y computacion ‘Sin embargo, es nevesario que as instrucciones cumplan un requisitoadicional, Incluso aunque lainstruccién zno genere como resultado una palabra larga, podria tardar una gran cantidad de tiempo en calcular dicho resultado, Por tanto, tenemos que hacer la suposicién adicional de que la propia instruccién,aplicada a palabras de hasta longitud f, puede ejecutarse en O({*) pasos en una méquina de Turing de varias cintas. Ciertamente, las operaciones tipicas realizadas por una computadora, como la suma, el desplazamiento y la comparacién de valores, pueden ser realizadas en Q(4) pasos de una MT de varias cintas, por To que estamos siendo muy liberales en cuanto a lo que una computadora hace en una dnica instrucci¢n, TEOREMA 8.17 Siuna computadora’ 1. Tiene sélo instrucciones que incrementan la longitud méxima de palabra en, como maximo, 1, ¥ 2. Tiene s6lo instrucciones que una MT de varias cintas puede ejecutar sobre palabras de longitud ken O() pasos 9 menos, entonces la méquina de Turing descrita en la Seccidn 8.6.2 puede simular los m pasos de la computacora en (O(0F) de sus propios pasos. DEMOSTRACION, Empezamos observando que la primera cinta (memoria) delaMMT de la Figura 8.22 inicialmente s6lo contiene el programa de a computadora, Dicho programa puede ser largo, pero su longitudes fijay constante, independientemente de n, el nimero de pasos de instruccién que ejecuta la computadora, Por tanto, existe una, constante ¢ que es Ia més larga de las palabras y direcciones que uparecen en el programa. Existe también una cconstante d que define el niimero de palabras que ocupa el programa, Asi, después de ejecutar n pasos, la computadora no puede haber creado ninguna palabra cuya longitud sea ‘mayor que c-+n y, por tanto, no puede haber creado ni utilizado ninguna direccién cuya longitud sea mayor que c+n bits. Cada instrucci6n crea como miximo una nueva direccién que contiene un valor, por lo que el nnimero total de direcciones después de haber ejecutado n instrucciones es como maximo d +n. Dado que cada combinaci6n direccién-palsbra requiere a 1o sumo 2(c-+n) +2 bits, incluyendo la direccién, el contenido y Jos dos mareadores que los separan, el niimero total de casillas de cinta de Ia MT ocupadas después de haber simulado 7 instruceiones es, como méximo, 2(d+n}(c-+n +1). Como ¢ y d son constantes, el niimero de casillas 06 O(0?) Ahora sabemos que cada una de las bdsquedas de direeciones, en auimero fijo, implicadas en una instruceién de computadora puede ejecutarse en un tiempo O(n"), Puesto que la longitud de las palabras es O(n). la segundo suposici6n nos dice que una MT puede ejecutar las instrucciones en s{ en un tiempo O(n"). El tinico caste significative que queda ew ka ejecucién de ui instuccin es el tiempo que tarda la MT en crear mas espacio en su cinta para almacenar una palabra nueva o ampliada. Sin embargo, el desplazamiento implica copia, a Jo sumo, O(n?) datos desde la cinta 1 a la cinta auxiliar, y de nuevo a Ja cinta 1, Por tanto, 1a operacién de desplazamiento también requiere un tiempo de O(n") por instruccidn de computadora, Podemos concluir que la MT simula un paso de la computadora en O(n?) de sus propios pasos. Por tanto, como hemos establecido en el enunciado del teorema, n pasos de la computadora pueden simularse en O(n3) pasos de la maquina de Turing, a Una observacién final. Hemos visto que el ndmero de pasos que necesita una MT de varias cintas para simular una computadora es el cubo del niimero de pasos. También hemos visto en la Seccién 8.4.3 que una MT de una cinta puede simular una MT de varias cintas en, como maximo, el cuadrado del nimero de pasos, Por tanto, hee Capitulo 8 Introduccion ales méquinas de Turing 308 TEOREMA 8.18 Una computadora del tipo descrito en el Teorema 8.17 puede ser simulada en m pasos por una méquinade Turing de una dnica cinta, utilizando como méximo O(n®) pasos de la maquina de Turing. a 8.7 Resumen del Capitulo 8 + Maquina de Turing. La méquina de Turing es una méquina de computacién abstracta con la potencia tanto de las computadoras reales como de otras definiciones mateméticas de lo que se puede calcular. La MT consta de una unidad de control y de una cinta infnita dividida en casillas. Cada casillaalmacena uno {de Ios simbolos del conjunto finito de simbolos de cinta y una caslla corresponde a la posicién actual de Ia cabeza de la cinta, La MT realiza movimientos basados en su estado actual y en el simbolo de cinta de Ia casillaa la que apunta la cabeza de la cinta, En un movimiento, cambia el estado, sobreescribe Ia celda seflalada por la cabeza con algan simbolo de cinta y mueve la cabeza una celda hacia la izquierda 0 hacia laderecha, + Aceptacién en una méiquina de Turing. Inicialmente, la MT tiene en la cinta su entrada, una cadena de Tongitud finita de sfmbolos de cinta, y el resto de las casillas contienen un espacio en blanco. Este tltimo «uno de los simbolos de cinta y la entrada se seleeciona de un subconjunto de los sfmbolos de cinta que i no incluye el espacio en blanco. y se conocen como simbolos de entrada. La MT acepta su entrada si llega. | aun estado de aceptacién. | + Lenguajes recursivamente enumerables. Los lenguajes aceptados por la MT son los denominados len guajes recursivamente enumerables (RE). Por tanto, los lenguajes RE son aquellos lenguajes que pueden ser reconocidos © aceptados por cualquier clase de dispositives de computaciéa. + Descripciones instantineas o confiquraciones de una méguina de Turing. Podemos describir la configu- rain actual de una MT mediante una cadena de Tongitud fnita que incluye todas las casillas de cinta situadas desde la posicién més a la izquierda hasta el espacio en blanco més a fa derecha. El estado y la posicién de la cabeza se indican incluyendo el estado dentro de la secuencia de s{mbolos de cinta, justo {la izquierda de la casila sefialada por la cabeza de la cinta. + Almacenamiento en ta unidad de control. En ocasiones, al disefar un MT para un determinado Lenguaje resulta de ayuda imaginar que el estado tiene dos o més componentes. Una componente es la de control yy actiia como lo hace normalmente un estado, Las restantes componentes almacenan los datos que la MT rnocesita recordar. + Pistas milriples. Con frecuencia, también resulta de ayuda pensar en los simbolos de la cinta como en vectores con un niimero fio de componentes. De este modo, podemos ver cada componente como una pista separada de la cinta + Maguinas de Turing de varias cintas. Un modelo de MT extendido tiene una cierta cantidad fija de cintas ‘mayor que uno. Un movimiento de esta MT se basa en al estado y en el vector definido por los simbolos sefialados por la cabeza de cada una de las cintas. En un movimiento, la MT de varias cintas cambia de estado, sabreescribe los sfmbolos contenidos en las casillas sefialadas por cada una de las cabezas de la cintas y mueve alguna o todas las cabezas de la cinta en determinada direccién, Aunque es capaz de reconocer ciertos lenguajes més ripido que la MT de una sola cinta convencional, la MT de varias cintas no puede reconocer ningtn lenguaje que no sea recursivamente enumerable. + Maquinas de Turing no detenministas. La MTN tiene un niimero finito de posibiidades para realizar el siguiente movimiento (estado, nuevo simbolo y movimiento de la cabeza) para cada estado y sfmbolo 310 Introduecin ala toria de autémata, lenguajes y computacion seflalado. Acepta una entrada si cualquier secuencia de elecciones leva a una configuracién que corres- ponde a un estado de aceptaciGn, Aunque aparentemente mds potente que la MT determinista, la MTN no es cupaz de reconover ningiin lenguaje que no sea recursivamente enumerable. + Méquina de Turing con cinta semi-infnita, Podemos restringir una méquina de Turing para que tenga ‘una cinta que slo es infinita por la derecha, sin castlas a la izquierda de Ta posiciin inicial de la eabera, Tal MT puede aceptar cualquier lenguaje RE. ‘4 Méquinas mulitarea, Podemos restringir las cintas de una MT de varias cintas para que se comporten como una pila. La entrada se encuentra en una cinta separada, que se lee una vez de izquierda a derecha, de] mismo modo que en un automata finito o en un autSmata a pila. Una maquina de una pila realmente es ‘un autémata a pila determinista, mientras que una méquina con dos pilas puede aceptar cualquier lenguaje RE, # Méquinas contadoras. Podemos restringir aiin més las pilas de una méquina de varias pilas para que sélo contengan un s{mbolo distinto del marcador de fondo de pila. Asi, cada pila se comporta como un contador, lo que nos permite almacenar un entero no negativo y comprobar si! entero almacenado es un 0, pero nada mis. Basta una méiquina con dos contadores para aceptar cualquier lenguaje RE. + Simulaci6n de wna meéiquina de Turing mediante una computadora real. En principio, es posible, simular ‘una méquina de Turing mediante una computadora real si aceptamos que existe un suministro potencial- mente infnito de un dispositivo de almacenamiento extraible, como por ejemplo, un disco, para simular 12 parte en que no hay espacios en blanco de Ia cinta de Ta MT. Puesto que Tos recursos fisieos con Tos que se eonstruyen Tos discos no son infnits, este argumento es cuestionable. Sin embargo, dado que la Cantidad de dispositivos de almacenamiento que existe en el universo es desconocida y, sin duda, muy grande, la suposicién de que existen recursos infnitos, como en una cinta de una MT, es realista en la préctica y generalmente se avepts + Simulacién de una computadora mediante una maquina de Turing. Una méquina de Turing puede simular 1 almacenamiento y 1a unidad de control de una computadora real empleanclo una cinta para almacenar todas las posiciones y los contenidos correspondiente a los regisiros, la memoria principal, los discos y otros dispositivos de almacenamiento. Por tanto, podemos estar seguros de que algo que una méquina de ‘Turing no pueda hacer, tampoco lo podei hacer una computadora real. 8.8 Referencias del Capitulo 8 ‘La definicion de la maquina de Turing se ha tomado de [8], Préeticamente al mismo tiempo aparecieron varias ropuestas que no empleaban méquinas von el fin de cavacterizat lv que se puede calcula, eulte las que se icluyen Tos trabajos de Church [1], Kleene [5] y Post [7]. El trabajo de Godel [3] precedis a los anteriores y demostraba que no existfa ninguna forma de que tna computadora contestara a rodas las cuestiones metemsticas El estudio de las méquinas de Turing de varias cinta, especialmente el de la comparacién de su tiempo de ejecucién con el de la méquina de una sola cinta fue iniciado por Hartmanis y Steams (4]. El examen de las ‘méquinas de varias plas y contadoras se aribuye a [6], aunque la construccién que hemos proporcionado aqui se debe a [2]. EI método de la Secei6n 8.1 de utilizar “hola, mundo” como sustituto de una maquina de Turing en To que respecta a las cuestiones de aceptaciGn y parada aparecié en notas no publicadas de S. Rudich L. A. Church, “An undecidable problem in elementary number theory”, American J. Math. 58 (1936), igs. 345-363.

Vous aimerez peut-être aussi