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

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 uns¶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 DETURING 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 DETURING 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 DECHURCH 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¶ DELA 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¶ DELA 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¶ DELA 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¶ DELA 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