SlideShare uma empresa Scribd logo
1 de 21
Baixar para ler offline
Cap¶
   ³tulo 6
M¶quinas de Turing
 a

En 1936, Allan Turing public¶ el primer estudio sobre un modelo de m¶quina
                            o                                        a
abstracta. El quer¶ una noci¶n matem¶tica precisa del concepto informal
                    ³a        o          a
de "algoritmo". Su resultado fue el siguiente: cualquier algoritmo puede ser
representado por un conjunto de instrucciones sobre una m¶quina de Turing.
                                                           a
    Corolario: Hay problemas bien formulados, para los cuales no existe so-
luci¶n algor¶
    o       ³tmica.
    a1        a2       ...        ai        ...      an         #         #


                      CONTROL
                       FINITO
                                                               P
De¯nition 7 Una m¶quina de Turing MT es una tupla M = (Q; ; ¡; ±; q0 ; #; F )
                     a
donde
   Q = conjunto de estados
   ¡ = conjunto de s¶mbolos de la cinta
                     ³
   # = caracter especial
   P
       = subconjunto de ¡ no conteniendo #; son los s¶mbolos de entrada.
                                                     ³
   ± : Q £ ¡ ! Q £ ¡ £ fL; R; ;g
   q0 = Estado inicial
   F µ Q = conjunto de estados ¯nales.
    # es un caracter de separaci¶n o vac¶ (blanco). Inicialmente en los
                                  o          ³o
primeros n posiciones de la cinta est¶n a1 :::an ; con la entrada. El resto de la
                                     a
cinta tiene s¶
             ³mbolos #:
 Teor¶ de la Computaci¶n
     ³a               o                                    Maricela Quintana
                                       75
 ITESM-CEM Dept. C.C.                                          Jes¶s S¶nchez
                                                                  u a
Al leer un s¶mbolo ai ; la MT puede:
             ³
 1) cambiar de estado
 2) Escribir un s¶
                 ³mbolo en la cinta (en lugar de ai )
 3) Mover la cabeza hacia la derecha (L) o la izquierda (R):

 ID = descripci¶n instant¶nea = ®1 q ®2 = a1 a2 :::ai¡1 qa1 :::an
               o         a
                              . # &
              contenido de la    estado contenido de la cinta hasta
              cinta hasta antes actual el # m¶s hacia la derecha.
                                                    a
              de la cabeza lectora
        "Movimiento"         x1 x2 ::xi¡1 qxi ::xn ` x1 ::xi¡2 pxi¡1 yxi+1 :xn si
    ±(q; xi ) = (p; y; L)
 L(M ) = lenguaje aceptado por la M T M
                  P        ¤
      = fw j w 2 ¤ ; q0 w ` ®1 p®2 para alg¶n p 2 F y ®1 ; ®2 2 ¡¤ g
                                           u
 Otra suposici¶n: L(M ) es aceptado por M T si M se detiene.
              o
  Ejemplo

 M T para aceptar L = f0n 1n j n > 1g
 ² Inicialmente la cinta contiene 0n 1n seguido de un n¶ mero in¯nito de
                                                       u
   blancos.
    1) M lee el # m¶s signi¯cativo y lo reemplaza por una x:
                   a
    2) Se mueve hasta el 1 m¶s signi¯cativo y lo reemplaza por y:
                            a
    3) El ciclo se repite:

       { Si al buscar un 1, M encuentra # ) M para sin aceptar.
      { Si al buscar un 0 ya no hay, M busca si hay 10 s ) M acepta si
        ya no hay.
                                   P
    Q = fq0 ; q1 ; q2 ; q3 ; q4 g;   = f0; 1g; ¡ = f0; 1; x; y; #g; F = fq4 g
    q0 = substituci¶n de 0 por x
                   o
    q1 = b¶ squeda de 1;substituci¶n por y
          u                       o
    q2 = b¶ squeda de 0
          u
    q3 = b¶ squeda de 10 s para ver si se acepta
          u
Teor¶ de la Computaci¶n
    ³a               o                                          Maricela Quintana
                                         76
ITESM-CEM Dept. C.C.                                                Jes¶s S¶nchez
                                                                       u a
CAP¶         ¶
   ³TULO 6. MAQUINAS DE TURING

                                               0 / 0, R                  0 / 0, L
                        0 / x, R                    1/y,L

                   q0                     q1                    q                   y / y, L
                                                                    2

                                                     y / y, R

                                        x / x, R
                                         # / #, R
                y / y, R           q3                     q4
                                        y / y, R




   q0 0011 ` xq1 011 ` x0q1 11 ` xq2 0y1 ` q2 x0y1 ` xq0 0y1 ` xxq1 y1 `
xxyq1 1 ` xxq2 yy ` xq2 xyy ` xxq0 yy ` xxyq3 y ` xxyyq3 ` xxyy#q4


6.1     Construcci¶n modular de m¶quinas de Tu-
                  o              a
        ring
Para combinar diagramas de transici¶n de M T hay que:
                                   o

  1. Eliminar las caracter¶
                          ³sticas de inicio de los estados de todas las m¶qui-
                                                                         a
     nas compuestas excepto de la inicial.

  2. Eliminar la caracter¶
                         ³stica de detenci¶n de los estados de parada e in-
                                          o
     troducir uno nuevo.

  3. Para cada uno de los antiguos estados de parada p y cada x en ¡:

      (a) Si la m¶quina compuesta debe detenerse al llegar a p con el s¶
                 a                                                     ³mbolo
          actual x, dibujar un arco con etiqueta x=x de p al nuevo estado
          de parada.
      (b) Si al llegar al estado p con el s¶³mbolo actual x; la m¶quina de-
                                                           P     a
          be transferir el control a la m¶quina M = (S; ; ¡; ±; t; #; h) y
                                          a
          dibujar un arco x=z de p al estado q de M donde ±(t; x) = (q; z)

 Teor¶ de la Computaci¶n
     ³a               o                                                 Maricela Quintana
                                            77
 ITESM-CEM Dept. C.C.                                                       Jes¶s S¶nchez
                                                                               u a
¶              ¶
6.1. CONSTRUCCION MODULAR DE MAQUINAS DE TURING

  Ejemplo

  M T A : Mover la cabeza de lectura una posici¶n a la derecha (R).
                                               o


                                  x / x, R

                        s                           t
                                   y / y, R


                                   # / #, R

  M T B : Encontrar la primera x a la derecha de la celda actual (Rx ).


                                        # / #, R
                     # / #, R
                      x / x, R                    x /x            n
          l                             m


                    y / y, R                 y / y, R




Teor¶ de la Computaci¶n
    ³a               o                                  Maricela Quintana
                                   78
ITESM-CEM Dept. C.C.                                        Jes¶s S¶nchez
                                                               u a
CAP¶         ¶
   ³TULO 6. MAQUINAS DE TURING

   M T C : Encontrar la primera y a la derecha de la celda (Ry ).

                                              # / #, R
                     # / #, R

                        x / x, R                           y/y
            p                             q
                                                                                  r

                     y / y, R
                                               x / x, R

    Usando las m¶quinas anteriores se puede construir una m¶quina que en-
                  a                                        a
cuentre la segunda ocurrencia del s¶
                                   ³mbolo distinto de # que se encuentre a
la derecha de la celda actual.

                                     x
                                              B
                               A
                                     y
                                              C

                           x
                                                    x /x
                           x              ≡
        Abreviaturas:      y
                                          ≡        ¬α
                           z
                                                  x , y ,z ,w
                           w              ≡
                                                                Símbolo genérico que
                               x ,y ,z               w             representa a los 3.
                                          }
                           A        B          ≡            AB


6.1.1     M¶quinas elementales
           a
   ² R:    M¶quina que se mueve una celda a la derecha
            a
 Teor¶ de la Computaci¶n
     ³a               o                                               Maricela Quintana
                                         79
 ITESM-CEM Dept. C.C.                                                     Jes¶s S¶nchez
                                                                             u a
¶              ¶
6.1. CONSTRUCCION MODULAR DE MAQUINAS DE TURING

  ² Y : M¶quina que escribe el s¶
         a                      ³mbolo y en la celda actual

  ² L: M¶quina que se mueve una celda a la izquierda
        a

  ² Rx : M¶quina que recorre la cinta a la derecha de su posici¶n actual
          a                                                    o
    para buscar el s¶
                    ³mbolo x


                                                    ¬
                                                        x
                                 R
  ² Rqx: Detenerse cuando se encuentre un s¶
                                           ³mbolo 6= x



                                                        x
                                   R


  ² La m¶quina Lx hace esa b¶ squeda hacia la izquierda
        a                   u

  ² M¶quinas de desplazamiento. SR transforma #xyyqxx# a ##xyqyx#,
      a
    desplazando hacia la derecha la cadena de s¶
                                               ³mbolos no blancos a la de-
    recha de la celda actual.

                      x,y        w              x,y               σ
              #L            }              L                }            σ
                                                                        RσL
                  #                         #

              R                          R # R #w


    #xyy x x# ` #x y y#x# ` # x yy#x# `# xxy#x# ` ##xy y x#
          "            "             "              "                       "

    De la misma manera SL desplaza hacia la izquierda la cadena de s¶
                                                                    ³mbo-
    los no blancos a la derecha de la celda actual.
Teor¶ de la Computaci¶n
    ³a               o                                          Maricela Quintana
                                     80
ITESM-CEM Dept. C.C.                                                Jes¶s S¶nchez
                                                                       u a
CAP¶         ¶
   ³TULO 6. MAQUINAS DE TURING


                  x,y                  w                   x,y           σ
          #R                   }                 R                 }                σ
                                                                                   LσR
              #                                    #

            L                                L# L# w


     Ejemplo
    M¶quina copiadora que transforma #w# a #w#w# :
     a


                                           x,y         w
           R# R # L # L #             R            }            #R# R # wR# L# L w
                                                                                #



6.2       M¶quinas de Turing como calculadoras
            a
          de funciones enteras
Una M T puede leer n¶meros (par¶metros) en la cinta, clacular una funci¶n y
                       u            a                                    o
escribir el resultado en la cinta. Los n¶ meros normalmente son representados
                                        u
en unario (0i = i) separados por un 1 :
                                                       ¤
                                   0i1 10i2 10i3 :::0ik ` 0m                          (6.1)

representa el c¶lculo de la funci¶n f (i1 ; i2 ; :::; ik ) = m:
                   a                    o
   Si f (i1 ; i2 ; :::; ik ) est¶ de¯nida 8i1 ; i2 ; :::; ik entonces hablamos de funcio-
                                a
nes recursivas totales. Las funciones calculadas por las MT son llamadas
recursivas parciales.
     Ejemplo
                                                                 ©m¡n;     ª
    C¶lculo de la substituci¶n propia m $ n =
     a                            o                                    m<n
                                                                   #; m<n
                                                                               : La m¶quina
                                                                                     a
siguiente hace ese c¶lculo:
                       a
    M = (fq0 ; :::; q6 g; f0; 1g; f0; 1; #g; ±; q0 ; #; q6 );
       Entrada                      Salida
        m   n      ¤             m$n
    #q0 10 # `                #0       #
 Teor¶ de la Computaci¶n
     ³a               o                                                Maricela Quintana
                                              81
 ITESM-CEM Dept. C.C.                                                      Jes¶s S¶nchez
                                                                              u a
¶
6.3. MAQUINAS DE TURING COMO ACEPTADORAS DE LENGUAJE

                                                   1 / #, R


                                                              # / #, L
                       0 / 0, R   1 / 1, R                                                          0 / #, R
                                                              0 / 0, L              1 / #, L
       0 / #, R        1 / 1, R         0 / 1, L
  q0              q1              q2               q3                    q4                    q5      1 / #, R


                            # / #, R               1 / 1, L
                                                                         0 / 0, L                      # / #, R
                                                                                        # / #, R

                                                                                                      q6

   ² M cambia un cero por un blanco (q0 ).
   ² Cuando M busca un cero a la derecha y encuentra un blanco, entonces
     ya acab¶ de restar. Se pasa entonces a q4 y empieza a cambiar los 1's
            o
     por #:
   ² Cuando M quiere en q0 remplazar un 0 por # y no hay, entonces hay
     que hacer el resultado nulo (q5 ).


6.3     M¶quinas de Turing como aceptadoras de
          a
        lenguaje
Al igual que con los AP, una MT puede aceptar un lenguaje de dos maneras:
llegando a un estado ¯nal S escribiendo algo especial en la cinta (por ejemplo
s¶ o deteni¶ndose. Normalmente se supone que una M¶quina de Turing
 ³),         e                                              a
acepta las cadenas s¶lo con detenerse.
                     o
     Las M¶quinas de Turing aceptan lenguajes formales que pueden ser ge-
           a
nerados por una gram¶tica de tipo 0: recursivamente enumerables (r.e.). Las
                       a
MT son los reconocedores de lenguaje m¶s poderosos que existen.
                                          a
     Dentro de algunos lenguajes r.e. existen algunos strings para los cu¶les
                                                                           a
no hay MT que pueda determinar que NO est¶n en el lenguaje. Sin embargo,
                                              a
consideramos que siempre pueden determinar que SI pertenecen al lenguaje.
El subconjunto de lenguajes r.e. para los cuales hay MTs que siempre pueden
determinar si un string est¶ o no est¶ en el lenguaje, se llama lenguajes
                            a           a
reursivos. Un ejemplo de lenguajes recursivos son los LLC.
 Teor¶ de la Computaci¶n
     ³a               o                                                              Maricela Quintana
                                               82
 ITESM-CEM Dept. C.C.                                                                    Jes¶s S¶nchez
                                                                                            u a
CAP¶         ¶
   ³TULO 6. MAQUINAS DE TURING

     Theorem 7 Todo lenguaje aceptado por una MT es formal.


    Demostraci¶n
               o
                                      P
   Supongamos que la MT M = (Q; ; ¡; ±; q0 ; #; F ) imprime # y # cuando
acepte el lenguaje L(G). Podemos construir una gram¶tica G = (V; T; P; S)
                                                     a
donde:
            V = P [; ; ]; Y ) [ Q [ ¡
                 (S;
            T =
   Las producciones est¶n dadas por:
                         a

    S ! [h#y#]               donde h es el estado ¯nal de M
    #] ! ##]                 Para ampliar la longitud de la cadena anterior a la
                              longitud deseada
    8± (p; x) = (q; y; ;)    Transici¶n a la inversa [#zqy#] ) [#zpx#]
                                     o
    qy ! px
    8±(p; x) = (q; x; R)     [#xqyz#] ) [#pxyz#]
    xq ! px
     8±(p; x) = (q; x; L)
                             [#xqyx#] ) [#ypx##]
     8s¶³mbolo y 2 ¡
    qyx ! ypx
     [¿ # ! "
                             eliminaci¶n de no terminales auxiliares, donde
                                      o
     ##] ! #]
                              ¿ =estado inicial de M
     #] ! "
   Ejemplo
   La siguiente M T acepta fxm y n j m; n ¸ 0g :

                   x/R       y/R

                                  #/L         #/R       #/Y       y/L
        τ          /         p            q         s         t         h
            #/R        y/R       x/#          #/L
                                 y/#
                                          r

 Teor¶ de la Computaci¶n
     ³a               o                                  Maricela Quintana
                                     83
 ITESM-CEM Dept. C.C.                                        Jes¶s S¶nchez
                                                                u a
¶
6.3. MAQUINAS DE TURING COMO ACEPTADORAS DE LENGUAJE

   La gram¶tica correspondiente es:
          a

    S ! [h#y#]
    #] ! ##]; [¿ # ! "
    ##] ! #]; #] ! "
    r# ! qx j qy       por ±(q; x) = (r; #); ±(q; y) = (r; #)
    tY ! S#                ±(S; #) = (t; Y )
    #= ! ¿ #               ±(¿; #) = (=; #; R)
    x= ! =x                ±(=; x) = (=; x; R)
    yp ! =y j py           ±(=; y) = (p; y; R); ±(p; y) = (p; y; R)
    #S ! q#                ±(q; #) = (S; #; R)
    q## ! #p#j#r# por ±(p; #) = (q; #; L); ±(r; #) = (q; #; L)
    qx# ! xp#jxr#
    qy# ! yp#jyr#
    qY # ! Y p#jY r#
    h#Y ! #tY          por ±(t; Y ) = (h; Y; L)
    hxY ! xtY
    hyY ! ytY
    hY Y ! Y tY

   Ej: S ) [h#y#] ) [h#y###] ) [#ty###] ) [#S####] )
[q#####] ) [#r####] ) [#qx###] ) [#xr###] ) [#xqx##] )
[#xxr##] ) [#xxqy#] ) [#xxyp#] ) [#xx=y#] ) [#=xxy#] ) [¿ #xxy#] )
[xxy#] ) xxy


Theorem 8 Todo lenguaje formal es aceptado por una m¶quina de Turing:
                                                    a

  1. Utilizar cinta 1 para almacenar cadena de entrada.

  2. Escribir el s¶
                  ³mbolo inicial de la gram¶tica en cinta 2.
                                           a

  3. Aplicar repetidamente y de manera no determinista las reglas de escri-
     tura de la gram¶tica a la cinta 2.
                    a

  4. Si el contenido de la cinta 2 se convierte en una cadena con s¶lo ter-
                                                                   o
     minales, compararla con el contenido de la cinta 1. Si son iguales )
     detenerse, aceptar, en caso contrario no aceptar.

 Teor¶ de la Computaci¶n
     ³a               o                                  Maricela Quintana
                                      84
 ITESM-CEM Dept. C.C.                                        Jes¶s S¶nchez
                                                                u a
CAP¶         ¶
   ³TULO 6. MAQUINAS DE TURING

6.4     Equivalencia de m¶quinas de Turing
                         a
Theorem 9 Si L es reconocido por una m¶quina de Turing M1 con varias
                                          a
cintas, es reconocido por una m¶quina de Turing M2 .
                               a

   Prueba
   MT con varias cintas:

                     A1                               Am
                                   .
                                   .
                                   .
                     Z1                               Zm


                                       Control
                                       Finito

   Simulaci¶n M1 :
           o

  1. Se guarda en la cinta de M2 el contenido de todas las cintas, as¶ como
                                                                     ³
     la posici¶n de cada una de las cabezas.
              o

  2. M2 se mueve hacia la derecha para revisar el contenido de las cabezas
     de M1 .

  3. Al llegar a la ultima, se tiene toda la informaci¶n necesaria para ver el
                    ¶                                 o
     siguiente paso de M1 :

  4. M2 se mueve hacia la izquierda para mover la posici¶n de todas las
                                                        o
     cabezas al lugar indicado.

   Problema: Lentitud de simulaci¶n
                                 o

Theorem 10 Si L es reconocido por una m¶quina de Turing no determinista
                                        a
M1 , entonces L es aceptada por una MT determinista M2 .

     Prueba
    Supondremos que M2 es una MT de tres cintas. La primera cinta guarda
la entrada al algoritmo. Para recorrer el ¶rbol de ejecuci¶n de M1 :
                                          a               o
 Teor¶ de la Computaci¶n
     ³a               o                                  Maricela Quintana
                                       85
 ITESM-CEM Dept. C.C.                                        Jes¶s S¶nchez
                                                                u a
¶
6.5. HIPOTESIS DE CHURCH

  1. Para todas las secuencias 1:::r generadas en la cinta 2, se simula M1 en
     la cinta 3

  2. Si M1 acepta ) M2 acepta.

  3. Si ninguna selecci¶n de opciones de M1 lleva a acepta r ) M2 no acepta
                       o


6.5      Hip¶tesis de Church
            o
Las funciones computables por una M¶quina de Turing son las funciones
                                                a
recursivas parciales. Nadie ha podido encontrar una funci¶n parcial que sea
                                                               o
computable pero no recursiva parcial.
                            ½
                              V1 ; V2 ; :::; Vn   cuando MT se detiene
   F (W1 ; W2 ; :::; Wn ) =
                              no de¯nida


6.6      M¶quina de Turing Universal
          a
Una m¶quina de Turing Universal es una MT que recibe como entrada la
       a
codi¯caci¶n M de cualquier MT y una entrada w, y que genera el mismo
         o
resultado que la MT M . En otras palabras, una MTU es un simulador de
cualquier MT.

6.6.1     Codi¯caci¶n de MT
                   o
Primero codi¯camos los simbolos del P       alfabeto y s¶
                                                        ³mbolos especiales:
               x1 = 0            x4 ; x5 2     = s¶³mbolos del alfabeto
               x2 = 1
               x3 = #
as¶ como los movimientos posibles de la MT:
  ³
               D1 = L ,        D2 = R,          D3 = nada
    Entonces una transici¶n ±(qi ; xj ) = (qk ; xe ; Dm ) puede ser codi¯cada de
                             o
la siguiente manera:
         0i 10j 10k 10` 10mP
y una MT M = (Q; ; ¡; ±; q; #; fq2 g) puede codi¯carse en binario como
sigue:
         111 c¶digo
                o           11 c¶digo .....
                                o                11 c¶digo 111
                                                      o
               transici¶n 1
                         o        transici¶n 2
                                           o         ultima transici¶n
                                                     ¶              o
 Teor¶ de la Computaci¶n
     ³a               o                                    Maricela Quintana
                                      86
 ITESM-CEM Dept. C.C.                                          Jes¶s S¶nchez
                                                                  u a
CAP¶         ¶
   ³TULO 6. MAQUINAS DE TURING

    Una M T seguida de un string w ser¶ denotada por la concatenaci¶n de
                                      a                            o
                    0               0
los dos strings: < M ; w >, donde M representa la codi¯caci¶n binaria de
                                                           o
M.

6.6.2     Lenguaje Universal
De¯namos el siguiente lenguaje aceptado por una MTU:

                Lu = f< M 0 ; w >j M acepta wg ½ (0 + 1)¤

   Preguntar si w 2 L(M ) es equivalente a preguntar si < M`; w >2 Lu .

Theorem 11 Lu es recursivamente enumerable (r:e:), o dicho de otro modo,
existe una MTU que acepta este lenguaje y siempre puede aceptar un string
si ¶ste pertenece a L(M ): La MTU no necesariamente para en todas las
   e
entradas.

   Prueba
   La siguiente m¶quina multicintas Mu puede funcionar como MTU:
                 a


                                                     qi = 0 i
         Estado de
            M                       3

        Simulación de
        la cinta de M               2

           Entrada
           <M,w>
                                    1

   Mu contiene en la cinta 1 la codi¯caci¶n < M; w > y hace lo siguiente:
                                         o

  1. Inicializa la cinta 2 con w, la cinta 3 con 01 = q1 :
  2. Si la cinta 3 contiene qf , entonces pararse y aceptar.
 Teor¶ de la Computaci¶n
     ³a               o                                      Maricela Quintana
                                        87
 ITESM-CEM Dept. C.C.                                            Jes¶s S¶nchez
                                                                    u a
6.7. TEOR¶ DE LA DECIBILIDAD
         IA

  3. Sea xj el siguiente s¶mbolo de w en la cinta 2 y 0i el estado en la cinta
                          ³
     3: Buscar en la cinta 1 la transici¶n ±(qi ; xj ) si no existe, pararse y no
                                        o
     aceptar

  4. En caso contrario, moverse al estado dado (modi¯car la cinta 3), escribir
     el string de salida en la cinta 2, y moverse (seg¶ n lo especi¯cado) en la
                                                      u
     cinta 2. Regresar al paso 3.


6.7     Teor¶ de la decibilidad
            ³a
Un problema decidible es aqu¶l para el cual existe un algoritmo que siempre
                              e
para en todas las instancias de entrada respondiendo a¯rmativa o negati-
vamente a la pregunta >acepta la m¶quina de Turing una entrada w? Los
                                      a
lenguajes que representan a los algoritmos decidibles son llamados recursi-
vos. Note que los problemas que s¶lo tienen una instancia son trivialmente
                                    o
resolubles. Si la MT no para en todas las instancias, se dice que el lenguaje
que acepta es recursivamente enumerable (r.e.) y se dice que el problema es
indecidible.
    El concepto de decibilidad se llama computabilidad cuando hablamos de
MTs como m¶quinas que calculan funciones enteras. Hablamos entonces de
              a
problemas computables o no computables.

6.7.1    Un lenguaje no recursivamente enumerable
                              P
Sea un conjunto de strings de ¤ = (0 + 1)¤ =< wi ; Mj >. Considere uan
tabla in¯nita donde el elemento i; j vale uno si el string wi es aceptado por
Mj (wi 2 L(Mj )) :

                       j
                   1       2   3    4        .   .   .

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

 Teor¶ de la Computaci¶n
     ³a               o                                    Maricela Quintana
                                        88
 ITESM-CEM Dept. C.C.                                          Jes¶s S¶nchez
                                                                  u a
CAP¶         ¶
   ³TULO 6. MAQUINAS DE TURING

   Esta tabla contiene todas las posibles m¶quinas de turing existentes. Sea
                                           a
Ld = fwi j wi 2 L(Mi )g el lenguaje que representa los ceros de la diagonal
               =
de la tabla anterior. No existe ninguna M T que acepte Ld , por lo que este
lenguaje no es r.e.
    Prueba
        No existe una Mj tal que L(Mj ) = Ld . Por contradicci¶n, suponemos
                                                              o
que Mj acepta Ld ) L(Mj ) = Ld .

   ² Si la entrada j; j de la tabla = 0 ) wj 2 Ld
     ,! wj 2 L(Mj ) ^ wj 2 Ld ) L(Mj ) 6= Ld
           =

   ² Si la entrada j; j de la tabla = 1 ) wj 2 Ld
                                             =
     ,! wj 2 L(Mj ) ^ wj 2 Ld ) L(Mj ) 6= Ld
                         =

   Corolario: Ld no es un lenguaje r:e ) no es recursivo.

6.7.2    Propiedades de lenguajes recursivos y recursiva-
         mente enumerables
El complemento de un lenguaje recursivo es recursivo.




                                                                       Sí
W                                                   Sí
                         W
                                                    No                 No




 Teor¶ de la Computaci¶n
     ³a               o                                  Maricela Quintana
                                    89
 ITESM-CEM Dept. C.C.                                        Jes¶s S¶nchez
                                                                u a
6.7. TEOR¶ DE LA DECIBILIDAD
         IA

  La uni¶n de dos lenguajes recursivos es un lenguaje recursivo.
        o



                                                                       Sí
                               Sí
                                                  Sí
              M1               start        M2             No
                                                                      No
                          No



  La uni¶n de dos lenguajes recursivamente enumerables es r:e :
        o


                                 M1                Sí                   Sí


W

                                 M2                Sí




Teor¶ de la Computaci¶n
    ³a               o                                  Maricela Quintana
                                       90
ITESM-CEM Dept. C.C.                                        Jes¶s S¶nchez
                                                               u a
CAP¶         ¶
   ³TULO 6. MAQUINAS DE TURING

   Si L y L son enumerables recursivamente ) L y L es recursivo.



                       M
                                M1               Sí                Sí


    W

                                M2               Sí                 No



6.7.3    Un lenguaje no recursivo
Theorem 12 Lu , el lenguaje aceptado por la MTU no es recursivo. Dicho
en otras palabras, la pregunta w 2 L(M ) no es decidible en el caso general.

     Prueba
    Sea A2 un algoritmo para reconocer Lu. Entonces Ld = fwi jwi 2 L(Mi )g
ser¶ aceptado por la siguiente m¶quina:
   ³a                            a



                                                              Sí        Sí
                               <Mi, Wi>            A2
  Wi=W          Conversión                   Algoritmo para   No        No
                                                   Lu

                           Algoritmo para Ld

   Pero como Ld no es r.e entonces no es recursivo y por lo tanto Ld no
es recursivo, por lo que la ¯gura anterior no puede existir, pues no hay
algoritmo que pare en todas las instancias de Ld . Entonces, forzosamente no
hay algoritmo para Lu , por lo que Lu no es recursivo.
 Teor¶ de la Computaci¶n
     ³a               o                                  Maricela Quintana
                                     91
 ITESM-CEM Dept. C.C.                                        Jes¶s S¶nchez
                                                                u a
6.7. TEOR¶ DE LA DECIBILIDAD
         IA

6.7.4   El problema de la terminaci¶n
                                   o
No puede construirse ning¶n algoritmo que, dado cualquier programa R y
                         u
una entrada X, determine si R termina correctamente con X.

   Demostraci¶n por contradicci¶n
             o                 o

  1. Supongamos que existe un programa Q que acepta otro programa y
     una entrada y decide si dicho programa termina o no.

  2. Construir un nuevo programa S que reciba como entrada un programa
     W , el cual es a la vez programa y entrada a Q. Si Q regresa verdadero,
     S entra a un ciclo in¯nito. En caso contrario termina.

     program S(W );
          var FOREVER:boolean;
          function Q(R,x):boolean;
            begin
            /* CODIGO MARAVILLOSO */
            end
          begin
            FOREVER:= FALSE;
            if Q(W; W ) then
               repeat FOREVER:= false until FOREVER;
            else writeln(El programa termina);
          end

  3. Meter a S como entrada el programa S. <S se equivoca!, por lo que
     llegamos a una contradicci¶n.
                               o




 Teor¶ de la Computaci¶n
     ³a               o                                Maricela Quintana
                                    92
 ITESM-CEM Dept. C.C.                                      Jes¶s S¶nchez
                                                              u a
CAP¶         ¶
   ³TULO 6. MAQUINAS DE TURING

6.7.5     Otros problemas no decidibles

Problema: Es L(M)6= 0?
   > Se puede construir una M T que al aceptar el c¶digo de la M T M
                                                   o
respondia si (o no) esta M T acepta alg¶n
                                       u
   string ?
   Lne = f< M >j L(M ) 6= ;g
   r:e no recursivo
   ( y su complemento Le = f< M >j L(M ) = ;g)
   no r:e
   Prueba
   1) M = MT que reconoce c¶digos de MT `S que aceptan conjuntos no
                           o
vac¶
   ³os.




                                                                      Sí
                       Generación <Mi,x>
  W<Mi>                                                M uj                   Sí
                        entradas                                      No
                            x




   Generaci¶n entradas en orden conocido = f0; 1; 01:::::g
             o
   Pasos:
   j = 1; 2:: )(strinbg i; j) = f(1; 1); (1; 2); (2; 1); (1; 3); (2; 2):::g
   i + j est¶ en aumento
            a
      j
   Mu a m¶quinas de Turing limitada a j pasos.
            a
   2) Le es no r:e debido al tema 3 (si fuera r:e)
   ) Lne ser¶ recursivo
               ³a
   Otro ejemplo (ver libro blanco)
   Lr = f< M >j L(M ) es recursivo por reducci¶n de Lr a Lug
                                                       o
 Teor¶ de la Computaci¶n
     ³a               o                                         Maricela Quintana
                                          93
 ITESM-CEM Dept. C.C.                                               Jes¶s S¶nchez
                                                                       u a
6.7. TEOR¶ DE LA DECIBILIDAD
         IA



            <M,w>                                            Sí           Sí
                                     M´
                            A                  Mr



                                           Máquina que no acepta
M `= traducción de M, w
                                            Máquina

    por reducci¶n de Lr o Lu
                 o
    Lnr no es r:e
    Otros: No se puede decidir:
    Demostrar
    -M acepta w(w)
    -Si el lenguaje aceptado por una MT es vac¶ o recursivo
                                                 ³o
    -Si el lenguaje aceptado es (¯nito, in¯nito , regular, libre de contexto,
tiene un n¶mero par de strings.
            u
    Decidibles
    -<Si el lenguaje aceptado por una MT es r:e!
    -Muchas propiedades de LRsyLLc : vac¶ in¯nito, M acepta w.
                                 ¶           ³o,
    Teorema de Rice
    -L es una propiedad trivial si L es vac¶ ¶ si L tiene todos los r:e`s:
                                           ³o o
    1) Ninguna propiedad no trivial Lde los P lenguajes r:e es decidible.
    propiedad: conjunto de lenguajes r:e en      = (0 + 1)¤
    (Un conjunto L tiene una propiedadL si L es un elemento de L )= Lp
    )No hay algoritmos para esas preguntas.
    #Algoritmos contables, in¯nito$ #Problemas incontables, in¯nito
    2) L L es r:e ssi L satisface:

   ² Si L = L y L ½ L` para alg¶n r:e L` ) L` ½ L
                               u

   ² Si L es un lenguaje in¯nito ½ L ) hay un subconjunto de L ½ L
 Teor¶ de la Computaci¶n
     ³a               o                                 Maricela Quintana
                                     94
 ITESM-CEM Dept. C.C.                                       Jes¶s S¶nchez
                                                               u a
CAP¶         ¶
   ³TULO 6. MAQUINAS DE TURING

  ² El conjunto de lenguajes ¯nitos en L es enumerable.

    Example 1 Las siguientes propiedades de r:e`s no son r:e`s:

    -L = ;      g 1) es violado
         P
    -L = ¤       g2) es violado
    -L recursivo g 1) es violado
    -L no es recursivo g1) es violado




Teor¶ de la Computaci¶n
    ³a               o                               Maricela Quintana
                                   95
ITESM-CEM Dept. C.C.                                     Jes¶s S¶nchez
                                                            u a

Mais conteúdo relacionado

Mais procurados (19)

I-Algebras
I-AlgebrasI-Algebras
I-Algebras
 
Sol09
Sol09Sol09
Sol09
 
Calcular taller 1
Calcular taller 1Calcular taller 1
Calcular taller 1
 
Cadenas de markov
Cadenas de markovCadenas de markov
Cadenas de markov
 
Libro funciones reales
Libro funciones realesLibro funciones reales
Libro funciones reales
 
Formulario cálculo aplicado aplicaciones de la integral
Formulario cálculo aplicado aplicaciones de la integralFormulario cálculo aplicado aplicaciones de la integral
Formulario cálculo aplicado aplicaciones de la integral
 
Aplicacion RK4
Aplicacion RK4Aplicacion RK4
Aplicacion RK4
 
Guia 02 mat ii
Guia 02 mat iiGuia 02 mat ii
Guia 02 mat ii
 
Calculo u5
Calculo u5Calculo u5
Calculo u5
 
Crea robot con matlab
Crea robot con matlabCrea robot con matlab
Crea robot con matlab
 
Control de trayectoria de manipulador robótico de
Control de trayectoria de manipulador robótico de Control de trayectoria de manipulador robótico de
Control de trayectoria de manipulador robótico de
 
Fórmulario cálculo avanzado pep2
Fórmulario cálculo avanzado pep2Fórmulario cálculo avanzado pep2
Fórmulario cálculo avanzado pep2
 
Calculo1 aula12
Calculo1 aula12Calculo1 aula12
Calculo1 aula12
 
68908191 ejercicios-resueltos-derivacion
68908191 ejercicios-resueltos-derivacion68908191 ejercicios-resueltos-derivacion
68908191 ejercicios-resueltos-derivacion
 
Fórmulario cálculo avanzado pep1
Fórmulario cálculo avanzado pep1Fórmulario cálculo avanzado pep1
Fórmulario cálculo avanzado pep1
 
Al ap 02
Al ap 02Al ap 02
Al ap 02
 
3 sd caoticos
3 sd caoticos3 sd caoticos
3 sd caoticos
 
3 funciones de varias variables
3 funciones de varias variables3 funciones de varias variables
3 funciones de varias variables
 
3.1 maquina de turing.ppt
3.1 maquina de turing.ppt3.1 maquina de turing.ppt
3.1 maquina de turing.ppt
 

Semelhante a Capitulo6

Semelhante a Capitulo6 (20)

Formalismo de lagrange y hamilton
Formalismo de lagrange y hamiltonFormalismo de lagrange y hamilton
Formalismo de lagrange y hamilton
 
Mod auto 4
Mod auto 4Mod auto 4
Mod auto 4
 
metodos numericos
metodos numericosmetodos numericos
metodos numericos
 
taller metodos numericos 1
taller metodos numericos 1taller metodos numericos 1
taller metodos numericos 1
 
Examen final Autómatas y Lenguajes Formales
Examen final Autómatas y Lenguajes FormalesExamen final Autómatas y Lenguajes Formales
Examen final Autómatas y Lenguajes Formales
 
Olimpiada internacional de física 25
Olimpiada internacional de física 25Olimpiada internacional de física 25
Olimpiada internacional de física 25
 
Piezo rate gyro
Piezo rate gyroPiezo rate gyro
Piezo rate gyro
 
Aplicaciones de las ecuaciones diferenciales
Aplicaciones de las ecuaciones diferencialesAplicaciones de las ecuaciones diferenciales
Aplicaciones de las ecuaciones diferenciales
 
Electrónica digital: Circuitos Secuenciales síncronos
Electrónica digital: Circuitos Secuenciales síncronos Electrónica digital: Circuitos Secuenciales síncronos
Electrónica digital: Circuitos Secuenciales síncronos
 
Modu saya 4
Modu saya 4Modu saya 4
Modu saya 4
 
Mod auto 4
Mod auto 4Mod auto 4
Mod auto 4
 
06_econometria.ppt
06_econometria.ppt06_econometria.ppt
06_econometria.ppt
 
Segunda tarea sorpresa_seg_per_2012-13
Segunda tarea sorpresa_seg_per_2012-13Segunda tarea sorpresa_seg_per_2012-13
Segunda tarea sorpresa_seg_per_2012-13
 
6o conversatorio ciclo a2011 nanotubos de carbono
6o conversatorio ciclo a2011 nanotubos de carbono6o conversatorio ciclo a2011 nanotubos de carbono
6o conversatorio ciclo a2011 nanotubos de carbono
 
Reduccion al primer cuadrante
Reduccion al primer cuadranteReduccion al primer cuadrante
Reduccion al primer cuadrante
 
Cadenas de Markov
Cadenas de MarkovCadenas de Markov
Cadenas de Markov
 
Problemas cinematica
Problemas cinematicaProblemas cinematica
Problemas cinematica
 
Problemas cinematica
Problemas cinematicaProblemas cinematica
Problemas cinematica
 
Lineexample
LineexampleLineexample
Lineexample
 
Guía de Álgebra I- USACH
Guía de Álgebra I- USACHGuía de Álgebra I- USACH
Guía de Álgebra I- USACH
 

Mais de Oscar Eduardo

Mais de Oscar Eduardo (20)

Introducción a IngSW_2022.pptx
Introducción a IngSW_2022.pptxIntroducción a IngSW_2022.pptx
Introducción a IngSW_2022.pptx
 
Inventario tic
Inventario ticInventario tic
Inventario tic
 
Trayecto de actividades_diplomado
Trayecto de actividades_diplomadoTrayecto de actividades_diplomado
Trayecto de actividades_diplomado
 
Modelo pruebas
Modelo pruebasModelo pruebas
Modelo pruebas
 
Framework Android
Framework AndroidFramework Android
Framework Android
 
Comunicación
ComunicaciónComunicación
Comunicación
 
Modelos de Mediación
Modelos de MediaciónModelos de Mediación
Modelos de Mediación
 
Lenguajes regulares
Lenguajes regularesLenguajes regulares
Lenguajes regulares
 
User stories
User storiesUser stories
User stories
 
App upb móvil 20141
App upb móvil 20141App upb móvil 20141
App upb móvil 20141
 
Subir una aplicación a google play
Subir una aplicación a google playSubir una aplicación a google play
Subir una aplicación a google play
 
Analisis sintáctico
Analisis sintácticoAnalisis sintáctico
Analisis sintáctico
 
Iswiii
IswiiiIswiii
Iswiii
 
Presentacion rup
Presentacion rupPresentacion rup
Presentacion rup
 
Arquitectura sistema
Arquitectura sistemaArquitectura sistema
Arquitectura sistema
 
Doctic modelopropuestadeintervencin
Doctic modelopropuestadeintervencinDoctic modelopropuestadeintervencin
Doctic modelopropuestadeintervencin
 
Isw
IswIsw
Isw
 
Iswii
IswiiIswii
Iswii
 
Cod intermedio
Cod intermedioCod intermedio
Cod intermedio
 
Generalidades sobre windows phone 7.5
Generalidades sobre windows phone 7.5Generalidades sobre windows phone 7.5
Generalidades sobre windows phone 7.5
 

Capitulo6

  • 1. Cap¶ ³tulo 6 M¶quinas de Turing a En 1936, Allan Turing public¶ el primer estudio sobre un modelo de m¶quina o a abstracta. El quer¶ una noci¶n matem¶tica precisa del concepto informal ³a o a de "algoritmo". Su resultado fue el siguiente: cualquier algoritmo puede ser representado por un conjunto de instrucciones sobre una m¶quina de Turing. a Corolario: Hay problemas bien formulados, para los cuales no existe so- luci¶n algor¶ o ³tmica. a1 a2 ... ai ... an # # CONTROL FINITO P De¯nition 7 Una m¶quina de Turing MT es una tupla M = (Q; ; ¡; ±; q0 ; #; F ) a donde Q = conjunto de estados ¡ = conjunto de s¶mbolos de la cinta ³ # = caracter especial P = subconjunto de ¡ no conteniendo #; son los s¶mbolos de entrada. ³ ± : Q £ ¡ ! Q £ ¡ £ fL; R; ;g q0 = Estado inicial F µ Q = conjunto de estados ¯nales. # es un caracter de separaci¶n o vac¶ (blanco). Inicialmente en los o ³o primeros n posiciones de la cinta est¶n a1 :::an ; con la entrada. El resto de la a cinta tiene s¶ ³mbolos #: Teor¶ de la Computaci¶n ³a o Maricela Quintana 75 ITESM-CEM Dept. C.C. Jes¶s S¶nchez u a
  • 2. Al leer un s¶mbolo ai ; la MT puede: ³ 1) cambiar de estado 2) Escribir un s¶ ³mbolo en la cinta (en lugar de ai ) 3) Mover la cabeza hacia la derecha (L) o la izquierda (R): ID = descripci¶n instant¶nea = ®1 q ®2 = a1 a2 :::ai¡1 qa1 :::an o a . # & contenido de la estado contenido de la cinta hasta cinta hasta antes actual el # m¶s hacia la derecha. a de la cabeza lectora "Movimiento" x1 x2 ::xi¡1 qxi ::xn ` x1 ::xi¡2 pxi¡1 yxi+1 :xn si ±(q; xi ) = (p; y; L) L(M ) = lenguaje aceptado por la M T M P ¤ = fw j w 2 ¤ ; q0 w ` ®1 p®2 para alg¶n p 2 F y ®1 ; ®2 2 ¡¤ g u Otra suposici¶n: L(M ) es aceptado por M T si M se detiene. o Ejemplo M T para aceptar L = f0n 1n j n > 1g ² Inicialmente la cinta contiene 0n 1n seguido de un n¶ mero in¯nito de u blancos. 1) M lee el # m¶s signi¯cativo y lo reemplaza por una x: a 2) Se mueve hasta el 1 m¶s signi¯cativo y lo reemplaza por y: a 3) El ciclo se repite: { Si al buscar un 1, M encuentra # ) M para sin aceptar. { Si al buscar un 0 ya no hay, M busca si hay 10 s ) M acepta si ya no hay. P Q = fq0 ; q1 ; q2 ; q3 ; q4 g; = f0; 1g; ¡ = f0; 1; x; y; #g; F = fq4 g q0 = substituci¶n de 0 por x o q1 = b¶ squeda de 1;substituci¶n por y u o q2 = b¶ squeda de 0 u q3 = b¶ squeda de 10 s para ver si se acepta u Teor¶ de la Computaci¶n ³a o Maricela Quintana 76 ITESM-CEM Dept. C.C. Jes¶s S¶nchez u a
  • 3. CAP¶ ¶ ³TULO 6. MAQUINAS DE TURING 0 / 0, R 0 / 0, L 0 / x, R 1/y,L q0 q1 q y / y, L 2 y / y, R x / x, R # / #, R y / y, R q3 q4 y / y, R q0 0011 ` xq1 011 ` x0q1 11 ` xq2 0y1 ` q2 x0y1 ` xq0 0y1 ` xxq1 y1 ` xxyq1 1 ` xxq2 yy ` xq2 xyy ` xxq0 yy ` xxyq3 y ` xxyyq3 ` xxyy#q4 6.1 Construcci¶n modular de m¶quinas de Tu- o a ring Para combinar diagramas de transici¶n de M T hay que: o 1. Eliminar las caracter¶ ³sticas de inicio de los estados de todas las m¶qui- a nas compuestas excepto de la inicial. 2. Eliminar la caracter¶ ³stica de detenci¶n de los estados de parada e in- o troducir uno nuevo. 3. Para cada uno de los antiguos estados de parada p y cada x en ¡: (a) Si la m¶quina compuesta debe detenerse al llegar a p con el s¶ a ³mbolo actual x, dibujar un arco con etiqueta x=x de p al nuevo estado de parada. (b) Si al llegar al estado p con el s¶³mbolo actual x; la m¶quina de- P a be transferir el control a la m¶quina M = (S; ; ¡; ±; t; #; h) y a dibujar un arco x=z de p al estado q de M donde ±(t; x) = (q; z) Teor¶ de la Computaci¶n ³a o Maricela Quintana 77 ITESM-CEM Dept. C.C. Jes¶s S¶nchez u a
  • 4. ¶ 6.1. CONSTRUCCION MODULAR DE MAQUINAS DE TURING Ejemplo M T A : Mover la cabeza de lectura una posici¶n a la derecha (R). o x / x, R s t y / y, R # / #, R M T B : Encontrar la primera x a la derecha de la celda actual (Rx ). # / #, R # / #, R x / x, R x /x n l m y / y, R y / y, R Teor¶ de la Computaci¶n ³a o Maricela Quintana 78 ITESM-CEM Dept. C.C. Jes¶s S¶nchez u a
  • 5. CAP¶ ¶ ³TULO 6. MAQUINAS DE TURING M T C : Encontrar la primera y a la derecha de la celda (Ry ). # / #, R # / #, R x / x, R y/y p q r y / y, R x / x, R Usando las m¶quinas anteriores se puede construir una m¶quina que en- a a cuentre la segunda ocurrencia del s¶ ³mbolo distinto de # que se encuentre a la derecha de la celda actual. x B A y C x x /x x ≡ Abreviaturas: y ≡ ¬α z x , y ,z ,w w ≡ Símbolo genérico que x ,y ,z w representa a los 3. } A B ≡ AB 6.1.1 M¶quinas elementales a ² R: M¶quina que se mueve una celda a la derecha a Teor¶ de la Computaci¶n ³a o Maricela Quintana 79 ITESM-CEM Dept. C.C. Jes¶s S¶nchez u a
  • 6. ¶ 6.1. CONSTRUCCION MODULAR DE MAQUINAS DE TURING ² Y : M¶quina que escribe el s¶ a ³mbolo y en la celda actual ² L: M¶quina que se mueve una celda a la izquierda a ² Rx : M¶quina que recorre la cinta a la derecha de su posici¶n actual a o para buscar el s¶ ³mbolo x ¬ x R ² Rqx: Detenerse cuando se encuentre un s¶ ³mbolo 6= x x R ² La m¶quina Lx hace esa b¶ squeda hacia la izquierda a u ² M¶quinas de desplazamiento. SR transforma #xyyqxx# a ##xyqyx#, a desplazando hacia la derecha la cadena de s¶ ³mbolos no blancos a la de- recha de la celda actual. x,y w x,y σ #L } L } σ RσL # # R R # R #w #xyy x x# ` #x y y#x# ` # x yy#x# `# xxy#x# ` ##xy y x# " " " " " De la misma manera SL desplaza hacia la izquierda la cadena de s¶ ³mbo- los no blancos a la derecha de la celda actual. Teor¶ de la Computaci¶n ³a o Maricela Quintana 80 ITESM-CEM Dept. C.C. Jes¶s S¶nchez u a
  • 7. CAP¶ ¶ ³TULO 6. MAQUINAS DE TURING x,y w x,y σ #R } R } σ LσR # # L L# L# w Ejemplo M¶quina copiadora que transforma #w# a #w#w# : a x,y w R# R # L # L # R } #R# R # wR# L# L w # 6.2 M¶quinas de Turing como calculadoras a de funciones enteras Una M T puede leer n¶meros (par¶metros) en la cinta, clacular una funci¶n y u a o escribir el resultado en la cinta. Los n¶ meros normalmente son representados u en unario (0i = i) separados por un 1 : ¤ 0i1 10i2 10i3 :::0ik ` 0m (6.1) representa el c¶lculo de la funci¶n f (i1 ; i2 ; :::; ik ) = m: a o Si f (i1 ; i2 ; :::; ik ) est¶ de¯nida 8i1 ; i2 ; :::; ik entonces hablamos de funcio- a nes recursivas totales. Las funciones calculadas por las MT son llamadas recursivas parciales. Ejemplo ©m¡n; ª C¶lculo de la substituci¶n propia m $ n = a o m<n #; m<n : La m¶quina a siguiente hace ese c¶lculo: a M = (fq0 ; :::; q6 g; f0; 1g; f0; 1; #g; ±; q0 ; #; q6 ); Entrada Salida m n ¤ m$n #q0 10 # ` #0 # Teor¶ de la Computaci¶n ³a o Maricela Quintana 81 ITESM-CEM Dept. C.C. Jes¶s S¶nchez u a
  • 8. ¶ 6.3. MAQUINAS DE TURING COMO ACEPTADORAS DE LENGUAJE 1 / #, R # / #, L 0 / 0, R 1 / 1, R 0 / #, R 0 / 0, L 1 / #, L 0 / #, R 1 / 1, R 0 / 1, L q0 q1 q2 q3 q4 q5 1 / #, R # / #, R 1 / 1, L 0 / 0, L # / #, R # / #, R q6 ² M cambia un cero por un blanco (q0 ). ² Cuando M busca un cero a la derecha y encuentra un blanco, entonces ya acab¶ de restar. Se pasa entonces a q4 y empieza a cambiar los 1's o por #: ² Cuando M quiere en q0 remplazar un 0 por # y no hay, entonces hay que hacer el resultado nulo (q5 ). 6.3 M¶quinas de Turing como aceptadoras de a lenguaje Al igual que con los AP, una MT puede aceptar un lenguaje de dos maneras: llegando a un estado ¯nal S escribiendo algo especial en la cinta (por ejemplo s¶ o deteni¶ndose. Normalmente se supone que una M¶quina de Turing ³), e a acepta las cadenas s¶lo con detenerse. o Las M¶quinas de Turing aceptan lenguajes formales que pueden ser ge- a nerados por una gram¶tica de tipo 0: recursivamente enumerables (r.e.). Las a MT son los reconocedores de lenguaje m¶s poderosos que existen. a Dentro de algunos lenguajes r.e. existen algunos strings para los cu¶les a no hay MT que pueda determinar que NO est¶n en el lenguaje. Sin embargo, a consideramos que siempre pueden determinar que SI pertenecen al lenguaje. El subconjunto de lenguajes r.e. para los cuales hay MTs que siempre pueden determinar si un string est¶ o no est¶ en el lenguaje, se llama lenguajes a a reursivos. Un ejemplo de lenguajes recursivos son los LLC. Teor¶ de la Computaci¶n ³a o Maricela Quintana 82 ITESM-CEM Dept. C.C. Jes¶s S¶nchez u a
  • 9. CAP¶ ¶ ³TULO 6. MAQUINAS DE TURING Theorem 7 Todo lenguaje aceptado por una MT es formal. Demostraci¶n o P Supongamos que la MT M = (Q; ; ¡; ±; q0 ; #; F ) imprime # y # cuando acepte el lenguaje L(G). Podemos construir una gram¶tica G = (V; T; P; S) a donde: V = P [; ; ]; Y ) [ Q [ ¡ (S; T = Las producciones est¶n dadas por: a S ! [h#y#] donde h es el estado ¯nal de M #] ! ##] Para ampliar la longitud de la cadena anterior a la longitud deseada 8± (p; x) = (q; y; ;) Transici¶n a la inversa [#zqy#] ) [#zpx#] o qy ! px 8±(p; x) = (q; x; R) [#xqyz#] ) [#pxyz#] xq ! px 8±(p; x) = (q; x; L) [#xqyx#] ) [#ypx##] 8s¶³mbolo y 2 ¡ qyx ! ypx [¿ # ! " eliminaci¶n de no terminales auxiliares, donde o ##] ! #] ¿ =estado inicial de M #] ! " Ejemplo La siguiente M T acepta fxm y n j m; n ¸ 0g : x/R y/R #/L #/R #/Y y/L τ / p q s t h #/R y/R x/# #/L y/# r Teor¶ de la Computaci¶n ³a o Maricela Quintana 83 ITESM-CEM Dept. C.C. Jes¶s S¶nchez u a
  • 10. ¶ 6.3. MAQUINAS DE TURING COMO ACEPTADORAS DE LENGUAJE La gram¶tica correspondiente es: a S ! [h#y#] #] ! ##]; [¿ # ! " ##] ! #]; #] ! " r# ! qx j qy por ±(q; x) = (r; #); ±(q; y) = (r; #) tY ! S# ±(S; #) = (t; Y ) #= ! ¿ # ±(¿; #) = (=; #; R) x= ! =x ±(=; x) = (=; x; R) yp ! =y j py ±(=; y) = (p; y; R); ±(p; y) = (p; y; R) #S ! q# ±(q; #) = (S; #; R) q## ! #p#j#r# por ±(p; #) = (q; #; L); ±(r; #) = (q; #; L) qx# ! xp#jxr# qy# ! yp#jyr# qY # ! Y p#jY r# h#Y ! #tY por ±(t; Y ) = (h; Y; L) hxY ! xtY hyY ! ytY hY Y ! Y tY Ej: S ) [h#y#] ) [h#y###] ) [#ty###] ) [#S####] ) [q#####] ) [#r####] ) [#qx###] ) [#xr###] ) [#xqx##] ) [#xxr##] ) [#xxqy#] ) [#xxyp#] ) [#xx=y#] ) [#=xxy#] ) [¿ #xxy#] ) [xxy#] ) xxy Theorem 8 Todo lenguaje formal es aceptado por una m¶quina de Turing: a 1. Utilizar cinta 1 para almacenar cadena de entrada. 2. Escribir el s¶ ³mbolo inicial de la gram¶tica en cinta 2. a 3. Aplicar repetidamente y de manera no determinista las reglas de escri- tura de la gram¶tica a la cinta 2. a 4. Si el contenido de la cinta 2 se convierte en una cadena con s¶lo ter- o minales, compararla con el contenido de la cinta 1. Si son iguales ) detenerse, aceptar, en caso contrario no aceptar. Teor¶ de la Computaci¶n ³a o Maricela Quintana 84 ITESM-CEM Dept. C.C. Jes¶s S¶nchez u a
  • 11. CAP¶ ¶ ³TULO 6. MAQUINAS DE TURING 6.4 Equivalencia de m¶quinas de Turing a Theorem 9 Si L es reconocido por una m¶quina de Turing M1 con varias a cintas, es reconocido por una m¶quina de Turing M2 . a Prueba MT con varias cintas: A1 Am . . . Z1 Zm Control Finito Simulaci¶n M1 : o 1. Se guarda en la cinta de M2 el contenido de todas las cintas, as¶ como ³ la posici¶n de cada una de las cabezas. o 2. M2 se mueve hacia la derecha para revisar el contenido de las cabezas de M1 . 3. Al llegar a la ultima, se tiene toda la informaci¶n necesaria para ver el ¶ o siguiente paso de M1 : 4. M2 se mueve hacia la izquierda para mover la posici¶n de todas las o cabezas al lugar indicado. Problema: Lentitud de simulaci¶n o Theorem 10 Si L es reconocido por una m¶quina de Turing no determinista a M1 , entonces L es aceptada por una MT determinista M2 . Prueba Supondremos que M2 es una MT de tres cintas. La primera cinta guarda la entrada al algoritmo. Para recorrer el ¶rbol de ejecuci¶n de M1 : a o Teor¶ de la Computaci¶n ³a o Maricela Quintana 85 ITESM-CEM Dept. C.C. Jes¶s S¶nchez u a
  • 12. ¶ 6.5. HIPOTESIS DE CHURCH 1. Para todas las secuencias 1:::r generadas en la cinta 2, se simula M1 en la cinta 3 2. Si M1 acepta ) M2 acepta. 3. Si ninguna selecci¶n de opciones de M1 lleva a acepta r ) M2 no acepta o 6.5 Hip¶tesis de Church o Las funciones computables por una M¶quina de Turing son las funciones a recursivas parciales. Nadie ha podido encontrar una funci¶n parcial que sea o computable pero no recursiva parcial. ½ V1 ; V2 ; :::; Vn cuando MT se detiene F (W1 ; W2 ; :::; Wn ) = no de¯nida 6.6 M¶quina de Turing Universal a Una m¶quina de Turing Universal es una MT que recibe como entrada la a codi¯caci¶n M de cualquier MT y una entrada w, y que genera el mismo o resultado que la MT M . En otras palabras, una MTU es un simulador de cualquier MT. 6.6.1 Codi¯caci¶n de MT o Primero codi¯camos los simbolos del P alfabeto y s¶ ³mbolos especiales: x1 = 0 x4 ; x5 2 = s¶³mbolos del alfabeto x2 = 1 x3 = # as¶ como los movimientos posibles de la MT: ³ D1 = L , D2 = R, D3 = nada Entonces una transici¶n ±(qi ; xj ) = (qk ; xe ; Dm ) puede ser codi¯cada de o la siguiente manera: 0i 10j 10k 10` 10mP y una MT M = (Q; ; ¡; ±; q; #; fq2 g) puede codi¯carse en binario como sigue: 111 c¶digo o 11 c¶digo ..... o 11 c¶digo 111 o transici¶n 1 o transici¶n 2 o ultima transici¶n ¶ o Teor¶ de la Computaci¶n ³a o Maricela Quintana 86 ITESM-CEM Dept. C.C. Jes¶s S¶nchez u a
  • 13. CAP¶ ¶ ³TULO 6. MAQUINAS DE TURING Una M T seguida de un string w ser¶ denotada por la concatenaci¶n de a o 0 0 los dos strings: < M ; w >, donde M representa la codi¯caci¶n binaria de o M. 6.6.2 Lenguaje Universal De¯namos el siguiente lenguaje aceptado por una MTU: Lu = f< M 0 ; w >j M acepta wg ½ (0 + 1)¤ Preguntar si w 2 L(M ) es equivalente a preguntar si < M`; w >2 Lu . Theorem 11 Lu es recursivamente enumerable (r:e:), o dicho de otro modo, existe una MTU que acepta este lenguaje y siempre puede aceptar un string si ¶ste pertenece a L(M ): La MTU no necesariamente para en todas las e entradas. Prueba La siguiente m¶quina multicintas Mu puede funcionar como MTU: a qi = 0 i Estado de M 3 Simulación de la cinta de M 2 Entrada <M,w> 1 Mu contiene en la cinta 1 la codi¯caci¶n < M; w > y hace lo siguiente: o 1. Inicializa la cinta 2 con w, la cinta 3 con 01 = q1 : 2. Si la cinta 3 contiene qf , entonces pararse y aceptar. Teor¶ de la Computaci¶n ³a o Maricela Quintana 87 ITESM-CEM Dept. C.C. Jes¶s S¶nchez u a
  • 14. 6.7. TEOR¶ DE LA DECIBILIDAD IA 3. Sea xj el siguiente s¶mbolo de w en la cinta 2 y 0i el estado en la cinta ³ 3: Buscar en la cinta 1 la transici¶n ±(qi ; xj ) si no existe, pararse y no o aceptar 4. En caso contrario, moverse al estado dado (modi¯car la cinta 3), escribir el string de salida en la cinta 2, y moverse (seg¶ n lo especi¯cado) en la u cinta 2. Regresar al paso 3. 6.7 Teor¶ de la decibilidad ³a Un problema decidible es aqu¶l para el cual existe un algoritmo que siempre e para en todas las instancias de entrada respondiendo a¯rmativa o negati- vamente a la pregunta >acepta la m¶quina de Turing una entrada w? Los a lenguajes que representan a los algoritmos decidibles son llamados recursi- vos. Note que los problemas que s¶lo tienen una instancia son trivialmente o resolubles. Si la MT no para en todas las instancias, se dice que el lenguaje que acepta es recursivamente enumerable (r.e.) y se dice que el problema es indecidible. El concepto de decibilidad se llama computabilidad cuando hablamos de MTs como m¶quinas que calculan funciones enteras. Hablamos entonces de a problemas computables o no computables. 6.7.1 Un lenguaje no recursivamente enumerable P Sea un conjunto de strings de ¤ = (0 + 1)¤ =< wi ; Mj >. Considere uan tabla in¯nita donde el elemento i; j vale uno si el string wi es aceptado por Mj (wi 2 L(Mj )) : j 1 2 3 4 . . . 1 0 1 1 0 . . . i 2 1 1 0 0 . . . 3 0 0 1 0 . . . 4 0 1 0 1 . . . . . . Teor¶ de la Computaci¶n ³a o Maricela Quintana 88 ITESM-CEM Dept. C.C. Jes¶s S¶nchez u a
  • 15. CAP¶ ¶ ³TULO 6. MAQUINAS DE TURING Esta tabla contiene todas las posibles m¶quinas de turing existentes. Sea a Ld = fwi j wi 2 L(Mi )g el lenguaje que representa los ceros de la diagonal = de la tabla anterior. No existe ninguna M T que acepte Ld , por lo que este lenguaje no es r.e. Prueba No existe una Mj tal que L(Mj ) = Ld . Por contradicci¶n, suponemos o que Mj acepta Ld ) L(Mj ) = Ld . ² Si la entrada j; j de la tabla = 0 ) wj 2 Ld ,! wj 2 L(Mj ) ^ wj 2 Ld ) L(Mj ) 6= Ld = ² Si la entrada j; j de la tabla = 1 ) wj 2 Ld = ,! wj 2 L(Mj ) ^ wj 2 Ld ) L(Mj ) 6= Ld = Corolario: Ld no es un lenguaje r:e ) no es recursivo. 6.7.2 Propiedades de lenguajes recursivos y recursiva- mente enumerables El complemento de un lenguaje recursivo es recursivo. Sí W Sí W No No Teor¶ de la Computaci¶n ³a o Maricela Quintana 89 ITESM-CEM Dept. C.C. Jes¶s S¶nchez u a
  • 16. 6.7. TEOR¶ DE LA DECIBILIDAD IA La uni¶n de dos lenguajes recursivos es un lenguaje recursivo. o Sí Sí Sí M1 start M2 No No No La uni¶n de dos lenguajes recursivamente enumerables es r:e : o M1 Sí Sí W M2 Sí Teor¶ de la Computaci¶n ³a o Maricela Quintana 90 ITESM-CEM Dept. C.C. Jes¶s S¶nchez u a
  • 17. CAP¶ ¶ ³TULO 6. MAQUINAS DE TURING Si L y L son enumerables recursivamente ) L y L es recursivo. M M1 Sí Sí W M2 Sí No 6.7.3 Un lenguaje no recursivo Theorem 12 Lu , el lenguaje aceptado por la MTU no es recursivo. Dicho en otras palabras, la pregunta w 2 L(M ) no es decidible en el caso general. Prueba Sea A2 un algoritmo para reconocer Lu. Entonces Ld = fwi jwi 2 L(Mi )g ser¶ aceptado por la siguiente m¶quina: ³a a Sí Sí <Mi, Wi> A2 Wi=W Conversión Algoritmo para No No Lu Algoritmo para Ld Pero como Ld no es r.e entonces no es recursivo y por lo tanto Ld no es recursivo, por lo que la ¯gura anterior no puede existir, pues no hay algoritmo que pare en todas las instancias de Ld . Entonces, forzosamente no hay algoritmo para Lu , por lo que Lu no es recursivo. Teor¶ de la Computaci¶n ³a o Maricela Quintana 91 ITESM-CEM Dept. C.C. Jes¶s S¶nchez u a
  • 18. 6.7. TEOR¶ DE LA DECIBILIDAD IA 6.7.4 El problema de la terminaci¶n o No puede construirse ning¶n algoritmo que, dado cualquier programa R y u una entrada X, determine si R termina correctamente con X. Demostraci¶n por contradicci¶n o o 1. Supongamos que existe un programa Q que acepta otro programa y una entrada y decide si dicho programa termina o no. 2. Construir un nuevo programa S que reciba como entrada un programa W , el cual es a la vez programa y entrada a Q. Si Q regresa verdadero, S entra a un ciclo in¯nito. En caso contrario termina. program S(W ); var FOREVER:boolean; function Q(R,x):boolean; begin /* CODIGO MARAVILLOSO */ end begin FOREVER:= FALSE; if Q(W; W ) then repeat FOREVER:= false until FOREVER; else writeln(El programa termina); end 3. Meter a S como entrada el programa S. <S se equivoca!, por lo que llegamos a una contradicci¶n. o Teor¶ de la Computaci¶n ³a o Maricela Quintana 92 ITESM-CEM Dept. C.C. Jes¶s S¶nchez u a
  • 19. CAP¶ ¶ ³TULO 6. MAQUINAS DE TURING 6.7.5 Otros problemas no decidibles Problema: Es L(M)6= 0? > Se puede construir una M T que al aceptar el c¶digo de la M T M o respondia si (o no) esta M T acepta alg¶n u string ? Lne = f< M >j L(M ) 6= ;g r:e no recursivo ( y su complemento Le = f< M >j L(M ) = ;g) no r:e Prueba 1) M = MT que reconoce c¶digos de MT `S que aceptan conjuntos no o vac¶ ³os. Sí Generación <Mi,x> W<Mi> M uj Sí entradas No x Generaci¶n entradas en orden conocido = f0; 1; 01:::::g o Pasos: j = 1; 2:: )(strinbg i; j) = f(1; 1); (1; 2); (2; 1); (1; 3); (2; 2):::g i + j est¶ en aumento a j Mu a m¶quinas de Turing limitada a j pasos. a 2) Le es no r:e debido al tema 3 (si fuera r:e) ) Lne ser¶ recursivo ³a Otro ejemplo (ver libro blanco) Lr = f< M >j L(M ) es recursivo por reducci¶n de Lr a Lug o Teor¶ de la Computaci¶n ³a o Maricela Quintana 93 ITESM-CEM Dept. C.C. Jes¶s S¶nchez u a
  • 20. 6.7. TEOR¶ DE LA DECIBILIDAD IA <M,w> Sí Sí M´ A Mr Máquina que no acepta M `= traducción de M, w Máquina por reducci¶n de Lr o Lu o Lnr no es r:e Otros: No se puede decidir: Demostrar -M acepta w(w) -Si el lenguaje aceptado por una MT es vac¶ o recursivo ³o -Si el lenguaje aceptado es (¯nito, in¯nito , regular, libre de contexto, tiene un n¶mero par de strings. u Decidibles -<Si el lenguaje aceptado por una MT es r:e! -Muchas propiedades de LRsyLLc : vac¶ in¯nito, M acepta w. ¶ ³o, Teorema de Rice -L es una propiedad trivial si L es vac¶ ¶ si L tiene todos los r:e`s: ³o o 1) Ninguna propiedad no trivial Lde los P lenguajes r:e es decidible. propiedad: conjunto de lenguajes r:e en = (0 + 1)¤ (Un conjunto L tiene una propiedadL si L es un elemento de L )= Lp )No hay algoritmos para esas preguntas. #Algoritmos contables, in¯nito$ #Problemas incontables, in¯nito 2) L L es r:e ssi L satisface: ² Si L = L y L ½ L` para alg¶n r:e L` ) L` ½ L u ² Si L es un lenguaje in¯nito ½ L ) hay un subconjunto de L ½ L Teor¶ de la Computaci¶n ³a o Maricela Quintana 94 ITESM-CEM Dept. C.C. Jes¶s S¶nchez u a
  • 21. CAP¶ ¶ ³TULO 6. MAQUINAS DE TURING ² El conjunto de lenguajes ¯nitos en L es enumerable. Example 1 Las siguientes propiedades de r:e`s no son r:e`s: -L = ; g 1) es violado P -L = ¤ g2) es violado -L recursivo g 1) es violado -L no es recursivo g1) es violado Teor¶ de la Computaci¶n ³a o Maricela Quintana 95 ITESM-CEM Dept. C.C. Jes¶s S¶nchez u a