LTC Capitulo I - 1 Maquinas de Turing

Embed Size (px)

Citation preview

  • Captulo I: Teora de la

    Computacin

    1. Mquinas de Turing

    Profesor: Rodrigo Pizarro G. Profesor: Rodrigo Pizarro G. 2

    Introduccin

    !! Para ustedes, temas conocidos son: "! Lenguajes regulares

    !! i.e. L={w01 | w pertenece a {0, 1}*}

    "! Expresin regular (tambin hay una gramtica!) !! i.e. (0+1)*01

    "! Autmata finito !! AF=({p,q,r}, {0,1}, !, p, {r})

    ! 0 1

    p q p

    q q r

    r q p

    Profesor: Rodrigo Pizarro G. 3

    Introduccin

    !! Otro tema conocido por ustedes: "! Lenguajes libres de contexto

    !! i.e. L={wcwR | w pertenece a {a, b}*}

    "! Gramtica libre del contexto !! i.e. G = ({S}, {a, b, c}, {S#aSa | bSb | c}, S)

    "! Autmata apilador !! i.e. AA = ({p, q}, {a, b, c}, {S, a, b, c}, !, p, {q})

    ! = { ((p, e, e), (q, S)), ((q, e, S), (q, aSa)), ((q, e, S), (q, bSb)),

    ((q, e, S), (q, c)), ((q, a, a), (q, e)), ((q, b, b), (q, e)),

    ((q, c, c), (q, e))}

    Imposible reconocerlo con un AF!!

    Profesor: Rodrigo Pizarro G. 4

    Introduccin

    Lenguajes Regulares

    Lenguajes Libres del Contexto

    ???

    ???

    Qu nos espera ms all de lo que se conoce al aprobar ALFA??

  • Profesor: Rodrigo Pizarro G. 5

    Introduccin

    !! Surgen varias interrogantes: "! Qu hacemos al enfrentarnos a lenguajes un poco ms complicados?

    !! L = {anbncn | n " 0}

    !! L = {w | w = |a||b| y w={1}*, a = {1}*, b = {1}*}

    "! Y los lenguajes sensibles al contexto?

    "! Podemos representar el lenguaje que se nos ocurra con autmatas?

    "! Podemos reconocer cualquier tipo de lenguaje?

    "! Y si creamos un autmata que reconozca el espaol? # ganamos un premio Nbel! $

    "! Y si creamos un autmata que reconozca el lenguaje natural? # ganamos el premio

    Profesor: Rodrigo Pizarro G. 6

    Introduccin

    Lenguajes Regulares

    Lenguajes Libres del Contexto

    Lenguajes sensibles al contexto

    Lenguaje Natural

    Diagrama de Venn de los lenguajes

    Problema: Qu utilizamos para reconocer lenguajes sensibles al contexto?

    Profesor: Rodrigo Pizarro G. 7

    Mquinas de Turing

    !! Introducida por el matemtico-lgico ingls Alan Turing (1912 1954) alrededor de la segunda guerra mundial antes de que existieran los lenguajes de programacin.

    !! Son ms generales que las mquinas anteriores

    !! Y son ms poderosas!

    !! Representan una clase maximal y estable de autmatas.

    !! Pronto veremos que estn relacionados con los clculos de complejidad algortmica.

    Profesor: Rodrigo Pizarro G. 8

    Mquinas de Turing

    !! Fueron diseadas satisfaciendo tres criterios fundamentales de forma simultnea:

    1.! MT deben ser autmatas. Siguen el espritu de los autmatas anteriores.

    2.! Deben ser lo ms simples de describir (definiciones formales y razn de ser).

    3.! Deben ser lo ms general en trminos de computaciones que ellos puedan realizar.

    !! Fueron planteadas para satisfacer el problema planteado por Hilbert (Entscheidungsproblem): "! Hay un mtodo definido que pueda aplicarse a cualquier sentencia

    matemtica y que nos diga si esa sentencia es cierta o no?

  • Profesor: Rodrigo Pizarro G. 9

    Funcionamiento de MTs

    !! Definicin: Una Mquina de Turing es una cudrupla (Q, #, !, s) "! Q es un conjunto finito de estados

    "! ! es un alfabeto "! " es una funcin parcial (asumimos que su dominio no es

    vaco) !! !: Q $ # ! Q $ # U {I, D}

    "! s representa el smbolo inicial (s pertenece a Q)

    "! se distingue el estado final h

    Movimiento!

    Profesor: Rodrigo Pizarro G. 10

    Funcionamiento de MTs

    # b a b b a a a

    q2

    q1 q0

    h q3

    Cinta infinita a la

    derecha de

    Lectura/Escritura

    Cabezal mvil de

    Lectura/Escritura

    Control finito

    Profesor: Rodrigo Pizarro G. 11

    Para los ms sofisticados

    Profesor: Rodrigo Pizarro G. 12

    Funcionamiento de MTs !! Cabezal: lee y escribe smbolos del alfabeto en la cinta !! Control finito: opera en pasos discretos. En cada paso puede

    realizar: 1.! Pasar a un nuevo estado 2.! Tanto:

    1.! escribir/leer un smbolo en la posicin que se encuentra el cabezal en la cinta, o

    2.! mover el cabezal un espacio a la izquierda o a la derecha.

    "! Cinta: tiene inicio a la izquierda, pero es infinita a la derecha. Puede contener smbolos blancos, simbolizados como #

    "! Por convencin, el cabezal comienza en el # que contina al ltimo smbolo de la palabra en la cinta. i.e. #abc#

    PODER!

  • Profesor: Rodrigo Pizarro G. 13

    Ejemplo de MT

    !! Considere la mquina M = (Q, #, !, s) "! Q={q0, q1}

    "! #={a}

    "! s=q0 "! !=

    q ! "(q, !)

    q0 a *

    q0 # (q1, I)

    q1 a (q0, #)

    q1 # (h, D)

    # a a a # # #aaa#

    Profesor: Rodrigo Pizarro G. 14

    Configuracin de MT

    !! Definicin: Una configuracin de una MT M= (Q, #, !, s) es un miembro de:

    (Q U {h}) $ !* $ ! $ (!*(! - {#}) U {#})

    !! Ejemplos de configuraciones vlidas: "! (q, e, a, aba) # (q, aaba)

    "! (h, ##, #, #a) # (h, ####a)

    "! (q, #a#, #, #) # (q, #a##)

    !! Ejemplo de configuracin no vlida "! (q, baa, a, bc#) # (q, baaabc#)

    configuracin de parada

    Profesor: Rodrigo Pizarro G. 15

    Pasos de la MT !! Definicin: en un paso, la MT M realiza:

    "! M reescribe un smbolo sin mover su cabezal "(q1, a) = (q2, b)

    Por ejemplo: (q1, wau) $M (q2, wbu)

    "! M mueve su cabezal a la izquierda "(q1, a) = (q2, I)

    Por ejemplo: (q1, wbau) $M (q2, wbau) Por ejemplo: (q1, wb#) $M (q2, wb)

    "! M mueve su cabezal a la derecha "(q1, a) = (q2, D)

    Por ejemplo: (q1, wbau) $M (q2, wbau) Por ejemplo: (q1, wb) $M (q2, wb#)

    Con w y u en !*, a y b en !

    Profesor: Rodrigo Pizarro G. 16

    Computacin y Configuracin de colgado

    !! Definicin: Una computacin de una MT M es una secuencia de configuraciones C0, C1, , Cn para algn n >1

    C0 $M C1 $M $M Cn !! Una configuracin de colgado (hanging

    configuration) se presenta cuando la mquina no para su ejecucin o se encuentra una posicin a la izquierda del principio de la cinta.

    # a a a # #

  • Profesor: Rodrigo Pizarro G. 17

    Las MT computan!

    !! Las MT computan funciones de strings a strings !! Recibe como entrada un string w delimitado por

    blancos !! Devuelve en la cinta el valor de f(w) !! Si existe una MT M que compute f, se dice que la

    funcin f es Turing-Computable !! Podemos extender estos conceptos a funciones que

    reciban cero o ms argumentos incluso a funciones de IN a IN!! % Ms poder! ! "! Se debe definir la manera en que se codificar la

    informacin Profesor: Rodrigo Pizarro G. 18

    !! Sea f la funcin del sucesor: f(n) = n + 1, para cada n en IN

    !! La MT M que realiza esta funcin es la que sigue: "! M = (Q, #, !, s)

    "! Q = {q0}

    "! # = {i, #}

    "! s = q0 "! ! =

    (Ejemplo simple)

    q ! "(q, !)

    q0 i (h, D)

    q0 # (q0, i)

    # i i i i # # i i i # # $*M

    Profesor: Rodrigo Pizarro G. 19

    Problemas de decisin

    !! Problema de decisin asociado a un lenguaje L: Dado w perteneciente a #*, decidir si w pertenece a L

    !! Por ejemplo: "! ! = {0,1,2,3,4,5,6,7,8,9} "! Un nmero n cualquiera (formado a partir de !), es

    primo? !! Slo dos alternativas: S o NO

    !! Si existe una respuesta (S o NO) para cada w de !*, diremos que el problema es decidible "! En caso contrario diremos que el problema es indecidible!

    Profesor: Rodrigo Pizarro G. 20

    y tambin deciden!

    !! Un problema de decisin es aqul en donde las respuestas posibles son S o NO. "! Las MT deciden lenguajes

    !! Un lenguaje L cuyas palabras no contienen smbolos # es Turing-Decidible si y slo si la funcin

    tal que ! y " no son smbolos del lenguaje. !! Si existe una MT M que computa #L(w), para todas las

    palabras w de L, diremos que M decide el lenguaje L.

    #L (w)= ! si w est en L " si w no est en L

  • Profesor: Rodrigo Pizarro G. 21

    Ejemplo !! Dado L = {w pertenece a #0* | |w| es par}

    !! MT:

    q0 q1 q2 q3

    q4

    q5

    h

    q6

    #/I

    #/D

    #/I

    #/D

    #/! #/"

    a/#

    a/#

    ! , " /D

    #aaaa# $*M #!#

    #aaaaa# $*M #"#

    Profesor: Rodrigo Pizarro G. 22

    MT aceptan!

    !! Otro uso de las MT: son aceptadores de lenguajes !! Un lenguaje L es Turing-Aceptable si y slo si existe una MT

    que lo acepte !! Y qu es aceptar?

    "! entenderemos que una MT M acepta un lenguaje L si sta se detiene para todas las palabras que pertenecen al lenguaje L

    !! Y qu es no aceptar? "! entenderemos que una MT M no acepta un lenguaje L si sta NO se

    detiene para alguna de las palabras que pertenecen al lenguaje L (queda computando por siempre)

    !! Es fcil ver que "! lenguaje Turing-Decidible lenguaje Turing-Aceptable

    POR QU?

    Profesor: Rodrigo Pizarro G. 23

    Ejemplo

    !! L={w pertenece a !0* | w contiene al menos una a} !! La MT que lo acepta es:

    "! M = (Q, #, !, s) donde

    "! Q = {q0}

    "! # = {a, b, #}

    "! s = q0 "! ! = q ! "(q, !)

    q0 a (h, a)

    q0 b (q0, I)

    q0 # (q0, I)

    Se cuelga

    si no

    encuentra

    una a

    Profesor: Rodrigo Pizarro G. 24

    Podemos jugar con ellas!! $

    !! Los ejemplos mostrados son sumamente simples

    !! No las debemos subestimar

    !! Juguemos con ellas: "! Poseemos mquinas simples

    "! Tenemos imaginacin

    "! principal argumento: Dividir para conquistar!. Conquistemos

    !! Las MT se pueden combinar para construir MT grandes y complejas

  • Profesor: Rodrigo Pizarro G. 25

    Combinando para conquistar

    !! Cada MT simple puede ser considerada como una subrutina o un mdulo.

    !! Podemos encadenar MT bsicas para lograr nuestros objetivos. "! M1 M2 M3 Mk

    "! M1 prepara la cinta para M2; M2 prepara la cinta para M3 y as sucesivamente.

    "! Cada Mi es independiente de las dems

    Profesor: Rodrigo Pizarro G. 26

    Ingredientes

    !! Las mquinas bsicas son de dos tipos 1.! las que escriben smbolos y no se desplazan

    2.! las que slo se mueven por la cinta

    !! Hay |!| Mquinas de Turing que escriben smbolos de !. "! Formalmente se denota como W

    # a la mquina que slo escribe el smbolo # en la cinta y despus para.

    "! Nosotros slo la denotaremos como #.

    !! Las MTs de movimiento solo mueven la cinta un espacio a la izquierda o a la derecha y luego se detienen. "! Formalmente se denotan como VI y VD a la mquina que se desplaza

    una posicin a la izquierda o a la derecha, respectivamente.

    "! Nosotros solo la denotaremos como I o D.

    Profesor: Rodrigo Pizarro G. 27

    As se preparan

    !! Las reglas para la combinacin de MT bsicas: "! Considerar a cada mquina bsica como un estado

    individual de un autmata.

    "! Definir transiciones entre las mquinas bsicas igual como se hace en un autmata.

    "! La transicin de M1 a M2 no es gatillada hasta que M1 detenga su ejecucin. La ejecucin de M2 estar en funcin del estado de la cinta dejado por M1.

    >M1 M2

    Profesor: Rodrigo Pizarro G. 28

    As se preparan

    !! Adems las transiciones pueden llevar smbolos en caso de que necesitemos una condicin para ejecutar otra mquina.

    >M1 M2

    M3

    a

    b

  • Profesor: Rodrigo Pizarro G. 29

    Cmo se llama el plato?

    !! Definicin: un esquema de mquina es una tripleta

    (M, %, M0) donde: "! M: conjunto finito de MTs con un alfabeto ! en comn y

    un conjunto disjunto de estados.

    "! M0: es la mquina inicial y pertenece a M.

    "! %: es una funcin desde un subconjunto de M $ ! a M.

    !! La mquina compleja compuesta por M ser llamada M.

    Profesor: Rodrigo Pizarro G. 30

    Cundo paramos?

    !! Especficamente, M parar cuando: "! Si %(M, a) no est definido

    !! Sin embargo: "! Si %(M, a) = M en M, entonces M contina operando

    desde su estado inicial.

    !! En otras palabras, sigue el mismo modelo que las MTs bsicas.

    Profesor: Rodrigo Pizarro G. 31

    Veamos un ejemplo

    !! Sea M={M0}, donde M0 = D = ({q}, !, !D, q). Considere el esquema de mquinas (M, %, M0), donde:

    !! Luego (M, %, M0) representa la mquina que denotaremos por D#, donde "! D# = ({q, q0}, %, ", q)

    !(q, a) = (q0, D) para cada a en !

    %(M0, a) = M0 ; si a & #

    indefinido ; si a = #

    !D(q, a) = (q, D) ; si a & #

    (h, a) ; si a = # !(q0, a) =

    Profesor: Rodrigo Pizarro G. 32

    Ejemplo del ejemplo

    !! Si ! = {#, a, b, c}, entonces D# sera:

    >D

    a

    b

    c

    = >D = >D

  • Profesor: Rodrigo Pizarro G. 33

    Detalles de notacin

    !! Si ! = {#, a, b, c},

    >D D >D D >D D = =

    a

    b

    c

    #

    a, b, c, #

    >D I!

    #

    = >D

    #

    Ia

    Ib

    Ic

    a

    b

    c

    Profesor: Rodrigo Pizarro G. 34

    Mquinas bsicas que utilizaremos

    !! D#: se mueve a la derecha y para cuando encuentra un #

    !! I#: se mueve a la izquierda y para cuando encuentra un #

    !! : se mueve a la derecha y para cuando encuentra un smbolo distinto a un #

    !! : se mueve a la izquierda y para cuando encuentra un smbolo distinto a un #

    Profesor: Rodrigo Pizarro G. 35

    Veamos un ejemplo de todo esto

    !! Mquina que copia. C: #w# $M* #w#w#

    >I# D #D#D#!I#I#!

    D#

    #

    ! & #

    Profesor: Rodrigo Pizarro G. 36

    Podemos tener ms poder?

    !! Ya encontramos la forma de reconocer los lenguajes que son sensibles al contexto.

    !! Podemos llegar a reconocer el LN con MTs? agregumosles extensiones!!

    "! Ocupemos la cinta infinita para los dos lados

    "! Ocupemos varias cintas en vez de una sola

    "! Utilicemos varios cabezales en vez de uno

    "! Ocupemos una cinta bidimensional

    y sus combinaciones

  • Profesor: Rodrigo Pizarro G. 37

    y llegamos a

    !! NADA! "

    !! Las extensiones de MTs reconocen los mismos lenguajes que las MTs ya estudiadas.

    !! Cualquiera de las extensiones descritas puede ser simulada por una MT convencional. "! En otras palabras, existe una MT convencional por cada

    MT con extensiones (incluso combinadas).

    "! Una MT con extensiones aporta en una mejora del tiempo de ejecucin, pero no aporta en reconocer un lenguaje ms complejo.

    Profesor: Rodrigo Pizarro G. 38

    Pero tenemos una carta bajo la manga

    !! Hasta ahora, el determinismo ha sido nuestro aliado

    !! En ALFA se vio que el no-determinismo no aumenta el poder del autmata (reconoce el mismo lenguaje)

    !! pero

    !! Qu pasa si agregamos el ingrediente del

    no-determinismo a las Mquinas de Turing?

    !! Obtenemos MT no-deterministas!

    Profesor: Rodrigo Pizarro G. 39

    MTs no-deterministas

    !! Definicin: Una MTND es una cudrupla

    (Q, #, ', s), donde Q, # y s son definidos como en las MTD, y ' es un subconjunto de:

    (Q $ #) $ ((Q U {h}) $ (# U {I, D}))

    !! Ahora $M puede tener varios valores. Podemos ir de una configuracin a varias otras en un mismo paso.

    !! Debemos tener cuidado con la computacin de las MTND.

    !! Consideraremos a las MTND slo como aceptadores "! Las computaciones de las MTND son errticas, produciendo diferentes

    resultados para distintas instancias de ejecucin.

    Profesor: Rodrigo Pizarro G. 40

    Un ejemplo de MTND

    !! Sea L = {w en {a, b}* | w contiene una ocurrencia del substring abaab}

    >I I

    a, b

    I I I a b

    .

    a b a

    #

    a

    # b, # b, # a, # b, #

    No-determinismo

  • Profesor: Rodrigo Pizarro G. 41

    y ahora ganamos algo?

    !! NO! "

    !! Los lenguajes aceptados por MTND no difieren de los aceptados por MTD.

    !! Para cada MTND M1, se puede construir una MTD M2 tal que para cualquier palabra w que no contiene blancos: "! Si M1 para con entrada w, entonces M2 para con entrada w

    "! Si M1 no para con entrada w, entonces M2 no para con entrada w.

    !! Teorema: cualquier lenguaje aceptado por una MTND es aceptado por una MTD

    Profesor: Rodrigo Pizarro G. 42

    qu sigue ahora?

    !! Hemos visto que las MT se parecen mucho a los computadores que ocupamos hoy en da:

    Mquina de Turing Computador

    Maneja una cantidad finita de smbolos

    Maneja cantidades finitas de bits o bytes

    Escribe/lee smbolos de una cinta Escribe/lee bits o bytes de Memoria principal o secundaria

    Posee un cabezal mvil En la CPU hay un registro para mantener la instruccin en

    ejecucin: Program Counter

    Posee un conjunto de estados que describen su operacin

    Ejecutan programas (secuencias de instrucciones)

    Profesor: Rodrigo Pizarro G. 43

    Ms cosas que deberamos pensar

    !! Si nos damos cuenta, una MT es una de las primeras bases para realizar computacin. "! Esta base ha sido implementada y se conoce como computador

    !! Somos informticos, hacemos algoritmos "! qu es un algoritmo?

    "! qu puede representar un algoritmo?

    "! Existe una definicin matemtica de lo que es un algoritmo?

    !! Necesitamos clarificar esta visin el matemtico lgico Alonzo Church se atrevi a dar una definicin!

    !! Seor Church, aydenos!

    Profesor: Rodrigo Pizarro G. 44

    Lo que dice el Sr. Church

    !! Church lleg a postular lo que conoceremos como Tesis de Church-Turing o simplemente Tesis de Church (TCh).

    !! Entenderemos la Tesis de Church como: "! Todo algoritmo puede representarse como una Mquina de Turing, en

    caso contrario, no es algoritmo

    !! Las mquinas de Turing realmente capturan la nocin de lo que es un algoritmo o un procedimiento efectivo llevado a cabo por un humano o por una mquina.

    !! Surgen interesantes preguntas: "! qu es todo aquello que puede crear un cdigo informtico?

    "! La actividad del cerebro puede ser simulada por una MT?

  • Profesor: Rodrigo Pizarro G. 45

    En las nubes

    !! La TCh se cree que es verdadera. !! Se puede aplicar a la fsica (?) y tiene unas interesantes

    interpretaciones: "! el universo es una mquina de Turing y por lo tanto no es posible

    construir fsicamente una mquina con mayor poder computacional (la capacidad de cmputo que puede contener el universo est acoplado al tipo de universo en el que vivimos) % TCh fuerte

    "! el universo no es una mquina de Turing, es decir, las leyes del universo no son computables pero esto no afecta la posibilidad de crear una mquina ms poderosa que una mquina de Turing

    "! el universo sea una hipercomputadora y entonces sea posible la construccin de mquinas ms poderosas que las mquinas de Turing usando como entrada los resultados de dicha sper computadora: el universo o la naturaleza.

    Profesor: Rodrigo Pizarro G. 46

    An queremos ms!

    !! Hemos visto distintos tipos de MTs !! Tristemente & son todos equivalentes !! En particular, las MTs que vimos son diseadas de acuerdo al

    problema que solucionan. "! Existe una MT para cada problema del universo?

    !! Queremos ms flexibilidad! !! y si le pasamos a una MT como argumento otra MT?

    "! Sera como tener hardware y software? "! Cmo realizamos este traspaso? "! Cmo una MT recibe a otra como entrada? "! Se puede recibir a s misma? "! Para qu nos sirve?