30
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

Maquinas de turing

Embed Size (px)

Citation preview

Page 1: Maquinas 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. 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: 0111011i

Page 2: Maquinas 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.

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

Page 3: Maquinas de turing

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

Page 4: Maquinas de turing

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

Page 5: Maquinas de turing

(: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 .

Page 6: Maquinas de turing

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

Page 7: Maquinas de turing

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

Page 8: Maquinas de turing

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

Page 9: Maquinas de turing

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.

Page 10: Maquinas de turing

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_19cqgnf7fz:)

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.

Page 11: Maquinas de turing

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

Page 12: Maquinas de turing

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

Page 13: Maquinas de turing

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

Page 14: Maquinas de turing

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

Page 15: Maquinas de turing

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

Page 16: Maquinas de turing

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_8fw2bt5dd&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;

Page 17: Maquinas de turing

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

Page 18: Maquinas de turing

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

Page 19: Maquinas de turing

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

Page 20: Maquinas de turing

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.

Page 21: Maquinas de turing

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

Page 22: Maquinas de turing

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

Page 23: Maquinas de turing

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.

Page 24: Maquinas de turing

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

Page 25: Maquinas de turing

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

Page 26: Maquinas de turing

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

Page 27: Maquinas de turing

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.