You are on page 1of 36

MQUINAS DE TURING

Lenguajes formales y autmatas


Proceso efectivo algoritmo
Se inicia revisando el modelo mecnico ms sencillo (los
autmatas finitos), mostrando sus limitaciones.
Se revisa los autmatas de pila y los lenguajes libres de
contexto.
Ahora, mquinas de Turing, es un autmata sin
restriccin alguna: con una cinta con capacidad de
almacenamiento infinito, con la capacidad de leer y
escribir sobre la cinta y de mover la cabeza
lectora/escritora en cualquier direccin sobre la cinta y no
slo de izquierda a derecha.
Equivalencias entre autmatas

Muchos de los procedimientos son algoritmos puesto que siempre

terminan ante cualquier entrada dada, muchos de ellos son


recursivos en el sentido que se sustentan en una definicin
constructiva: aplicando el principio de induccin, y el algoritmo tiene
una parte que corresponde al caso base y otra que corresponde al
paso inductivo sobre el cual se realizan invocaciones recursivas.
El modelo de Mquina de Turing es la formalizacin del concepto de
procedimiento efectivo y de la nocin de computabilidad.
Todo problema que pueda plantearse como un algoritmo es
computable.
Tesis de Church-Turing declara que todos los formalismos (Mquinas
de Turing, calculo- , funciones recursivas, etc.) son equivalentes.
La MT es el primer modelo considerado completamente programable
y es una extensin natural a los modelos mecnicos vistos en LFA.

No existen algoritmos para computar muchas funciones.


La clase de todos los algoritmos es enumerable (coteo).
La clase de funciones definidas en N - > {0,1} no es

numerable.
Existen funciones que no pueden ser computables, tanto
en computacin como en matemticas y otras disciplinas.

Jerarqua de Chomsky, 1956


Gramtica

Lenguaje

Modelo matemtico

Tipo 0: sin restriccin

Recursivamente
enumerable

Mquina de Turing (MT)

Tipo 1: dependiente del


contexto

Dependiente del
contexto

Autmata linealmente
limitado (ALL)

Tipo 2: independiente del


contexto

Independiente del
contexto

Autmata de pila (AP)

Tipo 3: regular

Regular

Autmata finito (AF)

Universalidad
Uno de los aspectos ms sobresalientes en los modelos de computabilidad

(Mquinas de Turing, clculo-, funciones recursivas, etc.) es la idea de


programas como datos: cada uno de tales sistemas es suficientemente
poderoso para codificar los programas como si fueran datos y manipularlos.
Simulacin universal, un programa ( mquina) universal U se construye

para recibir como entrada la codificacin de un programa mquina M y una


cadena x como argumento para M, y realizar una simulacin (interpretacin)
de M ante la entrada x.
Descubrimiento de problemas no computables: ejemplo ante una mquina

universal U, qu pasa si recibe su propio cdigo como entrada? En general,


se puede saber si cualquier programa M al ser interpretado por U se
detendr siempre ante cualquier entrada x? problemas insolubles.

La nocin de universalidad claramente condujo al

desarrollo de computadoras como las conocemos


actualmente: la versatilidad de las computadoras yace
considerablemente en la nocin de programa
almacenado (software que puede leerse y ejecutarse por
hardware).
Esto estuvo presente en el trabajo terico de Alan

Mathison Turing en 1936, por lo que se le considera como


el padre la computacin moderna.

1/21/2015

Mquina de Turing
La Mquina de Turing (MT) es el modelo de

autmata con mxima capacidad computacional.


La unidad de control puede desplazarse a la
izquierda o a la derecha y sobreescribir smbolos
en la cinta de entrada

1/21/2015

Definicin formal
Es una sptupla M=(Q,,,q0,T,B,)

es un conjunto finito de estados.

es el alfabeto de entrada.

es el alfabeto de la cinta, e incluye a .


q0 Q es el estado inicial
T
es el conjunto de estados finales
B
es el smbolo blanco

es la funcin de transicin.

1/21/2015

10

Funcin de transicin
: Q x Q x x {I, D}
Ejemplo
Sea M=(Q,,,q0,T,B,) donde ={a,b},Q={q0,q1},T={q1} y
(q0,a)=(q0,a,D)

(q0,B)=(q1,a,D)

1/21/2015

11

Descripciones Instantneas
Es una expresin de la forma

a1a2 ai-1qaian
Donde a1a2 an y q Q

Esta descripcin instantnea indica que la unidad de

control de M est en el estado q escaneando el smbolo ai

1/21/2015

12

Cmputos especiales
Durante un cmputo de la palabra de entrada, hay dos

situaciones que pueden ocurrir:


El cmputo termina porque en determinado momento no hay

transicin definida y el estado actual no es el final.


El cmputo no termina, esto se denomina bucle infinito.

1/21/2015

13

Lenguaje aceptado por una MT


Una cadena de entrada w es aceptada por una MT M si el

cmputo que inicia con la descripcin inicial q0w termina


en una descripcin instantnea w1pw2, p es un estado
final o de aceptacin, en la cul M se detiene
completamente.
Se dice que la mquina se detiene ante la entrada x si ya
sea que la acepta o rechaza. Es posible que ni la acepte
o rechace, lo cual significa que se contina ejecutndose
indefinidamente (se cicla) ante x.
Una mquina de Turing M se denomina total si se
detiene ante toda cadena de entrada, i.e., ya sea que la
acepta la rechaza.

Lenguaje
Recursivamente enumerable, si es el L(M) para alguna

mquina de Turing M.
Co-recursivamente enumerable si su complemento es
recursivamente enumerable.
Recursivo, si el L(M) para alguna mquina de Turing M
total.
Decidible si el conjunto de todas las cadenas que
cumplen con P es un conjunto recursivo, i.e., existe una
MT total M que acepta a las cadenas x en A* que
cumplen P y rechaza aquellas que no:

1/21/2015

15

Ejemplo
0

q0

(q0,0,R)

(q0,1,R)

(q1,b,L)

q1

(q2,1,R)

F={q2},
={0,1}
={0,1,b}

Ejemplo
MT que acepta palabras que terminan con a del alfabeto

{a,b}.

q0

(q1,R)

q1

(h,R,D)

(q1,b,R)

Ejemplo
MT M que realiza la suma de x+y

Ejercicio
Construye una Mquina de Turing M1 que acepta el lenguaje {anbncn |

n>=1}, donde M1 = < Q1,1, 1, 1, q0, , {q5}>, Q1 ={q0, q1, q2, q3, q4,
q5}, 1 = {a, b, c}, 1={a,b,c,x,y,z}, F={q5}

Funcionamiento:
Partiendo del estado inicial q0 marca con un x la primera a que

encuentre (de izq a der) cambiando a q1; a continuacin, examina


hacia la derecha hasta encontrar la primer b que marca con un y
(cambia a q2) y contina por la derecha hasta encontrar la primera c
que marca con una z (cambia a q3); entonces desplaza la cabeza
hacia la izq hasta encontrar la primer x, se mueve una celca a la der
y cambia a q0 dando comienzo de nuevo el ciclo. Cuando en q0 se
encuentra con una y inmediatamente despus de una x entonces
cambia a q4 y se desplaza continuamente a la derecha, verificando
que slo hay marcas y y z en la cinta. Si es as alcanza el final de la
cadena () y termina en el estado de aceptacin q5.

La cadena aabbcc es aceptada

La cadena aaabbccc
no es aceptada

Ejercicios
Construya MTs que reconozcan los siguientes lenguajes:
{wwR | w en {0+1}*}
El conjunto de las cadenas con igual nmero de 0s y 1s.
MT que decide si la entrada es de longitud par, para el alfabeto
{a,b}
MT que calcula x*y. Recibe como entrada 0m10n y termina con 0mxn
rodeada por .

MT que decide si la entrada es de longitud par

23

Mquinas de Turing Numricas


Las mquinas de Turing tienen la capacidad de ejecutar

un cierto nmero de operaciones aritmticas, incluyendo


la multiplicacin.
El problema a investigar radica en determinar cules

funciones de los nmeros naturales pueden


calculadas mediante las mquinas de Turing.

ser

1/21/2015

24

Para esto debera ser posible utilizar la notacin decimal

o binaria para escribir los nmeros en la cinta de la


mquina de Turing.
Para esto se denota al nmero n como una cadena de

n+1 ocurrencias de nmeros uno consecutivos.


El nmero cero se denota con un uno en la cinta.

25

1/21/2015

Si en la cinta de entrada se requiere ms de un nmero,

entonces cada nmero se coloca en la cinta separado de


un smbolo blanco.
Por ejemplo (1,4,2) se denota como:

11B11111B111B
A la Mquina de Turing que utilizan esta notacin para

representar nmeros naturales se le llama Mquina de


Turing Numrica

26

1/21/2015

Ejemplo: Mquina de Turing para la suma


Describe una mquina que calcula la funcin f(m,n)=m+n,
m,nN
: Q x Q x x {L, R}
Ejemplo
Sea
M=(Q,,,q0,T,B,)
donde
={B,1},Q={q0,q1,q2,q3,q4},T={q4} y
(q0,1)=(q0,1,R)

(q0,B)=(q1,1,L)

(q1,1)=(q1,1,L)

(q2,1)=(q3,B,R)

(q1,B)=(q2,B,R) (q3,1)=(q4,B,R)

Para una propiedad P para cadenas definidas sobre el alfabeto , P

puede ser:
Decidible si el conjunto de todas las cadenas que cumplen con P es
un conjunto recursivo, i.e., existe una MT total M que acepta a las
cadenas x en * que cumplen P y rechaza aquellas que no:

Semidecidible (parcialmente decidible) si el conjunto de las cadenas

que cumplen P es un conjunto recursivamente enumerable, lo cual


significa que existe una MT M que ante x dada como entrada en su
cinta la acepta si cumple con la propiedad P y la rechaza o contina
ejecutndose indefinidamente (se cicla) si x no cumple P:

Indecidible si el conjunto de las cadenas que cumplen P

no es r.e.: ninguna MT se detiene ante la entrada x lo cual


significa que no se puede saber si x tiene o no la
propiedad P.
Los adjetivos recursivo y r.e. se usan para referirse a

conjuntos mientras que decidible, indecidible y


parcialmente decidible se aplican a propiedades

Mquina de Turing Universal


Es una mquina que recibe en la cinta una descripcin de

otra MT, y el contenido de la cinta de esta MT, y produce,


como resultado de su ejecucin, el mismo resultado que
producira la MT sobre su cinta.
Recibe el nombre de universal, porque es capaz de
simular el comportamiento de cualquier Mquina de
Turing.
Se convierte, de esta forma, en un dispositivo anloga a
una computadora, capaz de realizar cualquier cmputo.

Codificacin
Dada una MT M=<Q,, , , q0, , {qf}>, la codificacin de M es una

cadena de {0,1}* formada por dos partes:


1. El encabezado consiste de la informacin de M y tiene la forma

0n10m10k10s10t10r10u10v
Lo cual significa que la mquina tiene
n estados (|Q|=n) representados por los nmeros 0 a n-1;
m smbolos del alfabeto de entrada, representados por los nmeros 0 a

m-1
k los primeros k smbolos de entrada (pertenecen a );
s estado de inicio
t estado de aceptacin
r estado de rechazo

u smbolo para marcar el fin de la cinta (opcional )


v - smbolo de fin de la cinta ()

El resto de la cadena constituye la descripcin del

programa de la mquina, dada en terminos de su funcin


de transicin. Cada transicin
(p,a)=(q,b,D)
Se codifica por la cadena

0p10a10q10b10m
Donde m=1 si D=L y m=2 si D=R.
Denotamos la codificacin de (p,a) por y la codificacin

de M por
y la codificacin de M por
La codificacin de la MT es:

Una vez que disponemos de una codificacin adecuada,

podemos construir una Mquina de Turing Universal U tal


que
Los alfabetos de U son ={0,1} y = {#, } (# funciona

como delimitador).

Ejemplo
Considera la siguiente MT

11100010001001010010001110100100010100

1100010101001001100010010010100
110001000100010010111#1011

Problemas
El lenguaje universal L(U) se encuentra relacionado con

los siguientes problemas:


El problema de detencin (Halt problem)
Lo cual significa, si cualquier MT arbitraria M se detiene ante una

entrada x arbitraria.

El problema de membresa:
Significa si dada una MT arbitraria M y una cadena arbitraria x, x

pertenece al lenguaje de M.

Teorema. Un lenguaje es aceptado por alguna mquina

de Turing si y slo si el lenguaje es r.e.


Prueba. Sea L el lenguaje aceptado por una MT M con
alfabeto A. Sea g(x) una funcin unaria en A* que M
computa. Entonces g es una funcin parcialmente
computable. Es decir,
(1)
L es r.e.
Inversamente, sea L r.e. Entonces existe una funcin
parcialmente computable g(x) tal que (1) se cumple. Sea
M una MT con alfabeto A que computa g(x) estrictamente.
Entonces M acepta L.

Ejercicio
MT que compute a la funcin recursiva total x*y. Recibe

como entrada 0m10n1 y termina con 0m*n rodeada por .

You might also like