TeoComp15

31
Teoría de la computación José A. Rodríguez Melquiades Clase TeoComp 15

description

teoria d ela computabilidad

Transcript of TeoComp15

  • 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