teoria de la computacion

download teoria de la computacion

of 31

description

teoria de la computacion

Transcript of teoria de la computacion

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