Post on 11-Sep-2015
description
Teora de la computacin
Jos A. Rodrguez Melquiades
Clase TeoComp 15
Teora de computabilidad
El problema de emptiness testing para el lenguaje reconocido por un
autmata finito, esta relacionado con determinar cuando un AF acepta
cualquier palabra.
L T = {M/ M es un AFD y L(M) = }
Teorema (*): LT es un lenguaje decidible.
Un lenguaje vacio
El problema de determinar cuando dos AFDs reconocen el mismo
lenguaje, es decidible. Es decir L(M) = L(N).
L EAFD = {M, N/ M y N son AFD y L(M) = L(N)}
Dos autmatas finitos son equivalentes
Para la decidibilidad:
(a) Usar el teorema (*).
(b) Construir un nuevo AFD K a partir de M y N, donde K solamente
acepta aquellas palabras que son aceptados por M o N, pero no
ambos.
De este modo el lenguaje reconocido por K es:
L(K) = (L(M) L(N)c ) (L(M)c L(N))
Esta expresin se llama diferencia simtrica.
El proceso de construccin de K se hace con las construcciones
para probar las clases de lenguajes regulares cerrado bajo el
complemento, unin e intercepcin.
Tales construcciones son algoritmos que son llevados por MTs.
Construido K, entonces usar el teorema (*) para testar si L(K) es
vaco:
Si L(K) = , entonces L(M) = L(N).
Teorema: LEAFD es un lenguaje decidible.
Prueba:
Para hacer la demostracin usar una TM F.
En efecto
F: Entrada: M, N, donde M y N son AFDs.
a. Construir un AFD K.
b. Usar el teorema (*) para ejecutar la MT T con la entrada K.
c. Si T acepta la entrada, entonces F acepta. Caso contrario rechaza.
M, N
F
M,N aceptado
M,N rechazado
Simulacin
con entrada
M,N.
T Acepta
Rechaza
El problema de determinar cuando la MT acepta cierta palabra
L MT = {M, w/ M es una MT y M acepta w}
El lenguaje LMT es Turing-recognizable.
El siguiente teorema muestra que los reconocedores son mas
poderosos que los decisores:
Indecibilidad de un lenguaje especifico
Teorema: LMT es un lenguaje indecidible.
Prueba:
Para la demostracin se usa la TM U.
En efecto
U: Entrada: M, w, donde M es una MT y w una palabra.
a. Simular M con la entrada w.
b. Si M acepta cada vez que ingresa a su estado de aceptacin,
entonces U acepta. Caso contrario rechaza.
M, w U
M,w aceptado
M,w rechazado
Problemas indecidibles relacionados con lenguajes
libres del contexto
Determinar: S una palabra pertenece a un determinado Lenguaje
Libre del Contexto:
LLC = {w / w L(G)}
Teorema: LLC es un lenguaje indecidible.
Teorema: LLC es un lenguaje indecidible.
Prueba:
1. Sea G una Gramtica Libre del Contexto tal que L = L(G).
2. Determinar si G, w es aceptado por una MT que decide LGLC.
En efecto
a. SI: Para y aceptar.
b. NO: Para y rechazar.
Construir una MT que simule un AP P que reconozca L puede que no
funcione, pues pueden haber movimientos infinitas en P.
Codificacin de una MT
Sea = {0, 1} un alfabeto. El conjunto * es enumerable.
En efecto
1. Considerar las palabras w * en orden creciente por longitud.
2. Para cada longitud se debe considerar las palabras ordenadas
lexicogrficamente.
, 0, 1, 00, 01, 10, 11, 000, 001, 010, . . .
3. La i-sima palabra se denota por wi , donde:
w1 = , w2 = 0, w3 = 1, w4 = 00,
w5 = 01, w6 = 10, w7 = 11, w8 = 000,
w9 = 001, w10 = 010, . . .
Sea M una MT definida sobre = {0, 1}. Entonces la codificacin de M
estar dado por:
1. Q = {q0 , q2 , . . . , qr}.
2. Estado inicial es q0 .
3. Suponer como criterio de aceptacin que la MT PARA en el estado final.
4. Suponer que el nico estado final es q2 .
5. = {X0, X1, . . . , Xs }.
6. Suponer que X0 = 0, X1 = 2, X3 = B. Los dems smbolos son auxiliares.
7. Considerar que D1 es un movimiento a la izquierda y D2 movimiento a la
derecha.
Sea (qi , Xj ) = (qk , Xl , Dm) una transicin. Entonces una codificacin
esta dado por:
0i 1 0j 1 0k 1 0l 1 0m
donde:
0i qi 0j Xj 0
k qk
0l Xl 0m Dm
Como i, j, k, l, m son mayores que cero, entonces la palabra 11 no es
subpalabra de 0i 10j 10k 10l 10m . 11 se usa para separar las
transiciones.
Sea || = n. La codificacin de esta dada por:
C1 11 C2 11 . . . Cn-1 11 Cn
Donde Ci denota la codificacin de la transicin i-sima.
Como cada Ci comienza y termina con por lo menos un 0, entonces la
palabra 111 no es subpalabra de C1 11 C2 11 . . . Cn-1 11 Cn
111 se usa para separar la MT de otros elementos.
Ejemplo:
Sea la MT M dada por: X / 1 i
q2 q1
q2 q2
q2 q3
1 / 0 d
1 / 0 d
0 / 1 d
(q1 , 1) = [q3 , 0, d ] 0 1 00 1 000 1 0 1 00
q1 1 q3 0 d
(q3 , 0) = [q1 , 1, d ] 0001010100100
(q3 , 1) = [q2 , 0, d ] 00010010010100
(q3 , X) = [q3 , 1, i ] 0001000100010010
Por lo tanto las transiciones de M son:
0100100010100 11 0001010100100 11 00010010010100 11 0001000100010010
Reducibilidad
Es una tcnica para determinar la decidibilidad de un problema,
empezando de otro problema cuya caracterstica es conocida.
La reduccin es una manera de convertir un problema P1 en otro P2 de
modo tal que la solucin de P2 se usa para solucionar P1.
P1 : Orientarse en la ciudad de Trujillo.
P2 : Obtener un mapa
Ejemplos:
Considerando que una solucin de P2 es una solucin para P1, tenemos:
P1 : Viajar de Trujillo para Lima.
P2 : Comprar un pasaje de avin.
P1 : Comprar un refrigerador.
P2 : Tener dinero.
P1 : Tener dinero.
P2 : Tener un trabajo.
P1 : Probar que un lenguaje L no es regular.
P2 : Hallar w = xyz L, tal que |w| > n, |y| 1 y xyi z L
Si existe una reduccin de P1 para P2, entonces puede suceder que:
P1 no es mas difcil que P2 .
P2 es al menos tan difcil como lo es P1
Formalmente:
Una reduccin de P1 para P2, es una funcin f que mapea
palabras de P1 en palabras de P2
f: P1 P2 w f(w) = w
tal que
w P1 f(w) P2
En trminos de Mquinas de Turing, la reduccin se formaliza en:
Una reduccin es una MT que mapea una sentencia de P1
en una sentencia de P2 .
1* 2
*
w f(w)
f
Teorema: Si f es una reduccin de P1 hacia P2 , entonces es vlido:
Prueba:
(1) Si P1 es indecidible, P2 tambin lo es.
(2) Si P1 no es recursivamente enumerable, P2 tambin lo es.
(1) Si P1 es indecidible, P2 tambin lo es.
En efecto (absurdo)
Suponga que P2 es decidible. Entonces es posible combinar el algoritmo que
decide P2 con la reduccin f para obtener un algoritmo que decide P1 .
Siendo que 1 es el alfabeto de P1, entonces w 1* . Por la reduccin se
obtiene f(w).
Como P2 es decidible, por hiptesis, se puede determinar si f(w) P2 , es decir:
f(w) P2 : Como f es una reduccin, entonces w P1 .
f(w) P2 : Como f es una reduccin, entonces w P1
En cualquier caso es posible determinar se w P1 . Por lo tanto, P1 es
decidible ( ).
(2) Si P1 no es recursivamente enumerable, P2 tambin lo es.
En efecto (absurdo)
Suponga que P2 es recursivamente enumerable. Entonces es posible
combinar la MT M2 que acepta P2 con la reduccin f para obtener una MT M1
que acepta al P1 .
Siendo w 1* una palabra, entonces obtener f(w). Para tal efecto se debe ejecutar
M2 con la entrada f(w):
Se M2 acepta f(w), entonces w P1
Se M2 no acepta f(w), M2 PARA y rechaza, o ingresa a un loop, entonces w P1
De este modo es posible construir M1 que acepta P1. Pero esto es una
contradiccin. Por lo tanto P2 no puede ser recursivamente enumerable.
Problema de la parada
Prueba de que los computadores no pueden hacer todo (problema
de la parada) = proof that computers cant do everything (the halting
problem)
http://www.youtube.com/watch?v=92WHN-pAFCs
Estudiamos uno de los teoremas mas importantes de la teora de la
computacin. Existe un problema especifico que es
algortmicamente insoluble.
Los computadores parecen ser tan poderosos que se cree que
todos los problemas sern solucionados por ellos.
El teorema de la parada demuestra que los computadores tienen
limites.
Qu tipos de problemas no tienen solucin por medio de los
computadores?
Histricamente es importante pues fue uno de los primeros problemas
probados como indecidibles.
Alan Turing en mayo de 1936.
Alonzo Church en abril de 1936, prueba la indecibilidad de un problema en el
lambda clculo.
Un algoritmo es un procedimiento que siempre da una respuesta y
termina.
El dilema es:
cuando el computador finalizar el programa?.
el programa ingreso a un loop ?
Formalmente: Un algoritmo puede ser definido como una MT que
siempre PARA con xito o sin xito.
En programacin: Una decepcin sucede cuando el programa se
ejecuta sin detenerse.
El problema de la parada es un problema de decisin, es decir:
Dado un programa con una entrada, decidir cuando el programa finaliza
o nunca finalizara su ejecucin.
El problema de la parada, se enuncia:
Dada una MT M y una palabra w, la MT siempre PARA?.
El problema de la parada, formalmente se enuncia:
Existe un algoritmo que determine cuando, para una MT y una palabra
w, la MT llegara a un estado de parada (final) ?.
HALTMT = {(M , w): M es una TM que PARA sobre la entrada w}
Teorema: El problema de la parada de una MT es un lenguaje
indecidible.
Prueba:
Para la prueba, se debe mostrar que:
Si HALTMT puede ser decidido, entonces LMT lo es.
En efecto
Suponer que H decide HALTMT
M, w
H
Si M PARA sobre w, acepta
Si M ingresa en un bucle
sobre w, rechaza
Usar H para disear la MT D para LTM
M, w
Si M acepta w,
entonces acepta
Si M rechaza o ingresa en
un bucle sobre w, rechaza
H
Por lo tanto:
Si M rechaza o bucle
en w, rechaza
Si M acepta w, acepta
M, w H
rechaza
acepta Simulacin
de
M sobre w rechaza
acepta
D