SlideShare una empresa de Scribd logo
1 de 14
Descargar para leer sin conexión
UNIDAD IV: Maquinas de Turing.

                                               Elaborado por: Ing. Edecio R. Freitez




                       DESARROLLO DE LA UNIDAD IV



1.   Introducción: Son la idea fundamental de la computación. El modelo de máquina de
     Turing es por demás importante ya que todos los cálculos que puede realizar esta
     máquina incluye todos los cálculos que cualquier máquina puede realizar.

         La idea de Turing fue desarrollar un sistema capaz de modelar cualquier proceso que
     se considere un cálculo, por este motivo todos los especialistas en ciencias de la
     computación aceptan la tesis de Turing [“Si algo puede hacerse como un procedimiento,
     se puede hacer con una maquina de Turing y viceversa” .

        Se mostró que las máquinas de Turing resuelven todas las funciones recursivas
     parciales y esta clase de funciones incluyen todas las funciones que pueden computarse.
     Por lo tanto para saber que puede resolverse mediante una computadora se estudia la
     Maquina de Turing.


        Una MT es una máquina abstracta que consiste en una unidad de control que es un
     autómata finito, un cabezal guiado por la unidad de control y una cinta infinita a ambos
     lados la cual se considera dividida en celdas donde cabe solamente un símbolo.
     Inicialmente la cinta contiene un número finito de símbolos de     y las celdas que no
     contienen ningún símbolo, se completarán con un blanco en cada una de ellas.


       El cabezal se encuentra situado en el primer símbolo ( ␢) de la cinta y solamente
     puede escanear una celda por vez.

       Cada movimiento unívoco en una MT viene determinado por el estado de la unidad de
     control juntamente con el símbolo de la cinta que indica el cabezal en un determinado
     momento.

       Cada movimiento consiste en escribir un símbolo en la celda indicada por el cabezal,
     mover este último a la izquierda o a la derecha y cambiar de estado.


        Los movimientos de la MT provocan un conjunto de cómputos que pueden
     terminar o no. Si termina, la unidad de control se encuentra en un estado final y
     su resultado será el conjunto de símbolos que se encuentren en la cinta, sino el
     resultado queda indefinido.
      Definición: Formalmente, se define una máquina de Turing (MT) como una sietetupla
      de la forma M=( Q, , ,S, , , F) donde

 Q es un conjunto finito de estados
Alfabeto de entrada

         (Conteniendo a    y a un símbolo especial      , tal que       ) es el alfabeto de cinta.

     S = q 1 Representa el estado inicial.

     : Es un símbolo especial denominado símbolo blanco (           )

     F    Q Representa el conjunto de estados finales. Aceptación o parada.

         Es una función parcial llamada función de transición.

                  :Qx        Qx      x {L, R}

     Representación: Este tipo de máquina consta hipotéticamente de una unidad de control
     capaz de interpretar las instrucciones que reciba, y de una cabeza lectora que permite leer
     el contenido de una de las casillas en que está dividida una memoria lineal, ilimitada en
     ambas direcciones de sus extremos.

   La máquina en su funcionamiento pasa por diferentes estados q i en instantes t
 sucesivos. El argumento de la función que queremos calcular estará almacenado
 previamente en la memoria, y en el instante inicial, antes de que la máquina comience
 a funcionar, la cabeza lectora apuntará al símbolo más a la izquierda del argumento. A
 partir de ese momento la máquina realizará operaciones, que dependerán del estado en
 que ella se encuentre, y del símbolo que en ese momento lea la cabeza lectora. Con
 estas operaciones se podrán realizar las siguientes tareas: sustituir el símbolo leído por
 otro, pasar a leer el símbolo que esta en memoria a la derecha del símbolo leído, pasar
 a leer el símbolo que esta en memoria a la izquierda, o saltar directamente a ejecutar
 otra instrucción si se cumple una condición especificada; en todos los casos, y una vez
 ejecutada la tarea indicada, se pasaría al estado que también se indica en la propia
 instrucción.

                   Estas instrucciones, o cuaternas, las podemos representar

Q1
                                       .... a 1 a 2 a 3 ....
q2
.
.                                   Lectura               Escritura
.
.
.

         Estado                               Control
n
Características:
       La cinta es infinita, por lo que a los dos lados de la información que aparezca en la
  entrada, habrá espacios en blanco representados por b.
       Inicialmente contiene un número finito de símbolos           predecimos y seguidos de
  infinitos blancos (símbolo especial b.
       Al igual que el resto de los autómatas, se representan por la tabla de transición en la
  que en las filas están los estados, en las columnas los símbolos de T, y en la posición ( q,
  a) aparece ( q, a.

  Movimiento: Si la Maquina de Turing esta en un estado q Q, lee a , y la función de
  transición para esa pareja estado-símbolo es:
                        q, a =(p, m, x)
  Entonces la Maquina de Turing:
  1. Imprime el símbolo x en la cinta en donde estaba él a y
  2. Pasa del estado q a p.
  3. Mueve la cabeza lectora de la cinta de entrada / salida hacia la izquierda ( m=I),
      derecha        (m=D) o se para (m=P .
  Ejemplo: Sea la M de T definida por M=( Q, , ,S, , , F) donde
  Q= q 1 , q 2 ;      a, b ;    a, b, ; S=q 1 ; F= q 2 ; y
      dada por:

    q 1 , a = q 1 , a, R
    q 1 , b = q 1 , a, R
    q1 ,   = q2 , , L

  Una cinta asociada a la maquina es:                           ... a    b b a …

                                                                    q1
  Solución: La maquina dada inicia sus cálculos en el estado q 1 , y la cabeza de lectura/
  escritura apunta hacia la celda que contiene el símbolo que se encuentra en el extremo
  izquierdo de la cinta, Veamos a continuación el recorrido que hace la maquina para la cinta
  dada:




... a   b b a …                   ... a b      b a …            ... a a    b a …

   q1                                     q1                              q1

... a a a a …                      ... a a a    a               ... a a    a a …

             q1                                     q1                         q2

  Comentario: Cabe destacar que la maquina dada recorre la cinta dada de izquierda a
  derecha cambiando todos los símbolos b’ es de la misma por a, se detiene a la izquierda
  del primer blanco que consiga.
Nota: Una funcion parcial no esta necesariamente definida para todo elemento del
conjunto del que se realiza la transformación; por lo tano puede que la función “ ” no
una imagen para algún par Q x . En otro orden de ideas las maquinas de turing
dependen únicamente del estado actual y del contenido de la celda sobre la que se
encuentra la cabeza de lectura/escritura, en consecuencia cualquier cadena de entrada se
debe presentar a la maquina sobre su cinta.


Notación utilizada para la representación de un Maquina de Turing: A continuación se
presentaran dos de las notaciones mas utilizadas para presentar la información de
manera más conveniente.

1- La primera representa una configuración como un par (q i , w 1 w 2 ), donde q i es el
    estado actual, w 1 es la cadena de la cinta que precede a la celda sobre la que se
    encuentra la cabeza de lectura / escritura,   es el símbolo de la cinta sobre el que se
    encuentra la cabeza de lectua/escritura y w 2 es la cadena que hay a continuación de
    la cabeza de lectura / escritura.

2- La segunda notación          viene dada por una cadena          a1 a2 ... ak 1 q1 a k ... a n , que
    representa la configuración ( qi , wa k ), es decir la cabeza de lectura / escritura se
    coloca sobre la celda que contiene a k y el estado actual es qi , es de notar que la
    cadena       a1 a2 ... ak 1 q1 a k ... a n , indica que la cabeza de lectura / escritura       se
    encuentra sobre el símbolo de la cinta que aparece siguiendo al estado.

Ejemplo: A continuación se presenta la cinta analizada anteriormente utilizando estas
notaciones:

1- Utilizando la primera notación se tiene que:
   q 1 , abba      q 1 , abba   q 1 , aaba   q 1 , aaaa        q 1 , aaaa       q 2 , aaaa

2- Utilizando la segunda notación se tiene que:

    q 1 ,a,bba      aq 1 bba   aaq 1 ba   aaaq 1 a aaaaq 1     aaaq 2 a


Nota: Sea cual sea la notación utilizada denotaremos el paso de una configuración a otra
     por medio del símbolo “             “. Las configuraciones de una Maquina de Turing
     se conocen como descripciones instantáneas.

Ejemplo: Ejemplo: Sea la M de T definida por M=( Q, , ,S, , , F) donde
Q= q 1 , q 2 , q 3 ; a, b ;   a, b, ; S=q 1 ; F= q 3 ; y
    dada por:

 q 1 , a = q 1 , a, L
 q 1 , b = q 1 , b, L
 q1 ,   = q 2 , ,R
q 2 , a =(q 3 ,a,L)
 q 2 , b =(q 3 ,b,L)
 q 2 , =(q 3 , ,L)

Comentario: La maquina anterior recorre la cinta hacia la izquierda hasta que se consiga
con la primera celda en blanco, deteniéndose y colocándose sobre dicho blanco, esto es:

  q 1 , aababb           q 1 , aababb                 q 1 , aababb          q 1 , aababb

                 q 1 , aababb             q 1 , aababb               q 1 , aababb

        Nota: Cuando            qi , a    esta indefinida      para una configuración de cinta, es
        imposible que pase a otra configuración, entonces se dice que la M de T esta
        parada; puede que q F, siendo F el conjunto de estados finales o puede que no.
        De cualquier forma en muchas ocasiones es conveniente dotar de significado a la
        parada en un estado de F. A manera de simplificación se supondrá que no se
        definirá ninguna transición para cualquier estado de F, por lo que la maquina se
        detendrá siempre a su estado final.


        Definición: Cuando se analiza una cinta asociada a una M de T, la secuencia de
        todos los movimientos que conducen a una configuración de parada se denominan
        “computación”.

        Ejemplo: Sea la M de T, dada por:

    Q= q 1 , q 2    ;     a, b ;         a, b,   ; S=q 1 ; F= ; y
             dada por:                   La cinta es: q 1 ,abW, con W
          q 1 , a = q 2 , a, R
          q 1 , b = q 2 , b,R
          q1 ,     = q 2 , ,R
          q 2 , a =(q 1 ,a,L)
          q 2 , b =(q 1 ,b,L)
          q 2 , =(q 1 , ,L)

        Solución: q 1 ,abW                 q 1 ,abW          q 1 ,abW         q 1 ,abW     q 1 ,abW

        Observación: Como se puede apreciar la maquina analizada anteriormente queda
        en un bucle infinito ciclando entre dos estados. Durante su operación una M de T
        ejecuta transiciones repetidamente hasta llegar a su estado de parada, esto quiere
        decir, que bajo ciertas condiciones es posible que nunca se detengan los cálculos
        de una M de T, dado que su programa interno puede quedar atrapado en un ciclo
        sin fin(Como en el caso anterior. Sin embargo una anomalía que puede ocurrir
        durante este proceso es que la cabeza de la maquina pueda rebazar el extremo
        izquierdo de la cinta; en este caso la maquina abandonara los cálculos y se dice
        que la ejecución de la maquina sufrió una “terminación anormal”
2. Lenguaje Aceptado por una Maqu8ina de Turing.

        Definición: M=( Q, , ,S, , , F) una maquina de turing, entonces el lenguaje
         aceptado por M es:
                                                                             *
                  L(M) = w             q1w   * w 1 pw 2 para p F y w i
                                                                                       *
        Ejemplo: Construya una M de T que acepte el lenguaje regular a sobre
             a,b , la maquina debe comenzar sus cálculos por el extremo izquierdo. El
        diseño de la maquina es el siguiente:
         Q= q 1 , q 2 ;        a, b ; a, b, ; S=q 1 ; F=q 2 ; y
              dada por:
          q 1 , a = q 1 , a, R
         q1 ,    = q2 , , R

        Comentario: La maquina anterior realiza su análisis hacia la derecha, leyendo
        cada símbolo y comprobando que es una “a”; si lo es se realiza un
        desplazamiento hacia la derecha, si encuentra un “ ” sin haber leído un ningún
        otro carácter que no sea “a” la maquina para y acepta la cadena. Si de lo contrario
        consigue un carácter distinto de a y la maquina se puede parar en un estado
        que no es de aceptación. Cabe destacar que esta maquina de Turing para en el
        estado q 2 , solo si analiza una cadena de cero o más a’es.
        Nota: Para rechazar una cadena que no es aceptada por una M de T, lo único que
        hay que hacer es evitar que llegue a su estado final, una alternativa es entrar en
        un bucle infinito, en el caso del lenguaje anterior podría ser aceptado por:

        M=( Q, , ,S, , , F)
        Definición: Se dice que una función de cadena f es Turing computable si existe
        una maquina de Turing M=( Q, , ,S, , , F) para la cual q w          q f u para
        algún q   f     F, cuando f(w)=u.
        Ejemplo: Sea            a, b , que representa los enteros positivos mediante cadenas de
                                  2             n
        a’es, es decir, a=1, a =2,......., a =n. La función suma f(n, m)=n+m se puede
                                                               n   m     n m
        implementar para por medio de la transformación de a ba en a         b, se puede
        obtener una M de T que lleve a cabo este proceso de la manera siguiente:

        M=( Q,        , ,S, , , F), donde:

        Q= q 1 , q 2 , q 3 ,q 4 ,q 5   ;     a, b ;   a, b,   ; S=q 1 ; F= q 5   ; y
            dada por:
         q 1 , a = q 1 , a, R
         q 1 , b = q 2 ,a,R
         q 2 , a =(q 2 ,a,R)
         q2 ,     =(q 3 , ,L)
         q 3 ,a =(q 4 ,b,L)
         q 4 ,a =(q 4 ,a,L)
         q 4 , =(q 5 , ,R)
3. Construcción y Modificación de una Maquina de Turing.

        Definición: Sean M 1 y M 2 dos M de T sobre el mismo alfabeto de entrada                                       y el
        mismo alfabeto de cinta                , donde M 1 =( Q 1 ,          , ,S, ,   1,   F 1 ) y M 2 =( Q 2 ,   ,
         ,S, ,    2    , F 2 ), cabe destacar que Q 1 Q 2 = . La composición de las maquinas de
        turing M 1 y M 2 es la maquina de Turing M=( Q,                            , ,S, , , F), que se denota por
        M 1 M 2 donde:

        Q=Q 1         Q2
        S=s 1
        F=F 2


                                  1   q,   ,       Si q Q 1 y      1   q,       (p, t, X), para todo p     F1

                 q,     =                      2   q, ,     Si q Q 2

                                (s 2 , t, X), Si q Q 1 y           1    q,     = (p, t, X) para algún p F 1



        Nota: Cabe destacar que la composición de M 1 M 2 se comporta como M 1 hasta que
        M 1 llega a su estado final. En ese instante cambia al estado inicial de M 2 y se
        comporta como M 2 hasta que termina.
        Ejemplo: Sean M 1 y M 2 dos M de T dadas por

 M1 :      Q 1 = q 1 , q 2 , q 3 ,q 4      ;         a ;      a,       ; S =q 1 ; F = q 4      ; y
            1-            dada por:
              q 1 , a = q 2 , a, R
                q1 , = q 2 , , R
                q 2 , a =(q 2 ,a, R)
                q2 ,       =(q 3 , , L)
                q 3 ,a =(q 4 ,a, R)
                q 3 , =(q 4 , , R)


          M 2 : Q 2 = p1 , p 2         ;           a, b ;     a, b,         ; S=p 1 ; F= p 5    ; y
            2-            dada por:
              p 1 , a = p 2 , a, R
                p 1 , b = p 2 ,a, R
            Comentario: La composición M 1 M 2 se comporta como M 1 hasta que M 1 llega a
            un estado final. En ese momento cambia al estado inicial de M 2 y se comporta
como M 2 hasta que termina.         A continuación   se presentan las transiciones
asociadas a la maquina M 1 M 2 .
 q 1 , a = q 2 , a, R
 q1 , = q 2 , , R
 q 2 , a =(q 2 ,a, R)
 q2 ,   =(q 3 , , L)
 q 3 ,a =(p 1 ,a, R)
 q 3 , =(p 1 , , R)
 p 1 , a = p 2 , a, R
 p 1 , b = p 2 ,a, R

Bloques de Construcción de Maquinas de Turing

Introducción: Con el proceso de composición antes mencionado y empleando
las M de T como bloques de construcción, se pueden obtener maquinas de
propósitos más complejos.

Nota: Es importante conocer la tarea (el funcionamiento) que realiza cada una
de las maquinas a combinar para realizar el enlace adecuado de las mismas.

Descripción:

3- En lugar de utilizar los diagramas de transición utilizados usualmente, se
   usaran diagramas compuestos
4- En estos diagramas cada uno de los bloques de construcción se representa
   como un nodo, con flechas entre los nodos para indicar las transiciones entre
   los bloques.
5- Estas flechas se etiquetan de acuerdo con el valor que debe aparecer en la
   celda actual para recorra la flecha.
6- Al igual que en los diagramas de transición, debe indicarse con un apuntador
   el nodo del diagrama compuesto donde debe comenzar la ejecución.

Nota: Por razones de conveniencia, existen varias abreviaturas en cuanto a la
notación empleada habitualmente al construir diagramas de bloques para M de T
Uno es reemplazar varias flechas que tienen la misma fuente y el mismo destino
por una sola flecha rotulada con una sola lista de símbolos, otra abreviatura
utilizada consiste en aplicar la notación que se muestra a continuación para indicar
que cuando el símbolo actual es x, y o z, la maquina deberá proseguir en esta
dirección, donde       representa el símbolo que en realidad esta presente.

                        X, y, z


Ejemplo: En el caso de la         maquina M 1 descrita anteriormente    la vamos a
representar como R , es decir R        busca el primer blanco ( ) que haya a la
derecha de la posición actual de la cabeza. En el caso de la maquina M 2 imprime
una a y se detiene(imprime la “a” independientemente del símbolo actual), al
combinar estas dos maquinas, la maquina resultante buscara el primer blanco
hacia la derecha, imprimirá un blanco y se detendrá. El diagrama de bloque
   asociado a esta maquina se muestra a continuación.


                   --

           R            aR

 Donde     , significa diferente de blanco.
Comentario: Suponiendo que los símbolos de cinta asociados a una maquina de turing
son:     x, y,      se tiene que: Se representara con R una maquina que mueve su
cabeza una celda a la a la derecha, con L la que mueve su cabeza una celda a la
izquierda y con x la maquina que escribe un símbolo en la celda actual.

Ejemplo: Una M de T que se mueve una celda a la derecha, escribe el símbolo “y”
se mueve una celda a la izquierda y se detiene se muestra a continuación.

   R           y        L o en forma condensada           RyL

Ejemplo: A continuación se muestra un grupo de bloques asociados a maquinas de
Turing para   x, y,



Rx :       Recorre la cinta a la derecha de su posición inicial en busca de una celda que
contenga el símbolo x. A continuación se muestra el diagrama de bloque asociado.

               y
       R




R : Recorre la cinta a la derecha de su posición inicial en busca de una celda que
contenga un símbolo distinto de x. A continuación se muestra el diagrama de bloque
asociado:

               x
       R

Lx :       Recorre la cinta a la izquierda de su posición inicial en busca de una celda que
contenga el símbolo x. A continuación se muestra el diagrama de bloque asociado.



               y
       L
R : Recorre la cinta a la izquierda de e su posición inicial en busca de una celda que
      contenga un símbolo distinto de x. A continuación se muestra el diagrama de bloque
      asociado:

                 x
           L

4.   Tesis de Church.

     Definición: La clase de las funciones recursivas parciales contiene todas las funciones
      parciales computables.
     Comentario: toda función para la cual exista un proceso algorítmico que pueda ser
      especificado mediante la descripción a alto nivel de una serie de pasos a realizar, es
      computable. Así pues, en muchas ocasiones, ante una función complicada f se puede
      optar por describir un proceso de computación de la misma mediante un lenguaje
      pseudoalgorítmico, es decir, mediante una "receta" cuyo seguimiento al pie de la letra
      ante una entrada x conduce a la computación de f(x). Cuando esto ocurre, podemos
      asegurar la computabilidad de f en virtud de la tesis de Church, sin necesidad de
      calcular un programa específico para f.

5. Indecibilidad: Una de las técnicas más usadas en esta teoría ha sido la codificación de los
    algoritmos utilizando el método de la codificación de Gödel. Como ya hemos comentado,
    esto nos va a permitir ver a los algoritmos cuyas entradas sean números naturales como
    algoritmos cuyas entradas sean algoritmos. Esta fue la técnica usada por Church, Kleene
    y Turing para encontrar problemas sin solución, técnica que por otro lado ha dado lugar
    a muy fructíferos resultados en cuestiones generales acerca de los algoritmos.
      De esta forma se demostró que era posible construir una máquina de propósito general,
  es decir, capaz de resolver cualquier problema que se pudiese resolver mediante un
  algoritmo. Dicha máquina tendría como entrada el entero que codificaría el algoritmo
  solución del problema y la propia entrada del problema, de tal forma, que la máquina
  aplicaría el algoritmo codificado a la entrada del problema. Esta hipotética máquina puede
  considerarse como el padre de los actuales ordenadores de propósito general.
      Los argumentos empleados por Church, Kleene y Turing para demostrar que un
  problema no tiene solución algorítmica tienen todos la misma estructura, y se puede
  resumir como sigue:
  1.- Se demuestra que hay un procedimiento uniforme (universal) U que dada una función
  calculable F y un argumento numérico m, calcula el valor f(m) si este está definido.
  1.a) Para el -cálculo U es un -término tal que Ufm es convertible en n si y solo si Fm es
  convertible en n, donde f es el número de Gödel del término f.
  1.b) Para el cálculo ecuacional de las funciones recursivas, U enumera (los números de
  Gödel de) las consecuencias de las ecuaciones que definen F hasta que se llega a una
  ecuación de la forma Fm=n.
  1.c) Para la máquina de Turing, U es justamente la máquina universal.
  2.- Se demuestra que si se puede decidir el siguiente problema: Dada una especificación de
  una función en el sistema, esta función está siempre bien definida, es decir, es total (en la
  terminología de Turing, es una máquina sin bucles infinitos), entonces, usando U, el
  argumento de la diagonal daría una contradicción.
3.- Si cada problema sobre las funciones calculables fuese decidible, entonces también lo
sería cada cuestión sobre la aritmética, y en particular el problema del punto 2. Cada autor
dió un ejemplo de problemas sobre las funciones calculables que eran indecidibles:
3.a) Dada una fórmula del -cálculo, ¿tiene una forma normal?
3.b) Dado un conjunto de ecuaciones cuyo número de Gödel sea f, calcular el valor de la
función que definen esas ecuaciones aplicado a f.
3.c) Dada una máquina de Turing, ¿imprime siempre 0?
 4.- Church y Turing dieron los axiomas de primer orden a sus respectivos modelos de
 computación, y así probaron la indecibilidad.


6.   Lenguajes recursivos y Recursivamente Enumerables.


       Funciones recursivas: A continuación se presenta como se construye una clase de
       funciones, llamadas recursivas primitivas, definidas entre n-uplas de números naturales

       sobre los números naturales, (es decir                 ), con la idea de caracterizar las
       funciones que son efectivamente calculables, es decir, aquellas funciones para las que
       dada la n-upla de sus argumentos se puede definir un procedimiento para encontrar en
       un numero finito de pasos el valor de la función. Para ello se usara una definición
       recursiva, es decir, nos apoyaremos en un conjunto de funciones que por definición son
       recursivas (conjunto inicial que se denomina base de la recursión), y en un conjunto de
       reglas que aplicándolas a funciones recursivas primitivas ya definidas obtenemos
       nuevas funciones recursivas. En nuestro caso la base esta formada por las funciones
       nula, sucesor y proyección, y las reglas que llamamos de composición y de recursión
       primitiva. Estos elementos quedan definidos de la siguiente forma:
       Base de recursión:

       Función nula:


       Mediante la que se hace corresponder a cualquier numero natural el numero 0
       (borrar el numero).


       Función sucesor                :
       Mediante la cual a cada número natural        se le hace corresponder su sucesor, que
       denotamos por     (encontrar el siguiente).

       Función proyección                                    :
       Mediante la cual a cada n-upla se le hace corresponder su i-esima componente (elegir
       uno de una sucesión finita)

       Reglas:
       Regla de composición:

       Dadas las funciones



       y la función   que depende de las     funciones anteriores, es decir



       entonces decimos que
es la función compuesta de las    mediante    si está definida de la siguiente forma:




    Regla de recursión primitiva con parámetros:
    dadas dos funciones recursivas conocidas




    que dependen de los parámetros                 , se define la función


    mediante el siguiente esquema de recursión:




    Regla de recursión primitiva sin parámetros:
    es un caso particular del anterior en el que no aparecerán los parámetros y el esquema
    de recursión sería:




    donde          es una función recursiva conocida y      es una constante (un numero
    natural dado).

  La clase de funciones definidas de esta manera, es una clase de funciones que se puede
 calcular efectivamente, ya que son construidas a partir un conjunto base, cuyo cálculo
 puede ser considerado trivial, y mediante procedimientos o esquemas de cálculo sencillos y
 que se realizan por pasos sucesivos. Se prueba que esta clase de funciones es la misma
 que la que se define utilizando para ello las Maquinas de Turing, que describimos a
 continuación.




7. Maquinas de Turing Universal.

    Definición: Es una máquina que recibe en su cinta una descripción de otra M de T, y
    el contenido de la cinta de esta M de T, y produce como resultado de su ejecución el
    mismo resultado que produciría la M de T sobre su cinta. Se le da el nombre de
    universal, porque es capaz de simular el comportamiento de cualquier M de T.




    Construcción:
Supondremos que Q= q 1 ,q 2 ,...q n , donde q 1 es el único
            estado inicial y q 2 es el único estado final de M.
                               Supondremos que =         1,   2   ,....,   n   , donde   1   es el blanco.
                               Para codificar , representaremos q 1 por 1, q 2 por 11, y así
                               sucesivamente.
                               Representaremos i por una cadena de i unos de forma similar
            a como se representaron los estados de Q.
                                Finalmente representaremos las directivas para la cabeza de
            lectura / escritura de forma que L será 1 y R será 11.
                                Los Ceros serán usados como separadores.




    a.                                 Ejemplo: La transición dada por               q3 ,    1   = q4 ,    3   ,
         L , puede ser codificada mediante la cadena 011101011110111010, es de notar que
         m tiene una codificación representada por una cadena finita de ceros y unos

7. Problema de Parada: El problema de parada de una maquina de turing consiste en
determinar algorítmicamente, es decir, mediante una maquina de Turing, si una maquina de
turing “M” dada, va a parar o no cuando analiza una palabra de entrada W, dado que en
este caso una maquina de Turing analiza el comportamiento de otra, se requiere que la ultima
sea dada como entrada a la primera; esto puede llevarse a cabo por medio de la codificación
de la M de T que debe analizarse

8. Teorema de Rice


   Considérese la clase de funciones recursivas con un solo argumento. Sea pues                           una

enumeración efectiva de las funciones computables de una sola variable. Sea

una subclase. El conjunto de índices de       es                   La clase         se dice ser recursiva

si su conjunto de índices          lo es, es decir, si la función característica de este último
conjunto                                      es                                      recursiva.

Digresión: Supongamos que f es una función computable, calculada por el programa P y que

el índice de f es k0. Sea     la mónada que consta únicamente de la función f. Tenemos que

           . Pero la inclusión es estricta, pues f puede ser calculada también por una infinidad
de otros programas, es decir, f tiene una infinidad de índices. Para determinar que un número

cualquiera k está en         será menester que la función fk coincide con f, la verificación de lo
cual es un problema irresoluble, en general, como lo veremos más adelante. La dificultad
principal en revisar si acaso una función coincide con otra, estriba en que aún cuando podamos
probar uno a uno, y, potencialmente todos, los valores de ambas funciones, ese proceso es
interminable pues siempre quedarán más valores pendientes de revisar que los ya revisados.
Mod auto 4

Más contenido relacionado

La actualidad más candente

Sistemas De Control Distribuido
Sistemas De Control DistribuidoSistemas De Control Distribuido
Sistemas De Control Distribuidoguest259ab3
 
Elementos de un sistema de control comparadores y actuadores
Elementos de un sistema de control comparadores y actuadoresElementos de un sistema de control comparadores y actuadores
Elementos de un sistema de control comparadores y actuadoresGloria Villarroya
 
Unidad ii tema 7 sensor de nivel - cad
Unidad ii   tema 7 sensor de nivel - cadUnidad ii   tema 7 sensor de nivel - cad
Unidad ii tema 7 sensor de nivel - cadUDO Monagas
 
Simatic s7 300 caracteristicas
Simatic s7 300 caracteristicasSimatic s7 300 caracteristicas
Simatic s7 300 caracteristicastechonmyweb
 
controladores Teoria de control
controladores Teoria de controlcontroladores Teoria de control
controladores Teoria de controlralch1978
 
Especificaciones
EspecificacionesEspecificaciones
Especificacionespollonaism
 
Controles mediante el lugar de las raices
Controles mediante el lugar de las raicesControles mediante el lugar de las raices
Controles mediante el lugar de las raicesUNEFA
 
Discrete time control systems
Discrete time control systemsDiscrete time control systems
Discrete time control systemsphannahty
 
Control digital: Tema 3. Análisis de sistemas discretos
Control digital: Tema 3. Análisis de sistemas discretos Control digital: Tema 3. Análisis de sistemas discretos
Control digital: Tema 3. Análisis de sistemas discretos SANTIAGO PABLO ALBERTO
 
Unidad 5 - Introducción al control PID e implementación en S7-1200.
Unidad 5 - Introducción al control PID e implementación en S7-1200.Unidad 5 - Introducción al control PID e implementación en S7-1200.
Unidad 5 - Introducción al control PID e implementación en S7-1200.José María Delgado Casado
 
PLC ladder logics (Programmable Logic Controller)
PLC ladder logics (Programmable Logic Controller)PLC ladder logics (Programmable Logic Controller)
PLC ladder logics (Programmable Logic Controller)JHALAKNIHALANI
 
Basics of plc programming
Basics of plc programmingBasics of plc programming
Basics of plc programmingSergio Barrios
 
Modelado en espacio de estados
Modelado en espacio de estadosModelado en espacio de estados
Modelado en espacio de estadosAlejandro Flores
 

La actualidad más candente (20)

Sistemas De Control Distribuido
Sistemas De Control DistribuidoSistemas De Control Distribuido
Sistemas De Control Distribuido
 
Elementos de un sistema de control comparadores y actuadores
Elementos de un sistema de control comparadores y actuadoresElementos de un sistema de control comparadores y actuadores
Elementos de un sistema de control comparadores y actuadores
 
Sistemas secuenciales
Sistemas secuencialesSistemas secuenciales
Sistemas secuenciales
 
Unidad ii tema 7 sensor de nivel - cad
Unidad ii   tema 7 sensor de nivel - cadUnidad ii   tema 7 sensor de nivel - cad
Unidad ii tema 7 sensor de nivel - cad
 
Simatic s7 300 caracteristicas
Simatic s7 300 caracteristicasSimatic s7 300 caracteristicas
Simatic s7 300 caracteristicas
 
controladores Teoria de control
controladores Teoria de controlcontroladores Teoria de control
controladores Teoria de control
 
Circuitos secuenciales
Circuitos secuencialesCircuitos secuenciales
Circuitos secuenciales
 
Lugar de las raices
Lugar de las raicesLugar de las raices
Lugar de las raices
 
Especificaciones
EspecificacionesEspecificaciones
Especificaciones
 
Scr rectificador controlado de silicio
Scr   rectificador controlado de silicioScr   rectificador controlado de silicio
Scr rectificador controlado de silicio
 
Controles mediante el lugar de las raices
Controles mediante el lugar de las raicesControles mediante el lugar de las raices
Controles mediante el lugar de las raices
 
Tema 8: Memorias RAM y CAM.
Tema 8: Memorias RAM y CAM.Tema 8: Memorias RAM y CAM.
Tema 8: Memorias RAM y CAM.
 
Discrete time control systems
Discrete time control systemsDiscrete time control systems
Discrete time control systems
 
Control digital: Tema 3. Análisis de sistemas discretos
Control digital: Tema 3. Análisis de sistemas discretos Control digital: Tema 3. Análisis de sistemas discretos
Control digital: Tema 3. Análisis de sistemas discretos
 
Fuentes singulares
Fuentes singularesFuentes singulares
Fuentes singulares
 
Unidad 5 - Introducción al control PID e implementación en S7-1200.
Unidad 5 - Introducción al control PID e implementación en S7-1200.Unidad 5 - Introducción al control PID e implementación en S7-1200.
Unidad 5 - Introducción al control PID e implementación en S7-1200.
 
PLC ladder logics (Programmable Logic Controller)
PLC ladder logics (Programmable Logic Controller)PLC ladder logics (Programmable Logic Controller)
PLC ladder logics (Programmable Logic Controller)
 
Basics of plc programming
Basics of plc programmingBasics of plc programming
Basics of plc programming
 
Modelado en espacio de estados
Modelado en espacio de estadosModelado en espacio de estados
Modelado en espacio de estados
 
Practica 5
Practica 5Practica 5
Practica 5
 

Similar a Mod auto 4

Similar a Mod auto 4 (20)

Modu saya 4
Modu saya 4Modu saya 4
Modu saya 4
 
Mod auto 4
Mod auto 4Mod auto 4
Mod auto 4
 
Máquina de turing
Máquina de turingMáquina de turing
Máquina de turing
 
Desarrollo momento 3
Desarrollo momento 3Desarrollo momento 3
Desarrollo momento 3
 
Maquina de turing
Maquina de turingMaquina de turing
Maquina de turing
 
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
 
Maquinas de estado
Maquinas de estadoMaquinas de estado
Maquinas de estado
 
Maquinas de Estado Finito
Maquinas de Estado FinitoMaquinas de Estado Finito
Maquinas de Estado Finito
 
Maquinas de Estado Finito
Maquinas de Estado FinitoMaquinas de Estado Finito
Maquinas de Estado Finito
 
Clasificación de las máquinas de turing
Clasificación de las máquinas de turingClasificación de las máquinas de turing
Clasificación de las máquinas de turing
 
Teoría de Autómata
Teoría de AutómataTeoría de Autómata
Teoría de Autómata
 
Maquinas de estado finito mapa mental
Maquinas de estado finito mapa mentalMaquinas de estado finito mapa mental
Maquinas de estado finito mapa mental
 
Taller nro 24
Taller nro 24Taller nro 24
Taller nro 24
 
Maquinas Abstractas
Maquinas AbstractasMaquinas Abstractas
Maquinas Abstractas
 
Matematica discreta
Matematica discreta Matematica discreta
Matematica discreta
 
Automatas
AutomatasAutomatas
Automatas
 
Maquina de Turing
Maquina de TuringMaquina de Turing
Maquina de Turing
 
348327107-Presentacion-Maquinas-de-Turing.pptx
348327107-Presentacion-Maquinas-de-Turing.pptx348327107-Presentacion-Maquinas-de-Turing.pptx
348327107-Presentacion-Maquinas-de-Turing.pptx
 
1 ejercicio mt.
1 ejercicio mt.1 ejercicio mt.
1 ejercicio mt.
 
Presentacion 2 - Maquinas de Estado Finito
Presentacion 2 - Maquinas de Estado FinitoPresentacion 2 - Maquinas de Estado Finito
Presentacion 2 - Maquinas de Estado Finito
 

Más de edeciofreitez

Sistema Experto Ejemplo
Sistema Experto EjemploSistema Experto Ejemplo
Sistema Experto Ejemploedeciofreitez
 
La comunicacion didactica_en_los_chats_academicos
La comunicacion didactica_en_los_chats_academicosLa comunicacion didactica_en_los_chats_academicos
La comunicacion didactica_en_los_chats_academicosedeciofreitez
 
Propuesta final del cuft
Propuesta final del cuftPropuesta final del cuft
Propuesta final del cuftedeciofreitez
 
Conjuntos regulares 04[1]
Conjuntos regulares 04[1]Conjuntos regulares 04[1]
Conjuntos regulares 04[1]edeciofreitez
 

Más de edeciofreitez (9)

Sistema Experto Ejemplo
Sistema Experto EjemploSistema Experto Ejemplo
Sistema Experto Ejemplo
 
La comunicacion didactica_en_los_chats_academicos
La comunicacion didactica_en_los_chats_academicosLa comunicacion didactica_en_los_chats_academicos
La comunicacion didactica_en_los_chats_academicos
 
Propuesta final del cuft
Propuesta final del cuftPropuesta final del cuft
Propuesta final del cuft
 
Tedes estocasticas
Tedes estocasticasTedes estocasticas
Tedes estocasticas
 
Perceptron parte 2
Perceptron parte 2Perceptron parte 2
Perceptron parte 2
 
Perceptron parte 1
Perceptron parte 1Perceptron parte 1
Perceptron parte 1
 
Conjuntos regulares 04[1]
Conjuntos regulares 04[1]Conjuntos regulares 04[1]
Conjuntos regulares 04[1]
 
Clase afd
Clase afdClase afd
Clase afd
 
Infografia
InfografiaInfografia
Infografia
 

Mod auto 4

  • 1. UNIDAD IV: Maquinas de Turing. Elaborado por: Ing. Edecio R. Freitez DESARROLLO DE LA UNIDAD IV 1. Introducción: Son la idea fundamental de la computación. El modelo de máquina de Turing es por demás importante ya que todos los cálculos que puede realizar esta máquina incluye todos los cálculos que cualquier máquina puede realizar. La idea de Turing fue desarrollar un sistema capaz de modelar cualquier proceso que se considere un cálculo, por este motivo todos los especialistas en ciencias de la computación aceptan la tesis de Turing [“Si algo puede hacerse como un procedimiento, se puede hacer con una maquina de Turing y viceversa” . Se mostró que las máquinas de Turing resuelven todas las funciones recursivas parciales y esta clase de funciones incluyen todas las funciones que pueden computarse. Por lo tanto para saber que puede resolverse mediante una computadora se estudia la Maquina de Turing. Una MT es una máquina abstracta que consiste en una unidad de control que es un autómata finito, un cabezal guiado por la unidad de control y una cinta infinita a ambos lados la cual se considera dividida en celdas donde cabe solamente un símbolo. Inicialmente la cinta contiene un número finito de símbolos de y las celdas que no contienen ningún símbolo, se completarán con un blanco en cada una de ellas. El cabezal se encuentra situado en el primer símbolo ( ␢) de la cinta y solamente puede escanear una celda por vez. Cada movimiento unívoco en una MT viene determinado por el estado de la unidad de control juntamente con el símbolo de la cinta que indica el cabezal en un determinado momento. Cada movimiento consiste en escribir un símbolo en la celda indicada por el cabezal, mover este último a la izquierda o a la derecha y cambiar de estado. Los movimientos de la MT provocan un conjunto de cómputos que pueden terminar o no. Si termina, la unidad de control se encuentra en un estado final y su resultado será el conjunto de símbolos que se encuentren en la cinta, sino el resultado queda indefinido. Definición: Formalmente, se define una máquina de Turing (MT) como una sietetupla de la forma M=( Q, , ,S, , , F) donde Q es un conjunto finito de estados
  • 2. Alfabeto de entrada (Conteniendo a y a un símbolo especial , tal que ) es el alfabeto de cinta. S = q 1 Representa el estado inicial. : Es un símbolo especial denominado símbolo blanco ( ) F Q Representa el conjunto de estados finales. Aceptación o parada. Es una función parcial llamada función de transición. :Qx Qx x {L, R} Representación: Este tipo de máquina consta hipotéticamente de una unidad de control capaz de interpretar las instrucciones que reciba, y de una cabeza lectora que permite leer el contenido de una de las casillas en que está dividida una memoria lineal, ilimitada en ambas direcciones de sus extremos. La máquina en su funcionamiento pasa por diferentes estados q i en instantes t sucesivos. El argumento de la función que queremos calcular estará almacenado previamente en la memoria, y en el instante inicial, antes de que la máquina comience a funcionar, la cabeza lectora apuntará al símbolo más a la izquierda del argumento. A partir de ese momento la máquina realizará operaciones, que dependerán del estado en que ella se encuentre, y del símbolo que en ese momento lea la cabeza lectora. Con estas operaciones se podrán realizar las siguientes tareas: sustituir el símbolo leído por otro, pasar a leer el símbolo que esta en memoria a la derecha del símbolo leído, pasar a leer el símbolo que esta en memoria a la izquierda, o saltar directamente a ejecutar otra instrucción si se cumple una condición especificada; en todos los casos, y una vez ejecutada la tarea indicada, se pasaría al estado que también se indica en la propia instrucción. Estas instrucciones, o cuaternas, las podemos representar Q1 .... a 1 a 2 a 3 .... q2 . . Lectura Escritura . . . Estado Control n
  • 3. Características: La cinta es infinita, por lo que a los dos lados de la información que aparezca en la entrada, habrá espacios en blanco representados por b. Inicialmente contiene un número finito de símbolos predecimos y seguidos de infinitos blancos (símbolo especial b. Al igual que el resto de los autómatas, se representan por la tabla de transición en la que en las filas están los estados, en las columnas los símbolos de T, y en la posición ( q, a) aparece ( q, a. Movimiento: Si la Maquina de Turing esta en un estado q Q, lee a , y la función de transición para esa pareja estado-símbolo es: q, a =(p, m, x) Entonces la Maquina de Turing: 1. Imprime el símbolo x en la cinta en donde estaba él a y 2. Pasa del estado q a p. 3. Mueve la cabeza lectora de la cinta de entrada / salida hacia la izquierda ( m=I), derecha (m=D) o se para (m=P . Ejemplo: Sea la M de T definida por M=( Q, , ,S, , , F) donde Q= q 1 , q 2 ; a, b ; a, b, ; S=q 1 ; F= q 2 ; y dada por: q 1 , a = q 1 , a, R q 1 , b = q 1 , a, R q1 , = q2 , , L Una cinta asociada a la maquina es: ... a b b a … q1 Solución: La maquina dada inicia sus cálculos en el estado q 1 , y la cabeza de lectura/ escritura apunta hacia la celda que contiene el símbolo que se encuentra en el extremo izquierdo de la cinta, Veamos a continuación el recorrido que hace la maquina para la cinta dada: ... a b b a … ... a b b a … ... a a b a … q1 q1 q1 ... a a a a … ... a a a a ... a a a a … q1 q1 q2 Comentario: Cabe destacar que la maquina dada recorre la cinta dada de izquierda a derecha cambiando todos los símbolos b’ es de la misma por a, se detiene a la izquierda del primer blanco que consiga.
  • 4. Nota: Una funcion parcial no esta necesariamente definida para todo elemento del conjunto del que se realiza la transformación; por lo tano puede que la función “ ” no una imagen para algún par Q x . En otro orden de ideas las maquinas de turing dependen únicamente del estado actual y del contenido de la celda sobre la que se encuentra la cabeza de lectura/escritura, en consecuencia cualquier cadena de entrada se debe presentar a la maquina sobre su cinta. Notación utilizada para la representación de un Maquina de Turing: A continuación se presentaran dos de las notaciones mas utilizadas para presentar la información de manera más conveniente. 1- La primera representa una configuración como un par (q i , w 1 w 2 ), donde q i es el estado actual, w 1 es la cadena de la cinta que precede a la celda sobre la que se encuentra la cabeza de lectura / escritura, es el símbolo de la cinta sobre el que se encuentra la cabeza de lectua/escritura y w 2 es la cadena que hay a continuación de la cabeza de lectura / escritura. 2- La segunda notación viene dada por una cadena a1 a2 ... ak 1 q1 a k ... a n , que representa la configuración ( qi , wa k ), es decir la cabeza de lectura / escritura se coloca sobre la celda que contiene a k y el estado actual es qi , es de notar que la cadena a1 a2 ... ak 1 q1 a k ... a n , indica que la cabeza de lectura / escritura se encuentra sobre el símbolo de la cinta que aparece siguiendo al estado. Ejemplo: A continuación se presenta la cinta analizada anteriormente utilizando estas notaciones: 1- Utilizando la primera notación se tiene que: q 1 , abba q 1 , abba q 1 , aaba q 1 , aaaa q 1 , aaaa q 2 , aaaa 2- Utilizando la segunda notación se tiene que: q 1 ,a,bba aq 1 bba aaq 1 ba aaaq 1 a aaaaq 1 aaaq 2 a Nota: Sea cual sea la notación utilizada denotaremos el paso de una configuración a otra por medio del símbolo “ “. Las configuraciones de una Maquina de Turing se conocen como descripciones instantáneas. Ejemplo: Ejemplo: Sea la M de T definida por M=( Q, , ,S, , , F) donde Q= q 1 , q 2 , q 3 ; a, b ; a, b, ; S=q 1 ; F= q 3 ; y dada por: q 1 , a = q 1 , a, L q 1 , b = q 1 , b, L q1 , = q 2 , ,R
  • 5. q 2 , a =(q 3 ,a,L) q 2 , b =(q 3 ,b,L) q 2 , =(q 3 , ,L) Comentario: La maquina anterior recorre la cinta hacia la izquierda hasta que se consiga con la primera celda en blanco, deteniéndose y colocándose sobre dicho blanco, esto es: q 1 , aababb q 1 , aababb q 1 , aababb q 1 , aababb q 1 , aababb q 1 , aababb q 1 , aababb Nota: Cuando qi , a esta indefinida para una configuración de cinta, es imposible que pase a otra configuración, entonces se dice que la M de T esta parada; puede que q F, siendo F el conjunto de estados finales o puede que no. De cualquier forma en muchas ocasiones es conveniente dotar de significado a la parada en un estado de F. A manera de simplificación se supondrá que no se definirá ninguna transición para cualquier estado de F, por lo que la maquina se detendrá siempre a su estado final. Definición: Cuando se analiza una cinta asociada a una M de T, la secuencia de todos los movimientos que conducen a una configuración de parada se denominan “computación”. Ejemplo: Sea la M de T, dada por: Q= q 1 , q 2 ; a, b ; a, b, ; S=q 1 ; F= ; y dada por: La cinta es: q 1 ,abW, con W q 1 , a = q 2 , a, R q 1 , b = q 2 , b,R q1 , = q 2 , ,R q 2 , a =(q 1 ,a,L) q 2 , b =(q 1 ,b,L) q 2 , =(q 1 , ,L) Solución: q 1 ,abW q 1 ,abW q 1 ,abW q 1 ,abW q 1 ,abW Observación: Como se puede apreciar la maquina analizada anteriormente queda en un bucle infinito ciclando entre dos estados. Durante su operación una M de T ejecuta transiciones repetidamente hasta llegar a su estado de parada, esto quiere decir, que bajo ciertas condiciones es posible que nunca se detengan los cálculos de una M de T, dado que su programa interno puede quedar atrapado en un ciclo sin fin(Como en el caso anterior. Sin embargo una anomalía que puede ocurrir durante este proceso es que la cabeza de la maquina pueda rebazar el extremo izquierdo de la cinta; en este caso la maquina abandonara los cálculos y se dice que la ejecución de la maquina sufrió una “terminación anormal”
  • 6. 2. Lenguaje Aceptado por una Maqu8ina de Turing. Definición: M=( Q, , ,S, , , F) una maquina de turing, entonces el lenguaje aceptado por M es: * L(M) = w q1w * w 1 pw 2 para p F y w i * Ejemplo: Construya una M de T que acepte el lenguaje regular a sobre a,b , la maquina debe comenzar sus cálculos por el extremo izquierdo. El diseño de la maquina es el siguiente: Q= q 1 , q 2 ; a, b ; a, b, ; S=q 1 ; F=q 2 ; y dada por: q 1 , a = q 1 , a, R q1 , = q2 , , R Comentario: La maquina anterior realiza su análisis hacia la derecha, leyendo cada símbolo y comprobando que es una “a”; si lo es se realiza un desplazamiento hacia la derecha, si encuentra un “ ” sin haber leído un ningún otro carácter que no sea “a” la maquina para y acepta la cadena. Si de lo contrario consigue un carácter distinto de a y la maquina se puede parar en un estado que no es de aceptación. Cabe destacar que esta maquina de Turing para en el estado q 2 , solo si analiza una cadena de cero o más a’es. Nota: Para rechazar una cadena que no es aceptada por una M de T, lo único que hay que hacer es evitar que llegue a su estado final, una alternativa es entrar en un bucle infinito, en el caso del lenguaje anterior podría ser aceptado por: M=( Q, , ,S, , , F) Definición: Se dice que una función de cadena f es Turing computable si existe una maquina de Turing M=( Q, , ,S, , , F) para la cual q w q f u para algún q f F, cuando f(w)=u. Ejemplo: Sea a, b , que representa los enteros positivos mediante cadenas de 2 n a’es, es decir, a=1, a =2,......., a =n. La función suma f(n, m)=n+m se puede n m n m implementar para por medio de la transformación de a ba en a b, se puede obtener una M de T que lleve a cabo este proceso de la manera siguiente: M=( Q, , ,S, , , F), donde: Q= q 1 , q 2 , q 3 ,q 4 ,q 5 ; a, b ; a, b, ; S=q 1 ; F= q 5 ; y dada por: q 1 , a = q 1 , a, R q 1 , b = q 2 ,a,R q 2 , a =(q 2 ,a,R) q2 , =(q 3 , ,L) q 3 ,a =(q 4 ,b,L) q 4 ,a =(q 4 ,a,L) q 4 , =(q 5 , ,R)
  • 7. 3. Construcción y Modificación de una Maquina de Turing. Definición: Sean M 1 y M 2 dos M de T sobre el mismo alfabeto de entrada y el mismo alfabeto de cinta , donde M 1 =( Q 1 , , ,S, , 1, F 1 ) y M 2 =( Q 2 , , ,S, , 2 , F 2 ), cabe destacar que Q 1 Q 2 = . La composición de las maquinas de turing M 1 y M 2 es la maquina de Turing M=( Q, , ,S, , , F), que se denota por M 1 M 2 donde: Q=Q 1 Q2 S=s 1 F=F 2 1 q, , Si q Q 1 y 1 q, (p, t, X), para todo p F1 q, = 2 q, , Si q Q 2 (s 2 , t, X), Si q Q 1 y 1 q, = (p, t, X) para algún p F 1 Nota: Cabe destacar que la composición de M 1 M 2 se comporta como M 1 hasta que M 1 llega a su estado final. En ese instante cambia al estado inicial de M 2 y se comporta como M 2 hasta que termina. Ejemplo: Sean M 1 y M 2 dos M de T dadas por M1 : Q 1 = q 1 , q 2 , q 3 ,q 4 ; a ; a, ; S =q 1 ; F = q 4 ; y 1- dada por: q 1 , a = q 2 , a, R q1 , = q 2 , , R q 2 , a =(q 2 ,a, R) q2 , =(q 3 , , L) q 3 ,a =(q 4 ,a, R) q 3 , =(q 4 , , R) M 2 : Q 2 = p1 , p 2 ; a, b ; a, b, ; S=p 1 ; F= p 5 ; y 2- dada por: p 1 , a = p 2 , a, R p 1 , b = p 2 ,a, R Comentario: La composición M 1 M 2 se comporta como M 1 hasta que M 1 llega a un estado final. En ese momento cambia al estado inicial de M 2 y se comporta
  • 8. como M 2 hasta que termina. A continuación se presentan las transiciones asociadas a la maquina M 1 M 2 . q 1 , a = q 2 , a, R q1 , = q 2 , , R q 2 , a =(q 2 ,a, R) q2 , =(q 3 , , L) q 3 ,a =(p 1 ,a, R) q 3 , =(p 1 , , R) p 1 , a = p 2 , a, R p 1 , b = p 2 ,a, R Bloques de Construcción de Maquinas de Turing Introducción: Con el proceso de composición antes mencionado y empleando las M de T como bloques de construcción, se pueden obtener maquinas de propósitos más complejos. Nota: Es importante conocer la tarea (el funcionamiento) que realiza cada una de las maquinas a combinar para realizar el enlace adecuado de las mismas. Descripción: 3- En lugar de utilizar los diagramas de transición utilizados usualmente, se usaran diagramas compuestos 4- En estos diagramas cada uno de los bloques de construcción se representa como un nodo, con flechas entre los nodos para indicar las transiciones entre los bloques. 5- Estas flechas se etiquetan de acuerdo con el valor que debe aparecer en la celda actual para recorra la flecha. 6- Al igual que en los diagramas de transición, debe indicarse con un apuntador el nodo del diagrama compuesto donde debe comenzar la ejecución. Nota: Por razones de conveniencia, existen varias abreviaturas en cuanto a la notación empleada habitualmente al construir diagramas de bloques para M de T Uno es reemplazar varias flechas que tienen la misma fuente y el mismo destino por una sola flecha rotulada con una sola lista de símbolos, otra abreviatura utilizada consiste en aplicar la notación que se muestra a continuación para indicar que cuando el símbolo actual es x, y o z, la maquina deberá proseguir en esta dirección, donde representa el símbolo que en realidad esta presente. X, y, z Ejemplo: En el caso de la maquina M 1 descrita anteriormente la vamos a representar como R , es decir R busca el primer blanco ( ) que haya a la derecha de la posición actual de la cabeza. En el caso de la maquina M 2 imprime una a y se detiene(imprime la “a” independientemente del símbolo actual), al combinar estas dos maquinas, la maquina resultante buscara el primer blanco
  • 9. hacia la derecha, imprimirá un blanco y se detendrá. El diagrama de bloque asociado a esta maquina se muestra a continuación. -- R aR Donde , significa diferente de blanco. Comentario: Suponiendo que los símbolos de cinta asociados a una maquina de turing son: x, y, se tiene que: Se representara con R una maquina que mueve su cabeza una celda a la a la derecha, con L la que mueve su cabeza una celda a la izquierda y con x la maquina que escribe un símbolo en la celda actual. Ejemplo: Una M de T que se mueve una celda a la derecha, escribe el símbolo “y” se mueve una celda a la izquierda y se detiene se muestra a continuación. R y L o en forma condensada RyL Ejemplo: A continuación se muestra un grupo de bloques asociados a maquinas de Turing para x, y, Rx : Recorre la cinta a la derecha de su posición inicial en busca de una celda que contenga el símbolo x. A continuación se muestra el diagrama de bloque asociado. y R R : Recorre la cinta a la derecha de su posición inicial en busca de una celda que contenga un símbolo distinto de x. A continuación se muestra el diagrama de bloque asociado: x R Lx : Recorre la cinta a la izquierda de su posición inicial en busca de una celda que contenga el símbolo x. A continuación se muestra el diagrama de bloque asociado. y L
  • 10. R : Recorre la cinta a la izquierda de e su posición inicial en busca de una celda que contenga un símbolo distinto de x. A continuación se muestra el diagrama de bloque asociado: x L 4. Tesis de Church. Definición: La clase de las funciones recursivas parciales contiene todas las funciones parciales computables. Comentario: toda función para la cual exista un proceso algorítmico que pueda ser especificado mediante la descripción a alto nivel de una serie de pasos a realizar, es computable. Así pues, en muchas ocasiones, ante una función complicada f se puede optar por describir un proceso de computación de la misma mediante un lenguaje pseudoalgorítmico, es decir, mediante una "receta" cuyo seguimiento al pie de la letra ante una entrada x conduce a la computación de f(x). Cuando esto ocurre, podemos asegurar la computabilidad de f en virtud de la tesis de Church, sin necesidad de calcular un programa específico para f. 5. Indecibilidad: Una de las técnicas más usadas en esta teoría ha sido la codificación de los algoritmos utilizando el método de la codificación de Gödel. Como ya hemos comentado, esto nos va a permitir ver a los algoritmos cuyas entradas sean números naturales como algoritmos cuyas entradas sean algoritmos. Esta fue la técnica usada por Church, Kleene y Turing para encontrar problemas sin solución, técnica que por otro lado ha dado lugar a muy fructíferos resultados en cuestiones generales acerca de los algoritmos. De esta forma se demostró que era posible construir una máquina de propósito general, es decir, capaz de resolver cualquier problema que se pudiese resolver mediante un algoritmo. Dicha máquina tendría como entrada el entero que codificaría el algoritmo solución del problema y la propia entrada del problema, de tal forma, que la máquina aplicaría el algoritmo codificado a la entrada del problema. Esta hipotética máquina puede considerarse como el padre de los actuales ordenadores de propósito general. Los argumentos empleados por Church, Kleene y Turing para demostrar que un problema no tiene solución algorítmica tienen todos la misma estructura, y se puede resumir como sigue: 1.- Se demuestra que hay un procedimiento uniforme (universal) U que dada una función calculable F y un argumento numérico m, calcula el valor f(m) si este está definido. 1.a) Para el -cálculo U es un -término tal que Ufm es convertible en n si y solo si Fm es convertible en n, donde f es el número de Gödel del término f. 1.b) Para el cálculo ecuacional de las funciones recursivas, U enumera (los números de Gödel de) las consecuencias de las ecuaciones que definen F hasta que se llega a una ecuación de la forma Fm=n. 1.c) Para la máquina de Turing, U es justamente la máquina universal. 2.- Se demuestra que si se puede decidir el siguiente problema: Dada una especificación de una función en el sistema, esta función está siempre bien definida, es decir, es total (en la terminología de Turing, es una máquina sin bucles infinitos), entonces, usando U, el argumento de la diagonal daría una contradicción. 3.- Si cada problema sobre las funciones calculables fuese decidible, entonces también lo sería cada cuestión sobre la aritmética, y en particular el problema del punto 2. Cada autor dió un ejemplo de problemas sobre las funciones calculables que eran indecidibles: 3.a) Dada una fórmula del -cálculo, ¿tiene una forma normal? 3.b) Dado un conjunto de ecuaciones cuyo número de Gödel sea f, calcular el valor de la función que definen esas ecuaciones aplicado a f.
  • 11. 3.c) Dada una máquina de Turing, ¿imprime siempre 0? 4.- Church y Turing dieron los axiomas de primer orden a sus respectivos modelos de computación, y así probaron la indecibilidad. 6. Lenguajes recursivos y Recursivamente Enumerables. Funciones recursivas: A continuación se presenta como se construye una clase de funciones, llamadas recursivas primitivas, definidas entre n-uplas de números naturales sobre los números naturales, (es decir ), con la idea de caracterizar las funciones que son efectivamente calculables, es decir, aquellas funciones para las que dada la n-upla de sus argumentos se puede definir un procedimiento para encontrar en un numero finito de pasos el valor de la función. Para ello se usara una definición recursiva, es decir, nos apoyaremos en un conjunto de funciones que por definición son recursivas (conjunto inicial que se denomina base de la recursión), y en un conjunto de reglas que aplicándolas a funciones recursivas primitivas ya definidas obtenemos nuevas funciones recursivas. En nuestro caso la base esta formada por las funciones nula, sucesor y proyección, y las reglas que llamamos de composición y de recursión primitiva. Estos elementos quedan definidos de la siguiente forma: Base de recursión: Función nula: Mediante la que se hace corresponder a cualquier numero natural el numero 0 (borrar el numero). Función sucesor : Mediante la cual a cada número natural se le hace corresponder su sucesor, que denotamos por (encontrar el siguiente). Función proyección : Mediante la cual a cada n-upla se le hace corresponder su i-esima componente (elegir uno de una sucesión finita) Reglas: Regla de composición: Dadas las funciones y la función que depende de las funciones anteriores, es decir entonces decimos que
  • 12. es la función compuesta de las mediante si está definida de la siguiente forma: Regla de recursión primitiva con parámetros: dadas dos funciones recursivas conocidas que dependen de los parámetros , se define la función mediante el siguiente esquema de recursión: Regla de recursión primitiva sin parámetros: es un caso particular del anterior en el que no aparecerán los parámetros y el esquema de recursión sería: donde es una función recursiva conocida y es una constante (un numero natural dado). La clase de funciones definidas de esta manera, es una clase de funciones que se puede calcular efectivamente, ya que son construidas a partir un conjunto base, cuyo cálculo puede ser considerado trivial, y mediante procedimientos o esquemas de cálculo sencillos y que se realizan por pasos sucesivos. Se prueba que esta clase de funciones es la misma que la que se define utilizando para ello las Maquinas de Turing, que describimos a continuación. 7. Maquinas de Turing Universal. Definición: Es una máquina que recibe en su cinta una descripción de otra M de T, y el contenido de la cinta de esta M de T, y produce como resultado de su ejecución el mismo resultado que produciría la M de T sobre su cinta. Se le da el nombre de universal, porque es capaz de simular el comportamiento de cualquier M de T. Construcción:
  • 13. Supondremos que Q= q 1 ,q 2 ,...q n , donde q 1 es el único estado inicial y q 2 es el único estado final de M. Supondremos que = 1, 2 ,...., n , donde 1 es el blanco. Para codificar , representaremos q 1 por 1, q 2 por 11, y así sucesivamente. Representaremos i por una cadena de i unos de forma similar a como se representaron los estados de Q. Finalmente representaremos las directivas para la cabeza de lectura / escritura de forma que L será 1 y R será 11. Los Ceros serán usados como separadores. a. Ejemplo: La transición dada por q3 , 1 = q4 , 3 , L , puede ser codificada mediante la cadena 011101011110111010, es de notar que m tiene una codificación representada por una cadena finita de ceros y unos 7. Problema de Parada: El problema de parada de una maquina de turing consiste en determinar algorítmicamente, es decir, mediante una maquina de Turing, si una maquina de turing “M” dada, va a parar o no cuando analiza una palabra de entrada W, dado que en este caso una maquina de Turing analiza el comportamiento de otra, se requiere que la ultima sea dada como entrada a la primera; esto puede llevarse a cabo por medio de la codificación de la M de T que debe analizarse 8. Teorema de Rice Considérese la clase de funciones recursivas con un solo argumento. Sea pues una enumeración efectiva de las funciones computables de una sola variable. Sea una subclase. El conjunto de índices de es La clase se dice ser recursiva si su conjunto de índices lo es, es decir, si la función característica de este último conjunto es recursiva. Digresión: Supongamos que f es una función computable, calculada por el programa P y que el índice de f es k0. Sea la mónada que consta únicamente de la función f. Tenemos que . Pero la inclusión es estricta, pues f puede ser calculada también por una infinidad de otros programas, es decir, f tiene una infinidad de índices. Para determinar que un número cualquiera k está en será menester que la función fk coincide con f, la verificación de lo cual es un problema irresoluble, en general, como lo veremos más adelante. La dificultad principal en revisar si acaso una función coincide con otra, estriba en que aún cuando podamos probar uno a uno, y, potencialmente todos, los valores de ambas funciones, ese proceso es interminable pues siempre quedarán más valores pendientes de revisar que los ya revisados.