Sie sind auf Seite 1von 31

Teora de la computacin

Jos A. Rodrguez Melquiades

Clase TeoComp 15

Teora de computabilidad

Un lenguaje vacio

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.

Dos autmatas finitos son equivalentes

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)}

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.

F
T

M, N

Acepta

Simulacin
con entrada
Rechaza
M,N.

M,N aceptado

M,N rechazado

Indecibilidad de un lenguaje especifico

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:

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 aceptado
M, w

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 = ,
w5 = 01,
w9 = 001,

w2 = 0,
w6 = 10,
w10 = 010,

w3 = 1,
w7 = 11,
...

w4 = 00,
w8 = 000,

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

0l Xl

0m D m

0k qk

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:

q22

X / 1 i

1 / 0 d

Sea la MT M dada por:


1 / 0 d

q12

q32

0 / 1 d

(q1 , 1) = [q3 , 0, d ]

0 1 00 1 000 1 0 1 00
q1

q3

(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.

Ejemplos:
Considerando que una solucin de P2 es una solucin para P1, tenemos:
P1 : Orientarse en la ciudad de Trujillo.
P2 : Obtener un mapa

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*
f

f(w)

Teorema: Si f es una reduccin de P1 hacia P2 , entonces es vlido:


(1) Si P1 es indecidible, P2 tambin lo es.
(2) Si P1 no es recursivamente enumerable, P2 tambin lo es.

Prueba:
(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.

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 dilema es:

cuando el computador finalizar el programa?.

el programa ingreso a un loop ?

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) ?.

Teorema: El problema de la parada de una MT es un lenguaje


indecidible.
HALTMT = {(M , w): M es una TM que PARA sobre la entrada w}

Prueba:
Para la prueba, se debe mostrar que:
Si HALTMT puede ser decidido, entonces LMT lo es.
En efecto
Suponer que H decide HALTMT
H
Si M PARA sobre w, acepta

M, w
Si M ingresa en un bucle
sobre w, rechaza

Usar H para disear la MT D para LTM


Si M acepta
entonces acepta

M, w

w,

Si M rechaza o ingresa en
un bucle sobre w, rechaza

Por lo tanto:
D
acepta

M, w

Simulacin
de
M sobre w

acepta

Si M acepta w, acepta
rechaza

rechaza

Si M rechaza o bucle
en w, rechaza

Das könnte Ihnen auch gefallen