Professional Documents
Culture Documents
Mquinas de Turing
Gabriel Navarro
Modelos de Computacin
Grado en Ingeniera Informtica
Gabriel Navarro
Introduccin
Gabriel Navarro
Mquinas de Turing
Mquinas de Turing
Ms generales que AF y AP
Reconocen los lenguajes recursivamente enumerables
No se inventaron con el mismo proposito que los AF y AP
Se buscaban los lmites de clculo
Gabriel Navarro
Mquinas de Turing
Las mquinas de Turing se pueden representar de forma intuitiva
como un dispositivo mecnico, formado por:
una cinta infinita, dividida en celdas
un cabezal de lectura-escritura que se mueve sobre dicha
cinta tanto a derecha como a izquierda
Gabriel Navarro
Mquinas de Turing
Cinta
La cinta de entrada es una secuencia infinita de celdas. En cada
celda de la cinta solo se puede almacenar un smbolo. Las celdas
que no estn ocupadas, estn vacas, las vamos a denotar por el
carcter # (smbolo en blanco).
Gabriel Navarro
Mquinas de Turing
Cabeza
La MT posee una cabeza que puede emplearse para leer y escribir
smbolos en la cinta de la mquina. As, puede rastrear los datos de
la cinta y modificar las celdas que desee sin alterar las dems. Por
eso, una mquina de Turing puede estar en movimiento
indefinidamente.
Acciones
Las acciones especficas son operaciones de escritura y de
movimiento
La operacin de escritura consiste en reemplazar un smbolo en
la cinta con otro smbolo y luego cambiar de estado
La operacin de movimiento comprende mover la cabeza una
celda a la derecha o a la izquierda y luego pasar a un nuevo
estado. Dependera del smbolo de la celda y del estado actual
Gabriel Navarro
Mquinas de Turing
Gabriel Navarro
Ejemplo
Sea (, , #, Q, q0 , f , F ) la mquina de Turing
= {a, b}
= {a, b, #}
Q = {q0 , q1 }
F = {q1 }
f
a
b
#
q0 (q0 , a, D) (q0 , a, D) (q1 , #, I )
q1
Gabriel Navarro
Ejemplo
Partimos de una configuracin inicial y representamos mediante
unos grficos las distintas etapas del proceso de lectura de la MT
Gabriel Navarro
Configuracin instantnea
Configuracin instantnea
Una configuracin instantnea viene determinada por el
estado actual, el contenido de la cinta y la posicin de la
cabeza sobre la cinta.
Una forma sencilla de notarla viene dada por una cadena del
tipo:
a1 a2 ak qi ak+1 an
La cabeza de la mquina se coloca sobre la celda que contiene
ak+1 y el estado actual es qi .
Para el ejemplo anterior, los pasos de clculo seran:
q0 abba aq0 bba aaq0 ba aaaq0 a aaaaq0 # aaaq1 a
Gabriel Navarro
Computacion
Gabriel Navarro
Lenguaje aceptado
Aceptacin de lenguajes
Una mquina de Turing se puede comportar como un aceptador de
un lenguaje, de la misma forma que lo hacan los AF y los AP. Para
evaluar una cadena:
Registramos la cadena en la cinta de la mquina
Colocamos la cabeza de la mquina en la celda del extremo
izquierdo
Ponemos en marcha la mquina a partir de su estado inicial
Gabriel Navarro
Lenguaje aceptado
Aceptacin de lenguajes
La decisin de si una cadena es reconocida por una mquina de
Turing depende de si:
F = . Decimos que la mquina acepta la cadena por
estado de aceptacin, si despus de una secuencia de
movimientos, la mquina de Turing llega a un estado de
parada (y por tanto, se para).
F = . Diremos que la mquina acepta una cadena por
parada si es capaz de parar. Es decir, si una cadena no es
reconocida, la mquina entra en un bucle infinito y no para
nunca.
A diferencia de los AF y AP, una MT no necesita leer toda la
cadena para decidir si pertenece o no a un lenguaje
Gabriel Navarro
Lenguaje aceptado
Lenguaje aceptado
La coleccin de cadenas aceptadas por una mquina de Turing M
se llama lenguaje aceptado por la mquina de Turing (M).
Gabriel Navarro
Ejemplos
Gabriel Navarro
Ejemplos
Gabriel Navarro
Ejemplos
Gabriel Navarro
f (q1 , a) = (q1 , a, D)
f (q1 , b) = (q2 , B, I )
f (q2 , a) = (q2 , a, I )
f (q3 , B) = (q3 , B, D)
Ejemplos
Gabriel Navarro
f (q1 , a) = (q1 , a, D)
f (q1 , b) = (q2 , B, I )
f (q2 , a) = (q2 , a, I )
f (q3 , B) = (q3 , B, D)
Ejemplos
a
(qa , X , D)
(qa , a, D)
(qc , a, I )
(qb , Y , D)
(qb , b, D)
(qc , b, I )
(qc , Z , I )
(q0 , X , D)
Y
(qY , Y , D)
(qa , Y , D)
(qc , Y , I )
(qY , Y , D)
f (qZ , #) = (qf , #, R)
Gabriel Navarro
(qb , Z , D)
(qc , Z , I )
(qZ , Z , D)
(qZ , Z , D)
Ejemplos
a
(qa , X , D)
(qa , a, D)
(qc , a, I )
(qb , Y , D)
(qb , b, D)
(qc , b, I )
(qc , Z , I )
(q0 , X , D)
Y
(qY , Y , D)
(qa , Y , D)
(qc , Y , I )
(qY , Y , D)
f (qZ , #) = (qf , #, R)
Gabriel Navarro
(qb , Z , D)
(qc , Z , I )
(qZ , Z , D)
(qZ , Z , D)
Reg
Gabriel Navarro
LIC
LRE
Reg
Gabriel Navarro
LIC
LR
LRE
Gramticas y MT
Teorema
Para toda gramtica de tipo 0, existe una mquina de Turing que
reconoce el lenguaje generado por dicha gramtica
Teorema
Para toda mquina de Turing, existe una gramtica de tipo 0 que
genera un lenguaje igual al reconocido por la mquina de Turing
Gabriel Navarro
Gabriel Navarro
Reg
Gabriel Navarro
LIC
LDC
LR
LRE
Jerarqua de Chomsky
Lenguaje
Regular
Libre de Contexto
Dependiente del Contexto
Recursivo
Recursivamente enumerable
Gramtica
Tipo 3
Tipo 2
Tipo 1
Tipo 0
Gabriel Navarro
Mquina Terica
Autmata Finito
Autmata con pila
Autmata lineal acotado
Mquina de Turing que para
Mquina de Turing
Variaciones de una MT
Gabriel Navarro
Por qu MT?
Lmites de clculo
Es un mdelo para establecer qu es posible calcular y qu no. Es
un modelo de computacin
Problemas de decisin
Es un problema que ante cualesquiera datos de entrada la respuesta
es s o no
No es muy restrictivo
Todos los problemas se pueden escribir como un problema de
decisin
Gabriel Navarro
Por qu MT?
Lmites de clculo
Es un mdelo para establecer qu es posible calcular y qu no. Es
un modelo de computacin
Problemas de decisin
Es un problema que ante cualesquiera datos de entrada la respuesta
es s o no
No es muy restrictivo
Todos los problemas se pueden escribir como un problema de
decisin
Gabriel Navarro
Por qu MT?
Lmites de clculo
Es un mdelo para establecer qu es posible calcular y qu no. Es
un modelo de computacin
Ejemplo
Conjetura de Goldbach: Todo nmero par mayor que 2 puede
escribirse como suma de dos nmeros primos
bool Goldbach (int n){
for (int i=2;i<=n;i++)
for (int j=2;j<=n;j++)
if (PRIMO(i) && PRIMO(j) && i+j==n)
return true;
return false;
}
Gabriel Navarro
Por qu MT?
Lmites de clculo
Es un mdelo para establecer qu es posible calcular y qu no. Es
un modelo de computacin
Problemas de decisin
En general, un problema de decisin cualquiera se puede representar
por un lenguaje
Turing-computable
Un problema ser Turing-computable si su lenguaje es aceptado
una MT. Esto es, si es recursivamente enumerable
Gabriel Navarro
Por qu MT?
Gabriel Navarro
Por qu MT?
Algoritmo
Una MT que siempre para es una forma de definir la nocin de
algoritmo
Problemas decidibles
Un problema que es resuelto por una mquina de Turing que
siempre para se llama decidible
es decir, su lenguaje asociado es recursivo
es decir, existe un algoritmo que lo resuelve
Gabriel Navarro
Por qu MT?
Algoritmo
Una MT que siempre para es una forma de definir la nocin de
algoritmo
Problemas indecidibles
Un problema para el que NO existe una mquina de Turing que pare
se llama indecidible. Es decir, su lenguaje asociado NO es recursivo
Gabriel Navarro
Por qu MT?
Algoritmo
Una MT que siempre para es una forma de definir la nocin de
algoritmo
Es decir
Problemas
decidibles (recursivos)
indecidibles
Gabriel Navarro
Gabriel Navarro
Gabriel Navarro
Gabriel Navarro
4
0
1
0
..
.
..
.
Gabriel Navarro
Gabriel Navarro
Pregunta
Existen lenguajes recursivamente enumerables que no son
recursivos? Esto es, existen problemas para los que no hay un
algoritmo que los resuelva pero que son Turing-computables?
Problema de la parada
Sea M una mquina de Turing y una cadena w , para M con
entrada w ?
Gabriel Navarro
Gabriel Navarro
Problemas indecidibles
Gabriel Navarro
Problemas indecidibles
Gabriel Navarro
Gabriel Navarro
Gabriel Navarro
La clase
Un problema decidible est en la clase si es resuelto por un MT
determinista en tiempo polinomial
La clase
Un problema decidible est en la clase si es resuelto por un
MT no determinista en tiempo polinomial
Gabriel Navarro
Es obvio que
Problema del milenio (1000000 $, Clay Mathematics Institute)
= ?
Gabriel Navarro