Teora de la computacin
Jos A. Rodrguez Melquiades
Clase TeoComp 14
Teora de computabilidad
Introduccin
Existe un algoritmo que soluciona cierto problema?
Cmo demostrar la existencia o no existencia de tal algoritmo?
Demostrar la existencia de los algoritmos, es estudiar la decidibilidad,
es decir el estudio de los problemas codificados o expresados como
lenguajes.
Por lo tanto, la MT se usa para la representacin formal de la nocin de
algoritmo.
Probar la existencia o no existencia de un algoritmo, que soluciona
cierto problema, equivale a demostrar la existencia o no existencia de
una MT.
(the intuitive notion of) Algorithm = Turing machine
Decidibilidad
Estudiamos el poder de los algoritmos para solucionar problemas, es
nuestro inters.
Conocer que ciertos problemas no pueden ser solucionados
algortmicamente; y otros si pueden, es nuestro inters.
Por lo tanto, nuestro objetivo es explorar los limites de las soluciones
algortmicas.
Un problema de decisin consiste de un conjunto de preguntas, cuyas
respuestas son SI o NO. Es decir, es una pregunta que hace referencia
a un conjunto finito de parmetros, y que, para valores especficos de
los parmetros, tiene como respuesta SI o NO.
La solucin de un problema de decisin es un procedimiento efectivo
que determina la respuesta para cada pregunta en el conjunto.
Problema de decisin
Ejemplos:
1) Determinar si el nmero 123654789017 es primo.
2) Determinar si existe un ciclo en un grafo.
3) Determinar si una palabra w es generada por una gramtica.
Un problema de decisin es indecidible, si no existe algoritmo que
solucione el problema.
La capacidad de la MT para dar respuestas positivas o negativas lo
hacen un sistema matemtico apropiado para construir soluciones para
los problemas de decisin.
Por lo tanto:
se desea determinar si un lenguaje, que representa un problema de
decisin, es:
(A) Recursivo: Es decir, si la respuesta es un:
1. SI: Existe un algoritmo (mejor caso).
2. NO: Investigar si el lenguaje es recursivamente enumerable.
(B) Recursivamente enumerable: Es decir, si la respuesta es un:
1. SI: Es posible determinar las instancias afirmativas del problema,
pero por lo menos habr una entrada que producir una
respuesta.
2. NO: Habr por lo menos una entrada que nunca producir
respuesta (peor caso).
Ejemplo:
Problema P:
Problema equivalente P:
Determinar si un nmero binario es par.
Agrupar los nmeros binarios que son pares (respuesta SI) y
formar un lenguaje L con tales nmeros, es decir.
L = {0, 10, 100, 110, 1000, 1010, 1100, 1110, . . .}
Observamos que se desea determinar o disear una MT M que
reconozca al lenguaje L.
Si tal MT existe, entonces se tiene la existencia de un algoritmo
que soluciona a P. Por ello se dice que M decide a P .
Tesis de Church Turing
Alonzo Church (1903-1995) Alan Turing (1912-1954)
Una MT puede ser diseada para solucionar cualquier problema de
decisin que es solucionable por cualquier procedimiento efectivo. En
consecuencia, un problema no es solucionable si no existe una MT.
1. Los problemas de decisin que forman lenguajes recursivamente
enumerables y recursivos son aceptados por MTs.
2. Los problemas de decision que forman lenguajes no recursivamente
enumerables no son aceptados por ninguna MT.
Por lo tanto:
Problema solucionable Lenguaje recursivo
Problema no solucionable Lenguaje no recursivo
Lenguajes
recursivos
Lenguajes recursivamente
enumerables
Lenguajes no recursivamente enumerables
Porque se estudia la insolubilidad ?
Razones:
1. Conocer cuando un problema es, algortmicamente, no
solucionable, es til pues de este modo es posible que se tenga
que simplificar el problema o alterarlo antes de disear el algoritmo.
Los computadores tienen capacidades y limitaciones que deben ser
tenidos en cuenta cuando se los usa.
2. Evita gastar tiempo y esfuerzo en el intento de solucionar
problemas insolubles.
3. Si nos ocupamos de problemas que son solubles, un conocimiento
de la insolubilidad puede estimular nuestra imaginacin y ayudar
nuestra perspectiva sobre la computacin y sus limitaciones.
Reconocer versus decidir
El lenguaje reconocido por una MT, esta dado por todas las
entradas (palabras) w de modo tal que se llega al estado final qf .
Por lo tanto, los reconocedores pueden correr sin decidir.
Una MT decide el lenguaje L, si ella reconoce a L y no ingresa a
un bucle (loop) para cualquier entrada w. Por lo tanto, los
decididores siempre terminan.
Problemas y sus lenguajes decidibles
Estudiaremos casos de lenguajes que son decidibles por algoritmos, es
decir lenguajes relacionados a los autmatas.
Estos lenguajes son importantes por las razones siguientes:
1. Ciertos problemas estn relacionados con aplicaciones.
2. Ciertos problemas relacionados con autmatas no son decidibles por
medio de algoritmos.
El problema de testar cuando un lenguaje libre del contexto genera una
palabra, esta relacionado con el problema de reconocer y compilar
implementaciones en lenguajes de programacin.
La MT universal U toma como entrada un programa M y una palabra w,
para luego simular M sobre w. El programa M es la MT.
programa, entrada = M, w M sobre la entrada w U
Mquina de
Turing universal
Ejemplo:
M = ((q0, qi, qj), (q0, q0, / d),(q0, qi, 0/0 d), (q0, qj, 1/1 d))
q0
qj
/ d
qi
M
(q0, qi, qj), ((q0, q0, / d), ))
w = 001
U
La MT universal U, con la entrada M, w, simula M sobre w.
Estudiaremos los problemas:
1) Decidibles relacionados con lenguajes regulares.
2) Indecidibles relacionados con lenguajes libres del contexto.
Problemas decidibles relacionados con lenguajes
regulares
Estudiaremos algoritmos para testar cuando:
1. Un autmata finito que acepta una palabra.
2. Un lenguaje vaco.
3. Dos autmatas finitos son equivalentes.
El problema de la aceptacin de palabras por medio de AFDs, se
expresa por medio del lenguaje:
L AFD = {B, w/ B es un AFD que acepta la palabra w}
Anlogamente, el problema de la aceptacin usando AFNDs, se
expresa por medio del lenguaje:
L AFND = {B, w/ B es un AFND que acepta la palabra w}
Autmata finito que acepta una palabra
Teorema: LAFD es un lenguaje decidible.
Idea de la prueba:
Necesitamos una TM M que decida el LAFD .
M: Entrada: B, w, donde B es un AFD y w una palabra.
a. Simular B sobre w.
b. Si la simulacin termina en un estado final, w es aceptado. Caso
contrario w es rechazado.
B, w
M
B, w aceptado
B, w rechazado
Simulacin
efectuada con
la entrada
Prueba:
Examinar la entrada B, w. Cuando la TM M recibe la entrada,
entonces primero determinar si B es un AFD y w una palabra. Si
no fuese as, M rechaza la entrada.
Caso contrario M empieza con la simulacin
En efecto
M rastrea el estado actual de B y la posicin de w en B. Esta
informacin la escribe en su cinta.
Inicialmente, el estado actual de B es q0 y la posicin actual de w
es el smbolo que esta mas a la izquierda. Los estados y la
posicin van cambiando de acuerdo a como se va ejecutando .
Cuando M termina con el ltimo smbolo de w, entonces sucede
una de las dos situaciones posibles:
(1) M aceptar la entrada B, w, si B esta en un estado final.
(2) Caso contrario, M rechaza la entrada.
B, w
M
B, w aceptado
B, w rechazado
Simulacin
efectuada con
la entrada
Teorema: LAFND es un lenguaje decidible.
Prueba:
La MT N decidir la aceptacin del LAFND. Para tal efecto, la MT N
simular un AFND usando una MT M como una subrutina.
En efecto
N: Entrada: B, w, donde B es un AFND y w una palabra.
a. Convertir el AFND B en un AFD C equivalente.
b. Ejecutar la MT M sobre la entrada C, w. Esto significa incorporar M
en el diseo de N como un subprocedimiento.
c. Si M acepta C, w, entonces N acepta. Caso contrario rechaza.
B, w
N
B, w aceptado
B, w rechazado
Simulacin
con entrada
C, w.
M Acepta
Rechaza
El problema de generar una palabra por medio de expresiones
regulares, se expresa por medio del lenguaje:
L ER = {R, w/ R es una ER que genera la palabra w}
El siguiente teorema, establece que la generacin de palabras para
cierto lenguaje es decidible:
Generacin de palabras
Teorema: LER es un lenguaje decidible.
Prueba:
La MT N decidir la generacin del LER.
En efecto
N: Entrada: R, w, donde R es una ER y w una palabra.
R, w
N
R, w aceptado
R, w rechazado
Simulacin
con entrada
C, w.
M Acepta
Rechaza
a. Convertir la ER R en un AFND C equivalente.
b. Ejecutar la MT M sobre la entrada C, w. Esto significa incorporar M
en el diseo de N como un subprocedimiento.
c. Si M acepta C, w, entonces N acepta. Caso contrario rechaza.
Top Related