Вы находитесь на странице: 1из 12

MQUINA DE TURING Una mquina de Turing (MT) es un modelo computacional que realiza una lectura/escritura de manera automtica sobre

una entrada llamada cinta, generando una salida en esta misma. Este modelo est formado por un alfabeto de entrada y uno de salida, un smbolo especial llamado blanco (normalmente b, o 0), un conjunto de estados finitos y un conjunto de transiciones entre dichos estados. Su funcionamiento se basa en una funcin de transicin, que recibe un estado inicial y una cadena de caracteres (la cinta, la cual puede ser infinita) pertenecientes al alfabeto de entrada. La mquina va leyendo una celda de la cinta en cada paso, borrando el smbolo en el que se encuentra posicionado su cabezal y escribiendo un nuevo smbolo perteneciente al alfabeto de salida, para luego desplazar el cabezal a la izquierda o a la derecha (solo una celda a la vez). Esto se repite segn se indique en la funcin de transicin, para finalmente detenerse en un estado final ode aceptacin, representando as la salida. FUNCIONAMIENTO la mquina 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 mquina se limitan a: avanzar el cabezal lector/escritor hacia la derecha.

visualizacin de una mquina de turing, en la que se ve el cabezal y la cinta que se lee. avanzar el cabezal lector/escritor hacia la izquierda. el cmputo es determinado a partir de una tabla de estados de la forma: (estado, valor) (nuevo estado, nuevo valor, direccin)

esta tabla toma como parmetros el estado actual de la mquina y el carcter ledo de la cinta, dando la direccin para mover el cabezal, el nuevo estado de la mquina y el valor a escribir en la cinta. la memoria es la cinta de la mquina que se divide en espacios de trabajo denominados celdas, donde se pueden escribir y leer smbolos. inicialmente todas las celdas contienen un smbolo especial denominado "blanco". las instrucciones que determinan el funcionamiento de la mquina tienen la forma, "si estamos en el estado x leyendo la posicin y,

donde hay escrito el smbolo z, entonces este smbolo debe ser reemplazado por este otro smbolo, y pasar a leer la celda siguiente, bien a la izquierda o bien a la derecha". la mquina de turing puede considerarse como un autmata capaz de reconocer lenguajes formales. en ese sentido, es capaz de reconocer los lenguajes recursivamente enumerables, de acuerdo a la jerarqua de chomsky. su potencia es, por tanto, superior a otros tipos de autmatas, como el autmata finito, o el autmata con pila, o igual a otros modelos con la misma potencia computacional. [editar]representacin como diagrama de estados las maquinas de turing pueden representarse mediante grafos particulares, tambin llamados diagramas de estados finitos, de la siguiente manera:

esta mquina de turing est definida sobre el alfabeto = {a,b,c}, posee el conjunto de estados q = {qo,q1,q2,q3,q4,q5,q6}, con las transiciones que se pueden ver. su estado inicial es q0 y el estado final es q2, el lenguaje de salida = {x,y,z,b} siendo b el smbolo denominado "blanco". esta mquina reconoce la expresin regular de la forma anbncn con n > = 0. los estados se representan como vrtices, etiquetados con su nombre en el interior.

una transicin desde un estado a otro, se representa mediante una arista dirigida que une a estos vrtices, y esta rotulada por smbolo que lee el cabezal/smbolo que escribir el cabezal, movimiento del cabezal.

el estado inicial se caracteriza por tener una arista que llega a l y que no proviene de ningn otro vrtice. el o los estados finales se representan mediante vrtices que estn encerrados a su vez por otra circunferencia. [editar]descripcin instantnea

es una secuencia de la forma

donde

que seguida de

escribe el estado de una mt. la cinta contiene la cadena infinitos blancos. el cabezal seala el primer smbolo de por ejemplo, para la mquina de turing .

con las transiciones

la descripcin instantnea para la cinta 1011 es:

Toda mquina de Turing puede codificarse como una secuencia binaria finita, es decir una secuencia finita de ceros y unos. Para simplificar la codificacin, suponemos que toda MT tiene un nico estado inicial denotado por nico estado final denotado

, y un

. Tendremos que para una MT M de la forma el smbolo blanco

donde s1 representa 0, o b (segn se desee denotar), es alfabeto de entrada y

son los smbolos auxiliares utilizados por M (cada MT utiliza su propia coleccin finito de smbolos auxiliares).

Todos estos smbolos se codifican como secuencias de unos:

Smbolo Codificacin

s1

s2

11

s3

111

. . .

. . .

sm

1m

sp

1p se codifican tambin con secuencias

Los estados de una MT de unos: Smbolo Codificacin

q1(inicial) 1

q2(final)

11

. . .

. . .

qn

1n , y se codifican con 1, 11, 111,

Las directrices de desplazamiento

respectivamente. Una transicin se codifica usando ceros como separadores entre los estados, los smbolos del alfabeto de cinta y la

directriz de desplazamiento codifica como

. As, la transicin

se

En

general,

la

codificacin es

de

una

transicin

cualquiera

donde sea

segn

la .

direccin

Una MT se codifica escribiendo consecutivamente las secuencias de las modificaciones de todas sus transiciones. Ms precisamente, la codificacin de una MT M es de la forma , donde es la codificacin de la i-sima transicin de M. Puesto que el orden en que se representen las transiciones de una MT no es relevante, una misma MT tiene varias codificaciones diferentes. Esto no representa ninguna desventaja prctica o conceptual ya que no se pretende que las codificaciones sean nicas.

La mquina de Turing Una mquina de Turing es un autmata que se mueve sobre una secuencia lineal de datos. En cada instante la mquina puede leer un solo dato de la secuencia (generalmente un carcter) y realiza ciertas acciones en base a una tabla que tiene en cuenta su "estado" actual (interno) y el ltimo dato ledo. 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 mquina de Turing es ms una abstraccin matemtica que un dispositivo fsico o mecnico. El hecho que se le denomine "mquina" se debe a que su funcionamiento puede ser descrito en trminos de operaciones individuales muy sencillas que sugieren una implementacin real muy simple, lo que ha motivado que existan muchas versiones prcticas del mismo. Existen diversas "variedades" de una mquina de Turing, pero la ms simple puede ser descrita diciendo que es cualquier dispositivo que cumple las siguientes condiciones:

Tiene una cinta sobre la que puede desplazarse a izquierda y derecha un cabezal de lectura/escritura. La cinta contiene una serie de celdas, y en cada una de ellas puede escribirse un smbolo de un conjunto finito; este conjunto de smbolos se denomina el alfabeto de la mquina [2]. En principio todas las celdas que no se hayan escrito antes contienen un carcter especial nulo o vaco (que se representa por 0 o #). La cinta puede contener tantas celdas a derecha e izquierda del cabezal como sean necesarias para el funcionamiento de la mquina. El cabezal puede moverse a derecha (R) a izquierda (L) de su posicin actual, as como leer el contenido de una celda o escribir en ella cualquier carcter de su alfabeto. Existe un registro de estado que almacena el estado de la mquina. El nmero de estados posibles es finito, y no se exige ningn estado especial con el que sea iniciada la mquina. Existe una tabla de accin [3], que contiene las instrucciones de lo que har el autmata. Estas instrucciones representan en cierta forma el "programa" de la mquina. Las ejecucin de cada instruccin de la tabla de accin incluye cuatro pasos: Leer un carcter en la posicin actual. Escribir un nuevo smbolo en esta posicin (puede ser el mismo que haba). El smbolo a escribir es alguno del alfabeto de la mquina, y depende del carcter ledo y del estado actual. Desplazar el cabezal una celda a derecha o izquierda (R/L); en algunos modelos el desplazamiento puede ser nulo (detener H).

Decidir cual ser el nuevo estado en funcin del carcter que se acaba de leer y del estado actual. Si la tabla de accin no contiene ninguna +---+---++---+---+---+ correspondencia con el | S | R || W | M | N | estado actual y el smbolo +---+---++---+---+---+ ledo, entonces la mquina | 0 | 0 || 0 | R | 0 | | 0 | 1 || 1 | R | 1 | detiene su funcionamiento. | 1 | 0 || 1 | R | 2 | | 1 | 1 || 1 | R | 1 | En los modelos didcticos | 2 | 0 || 0 | H | 2 | computarizados [5] la tabla suele | 2 | 1 || 0 | H | 2 | definirse mediante una matriz de cinco +---+---++---+---+---+ columnas que contiene: Estado/Carcter-ledo/Carcter-aescribir/Movimiento/Nuevo-estado S = Estado actual R = Carcter ledo W = Carcter escrito M = Direccin del movimiento N = Nuevo estado

En el recuadro se incluye una muestra de una de estas tablas. Representa el comportamiento de una mquina de turing que es capaz de sumar 1 a cualquier nmero unario ( 0.1). El alfabeto solo tiene dos smbolos: Vaco (0) y valor (1). La mquina puede adoptar tres estados diferentes numerados

del 0 al 2 (es costumbre sealar el estado inicial con 0). El movimiento H ("Halt") significa no desplazar el cabezal. En este caso la mquina se detiene (o entra en un bucle sin fin). Tambin es posible representar la tabla de accin mediante un grafo. Los diferentes estados internos se representan por crculos. Los cambios de estado con flechas a las que se aade una leyenda. Generalmente se utiliza una flecha para sealar el estado inicial. En la figura 1 se muestra el grafo correspondiente a la tabla. Es notable que el diseo de Turing contiene de forma implcita la idea de que el autmata puede alterar su propio programa, pero el punto ms significativo de su filosofa de funcionamiento es que se comporta como la mente, en el sentido que la configuracin interna de la mquina establece el entorno en el que se toman las decisiones, de forma que la accin depende de dos factores: el estado interno y la informacin externa que puede "ver" a travs de su cabezal [6]. La consecuencia es que es imposible predecir su comportamiento de la simple inspeccin de su tabla de accin, ya que el comportamiento depende tambin de la entrada recibida. El hecho que el nmero de estados posibles y su alfabeto sea finitos, califica a estos autmatas comomquinas de estados finitos FSM ("Finite State Machine"). Nota: algunos tericos sostienen que la genuina mquina de Turing solo utiliza un alfabeto unario, mientras que una mquina de estados finitos es ms general y puede utilizar un alfabeto con ms smbolos.

Es significativo que la cinta puede extenderse indefinidamente a derecha e izquierda, lo que hace que en la prctica sea imposible construir un modelo real de lo que se denomina un sistema de Turing completo (ver a continuacin 4 ). Es tambin destacable que la mquina da a la cinta tres utilizaciones distintas: Como elemento de almacenamiento de los datos de entrada (de capacidad potencialmente ilimitada) Como elemento de salida (de cualquier cantidad de datos) Como almacenamiento de informacin intermedia durante el proceso (puede ser de cualquier tamao).

Aunque tanto el alfabeto utilizado como el nmero de estados son finitos, lo que confiere su potencia a la mquina de Turing (adems de su diseo genial) es su almacenamiento ilimitado. Turing prob que este autmata es tambin un computador universal. Es decir, que puede emular el comportamiento de cualquier dispositivo cuyo comportamiento pueda ser expresado simblicamente mediante un algoritmo. 3 Ejemplo Supongamos una mquina de Turing con un alfabeto unario, en la que el nulo (ausencia de dato) lo sealamos con 0. La mquina puede tener cinco estados que denominamos {e0, e1, e2, e3, e4}. El estado inicial es e0; su tabla de accin se muestra a la derecha.

N M W R S e R 0 11 e0 e R 11 e1 e R 02 e1 e L 1 03 e2 e R 12 e2 e L 13 e3 e L 04 e3 e L 14 e4 e R 1 00 e4

Observe que la tabla debe contener al menos S: Estado anterior tantas filas como estados distintos. La R: Smbolo ledo primera columna representa lo que podamos W: Smbolo a escribir denominar "estado mental" de la mquina. M: Movimiento (R, L). La segunda columna indica el carcter ledo; N: Nuevo estado. representa la entrada (input) al autmata. Las siguientes (en otro color) representan el comportamiento o respuesta de la mquina para la combinacin estado/carcter-ledo. Esta respuesta tiene tres componentes:

Una salida (escribir en la cinta). Indicado en la columna W. Un movimiento de avance o retroceso del cabezal sobre la cinta (indicado en la columna M). Un cambio del estado interno actual del autmata a otro nuevo (columna N).

Observe que las filas pueden repetir el primer elemento; significan las acciones a tomar en cada estado segn el carcter ledo. Cada vez que se alcanza un estado para el que no exista una entrada para el carcter ledo, la mquina se detiene. En nuestro autmata la tabla seala acciones concretas para cualquier carcter ledo (0 o 1) en cualquiera de los estados e1, e2, e3 y e4, pero si en el estado e0 se lee un 0, la mquina se detiene. La sucesin de pasos de cmputo es la siguiente (suponemos un estado inicial cualquiera ex): 1.- Se lee un carcter c (en nuestro caso es necesariamente 0 o 1) 2.- Se mira en la tabla que fila corresponde a la combinacin ex/c. 3a.- Si no existe entrada la mquina se detiene. 3b.- Si existe entrada se ejecuta la instruccin (columnas en marrn claro) en el siguiente orden:

3b1.- Se escribe en la posicin actual el carcter sealado (puede ser el mismo que haba). 3b2.- Se mueve el cabezal una posicin a izquierda o derecha. 3b3.- Se pasa al estado sealado en la ltima columna (puede implicar no cambiar de estado). 3b4.- Se repite el ciclo desde el punto 1. Un ejemplo concreto debe comenzar en un estado determinado y con una cinta que contenga cualquier conjunto no nulo de caracteres del alfabeto del autmata. El autmata de nuestro ejemplo [4] espera estar situado en el primer carcter (izquierdo) de una cantidad cualquiera representada en unario ( 0.1). El programa hace que el autmata lea la cantidad y la repita a la derecha separadas por un nulo (0). Por ejemplo, si encuentra 111100000 lo transforma en 111101111. Un ejemplo del proceso de esta mquina puede ser el que se muestra a continuacin. Como el nmero de pasos de cmputo hasta que la mquina se detiene, depende de la cantidad inicial representada en la cinta, para hacer el ciclo ms breve supondremos que hay un 2 (110000...). Los pasos ejecutados por el autmata para realizar el proceso se muestran en la tabla inferior. La informacin contenida en la cinta para cada paso es la existente "antes" de la ejecucin del ciclo correspondiente. El carcter en negrita indica la posicin de la cabeza en el momento de la lectura.

P1: La mquina ejecuta el primer paso. Arranca en el estado e0, donde lee un 1; entonces, de acuerdo con su tabla de accin escribe un 0 en esa posicin, se mueve a la derecha y entra en estado e1. P2: En e1 lee un 1, escribe un 1 y se mueve a la derecha. Sigue en e1. P3: En e1 lee 0, escribe 0, se mueve a la derecha y cambia a e2 P4: En e2 lee 0, escribe 1, se mueve a la izquierda y cambia a e3 P5: En e3 lee 0, escribe 0, se mueve a la izquierda y cambia a e4 P6: En e4 lee 1, escribe 1, se mueve a la izquierda y sigue en e4

Paso Estado Cinta 1 2 3 4 5 6 7 8 9 10 11 12 13 e0 e1 e1 e2 e3 e4 e4 e0 e1 e2 e2 e3 e3 e4 e0 11000 01000 01000 01000 01010 01010 01010 11010 10010 10010 10010 10011 10011 10011 11011

El proceso sigue la misma lgica a travs de los 14 sucesivos pasos hasta 15 llegar al ltimo.

P15: En e0 lee 0; no Parada existe ninguna entrada en la tabla para esta combinacin, por lo que el autmata se detiene. Comprobamos como al final ha escrito en la cinta la cantidad esperada: 11011. 3 Sistema de Turing completo Un sistema Turing completo es aquel que puede simular el comportamiento de una mquina de Turing. Es evidente que salvando los problemas de memoria, los ordenadores modernos y los lenguajes de programacin de uso general, son sistemas de Turing completos. Tambin es evidente, que con independencia de su forma concreta, cualquier dispositivo que se comporte como un sistema de Turing completo, puede en principio ejecutar cualquier clculo que realice cualquier computador. Nota: Observe que la anterior afirmacin no menciona para nada la posible dificultad de escribir el programa o del tiempo que pueda emplear en

realizar el clculo (cualquier clculo que pueda hacer un ordenador puede tericamente efectuarse con papel y lpiz). 4 Recursos Web La informacin que puede encontrarse sobre estas cuestiones en la Red es muy abundante. Apate de la pgina de Andrew Hodge sobre Turing sealada en la nota

, sealara estas: "The Modern History of Computing"

Copeland, B. Jack, plato.stanford.edu.

En esta pgina de la Stanford Encyclopedia of Philosophy puede obtenerse una amplia descripcin sobre los orgenes e historia de la computacin.

Pgina dedicada csli.stanford.edu

la

mquina

de

Turing

del CSLI

www-

El CSLI ("Center for the Study of Language and Information") es un centro de investigacin independiente fundado en 1983 por investigadores de la universidad de Stanford en California, de SRI International y del legendario Xerox PARC. Existen diversos programas que permiten simular y observar el comportamiento de uno de estos autmatas en un PC. Como adems de la informtica, el tema pertenece al mbito de la matemtica terica, generalmente han sido desarrollados por profesores de esta materia. Una caracterstica general es que permiten ejecutar la computacin a diversas velocidades seleccionables por el usuario o paso a paso. A continuacin se relacionan algunos de los ms interesantes.

Visual Turing www.cheransoft.com Pgina mantenida por Cristian Cheran (Cheran Software)

Visual Turing es un programa Windows (95, 98, NT, 2000) que permite experimentar con mquinas de Turing. Dispone de una avanzada interfaz grfica que permite cortar, copiar y pegar. Se pueden ver las variables; permite la ejecucin paso a paso y deshacer la ltima instruccin ("Undo").

xTuringMachine Lab

math.hws.edu

El programa anterior puede resultar sin duda muy avanzado para el principiante, de forma que para empezar quizs sea ms recomendable utilizar este simulador de David J. Eck, del Departamento de Matemticas y Ciencia de la computacin en Hobart and William Smith Colleges. Es un applet Java que incluye un extenso comentario y diversos ejercicios. Tambin puede ser reprogramado para realizar nuestros propios modelos.

JKTuring

homepage.smc.edu

Este programa de John Kennedy, del departamento de matemticas del Santa Monica College en California, es un simulador FSM para Windows. El autor presenta adems una interesante coleccin de programas para el aprendizaje de
las matemticas.

Вам также может понравиться