9. Máquinas de Turing
9. Máquinas de Turing
9. Máquinas de Turing
9. Máquinas de Turing.
Introducción.
Una Máquina de Turing consta de una unidad de control que puede encontrarse en un estado
cualquiera de un conjunto finito de estados.
Tiene una cinta dividida en cuadrados o casillas y cada casilla puede contener un símbolo de
entre un conjunto finito de símbolos.
Inicialmente, la entrada, que es una cadena de símbolos de longitud finita que pertenecen a
un alfabeto de entrada, se colocan en la cinta. Las restantes casillas de la cinta (que se
extiende infinitamente hacia la izquierda y hacia la derecha) almacenan un símbolo
denominado espacio en blanco.
El espacio en blanco es un símbolo de cinta, pero no un símbolo de entrada.
Existe una cabeza de cinta que a modo de cursor está situado en una de las casillas de la
cinta. Se dice que la Máquina de Turing apunta a 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 depende del estado de la unidad de control y del
símbolo de cinta al que señala la cabeza.
En un movimiento, la Máquina de Turing:
1. Cambia de estado. El siguiente estado podría ser el mismo que el estado actual.
2. Escribe un símbolo de cinta en la casilla que señala la cabeza, reemplazando el que
estuviera anteriormente. Opcionalmente, podría ser el mismo que ya se encontraba
allí.
3. Mueve la cabeza de la cinta hacia la izquierda o hacia la derecha.
Definición General.
Es una Tupla 𝑀𝑇 =< 𝑄, Σ, Γ, 𝛿, 𝑞0 , 𝐵, 𝐹 > donde:
– Q , conjunto finito de estados
– , alfabeto de entrada (Σ ⊆ Γ)
- Γ, alfabeto de la cinta
– , función de transición 𝛿: 𝑄 × Γ → 𝑄 × Γ × {𝐼, 𝐷}
– qo Q , estado inicial
- B es un símbolo que representa el espacio en blanco. (𝐵 ∈ Γ, 𝐵 ∉ Σ)
– F Q , conjunto de estados finales o de aceptación.
1
Autómatas, Teoría de Lenguajes y Compiladores
Lic. Ana María Arias Roig
Función de transición
La función de transición se define 𝛿: 𝑄 × Γ → 𝑄 × Γ × {𝐼, 𝐷}
𝛿(𝑞, 𝑋) = (𝑝, 𝑌, 𝑆𝑒𝑛𝑡𝑖𝑑𝑜)
Los argumentos de son un estado 𝑞 y un símbolo de cinta 𝑋.
El resultado, si está definido, tiene:
- 𝑝 es el estado al que pasa la máquina.
- 𝑌 es el símbolo de Γ, que se escribe en la cinta.
- 𝑆𝑒𝑛𝑡𝑖𝑑𝑜 es un sentido en el que la cinta se mueve: izquierda (I) o derecha (D).
Es decir: a cada par (estado, símbolo de la cinta) le corresponde uno y sólo un estado, se
escribe un símbolo en la cinta, y el cabezal se mueve en uno de dos sentidos: a izquierda (I) o
a derecha (D).
La función puede estar indefinida para algunos argumentos.
Configuración instantánea
La configuración instantánea es una descripción de la Máquina de Turing en un momento
dado.
Se denota con 𝛼1 𝑞𝛼2 , donde q es el estado actual de la máquina de Turing y 𝛼1 ∈ Γ ∗ y 𝛼2 ∈ Γ ∗
𝛼1 es el contenido de la cinta a la izquierda del cursor (sin incluir la celda sobre el cursor)
𝛼2 es el contenido de la cinta a la derecha del cursor (incluyendo la celda sobre el cursor)
Secuencia de configuraciones:
El símbolo ↦𝑀 o directamente ↦ indica el movimiento válido entre dos configuraciones.
Movimiento a izquierda
Suponiendo que 𝛿(𝑞, 𝑋𝑖 ) = (𝑝, 𝑌, 𝐼):
𝑋1 𝑋2 … 𝑋𝑖−1 𝒒𝑋𝑖 𝑋𝑖+1 … 𝑋𝑛 ↦𝑀 𝑋1 𝑋2 … 𝑋𝑖−2 𝒑𝑋𝑖−1 𝒀𝑋𝑖+1 … 𝑋𝑛
La cabeza ahora apunta a la casilla 𝑖 − 1
Excepciones:
2
Autómatas, Teoría de Lenguajes y Compiladores
Lic. Ana María Arias Roig
3
Autómatas, Teoría de Lenguajes y Compiladores
Lic. Ana María Arias Roig
Al conjunto de lenguajes aceptados por una Máquina de Turing se los denomina lenguajes
recusivamente enumerables.
L es reconocido por una MT con cinta infinita en ambas direcciones si y sólo si es reconocido
por una MT con cinta infinita en una sola dirección.
Inicialmente:
1. La 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.
4
Autómatas, Teoría de Lenguajes y Compiladores
Lic. Ana María Arias Roig
Luego, un movimiento de la MT depende del estado y del símbolo señalado por las cabezas de
cada una de las cintas. Entonces, la máquina:
1. Cambia de estado (que puede volver a ser el mismo).
2. Escribir un nuevo símbolo en cada celda de cada cinta (o el mismo símbolo).
3. Mover la cabeza de las cintas a derecha o izquierda o no moverse (cada cinta en
forma independiente)
Es decir que la función de transición se define 𝛿: 𝑄 × Γ k → 𝑄 × (Γ × {𝐼, 𝐷, 𝑆})𝑘 siendo k el
número de cintas y S el movimiento “estacionario”.
L es reconocido por una MT con varias cintas si y sólo si es reconocido por una MT con una
sola cinta.
– , alfabeto de entrada (Σ ⊆ Γ). Contiene dos símbolos especiales: # y $ que son los
marcadores de izquierda y derecha respectivamente. Estos símbolos están inicialmente en los
extremos de la entrada y su función es evitar que la cabeza de cinta abandone la zona donde
aparece la entrada.
- Γ, alfabeto de la cinta
– , función de transición 𝛿: 𝑄 × Γ → 𝑄 × Γ × {𝐼, 𝐷}
– qo Q , estado inicial
- B es un símbolo que representa el espacio en blanco. (𝐵 ∈ Γ, 𝐵 ∉ Σ)
– F Q , conjunto de estados finales o de aceptación.
5
Autómatas, Teoría de Lenguajes y Compiladores
Lic. Ana María Arias Roig
Si 𝑓(𝑖1 , 𝑖2 , … , 𝑖𝑘 ) está definida para toda tupla (𝑖1 , 𝑖2 , … 𝑖𝑘 ) entonces se dice que f es una
función recursiva total.
Una función 𝑓(𝑖1 , 𝑖2 , … 𝑖𝑘 )computada por una máquina de Turing es llamada una función
recursiva parcial.
Todas las funciones aritméticas comunes en enteros, tales como la multiplicación, 𝑛!, 2𝑛 , son
funciones recursivas totales.
La MTU:
- Copia la cadena de entrada de la cinta 1 a la cinta 2.
- Graba el código del estado inicial en la cinta 3.
- Busca una transición aplicable en la máquina codificada de la cinta 1. Cuando la
encuentra:
o Realiza la transición en la cinta 2.
o Escribe el nuevo estado en la cinta 3.
- Continua el proceso hasta que se llega al estado de parada de la máquina simulada.
Entonces, copia la cinta 2 en la cinta 1, coloca la cabeza de la cinta 1 donde se
encontraba la de la cinta 2, y se detiene.
6
Autómatas, Teoría de Lenguajes y Compiladores
Lic. Ana María Arias Roig
Hipótesis de Church-Turing
A finales del siglo XIX, el matemático David Hilbert se preguntó si era posible encontrar un
algoritmo, compuesto por una cantidad finita de pasos, que permita determinar la verdad o
falsedad de cualquier proposición matemática.
En 1931, Kurt Göedel publicó su teorema de la incompletitud, mediante el cual probaba que
todo sistema axiomático es incompleto y que existen sentencias cuya verdad o falsedad no se
pueden probar. Para demostrarlas era necesario ampliar la base axiomática, pero entonces
nuevas sentencias aparecerían que no podrían ser probadas.
En 1936, Alan Turing, en el artículo On Computable Numbers, construyó un modelo formal de
computador, que es el que conocemos como la Máquina de Turing, primer modelo teórico de
lo que luego sería un computador programable.
La hipótesis de Church o Tesis de Church-Turing sostiene que una función es computable si
y sólo si puede ser computada en una máquina de Turing.
La hipótesis básica de la teoría de algoritmos es que cualquier algoritmo puede ser
presentado por medio de un esquema funcional de Turing y realizado en la correspondiente
máquina de Turing.
La Tesis de Church – Turing no ha podido ser demostrada todavía, pero se asume que lo es,
ya que con otros formalismos como el cálculo - 𝜆 , sistemas de Post y funciones recursivas
generales se ha demostrado que definen la misma clase de funciones que las máquinas de
Turing, es decir, todos definen las funciones recursivas parciales.
Uno de esos formalismos es el RAM (Random Access Machine), que consiste en un número
infinito de palabras de memoria, numeradas desde 0, cada una de la cuales puede almacenar
un número entero, y un número finito de registros aritméticos capaces de almacenar números
enteros. Los enteros pueden ser decodificados como instrucciones en la forma usual de los
computadores. Si se elige un conjunto adecuado de instrucciones, la RAM puede simular
cualquier computador existente.
Se puede demostrar que una MT puede simular una RAM, siempre que las instrucciones de la
RAM puedan ser simuladas por una MT.
Tipos de Problemas
Problemas Decidibles
Son aquellos que pueden resolverse mediante una Máquina de Turing.
Problema de la parada es indecidible: Existen máquinas de Turing para las que no es posible
decidir si se van a detener ante una cadena de entrada.
7
Autómatas, Teoría de Lenguajes y Compiladores
Lic. Ana María Arias Roig
Problemas Tratables
Son aquellos para los que existe al menos un algortimo capaz de resolverlo en un tiempo
razonable.
Problemas
Decidibles Indecidibles
Tratables Intratables