mc_tema7

55
Tema 7 Máquinas de Turing Gabriel Navarro Modelos de Computación Grado en Ingeniería Informática Gabriel Navarro Tema 7 Máquinas de Turing

Upload: eddy-pilicita

Post on 09-Nov-2015

1 views

Category:

Documents


0 download

DESCRIPTION

3rerfr

TRANSCRIPT

  • Tema 7Mquinas de Turing

    Gabriel Navarro

    Modelos de ComputacinGrado en Ingeniera Informtica

    Gabriel Navarro Tema 7 Mquinas de Turing

  • Introduccin

    en los temas anteriores hemos estudiado...

    Lenguajes sencillos (regulares, libres de contexto)y sus utilidades prcticas en compiladores, bsquedas entextos, escneres, codificacin,...y unas mquinas tericas que reconocen estos lenguajes

    ahora cambiamos de direccin...

    Gabriel Navarro Tema 7 Mquinas de Turing

  • Mquinas de Turing

    Mquinas de TuringMs generales que AF y APReconocen los lenguajes recursivamente enumerablesNo se inventaron con el mismo proposito que los AF y APSe buscaban los lmites de clculo

    Gabriel Navarro Tema 7 Mquinas de Turing

  • Mquinas de Turing

    Las mquinas de Turing se pueden representar de forma intuitivacomo un dispositivo mecnico, formado por:

    una cinta infinita, dividida en celdasun cabezal de lectura-escritura que se mueve sobre dichacinta tanto a derecha como a izquierda

    Gabriel Navarro Tema 7 Mquinas de Turing

  • Mquinas de Turing

    CintaLa cinta de entrada es una secuencia infinita de celdas. En cadacelda de la cinta solo se puede almacenar un smbolo. Las celdasque no estn ocupadas, estn vacas, las vamos a denotar por elcarcter # (smbolo en blanco).

    Gabriel Navarro Tema 7 Mquinas de Turing

  • Mquinas de Turing

    CabezaLa MT posee una cabeza que puede emplearse para leer y escribirsmbolos en la cinta de la mquina. As, puede rastrear los datos dela cinta y modificar las celdas que desee sin alterar las dems. Poreso, una mquina de Turing puede estar en movimientoindefinidamente.

    AccionesLas acciones especficas son operaciones de escritura y demovimientoLa operacin de escritura consiste en reemplazar un smbolo enla cinta con otro smbolo y luego cambiar de estadoLa operacin de movimiento comprende mover la cabeza unacelda a la derecha o a la izquierda y luego pasar a un nuevoestado. Dependera del smbolo de la celda y del estado actual

    Gabriel Navarro Tema 7 Mquinas de Turing

  • Mquinas de Turing

    A Turing Machine - Overviewhttp://www.youtube.com/watch?v=E3keLeMwfHY&feature=related

    Gabriel Navarro Tema 7 Mquinas de Turing

  • Definicin: Mquina de Turing

    Una mquina de Turing se define por la siguiente tupla:

    MT = (, ,#,Q, q0, f ,F )

    donde es el alfabeto de smbolos de entrada, distintos de # es el alfabeto de smbolos de la cintaComo la MT puede escribir en la cinta, es diferente el alfabetode los smbolos que inicialmente pueden aparecer en la cintadel alfabeto de los smbolos que, en algn momento, puedenaparecer en la cinta. Esto es, .# es un smbolo de la cinta de entrada especial que representael espacio en blanco

    # / ,#

    Gabriel Navarro Tema 7 Mquinas de Turing

  • Definicin: Mquina de Turing

    Una mquina de Turing se define por la siguiente tupla:

    MT = (, ,#,Q, q0, f ,F )

    dondeQ es el conjunto de estadosq0 Q es el estado inicialf es una funcin parcial que se llama funcin de transicin

    f : Q Q {I ,D}

    Decimos que f es una funcin parcial porque puede que notenga imagen para algn par de Q F Q es el conjunto de estados parada. F puede ser elconjunto vaco.

    Gabriel Navarro Tema 7 Mquinas de Turing

  • Definicin: Mquina de Turing

    Ejemplo:Inicialmente la cinta contiene un nmero finito de smbolos,precedidos y seguidos por infinitos espacios en blanco

    Supongamos que tenemos la transicin f (q0, a) = (q3, c ,D)

    La MT transita al estado q3, reemplaza el smbolo a por elsmbolo c y se desplaza una posicin a la derecha

    Gabriel Navarro Tema 7 Mquinas de Turing

  • Definicin: Mquina de Turing

    Ejemplo

    Sea (, ,#,Q, q0, f ,F ) la mquina de Turing = {a, b} = {a, b,#}Q = {q0, q1}F = {q1}

    f a b #q0 (q0, a,D) (q0, a,D) (q1,#, I )q1

    Gabriel Navarro Tema 7 Mquinas de Turing

  • Definicin: Mquina de Turing

    EjemploPartimos de una configuracin inicial y representamos medianteunos grficos las distintas etapas del proceso de lectura de la MT

    Gabriel Navarro Tema 7 Mquinas de Turing

  • Configuracin instantnea

    Configuracin instantneaUna configuracin instantnea viene determinada por elestado actual, el contenido de la cinta y la posicin de lacabeza sobre la cinta.Una forma sencilla de notarla viene dada por una cadena deltipo:

    a1a2 akqiak+1 anLa cabeza de la mquina se coloca sobre la celda que contieneak+1 y el estado actual es qi .Para el ejemplo anterior, los pasos de clculo seran:

    q0abba aq0bba aaq0ba aaaq0a aaaaq0# aaaq1a

    Gabriel Navarro Tema 7 Mquinas de Turing

  • Computacion

    Puesto que la funcin de transicin f es una funcin parcial, puededarse el caso que f (q, a) quede indefinido. Por tanto es imposibleque la mquina de Turing pase a otra configuracin. Entonces sedice que la MT est parada.La otra forma de que la mquina de Turing est parada es quellegue a un estado de parada

    ComputacinLa secuencia de todos los movimientos que conducen a la MT auna configuracin de parada se llama computacin.

    Gabriel Navarro Tema 7 Mquinas de Turing

  • Lenguaje aceptado

    Aceptacin de lenguajesUna mquina de Turing se puede comportar como un aceptador deun lenguaje, de la misma forma que lo hacan los AF y los AP. Paraevaluar una cadena:

    Registramos la cadena en la cinta de la mquinaColocamos la cabeza de la mquina en la celda del extremoizquierdoPonemos en marcha la mquina a partir de su estado inicial

    Gabriel Navarro Tema 7 Mquinas de Turing

  • Lenguaje aceptado

    Aceptacin de lenguajesLa decisin de si una cadena es reconocida por una mquina deTuring depende de si:

    F = . Decimos que la mquina acepta la cadena porestado de aceptacin, si despus de una secuencia demovimientos, la mquina de Turing llega a un estado deparada (y por tanto, se para).F = . Diremos que la mquina acepta una cadena porparada si es capaz de parar. Es decir, si una cadena no esreconocida, la mquina entra en un bucle infinito y no paranunca.

    A diferencia de los AF y AP, una MT no necesita leer toda lacadena para decidir si pertenece o no a un lenguaje

    Gabriel Navarro Tema 7 Mquinas de Turing

  • Lenguaje aceptado

    Lenguaje aceptadoLa coleccin de cadenas aceptadas por una mquina de Turing Mse llama lenguaje aceptado por la mquina de Turing (M).

    Se dice que un lenguaje L es un lenguaje aceptado por unamquina de Turing si existe un MT M tal que L = (M).

    Gabriel Navarro Tema 7 Mquinas de Turing

  • Ejemplos

    El lenguaje de las palabras con un nmero par de ceros

    {{0, 1}, {0, 1,#}, {q0, q1, q2}, q0, f , {q2}}f (q0, 0) = (q1,#,D) f (q0, 1) = (q0,#,D)f (q1, 0) = (q0,#,D) f (q1, 1) = (q1,#,D)f (q1,#) = (q1,#, I ) f (q0,#) = (q2,#, I )

    Gabriel Navarro Tema 7 Mquinas de Turing

  • Ejemplos

    El lenguaje de las palabras con un nmero par de ceros

    {{0, 1}, {0, 1,#}, {q0, q1, q2}, q0, f , {q2}}f (q0, 0) = (q1,#,D) f (q0, 1) = (q0,#,D)f (q1, 0) = (q0,#,D) f (q1, 1) = (q1,#,D)f (q1,#) = (q1,#, I ) f (q0,#) = (q2,#, I )

    Gabriel Navarro Tema 7 Mquinas de Turing

  • Ejemplos

    El lenguaje {anbn con n 1}{{a, b}, {a, b,A,B,#}, {q0, q1, q2, q3, q4}, q0, f , {q4}}

    f (q0, a) = (q1,A,D) f (q1, a) = (q1, a,D)f (q1,B) = (q1,B,D) f (q1, b) = (q2,B, I )f (q2,B) = (q2,B, I ) f (q2, a) = (q2, a, I )f (q2,A) = (q0,A,D)f (q0,B) = (q3,B,D) f (q3,B) = (q3,B,D)f (q3,#) = (q4,#,D)

    Gabriel Navarro Tema 7 Mquinas de Turing

  • Ejemplos

    El lenguaje {anbn con n 1}{{a, b}, {a, b,A,B,#}, {q0, q1, q2, q3, q4}, q0, f , {q4}}

    f (q0, a) = (q1,A,D) f (q1, a) = (q1, a,D)f (q1,B) = (q1,B,D) f (q1, b) = (q2,B, I )f (q2,B) = (q2,B, I ) f (q2, a) = (q2, a, I )f (q2,A) = (q0,A,D)f (q0,B) = (q3,B,D) f (q3,B) = (q3,B,D)f (q3,#) = (q4,#,D)

    Gabriel Navarro Tema 7 Mquinas de Turing

  • Ejemplos

    El lenguaje {anbncn con n 1}

    {{a, b, c}, {a, b, c ,X ,Y ,Z ,#}, {q0, qa, qb, qc , qY , qZ , qf }, q0, f , {qf }}f a b c X Y Zq0 (qa,X ,D) (qY ,Y ,D) qa (qa, a,D) (qb,Y ,D) (qa,Y ,D) qb (qb, b,D) (qc ,Z , I ) (qb,Z ,D)qc (qc , a, I ) (qc , b, I ) (q0,X ,D) (qc ,Y , I ) (qc ,Z , I )qY (qY ,Y ,D) (qZ ,Z ,D)qZ (qZ ,Z ,D)

    f (qZ ,#) = (qf ,#,R)

    Gabriel Navarro Tema 7 Mquinas de Turing

  • Ejemplos

    El lenguaje {anbncn con n 1}

    {{a, b, c}, {a, b, c ,X ,Y ,Z ,#}, {q0, qa, qb, qc , qY , qZ , qf }, q0, f , {qf }}f a b c X Y Zq0 (qa,X ,D) (qY ,Y ,D) qa (qa, a,D) (qb,Y ,D) (qa,Y ,D) qb (qb, b,D) (qc ,Z , I ) (qb,Z ,D)qc (qc , a, I ) (qc , b, I ) (q0,X ,D) (qc ,Y , I ) (qc ,Z , I )qY (qY ,Y ,D) (qZ ,Z ,D)qZ (qZ ,Z ,D)

    f (qZ ,#) = (qf ,#,R)

    Gabriel Navarro Tema 7 Mquinas de Turing

  • Lenguajes aceptados por un MT

    Lenguaje recursivamente enumerableLos lenguajes aceptados por una mquina de Turing se llamanlenguajes recursivamente enumerables

    Esta es una clase de lenguajes ms amplia que los lenguajesindependientes de contexto

    Reg LIC LRE

    Gabriel Navarro Tema 7 Mquinas de Turing

  • Lenguajes aceptados por un MT

    Lenguaje recursivoUn lenguaje que es aceptado por una MT de manera que se produceuna parada para todas y cada una de las cadenas que se dan comoentrada a la mquina, se conocen como lenguajes recursivos.

    Los lenguajes recursivos tambin forman una clase mayor que la delos lenguajes independientes del contexto

    Reg LIC LR LRE

    Gabriel Navarro Tema 7 Mquinas de Turing

  • Gramticas y MT

    TeoremaPara toda gramtica de tipo 0, existe una mquina de Turing quereconoce el lenguaje generado por dicha gramtica

    TeoremaPara toda mquina de Turing, existe una gramtica de tipo 0 quegenera un lenguaje igual al reconocido por la mquina de Turing

    Gabriel Navarro Tema 7 Mquinas de Turing

  • Autmata lineal acotado

    Un autmata lineal acotado es una MT cuya cinta es finita,concretamente,

    Autmata lineal acotadoUn ALA es una MT (, ,#,Q, q0, f ,F ) donde:

    Tendr que realizar su computacin nicamente en las celdasocupadas originariamente por la cadena de entrada, utilizandopor consiguiente una cinta de entrada limitada, y no ilimitadacomo es el caso de la Mquinas de Turing generalesPresenta dos smbolos de cinta y que marcan el principio yfinal de cintaLa mquina no se puede mover a la izquierda de , ni a laderecha Los smbolos y no pueden ser sobreescritos

    Gabriel Navarro Tema 7 Mquinas de Turing

  • Autmata lineal acotado

    Lenguaje aceptadoLos lenguajes aceptados por un ALA son los lenguajesdependientes del contexto. Recprocamente, dado un lenguajedependiente del contexto existe un ALA que lo acepta

    Reg LIC LDC LR LRE

    Gabriel Navarro Tema 7 Mquinas de Turing

  • Jerarqua de Chomsky

    Lenguaje Gramtica Mquina TericaRegular Tipo 3 Autmata FinitoLibre de Contexto Tipo 2 Autmata con pilaDependiente del Contexto Tipo 1 Autmata lineal acotadoRecursivo - Mquina de Turing que paraRecursivamente enumerable Tipo 0 Mquina de Turing

    Gabriel Navarro Tema 7 Mquinas de Turing

  • Variaciones de una MT

    Con la misma potencia de clculoMquina de Turing no deterministaMquina de Turing con cinta infinita slo a un ladoMquina de Turing multicintaMquina de Turing multidimensional

    Gabriel Navarro Tema 7 Mquinas de Turing

  • Por qu MT?

    Lmites de clculoEs un mdelo para establecer qu es posible calcular y qu no. Esun modelo de computacin

    Problemas de decisinEs un problema que ante cualesquiera datos de entrada la respuestaes s o no

    No es muy restrictivoTodos los problemas se pueden escribir como un problema dedecisin

    Gabriel Navarro Tema 7 Mquinas de Turing

  • Por qu MT?

    Lmites de clculoEs un mdelo para establecer qu es posible calcular y qu no. Esun modelo de computacin

    Problemas de decisinEs un problema que ante cualesquiera datos de entrada la respuestaes s o no

    No es muy restrictivoTodos los problemas se pueden escribir como un problema dedecisin

    Gabriel Navarro Tema 7 Mquinas de Turing

  • Por qu MT?

    Lmites de clculoEs un mdelo para establecer qu es posible calcular y qu no. Esun modelo de computacin

    EjemploConjetura de Goldbach: Todo nmero par mayor que 2 puedeescribirse como suma de dos nmeros primos

    bool Goldbach (int n){for (int i=2;i

  • Por qu MT?

    Lmites de clculoEs un mdelo para establecer qu es posible calcular y qu no. Esun modelo de computacin

    Problemas de decisinEn general, un problema de decisin cualquiera se puede representarpor un lenguaje

    Turing-computableUn problema ser Turing-computable si su lenguaje es aceptadouna MT. Esto es, si es recursivamente enumerable

    Gabriel Navarro Tema 7 Mquinas de Turing

  • Por qu MT?

    No es el nico modelo de computacin-clculoJuego de la vidaFunciones recursivas parciales...

    aunque las propuestas serias son todas equivalentes

    Tesis de Turing-ChurchEl poder computacional de una mquina de Turing es tan grandecomo el de cualquier sistema computacional posible (por ejemplo,los ordenadores actuales)

    Gabriel Navarro Tema 7 Mquinas de Turing

  • Por qu MT?

    AlgoritmoUna MT que siempre para es una forma de definir la nocin dealgoritmo

    Problemas decidiblesUn problema que es resuelto por una mquina de Turing quesiempre para se llama decidible

    es decir, su lenguaje asociado es recursivoes decir, existe un algoritmo que lo resuelve

    Gabriel Navarro Tema 7 Mquinas de Turing

  • Por qu MT?

    AlgoritmoUna MT que siempre para es una forma de definir la nocin dealgoritmo

    Problemas indecidiblesUn problema para el que NO existe una mquina de Turing que parese llama indecidible. Es decir, su lenguaje asociado NO es recursivo

    Gabriel Navarro Tema 7 Mquinas de Turing

  • Por qu MT?

    AlgoritmoUna MT que siempre para es una forma de definir la nocin dealgoritmo

    Es decir

    Problemas

    indecidibles{

    no Turing-computable (no rec. enum.)Turing-computable

    decidibles (recursivos)

    Gabriel Navarro Tema 7 Mquinas de Turing

  • Lenguajes que no son recursivamente enumerables

    PreguntaExisten lenguajes que no son recursivamente enumerables?

    RespuestaEl lenguaje diagonal Ld

    Gabriel Navarro Tema 7 Mquinas de Turing

  • Lenguajes que no son recursivamente enumerables

    PreguntaExisten lenguajes que no son recursivamente enumerables?

    Codificacin de mquinas de Turing

    Para una MT, M = ({0, 1},Q, {0, 1,B}, f , q1,B, {q2}) (no esrestrictivo)

    0 = x1 codifica a 01 = x2 codifica a 00B = x3 codifica a 000qi codifica a 0i

    D = D1 codifica a 0I = D2 codifica a 00

    Gabriel Navarro Tema 7 Mquinas de Turing

  • Lenguajes que no son recursivamente enumerables

    PreguntaExisten lenguajes que no son recursivamente enumerables?

    Codificacin de mquinas de Turing

    Para una MT, M = ({0, 1},Q, {0, 1,B}, f , q1,B, {q2}) (no esrestrictivo)

    Cada transicin se codifica de la manera:

    f (qi , xj) = (qk , xl ,Dm) 0i10j10k10l10m

    La mquina M se codifica a

    111Transicion111Transicion211Transicion3....Transicionn111

    Gabriel Navarro Tema 7 Mquinas de Turing

  • Lenguajes que no son recursivamente enumerables

    PreguntaExisten lenguajes que no son recursivamente enumerables?

    Codificacin de mquinas de TuringPor ejemplo,

    f (q1, 1) = (q3, 0,R)f (q3, 0) = (q1, 1,R)f (q3, 1) = (q2, 0,R)f (q3,B) = (q3, 1, L)

    codifica a

    11101001000101001100010101001001100010010010100110001000100010010111

    De esta manera, cada MT es un nmero entero en binario

    Gabriel Navarro Tema 7 Mquinas de Turing

  • Lenguajes que no son recursivamente enumerables

    PreguntaExisten lenguajes que no son recursivamente enumerables?

    Construccin de LdSe numeran las MT (1,2,3,...)Se numeran las cadenas de {0, 1}*Se construye la tabla T , donde T [i ][j ] es 1 si i es aceptadapor j y 0, si no lo es

    1 2 3 4 1 0 1 1 0 2 1 0 1 1 3 1 1 1 0 ...

    ......

    ......

    . . .

    Gabriel Navarro Tema 7 Mquinas de Turing

  • Lenguajes que no son recursivamente enumerables

    PreguntaExisten lenguajes que no son recursivamente enumerables?

    Construccin de LdLd est formado por las cadenas i que no son reconocidas porla MT i , es decir, las cadenas cuya fila tiene en la diagonal uncero

    1 2 3 4 1 0 1 1 0 2 1 0 1 1 3 1 1 1 0 ...

    ......

    ......

    . . .

    Gabriel Navarro Tema 7 Mquinas de Turing

  • Lenguajes que no son recursivamente enumerables

    PreguntaExisten lenguajes que no son recursivamente enumerables?

    Ld no es recursivamente enumerableSi lo fuera, entonces Ld es reconocido por la MT j-sima, paracierto j > 0. Esto es, Ld = (Mj).Pero,

    si j Ld entonces (j , j) = 0, luego j / (Mj)si j / Ld entonces (j , j) = 1, luego j (Mj)

    En ambos casos, se llega a una contradiccion. Luego Ld no esrecursivamente enumerable

    Gabriel Navarro Tema 7 Mquinas de Turing

  • Lenguajes recursivamente enumerables

    PreguntaExisten lenguajes recursivamente enumerables que no sonrecursivos? Esto es, existen problemas para los que no hay unalgoritmo que los resuelva pero que son Turing-computables?

    Problema de la paradaSea M una mquina de Turing y una cadena w , para M conentrada w?

    Gabriel Navarro Tema 7 Mquinas de Turing

  • Lenguajes recursivamente enumerables

    Problema de la paradaSea M una mquina de Turing y una cadena w , para M conentrada w?

    No es decidibleSi existiese un algoritmo bool PARA(M,w) donde:

    M es la codificacin de la MTw la cadena

    puedo construir

    bool Diagonal (M){if (PARA(M,M))

    while (1){}else

    return 1;}

    Gabriel Navarro Tema 7 Mquinas de Turing

  • Lenguajes recursivamente enumerables

    Problema de la paradaSea M una mquina de Turing y una cadena w , para M conentrada w?

    No es decidibleEsto es,

    Diagonal(M) termina si y slo si M(M) nunca termina

    Si usamos M=Diagonal

    Diagonal(Diagonal) termina si y slo si Diagonal(Diagonal)nunca termina

    lo cual es una contradiccion, por lo que PARA no puede existir

    Sin embargo, el lenguaje asociado es recursivamente enumerable

    Gabriel Navarro Tema 7 Mquinas de Turing

  • Lenguajes recursivamente enumerables

    Otro ejemplo (Hopcroft-Motwani-Ullman, Introduction to...)

    Usando la codificacin de mquinas de Turing:Le = {M mquina de Turing tal que (M) = }Lne = {M mquina de Turing tal que (M) = }

    se tiene que:Le no es recursivamente enumerableLne es recursivamente enumerable no recursivo...sin embargo, uno es el complementario de otro...

    Gabriel Navarro Tema 7 Mquinas de Turing

  • Problemas indecidibles

    Algunos problemas indecidiblesComprobar,

    si dos LIC son el mismo lenguajesi una LIC es un lenguaje regularsi un LIC es inherentemente ambiguosi una GIC es ambiguasi la interseccin de dos LIC es el vacosi el lenguaje aceptado por una MT es vaco

    Gabriel Navarro Tema 7 Mquinas de Turing

  • Problemas indecidibles

    Otros problemas indecidibles10o problema de HilbertEl problema de la Correspondencia de PostHilbert EntscheidungsproblemThe mortal matrix problem

    Gabriel Navarro Tema 7 Mquinas de Turing

  • Problemas tratables e intratables

    Aunque un problema sea decidible, puede que el clculo delalgoritmo que lo resuelve no se obtenga en un tiempo razonable

    Tiempo de ejecucin

    Llamamos tiempo de ejecucin T (M,w) de una MT M para laentrada w , al nmero de pasos que M ejecuta antes de pararse

    Funcin de ejecucinLa funcin de ejecucin de un MT M, T : N N, se define por

    T (n) = max{T (M,w) con |w | = n}

    Gabriel Navarro Tema 7 Mquinas de Turing

  • Problemas tratables e intratables

    Aunque un problema sea decidible, puede que el clculo delalgoritmo que lo resuelve no se obtenga en un tiempo razonable

    Problema tratableUn problema decidible es tratable si es resuelto por una MT contiempo de ejecucin polinomial

    Problema intratableUn problema decidible es intratable si no es tratable

    Gabriel Navarro Tema 7 Mquinas de Turing

  • =

    La clase Un problema decidible est en la clase si es resuelto por un MTdeterminista en tiempo polinomial

    La clase Un problema decidible est en la clase si es resuelto por unMT no determinista en tiempo polinomial

    Gabriel Navarro Tema 7 Mquinas de Turing

  • =

    Es obvio que Problema del milenio (1000000 $, Clay Mathematics Institute)

    = ?

    Gabriel Navarro Tema 7 Mquinas de Turing