Máquinas de Turing

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 9

Instituto Tecnológico Superior de Irapuato.

Investigación. Máquina de Turing.

Nombre: Kevin Piedracruz Carpintero.

Docente: Nelly Beatriz Santoyo Rivera

Materia: Lenguajes autómatas.

Grupo: A.

Carrera: Ing. Sistemas Computacionales.

Fecha de entrega: Viernes 20 de marzo del 2019.


Historia de la máquina de Turing
A finales del siglo XX, el matemático D. Hilbert se preguntó si era posible encontrar
un algoritmo para determinar la verdad o falsedad de cualquier proposición
matemática. En particular, se preguntó si existía una forma de determinar si
cualquier fórmula del cálculo de predicados de primer orden, aplicada a enteros, era
verdadera.
Dado que el cálculo de predicados de primer orden sobre los enteros es
suficientemente potente para expresar proposiciones como “esta gramática es
ambigua” o “este programa imprime hola, mundo”, si Hilbert hubiera tenido éxito,
existirían algoritmos para estos problemas que ahora sabemos que no existen.
Sin embargo, en 1931, K. Gödel publicó su famoso teorema de la incompletitud.
Construyó una fórmula para el cálculo de predicados aplicada a los enteros, que
afirmaba que la propia fórmula no podía ser ni demostrada ni refutada dentro del
cálculo de predicados.
El cálculo de predicados no era la única idea que los matemáticos tenían para
“cualquier computación posible”. De hecho, el cálculo de predicados, al ser
declarativo más que computacional, entraba en competencia con una variedad de
notaciones, incluyendo las “funciones recursivas parciales”, una notación similar a
un lenguaje de programación, y otras notaciones similares. En 1936, A. M. Turing
propuso la máquina de Turing como modelo de “cualquier posible computación”.
Este modelo es como una computadora, en lugar de como un programa, incluso
aunque las verdaderas computadoras electrónicas o incluso electromecánicas
aparecieron varios años después (y el propio Turing participó en la construcción de
estas máquinas durante la Segunda Guerra Mundial).
Lo interesante es que todas las propuestas serias de modelos de computación
tienen el mismo potencial; es decir, calculan las mismas funciones o reconocen los
mismos lenguajes. La suposición no demostrada de que cualquier forma general de
computación no permite calcular sólo las funciones recursivas parciales (o, lo que
es lo mismo, que las máquinas de Turing o las computadoras actuales pueden
calcular) se conoce como hipótesis de Church (por el experto en lógica A. Church)
o tesis de Church.
Una máquina puede hacer el trabajo de cincuenta hombres ordinarios. Ninguna
máquina puede hacer el trabajo de un hombre extraordinario.
-Elbert Hubbard.
Las máquinas son adoradas porque son hermosas, y valoradas porque confieren
poder; Son odiados porque imponen la esclavitud.
-Bertrand Russell.
Los límites de mi lenguaje son los límites de mi mundo.
-Ludwig Wittgenstein.
Máquina de Turing
Básicamente, este dispositivo es un autómata finito que dispone de una única cinta
de longitud infinita en la que se pueden leer y escribir datos. Una ventaja de la
máquina de Turing sobre los programas como representación de lo que se puede
calcular es que la máquina de Turing es lo suficientemente simple como para que
podamos representar su configuración de manera precisa, utilizando una notación
sencilla muy similar a las descripciones instantáneas de un autómata a pila.

Notación para la máquina de Turing


Podemos visualizar una máquina de Turing como se muestra en la Figura 1. La
máquina consta de una unidad de control, que puede encontrarse en cualquiera de
un conjunto finito de estados. Hay una cinta dividida en cuadrados o casillas y cada
casilla puede contener un símbolo de entre un número finito de símbolos.

Figura 1. Una máquina de Turing.

Inicialmente, la entrada, que es una cadena de símbolos de longitud finita elegidos


del alfabeto de entrada, se coloca en la cinta. Las restantes casillas de la cinta, que
se extiende infinitamente hacia la izquierda y la derecha, inicialmente almacenan un
símbolo especial denominado espacio en blanco. El espacio en blanco es un
símbolo de cinta, pero no un símbolo de entrada, y pueden existir también otros
símbolos de cinta además de los símbolos de entrada y del espacio en blanco.
Existe una cabeza de la cinta que siempre está situada en una de las casillas de la
cinta. Se dice que la máquina de Turing señala dicha casilla. Inicialmente, la cabeza
de la cinta está en la casilla más a la izquierda que contiene la entrada.
Un movimiento de la máquina de Turing es una función del estado de la unidad de
control y el símbolo de cinta al que señala la cabeza. En un movimiento, la máquina
de Turing:
1. Cambiará de estado. El siguiente estado puede ser opcionalmente el mismo
que el estado actual.
2. Escribirá un símbolo de cinta en la casilla que señala la cabeza. Este símbolo
de cinta reemplaza a cualquier símbolo que estuviera anteriormente en dicha
casilla. Opcionalmente, el símbolo escrito puede ser el mismo que el que ya
se encontraba allí.
3. Moverá la cabeza de la cinta hacia la izquierda o hacia la derecha. En nuestro
formalismo, exigiremos que haya un movimiento y no permitiremos que la
cabeza quede estacionaria. Esta restricción no limita lo que una máquina de
Turing puede calcular, ya que cualquier secuencia de movimientos con una
cabeza estacionaria podría condensarse, junto con el siguiente movimiento
de la cabeza de la cinta, en un único cambio de estado, un nuevo símbolo de
cinta y un movimiento hacia la izquierda o hacia la derecha.
La notación formal que vamos a emplear para una máquina de Turing (MT) es
similar a la que hemos empleado para los autómatas finitos o los autómatas a pila.
Describimos un MT mediante la siguiente séptupla:
M = (Q, Σ, Γ, δ, q0, B, F)
cuyos componentes tienen el siguiente significado:
 Q El conjunto finito de estados de la unidad de control.
 Σ El conjunto finito de símbolos de entrada.
 Γ El conjunto completo de símbolos de cinta; Σ siempre es un subconjunto
de Γ.
 δ La función de transición. Los argumentos de δ(q,X) son un estado q y un
símbolo de cinta X. El valor de δ(q,X), si está definido, es (p,Y,D), donde:
1. p es el siguiente estado de Q.
2. Y es el símbolo de Γ, que se escribe en la casilla que señala la cabeza y
que sustituye a cualquier símbolo que se encontrara en ella.
3. D es una dirección y puede ser L o R, lo que nos indica la dirección en
que la cabeza se mueve, “izquierda” (L) o “derecha” (R), respectivamente.
 q0 El estado inicial, un elemento de Q, en el que inicialmente se encuentra
la unidad de control.
 B El símbolo espacio en blanco. Este símbolo pertenece a Γ pero no a Σ; es
decir, no es un símbolo de entrada. El espacio en blanco aparece inicialmente
en todas las casillas excepto en aquéllas que se almacenan los símbolos de
la entrada.
 F El conjunto de los estados finales o de aceptación, un subconjunto de Q.
EJEMPLO
Aquí hay un TM con entrada 001:

Figura 2. Ejemplo.

Asumimos una cinta infinita de dos vías: se extiende hasta el infinito en ambas
direcciones. Sin embargo, solo una parte finita de la cinta no está en blanco en
ningún punto.
El programa de una TM es una función de transición; Según el símbolo debajo de
la cabeza y el estado, la máquina realiza las siguientes acciones:
1. Escribe un símbolo.
2. Se mueve hacia la izquierda o hacia la derecha o permanece en su lugar.
3. Actualiza su estado.
El programa se representa como un diagrama como el de un AF, excepto que cada
flecha está etiquetada no con un solo símbolo sino con un triple:
Viejo símbolo nuevo símbolo mover dirección
donde "mover dirección" es uno de L, lo que significa mover una celda a la izquierda;
R, que significa mover una celda a la derecha; y S, que significa no mover la cabeza
(izquierda / derecha / permanecer). Por ejemplo, el triple 01L significa "si está
leyendo un 0, luego escriba 1 y mueva la cabeza hacia la izquierda".
El lenguaje de una TM es el conjunto de todas las cadenas de manera que la TM,
cuando comienza con la cadena en su cinta, eventualmente ingresa al estado ha.
Si M es el TM, usamos L (M) para indicar su lenguaje. También decimos que la TM
es un reconocedor de su lenguaje.
EJEMPLO 2
En el siguiente ejemplo podemos observar como a partir de un AF obtener nuestra
Máquina de Turing.

Figura 3. TM para {0"1"} y su acción en 00111.


Convenios de notación para las máquinas de Turing
Los símbolos que normalmente se emplean para las máquinas de Turing son
parecidos a los que se usan en otros tipos de autómatas que han estudiado las
unidades pasadas en la materia de lenguajes autómatas.
1. Las letras minúsculas del principio del alfabeto se emplean para los símbolos
de entrada.
2. Las letras mayúsculas, normalmente las próximas al final del alfabeto, se
emplean para los símbolos de cinta que pueden o no ser símbolos de
entrada. Sin embargo, B suele utilizarse para designar el espacio en blanco.
3. Las letras minúsculas del final del alfabeto se emplean para designar
cadenas de símbolos de entrada.
4. Las letras griegas se utilizan para las cadenas de símbolos de cinta.
5. Letras como q, p, y próximas a éstas se utilizan para los estados.
Máquina de Turing de varias cintas
En la Figura 3 se muestra una máquina de Turing de varias cintas. El dispositivo
tiene una unidad de control (estado) y un número finito de cintas. Cada cinta está
dividida en casillas, y cada casilla puede contener cualquier símbolo del alfabeto de
cinta finito. Al igual que en la MT de una sola cinta, el conjunto de símbolos de la
cinta incluye el espacio en blanco y también dispone de un subconjunto de símbolos
de entrada, al que no pertenece el espacio en blanco. El conjunto de estados incluye
un estado inicial y varios estados de aceptación. Inicialmente:
1. La entrada, una secuencia finita de símbolos de entrada, se coloca en la
primera cinta.
2. Todas las casillas de las demás cintas contienen espacios en blanco.
3. La unidad de control se encuentra en el estado inicial.
4. La cabeza de la primera cinta apunta al extremo izquierdo de la entrada.
5. Las cabezas de las restantes cintas apuntan a una casilla arbitraria. Puesto
que las cintas distintas de la primera están completamente en blanco, no es
importante dónde se sitúe inicialmente la cabeza; todas las casillas de estas
cintas “parecen” idénticas.
Un movimiento de la MT de varias cintas depende del estado y del símbolo señalado
por las cabezas de cada una de las cintas. En un movimiento, esta MT hace lo
siguiente:
1. La unidad de control entra en un nuevo estado, que podría ser el mismo que
en el que se encontraba anteriormente.
2. En cada cinta, se escribe un nuevo símbolo de cinta en la casilla señalada
por la cabeza. Estos símbolos pueden ser los mismos que estaban escritos
anteriormente.
Figura 4. Máquina de Turing de varias cintas.

3. Cada una de las cabezas de las cintas realizan un movimiento, que puede
ser hacia la izquierda, hacia la derecha o estacionario. Las cabezas se
mueven de manera independiente, por lo que pueden moverse en
direcciones diferentes y alguna puede no moverse en absoluto.
Máquinas de Turing no deterministas
Una máquina de Turing no determinista (MTN) se diferencia de la máquina
determinista que hemos estudiado hasta el momento en que tiene una función de
transición δ tal que para el estado q y símbolo de cinta X, δ(q,X) es un conjunto de
tuplas:
{(q1,Y1,D1), (q2,Y2,D2),...,(qk,Yk,Dk)}
donde k es cualquier número entero finito. La MTN puede elegir, en cada paso, cuál
de las tuplas será el siguiente movimiento. Sin embargo, no puede elegir un estado
de una, un símbolo de cinta de otra y una dirección de una tercera.
El lenguaje aceptado por una MTN M se define, como era de esperar, de forma
análoga a otros dispositivos no deterministas, tales como los AFN y los autómatas
a pila que ya hemos estudiado. Es decir, M acepta una entrada w si existe cualquier
secuencia de movimientos que lleva desde la configuración inicial con w como
entrada hasta una configuración con un estado de aceptación. La existencia de otras
opciones de movimientos que no lleven a un estado de aceptación es irrelevante, al
igual que en el caso de los AFN y los autómatas a pila.
Las MTN no aceptan ningún lenguaje que no sea aceptado por una MT determinista
(o MTD si necesitamos resaltar que se trata de una máquina determinista). La
demostración implica demostrar que para toda MTN MN, podemos construir una
MTD MD que explore las configuraciones a las que MN puede llegar mediante
cualquier secuencia posible de movimientos. Si MD encuentra una secuencia que
tiene un estado de aceptación, entonces MD entra en uno de sus propios estados
de aceptación. MD tiene que ser sistemática, colocando las nuevas configuraciones
en una cola, en lugar de en una pila, de modo que después de cierto tiempo finito,
MD habrá simulado todas las secuencias que consten como mucho de k
movimientos de MN, para k = 1,2…

REFERENCIAS BIBLIOGRAFICAS
 Goddard, Wayne. (2008). Theory of Computation. Turing Machines. 1st ed.
Canadá: Jones and Bartlett Publishers.
 Hopcroft, John E. y Ullman, Jeffrey D. (1996). Introducción a la teoría de
autómatas, lenguajes y computación. Máquinas de Turing. Segunda Edición.
México: Compañía editorial continental, S.A. de C.V.

También podría gustarte