Teoría de La Computación: Máquinas de Turing
Teoría de La Computación: Máquinas de Turing
Teoría de La Computación: Máquinas de Turing
• fueron propuestas por Alan M. Turing en un paper de 1936 “On computable numbers, with
an application to the entscheidungproblem”
• A diferencia de los AF y las AP ya estudiados, las MT:
• pueden mover su cabezal hacia adelante y hacia atrás de la cinta con las cadenas de entrada.
• la cinta es infinita por la derecha y contiene celdas en las que se hay un símbolo para ser leído o un
espacio en blanco.
• el cabezal puede leer y escribir símbolos en las celdas de la cinta
• alternativamente, las MT pueden disponer de más de un cabezal y, por ende, de más de una cinta donde
leer y grabar signos.
• si bien disponen de un mecanismo de control con estados, la diferencia es que entre ese conjunto de
estados posibles, el inicial representa el comienzo de los cálculos a desarrollar y hay un estado especial,
denominado estado de parada que, una vez alcanzado todos los cálculos son detenidos. Aquí hay una
clara diferencia con los AF o los AP quienes disponían de estados de aceptación y de rechazo, pero que
permitían la continuación de los cálculos aunque se alcanzara el estado de aceptación, por ejemplo un AP
de pila vacía.
• el estado inicial y el estado de parada no pueden ser el mismo, por lo tanto una MT tiene, -al menos- dos
estados.
Máquinas de Turing: definición y propiedades básicas
• A diferencia de los AF y las AP ya estudiados, las MT:
• reiteramos, las MT pueden leer y escribir símbolos en su medio de entrada, -esto es, la cinta- y recorrer
esta cinta todo lo que sea necesario en ambos sentidos, hacia la izquierda o hacia la derecha.
• en base a la posibilidad de escribir celdas, las MT pueden usar la cinta como medio de almacenamiento
• así, las MT pueden rastrear los datos de la cinta y modificar determinadas celdas sin afectar a las demás
• las MT disponen de un conjunto finito de símbolos de cinta que utilizan para distinguir porciones de la
cinta, así distinguimos entre el conjunto finito de símbolos denominado alfabeto de la máquina y un
conjunto (mayor y finito) denominado símbolos de cinta que la máquina puede leer y escribir
• el espacio en blanco pertenece a este último conjunto; es un símbolo que está en cualquier celda que
no está ocupada por ningún otro símbolo. Si una MT desea borrar el contenido de una determinada
celda, lo que hace es escribir el espacio en blanco
• para que no existan confusiones con el espacio en blanco, adoptaremos el símbolo ∆ a fin de
representar el espacio en blanco
• las acciones específicas de una MT son: lectura, escritura, mover a la derecha y mover a la izquierda,
-siempre de a una celda de la cinta por vez- y cambiar de estado
• la acción a ejecutar dependerá del símbolo (símbolo actual) contenido en la celda leída (celda actual) y
del estado actual del mecanismo de control
Definición de la MT
¿cómo es la función de transición de una MT?
• usamos Γ (gamma mayúscula) para representar el conjunto de símbolos de cinta
• S es el conjunto de estados
• S’ es el conjunto de estados (S’⊂S) que no son el de parada
• la función de transición se representa de la forma siguiente: δ:(S’ x Γ) → S x (Γ⋃{L, R}), en donde los símbolos L y R no
pertenecen a Γ
• la semántica de esta representación funcional es:
a. δ(p, x) = (q, y) significa “si el estado actual es p y el símbolo actual es x, reemplazar la x con el símbolo y pasar al estado q”
b. δ(p, x) = (q, L) significa “si el estado actual es p y el símbolo actual es x, mover el cabezal una celda a la izquierda y pasar al estrado q”
c. δ(p, x) = (q, R) significa “si el estado actual es p y el símbolo actual es x, mover el cabezal una celda a la derecha y pasar al estado q”.
Estas definiciones nos hablan de que ésta es una máquina determinista. En otras palabras: existe una y sólo una
transición asociada a cada par de (estado, símbolo) donde el estado referido no es el de parada.
IMPORTANTE: normalmente, una MT opera ejecutando sus transiciones hasta llegar al estado de parada, pero bajo
ciertas condiciones, es posible que la MT caiga en un ciclo sin fin y no pueda detenerse nunca. Esta situación será
estudiada más adelante.
Además, puede darse una anomalía y es que el cabezal vaya tanto hacia la izquierda que alcance y sobrepase el extremo
izquierdo de la cinta, con lo cual la MT dejará de efectuar sus cálculos y diremos que la máquina tuvo una terminación
anormal.
Representación de una Máquina de Turing
Diagrama de transiciones de una MT
• los estados están conectados mediante las transiciones y etiquetados con un par de símbolos.
El primero representa el símbolo de la cinta que debe existir para permitir la transición y el
segundo símbolo es el que se escribirá en la celda actual (si es que la transición es una
operación de escritura), o alguno de los símbolos L o R (si es una operación de movimiento)
• así, la transición δ(p, x) = (y, q) está representada por un arco de p a q con la etiqueta x/y
• una transición (p, x) = (q, L) se representa como un arco de p a q con la etiqueta x/L.
• En la figura se presenta un diagrama de transiciones completo para una MT que desplaza su
cabezal hasta encontrar un espacio en blanco. Los símbolos de cinta son {a, b, ∆}
Definición formal de una Máquina de Turing
Una MT es una séxtupla de la forma (S, Σ, Γ, δ, ι, h) en donde
• S es la colección de estados finitos que componen la MT
• Σ es un conjunto finito de símbolos distintos del espacio en blanco, llamado alfabeto de la
máquina.
• es un conjunto finito de símbolos, incluidos los de Σ, que denominamos símbolos de la cinta
de la máquina.
• δ es la función de transición de la máquina.
• ι es un elemento de S llamado estado inicial.
• h es un elemento de S llamado estado de parada.
En ocasiones es necesario contar con una notación concisa que represente la configuración de la cinta
de una MT.
En tales casos representaremos la lista del contenido de la cinta subrayando el símbolo en donde está
actualmente el cabezal. Así, ∆xyz∆∆ representa una cinta que tiene un espacio en blanco, seguido por
los símbolos x, y, z y seguidos por dos espacios en blanco, mientras que el cabezal está sobre la celda
que contiene la z.
Orígenes y propósitos de las Máquinas de Turing
• Turing concibió esta máquina en 1936 con varios propósitos en su mente, entre ellos el poder probar la
veracidad de un postulado de Hilbert, respecto de los sistemas axiomáticos como la aritmética. En
realidad Hilbert había postulado que cualquier sistema axiomático debería cumplir con tres
características: consistencia, completidud y decidibilidad.
• Gödel en 1931 probó, a través de sus dos famosos teoremas que si un sistema era consistente, entonces
no podía ser completo y viceversa.
• Turing buscó la manera de dirimir si también el requerimiento de la decidibilidad podía resolverse. Pero,
poder probar que cada enunciado o teorema matemático concebido o concebible estaba acertado o
equivocado era algo imposible de realizar, de modo que pensó en algún procedimiento mecánico (en su
tiempo y en su contexto, esta expresión significaba algo más de lo que significa para nosotros hoy en día)
que permitiera decidir si un enunciado era correcto o equivocado.
• Concibió, entonces la idea de una máquina abstracta que realizara determinadas operaciones de “cálculo
mecánico” a fin de determinar lo acertado o equivocado de una determinada proposición matemática.
El Entscheidungsproblem (el “problema de la decisión"): décima cuestión de Hilbert de 1900
Con respecto a los problemas de Hilbert presentados por el famoso matemático David Hilbert en 1900, un aspecto del problem #10 estuvo
flotando por casi 30 años antes de que pudiera ser precisamente enmarcado.
La expresión original del 10mo problema de Hilbert era así:
10. Determinación de la solubilidad de una ecuación Diofantina.
Dada una ecuación Diofantina con cualquier número de incógnitas y con coeficientes racionales enteros: Idear un proceso de acuerdo al cual
pueda determinarse, -en una cantidad finita de operaciones- si la ecuación es resoluble en números racionales enteros. El
Entscheidungsproblem (o problema de la decisión en lógica de Primer Orden) es solucionable cuando tenemos un procedimiento que permita,
-para cualquier expresión lógica dada- decidir mediante una cantidad finita de operaciones, su validez o satisfacibilidad... El
Entscheidungsproblem debe ser considerado el principal problema de la Lógica Matemática.
— citado, con esta traducción y el original en alemán en el libro de Dershowitz y Gurevich, 2008
Para 1922, la noción del "Entscheidungsproblem" se había desarrollado un poco y H. Behmann establecía que ... La forma más general del
Entscheidungsproblem [es] como sigue a continuación:
Para permitirnos decidir en una cantidad finita de pasos la verdad o falsedad de una afirmación puramente lógica, se necesita una
prescripción muy definida y de aplicación general ...
—Gandy p. 57, citando a Behmann
Behmann remarca que ... El problema general es equivalenteal problema de decidir cuáles proposiciones matemáticas son verdaderas (y
cuáles no).
—íbid.
Si pudiéramos resolver el Entscheidungsproblem entonces podríamos disponer de un "procedimiento para solucionar muchos (sino todos) los
problemas matemáticos".
—íbid., p. 92
By the 1928 international congress of mathematicians, Hilbert "made his questions quite precise. First, was mathematics complete ... Second,
was mathematics consistent ... And thirdly, was mathematics decidable?"
(Hodges p. 91, Hawking p. 1121). The first two questions were answered in 1930 by Kurt Gödel at the very same meeting where Hilbert
delivered his retirement speech (much to the chagrin of Hilbert); the third—the Entscheidungsproblem—had to wait until the mid-1930s.
The Entscheidungsproblem (the "decision problem"): Hilbert's tenth question of 1900
The problem was that an answer first required a precise definition of "definite general applicable
prescription", which Princeton professor Alonzo Church would come to call "effective calculability", and in 1928
no such definition existed. But over the next 6–7 years Emil Post developed his definition of a worker moving from
room to room writing and erasing marks per a list of instructions (Post 1936), as did Church and his two students
Stephen Kleene and J. B. Rosser by use of Church's lambda-calculus and Gödel's recursion theory (1934).
Church's paper (published 15 April 1936) showed that the Entscheidungsproblem was indeed "undecidable" and
beat Turing to the punch by almost a year (Turing's paper submitted 28 May 1936, published January 1937). In the
meantime, Emil Post submitted a brief paper in the fall of 1936, so Turing at least had priority over Post. While
Church refereed Turing's paper, Turing had time to study Church's paper and add an Appendix where he sketched
a proof that Church's lambda-calculus and his machines would compute the same functions.
But what Church had done was something rather different, and in a certain sense weaker. ... the Turing construction
was more direct, and provided an argument from first principles, closing the gap in Church's demonstration.
—Hodges p. 112
And Post had only proposed a definition of calculability and criticized Church's "definition", but had proved nothing.
Alan Turing's a- (automatic-)machine
In the spring of 1935, Turing as a young Master's student at King's College Cambridge, UK, took on the challenge; he had been stimulated by the
lectures of the logician M. H. A. Newman "and learned from them of Gödel's work and the Entscheidungsproblem ... Newman used the word
'mechanical' ... In his obituary of Turing 1955 Newman writes:
To the question 'what is a "mechanical" process?' Turing returned the characteristic answer 'Something that can be done by a machine' and he
embarked on the highly congenial task of analysing the general notion of a computing machine.
—Gandy, p. 74
Gandy states that:
I suppose, but do not know, that Turing, right from the start of his work, had as his goal a proof of the undecidability of the
Entscheidungsproblem. He told me that the 'main idea' of the paper came to him when he was lying in Grantchester meadows in the summer of
1935. The 'main idea' might have either been his analysis of computation or his realization that there was a universal machine, and so a diagonal
argument to prove unsolvability.
—ibid., p. 76
While Gandy believed that Newman's statement above is "misleading", this opinion is not shared by all. Turing had a lifelong interest in
machines: "Alan had dreamt of inventing typewriters as a boy; [his mother] Mrs. Turing had a typewriter; and he could well have begun by asking
himself what was meant by calling a typewriter 'mechanical'" (Hodges p. 96). While at Princeton pursuing his PhD, Turing built a Boolean-logic
multiplier (see below). His PhD thesis, titled "Systems of Logic Based on Ordinals", contains the following definition of "a computable function":
It was stated above that 'a function is effectively calculable if its values can be found by some purely mechanical process'. We may take this
statement literally, understanding by a purely mechanical process one which could be carried out by a machine. It is possible to give a
mathematical description, in a certain normal form, of the structures of these machines. The development of these ideas leads to the author's
definition of a computable function, and to an identification of computability with effective calculability. It is not difficult, though somewhat
laborious, to prove that these three definitions [the 3rd is the λ-calculus] are equivalent.
—Turing (1939) in The Undecidable, p. 160
Alan Turing's a- (automatic-)machine
When Turing returned to the UK he ultimately became jointly responsible for breaking the German secret
codes created by encryption machines called "The Enigma"; he also became involved in the design of the
ACE (Automatic Computing Engine), "[Turing's] ACE proposal was effectively self-contained, and its roots
lay not in the EDVAC [the USA's initiative], but in his own universal machine" (Hodges p. 318). Arguments
still continue concerning the origin and nature of what has been named by Kleene (1952) Turing's Thesis.
But what Turing did prove with his computational-machine model appears in his paper On Computable
Numbers, With an Application to the Entscheidungsproblem (1937):
[that] the Hilbert Entscheidungsproblem can have no solution ... I propose, therefore to show that there can
be no general process for determining whether a given formula U of the functional calculus K is provable,
i.e. that there can be no machine which, supplied with any one U of these formulae, will eventually say
whether U is provable.
—from Turing's paper as reprinted in The Undecidable, p. 145
Turing's example (his second proof): If one is to ask for a general procedure to tell us: "Does this machine
ever print 0", the question is "undecidable".
Orígenes y propósitos de las Máquinas de Turing
• consistente o coherente: Un sistema axiomático es consistente cuando no es posible
derivar una contradicción a partir de sus axiomas. Decimos por el contrario que un
sistema es inconsistente si es posible probar en este sistema como teorema una
fórmula cualquiera y su negación. Como a partir de premisas inconsistentes se puede
deducir cualquier conclusión, un sistema inconsistente carece de utilidad para la
ciencia puesto que en todas sus interpretaciones, habrá enunciados falsos.
• completo: Un sistema axiomático es completo si no es posible añadirle axiomas
nuevos sin que el sistema en cuestión se convierta en inconsistente. Esta propiedad es
muy difícil de demostrar.
• decidible: se refiere a la existencia de un método efectivo para determinar si un objeto
es miembro de un conjunto de fórmulas.
• El último postulado, llamado el “problema de la decidibilidad” o Entscheidungproblem,
-como lo denominó Hilbert- restaba de ser comprobado y Turing lo logra en su trabajo
“On computable numbers with an application to the Entscheidungsproblem” de 1936.
Orígenes y propósitos de las Máquinas de Turing
Es necesario hacer la aclaración de que el primer autómata que existió fue la Máquina de Turing. Nosotros hemos estudiado otros
modelos de computación como los AFD, AFND y el AP, pero éstos existieron, -cronológicamente- después de la MT, ya que fueron
modelos más simples que permitían un enfoque didáctico mejor. Estas máquinas se desarrollaron en los años ‘60.
Por lo tanto, los orígenes y propósitos de la MT es totalmente diferente de los autómatas estudiado. La MT fue concebida para
poder TODO el poder de los procesos computacionales. Dicho de otra manera: Turing buscó desarrollar un sistema en el que fuera
posible modelar cualquier proceso que pudiera considerarse como un cálculo.
Esto sucedió en 1936, mucho antes que existiera cualquier maquinaria computacional como la actual. Turing pensaba en cálculos
que podían realizar seres humanos con papel y lápiz. Así, Turing sabía que las personas sólo podían concentrarse, -en un
momento dado- en una porción restringida del papel y que esa colección de marcas en el papel podrían considerarse como un
único símbolo.
En base a esto, Turing llegó a la conclusión de que cualquier proceso computacional sólo podía necesitar una cantidad finita de
símbolos perfectamente distinguibles.
Paralelamente, Turing consideró que la persona calculando pasaría por una serie de estados, desde uno especial al inicio de los
cálculos, pasando por otros a medida que fuera completando los resultados parciales y, eventualmente llegaría hasta un estado
final de parada al completar todos sus cálculos.
Es muy significativo que, -hasta la fecha- nadie en el mundo haya podido producir un modelo computacional que fuera
ampliamente aceptado y que supere el poder del modelo de Turing.
Este modelo es tan poderoso y general que supera a las computadoras actuales, ya que una MT nunca se verá restringida por
problemas de falta memoria (cinta semiinfinita) cosa que si ocurre en las computadoras reales.
En base a esto es que se acepta la llamada Tesis de Turing, que dice que:
El poder computacional de una máquina de Turing es tan grande como el de cualquier sistema computacional posible.
Orígenes y propósitos de las Máquinas de Turing
A estos diagramas de bloques los podemos representar como un nodo con flechas entre los nodos para
indicar las transiciones entre los bloques. Estas flechas se etiquetarán de acuerdo con el valor que debe
aparecer en la celda actual para que recorra la flecha. Es decir, si una flecha del nodo A al nodo B tiene una
etiqueta x, entonces la ejecución se transferirá ala máquina B si A llega a su ex estado de parada con una x
en la celda actual.
Como con los diagramas de transiciones, debe indicarse con una flecha el nodo del diagrama compuesto
desde donde comienza la ejecución. Por ejemplo la máquina que desarrollamos en la Fig 3.3 podría
resumirse con el diagrama compuesto siguiente:
el nodo A representa la máquina que mueve su cabezal a una celda a la derecha , B representa la
máquina que busca una x y C la máquina que busca una y.
x
B Por conveniencia hay varias abreviaturas en cuanto a la notación usada en los diagramas compuestos
de MT’s:
A • Una de estas abreviaturas es reemplazar varias flechas de idéntico origen y destino por una sola
etiquetada con la lista de símbolos que se aplican.
C • Otra es utilizar el símbolo ¬ (usado como negador o complemento en Lógica) para simbolizar
y transiciones que no incluyen al símbolo que niega, por ejemplo si tenemos ¬x, significa que por esa
transición pasarán todos los símbolos que no sean x, como y o z, o lo que corresponda.
• Otra abreviatura es la flecha sin etiqueta que identifica una transición que se recorre sin importar el
valor de la celda actual, También puede eliminarse la flecha y poner los nombres de los nodos uno a
continuación del otro, como por ejemplo →A → B → C se reemplaza por → ABC
Ejemplos de abreviaturas de notación de MTs
• La máquina de la Fig. 3.4 a simula las acciones de M1 hasta donde normalmente se detendría y hace una
transferencia para simular a M2.
• La Fig 3.4 b representa una máquina que simula M1 y hace la transferencia a M2 sólo si la celda actual
contiene una x; de lo contrario se detiene al finalizar M1.
• La Fig. 3.4 c representa una máquina compuesta que simula M1 y luego elige simular M2 o M3 dependiendo si
el símbolo actual es x o no es x.
Ejemplos de abreviaturas de notación de MTs
Otra abreviatura es la notación -vista a continuación- para indicar que cuando el símbolo actual
es x, y o z, la máquina deberá proseguir en esa dirección, donde ω representa el símbolo que
en realidad está presente. Esta notación se usa para no saturar el diagrama con rutinas
similares, -aunque separadas- para cada uno de los símbolos x, y o z. Para no hacer eso, se
presenta una rutina genérica que trabaja con el símbolo ω de manera similar a como un
subprograma presenta una rutina genérica en términos de parámetros formales.
La Fig.3.9 es una máquina que supone que su entrada representa un entero positivo en notación binaria y reduce en uno el valor
representado (la orden SUB, o x = x - 1).
Bloques de construcción básicos (5): Ejemplos 2
La Fig.3.10 es una máquina que transforma cadenas del alfabeto {x, y, z}. Si iniciamos la máquina con la configuración de
cinta Δw1Δ Δ Δ…, donde w1 es una cadena en {x, y, z}*, entonces la máquina se detendrá con la cinta configurada como
Δw2ΔΔΔ…, donde w2 es la cadena que sigue a w1 en la secuencia λ, x, y, z, xx, yz, zx, xy, yy, zy, xz, yz, zz, xxx, yxx, … Más
adelante veremos la utilidad de esta máquina como bloque de construcción.
Realizar los ejercicios 1, 2, 3 y 4 de la sección
3.2 del Brookshear
3.3 Máquinas de Turing como aceptadoras
de lenguajes
donde M0 es la máquina que simula M, excepto por las dos circunstancias especiales en las cuales surge # ó * como el símbolo actual.
Procedimientos de evaluación de cadenas
Pensemos ahora al revés. Supongamos que tenemos una máquina de Turing M’ que acepta cadenas deteniéndose con
la cinta configurada como ∆Y∆∆∆….
Entonces podríamos alterar esta máquina para obtener otra que no se detuviera en ningún otro caso. Lo único que
requiere es insistir en que la máquina revise su cinta en busca de la configuración ∆Y∆∆∆… antes de detenerse.
Para lograr esto, construimos otra máquina que marque los extremos izquierdo y derecho de la cinta de la forma antes
descrita; luego simule las acciones de M’ tomando en cuenta la ocurrencia de # o * como símbolo actual; y por último,
si la simulación llega hasta el estado de parada original, confirme que la porción de la cinta limitada por las marcas # y
* esté configurada como #∆ Y∆∆…∆ ∆* antes de detenerse.
Este último paso podría lograrse con una rutina como la siguiente:
Conclusión: podemos establecer varias maneras de que una MT acepte sus cadenas de entrada, ya sea permitiendo que se
detengan ú obligándolas a que respondan con un mensaje de aceptación. Ambas estrategias tienen ventajas y desventajas,
pero como tienen el mismo poder, podemos elegir el método que más nos convenga. No obstante, supondremos que una MT
acepta sus cadenas con sólo detenerse, a menos que se especifique lo contrario.
Máquinas de Turing de varias
cintas
Máquinas de Turing multicintas
Es posible configurar MT que dispongan de más de una cinta. A éstas máquinas se las conoce como máquinas de Turing
de k-cintas, con k entero positivo.
Cada una de estas cintas tiene su extremo izquierdo propio, se extiende infinitamente por la derecha y el acceso a su
contenido se logra a través de varios cabezales de lectura y escritura(uno por cinta).
La transición que se ejecute en un instante dado, dependerá de la colección de símbolos presentes en estos cabezales y
del estado actual/interior de la máquina.
La acción de una sola transición afecta sólo a una de las cintas de la máquina. Estas acciones incluyen:
1. escribir en la celda actual de su cinta,
2. mover el cabezal correspondiente una celda a la izquierda o,
3. mover el cabezal una celda a la derecha.
Para evaluar la aceptación de una cadena de símbolos por parte de una MT de varias cintas, comenzaremos con la
máquina en su estado inicial y con la cadena de entrada registrada en la primera cinta, mientras que todas las restantes
cintas están en blanco, con los cabezales posicionados en la celda del extremo izquierdo de sus cintas.
Entonces: la cadena es aceptada si, -a partir de esta configuración inicial- la máquina se detiene.
Aunque estemos tentados de pensar que una MT de varias cintas tiene un poder de procesamiento de lenguajes mayor
que las MT de cinta única, comprobaremos que no es así; cualquier MT de varias cintas puede ser simulada con una MT
de una única cinta, como veremos en el teorema siguiente.
Dicho de otra forma; aunque en ocasiones nos convenga usar una MT de varias cintas, esta máquina no podrá aceptar
más lenguajes que una MT convencional de cinta única.
Máquinas de Turing multicintas
Teorema 3.1
Por cada máquina de Turing de varias cintas M, habrá una máquina de
Turing convencional de una sola cinta M’ tal que L(M) = L(M’).
Demostración
Suponemos que M es una máquina de Turing de k-cintas que acepta el lenguaje L.
Mostraremos que existe la posibilidad de representar el contenido de las k cintas en
una sola, de modo que las acciones de M pueden ser simuladas perfectamente en una
máquina M’ de cinta única.
Veamos…
Máquinas de Turing multicintas
En la figura 3.13 a vemos las cintas de M colocadas en paralelo con sus extremos
izquierdos alineados y la posición de sus correspondientes cabezales está
representada por las flechas verticales. Basados en esta representación, veremos
que es posible representar el contenido de las k cintas y las posiciones de sus
respectivos cabezales en una tabla que contiene 2k filas y una cantidad ilimitada
de columnas que se extienden hacia la derecha como se ve en la fig. 3.13 b.
Las filas impares de esta tabla representan las cintas; las pares se usan para
indicar la posición del cabezal de la cinta de la fila superior, lo cual se logra
colocando un 1 en la columna asociada con la celda actual y dejando las demás
en blanco.
Cada una de las columnas de la tabla es, -en esencia- una 2k-tupla y los
componentes impares, símbolos de cinta de M y los pares elementos del
conjunto {∆, 1}. Por lo tanto, existe sólo una cantidad finita de combinaciones
distintas de símbolos que pueden aparecer en las columnas. Esto quiere decir
que podemos asignar un nuevo símbolo de cinta (único) a cada una de las 2k-
tuplas posibles y luego representar toda la tabla como una cadena infinita de
estos nuevos símbolos.
De esta manera podemos almacenar en una sola cinta toda la información que
contienen las k cintas de la máquina. Aunque cada una de las celdas de la cinta
única contiene sólo un símbolo, éste representa una 2k-tupla.
Es conveniente expresarlo como si la cinta contuviera dicha tupla, en vez del
símbolo que la representa. Adoptaremos esto informalmente.
Máquinas de Turing multicintas
Luego de ejecutar esos pasos, M’ ha traducido su cinta a un formato de cintas múltiples, marcando el extremo
izquierdo de la cinta con # y devuelto su cabezal a la tupla que representa las celdas del extremo izquierdo de
las k cintas de M. Ahora M’ debe simular a M hasta que M se detenga o termine anormalmente.
Para simular una transición de M, se necesitará efectuar una serie de pasos en M’. Diseñamos a M’ de tal
manera que cada secuencia de pasos comience en un estado especial, -denominado estado compuesto- que
refleje el estado actual de M así como la colección de k símbolos de las celdas actuales de las cintas de M. De
esta manera, cada estado compuesto es conceptualmente una K+1-tupla, donde el primer componente es un
estado de M, y los restantes son símbolos del alfabeto de M.
Máquinas de Turing multicintas
M’ se construye para que, al hallarse en el estado compuesto (p, x1, x2, …, xk) corresponda a que M se
encuentre en el estado p con los símbolos actuales x1, x2, …, xk en sus cabezales. a partir de este estado, M’
ejecutará una secuencia de pasos diseñados para simular cada transición que ejecutaría M en la situación
correspondiente (tener en cuenta que esta transición es determinada en forma única por el estado compuesto.
Así, la decisión de cuál será la siguiente transición que se ejecute no se realiza dinámicamente durante el
proceso de simulación, sino que se determina ANTES de la ejecución; esto es, durante la construcción de la
máquina). Una vez que se ha ejecutado la secuencia de simulación de la transición, M’ se desplazará al estado
compuesto que corresponda a la situación donde se encontraría M después de ejecutar la transición
individual.
Para determinar cómo es este proceso de simulación, refinamos el paso A4 para que deje a M’ en el estado
compuesto que representa la k+1-tupla (ι, ∆, ∆, …, ∆) donde ι es el estado inicial de M.
Así, después de terminar con el paso A4, M’ se hallará en el estado compuesto asociado al estado inicial y a los
símbolos actuales de M, dispuesta a iniciar el proceso de reconocimiento de la cadena.
A4.ejecuta
A4. ejecutaLL∆∆,,lolocual
cualmoverá
moveráelelcabezal
cabezalde
deregreso
regresoaalalasegunda
segundacelda
celdadedelalacinta.
cinta.Sustituye
Sustituyeelelespacio
espacioen
en
blancode
blanco deesta
estaceldaceldacon
conelelsímbolo
símbolode
decinta
cintaque
querepresenta
representaaalalatupla
tupla(∆,
(∆,1,
1,∆,∆,1,1,…, ∆,1).
…,∆, 1).
Máquinas de Turing multicintas
Para simular la ejecución de la transición de M, M’ se ejecutan los pasos B1 a B3, donde
empleamos la notación jτ para representar el número de la cinta que se vería afectada por la
transición τ (recordemos que una transición de la MT de varias cintas afecta sólo a una de las
cintas de la máquina).
B1. Mueve la cabeza a la derecha hasta que el componente 2jτ de la tupla en la celda actual sea
1 (es decir, encuentra la posición de la cabeza asociada con la cinta jτ.
B2. a. Si la transición τ es una operación de escritura, entonces modifica el componente 2jτ – 1
según se indique.
b. Si la transición τ es un movimiento hacia la derecha, reemplaza con un espacio en blanco
al 1 del componente 2jτ de la celda actual, mueve la cabeza una celda a la derecha y cambia
de espacio en blanco a 1 el componente 2jτ de la tupla que allí se encuentra (si en lugar de
una tupla detecta un espacio en blanco al moverse a la derecha, reemplaza éste con la 2K-
tupla (∆, ∆, ∆, ∆,…, ∆, ∆) antes de escribir el 1).
c. Si la transición τ es un movimiento hacia la izquierda, reemplaza con un espacio en blanco
el 1 del componente 2jτ de la celda actual, se mueve una celda a la izquierda y cambia del
espacio en blanco a 1 el componente 2jτ de la tupla que allí se encuentra (si en lugar de una
tupla detecta el símbolo # al moverse hacia la izquierda, mueve la cabeza de nuevo hacia la
izquierda; esto ocasionará que M’ abandone sus cálculos, tal como lo haría M).
B3. Utilizando como guía la marca especial # del extremo izquierdo de la cinta, devuelve la
cabeza a la segunda celda de la cinta y pasa al estado compuesto de M’ que refleje la
configuración de M después de ejecutar la transición τ.
Máquinas de Turing multicintas
Como ejemplo, veamos la Fig. 3.15 que presenta la simulación de
una máquina de 3 cintas que mueve la cabeza de su segunda
cinta una celda a la derecha.
Si la ejecución de B1 a B3 conduce a un estado compuesto cuyo
primer componente es el estado de parada de M, entonces se
detienen (o se han detenido) los cálculos que se simulan. Por esto
es que diseñamos M’ de manera tal que también se detenga.
Al construirse de esa manera, M’ únicamente simula las
actividades de M y, por lo tanto, acepta una cadena si, y sólo si,
M la hubiera aceptado.
Por consiguiente, la máquina M’ de cinta única acepta
exactamente el mismo lenguaje que la máquina M de varias
cintas.
Máquinas de Turing multicintas
Teorema 3.1 o
Por cada máquina de Turing de varias cintas M, habrá una máquina de Turing
convencional de una sola cinta M’ tal que L(M) = L(M’).
Entre otras cosas, el Teorema 3.1 refuerza nuestra confianza en la Tesis de Turing. Al ampliar el potencial de los
autómatas finitos con el agregado de memoria para obtener los autómatas de pila, podríamos vernos tentados a
pensar que si ampliamos la memoria a una MT, ésta aumentará su poder reconocedor de lenguajes; pero el
teorema 3.1 nos indica que esto no producirá un aceptador de lenguajes más poderoso.
Podríamos modelar cualquier dispositivo de memoria que se quiera agregar a una MT mediante cintas adicionales,
y –sin embargo- por el teorema 3.1 estos agregados no mejorarán el potencial de reconocimiento de los lenguajes
de la máquina. Por lo tanto, no podemos contradecir la tesis de Turing añadiendo más memorias a una MT.
Otro fenómeno que apoya la Tesis de Turing es que tampoco se obtiene poder de reconocimiento adicional si
añadimos no determinismo a las MT. Para apoyar esta última afirmación, presentaremos el concepto de una
Máquina de Turing no determinista
Máquinas de Turing no deterministas
Máquinas de Turing no deterministas
Una máquina de Turing no determinista es similar a una MT tradicional;
la diferencia radica en que una máquina no determinista no se
encuentra totalmente definida, o -lo que es más importante- puede
que ofrezca más de una transición aplicable a un par estado – símbolo.
Si una MT D llegara al par estado - símbolo actual sin que existiera una
transición aplicable, la máquina abandonaría los cálculos.
Si una MT ND llegara al par estado – símbolo actual donde puede
aplicarse más de una transición, la máquina llevaría a cabo una elección
no determinista y proseguiría con sus cálculos mediante la ejecución de
una de las opciones aplicables.
Resumiendo:
Máquinas de Turing no deterministas
Una máquina de Turing no determinista puede definirse como una séxtupla (S, Σ, Γ, π, ι, h) al igual que
una máquina determinista, excepto que el cuarto componente es un subconjunto de ((S – {h}) x Γ)x(S x
(Γ⋃{L, R})) en vez de una función de (S – {h}) x Γ a S x (Γ⋃{L, R}).
En este contexto, es evidente que las MT ND forman una clase de máquinas que contiene propiamente a
las MT tradicionales (o sea, deterministas) que hemos analizado hasta ahora.
Entonces, decimos que una máquina de Turing no determinista M acepta una cadena w si es posible que
M llegue a su estado de parada después de iniciar sus cálculos con la entrada w. Decimos posible ya que
reconocemos que en el caso de una máquina no determinista, no alcanzar el estado de parada en un
intento particular podría ser el resultado de una “mala decisión” de la máquina, más que de una cadena
de entrada impropia.
Así, definimos como lenguaje L(M) a la colección de todas las cadenas aceptadas por la máquina de Turing
no determinista M. De esta manera, una cadena w está en el L(M) si y sólo si M dispone de opciones que
le permitan alcanzar el estado de parada al recibir la entrada w.
Ya que la MT ND es una generalización de la MT tradicional, tiene que poder aceptar todo lenguaje que
acepte una máquina tradicional. Lo extremadamente interesante es que, -como lo mostrará el teorema
siguiente- las MT ND son incapaces de aceptar más lenguajes que las deterministas (tradicionales).
Por lo tanto, -como sucede con los autómatas finitos- la introducción del no determinismo no aumenta el
poder de reconocimiento de lenguajes de las Máquinas de Turing.
Máquinas de Turing no deterministas
Teorema 3.2
Para cada máquina de Turing no determinista M, existe una máquina de Turing
determinista D tal que L(M) = L(D).
Demostración
Supongamos que M es una máquina de Turing no determinista que acepta el
lenguaje L(M). Entonces, debemos mostrar la existencia de una máquina de
Turing determinista que acepte el mismo lenguaje.
Esto lo logramos de manera indirecta, mostrando que existe una máquina de
Turing determinista de 3 cintas M’ tal que se cumpla que L(M) = L(M’) y que,
-por el teorema 3.1- debe existir una máquina de Turing tradicional
(determinista, de cinta única) que acepte el L(M).
Máquinas de Turing no deterministas
Teorema 3.2
Para cada máquina de Turing no determinista M, existe una máquina de Turing determinista D tal
que L(M) = L(D).
Demostración
Diseñaremos M’ para que pruebe de manera sistemática todas las opciones
posibles para la máquina determinista M, con el objetivo de encontrar una
combinación que lleve a la aceptación de la cadena de entrada. Se emplean las
tres cintas de M’ de la siguiente manera:
1. la primera cinta contendrá la cadena de entrada a evaluar,
2. la segunda cinta se empleará como cinta de trabajo en donde
repetidamente M’ copiará la versión intacta de la cadena de entrada y luego,
-usando esta copia- simulará una secuencia de transiciones de M;
3. la tercera cinta servirá para llevar el control de la secuencia de transiciones
(de M) que se aplica, así como las secuencias que ya se han simulado.
Máquinas de Turing no deterministas
… “El proceso de copiado de la cadena de entrada de la cinta 1 en la cinta 2 implica dos aspectos sutiles, pero importantes: “
El proceso de copiado de la cadena de entrada de la cinta 1 en la cinta 2 implica dos aspectos sutiles, pero importantes:
A. en primer lugar, M’ debe desplazar la cadena una celda hacia la derecha durante el proceso de copiado. Es decir, hay que
colocar el contenido de la celda 1 de la cinta uno en la celda 2 de la cinta dos, el contenido de la celda 2 de la cinta uno en
la celda 3 de la cinta dos, el contenido de la celda 3 de la cinta uno en la celda 4 de la cinta dos, y así sucesivamente.
Esto permite que M’ coloque un símbolo especial en la celda del extremo izquierdo de la cinta dos, lo cual permite que M’
detecte una terminación anormal de M sin provocar el aborto de sus propios cálculos. O sea, si la secuencia de
transiciones que se simula ocasiona que M rebase el extremo izquierdo de la cinta, M’ detectará esta marca especial,
notará que esa secuencia no es productiva y comenzará el proceso de evaluación de otra secuencia.
B. el segundo aspecto importante que está presente en el proceso de copiado de la cadena de entrada, es que M’ debe
colocar una marca especial en el extremo derecho de la cadena de su segunda cinta. Si esta marca especial se detecta al
simular las transiciones de M, se desplazará hacia la derecha. Así, cuando M’ necesita borrar esta cinta antes de comenzar
otra simulación, sólo tiene que borrar hasta esta marca especial.
Finalmente,
Debemos indicar cómo M’ llevará el control de la simulación de secuencias de transiciones de M. La idea es bastante sencilla:
rotulamos cada uno de los arcos del diagrama de transiciones de M con un símbolo único. Si hubiera sólo 5 arcos en el
diagrama, podríamos emplear los dígitos1, 2, 3, 4, y 5. Luego construimos un componente en M’ que genere todas las
cadenas de estos símbolos en forma sistemática utilizando la cinta tres (ver fig. 3.10). Cada una de estas cadenas representa
una secuencia de transiciones y, -al fin de cuentas- estará representada cada una de las transiciones posibles.
Máquinas de Turing no deterministas
… “El proceso de copiado de la cadena de entrada de la cinta 1 en la cinta 2 implica dos aspectos sutiles, pero importantes: “
Al utilizar este generador de secuencias interno, las actividades de M’ se llevan a cabo de la
siguiente manera:
1. copia la cadena de entrada de la cinta uno a la cinta dos en al forma antes descrita.
2. genera la siguiente secuencia de transiciones en la cinta tres.
3. simula esta secuencia con la cinta dos.
4. si esta simulación conduce a un estado de parada de M, se detiene. En caso contrario,
borra la cinta dos y regresa al paso 1.
Resumiendo: como puede apreciarse, no podemos ampliar el potencial de reconocimiento de
lenguajes de las MT ni añadiendo cintas, ni tampoco introduciendo un comportamiento no
determinista, observación que apoya la tesis de Turing.
Esto nos puede llevar a conjeturar que la clase de lenguajes aceptados por las máquinas de
Turing representa el final de nuestra jerarquía de los lenguajes que las máquinas pueden
reconocer y que, -por lo tanto- es de vital importancia para nuestro estudio. Por esto, en las
secciones siguientes nos dedicaremos a aprender más acerca de esta clase de lenguajes.
Ver los Ejercicios…
3.4 Lenguajes aceptados por las
Máquinas de Turing
Teoría de la Computación II. Brookshear Cap. 3
Máquinas de Turing y Lenguajes Estructurados por Frases
Lenguajes aceptados por las máquinas de Turing
Teorema 3.3
Todo lenguaje aceptado por máquinas de Turing es un
lenguaje estructurado por frases.
Teorema 3.3 Todo lenguaje aceptado por máquinas de Turing es un lenguaje estructurado por frases.
Demostración
tenemos que demostrar que, para cualquier lenguaje L aceptado por máquinas de Turing, existe una
gramática estructurada por frases que genera L. Para ello seleccionamos una máquina de Turing M
que acepte cadenas sólo deteniéndose con su cinta configurada como ∆ϒ∆∆∆ … y para la cual L(M) = L.
A partir de esta máquina definimos una gramática G de la manera siguiente:
los no terminales de G se definen como S (el símbolo inicial de la gramática), [, ], los símbolos que
representan los estados de M y los símbolos de cinta de M, incluidos ∆ y ϒ.
Los terminales de G son los símbolos del alfabeto de M.
La única regla de reescritura que contiene el símbolo inicial es la regla
S →[h∆ϒ∆]
Esta regla garantiza que cualquier derivación basada en esta gramática comenzará al final de alguna
secuencia de configuraciones de la máquina. También introducimos la regla
∆]→∆∆]
que permite que una derivación amplíe la cadena [h∆ϒ∆] a cualquier longitud que se desee.
Teorema 3.3 Todo lenguaje aceptado por máquinas de Turing es un lenguaje estructurado por frases.
Demostración
A continuación, introducimos reglas de reescritura que simulan transiciones a la inversa. Para cada transición de la forma δ(p, x)
= (q, y) introducimos la regla de reescritura
qy→px
(De esta manera, [∆zqy∆] puede escribirse como [∆zpx∆], lo cual refleja que si la configuración de M fuera [∆zpx∆], la aplicación de
δ(p, x) = (q, y) desplazaría M hacia [∆zqy∆].)
Para cada transición de la forma δ(p, x) = (q, R), introducimos la regla
xq →px
(Por ejemplo, [∆xqyz∆] se podría escribir como [∆pxyz∆].)
Para cada transición de la forma δ(p, x) = (q, L) y cada símbolo de cinta y de M, introducimos la regla
qyx →ypx
(así, [∆qyx∆∆] se podría reescribir como [∆ypx∆∆].)
La lista de reglas de reescritura de G se completa introduciendo tres reglas que permiten que una derivación elimine los no
terminales [, ι, ∆ y ] en ciertas circunstancias. Estas reglas son
[ι∆→λ
∆∆]→∆]
∆]→λ
(Por consiguiente, si una derivación produjera la configuración inicial [ι∆xyx∆∆∆], podría eliminar los no terminales para producir la
cadena xyx.)
Teorema 3.3 Todo lenguaje aceptado por máquinas de Turing es un lenguaje estructurado por frases.
Demostración
Por último, planteamos que L(M) = L(G). Si w fuera una cadena de L(M), existiría
una secuencia de configuraciones de M que comenzaría con [ι∆w∆] y terminaría
con [h∆ϒ∆]. Por lo tanto, podemos producir una derivación de la cadena w de la
forma
S ⇒ [h∆ϒ∆] ⇒ … ⇒ [ι∆w∆] ⇒ w∆] ⇒ w
Comenzamos por aplicar la regla S → [h∆ϒ∆] y luego la regla ∆] → ∆∆]
repetidamente hasta que la cadena [h∆ϒ∆∆∆… ∆] sea tan larga como cualquier
configuración de la secuencia que represente los cálculos de M. Después aplicamos
en orden inverso las reglas de reescritura correspondientes a las transiciones de la
secuencia de configuraciones original. Esto producirá el patrón [ι∆w∆∆… ∆], el cual
podemos reducir a w aplicando las reglas ∆∆]→∆], ∆]→λ , y [ι∆→λ. Como
resultado, w estaría en L(G).
A modo de ejemplo, la Fig. 3.18 presenta la derivación que corresponde a la
secuencia de configuraciones proporcionada en la Fig 3.17.
A la inversa, si tuviéramos una cadena en L(G), su derivación daría origen a una
secuencia de configuraciones que mostrarían a su vez cómo podría aceptar M la
cadena. Así, cualquier cadena de L(G) también se encuentra en L(M).
Fin de la demostración
El siguiente teorema es lo único que nos falta para justificar nuestra afirmación de que los lenguajes estructurados por frases son exactamente los
lenguajes aceptados por las máquinas de Turing.
Teorema 3.4 Todo lenguaje estructurado por frases es un lenguaje aceptado por máquinas de Turing.
Demostración
Comenzaremos por observar que al aplicar la demostración del teorema 3.1 a una máquina
de Turing no determinista de varias cintas se produciría una máquina no determinista de cinta
única que aceptaría el mismo lenguaje que la máquina con varias cintas (es posible que la
transición por simular de un estado compuesto de la forma(p, x1, x2, …, xk) ya no esté
determinada en forma única, pero entonces se conocerán todas las opciones antes de la ejecución
y, por lo tanto, podrán incorporarse al autómata permitiendo el no determinismo).
Así, para cualquier máquina de Turing no determinista M de varias cintas existe una máquina de
Turing M’ de una sola cinta tal que L(M) = L(M’). Tal observación nos permite demostrar este
teorema mostrando que para cada gramática G existe una máquina de Turing no determinista N
de dos cintas tal que L(G) = L(N). A continuación, N se podría simular con una máquina de Turing
no determinista de una única cinta (por la observación anterior), la cual podría ser, -a su vez-
simulada por una máquina de Turing convencional (según el teorema 3.2).
Continúa…
Fin de la demostración
El siguiente teorema es lo único que nos falta para justificar nuestra afirmación de que los lenguajes estructurados por frases son exactamente los
lenguajes aceptados por las máquinas de Turing.
Teorema 3.4 Todo lenguaje estructurado por frases es un lenguaje aceptado por máquinas de Turing.
Demostración
A continuación observamos que una máquina de Turing puede ejecutar cualquier regla de reescritura de la gramática. Es decir, si una
cadena de símbolos v aparece en algún lugar de la cinta de la máquina y la gramática contiene la regla v → w, donde w representa una
cadena (tal vez vacía) de terminales y no terminales, entonces la máquina puede reemplazar la cadena v por la cadena w aplicando
operaciones de escritura y desplazamiento hacia la izquierda y hacia la derecha.
Construimos ahora una máquina no determinista de dos cintas que opera de la siguiente manera:
• utiliza la cinta 1 para almacenar la cadena de entrada por evaluar. Escribe el símbolo inicial de la gramática en la cinta 2.
• Luego aplica repetidamente y de manera no determinista las reglas de reescritura a la cadena de la cinta 2 (decimos “de manera no
determinista” ya que puede existir más de una regla aplicable en un momento dado).
• Si el contenido de la cinta 2 se convierte en una cadena con sólo terminales, compara esta cadena con la cadena de entrada que está
almacenada en la cinta 1.
• Si ambas cadenas son idénticas, entonces la máquina se detiene; caso contrario, mueve una de las cabezas hacia la izquierda hasta que
ocurra una terminación anormal. (busca detenerse o abortar)
En resumen, este proceso únicamente emplea la cinta 2 para calcular una derivación con base en las reglas de la gramática. Si la cadena de
entrada se puede derivar de la gramática, entonces es posible que esta cadena sea la producida en la cinta 2.
En este caso, la máquina aceptará la entrada, deteniéndose. Sin embargo, si la entrada no puede derivarse de la gramática, la cadena
producida en la cinta 2 nunca podrá ser igual a la de entrada, y sería imposible que la máquina aceptara esa cadena.
Por consiguiente, el lenguaje aceptado por la máquina es el lenguaje generado por la gramática.
Resumen de los lenguajes y las máquinas estudiadas hasta
ahora en la jerarquía siguiente:
lenguajes regulares
(aceptados por autómatas finitos)
Alcance de los Lenguajes Estructurados
por Frases
Teorema 3.5:
Para cada alfabeto Σ existe al menos un lenguaje sobre Σ que no es un
Lenguaje Estructurado por Frases.
Alcance de los Lenguajes Estructurados por Frases
Teorema 3.5:
Para cada alfabeto Σ existe al menos un lenguaje sobre Σ que no es un Lenguaje Estructurado por Frases
Demostración:
Sea L un Lenguaje Estructurado por Frases del alfabeto Σ. Entonces, por el Teorema 3.4, existe una
máquina de Turing M tal que L(M)= L.
Comencemos señalando que existe una máquina M cuyos símbolos de cinta se eligen del conjunto Σ⋃{∆}.
Si M es la máquina de Turing tal que L(M) = L y los símbolos de cinta incluyen más de Σ⋃{∆}, podemos
contruir otra máquina de Turing M’ con símbolos de cinta de Σ⋃{∆}, de modo que L(M’)=L(M)=L.
De hecho, sea x cualquier símbolo (distinto de ∆) de Σ. Entonces ponemos en una lista los símbolos
distintos de ∆ de M y representamos cada entrada de la lista con una cadena de x de longitud igual a la
posición del símbolo en esta lista (el primer símbolo se representa con x, el segundo con xx, etc.). Así,
cada uno de los símbolos de la cinta de M que no sea un ∆, -y por consiguiente también cada símbolo del
alfabeto de M’- se representa con una cadena de x única. De esta manera, siempre es posible representar
el contenido de la cinta de M por medio de cortas cadenas de x separadas por ∆ (un ∆ de la cinta de M se
codificaría como dos espacios consecutivos, es decir una cadena de x vacía).
Alcance de los Lenguajes Estructurados por Frases
Teorema 3.5:
Para cada alfabeto Σ existe al menos un lenguaje sobre Σ que no es un Lenguaje Estructurado por Frases
Demostración (finaliza):
Ahora, construimos M’ para que traduzca su entrada a esta forma codificada, simule las acciones de M y se
detenga únicamente si M se detiene. Así, M’ aceptará exactamente las mismas cadenas que acepta M, sin
emplear más que los símbolos de cinta Σ⋃{∆}.
Concluimos que, dado un lenguaje estructurado por frases de un alfabeto Σ, existe una máquina de Turing
con símbolos de cinta Σ⋃{∆} tal que L(M) = L.
Lo que nos resta de la demostración es, -en esencia- lo mismo que la demostración del teorema 1.1.
Podemos generar de manera sistemática una lista de todas las máquinas de Turing con símbolos de cinta
Σ⋃{∆}, generando primero aquellas máquinas con sólo dos estados (recordemos que cualquier MT tiene al
menos dos estados: ι y h), seguida por las MT que tienen 3 estados, etc. Por lo tanto, existe una cantidad
contable de tales máquinas de Turing. Por otra parte, existe una cantidad infinita de cadenas en Σ* y,
-debido a ello- es incontable la cantidad de lenguajes que se pueden formar a partir de Σ.
Por consiguiente, existen más lenguajes basados en Σ que máquinas de Turing con símbolos de cinta en
Σ⋃{∆}. Asimismo, deben existir lenguajes basados en Σ que no son lenguajes estructurados por frases.
Alcance de los Lenguajes Estructurados por Frases
Teorema 3.3
Todo lenguaje aceptado por máquinas de Turing es un Lenguaje Estructurado por Frases.
Teorema 3.4:
Todo Lenguaje Estructurado por Frases es un lenguaje aceptado por máquinas de Turing.
Teorema 3.5:
Para cada alfabeto Σ existe al menos un lenguaje sobre Σ que no es un Lenguaje Estructurado por Frases
Aquí es donde comienza a complicarse la cosa. Los teoremas 3.3, 3.4 y 3.5 nos dicen que existen lenguajes que no tienen bases gramaticales y
además que las MT sólo pueden reconocer aquellos lenguajes que sí tienen bases gramaticales. Si aceptamos la Tesis de Turing de que las MT
engloban la esencia de cualquier proceso computacional, debemos concluir que ningún proceso algorítmico puede reconocer los lenguajes que
no tienen bases gramaticales.
Esta conclusión no sólo indica que existen lenguajes que no podemos analizar sintácticamente con una computadora, sino que además tiene
ramificaciones relacionadas con las búsqueda de sistemas que comprendan los lenguajes naturales, un área de gran actividad en las
investigaciones recientes.
De hecho, nos indica que en el desarrollo de un sistema de procesamiento de lenguajes naturales existe el requisito de que el lenguaje que se
procesa tenga una estructura gramatical bien definida; si el lenguaje natural no cuenta con esta estructura, no seremos capaces de procesarlo
algorítmicamente.
Este requisito tiene además un estrecho vínculo con el tema de la inteligencia natural comparada con la inteligencia artificial. Si, -como muchos
creen- la mente humana opera ejecutando algoritmos, entonces la tesis de Turing indica que existen lenguajes cuya sintaxis no puede analizar
la mente humana.
Por otra parte, si la inteligencia natural se basa en un nivel más poderoso que la ejecución de algoritmos, entonces la tesis de Turing sugiere
que el desarrollo de máquinas verdaderamente inteligentes seguirá siendo por siempre sólo un sueño.
Alcance de los Lenguajes Estructurados por Frases
Teorema 3.3
Todo lenguaje aceptado por máquinas de Turing es un Lenguaje Estructurado por Frases.
Teorema 3.4:
Todo Lenguaje Estructurado por Frases es un lenguaje aceptado por máquinas de Turing.
Teorema 3.5:
Para cada alfabeto Σ existe al menos un lenguaje sobre Σ que no es un Lenguaje Estructurado por Frases
Tesis de Turing:
El poder computacional de una máquina de Turing es tan grande como el de cualquier sistema computacional posible.
Por lo que hemos visto hasta aquí la teoría presentada tiene consecuencias significativas. El único punto
débil en esta cadena es la tesis de Turing, esta conjetura de que el concepto de computación con una
máquina de Turing es tan poderoso –aunque quizás no tan conveniente- como cualquier otro modelo
computacional. En la actualidad, la gran mayoría de los científicos de la computación acepta la Tesis de
Turing, y esta aceptación proviene del hecho de que la Tesis es congruente con otros resultados y
conjeturas que han surgido al estudiar la computación desde otras perspectivas, cosa que haremos más
adelante.
3,5 Más allá de los Lenguajes
Estructurados por Frases