SlideShare una empresa de Scribd logo
1 de 27
La máquina de Turing es un modelo computacional introducido por Alan Turing en
el trabajo ―On computable numbers, with an application to the
Entscheidungsproblem‖, publicado por la Sociedad Matemática de Londres, en el
cual se estudiaba la cuestión planteada por David Hilbert sobre si las matemáticas
son decidibles, es decir, si hay un método definido que pueda aplicarse a cualquier
sentencia matemática y que nos diga si esa sentencia es cierta o no. Turing
construyó un modelo formal de computador, la máquina de Turing, y demostró
que existían problemas que una máquina no podía resolver. La máquina de Turing
es un modelo matemático abstracto que formaliza el concepto de algoritmo. Una
máquina de Turing con una sola cinta puede ser definida como una 6-tupla , donde
Q es un conjunto finito de estados Γ es un conjunto finito de símbolos de cinta, el
alfabeto de cinta
 es el estado inicial
 es un símbolo denominado blanco, y es el único símbolo que se puede
repetir un número infinito de veces
 es el conjunto de estados finales de aceptación
 es una función parcial denominada función de transición, donde L es
un movimiento a la izquierda y R es el movimiento a la derecha.

Existen en la literatura un abundante número de definiciones alternativas, pero
todas ellas tienen el mismo poder computacional, por ejemplo se puede añadir el
símbolo como símbolo de ―no movimiento‖ en un paso de cómputo.

¿Como funciona una maquina de turing?

Una máquina de Turing es un dispositivo que transforma un INPUT en un OUTPUT
después de algunos pasos. Tanto el INPUT como el OUPUT constan de números en
código binario (ceros y unos). En su versión original la máquina de Turing consiste
en una cinta infinitamente larga con unos y ceros que pasa a través de una caja.
La caja es tan fina que solo el trozo de cinta que ocupa un bit (0 ó 1) está en su
interior. La máquina tiene una serie de estados internos finitos que también se
pueden numerar en binario.

Para llevar a cabo algún algoritmo, la máquina se inicializa en algún estado interno
arbitrario. A continuación, se pone en marcha y la máquina lee el bit que se
encuentra en ese momento en su interior y ejecuta alguna operación con ese bit
(lo cambia o no, dependiendo de su estado interno). Después se mueve hacia la
derecha o hacia la izquierda, y vuelve a procesar el siguiente bit de la misma
manera. Al final se para, dejando el resultado al lado izquierdo por ejemplo.

Una instrucción típica podría ser: 01 11011i
La traducción es como sigue: si la máquina se encuentra en el estado interno 0 y
lee 1 en la cinta, entonces pasará al estado interno 1101 (13), escribirá 1 y se
moverá hacia la izquierda un paso (la cinta se moverá hacia la derecha).

A continuación es conveniente inventar una notación para la secuencia del INPUT.
Esta notación se llama notación binaria expandida. Consiste en cambiar la
secuencia original binaria por otra construida de la siguiente forma: el 0 se cambia
por 0 y el 1 por 10 y se ponen un cero a la izquierda y/o a la derecha del resultado
si empieza o acaba en 1 respectivamente. Así por ejemplo, el número 13 que en
binario es 1101 es en binario expandido 1010010 con un cero delante por esta
última regla 01010010. Para volver al original hay que contraer el binario
expandido con la siguiente regla:

Empezamos a leer por la izquierda el bianrio expandido. Cuando encontremos un 0
tomamos nota de cuántos 1 hay hasta llegar al siguiente 0 y lo escribimos. Si
encontramos que hay dos 0 seguidos, apuntaríamos un 0 porque no habría ningún
1.Veamos con el 13 cómo se haría. El primer 0 se encuentra en la primera posición
y el siguiente 0 está en la posición 3. Entre los dos solo hay un 1. Lo anotamos.
Seguidamente hay un 1, y después un 0, entonces apuntamos 1 porque hay un 1
entre medias de ellos. Esto es lo que se hace sucesivamente y encontramos: 1101
que es el número original.



Descripción La máquina de Turing consta de un cabezal lector/escritor y una
cinta infinita en la que el cabezal lee el contenido, borra el contenido anterior y
escribe un nuevo valor. Las operaciones que se pueden realizar en esta máquina
se limitan a:

Avanzar el cabezal lector/escritor para la derecha; • avanzar el cabezal
lector/escritor para la izquierda. El cómputo es determinado a partir de una tabla
de estados de la forma: (Estado, valor)-→(nuevo estado, nuevo valor, dirección)

Definición Una máquina de Turing con una sola cinta puede ser definida como
una 6-tupla M=(Q,L,s,b,F,o) , donde •Q es un conjunto finito de estados. •L es un
conjunto finito de símbolos de cinta, el alfabeto de cinta. •s E Q es el estado
inicial. •b E L es un símbolo denominado blanco, y es el único símbolo que se
puede repetir un número infinito de veces. •F _C Q es el conjunto de estados
finales de aceptación. •o : Q x L → Q x L x {L,R} es una función parcial
denominada función de transición, donde L es un movimiento a la izquierda y R es
el movimiento a la derecha.

Existen en la literatura un abundante número de definiciones alternativas, pero
todas ellas tienen el mismo poder computacional, por ejemplo se puede añadir el
símbolo S como símbolo de ―no movimiento‖ en un paso de cómputo o el símbolo
Σ para indicar el alfabeto de entrada.

Ejemplo Definimos una máquina de Turing sobre el alfabeto {0,1}, donde 0
representa el símbolo blanco. La máquina comenzará su proceso situada sobre un
símbolo ―1″ de una serie. La máquina de Turing copiará el número de símbolos ―1″
que encuentre hasta el primer blanco detrás de dicho símbolo blanco. Es decir,
situada sobre el 1 situado en el extremo izquierdo, doblará el número de símbolos
1, con un 0 en medio. Así, si tenemos la entrada ―111″ devolverá ―1110111″, con
―1111″ devolverá ―111101111″, y sucesivamente.

El conjunto de estados es {s1,s2,s3,s4,s5} y el estado inicial es s1. La tabla que
describe la función de transición es la siguiente:
ESTADO      S.LEIDO     S.ESCRITO        MOV.    ESTADO SIG.
    s1           1             0            R             s2
    s2           1             1            R             s2
    s2           0             0            R             s3
    s3           0             1            L             s4
    s3           1             1            R             s3
    s4           1             1            L             s4
    s4           0             0            L             s5
    s5           1             1            L             s5
    s5           0             1            R             s1


El funcionamiento de una computación de esta máquina se puede mostrar con el
siguiente ejemplo (en negrita se resalta la posición de la cabeza lectora/escritora):
PASO                    ESTADO                   CINTA
           1                       s1                     11
           2                       s2                     01
           3                       s2                    010
           4                       s3                    0100
           5                       s4                    0101
           6                       s5                    0101
           7                       s5                    0101
           8                       s1                    1101
           9                       s2                    1001
10                       s3                   1001
          11                       s3                   10010
          12                       s4                   10011
          13                       s4                   10011
          14                       s5                   10011
          15                       s1                   11011
       PARADA


La máquina realiza su proceso por medio de un bucle, en el estado inicial s1,
reemplaza el primer 1 con un 0, y pasa al estado s2, con el que avanza hasta la
derecha, saltando los símbolos 1 hasta un 0 (que debe existir), cuando lo
encuentra pasa a ser s3, con este estado avanza saltando los 1 hasta encontrar
otro 0 (la primera vez no habría ningún 1). Una vez en el extremo derecho, añade
un 1. Después comienza el proceso de retorno; con s4 vuelve a la izquierda
saltando los 1, cuando encuentra un 0 (en el medio de la secuencia), pasa a s5
que continúa a la izquierda saltando los 1 hasta el 0 que se escribió al principio. Se
reemplaza de nuevo este 0 por 1, y pasa al símbolo siguiente, si es un 1, se pasa a
otra iteración del bucle, pasando al estado s1 de nuevo. Si es un símbolo 0, será el
símbolo central, con lo que la máquina se detiene al haber finalizado su cómputo.

Máquina de Turing Cuántica En 1985, Deutsch presentó el diseño de la primera
Máquina Cuántica basada en una máquina de Turing. Con este fin enunció una
nueva variante la tesis de Church dando lugar al denominado ―Principio de Church-
Turing-Deutsch‖. La estructura de una máquina de Turing cuántica es muy similar
a la de una máquina de Turing clásica. Está compuesta por los tres elementos
clásicos: •Una cinta de memoria infinita en que cada elemento es un Qu Bit? •Un
procesador finito •Un cursor

Diagrama de transición para la maquina de turing

Las transiciones de una maquina de turing pueden representarse visualmente, un
diagrama de transición esta formado por un conjunto de nodos que nodos que
corresponde a los estados de la MT. En un arco que vaya del estado q al esta p,
apareceran una o varias etiquetas de la forma X/YS, donde X e Y son símbolos de
cintan y S indica un sentido, que puede se I o D. es decir, si δ(q,X) = (p,Y,S),en el
arco que va de q a p se encontrara la etiqueta X/YS.

QUIROZ MONTES KAREN PATRICIA
COMIENZA TRABAJO EQUIPO 1

(:includeurl http://docs.google.com/EmbedSlideshow?docid=dgddvf6t_1f98pdpcm
&amp :)

Presentacion informativa sobre la maquina de turing
→ http://www.megaupload.com/?d=3CJJ7CLO

                           LA MAQUINA DE TURING




                        Alan Mathison Turing (1912–1954)

                     http://es.wikipedia.org/wiki/Alan_Turing

La máquina de Turing es un modelo computacional introducido por Alan Turing en
el trabajo ―On computable numbers, with an application to the
Entscheidungsproblem‖, publicado por la Sociedad Matemática de Londres, en el
cual se estudiaba la cuestión planteada por David Hilbert sobre si las matemáticas
son decidibles, es decir, si hay un método definido que pueda aplicarse a cualquier
sentencia matemática y que nos diga si esa sentencia es cierta o no. Turing
construyó un modelo formal de computador, la máquina de Turing, y demostró
que existían problemas que una máquina no podía resolver. La máquina de Turing
es un modelo matemático abstracto que formaliza el concepto de algoritmo. Una
máquina de Turing con una sola cinta puede ser definida como una 6-tupla , donde
Q es un conjunto finito de estados Γ es un conjunto finito de símbolos de cinta, el
alfabeto de cinta es el estado inicial .
Es un símbolo denominado blanco, y es el único símbolo que se puede repetir un
número infinito de veces. Es el conjunto de estados finales de aceptación. Es una
función parcial denominada función de transición, donde L es un movimiento a la
izquierda y R es el movimiento a la derecha.

Existen en la literatura un abundante número de definiciones alternativas, pero
todas ellas tienen el mismo poder computacional, por ejemplo se puede añadir el
símbolo como símbolo de ―no movimiento‖ en un paso de cómputo.

               ¿COMO FUNCIONA UNA MAQUINA DE TURING?

Una máquina de Turing es un dispositivo que transforma un INPUT en un OUTPUT
después de algunos pasos. Tanto el INPUT como el OUPUT constan de números en
código binario (ceros y unos). En su versión original la máquina de Turing consiste
en una cinta infinitamente larga con unos y ceros que pasa a través de una caja.
La caja es tan fina que solo el trozo de cinta que ocupa un bit (0 ó 1) está en su
interior. La máquina tiene una serie de estados internos finitos que también se
pueden numerar en binario. Para llevar a cabo algún algoritmo, la máquina se
inicializa en algún estado interno arbitrario. A continuación, se pone en marcha y
la máquina lee el bit que se encuentra en ese momento en su interior y ejecuta
alguna operación con ese bit (lo cambia o no, dependiendo de su estado interno).
Después se mueve hacia la derecha o hacia la izquierda, y vuelve a procesar el
siguiente bit de la misma manera. Al final se para, dejando el resultado al lado
izquierdo por ejemplo.

11011i→Una instrucción típica podría ser: 01




                   VARIANTES DE LA MAQUINA DE TURING

La traducción es como sigue: si la máquina se encuentra en el estado interno 0 y
lee 1 en la cinta, entonces pasará al estado interno 1101 (13), escribirá 1 y se
moverá hacia la izquierda un paso (la cinta se moverá hacia la derecha). A
continuación es conveniente inventar una notación para la secuencia del INPUT.
Esta notación se llama notación binaria expandida. Consiste en cambiar la
secuencia original binaria por otra construida de la siguiente forma: el 0 se cambia
por 0 y el 1 por 10 y se ponen un cero a la izquierda y/o a la derecha del resultado
si empieza o acaba en 1 respectivamente. Así por ejemplo, el número 13 que en
binario es 1101 es en binario expandido 1010010 con un cero delante por esta
última regla 01010010. Para volver al original hay que contraer el binario
expandido con la siguiente regla: Empezamos a leer por la izquierda el bianrio
expandido. Cuando encontremos un 0 tomamos nota de cuántos 1 hay hasta llegar
al siguiente 0 y lo escribimos. Si encontramos que hay dos 0 seguidos,
apuntaríamos un 0 porque no habría ningún 1.Veamos con el 13 cómo se haría. El
primer 0 se encuentra en la primera posición y el siguiente 0 está en la posición 3.
Entre los dos solo hay un 1. Lo anotamos. Seguidamente hay un 1, y después un
0, entonces apuntamos 1 porque hay un 1 entre medias de ellos. Esto es lo que se
hace sucesivamente y encontramos: 1101 que es el número original.

Descripción La máquina de Turing consta de un cabezal lector/escritor y una
cinta infinita en la que el cabezal lee el contenido, borra el contenido anterior y
escribe un nuevo valor. Las operaciones que se pueden realizar en esta máquina
se limitan a: Avanzar el cabezal lector/escritor para la derecha; • avanzar el
cabezal lector/escritor para la izquierda. El cómputo es determinado a partir de
una tabla de estados de la forma: (Estado, valor)-→(nuevo estado, nuevo valor,
dirección) .

Definición Una máquina de Turing con una sola cinta puede ser definida como
una 6-tupla M=(Q,L,s,b,F,o) , donde;

•Q es un conjunto finito de estados.

•L es un conjunto finito de símbolos de cinta, el alfabeto de cinta.

•s E Q es el estado inicial.

•b E L es un símbolo denominado blanco, y es el único símbolo que se puede
repetir un número infinito de veces.

•F _C Q es el conjunto de estados finales de aceptación.

•o : Q x L → Q x L x {L,R} es una función parcial denominada función de
transición, donde L es un movimiento a la izquierda y R es el movimiento a la
derecha.

                         ¿QUE SON Y COMO FUNCIONAN?

Una máquina de Turing consiste, básicamente, en una cinta infinita, dividida en
casillas. Sobre esta cinta hay un dispositivo capaz de desplazarse a lo largo de ella
a razón de una casilla cada vez. Este dispositivo cuenta con un cabezal capaz de
leer un símbolo escrito en la cinta, o de borrar el existente e imprimir uno nuevo
en su lugar. Por último, contiene además un registro capaz de almacenar un
estado cualquiera, el cual viene definido por un símbolo. Los símbolos que definen
el estado del dispositivo no tienen por que coincidir con los símbolos que se
pueden leer o escribir en la cinta. En los programas presentados en el artículo, los
posibles símbolos a leer o escribir en la cinta son el 0 y el 1, y los posibles estados
se representan con letras mayúsculas. En el emulador, existe un cambio en la
representación del estado, usando para ello los números del 0 al 99, para permitir
un mayor número de ellos. La máquina tiene un funcionamiento totalmente
mecánico y secuencial. Lo que hace es leer el símbolo que hay en la casilla que
tiene debajo. Después toma el símbolo del estado en que se encuentra. Con estos
dos datos accede a una tabla, en la cual lee el símbolo que debe escribir en la
cinta, el nuevo estado al que debe pasar y si debe desplazarse a la casilla
izquierda o derecha.

Ejemplo Definimos una máquina de Turing sobre el alfabeto {0,1}, donde 0
representa el símbolo blanco. La máquina comenzará su proceso situada sobre un
símbolo ―1″ de una serie. La máquina de Turing copiará el número de símbolos ―1″
que encuentre hasta el primer blanco detrás de dicho símbolo blanco. Es decir,
situada sobre el 1 situado en el extremo izquierdo, doblará el número de símbolos
1, con un 0 en medio. Así, si tenemos la entrada ―111″ devolverá ―1110111″, con
―1111″ devolverá ―111101111″, y sucesivamente.

El conjunto de estados es {s1,s2,s3,s4,s5} y el estado inicial es s1. La tabla que
describe la función de transición es la siguiente:
ESTADO      S.LEIDO      S.ESCRITO        MOV.    ESTADO SIG.
    s1            1             0            R             s2
    s2            1             1            R             s2
    s2            0             0            R             s3
    s3            0             1            L             s4
    s3            1             1            R             s3
    s4            1             1            L             s4
    s4            0             0            L             s5
    s5            1             1            L             s5
    s5            0             1            R             s1


El funcionamiento de una computación de esta máquina se puede mostrar con el
siguiente ejemplo (en negrita se resalta la posición de la cabeza lectora/escritora):
PASO                   ESTADO                  CINTA
          1                       s1                    11
          2                       s2                    01
          3                       s2                   010
          4                       s3                   0100
          5                       s4                   0101
          6                       s5                   0101
          7                       s5                   0101
          8                       s1                   1101
          9                       s2                   1001
          10                      s3                   1001
          11                      s3                 10010
          12                      s4                 10011
          13                      s4                 10011
          14                      s5                 10011
          15                      s1                 11011
       PARADA


Vemos que esta máquina no hace gran cosa. Sin embargo, una máquina de Turing
puede hacer cosas útiles, tales como sumar dos números, multiplicarlos, copiarlos,
etc. Disponiendo de una máquina con el suficiente número de estados, podríamos
hacer con ella cualquier operación que un ordenador normal pudiese realizar. Las
máquinas de Turing plantean una deducción bastante curiosa: dado que en ellas se
puede realizar cualquier trabajo computable, es posible programarlas para que
simulen el comportamiento de un potente ordenador. Y como una máquina de
Turing puede ser codificada en CUALQUIER ordenador, por pequeño que sea, sería
posible (si disponemos de memoria suficiente, claro) emular en nuestro ordenador
de casa una máquina de Turing que simule un superordenador. Esto significa que
todos los ordenadores pueden realizar exactamente el mismo tipo de tareas, y que
los cálculos que pueda realizar el más grande los puede llevar a cabo también el
más pequeño. La única diferencia sería, obviamente, la velocidad.

                      VIDEO (TURING Y SU MAQUINA).

El siguiente video es muy interesante habla sobre Turing y su maquina. Un poco
de historia sobre Alan Turing y un poco sobre su maquina como la invento y para
que se utilizo o con que proposito. esperamos sea de su agrado.
(:includeurl http://www.youtube.com/watch?v=v1on9D3Fkus&feature=related :)

―EQUIPO 1″ MATEMATICAS PARA COMPUTADORA. grupo:302 lic.informatica.

      Castro Cevallos Manuel Antonio.
      Cortes Cortes Lizbeth Alondra.
      Cruz Torres Maritza Jeaninne.
      Ferrer Ramirez Ernesto.

―AQUI TERMINA NUESTRO TRABAJO‖

(continuamos editando)…….

Presentacion sobre la maquina de Turing



(:includeurl http://docs.google.com/EmbedSlideshow?docid=dcc347mh_19cqgnf7f
z:)




Aquí empieza el Trabajo elaborado por:

      Landeros Labrada Lizzet;
      Mendoza Torres Nayeli;
      Ontiveros Amaya Brenda;
      Rangel Cortes Guadalupe;
      Suarez Castellanos Iris y
      Schwuchow Alfaro Bianca

Lic.Informática 301



                            *La Maquina de Turing*




La máquina de Turing es un modelo computacional introducido por Alan Turing en
el trabajo ―On computable numbers, with an application to the
Entscheidungsproblem‖, publicado por la Sociedad Matemática de Londres, en el
cual se estudiaba la cuestión planteada por David Hilbert sobre si las matemáticas
son decidibles, es decir, si hay un método definido que pueda aplicarse a cualquier
sentencia matemática y que nos diga si esa sentencia es cierta o no. Turing
construyó un modelo formal de computador, la máquina de Turing, y demostró
que existían problemas que una máquina no podía resolver. La máquina de Turing
es un modelo matemático abstracto que formaliza el concepto de algoritmo.

DIAGRAMA ARTISTICO DE UNA MAQUINA DE TURING




                         ¿Cómo es la Máquina Turing?

La máquina de Turing consta de un cabezal lector/escritor y una cinta infinita en la
que el cabezal lee el contenido, borra el contenido anterior y escribe un nuevo
valor. Las operaciones que se pueden realizar en esta máquina se limitan a:

avanzar el cabezal lector/escritor hacia la derecha. avanzar el cabezal
lector/escritor hacia la izquierda. El cómputo es determinado a partir de una tabla
de estados de la forma:

(estado, valor) (nuevo estado, nuevo valor, dirección)

Esta tabla toma como parámetros el estado actual de la máquina y el carácter
leído de la cinta, dando la dirección para mover el cabezal, el nuevo estado de la
máquina y el valor a ser escrito en la cinta.

Con este aparato extremadamente sencillo es posible realizar cualquier cómputo
que un computador digital sea capaz de realizar.

Mediante este modelo teórico y el análisis de complejidad de algoritmos, fue
posible la categorización de problemas computacionales de acuerdo a su
comportamiento, apareciendo así, el conjunto de problemas denominados P y NP,
cuyas soluciones en tiempo polinómico son encontradas según el determinismo y
no determinismo respectivamente de la máquina de Turing.

De hecho, se puede probar matemáticamente que para cualquier programa de
computadora es posible crear una máquina de Turing equivalente. Esta prueba
resulta de la Tesis de Church-Turing, formulada por Alan Turing y Alonzo Church,
de forma independiente a mediados del siglo XX.
La idea subyacente es el concepto de que una máquina de Turing es una persona
ejecutando un procedimiento efectivo definido formalmente, donde el espacio de
memoria de trabajo es ilimitado, pero en un momento determinado sólo una parte
finita es accesible. La memoria se divide en espacios de trabajo denominados
celdas, donde se pueden escribir y leer símbolos. Inicialmente todas las celdas
contienen un símbolo especial denominado ―blanco‖. Las instrucciones que
determinan el funcionamiento de la máquina tienen la forma, ―si estamos en el
estado x leyendo la posición y, donde hay escrito el símbolo z, entonces este
símbolo debe ser reemplazado por este otro símbolo, y pasar a leer la celda
siguiente, bien a la izquierda o bien a la derecha‖. La máquina de Turing puede
considerarse como un autómata capaz de reconocer lenguajes formales. En ese
sentido es capaz de reconocer los lenguajes recursivamente enumerables, de
acuerdo a la jerarquía de Chomsky. Su potencia es, por tanto, superior a otros
tipos de autómatas, como el autómata finito, o el autómata con pila, o igual a
otros modelos con la misma potencia computacional.

                                       Definiciòn

Una máquina de Turing con una sola cinta puede ser definida como una 6-tupla
M=(Q,T,s,b,F,S) , donde:

•Q es un conjunto finito de estados.

•T es un conjunto finito de símbolos de cinta, el alfabeto de cinta.

•s E Q es el estado inicial.

•b E L es un símbolo denominado blanco, y es el único símbolo que se puede
repetir un número infinito de veces.

•F _C Q es el conjunto de estados finales de aceptación.

•S : Q x L → Q x L x {L,R} es una función parcial denominada función de
transición, donde L es un movimiento a la izquierda y R es el movimiento a la
derecha.

Existen en la literatura un abundante número de definiciones alternativas, pero
todas ellas tienen el mismo poder computacional, por ejemplo se puede añadir el
símbolo S como símbolo de ―no movimiento‖ en un paso de cómputo o el símbolo
Σ para indicar el alfabeto de entrada.
Ejemplo Definimos una máquina de Turing sobre el alfabeto {0,1}, donde 0
representa el símbolo blanco. La máquina comenzará su proceso situada sobre un
símbolo ―1″ de una serie. La máquina de Turing copiará el número de símbolos ―1″
que encuentre hasta el primer blanco detrás de dicho símbolo blanco. Es decir,
situada sobre el 1 situado en el extremo izquierdo, doblará el número de símbolos
1, con un 0 en medio. Así, si tenemos la entrada ―111″ devolverá ―1110111″, con
―1111″ devolverá ―111101111″, y sucesivamente.

El conjunto de estados es {s1,s2,s3,s4,s5} y el estado inicial es s1. La tabla que
describe la función de transición es la siguiente:
ESTADO      S.LEIDO     S.ESCRITO        MOV.    ESTADO SIG.
    s1           1             0            R             s2
    s2           1             1            R             s2
    s2           0             0            R             s3
    s3           0             1            L             s4
    s3           1             1            R             s3
    s4           1             1            L             s4
    s4           0             0            L             s5
    s5           1             1            L             s5
    s5           0             1            R             s1


El funcionamiento de una computación de esta máquina se puede mostrar con el
siguiente ejemplo (en negrita se resalta la posición de la cabeza lectora/escritora):
PASO                    ESTADO                   CINTA
           1                       s1                     11
           2                       s2                     01
           3                       s2                    010
           4                       s3                    0100
           5                       s4                    0101
           6                       s5                    0101
           7                       s5                    0101
           8                       s1                    1101
           9                       s2                    1001
          10                       s3                    1001
          11                       s3                  10010
12                       s4                  10011
          13                       s4                  10011
          14                       s5                  10011
          15                       s1                  11011
       PARADA


La máquina realiza su proceso por medio de un bucle, en el estado inicial s1,
reemplaza el primer 1 con un 0, y pasa al estado s2, con el que avanza hasta la
derecha, saltando los símbolos 1 hasta un 0 (que debe existir), cuando lo
encuentra pasa a ser s3, con este estado avanza saltando los 1 hasta encontrar
otro 0 (la primera vez no habría ningún 1). Una vez en el extremo derecho, añade
un 1. Después comienza el proceso de retorno; con s4 vuelve a la izquierda
saltando los 1, cuando encuentra un 0 (en el medio de la secuencia), pasa a s5
que continúa a la izquierda saltando los 1 hasta el 0 que se escribió al principio. Se
reemplaza de nuevo este 0 por 1, y pasa al símbolo siguiente, si es un 1, se pasa a
otra iteración del bucle, pasando al estado s1 de nuevo. Si es un símbolo 0, será el
símbolo central, con lo que la máquina se detiene al haber finalizado su cómputo.

            Máquinas de Turing deterministas y no deterministas

La entrada de una máquina de Turing viene determinada por el estado actual y el
símbolo leído, un par [estado, símbolo], siendo el cambio de estado, la escritura
de un nuevo símbolo y el movimiento las acciones a tomar en función de una
entrada. En el caso de que para cada par estado y símbolo posible exista a lo
sumo una posibilidad de ejecución, se dirá que es una máquina de Turing
determinista, mientras que en el caso de que exista al menos un par [estado,
símbolo] con más de una posible combinación de actuaciones se dirá que se trata
de una máquina de Turing no determinista.

La función de transición δ en el caso no determinista, queda definida como sigue:

S: Q X T→ P(QX T X {L,R})

¿Cómo sabe una máquina no determinista cuál de las varias actuaciones tomar?
Hay dos formas de verlo: una es decir que la máquina es ―el mejor adivino
posible‖, esto es, que siempre elige la transición que eventualmente la llevará a un
estado final de aceptación. La otra es imaginarse que la máquina se ―clona‖,
bifurcándose en varias copias, cada una de las cuales sigue una de las posibles
transiciones. Mientras que una máquina determinista sigue un solo ―camino
computacional‖, una máquina no determinista tiene un ―árbol computacional‖. Si
cualquiera de las ramas del árbol finaliza en un estado de aceptación, se dice que
la máquina acepta la entrada.

La capacidad de cómputo de ambas versiones es equivalente; se puede demostrar
que dada una máquina de Turing no determinista existe otra máquina de Turing
determinista equivalente, en el sentido de que reconoce el mismo lenguaje, y
viceversa. No obstante, la velocidad de ejecución de ambos formalismos no es la
misma, pues si una máquina no determinista M reconoce una cierta palabra de
tamaño n en un tiempo O(t(n)), la máquina determinista equivalente reconocerá la
palabra en un tiempo O(2t(n)). Es decir, el no determinismo permitirá reducir la
complejidad de la solución de los problemas, permitiendo resolver, por ejemplo,
problemas de complejidad exponencial en un tiempo polinómico.

                          Máquina Universal de Turing

Una máquina de Turing computa una determinada función parcial de carácter
definido, y unívoca, definida sobre las secuencias de posibles cadenas de símbolos
de su alfabeto. En este sentido se puede considerar como equivalente a un
programa de ordenador, o a un algoritmo. Sin embargo es posible realizar una
codificación de la tabla que representa a una máquina de Turing, a su vez, como
una secuencia de símbolos en un determinado alfabeto; por ello, podemos
construir una máquina de Turing que acepte como entrada la tabla que representa
a otra máquina de Turing, y, de esta manera, simule su comportamiento.

En 1947, Turing indicó:

Se puede demostrar que es posible construir una máquina especial de este tipo
que pueda realizar el trabajo de todas las demás. Esta máquina especial puede ser
denominada máquina universal.

Esta fue, posiblemente, la idea germinal del concepto de Sistema Operativo, un
programa que puede, a su vez, ejecutar en el sentido de controlar otros
programas, demostrando su existencia, y abriendo camino para su construcción
real.

Con esta codificación de tablas como cadenas, se abre la posiblidad de que unas
máquinas de Turing se comporten como otras máquinas de Turing. Sin embargo,
muchas de sus posibilidades son indecidibles, pues no admiten una solución
algorítmica. Por ejemplo, un problema interesante es determinar si una máquina
de Turing cualquiera se parará en un tiempo finito sobre una determinada entrada;
problema conocido como Problema de la parada, y que Turing demostró que era
indecidible. En general, se puede demostrar que cualquier cuestión no trivial sobre
el comportamiento o la salida de una máquina de Turing es un problema
indecidible.

                          Máquina de Turing Cuántica




En 1985, Deutsch presentó el diseño de la primera Máquina Cuántica basada en
una máquina de Turing. Con este fin enunció una nueva variante la tesis de
Church dando lugar al denominado ―Principio de Church-Turing-Deutsch‖.

La estructura de una máquina de Turing cuántica es muy similar a la de una
máquina de Turing clásica. Está compuesta por los tres elementos clásicos:

      Una cinta de memoria infinita en que cada elemento es un Qu Bit
      Un procesador finito
      Un cursor

El procesador contiene el juego de instrucciones que se aplica sobre el elemento
de la cinta señalado por el cursor. El resultado dependerá del Qu Bit de la cinta y
del estado del procesador. El procesador ejecuta una instrucción por unidad de
tiempo.

La cinta de memoria es similar a la de una máquina de Turing tradicional. La única
diferencia es que cada elemento de la cinta de la máquina cuántica es un Qu Bit. El
alfabeto de esta nueva máquina está formado por el espacio de valores del Qu Bit.

El cursor es el elemento que comunica la unidad de memoria y el procesador. Su
posición se representa con una variable entera.

      Presentacion de La Màquina de Turing

(:includeurl http://docs.google.com/EmbedSlideshow?docid=dg297hmk_8fw2bt5d
d&amp:)

      Video sobre la Maquina de Turing

(:includeurl http://www.youtube.com/watch?v=DnBsndE1IkA:)
Aqui termina el trabajo elaborado por:

      Landeros Labrada Lizzet;
      Mendoza Torres Nayeli;
      Ontiveros Amaya Brenda;
      Rangel Cortes Guadalupe;
      Suarez Castellanos Iris y
      Schwuchow Alfaro Bianca

Lic.Informática 301




Aqui empieza el trabajo del equipo numero 7 Carrera: Lic. en Iformaica. Docente:
Alberto Lomeli. Salon y grupo: 302

Integrantes:

      Sergio Zamora Blancarte.
      Beltran Loez Hirwin Arturo.
      Pacheco Lara Arturo.

http://docs.google.com/Presentation?docid=df973fmc_3cg94qggz&hl=en

Aqui termina el trabajo del equipo 7.




Aqui empieza el trabajo del equipo 8.

Lic. en Informatica 302, Profesor: Alberto Lomeli

Integrantes:
*Arellano Juarez Aaron.
*Contreras Ramos Imelda.
*Perez Dorado Martin.
*Hernandez Velasco Keren.
*Ramos Hurtado Alejandra.
(:includeurl http://docs.google.com/Present?docid=dhbfs52_33gm2gscdr:)

(:youtube Sbury 0 Ak 2 Tg:)
Video traducido:
―La maquina tiene basicamente 3 componentes, el primero es una cinta, que como
se puede ver esta dividida en cuadros y tiene un cabezal lector/escritor o un
scanner, y basicamente tiene la funcion de escanear un simbolo a la vez. Esto
basicamente significa que cada cuadro puede contener un simbolo, por ejemplo un
cero, o un uno, o cualquier otro simbolo diferente en la cinta. Esto de aqui es el
cabezal lector/escritor, o lo pueden llamar escaner, cualquiera que prefieran. Asi
que, basicamente esta la cinta y el escaner, y la cinta se mueve atravez del
escaner en intervalos de un paso, puede ir uno hacia arriba, o uno hacia abajo, o
quedarse donde esta. Tambien esta una caja conectada, a la que yo le llamo
controlador. Este esta conectado al cabezal lector/escritor, y dependiendo de lo
que el escaner este leyendo en un tiempo exacto y el estado del controlador,
puede ir de un estado a otro siguiendo un set predeterminado de pre-condiciones
que existen dentro del controlador. El controlador tiene dos partes principales,
tiene Estado principal; en el que tiene reglas que le dice como moverse de un
estado a otro. Y tiene un Estado transitivo; lo que sucede es que la maquina
empieza en algun estado inicial y leera el simbolo y el simbolo ira al controlador y
el controlador dira ‗estoy en este estado y lei este simbolo‘ y va haber una regla
que va a encontrar, basado en esa regla podria bajar uno, e ir al estado dos.
Basicamente se va a mover atraves de la cinta y puede leer, escribir o moverse. Y
esa es, la formalizacion basica de la maquina de turing y es usada basicamente
como una calculador universal asi que esto es como una formalizacion teorica de
una computadora personal, se puede imaginar que esto es la computadora, esto
podria ser la memoria y su leector de memoria, algo asi como un cpu, y el
controlador que podria ser como un ejecutador binaro o, no, no como un
ejecutador binario, mejor como las instrucciones que estan disponibles en el
proceso para procesar los datos, y pues basicamente esto es lo que es una
maquina de turing, estaremos introduciendo lo que es la definicion matematica
mas rigorista de lo que es, peroe esto solo es una definicion pictorica (ilustrada,
grafica) para que tengan la representacion de lo que es mas o menos y sepan de
lo que estamos hablando…‖

(:youtube v1on9D3Fkus:)

Una máquina de Turing es un autómata que se mueve sobre una secuencia lineal
de datos. En cada instante la máquina puede leer un solo dato de la secuencia
(generalmente un carácter) y realiza ciertas acciones en base a una tabla que
tiene en cuenta su ―estado‖ actual (interno) y el último dato leído. Entre las
acciones está la posibilidad de escribir nuevos datos en la secuencia; recorrer la
secuencia en ambos sentidos y cambiar de ―estado‖ dentro de un conjunto finito
de estados posibles.
En realidad la máquina de Turing es más una abstracción matemática que un
dispositivo físico o mecánico. El hecho que se le denomine ―máquina‖ se debe a
que su funcionamiento puede ser descrito en términos de operaciones individuales
muy sencillas que sugieren una implementación real muy simple, lo que ha
motivado que existan muchas versiones prácticas del mismo.
Aqui termina el trabajo del equipo 8




Aqui comienza el trabajo del equipo 3

Trabajo: unidad 6

Integrantes: Cruz Reyes Cuautemoc Lopez Salas Miguel Salazar Gutierrez Gustavo
Solis Covarrubias Alejandro Verdugo Cota Luis Miguel

Grupo: 302 Lic.Informatica

introduccion de la unidad 6

El lenguaje formal es aquel que el hombre ha desarrollado para expresar las
situaciones que se dan en especifico en cada área del conocimiento científico. Las
palabras y oraciones de un lenguaje formal son perfectamente definidas(una
palabra mantiene su el mismo significado prescindiendo de su contexto o uso. Los
lenguajes formales son exentos de cualquier componente semántico fuera de sus
operadores y relaciones. Los lenguajes formales pueden ser utilizados para
modelar una teoría de la mecánica, fisica, matemática, ingeniería eléctrica, o de
otra naturaleza, con la ventaja de que en estos toda ambigüedad es eliminada. La
idea básica es considerar a un lenguaje como un conjunto compuesto por cadenas
de longitud finita formadas por símbolos tomados de un alfabeto. Los lenguajes
formales como las matemáticas y la lógica, fueron desarrollados generalmente a
través del establecimiento de una teoría, la cual le da las bases para dichos
lenguajes. Empezaremos por ver lo que es la definición de lenguaje. LENGUAJE Las
lenguas son sistemas más o menos complejos, que asocian contenidos de
pensamiento y significación a manifestaciones simbólicas tanto orales como
escritas. El lenguaje sería la capacidad humana para comunicarse mediante
lenguas como los idiomas o los creados con fines específicos (los lenguajes de
programación, los lenguajes de la lógica, los lenguajes de la aritmética…).
Definiremos el lenguaje como un conjunto de palabras, cada lenguaje está
compuesto por secuencias de símbolos tomados de alguna colección finita. la
colección finita es el conjunto de las letras del alfabeto junto con los símbolos que
se usan para construir palabras De forma similar, la representación de enteros,
son secuencias de caracteres del conjunto de los dígitos {0,1,2,3,4,5,6,7,8,9}.
Una secuencia finita de símbolos de un determinado alfabeto, se conoce como
palabra sobre dicho alfabeto. Cada símbolo de un alfabeto, es una cadena sobre
dicho alfabeto. La cadena vacía, es una palabra sobre cualquier alfabeto. La
palabra vacía, es una secuencia vacía de símbolos, tomados de cualquiera que sea
el alfabeto en cuestión. Los lenguajes pueden ser bastante grandes, como lo es el
caso de todas las palabras ―correctas‖ que se pueden formar en castellano sobre el
alfabeto castellano, dado que un lenguaje es un conjunto de cadenas. LENGUAJES
FORMALES El calificativo ―formal‖, determina un lenguaje que es construido
estableciendo una teoría y se le llamaría artificial. Un lenguaje formal como la
lógica consiste de un conjunto de oraciones llamadas fórmulas o expresiones bien
formadas. ―lenguaje artificial‖ se refiere al hecho de que se forma por medio de
reglas de formación, ―formal‖ se refiere específicamente al hecho de que las
oraciones de estos lenguajes consisten de una lista de símbolos sujetos a diversas
interpretaciones. Una de las metas en computación es poder especificar
rigurosamente los significados por los métodos de interpretación de los sistemas
formales, estos métodos constituyen las semánticas del lenguaje formal. El
proceso de generación y desarrollo de un lenguaje formal es mediante las palabras
y las oraciones que son perfectamente definidas: una palabra mantiene el mismo
significado prescindiendo del contexto en el que se encuentre. Como resultado de
este proceso, obtendremos las llamadas gramáticas libres del contexto. En adición,
el significado de símbolos es determinado exclusivamente por la sintaxis, sin
referencia a ningún contenido semántico. Una función y una fórmula, puede
designar cualquier cosa, solamente los operadores y relaciones que nos permiten
escribir una fórmula como por ejemplo la igualdad, desigualdad, pertenencia, no
pertenencia, conectivos lógicos, etc., y operadores algebraicos +, -,*, /, tienen
significados especiales. Los lenguajes formales son, por todo esto, necesariamente
exentos de cualquier componente semántico fuera de sus operadores y relaciones,
y es gracias a esta ausencia de significado especial, que los lenguajes formales
pueden ser usados para modelar una teoría de la mecánica, de la ingeniería
electrónica, etc., en la lingüística u otra naturaleza, la cual asume el estatus del
componente semántico de tal lenguaje. No podemos evitar mencionar la
importancia de los números en lenguajes formales. En un sistema numérico, así
como en un sistema de cálculo, los números siempre tienen el potencial de referir
un cierto ―contenido‖ el cual pertenecerá entonces al componente semántico del
lenguaje: los objetos posibles cuando son contables o medibles. La asociación de
un significado con un número o con un cálculo no siempre es obvio, sin embargo,
es útil recordar que en física cuando se completa un cálculo y se busca una
interpretación del mismo solamente se mantienen los números positivos de los
resultados ya que las soluciones negativas o imaginarias a las ecuaciones que se
supone describen la realidad son la mayoría de las veces rechazadas porque no
corresponden con la ―realidad física‖. En resumen, los lenguajes formales, se
caracterizan con las siguientes propiedades: •Se desarrollan a partir de una teoría
establecida. •Tienen un componente semántico mínimo. •Posibilidad de
incrementar el componente semántico de acuerdo con la teoría a formalizar. •La
sintaxis produce oraciones no ambiguas, en lo que respecta al significado de sus
palabras •Completa formalización, y por esto, el potencial de la construcción
computacional.

GRAMATICA

La gramática de un lenguaje es el conjunto de reglas capaces de generar todas las
posibilidades combinatorias de ese lenguaje, ya sea éste un lenguaje formal o un
lenguaje natural.

Tema elegido: la maquina de turing
   La máquina de Turing es un modelo computacional introducido por
Alan Turing en el trabajo “On computable numbers, with an application
to the Entscheidungsproblem”, publicado por la Sociedad Matemática de
Londres, en el cual se estudiaba la cuestión planteada por David
Hilbert sobre si las matemáticas son decidibles, es decir, si hay un
método definido que pueda aplicarse a cualquier sentencia matemática y
que nos diga si esa sentencia es cierta o no. Turing construyó un
modelo formal de computador, la máquina de Turing, y demostró que
existían problemas que una máquina no podía resolver. La máquina de
Turing es un modelo matemático abstracto que formaliza el concepto de
algoritmo.

Alan Mathison Turing (23 de junio de 1912 - 7 de junio de 1954). Fue un
matemático, informático teórico,criptógrafo y filósofo inglés. Se le considera uno
de los padres de la Ciencia de la computación siendo el precursor de la informátic
amoderna. Proporcionó una influyente formalización de los conceptos de algoritmo
y computación: lamáquina de Turing. Formuló su propia versión de la hoy
ampliamente aceptada Tesis de Church-Turing, la cual postula que cualquier
modelo computacional existente tiene las mismas capacidades algorítmicas, o un
subconjunto, de las que tiene una máquina de Turing. Durante la Segunda Guerra
Mundial, trabajó en romper los códigos nazis, particularmente los de la máquina
Enigma; durante un tiempo fue el director de la sección Naval Enigma del
Bletchley Park. Tras la guerra diseñó uno de los primeros computadores
electrónicos programables digitales en el Laboratorio Nacional de Física del Reino
Unido y poco tiempo después construyó otra de las primeras máquinas en la
Universidad de Manchester. Entre otras muchas cosas, también contribuyó de
forma particular e incluso provocativa al enigma de si las máquinas pueden
pensar, es decir a la Inteligencia Artificial.

La Universidad y sus estudios sobre computabilidad
Debido a su falta de voluntad para esforzarse con la misma intensidad en el
estudio de los clásicos que en el de la ciencia y las matemáticas, Turing suspendió
sus exámenes finales varias veces y tuvo que ingresar en la escuela universitaria
que eligió en segundo lugar, King‘s College, Universidad de Cambridge, en vez de
en la que era su primera elección, Trinity. Recibió las enseñanzas de Godfrey
Harold Hardy, un respetado matemático que ocupó la cátedra Sadleirian en
Cambridge y que posteriormente fue responsable de un centro de estudios e
investigaciones matemáticas de 1931 a 1934. En 1935 Turing fue nombrado
profesor del King‘s College.

En su memorable estudio ―Los números computables, con una aplicación al
Entscheidungsproblem‖ (publicado en 1936), Turing reformuló los resultados
obtenidos por Kurt Gödel en 1931 Máquina de Turing, unos dispositivos formales y
simples. Demostró que dicha máquina era capaz de implementar cualquier
problema matemático que pudiera representarse mediante un algoritmo. Las
máquinas de Turing siguen siendo el objeto central de estudio en la teoría de la
computación. Llegó a probar que no había ninguna solución para el problema de
decisión, Entscheidungsproblem, demostrando primero que el problema de la
parada para las máquinas de Turing es irresoluble: no es posible decidir
algorítmicamente si una máquina de Turing dada llegará a pararse o no. Aunque
su demostración se publicó después de la demostración equivalente de Alonzo
Church respecto a su cálculo lambda, el estudio de Turing es mucho más accesible
e intuitivo. También fue pionero con su concepto de ―Máquina Universal (de
Turing)‖, con la tesis de que dicha máquina podría realizar las mismas tareas que
cualquier otro tipo de máquina. Su estudio también introduce el concepto de
números definibles. sobre los límites de la demostrabilidad y la computación,
sustituyendo al lenguaje formal universal descrito por Gödel por lo que hoy se
conoce como

La mayor parte de 1937 y 1938 la pasó en la Universidad de Princeton, estudiando
bajo la dirección de Alonzo Church. En 1938 obtuvo el Doctorado en Princeton; en
su discurso introdujo el concepto de hipercomputación, en el que ampliaba las
máquinas de Turing con las llamadas máquinas oráculo, las cuales permitían el
estudio de los problemas para los que no existe una solución algorítmica.

Tras su regreso a Cambridge en 1939, asistió a las conferencias de Ludwig
Wittgenstein sobre las bases de las matemáticas. Ambos discutieron y
mantuvieron un vehemente desencuentro, ya que Turing defendía el formalismo
matemático y Wittgenstein criticaba que las matemáticas estaban sobrevaloradas
y no descubrían ninguna verdad absoluta.

Análisis criptográfico (ruptura de códigos)
 Réplica de una máquina bombe
Durante la Segunda Guerra Mundial fue uno de los principales artífices de los
trabajos del Bletchley Park para descifrar los códigos nazis. Sus perspicaces
observaciones matemáticas contribuyeron a romper los códigos de la máquina
Enigma y de los codificadores de teletipos FISH (máquinas de teletipos codificados
que fabricaron conjuntamente Lorenz Electric y Siemens&Halske). Sus estudios del
sistema Fish ayudarían al desarrollo posterior de la primera computadora
programable electrónica digital llamada Colossus, la cual fue diseñada por Max
Newman y su equipo, y construida en la Estación de Investigaciones Postales de
Dollis Hill por un equipo dirigido por Thomas Flowers en 1943. Dicha computadora
se utilizó para descifrar los códigos Fish (en concreto las transmisiones de la
máquina Lorenz).

Para romper los códigos de la máquina Enigma, Turing diseñó la bombe, una
máquina electromecánica —llamada así en reconocimiento de la diseñada por los
polacos bomba kryptologiczna— que se utilizaba para eliminar una gran cantidad
de claves enigma candidatas. Para cada combinación posible se implementaba
eléctricamente una cadena de deducciones lógicas. Era posible detectar cuándo
ocurría una contradicción y desechar la combinación. La bombe de Turing, con una
mejora añadida que sugirió el matemático Gordon Welchman, era la herramienta
principal que usaban los criptógrafos aliados para leer las transmisiones Enigma.

Los trabajos de ruptura de códigos de Turing han sido secretos hasta los años
1970; ni siquiera sus amigos más íntimos llegaron a tener constancia.

Estudios sobre las primeras computadoras; la prueba de Turing

De 1945 a 1948 trabajó en el Laboratorio Nacional de Física en el diseño del ACE
(Máquina de Computación Automática). En 1949 fue nombrado director delegado
del laboratorio de computación de la Universidad de Manchester y trabajó en el
software de una de las primeras computadoras reales — la Manchester Mark I.
Durante esta etapa también realizó estudios más abstractos y en su artículo
―Máquinas de computación e inteligencia‖ (octubre de 1950) Turing trató el
problema de la inteligencia artificial y propuso un experimento que hoy se conoce
como la prueba de Turing, con la intención de definir una prueba estándar por el
que una máquina podría catalogarse como ―sensible‖ o ―sentiente‖.

En 1952 Turing escribió un programa de ajedrez. A falta de una computadora lo
suficientemente potente como para ejecutarlo, él simulaba el funcionamiento de la
computadora, tardando más de hora y media en efectuar un movimiento. Una de
las partidas llegó a registrarse; el programa perdió frente a un amigo de Turing.
Trabajó junto a Norbert Wiener en el desarrollo de la cibernética. Esta rama de
estudios se genera a partir de la demanda de sistemas de control que exige el
progresivo desarrollo de las técnicas de producción a partir del siglo XX. La
cibernética pretende establecer un sistema de comunicación entre el hombre y la
máquina como premisa fundamental para administrar los sistemas de control. Sus
estudios profundizaron en esta relación estableciendo el concepto de interfaz y
cuestionando los límites de simulación del razonamiento humano.

Estudios sobre la formación de patrones y la biología matemática

Turing trabajó desde 1952 hasta que falleció en 1954 en la biología matemática,
concretamente en la morfogénesis. Publicó un trabajo sobre esta materia titulado
―Fundamentos Químicos de la Morfogénesis‖ en 1952. Su principal interés era
comprender la filotaxis de Fibonacci, es decir, la existencia de los números de
Fibonacci en las estructuras vegetales. Utilizó ecuaciones de reacción-difusión que
actualmente son cruciales en el campo de la formación de patrones. Sus trabajos
posteriores no se publicaron hasta 1992 en el libro ―Obras Completas de A. M.
Turing‖.

Diagrama artístico de una máquina de Turing. Descripción

La máquina de Turing consta de un cabezal lector/escritor y una cinta infinita en la
que el cabezal lee el contenido, borra el contenido anterior y escribe un nuevo
valor. Las operaciones que se pueden realizar en esta máquina se limitan a:
avanzar el cabezal lector/escritor hacia la derecha. avanzar el cabezal
lector/escritor hacia la izquierda. El cómputo es determinado a partir de una tabla
de estados de la forma: (estado, valor) (nuevo estado, nuevo valor, dirección)
Esta tabla toma como parámetros el estado actual de la máquina y el carácter
leído de la cinta, dando la dirección para mover el cabezal, el nuevo estado de la
máquina y el valor a ser escrito en la cinta. Con este aparato extremadamente
sencillo es posible realizar cualquier cómputo que un computador digital sea capaz
de realizar. Mediante este modelo teórico y el análisis de complejidad de
algoritmos, fue posible la categorización de problemas computacionales de acuerdo
a su comportamiento, apareciendo así, el conjunto de problemas denominados P y
NP, cuyas soluciones en tiempo polinómico son encontradas según el determinismo
y no determinismo respectivamente de la máquina de Turing. De hecho, se puede
probar matemáticamente que para cualquier programa de computadora es posible
crear una máquina de Turing equivalente. Esta prueba resulta de la Tesis de
Church-Turing, formulada por Alan Turing y Alonzo Church, de forma
independiente a mediados del siglo XX. La idea subyacente es el concepto de que
una máquina de Turing es una persona ejecutando un procedimiento efectivo
definido formalmente, donde el espacio de memoria de trabajo es ilimitado, pero
en un momento determinado sólo una parte finita es accesible. La memoria se
divide en espacios de trabajo denominados celdas, donde se pueden escribir y leer
símbolos. Inicialmente todas las celdas contienen un símbolo especial denominado
―blanco‖. Las instrucciones que determinan el funcionamiento de la máquina tienen
la forma, ―si estamos en el estado x leyendo la posición y, donde hay escrito el
símbolo z, entonces este símbolo debe ser reemplazado por este otro símbolo, y
pasar a leer la celda siguiente, bien a la izquierda o bien a la derecha‖. La máquina
de Turing puede considerarse como un autómata capaz de reconocerlenguajes
formales. En ese sentido es capaz de reconocer los lenguajes recursivamente
enumerables, de acuerdo a la jerarquía de Chomsky. Su potencia es, por tanto,
superior a otros tipos de autómatas, como el autómata finito, o el autómata con
pila, o igual a otros modelos con la misma potencia computacional. Definición

Una máquina de Turing con una sola cinta puede ser definida como una 6-tupla ,
donde
 es un conjunto finito de estados.
 es un conjunto finito de símbolos de cinta, el alfabeto de cinta.
 es el estado inicial.
 es un símbolo denominado blanco, y es el único símbolo que se puede
repetir un número infinito de veces.
 es el conjunto de estados finales de aceptación.
 es una función parcial denominada función de transición, donde L es
un movimiento a la izquierda y R es el movimiento a la derecha.

Existen en la literatura un abundante número de definiciones alternativas, pero
todas ellas tienen el mismo poder computacional, por ejemplo se puede añadir el
símbolo como símbolo de ―no movimiento‖ en un paso de cómputo o el símbolo Σ
para indicar el alfabeto de entrada. Ejemplo

Definimos una máquina de Turing sobre el alfabeto {0,1}, donde 0 representa el
símbolo blanco. La máquina comenzará su proceso situada sobre un símbolo ―1″
de una serie. La máquina de Turing copiará el número de símbolos ―1″ que
encuentre hasta el primer blanco detrás de dicho símbolo blanco. Es decir, situada
sobre el 1 situado en el extremo izquierdo, doblará el número de símbolos 1, con
un 0 en medio. Así, si tenemos la entrada ―111″ devolverá ―1110111″, con ―1111″
devolverá ―111101111″, y sucesivamente. El conjunto de estados es
{s1,s2,s3,s4,s5} y el estado inicial es s1. La tabla que describe la función de
transición es la siguiente: Estado Símbolo leído Símbolo escrito Mov. Estado sig. s1
1 0 R s2 s2 1 1 R s2 s2 0 0 R s3 s3 0 1 L s4 s3 1 1 R s3 s4 1 1 L s4 s4 0 0 L s5 s5
1 1 L s5 s5 0 1 R s1 El funcionamiento de una computación de esta máquina se
puede mostrar con el siguiente ejemplo (en negrita se resalta la posición de la
cabeza lectora/escritora): Paso Estado Cinta 1 s1 11 2 s2 01 3 s2 010 4 s3 0100 5
s4 0101 6 s5 0101 7 s5 0101 8 s1 1101 9 s2 1001 10 s3 1001 11 s3 10010 12 s4
10011 13 s4 10011 14 s5 10011 15 s1 11011 Parada La máquina realiza su
proceso por medio de un bucle, en el estado inicial s1, reemplaza el primer 1 con
un 0, y pasa al estado s2, con el que avanza hasta la derecha, saltando los
símbolos 1 hasta un 0 (que debe existir), cuando lo encuentra pasa al estado s3,
con este estado avanza saltando los 1 hasta encontrar otro 0 (la primera vez no
habría ningún 1). Una vez en el extremo derecho, añade un 1. Después comienza
el proceso de retorno; con s4 vuelve a la izquierda saltando los 1, cuando
encuentra un 0 (en el medio de la secuencia), pasa a s5 que continúa a la
izquierda saltando los 1 hasta el 0 que se escribió al principio. Se reemplaza de
nuevo este 0 por 1, y pasa al símbolo siguiente, si es un 1, se pasa a otra iteración
del bucle, pasando al estado s1 de nuevo. Si es un símbolo 0, será el símbolo
central, con lo que la máquina se detiene al haber finalizado su cómputo. Máquinas
de Turing deterministas y no deterministas

La entrada de una máquina de Turing viene determinada por el estado actual y el
símbolo leído, un par [estado, símbolo], siendo el cambio de estado, la escritura
de un nuevo símbolo y el movimiento las acciones a tomar en función de una
entrada. En el caso de que para cada par estado y símbolo posible exista a lo
sumo una posibilidad de ejecución, se dirá que es una máquina de Turing
determinista, mientras que en el caso de que exista al menos un par [estado,
símbolo] con más de una posible combinación de actuaciones se dirá que se trata
de una máquina de Turing no determinista. La función de transición δ en el caso
no determinista, queda definida como sigue:

¿Cómo sabe una máquina no determinista cuál de las varias actuaciones tomar?
Hay dos formas de verlo: una es decir que la máquina es ―el mejor adivino
posible‖, esto es, que siempre elige la transición que eventualmente la llevará a un
estado final de aceptación. La otra es imaginarse que la máquina se ―clona‖,
bifurcándose en varias copias, cada una de las cuales sigue una de las posibles
transiciones. Mientras que una máquina determinista sigue un solo ―camino
computacional‖, una máquina no determinista tiene un ―árbol computacional‖. Si
cualquiera de las ramas del árbol finaliza en un estado de aceptación, se dice que
la máquina acepta la entrada. La capacidad de cómputo de ambas versiones es
equivalente; se puede demostrar que dada una máquina de Turing no determinista
existe otra máquina de Turing determinista equivalente, en el sentido de que
reconoce el mismo lenguaje, y viceversa. No obstante, la velocidad de ejecución
de ambos formalismos no es la misma, pues si una máquina no determinista M
reconoce una cierta palabra de tamaño n en un tiempo O(t(n)), la máquina
determinista equivalente reconocerá la palabra en un tiempo O(2t(n)). Es decir, el
no determinismo permitirá reducir la complejidad de la solución de los problemas,
permitiendo resolver, por ejemplo, problemas de complejidad exponencial en un
tiempo polinómico.

Máquina Universal de Turing
Una máquina de Turing computa una determinada función parcial de carácter
definido, y unívoca, definida sobre las secuencias de posibles cadenas de símbolos
de su alfabeto. En este sentido se puede considerar como equivalente a un
programa de ordenador, o a un algoritmo. Sin embargo es posible realizar una
codificación de la tabla que representa a una máquina de Turing, a su vez, como
una secuencia de símbolos en un determinado alfabeto; por ello, podemos
construir una máquina de Turing que acepte como entrada la tabla que representa
a otra máquina de Turing, y, de esta manera, simule su comportamiento. En 1947,
Turing indicó: Se puede demostrar que es posible construir una máquina especial
de este tipo que pueda realizar el trabajo de todas las demás. Esta máquina
especial puede ser denominada máquina universal. Esta fue, posiblemente, la idea
germinal del concepto de Sistema Operativo, un programa que puede, a su vez,
ejecutar en el sentido de controlar otros programas, demostrando su existencia, y
abriendo camino para su construcción real. Con esta codificación de tablas como
cadenas, se abre la posiblidad de que unas máquinas de Turing se comporten
como otras máquinas de Turing. Sin embargo, muchas de sus posibilidades son
indecidibles, pues no admiten una solución algorítmica. Por ejemplo, un problema
interesante es determinar si una máquina de Turing cualquiera se parará en un
tiempo finito sobre una determinada entrada; problema conocido como Problema
de la parada, y que Turing demostró que era indecidible. En general, se puede
demostrar que cualquier cuestión no trivial sobre el comportamiento o la salida de
una máquina de Turing es un problema indecidible. Máquina de Turing Cuántica

En 1985, Deutsch presentó el diseño de la primera Máquina Cuántica basada en
una máquina de Turing. Con este fin enunció una nueva variante la tesis de
Church dando lugar al denominado ―Principio de Church-Turing-Deutsch‖. La
estructura de una máquina de Turing cuántica es muy similar a la de una máquina
de Turing clásica. Está compuesta por los tres elementos clásicos: Una cinta de
memoria infinita en que cada elemento es un Qu Bit Un procesador finito Un cursor
La siguiente ilustración muestra el esquema de una máquina cuántica:

El procesador contiene el juego de instrucciones que se aplica sobre el elemento
de la cinta señalado por el cursor. El resultado dependerá delQuBit de la cinta y del
estado del procesador. El procesador ejecuta una instrucción por unidad de
tiempo. La cinta de memoria es similar a la de una máquina de Turing tradicional.
La única diferencia es que cada elemento de la cinta de la máquina cuántica es
un Qu Bit. El alfabeto de esta nueva máquina está formado por el espacio de
valores del Qu Bit. El cursor es el elemento que comunica la unidad de memoria y
el procesador. Su posición se representa con una variable entera.

Más contenido relacionado

La actualidad más candente

Ingeniería de requisitos
Ingeniería de requisitosIngeniería de requisitos
Ingeniería de requisitos
Zuleima
 
Alfabetos-Lenguajes y Automatas 1
Alfabetos-Lenguajes y Automatas 1Alfabetos-Lenguajes y Automatas 1
Alfabetos-Lenguajes y Automatas 1
Osiris Mirerus
 
Clase4: Transformación desde Expresión regular a Autómata finito determinista
Clase4: Transformación desde Expresión regular a Autómata finito deterministaClase4: Transformación desde Expresión regular a Autómata finito determinista
Clase4: Transformación desde Expresión regular a Autómata finito determinista
mvagila
 

La actualidad más candente (20)

automatas finitos
 automatas finitos automatas finitos
automatas finitos
 
Equivalencia de autómatas finitos y expresiones regulares.
Equivalencia de autómatas finitos y expresiones regulares.Equivalencia de autómatas finitos y expresiones regulares.
Equivalencia de autómatas finitos y expresiones regulares.
 
Fundamentos de BD - Unidad 5 algebra relacional
Fundamentos de BD - Unidad 5 algebra relacionalFundamentos de BD - Unidad 5 algebra relacional
Fundamentos de BD - Unidad 5 algebra relacional
 
Gramaticas y lic
Gramaticas y licGramaticas y lic
Gramaticas y lic
 
Ingeniería de requisitos
Ingeniería de requisitosIngeniería de requisitos
Ingeniería de requisitos
 
Manual de instalacion de Mongo db
Manual de instalacion de Mongo dbManual de instalacion de Mongo db
Manual de instalacion de Mongo db
 
Alfabetos-Lenguajes y Automatas 1
Alfabetos-Lenguajes y Automatas 1Alfabetos-Lenguajes y Automatas 1
Alfabetos-Lenguajes y Automatas 1
 
Los lenguajes aceptados para una maquina de turing
Los lenguajes aceptados para una maquina de turingLos lenguajes aceptados para una maquina de turing
Los lenguajes aceptados para una maquina de turing
 
Diagrama de clases
Diagrama de clasesDiagrama de clases
Diagrama de clases
 
Tema4 algebra relacional
Tema4   algebra relacionalTema4   algebra relacional
Tema4 algebra relacional
 
Tipos de gramatica y arboles de derivacion
Tipos de gramatica y arboles de derivacionTipos de gramatica y arboles de derivacion
Tipos de gramatica y arboles de derivacion
 
Automatas Finitos Deterministicos y No Deterministicos
Automatas Finitos Deterministicos y No DeterministicosAutomatas Finitos Deterministicos y No Deterministicos
Automatas Finitos Deterministicos y No Deterministicos
 
Unidad 2 expresiones regulares
Unidad 2 expresiones regularesUnidad 2 expresiones regulares
Unidad 2 expresiones regulares
 
Autómatas Finitos
Autómatas FinitosAutómatas Finitos
Autómatas Finitos
 
Clase4: Transformación desde Expresión regular a Autómata finito determinista
Clase4: Transformación desde Expresión regular a Autómata finito deterministaClase4: Transformación desde Expresión regular a Autómata finito determinista
Clase4: Transformación desde Expresión regular a Autómata finito determinista
 
PAGINACION Y SEGMENTACION DE MEMORIA
PAGINACION Y SEGMENTACION DE MEMORIAPAGINACION Y SEGMENTACION DE MEMORIA
PAGINACION Y SEGMENTACION DE MEMORIA
 
Por qué java no soporta la sobre carga de operadores
Por qué java no soporta la sobre carga de operadoresPor qué java no soporta la sobre carga de operadores
Por qué java no soporta la sobre carga de operadores
 
Gramática Libre de Contexto
Gramática Libre de ContextoGramática Libre de Contexto
Gramática Libre de Contexto
 
Div, idiv, Neg ensamblador
Div, idiv, Neg ensambladorDiv, idiv, Neg ensamblador
Div, idiv, Neg ensamblador
 
Autómata de Pila
Autómata de Pila Autómata de Pila
Autómata de Pila
 

Similar a Maquinas de turing

Victor torrealba
Victor torrealbaVictor torrealba
Victor torrealba
vmtorrealba
 
Componentes y Transicion Maquina de Turing
Componentes y Transicion Maquina de TuringComponentes y Transicion Maquina de Turing
Componentes y Transicion Maquina de Turing
vmtorrealba
 
Máquina de turing
Máquina de turingMáquina de turing
Máquina de turing
Ivan
 
Practica7 katherine mariana figueroa flores
Practica7  katherine mariana figueroa floresPractica7  katherine mariana figueroa flores
Practica7 katherine mariana figueroa flores
WhitneyPeralta
 
Matematica discreta informe
Matematica discreta informeMatematica discreta informe
Matematica discreta informe
Jhojan Mendoza
 

Similar a Maquinas de turing (20)

Victor torrealba
Victor torrealbaVictor torrealba
Victor torrealba
 
Componentes y Transicion Maquina de Turing
Componentes y Transicion Maquina de TuringComponentes y Transicion Maquina de Turing
Componentes y Transicion Maquina de Turing
 
Máquina de turing
Máquina de turingMáquina de turing
Máquina de turing
 
cir_digitales
 cir_digitales cir_digitales
cir_digitales
 
Practica 1
Practica 1Practica 1
Practica 1
 
Flip flop
Flip flopFlip flop
Flip flop
 
Manual de programación cnc
Manual de programación cncManual de programación cnc
Manual de programación cnc
 
temporizadores.pdf/explicación completa.
temporizadores.pdf/explicación completa.temporizadores.pdf/explicación completa.
temporizadores.pdf/explicación completa.
 
2
22
2
 
Maquina de turing
Maquina de turingMaquina de turing
Maquina de turing
 
Clase de Multiplexores y diseño combinacional
Clase de Multiplexores y diseño combinacionalClase de Multiplexores y diseño combinacional
Clase de Multiplexores y diseño combinacional
 
Laplace
LaplaceLaplace
Laplace
 
Taller 4 josue stanley lazo rivera
Taller 4 josue stanley lazo riveraTaller 4 josue stanley lazo rivera
Taller 4 josue stanley lazo rivera
 
Contadores (electronica)
Contadores (electronica)Contadores (electronica)
Contadores (electronica)
 
33 col2 301405
33 col2 30140533 col2 301405
33 col2 301405
 
Práctica 5
Práctica 5Práctica 5
Práctica 5
 
Portafolio Unidad 4 [Lenguajes y autómatas] - Máquinas de Turing
Portafolio Unidad 4 [Lenguajes y autómatas] - Máquinas de TuringPortafolio Unidad 4 [Lenguajes y autómatas] - Máquinas de Turing
Portafolio Unidad 4 [Lenguajes y autómatas] - Máquinas de Turing
 
Practica7 katherine mariana figueroa flores
Practica7  katherine mariana figueroa floresPractica7  katherine mariana figueroa flores
Practica7 katherine mariana figueroa flores
 
Universidad autonoma de chiapas fcp
Universidad autonoma de chiapas fcpUniversidad autonoma de chiapas fcp
Universidad autonoma de chiapas fcp
 
Matematica discreta informe
Matematica discreta informeMatematica discreta informe
Matematica discreta informe
 

Maquinas de turing

  • 1. La máquina de Turing es un modelo computacional introducido por Alan Turing en el trabajo ―On computable numbers, with an application to the Entscheidungsproblem‖, publicado por la Sociedad Matemática de Londres, en el cual se estudiaba la cuestión planteada por David Hilbert sobre si las matemáticas son decidibles, es decir, si hay un método definido que pueda aplicarse a cualquier sentencia matemática y que nos diga si esa sentencia es cierta o no. Turing construyó un modelo formal de computador, la máquina de Turing, y demostró que existían problemas que una máquina no podía resolver. La máquina de Turing es un modelo matemático abstracto que formaliza el concepto de algoritmo. Una máquina de Turing con una sola cinta puede ser definida como una 6-tupla , donde Q es un conjunto finito de estados Γ es un conjunto finito de símbolos de cinta, el alfabeto de cinta es el estado inicial es un símbolo denominado blanco, y es el único símbolo que se puede repetir un número infinito de veces es el conjunto de estados finales de aceptación es una función parcial denominada función de transición, donde L es un movimiento a la izquierda y R es el movimiento a la derecha. Existen en la literatura un abundante número de definiciones alternativas, pero todas ellas tienen el mismo poder computacional, por ejemplo se puede añadir el símbolo como símbolo de ―no movimiento‖ en un paso de cómputo. ¿Como funciona una maquina de turing? Una máquina de Turing es un dispositivo que transforma un INPUT en un OUTPUT después de algunos pasos. Tanto el INPUT como el OUPUT constan de números en código binario (ceros y unos). En su versión original la máquina de Turing consiste en una cinta infinitamente larga con unos y ceros que pasa a través de una caja. La caja es tan fina que solo el trozo de cinta que ocupa un bit (0 ó 1) está en su interior. La máquina tiene una serie de estados internos finitos que también se pueden numerar en binario. Para llevar a cabo algún algoritmo, la máquina se inicializa en algún estado interno arbitrario. A continuación, se pone en marcha y la máquina lee el bit que se encuentra en ese momento en su interior y ejecuta alguna operación con ese bit (lo cambia o no, dependiendo de su estado interno). Después se mueve hacia la derecha o hacia la izquierda, y vuelve a procesar el siguiente bit de la misma manera. Al final se para, dejando el resultado al lado izquierdo por ejemplo. Una instrucción típica podría ser: 01 11011i
  • 2. La traducción es como sigue: si la máquina se encuentra en el estado interno 0 y lee 1 en la cinta, entonces pasará al estado interno 1101 (13), escribirá 1 y se moverá hacia la izquierda un paso (la cinta se moverá hacia la derecha). A continuación es conveniente inventar una notación para la secuencia del INPUT. Esta notación se llama notación binaria expandida. Consiste en cambiar la secuencia original binaria por otra construida de la siguiente forma: el 0 se cambia por 0 y el 1 por 10 y se ponen un cero a la izquierda y/o a la derecha del resultado si empieza o acaba en 1 respectivamente. Así por ejemplo, el número 13 que en binario es 1101 es en binario expandido 1010010 con un cero delante por esta última regla 01010010. Para volver al original hay que contraer el binario expandido con la siguiente regla: Empezamos a leer por la izquierda el bianrio expandido. Cuando encontremos un 0 tomamos nota de cuántos 1 hay hasta llegar al siguiente 0 y lo escribimos. Si encontramos que hay dos 0 seguidos, apuntaríamos un 0 porque no habría ningún 1.Veamos con el 13 cómo se haría. El primer 0 se encuentra en la primera posición y el siguiente 0 está en la posición 3. Entre los dos solo hay un 1. Lo anotamos. Seguidamente hay un 1, y después un 0, entonces apuntamos 1 porque hay un 1 entre medias de ellos. Esto es lo que se hace sucesivamente y encontramos: 1101 que es el número original. Descripción La máquina de Turing consta de un cabezal lector/escritor y una cinta infinita en la que el cabezal lee el contenido, borra el contenido anterior y escribe un nuevo valor. Las operaciones que se pueden realizar en esta máquina se limitan a: Avanzar el cabezal lector/escritor para la derecha; • avanzar el cabezal lector/escritor para la izquierda. El cómputo es determinado a partir de una tabla de estados de la forma: (Estado, valor)-→(nuevo estado, nuevo valor, dirección) Definición Una máquina de Turing con una sola cinta puede ser definida como una 6-tupla M=(Q,L,s,b,F,o) , donde •Q es un conjunto finito de estados. •L es un conjunto finito de símbolos de cinta, el alfabeto de cinta. •s E Q es el estado inicial. •b E L es un símbolo denominado blanco, y es el único símbolo que se puede repetir un número infinito de veces. •F _C Q es el conjunto de estados finales de aceptación. •o : Q x L → Q x L x {L,R} es una función parcial denominada función de transición, donde L es un movimiento a la izquierda y R es el movimiento a la derecha. Existen en la literatura un abundante número de definiciones alternativas, pero todas ellas tienen el mismo poder computacional, por ejemplo se puede añadir el
  • 3. símbolo S como símbolo de ―no movimiento‖ en un paso de cómputo o el símbolo Σ para indicar el alfabeto de entrada. Ejemplo Definimos una máquina de Turing sobre el alfabeto {0,1}, donde 0 representa el símbolo blanco. La máquina comenzará su proceso situada sobre un símbolo ―1″ de una serie. La máquina de Turing copiará el número de símbolos ―1″ que encuentre hasta el primer blanco detrás de dicho símbolo blanco. Es decir, situada sobre el 1 situado en el extremo izquierdo, doblará el número de símbolos 1, con un 0 en medio. Así, si tenemos la entrada ―111″ devolverá ―1110111″, con ―1111″ devolverá ―111101111″, y sucesivamente. El conjunto de estados es {s1,s2,s3,s4,s5} y el estado inicial es s1. La tabla que describe la función de transición es la siguiente: ESTADO S.LEIDO S.ESCRITO MOV. ESTADO SIG. s1 1 0 R s2 s2 1 1 R s2 s2 0 0 R s3 s3 0 1 L s4 s3 1 1 R s3 s4 1 1 L s4 s4 0 0 L s5 s5 1 1 L s5 s5 0 1 R s1 El funcionamiento de una computación de esta máquina se puede mostrar con el siguiente ejemplo (en negrita se resalta la posición de la cabeza lectora/escritora): PASO ESTADO CINTA 1 s1 11 2 s2 01 3 s2 010 4 s3 0100 5 s4 0101 6 s5 0101 7 s5 0101 8 s1 1101 9 s2 1001
  • 4. 10 s3 1001 11 s3 10010 12 s4 10011 13 s4 10011 14 s5 10011 15 s1 11011 PARADA La máquina realiza su proceso por medio de un bucle, en el estado inicial s1, reemplaza el primer 1 con un 0, y pasa al estado s2, con el que avanza hasta la derecha, saltando los símbolos 1 hasta un 0 (que debe existir), cuando lo encuentra pasa a ser s3, con este estado avanza saltando los 1 hasta encontrar otro 0 (la primera vez no habría ningún 1). Una vez en el extremo derecho, añade un 1. Después comienza el proceso de retorno; con s4 vuelve a la izquierda saltando los 1, cuando encuentra un 0 (en el medio de la secuencia), pasa a s5 que continúa a la izquierda saltando los 1 hasta el 0 que se escribió al principio. Se reemplaza de nuevo este 0 por 1, y pasa al símbolo siguiente, si es un 1, se pasa a otra iteración del bucle, pasando al estado s1 de nuevo. Si es un símbolo 0, será el símbolo central, con lo que la máquina se detiene al haber finalizado su cómputo. Máquina de Turing Cuántica En 1985, Deutsch presentó el diseño de la primera Máquina Cuántica basada en una máquina de Turing. Con este fin enunció una nueva variante la tesis de Church dando lugar al denominado ―Principio de Church- Turing-Deutsch‖. La estructura de una máquina de Turing cuántica es muy similar a la de una máquina de Turing clásica. Está compuesta por los tres elementos clásicos: •Una cinta de memoria infinita en que cada elemento es un Qu Bit? •Un procesador finito •Un cursor Diagrama de transición para la maquina de turing Las transiciones de una maquina de turing pueden representarse visualmente, un diagrama de transición esta formado por un conjunto de nodos que nodos que corresponde a los estados de la MT. En un arco que vaya del estado q al esta p, apareceran una o varias etiquetas de la forma X/YS, donde X e Y son símbolos de cintan y S indica un sentido, que puede se I o D. es decir, si δ(q,X) = (p,Y,S),en el arco que va de q a p se encontrara la etiqueta X/YS. QUIROZ MONTES KAREN PATRICIA
  • 5. COMIENZA TRABAJO EQUIPO 1 (:includeurl http://docs.google.com/EmbedSlideshow?docid=dgddvf6t_1f98pdpcm &amp :) Presentacion informativa sobre la maquina de turing → http://www.megaupload.com/?d=3CJJ7CLO LA MAQUINA DE TURING Alan Mathison Turing (1912–1954) http://es.wikipedia.org/wiki/Alan_Turing La máquina de Turing es un modelo computacional introducido por Alan Turing en el trabajo ―On computable numbers, with an application to the Entscheidungsproblem‖, publicado por la Sociedad Matemática de Londres, en el cual se estudiaba la cuestión planteada por David Hilbert sobre si las matemáticas son decidibles, es decir, si hay un método definido que pueda aplicarse a cualquier sentencia matemática y que nos diga si esa sentencia es cierta o no. Turing construyó un modelo formal de computador, la máquina de Turing, y demostró que existían problemas que una máquina no podía resolver. La máquina de Turing es un modelo matemático abstracto que formaliza el concepto de algoritmo. Una máquina de Turing con una sola cinta puede ser definida como una 6-tupla , donde Q es un conjunto finito de estados Γ es un conjunto finito de símbolos de cinta, el alfabeto de cinta es el estado inicial .
  • 6. Es un símbolo denominado blanco, y es el único símbolo que se puede repetir un número infinito de veces. Es el conjunto de estados finales de aceptación. Es una función parcial denominada función de transición, donde L es un movimiento a la izquierda y R es el movimiento a la derecha. Existen en la literatura un abundante número de definiciones alternativas, pero todas ellas tienen el mismo poder computacional, por ejemplo se puede añadir el símbolo como símbolo de ―no movimiento‖ en un paso de cómputo. ¿COMO FUNCIONA UNA MAQUINA DE TURING? Una máquina de Turing es un dispositivo que transforma un INPUT en un OUTPUT después de algunos pasos. Tanto el INPUT como el OUPUT constan de números en código binario (ceros y unos). En su versión original la máquina de Turing consiste en una cinta infinitamente larga con unos y ceros que pasa a través de una caja. La caja es tan fina que solo el trozo de cinta que ocupa un bit (0 ó 1) está en su interior. La máquina tiene una serie de estados internos finitos que también se pueden numerar en binario. Para llevar a cabo algún algoritmo, la máquina se inicializa en algún estado interno arbitrario. A continuación, se pone en marcha y la máquina lee el bit que se encuentra en ese momento en su interior y ejecuta alguna operación con ese bit (lo cambia o no, dependiendo de su estado interno). Después se mueve hacia la derecha o hacia la izquierda, y vuelve a procesar el siguiente bit de la misma manera. Al final se para, dejando el resultado al lado izquierdo por ejemplo. 11011i→Una instrucción típica podría ser: 01 VARIANTES DE LA MAQUINA DE TURING La traducción es como sigue: si la máquina se encuentra en el estado interno 0 y lee 1 en la cinta, entonces pasará al estado interno 1101 (13), escribirá 1 y se moverá hacia la izquierda un paso (la cinta se moverá hacia la derecha). A continuación es conveniente inventar una notación para la secuencia del INPUT. Esta notación se llama notación binaria expandida. Consiste en cambiar la secuencia original binaria por otra construida de la siguiente forma: el 0 se cambia por 0 y el 1 por 10 y se ponen un cero a la izquierda y/o a la derecha del resultado
  • 7. si empieza o acaba en 1 respectivamente. Así por ejemplo, el número 13 que en binario es 1101 es en binario expandido 1010010 con un cero delante por esta última regla 01010010. Para volver al original hay que contraer el binario expandido con la siguiente regla: Empezamos a leer por la izquierda el bianrio expandido. Cuando encontremos un 0 tomamos nota de cuántos 1 hay hasta llegar al siguiente 0 y lo escribimos. Si encontramos que hay dos 0 seguidos, apuntaríamos un 0 porque no habría ningún 1.Veamos con el 13 cómo se haría. El primer 0 se encuentra en la primera posición y el siguiente 0 está en la posición 3. Entre los dos solo hay un 1. Lo anotamos. Seguidamente hay un 1, y después un 0, entonces apuntamos 1 porque hay un 1 entre medias de ellos. Esto es lo que se hace sucesivamente y encontramos: 1101 que es el número original. Descripción La máquina de Turing consta de un cabezal lector/escritor y una cinta infinita en la que el cabezal lee el contenido, borra el contenido anterior y escribe un nuevo valor. Las operaciones que se pueden realizar en esta máquina se limitan a: Avanzar el cabezal lector/escritor para la derecha; • avanzar el cabezal lector/escritor para la izquierda. El cómputo es determinado a partir de una tabla de estados de la forma: (Estado, valor)-→(nuevo estado, nuevo valor, dirección) . Definición Una máquina de Turing con una sola cinta puede ser definida como una 6-tupla M=(Q,L,s,b,F,o) , donde; •Q es un conjunto finito de estados. •L es un conjunto finito de símbolos de cinta, el alfabeto de cinta. •s E Q es el estado inicial. •b E L es un símbolo denominado blanco, y es el único símbolo que se puede repetir un número infinito de veces. •F _C Q es el conjunto de estados finales de aceptación. •o : Q x L → Q x L x {L,R} es una función parcial denominada función de transición, donde L es un movimiento a la izquierda y R es el movimiento a la derecha. ¿QUE SON Y COMO FUNCIONAN? Una máquina de Turing consiste, básicamente, en una cinta infinita, dividida en casillas. Sobre esta cinta hay un dispositivo capaz de desplazarse a lo largo de ella
  • 8. a razón de una casilla cada vez. Este dispositivo cuenta con un cabezal capaz de leer un símbolo escrito en la cinta, o de borrar el existente e imprimir uno nuevo en su lugar. Por último, contiene además un registro capaz de almacenar un estado cualquiera, el cual viene definido por un símbolo. Los símbolos que definen el estado del dispositivo no tienen por que coincidir con los símbolos que se pueden leer o escribir en la cinta. En los programas presentados en el artículo, los posibles símbolos a leer o escribir en la cinta son el 0 y el 1, y los posibles estados se representan con letras mayúsculas. En el emulador, existe un cambio en la representación del estado, usando para ello los números del 0 al 99, para permitir un mayor número de ellos. La máquina tiene un funcionamiento totalmente mecánico y secuencial. Lo que hace es leer el símbolo que hay en la casilla que tiene debajo. Después toma el símbolo del estado en que se encuentra. Con estos dos datos accede a una tabla, en la cual lee el símbolo que debe escribir en la cinta, el nuevo estado al que debe pasar y si debe desplazarse a la casilla izquierda o derecha. Ejemplo Definimos una máquina de Turing sobre el alfabeto {0,1}, donde 0 representa el símbolo blanco. La máquina comenzará su proceso situada sobre un símbolo ―1″ de una serie. La máquina de Turing copiará el número de símbolos ―1″ que encuentre hasta el primer blanco detrás de dicho símbolo blanco. Es decir, situada sobre el 1 situado en el extremo izquierdo, doblará el número de símbolos 1, con un 0 en medio. Así, si tenemos la entrada ―111″ devolverá ―1110111″, con ―1111″ devolverá ―111101111″, y sucesivamente. El conjunto de estados es {s1,s2,s3,s4,s5} y el estado inicial es s1. La tabla que describe la función de transición es la siguiente: ESTADO S.LEIDO S.ESCRITO MOV. ESTADO SIG. s1 1 0 R s2 s2 1 1 R s2 s2 0 0 R s3 s3 0 1 L s4 s3 1 1 R s3 s4 1 1 L s4 s4 0 0 L s5 s5 1 1 L s5 s5 0 1 R s1 El funcionamiento de una computación de esta máquina se puede mostrar con el siguiente ejemplo (en negrita se resalta la posición de la cabeza lectora/escritora):
  • 9. PASO ESTADO CINTA 1 s1 11 2 s2 01 3 s2 010 4 s3 0100 5 s4 0101 6 s5 0101 7 s5 0101 8 s1 1101 9 s2 1001 10 s3 1001 11 s3 10010 12 s4 10011 13 s4 10011 14 s5 10011 15 s1 11011 PARADA Vemos que esta máquina no hace gran cosa. Sin embargo, una máquina de Turing puede hacer cosas útiles, tales como sumar dos números, multiplicarlos, copiarlos, etc. Disponiendo de una máquina con el suficiente número de estados, podríamos hacer con ella cualquier operación que un ordenador normal pudiese realizar. Las máquinas de Turing plantean una deducción bastante curiosa: dado que en ellas se puede realizar cualquier trabajo computable, es posible programarlas para que simulen el comportamiento de un potente ordenador. Y como una máquina de Turing puede ser codificada en CUALQUIER ordenador, por pequeño que sea, sería posible (si disponemos de memoria suficiente, claro) emular en nuestro ordenador de casa una máquina de Turing que simule un superordenador. Esto significa que todos los ordenadores pueden realizar exactamente el mismo tipo de tareas, y que los cálculos que pueda realizar el más grande los puede llevar a cabo también el más pequeño. La única diferencia sería, obviamente, la velocidad. VIDEO (TURING Y SU MAQUINA). El siguiente video es muy interesante habla sobre Turing y su maquina. Un poco de historia sobre Alan Turing y un poco sobre su maquina como la invento y para que se utilizo o con que proposito. esperamos sea de su agrado.
  • 10. (:includeurl http://www.youtube.com/watch?v=v1on9D3Fkus&feature=related :) ―EQUIPO 1″ MATEMATICAS PARA COMPUTADORA. grupo:302 lic.informatica. Castro Cevallos Manuel Antonio. Cortes Cortes Lizbeth Alondra. Cruz Torres Maritza Jeaninne. Ferrer Ramirez Ernesto. ―AQUI TERMINA NUESTRO TRABAJO‖ (continuamos editando)……. Presentacion sobre la maquina de Turing (:includeurl http://docs.google.com/EmbedSlideshow?docid=dcc347mh_19cqgnf7f z:) Aquí empieza el Trabajo elaborado por: Landeros Labrada Lizzet; Mendoza Torres Nayeli; Ontiveros Amaya Brenda; Rangel Cortes Guadalupe; Suarez Castellanos Iris y Schwuchow Alfaro Bianca Lic.Informática 301 *La Maquina de Turing* La máquina de Turing es un modelo computacional introducido por Alan Turing en el trabajo ―On computable numbers, with an application to the Entscheidungsproblem‖, publicado por la Sociedad Matemática de Londres, en el cual se estudiaba la cuestión planteada por David Hilbert sobre si las matemáticas son decidibles, es decir, si hay un método definido que pueda aplicarse a cualquier sentencia matemática y que nos diga si esa sentencia es cierta o no. Turing
  • 11. construyó un modelo formal de computador, la máquina de Turing, y demostró que existían problemas que una máquina no podía resolver. La máquina de Turing es un modelo matemático abstracto que formaliza el concepto de algoritmo. DIAGRAMA ARTISTICO DE UNA MAQUINA DE TURING ¿Cómo es la Máquina Turing? La máquina de Turing consta de un cabezal lector/escritor y una cinta infinita en la que el cabezal lee el contenido, borra el contenido anterior y escribe un nuevo valor. Las operaciones que se pueden realizar en esta máquina se limitan a: avanzar el cabezal lector/escritor hacia la derecha. avanzar el cabezal lector/escritor hacia la izquierda. El cómputo es determinado a partir de una tabla de estados de la forma: (estado, valor) (nuevo estado, nuevo valor, dirección) Esta tabla toma como parámetros el estado actual de la máquina y el carácter leído de la cinta, dando la dirección para mover el cabezal, el nuevo estado de la máquina y el valor a ser escrito en la cinta. Con este aparato extremadamente sencillo es posible realizar cualquier cómputo que un computador digital sea capaz de realizar. Mediante este modelo teórico y el análisis de complejidad de algoritmos, fue posible la categorización de problemas computacionales de acuerdo a su comportamiento, apareciendo así, el conjunto de problemas denominados P y NP, cuyas soluciones en tiempo polinómico son encontradas según el determinismo y no determinismo respectivamente de la máquina de Turing. De hecho, se puede probar matemáticamente que para cualquier programa de computadora es posible crear una máquina de Turing equivalente. Esta prueba resulta de la Tesis de Church-Turing, formulada por Alan Turing y Alonzo Church, de forma independiente a mediados del siglo XX.
  • 12. La idea subyacente es el concepto de que una máquina de Turing es una persona ejecutando un procedimiento efectivo definido formalmente, donde el espacio de memoria de trabajo es ilimitado, pero en un momento determinado sólo una parte finita es accesible. La memoria se divide en espacios de trabajo denominados celdas, donde se pueden escribir y leer símbolos. Inicialmente todas las celdas contienen un símbolo especial denominado ―blanco‖. Las instrucciones que determinan el funcionamiento de la máquina tienen la forma, ―si estamos en el estado x leyendo la posición y, donde hay escrito el símbolo z, entonces este símbolo debe ser reemplazado por este otro símbolo, y pasar a leer la celda siguiente, bien a la izquierda o bien a la derecha‖. La máquina de Turing puede considerarse como un autómata capaz de reconocer lenguajes formales. En ese sentido es capaz de reconocer los lenguajes recursivamente enumerables, de acuerdo a la jerarquía de Chomsky. Su potencia es, por tanto, superior a otros tipos de autómatas, como el autómata finito, o el autómata con pila, o igual a otros modelos con la misma potencia computacional. Definiciòn Una máquina de Turing con una sola cinta puede ser definida como una 6-tupla M=(Q,T,s,b,F,S) , donde: •Q es un conjunto finito de estados. •T es un conjunto finito de símbolos de cinta, el alfabeto de cinta. •s E Q es el estado inicial. •b E L es un símbolo denominado blanco, y es el único símbolo que se puede repetir un número infinito de veces. •F _C Q es el conjunto de estados finales de aceptación. •S : Q x L → Q x L x {L,R} es una función parcial denominada función de transición, donde L es un movimiento a la izquierda y R es el movimiento a la derecha. Existen en la literatura un abundante número de definiciones alternativas, pero todas ellas tienen el mismo poder computacional, por ejemplo se puede añadir el símbolo S como símbolo de ―no movimiento‖ en un paso de cómputo o el símbolo Σ para indicar el alfabeto de entrada.
  • 13. Ejemplo Definimos una máquina de Turing sobre el alfabeto {0,1}, donde 0 representa el símbolo blanco. La máquina comenzará su proceso situada sobre un símbolo ―1″ de una serie. La máquina de Turing copiará el número de símbolos ―1″ que encuentre hasta el primer blanco detrás de dicho símbolo blanco. Es decir, situada sobre el 1 situado en el extremo izquierdo, doblará el número de símbolos 1, con un 0 en medio. Así, si tenemos la entrada ―111″ devolverá ―1110111″, con ―1111″ devolverá ―111101111″, y sucesivamente. El conjunto de estados es {s1,s2,s3,s4,s5} y el estado inicial es s1. La tabla que describe la función de transición es la siguiente: ESTADO S.LEIDO S.ESCRITO MOV. ESTADO SIG. s1 1 0 R s2 s2 1 1 R s2 s2 0 0 R s3 s3 0 1 L s4 s3 1 1 R s3 s4 1 1 L s4 s4 0 0 L s5 s5 1 1 L s5 s5 0 1 R s1 El funcionamiento de una computación de esta máquina se puede mostrar con el siguiente ejemplo (en negrita se resalta la posición de la cabeza lectora/escritora): PASO ESTADO CINTA 1 s1 11 2 s2 01 3 s2 010 4 s3 0100 5 s4 0101 6 s5 0101 7 s5 0101 8 s1 1101 9 s2 1001 10 s3 1001 11 s3 10010
  • 14. 12 s4 10011 13 s4 10011 14 s5 10011 15 s1 11011 PARADA La máquina realiza su proceso por medio de un bucle, en el estado inicial s1, reemplaza el primer 1 con un 0, y pasa al estado s2, con el que avanza hasta la derecha, saltando los símbolos 1 hasta un 0 (que debe existir), cuando lo encuentra pasa a ser s3, con este estado avanza saltando los 1 hasta encontrar otro 0 (la primera vez no habría ningún 1). Una vez en el extremo derecho, añade un 1. Después comienza el proceso de retorno; con s4 vuelve a la izquierda saltando los 1, cuando encuentra un 0 (en el medio de la secuencia), pasa a s5 que continúa a la izquierda saltando los 1 hasta el 0 que se escribió al principio. Se reemplaza de nuevo este 0 por 1, y pasa al símbolo siguiente, si es un 1, se pasa a otra iteración del bucle, pasando al estado s1 de nuevo. Si es un símbolo 0, será el símbolo central, con lo que la máquina se detiene al haber finalizado su cómputo. Máquinas de Turing deterministas y no deterministas La entrada de una máquina de Turing viene determinada por el estado actual y el símbolo leído, un par [estado, símbolo], siendo el cambio de estado, la escritura de un nuevo símbolo y el movimiento las acciones a tomar en función de una entrada. En el caso de que para cada par estado y símbolo posible exista a lo sumo una posibilidad de ejecución, se dirá que es una máquina de Turing determinista, mientras que en el caso de que exista al menos un par [estado, símbolo] con más de una posible combinación de actuaciones se dirá que se trata de una máquina de Turing no determinista. La función de transición δ en el caso no determinista, queda definida como sigue: S: Q X T→ P(QX T X {L,R}) ¿Cómo sabe una máquina no determinista cuál de las varias actuaciones tomar? Hay dos formas de verlo: una es decir que la máquina es ―el mejor adivino posible‖, esto es, que siempre elige la transición que eventualmente la llevará a un estado final de aceptación. La otra es imaginarse que la máquina se ―clona‖, bifurcándose en varias copias, cada una de las cuales sigue una de las posibles transiciones. Mientras que una máquina determinista sigue un solo ―camino computacional‖, una máquina no determinista tiene un ―árbol computacional‖. Si
  • 15. cualquiera de las ramas del árbol finaliza en un estado de aceptación, se dice que la máquina acepta la entrada. La capacidad de cómputo de ambas versiones es equivalente; se puede demostrar que dada una máquina de Turing no determinista existe otra máquina de Turing determinista equivalente, en el sentido de que reconoce el mismo lenguaje, y viceversa. No obstante, la velocidad de ejecución de ambos formalismos no es la misma, pues si una máquina no determinista M reconoce una cierta palabra de tamaño n en un tiempo O(t(n)), la máquina determinista equivalente reconocerá la palabra en un tiempo O(2t(n)). Es decir, el no determinismo permitirá reducir la complejidad de la solución de los problemas, permitiendo resolver, por ejemplo, problemas de complejidad exponencial en un tiempo polinómico. Máquina Universal de Turing Una máquina de Turing computa una determinada función parcial de carácter definido, y unívoca, definida sobre las secuencias de posibles cadenas de símbolos de su alfabeto. En este sentido se puede considerar como equivalente a un programa de ordenador, o a un algoritmo. Sin embargo es posible realizar una codificación de la tabla que representa a una máquina de Turing, a su vez, como una secuencia de símbolos en un determinado alfabeto; por ello, podemos construir una máquina de Turing que acepte como entrada la tabla que representa a otra máquina de Turing, y, de esta manera, simule su comportamiento. En 1947, Turing indicó: Se puede demostrar que es posible construir una máquina especial de este tipo que pueda realizar el trabajo de todas las demás. Esta máquina especial puede ser denominada máquina universal. Esta fue, posiblemente, la idea germinal del concepto de Sistema Operativo, un programa que puede, a su vez, ejecutar en el sentido de controlar otros programas, demostrando su existencia, y abriendo camino para su construcción real. Con esta codificación de tablas como cadenas, se abre la posiblidad de que unas máquinas de Turing se comporten como otras máquinas de Turing. Sin embargo, muchas de sus posibilidades son indecidibles, pues no admiten una solución algorítmica. Por ejemplo, un problema interesante es determinar si una máquina de Turing cualquiera se parará en un tiempo finito sobre una determinada entrada; problema conocido como Problema de la parada, y que Turing demostró que era indecidible. En general, se puede demostrar que cualquier cuestión no trivial sobre
  • 16. el comportamiento o la salida de una máquina de Turing es un problema indecidible. Máquina de Turing Cuántica En 1985, Deutsch presentó el diseño de la primera Máquina Cuántica basada en una máquina de Turing. Con este fin enunció una nueva variante la tesis de Church dando lugar al denominado ―Principio de Church-Turing-Deutsch‖. La estructura de una máquina de Turing cuántica es muy similar a la de una máquina de Turing clásica. Está compuesta por los tres elementos clásicos: Una cinta de memoria infinita en que cada elemento es un Qu Bit Un procesador finito Un cursor El procesador contiene el juego de instrucciones que se aplica sobre el elemento de la cinta señalado por el cursor. El resultado dependerá del Qu Bit de la cinta y del estado del procesador. El procesador ejecuta una instrucción por unidad de tiempo. La cinta de memoria es similar a la de una máquina de Turing tradicional. La única diferencia es que cada elemento de la cinta de la máquina cuántica es un Qu Bit. El alfabeto de esta nueva máquina está formado por el espacio de valores del Qu Bit. El cursor es el elemento que comunica la unidad de memoria y el procesador. Su posición se representa con una variable entera. Presentacion de La Màquina de Turing (:includeurl http://docs.google.com/EmbedSlideshow?docid=dg297hmk_8fw2bt5d d&amp:) Video sobre la Maquina de Turing (:includeurl http://www.youtube.com/watch?v=DnBsndE1IkA:)
  • 17. Aqui termina el trabajo elaborado por: Landeros Labrada Lizzet; Mendoza Torres Nayeli; Ontiveros Amaya Brenda; Rangel Cortes Guadalupe; Suarez Castellanos Iris y Schwuchow Alfaro Bianca Lic.Informática 301 Aqui empieza el trabajo del equipo numero 7 Carrera: Lic. en Iformaica. Docente: Alberto Lomeli. Salon y grupo: 302 Integrantes: Sergio Zamora Blancarte. Beltran Loez Hirwin Arturo. Pacheco Lara Arturo. http://docs.google.com/Presentation?docid=df973fmc_3cg94qggz&hl=en Aqui termina el trabajo del equipo 7. Aqui empieza el trabajo del equipo 8. Lic. en Informatica 302, Profesor: Alberto Lomeli Integrantes: *Arellano Juarez Aaron. *Contreras Ramos Imelda. *Perez Dorado Martin. *Hernandez Velasco Keren. *Ramos Hurtado Alejandra. (:includeurl http://docs.google.com/Present?docid=dhbfs52_33gm2gscdr:) (:youtube Sbury 0 Ak 2 Tg:)
  • 18. Video traducido: ―La maquina tiene basicamente 3 componentes, el primero es una cinta, que como se puede ver esta dividida en cuadros y tiene un cabezal lector/escritor o un scanner, y basicamente tiene la funcion de escanear un simbolo a la vez. Esto basicamente significa que cada cuadro puede contener un simbolo, por ejemplo un cero, o un uno, o cualquier otro simbolo diferente en la cinta. Esto de aqui es el cabezal lector/escritor, o lo pueden llamar escaner, cualquiera que prefieran. Asi que, basicamente esta la cinta y el escaner, y la cinta se mueve atravez del escaner en intervalos de un paso, puede ir uno hacia arriba, o uno hacia abajo, o quedarse donde esta. Tambien esta una caja conectada, a la que yo le llamo controlador. Este esta conectado al cabezal lector/escritor, y dependiendo de lo que el escaner este leyendo en un tiempo exacto y el estado del controlador, puede ir de un estado a otro siguiendo un set predeterminado de pre-condiciones que existen dentro del controlador. El controlador tiene dos partes principales, tiene Estado principal; en el que tiene reglas que le dice como moverse de un estado a otro. Y tiene un Estado transitivo; lo que sucede es que la maquina empieza en algun estado inicial y leera el simbolo y el simbolo ira al controlador y el controlador dira ‗estoy en este estado y lei este simbolo‘ y va haber una regla que va a encontrar, basado en esa regla podria bajar uno, e ir al estado dos. Basicamente se va a mover atraves de la cinta y puede leer, escribir o moverse. Y esa es, la formalizacion basica de la maquina de turing y es usada basicamente como una calculador universal asi que esto es como una formalizacion teorica de una computadora personal, se puede imaginar que esto es la computadora, esto podria ser la memoria y su leector de memoria, algo asi como un cpu, y el controlador que podria ser como un ejecutador binaro o, no, no como un ejecutador binario, mejor como las instrucciones que estan disponibles en el proceso para procesar los datos, y pues basicamente esto es lo que es una maquina de turing, estaremos introduciendo lo que es la definicion matematica mas rigorista de lo que es, peroe esto solo es una definicion pictorica (ilustrada, grafica) para que tengan la representacion de lo que es mas o menos y sepan de lo que estamos hablando…‖ (:youtube v1on9D3Fkus:) Una máquina de Turing es un autómata que se mueve sobre una secuencia lineal de datos. En cada instante la máquina puede leer un solo dato de la secuencia (generalmente un carácter) y realiza ciertas acciones en base a una tabla que tiene en cuenta su ―estado‖ actual (interno) y el último dato leído. Entre las acciones está la posibilidad de escribir nuevos datos en la secuencia; recorrer la secuencia en ambos sentidos y cambiar de ―estado‖ dentro de un conjunto finito de estados posibles.
  • 19. En realidad la máquina de Turing es más una abstracción matemática que un dispositivo físico o mecánico. El hecho que se le denomine ―máquina‖ se debe a que su funcionamiento puede ser descrito en términos de operaciones individuales muy sencillas que sugieren una implementación real muy simple, lo que ha motivado que existan muchas versiones prácticas del mismo. Aqui termina el trabajo del equipo 8 Aqui comienza el trabajo del equipo 3 Trabajo: unidad 6 Integrantes: Cruz Reyes Cuautemoc Lopez Salas Miguel Salazar Gutierrez Gustavo Solis Covarrubias Alejandro Verdugo Cota Luis Miguel Grupo: 302 Lic.Informatica introduccion de la unidad 6 El lenguaje formal es aquel que el hombre ha desarrollado para expresar las situaciones que se dan en especifico en cada área del conocimiento científico. Las palabras y oraciones de un lenguaje formal son perfectamente definidas(una palabra mantiene su el mismo significado prescindiendo de su contexto o uso. Los lenguajes formales son exentos de cualquier componente semántico fuera de sus operadores y relaciones. Los lenguajes formales pueden ser utilizados para modelar una teoría de la mecánica, fisica, matemática, ingeniería eléctrica, o de otra naturaleza, con la ventaja de que en estos toda ambigüedad es eliminada. La idea básica es considerar a un lenguaje como un conjunto compuesto por cadenas de longitud finita formadas por símbolos tomados de un alfabeto. Los lenguajes formales como las matemáticas y la lógica, fueron desarrollados generalmente a través del establecimiento de una teoría, la cual le da las bases para dichos lenguajes. Empezaremos por ver lo que es la definición de lenguaje. LENGUAJE Las lenguas son sistemas más o menos complejos, que asocian contenidos de pensamiento y significación a manifestaciones simbólicas tanto orales como escritas. El lenguaje sería la capacidad humana para comunicarse mediante lenguas como los idiomas o los creados con fines específicos (los lenguajes de programación, los lenguajes de la lógica, los lenguajes de la aritmética…). Definiremos el lenguaje como un conjunto de palabras, cada lenguaje está compuesto por secuencias de símbolos tomados de alguna colección finita. la colección finita es el conjunto de las letras del alfabeto junto con los símbolos que se usan para construir palabras De forma similar, la representación de enteros, son secuencias de caracteres del conjunto de los dígitos {0,1,2,3,4,5,6,7,8,9}.
  • 20. Una secuencia finita de símbolos de un determinado alfabeto, se conoce como palabra sobre dicho alfabeto. Cada símbolo de un alfabeto, es una cadena sobre dicho alfabeto. La cadena vacía, es una palabra sobre cualquier alfabeto. La palabra vacía, es una secuencia vacía de símbolos, tomados de cualquiera que sea el alfabeto en cuestión. Los lenguajes pueden ser bastante grandes, como lo es el caso de todas las palabras ―correctas‖ que se pueden formar en castellano sobre el alfabeto castellano, dado que un lenguaje es un conjunto de cadenas. LENGUAJES FORMALES El calificativo ―formal‖, determina un lenguaje que es construido estableciendo una teoría y se le llamaría artificial. Un lenguaje formal como la lógica consiste de un conjunto de oraciones llamadas fórmulas o expresiones bien formadas. ―lenguaje artificial‖ se refiere al hecho de que se forma por medio de reglas de formación, ―formal‖ se refiere específicamente al hecho de que las oraciones de estos lenguajes consisten de una lista de símbolos sujetos a diversas interpretaciones. Una de las metas en computación es poder especificar rigurosamente los significados por los métodos de interpretación de los sistemas formales, estos métodos constituyen las semánticas del lenguaje formal. El proceso de generación y desarrollo de un lenguaje formal es mediante las palabras y las oraciones que son perfectamente definidas: una palabra mantiene el mismo significado prescindiendo del contexto en el que se encuentre. Como resultado de este proceso, obtendremos las llamadas gramáticas libres del contexto. En adición, el significado de símbolos es determinado exclusivamente por la sintaxis, sin referencia a ningún contenido semántico. Una función y una fórmula, puede designar cualquier cosa, solamente los operadores y relaciones que nos permiten escribir una fórmula como por ejemplo la igualdad, desigualdad, pertenencia, no pertenencia, conectivos lógicos, etc., y operadores algebraicos +, -,*, /, tienen significados especiales. Los lenguajes formales son, por todo esto, necesariamente exentos de cualquier componente semántico fuera de sus operadores y relaciones, y es gracias a esta ausencia de significado especial, que los lenguajes formales pueden ser usados para modelar una teoría de la mecánica, de la ingeniería electrónica, etc., en la lingüística u otra naturaleza, la cual asume el estatus del componente semántico de tal lenguaje. No podemos evitar mencionar la importancia de los números en lenguajes formales. En un sistema numérico, así como en un sistema de cálculo, los números siempre tienen el potencial de referir un cierto ―contenido‖ el cual pertenecerá entonces al componente semántico del lenguaje: los objetos posibles cuando son contables o medibles. La asociación de un significado con un número o con un cálculo no siempre es obvio, sin embargo, es útil recordar que en física cuando se completa un cálculo y se busca una interpretación del mismo solamente se mantienen los números positivos de los resultados ya que las soluciones negativas o imaginarias a las ecuaciones que se supone describen la realidad son la mayoría de las veces rechazadas porque no corresponden con la ―realidad física‖. En resumen, los lenguajes formales, se caracterizan con las siguientes propiedades: •Se desarrollan a partir de una teoría establecida. •Tienen un componente semántico mínimo. •Posibilidad de
  • 21. incrementar el componente semántico de acuerdo con la teoría a formalizar. •La sintaxis produce oraciones no ambiguas, en lo que respecta al significado de sus palabras •Completa formalización, y por esto, el potencial de la construcción computacional. GRAMATICA La gramática de un lenguaje es el conjunto de reglas capaces de generar todas las posibilidades combinatorias de ese lenguaje, ya sea éste un lenguaje formal o un lenguaje natural. Tema elegido: la maquina de turing La máquina de Turing es un modelo computacional introducido por Alan Turing en el trabajo “On computable numbers, with an application to the Entscheidungsproblem”, publicado por la Sociedad Matemática de Londres, en el cual se estudiaba la cuestión planteada por David Hilbert sobre si las matemáticas son decidibles, es decir, si hay un método definido que pueda aplicarse a cualquier sentencia matemática y que nos diga si esa sentencia es cierta o no. Turing construyó un modelo formal de computador, la máquina de Turing, y demostró que existían problemas que una máquina no podía resolver. La máquina de Turing es un modelo matemático abstracto que formaliza el concepto de algoritmo. Alan Mathison Turing (23 de junio de 1912 - 7 de junio de 1954). Fue un matemático, informático teórico,criptógrafo y filósofo inglés. Se le considera uno de los padres de la Ciencia de la computación siendo el precursor de la informátic amoderna. Proporcionó una influyente formalización de los conceptos de algoritmo y computación: lamáquina de Turing. Formuló su propia versión de la hoy ampliamente aceptada Tesis de Church-Turing, la cual postula que cualquier modelo computacional existente tiene las mismas capacidades algorítmicas, o un subconjunto, de las que tiene una máquina de Turing. Durante la Segunda Guerra Mundial, trabajó en romper los códigos nazis, particularmente los de la máquina Enigma; durante un tiempo fue el director de la sección Naval Enigma del Bletchley Park. Tras la guerra diseñó uno de los primeros computadores electrónicos programables digitales en el Laboratorio Nacional de Física del Reino Unido y poco tiempo después construyó otra de las primeras máquinas en la Universidad de Manchester. Entre otras muchas cosas, también contribuyó de forma particular e incluso provocativa al enigma de si las máquinas pueden pensar, es decir a la Inteligencia Artificial. La Universidad y sus estudios sobre computabilidad
  • 22. Debido a su falta de voluntad para esforzarse con la misma intensidad en el estudio de los clásicos que en el de la ciencia y las matemáticas, Turing suspendió sus exámenes finales varias veces y tuvo que ingresar en la escuela universitaria que eligió en segundo lugar, King‘s College, Universidad de Cambridge, en vez de en la que era su primera elección, Trinity. Recibió las enseñanzas de Godfrey Harold Hardy, un respetado matemático que ocupó la cátedra Sadleirian en Cambridge y que posteriormente fue responsable de un centro de estudios e investigaciones matemáticas de 1931 a 1934. En 1935 Turing fue nombrado profesor del King‘s College. En su memorable estudio ―Los números computables, con una aplicación al Entscheidungsproblem‖ (publicado en 1936), Turing reformuló los resultados obtenidos por Kurt Gödel en 1931 Máquina de Turing, unos dispositivos formales y simples. Demostró que dicha máquina era capaz de implementar cualquier problema matemático que pudiera representarse mediante un algoritmo. Las máquinas de Turing siguen siendo el objeto central de estudio en la teoría de la computación. Llegó a probar que no había ninguna solución para el problema de decisión, Entscheidungsproblem, demostrando primero que el problema de la parada para las máquinas de Turing es irresoluble: no es posible decidir algorítmicamente si una máquina de Turing dada llegará a pararse o no. Aunque su demostración se publicó después de la demostración equivalente de Alonzo Church respecto a su cálculo lambda, el estudio de Turing es mucho más accesible e intuitivo. También fue pionero con su concepto de ―Máquina Universal (de Turing)‖, con la tesis de que dicha máquina podría realizar las mismas tareas que cualquier otro tipo de máquina. Su estudio también introduce el concepto de números definibles. sobre los límites de la demostrabilidad y la computación, sustituyendo al lenguaje formal universal descrito por Gödel por lo que hoy se conoce como La mayor parte de 1937 y 1938 la pasó en la Universidad de Princeton, estudiando bajo la dirección de Alonzo Church. En 1938 obtuvo el Doctorado en Princeton; en su discurso introdujo el concepto de hipercomputación, en el que ampliaba las máquinas de Turing con las llamadas máquinas oráculo, las cuales permitían el estudio de los problemas para los que no existe una solución algorítmica. Tras su regreso a Cambridge en 1939, asistió a las conferencias de Ludwig Wittgenstein sobre las bases de las matemáticas. Ambos discutieron y mantuvieron un vehemente desencuentro, ya que Turing defendía el formalismo matemático y Wittgenstein criticaba que las matemáticas estaban sobrevaloradas y no descubrían ninguna verdad absoluta. Análisis criptográfico (ruptura de códigos) Réplica de una máquina bombe
  • 23. Durante la Segunda Guerra Mundial fue uno de los principales artífices de los trabajos del Bletchley Park para descifrar los códigos nazis. Sus perspicaces observaciones matemáticas contribuyeron a romper los códigos de la máquina Enigma y de los codificadores de teletipos FISH (máquinas de teletipos codificados que fabricaron conjuntamente Lorenz Electric y Siemens&Halske). Sus estudios del sistema Fish ayudarían al desarrollo posterior de la primera computadora programable electrónica digital llamada Colossus, la cual fue diseñada por Max Newman y su equipo, y construida en la Estación de Investigaciones Postales de Dollis Hill por un equipo dirigido por Thomas Flowers en 1943. Dicha computadora se utilizó para descifrar los códigos Fish (en concreto las transmisiones de la máquina Lorenz). Para romper los códigos de la máquina Enigma, Turing diseñó la bombe, una máquina electromecánica —llamada así en reconocimiento de la diseñada por los polacos bomba kryptologiczna— que se utilizaba para eliminar una gran cantidad de claves enigma candidatas. Para cada combinación posible se implementaba eléctricamente una cadena de deducciones lógicas. Era posible detectar cuándo ocurría una contradicción y desechar la combinación. La bombe de Turing, con una mejora añadida que sugirió el matemático Gordon Welchman, era la herramienta principal que usaban los criptógrafos aliados para leer las transmisiones Enigma. Los trabajos de ruptura de códigos de Turing han sido secretos hasta los años 1970; ni siquiera sus amigos más íntimos llegaron a tener constancia. Estudios sobre las primeras computadoras; la prueba de Turing De 1945 a 1948 trabajó en el Laboratorio Nacional de Física en el diseño del ACE (Máquina de Computación Automática). En 1949 fue nombrado director delegado del laboratorio de computación de la Universidad de Manchester y trabajó en el software de una de las primeras computadoras reales — la Manchester Mark I. Durante esta etapa también realizó estudios más abstractos y en su artículo ―Máquinas de computación e inteligencia‖ (octubre de 1950) Turing trató el problema de la inteligencia artificial y propuso un experimento que hoy se conoce como la prueba de Turing, con la intención de definir una prueba estándar por el que una máquina podría catalogarse como ―sensible‖ o ―sentiente‖. En 1952 Turing escribió un programa de ajedrez. A falta de una computadora lo suficientemente potente como para ejecutarlo, él simulaba el funcionamiento de la computadora, tardando más de hora y media en efectuar un movimiento. Una de las partidas llegó a registrarse; el programa perdió frente a un amigo de Turing.
  • 24. Trabajó junto a Norbert Wiener en el desarrollo de la cibernética. Esta rama de estudios se genera a partir de la demanda de sistemas de control que exige el progresivo desarrollo de las técnicas de producción a partir del siglo XX. La cibernética pretende establecer un sistema de comunicación entre el hombre y la máquina como premisa fundamental para administrar los sistemas de control. Sus estudios profundizaron en esta relación estableciendo el concepto de interfaz y cuestionando los límites de simulación del razonamiento humano. Estudios sobre la formación de patrones y la biología matemática Turing trabajó desde 1952 hasta que falleció en 1954 en la biología matemática, concretamente en la morfogénesis. Publicó un trabajo sobre esta materia titulado ―Fundamentos Químicos de la Morfogénesis‖ en 1952. Su principal interés era comprender la filotaxis de Fibonacci, es decir, la existencia de los números de Fibonacci en las estructuras vegetales. Utilizó ecuaciones de reacción-difusión que actualmente son cruciales en el campo de la formación de patrones. Sus trabajos posteriores no se publicaron hasta 1992 en el libro ―Obras Completas de A. M. Turing‖. Diagrama artístico de una máquina de Turing. Descripción La máquina de Turing consta de un cabezal lector/escritor y una cinta infinita en la que el cabezal lee el contenido, borra el contenido anterior y escribe un nuevo valor. Las operaciones que se pueden realizar en esta máquina se limitan a: avanzar el cabezal lector/escritor hacia la derecha. avanzar el cabezal lector/escritor hacia la izquierda. El cómputo es determinado a partir de una tabla de estados de la forma: (estado, valor) (nuevo estado, nuevo valor, dirección) Esta tabla toma como parámetros el estado actual de la máquina y el carácter leído de la cinta, dando la dirección para mover el cabezal, el nuevo estado de la máquina y el valor a ser escrito en la cinta. Con este aparato extremadamente sencillo es posible realizar cualquier cómputo que un computador digital sea capaz de realizar. Mediante este modelo teórico y el análisis de complejidad de algoritmos, fue posible la categorización de problemas computacionales de acuerdo a su comportamiento, apareciendo así, el conjunto de problemas denominados P y NP, cuyas soluciones en tiempo polinómico son encontradas según el determinismo y no determinismo respectivamente de la máquina de Turing. De hecho, se puede probar matemáticamente que para cualquier programa de computadora es posible crear una máquina de Turing equivalente. Esta prueba resulta de la Tesis de Church-Turing, formulada por Alan Turing y Alonzo Church, de forma independiente a mediados del siglo XX. La idea subyacente es el concepto de que una máquina de Turing es una persona ejecutando un procedimiento efectivo definido formalmente, donde el espacio de memoria de trabajo es ilimitado, pero en un momento determinado sólo una parte finita es accesible. La memoria se
  • 25. divide en espacios de trabajo denominados celdas, donde se pueden escribir y leer símbolos. Inicialmente todas las celdas contienen un símbolo especial denominado ―blanco‖. Las instrucciones que determinan el funcionamiento de la máquina tienen la forma, ―si estamos en el estado x leyendo la posición y, donde hay escrito el símbolo z, entonces este símbolo debe ser reemplazado por este otro símbolo, y pasar a leer la celda siguiente, bien a la izquierda o bien a la derecha‖. La máquina de Turing puede considerarse como un autómata capaz de reconocerlenguajes formales. En ese sentido es capaz de reconocer los lenguajes recursivamente enumerables, de acuerdo a la jerarquía de Chomsky. Su potencia es, por tanto, superior a otros tipos de autómatas, como el autómata finito, o el autómata con pila, o igual a otros modelos con la misma potencia computacional. Definición Una máquina de Turing con una sola cinta puede ser definida como una 6-tupla , donde es un conjunto finito de estados. es un conjunto finito de símbolos de cinta, el alfabeto de cinta. es el estado inicial. es un símbolo denominado blanco, y es el único símbolo que se puede repetir un número infinito de veces. es el conjunto de estados finales de aceptación. es una función parcial denominada función de transición, donde L es un movimiento a la izquierda y R es el movimiento a la derecha. Existen en la literatura un abundante número de definiciones alternativas, pero todas ellas tienen el mismo poder computacional, por ejemplo se puede añadir el símbolo como símbolo de ―no movimiento‖ en un paso de cómputo o el símbolo Σ para indicar el alfabeto de entrada. Ejemplo Definimos una máquina de Turing sobre el alfabeto {0,1}, donde 0 representa el símbolo blanco. La máquina comenzará su proceso situada sobre un símbolo ―1″ de una serie. La máquina de Turing copiará el número de símbolos ―1″ que encuentre hasta el primer blanco detrás de dicho símbolo blanco. Es decir, situada sobre el 1 situado en el extremo izquierdo, doblará el número de símbolos 1, con un 0 en medio. Así, si tenemos la entrada ―111″ devolverá ―1110111″, con ―1111″ devolverá ―111101111″, y sucesivamente. El conjunto de estados es {s1,s2,s3,s4,s5} y el estado inicial es s1. La tabla que describe la función de transición es la siguiente: Estado Símbolo leído Símbolo escrito Mov. Estado sig. s1 1 0 R s2 s2 1 1 R s2 s2 0 0 R s3 s3 0 1 L s4 s3 1 1 R s3 s4 1 1 L s4 s4 0 0 L s5 s5 1 1 L s5 s5 0 1 R s1 El funcionamiento de una computación de esta máquina se puede mostrar con el siguiente ejemplo (en negrita se resalta la posición de la cabeza lectora/escritora): Paso Estado Cinta 1 s1 11 2 s2 01 3 s2 010 4 s3 0100 5 s4 0101 6 s5 0101 7 s5 0101 8 s1 1101 9 s2 1001 10 s3 1001 11 s3 10010 12 s4 10011 13 s4 10011 14 s5 10011 15 s1 11011 Parada La máquina realiza su
  • 26. proceso por medio de un bucle, en el estado inicial s1, reemplaza el primer 1 con un 0, y pasa al estado s2, con el que avanza hasta la derecha, saltando los símbolos 1 hasta un 0 (que debe existir), cuando lo encuentra pasa al estado s3, con este estado avanza saltando los 1 hasta encontrar otro 0 (la primera vez no habría ningún 1). Una vez en el extremo derecho, añade un 1. Después comienza el proceso de retorno; con s4 vuelve a la izquierda saltando los 1, cuando encuentra un 0 (en el medio de la secuencia), pasa a s5 que continúa a la izquierda saltando los 1 hasta el 0 que se escribió al principio. Se reemplaza de nuevo este 0 por 1, y pasa al símbolo siguiente, si es un 1, se pasa a otra iteración del bucle, pasando al estado s1 de nuevo. Si es un símbolo 0, será el símbolo central, con lo que la máquina se detiene al haber finalizado su cómputo. Máquinas de Turing deterministas y no deterministas La entrada de una máquina de Turing viene determinada por el estado actual y el símbolo leído, un par [estado, símbolo], siendo el cambio de estado, la escritura de un nuevo símbolo y el movimiento las acciones a tomar en función de una entrada. En el caso de que para cada par estado y símbolo posible exista a lo sumo una posibilidad de ejecución, se dirá que es una máquina de Turing determinista, mientras que en el caso de que exista al menos un par [estado, símbolo] con más de una posible combinación de actuaciones se dirá que se trata de una máquina de Turing no determinista. La función de transición δ en el caso no determinista, queda definida como sigue: ¿Cómo sabe una máquina no determinista cuál de las varias actuaciones tomar? Hay dos formas de verlo: una es decir que la máquina es ―el mejor adivino posible‖, esto es, que siempre elige la transición que eventualmente la llevará a un estado final de aceptación. La otra es imaginarse que la máquina se ―clona‖, bifurcándose en varias copias, cada una de las cuales sigue una de las posibles transiciones. Mientras que una máquina determinista sigue un solo ―camino computacional‖, una máquina no determinista tiene un ―árbol computacional‖. Si cualquiera de las ramas del árbol finaliza en un estado de aceptación, se dice que la máquina acepta la entrada. La capacidad de cómputo de ambas versiones es equivalente; se puede demostrar que dada una máquina de Turing no determinista existe otra máquina de Turing determinista equivalente, en el sentido de que reconoce el mismo lenguaje, y viceversa. No obstante, la velocidad de ejecución de ambos formalismos no es la misma, pues si una máquina no determinista M reconoce una cierta palabra de tamaño n en un tiempo O(t(n)), la máquina determinista equivalente reconocerá la palabra en un tiempo O(2t(n)). Es decir, el no determinismo permitirá reducir la complejidad de la solución de los problemas, permitiendo resolver, por ejemplo, problemas de complejidad exponencial en un tiempo polinómico. Máquina Universal de Turing
  • 27. Una máquina de Turing computa una determinada función parcial de carácter definido, y unívoca, definida sobre las secuencias de posibles cadenas de símbolos de su alfabeto. En este sentido se puede considerar como equivalente a un programa de ordenador, o a un algoritmo. Sin embargo es posible realizar una codificación de la tabla que representa a una máquina de Turing, a su vez, como una secuencia de símbolos en un determinado alfabeto; por ello, podemos construir una máquina de Turing que acepte como entrada la tabla que representa a otra máquina de Turing, y, de esta manera, simule su comportamiento. En 1947, Turing indicó: Se puede demostrar que es posible construir una máquina especial de este tipo que pueda realizar el trabajo de todas las demás. Esta máquina especial puede ser denominada máquina universal. Esta fue, posiblemente, la idea germinal del concepto de Sistema Operativo, un programa que puede, a su vez, ejecutar en el sentido de controlar otros programas, demostrando su existencia, y abriendo camino para su construcción real. Con esta codificación de tablas como cadenas, se abre la posiblidad de que unas máquinas de Turing se comporten como otras máquinas de Turing. Sin embargo, muchas de sus posibilidades son indecidibles, pues no admiten una solución algorítmica. Por ejemplo, un problema interesante es determinar si una máquina de Turing cualquiera se parará en un tiempo finito sobre una determinada entrada; problema conocido como Problema de la parada, y que Turing demostró que era indecidible. En general, se puede demostrar que cualquier cuestión no trivial sobre el comportamiento o la salida de una máquina de Turing es un problema indecidible. Máquina de Turing Cuántica En 1985, Deutsch presentó el diseño de la primera Máquina Cuántica basada en una máquina de Turing. Con este fin enunció una nueva variante la tesis de Church dando lugar al denominado ―Principio de Church-Turing-Deutsch‖. La estructura de una máquina de Turing cuántica es muy similar a la de una máquina de Turing clásica. Está compuesta por los tres elementos clásicos: Una cinta de memoria infinita en que cada elemento es un Qu Bit Un procesador finito Un cursor La siguiente ilustración muestra el esquema de una máquina cuántica: El procesador contiene el juego de instrucciones que se aplica sobre el elemento de la cinta señalado por el cursor. El resultado dependerá delQuBit de la cinta y del estado del procesador. El procesador ejecuta una instrucción por unidad de tiempo. La cinta de memoria es similar a la de una máquina de Turing tradicional. La única diferencia es que cada elemento de la cinta de la máquina cuántica es un Qu Bit. El alfabeto de esta nueva máquina está formado por el espacio de valores del Qu Bit. El cursor es el elemento que comunica la unidad de memoria y el procesador. Su posición se representa con una variable entera.