Trabajo de Teoría Teoría
de Computación
Máquina de
Turing
Diego Rodrigo Lamping Poveda. Jhovan Alejandro Cantillano Perez.
Fecha: 04-06-2018
Docente: Hilda Saavedra Jiron
Grupo #9
Máquina de Turing
La máquina de Turing, presentada por Alan Turing en 1936 en On computable numbers, with an application to the Entscheidungsproblems , es el modelo matemático de un dispositivo que se comporta como un autómata finito y que dispone de una cinta de longitud infinita en la que se pueden leer, escribir o borrar
símbolos. Existen otras versiones con varias cintas, deterministas o no, etc., pero todas son equivalentes (respecto a los lenguajes que aceptan). Uno de los teoremas más importantes sobre las máquinas de Turing es que pueden simular el comportamiento de una computadora (almacenamiento y unidad de control). Por ello, si un problema no puede ser resuelto por una de estas máquinas, entonces tampoco puede ser resuelto por una u na computadora ( problema indecidible, NP).
La notación de las máquinas de Turing es sencilla y exacta, por lo que es más cómodo trabajar con ellas a la hora de estudiar qué problemas son decidibles (P) y cuáles indecidibles (NP). Por el momento la relación de inclusión entre P y NP está por demostrar, aunque sí sabemos que
P⊆ NPP⊆ NP
Además, diremos que los lenguajes aceptados por los Autómatas Finitos (Deterministas o no, con o sin transiciones-ε, transiciones- ε, con o sin pila...) pueden ser aceptados también por alguna máquina de Turing.
Definición de la Máquina de Turing Llamamos Máquina de Turing (ó MT) a M=(Q,Σ, M=(Q,Σ,T, T,δ δ,q0,B,F)M=(Q,Σ,T,δ,q0,B,F) ,B,F)M=(Q,Σ,T,δ,q0,B,F)
donde
Q es el conjunto finito de estados que denotaremos por q0,q1,q2,...q0,q1,q2,...
Σ es el alfabeto: el conjunto finito de símbolos de entrada . Τ es el conjunto de símbolos de cinta . El alfabeto es un subconjunto de Τ. q0 es el estado inicial : el estado en el que se encuentra inicialmente la MT. B es un elemento de Σ: el símbolo en blanco . Se encuentra en todas las casillas de la cinta que no tienen un símbolo de entrada. F es el conjunto de estados finales. δ es la función de transiciones . La expresión δ(q,X)=(p,Y,D)δ(q,X)=(p,Y,D)
indica que en el estado q, si la cabeza de la MT señala al símbolo de cinta X , entonces la MT escribe el símbolo de cinta Y en la casilla actual (cambia X por Y ) y mueve la cabeza una casilla hacia D ( D puede ser derecha, R; o izquierda, L) y pasa al estado p.
La cinta de la MT está formada por infinitas casillas. Inicialmente, la palabra de entrada (una concatenación de símbolos del alfabeto) se encuentra escrita en casillas consecutivas de la cinta y la cabeza señala al primer símbolo de la palabra. Todas las otras casillas (hacia la izquierda y la derecha) contienen el símbolo en blanco.
Lenguaje de una Máquina de Turing
El lenguaje de una Máquina de Turing M=(Q,Σ,T,δ,q0,B,F)M=(Q,Σ,T,δ,q0,B,F)
es L(M):={w∈Σ∗ : q0w⊢∗ αpβ,p∈F,α,β∈T∗}L(M):={w∈Σ∗ : q0w⊢∗ αpβ,p∈F,α,β∈T∗}
Es decir, las w de Σ* tales que la máquina de Turing alcanza un estado de aceptación.
Lenguaje Recursivo
Sea L el lenguaje de una máquina de Turing M , es decir, L = L(M), y además,
si w es una palabra de L, entonces M se para (y alcanza un estado de aceptación)
si w no es una palabra de L, entonces M se para (pero no alcanza un estado de aceptación)
entonces se dice que L es un lenguaje recursivo
Ejemplos: 1. Máquina de Turing que proporciona el complemento a 1 de un número
binario.
La MT tendrá escrita en la cinta un número de n cifras (bits) en binario (ceros y unos). Tiene que cambiar los 0's por 1's y viceversa.
Inicialmente, la cabeza de la MT señala la primera cifra del número (la que está más a la izquierda). Las otras casillas tienen el símbolo en blanco. La cinta de la MT es
La MT tendrá únicamente dos estados: el inicial, q0, y el de aceptación o final, q1. La MT se mantiene en el estado q0 mientras realiza la conversión. Cuando haya finalizado, pasa al estado q1.
Función de Transiciones: δ(q0,1)=(q0,0,R)δ(q0,1)=(q0,0,R)
Es decir, si la cabeza señala un 1, lo cambia por un 0 y se mueve hacia la derecha. δ(q0,0)=(q0,1,R)δ(q0,0)=(q0,1,R)
Es decir, si la cabeza señala un 0, lo cambia por un 1 y se mueve hacia la derecha. δ(q0,B)=(q1,B,R)δ(q0,B)=(q1,B,R)
Es decir, cuando la cabeza señala el primer símbolo en blanco, la cab eza se mueve a la derecha y la MT pasa al estado final. Por tanto, la MT es M=({q0,q1},{0,1},{0,1,B},δ,q0,B,{q1})M=({q0,q1},{0,1},{0,1,B},δ,q0,B,{q1})
siendo δ la función de transición definida por: δ(q0,0)=(q0,1,R)δ(q0,0)=(q0,1,R) δ(q0,1)=(q0,0,R)δ(q0,1)=(q0,0,R)
δ(q0,B)=(q 1,B,R)δ(q0,B)=(q1,B,R)
Notemos que la MT se para al llegar al estado de aceptación q1 ya que para este estado no tenemos definida la función de transición.
- La Máquina de Turing como aceptadora de Lenguajes
Una palabra x es aceptada por una máquina de Turing M sii a partir de la descripción inicial se llega a una con estado final
x ∈ L(M) ⇔ q0x ∗ α1qα2 con α1, α2 ∈ Γ∗ y q ∈ F L(M) = {x ∈ Σ∗ | q0x ∗ α1qα2, α1, α2 ∈ Γ∗, q ∈ F}
• Un lenguaje es recursivamente e numerable si es aceptado por una máquina de Turing • Un lenguaje es recursivo si es aceptado por una máquina de Turing que se detiene ante todas las
entradas
Ejemplo 1: Sea el lenguaje L formado por las palabras sobre Σ = {0, 1} que contienen al menos un 1:
• Ambas máquinas reconocen L • M2 no se detiene para 0 ∗ • M1 se detiene ante cualquier entrada. L es recursivo
Ejemplo 2: Máquina que acepta el lenguaje de palabras sobre {0, 1} que comienzan y acaban con el mismo símbolo
Construcción modular de las MT El objetivo de la creación modular de una maquina de Turing es poder desarrollar máquinas complejas a partir de bloques elementales, a partir de maquinas más pequeñas, mediante diagramas de transiciones. La construcción de máquinas de Turing se lleva a cabo mediante los diagramas de transición y combinarlos de manera parecida a lo que se realiza en la formación de la unión y concatenación de los autómatas finitos.
Pasos para la construcción de una máquina de Turing: 1. Elimine las características de inicio de los estados iniciales de las maquinas, excepto la de aquel donde iniciara la maquina compuesta. 2. Elimine las características de detención de los estados de parada de todas la maquinas e introduzca un nuevo estado de parada que nos se encuentre en ninguno de los diagramas que se combinan. 3. Para cada uno de los antiguos estados de parada p y cada x en y. Ejemplificación de dicha construcción.
Los diagramas compuestos para la construcción modular de una máquina de Turing:
Son aquellos en los que cada uno de los bloques de construcción se representa como un nodo, con flechas entre dichos nodos para indicar las transiciones entre bloques. Se puede combinar dos máquinas de Turing permitiendo que compartan la misma cinta y, que cuando una termine su ejecución, la otra empiece. El contenido de la cinta cuando comienza la ejecución de la segunda máquina de Turing, está formado por todo lo que dejó la primera máquina de Turing, y la cabeza de l/e de la segunda se situará, al comienzo de la ejecución, sobre la celda de la cinta sobre la que terminó la primera. Un sistema Turing completo es aquel que puede simular el comportamiento de una máquina de Turing. Es evidente que salvando los problemas de memoria, los ordenadores modernos y los lenguajes de programación de uso general, son sistemas de Turing completos. También 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 cálculo que realice cualquier computador.
Nota: Observe que la anterior afirmación no menciona para nada la posible dificultad de escribir el programa o del tiempo que pueda emplear en realizar el cálculo (cualquier cálculo que pueda hacer un ordenador puede teóricamente efectuarse con papel y lápiz). 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.
Maquinas de Turing Compuesta.
Almacenamiento en el control finito Se dota al control finito de una memoria finita capaz de almacenar información limitada.
(a) Almacenamiento de una tupla de k estados
(b) Almacenamiento de una tupla de k símbolos
(c) Almacenamiento de otra información. Último movimiento aplicado, primer símbolo de la cadena de entrada, etc
Pistas múltiples (multipistas) La cinta almacena en cada celda un vector k dimensional de símbolos a los que se accede simultáneamente.
Subrutinas:
Una subrutina es un subconjunto de movimientos de la función δ que se puede utilizar igual que en algunos lenguajes de programación.
Paso de control
Se utiliza almacenamiento en el control finito [qact, qin, qfin] Paso de variables
Se utiliza almacenamiento en control finito o bien multipistas Recursividad
Una subrutina puede llamarse a sí misma La pila de recursividad puede habilitarse en una pista
Extensión del modelo de la máquina de Touring básica
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 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 máquina de Turing, unos dispositivos formales y simples. Turing demostró que dicha máquina era capaz de resolver 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 Churchrespecto 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
Máquina de Turing como aceptadores de lenguaje Teoremas sobre las máquinas de Turing
1. Lenguaje Recursivamente Enumerable Recordemos que llamamos lenguaje Recursivamente Enumerable (RE) a los lenguajes que pueden ser aceptados por una Máquina de Turing. Teorema 1
Todo lenguaje aceptado por una Máquina de Turing de varias cintas es Recursivamente Enumerable. Teorema 2
Sea L = L(M) el lenguaje que acepta una máquina de Turing no determinista M, entonces existe una máquina de Turing deterministaN que acepta dicho lenguaje, es decir, L(M) =L (N).
Lenguajes de máquinas de Turing y de Autómatas Teorema 3
Sea L el lenguaje aceptado por una máquina de Turing, entonces existe algún Autómata de dos pilas que acepta L. Teorema 4
Todo lenguaje Recursivamente Enumerable es aceptado por alguna máquina de tres contadores. Teorema 5
Todo lenguaje Recursivamente Enumerable es aceptado por alguna máquina de dos contadores.
Lenguajes aceptados por una maquina Turing Aceptan lenguajes formales que pueden ser generados por una gramática de tipo 0: recursivamente innumerable. Las máquinas de Turing son los reconocedores de lenguaje más poderosos que existen. Lenguajes regulares: las gramáticas (de tipo 3) formales definen un lenguaje describiendo como se pueden generar las cadenas del lenguaje… Las gramáticas regulares (aquellos
reconocidos por un autómata finito). Son las gramáticas más restrictivas. El lado derecho de una producción debe contener un símbolo Terminal y como máximo un símbolo no Terminal.
De acuerdo a la clasificación de los lenguajes formales realizada por el norteamericano Avram Chomsky, la Máquina de Turing acepta los lenguajes más generales, o tipo cero (0), también llamados lenguajes recursivamente enumerables.
Un lenguaje recursivamente enumerable es un lenguaje formal para el cual existe una máquina de Turing que acepta y se detiene con cualquier cadena del lenguaje, pero que puede parar y rechazar, o bien iterar indefinidamente, con una cadena que no pertenece al lenguaje. Todos los lenguajes, regulares, independientes de contexto, dependientes de contexto y recursivos son recursivamente enumerables. Una cadena ω∈ A^*, es aceptada por una MT, si comienza en el estado e0, con la cabeza de lectura/escritura en el símbolo más a la izquierda, luego de leer toda la cadena ω, llega a un estado e_f ∈F. El lenguaje aceptado por MT, es el conjunto de todas las cadenas que son aceptadas por MT: L(MT)={ω / e_0 ω ⊢*α_1 e_f α_2 y e_f ∈F y α_1,α_1 ∈C^* y ω ∈ A^* } Tenemos por ejemplo una MT que reconoce el lenguaje {0^n 1^n:n≥1}. Las transiciones de la máquina se representan como sigue:
Se evalúa la cadena w = 1100, arrojando el siguiente resultado:
Otras cadenas también aceptadas por esta MT son 11110000, 10, 11111110000000.
Tipos de Máquina de Turing Existen varios tipos de Máquinas de Turing, (Jurado Málaga Elena, 2008) todas caracterizadas por tener un comportamiento similar, entre ellas están:
Máquina de Turing con cinta infinita a ambos lados
Esta modificación de denota al igual que una Máquina de Turing sencilla, lo que la hace diferente es que la cinta es infinita tanto por la derecha como por la izquierda.
Máquina de Turing con Cinta Multiplista
Es aquella mediante la cual cada celda de la cinta de una maquina sencilla se divide en subceldas. Cada celda es capaz de contener carios símbolos de la cinta. Se dice que la cinta tiene múltiples pistas porque cada celda de esta Máquina de Turing contiene múltiples caracteres, el contenido de las celdas de la cinta puede ser representado mediante n-tuplas ordenadas. Los movimientos que realice esta máquina dependerán de su estado actual y de la n-tupla que represente el contenido de la celda actual. Debe mencionar que posee un solo cabezal al igual que una Máquina de Turing sencilla.
Máquina de Turing Multicinta
Las Máquinas de Turing con más de una cinta consisten en un control finito con k cabezales lectores/escritores y k cintas. Cada cinta es finita en ambos sentidos. La Máquina de Turing Multicinta define su movimiento dependiendo del símbolo que está leyendo cada uno de sus cabezales, las reglas de sustitución para cada uno de los símbolos y dirección de movimiento para cada uno de los cabezales. Inicialmente empieza con la entrada en la primera cinta y el resto de las cintas en blanco.
Máquinas de Turing Multidimensional
Una Máquina de Turing multidimensional es aquella cuya cinta se extiende infinitamente en más de una dirección, ejemplo más básico sería el de una maquina bidimensional cuya cinta se extendería infinitamente hacia arriba, abajo, izquierda o derecha.
Máquinas de Turing No Deterministas
Es una Máquina de Turing en la que pueden existir varias transiciones a partir del mismo estado y lectura del cabezal. Esto significa que dado un estado y un símbolo de entrada, es posible elegir la transición a efectuar entre varias operaciones. Una Máquina de Turing No Determinista se puede modelar como una Máquina de Turing con una entrada adicional que permite seleccionar la transición a efectuar entre las varias posibilidades a cada paso. Se pueden reescribir las transiciones añadiendo nuevos estados de manera que en cada caso la elección se efectué solo entre dos opciones, con lo que el selector podría ser una señal de un bit. 37 Todo lenguaje aceptado por una Máquina de Turing No Determinista puede ser aceptado por una Maquina de Turing Determinista.
Máquina de Turing Universal
Es una Máquina de Turing capaz de simular el comportamiento de cualquier Maquina de Turing sobre cualquier cadena de entrada. Para poder construir una Máquina de Turing Universal es necesario definir una codificación de las Máquinas de Turing, de manera que se pueda controlar a la maquina por medio de su código.
Modificaciones de la maquina de Turing Una razón para aceptar a la máquina de Turing como un modelo general de computo es que el modelo con el que hemos estado trabajando hasta ahora es equivalente a muchas versiones modificadas que en principio parecieran incrementar el poder computacional.
La máquina de Turing sencilla
, sitúa la cabeza de lectura/ escritura sobre el primero
que haya a la izquierda de la posición actual. Para hacerlo, buscamos fuera de la celda actual y retrocedemos. Esto es debido a nuestra definición que requiere que por cada transición se mueva la cabeza de la cinta.
Una máquina de Turing, para la cual esté definida
Múltiples pistas
Otra modificación sencilla de nuestra máquina de Turing básica es aquella mediante la cual cada celda de la cinta se divide en subceldas. Cada subcelda es capaz de contener un símbolo de la cinta. La cinta tiene cada celda subdividida en tres subceldas. Se dice que esta cinta tiene múltiples pistas. Puesto que cada celda de esta máquina de Turing contiene múltiples caracteres, el contenido de las celdas de la cinta puede ser representado mediante n-uplas ordenadas. Por ejemplo, queremos construir una máquina de Turing que sume dos números binarios. Para ello, podemos construir una máquina de Turing de tres pistas. Se supone que la entrada serán dos números binarios que ocupen las dos pista superiores de la cinta. Suponemos que sus dígitos se alinean por la derecha, que sus representaciones binarias son de la misma longitud (lo que se puede conseguir rellenándolas con tantos ceros como sea necesario) y que la cabeza de lectura/escritura se sitúa sobre la celda del extremo izquierdo de la cadena. Por tanto, si tuviésemos que sumar 101 y 10, la cinta debería contener:
La máquina de Turing realizará la suma en la tercera pista. Por tanto, el alfabeto de cinta estará formado por las ternas:
Una máquina de Turing con una cinta finita en un sentido puedo simular una máquina de Turing con la cinta infinita en los dos sentidos pero con dos pistas. Sea M una máquina de Turing con una cinta infinita en los dos sentidos. La máquina de Turing M ', que tiene una cinta infinita en un sentido, puedo simular a M si tiene una cinta con dos pistas. La cinta superior contiene la in información correspondiente a la parte derecha de la cinta de M', a partir de un p le referencia dado.
Multicinta
Una modificación que es más complicada, es la máquina de Turing multicinta. Esta máquina de Turing tiene varias cintas, cada una de las cuales tiene su propia cabeza de lectura/escritura. Las cabezas de lectura/ escritura se controlan independientemente (es decir, al mismo tiempo, no tienen que moverse en la misma dirección, ni realizar el mismo número de movimientos, ni incluso, hacer nada a la vez). En un sólo movimiento, esta máquina de Turing:
a) Cambia de estado dependiendo del estado actual y del contenido de las celdas de todas las cintas, que están analizando actualmente las cabezas de lectura/escritura.
b) Escribe un nuevo símbolo en cada una de las celdas barridas por sus cabezas de lectura/escritura.
c) Mueve cada una de sus cabezas hacia la izquierda o hacía la derecha (de forma independiente al resto de las cabezas). Inicialmente, la entrada aparece en la primera cinta, y las otras cintas están en blanco. Por tanto, la función de transición para una máquina de Turing con n cintas, es de la forma: Aunque una máquina de Turing multicinta parece bastante distinta y posiblemente más potente que nuestra máquina de Turing definida originalmente, las dos son equivalentes en el sentido de que cada una de ellas puede ser simulada por la otra. Ejemplo: El lenguaje L = {ww R | w ∈ (0 + 1) ∗} lo reconoce una MT de una sola cinta, moviendo la cabeza de la cinta hacia atrás y adelante, checando símbolos en ambos extremos y comparándolos. Para reconocer a L con una MT con dos cintas, la entrada se copia a la segunda cinta. La entrada en la primera cinta se compara con el de la otra cinta al revés moviendo las cabezas en direcciones opuestas, se verifica la longitud de la entrada para asegurarse que sea par.
Máquina de Turing multidimensional Una máquina de Turing multidimensional fácilmente es similar a la maquina estándar. Simplemente realiza todas sus computaciones en una única dimensión. Para simular una máquina de Turing de dos dimensiones mediante una máquina de Turing estándar, primero asociaremos una dirección a todas las celdas de la cinta. Una forma de hacerlo es fijar, de forma arbitraria, un lugar en la cinta a partir del cual se asignarán las coordenadas a las celdas de la misma forma que se realiza en el plano de coordenadas.
Una cinta de dos dimensiones que se extienda hacia abajo y hacia arriba, al igual que hacia la derecha y hacia la izquierda. Dependiendo del estado actual de la máquina de Turing y del símbolo analizado, cambia de estado, escribe un símbolo en la celda actual y se mueve a la izquierda, a la derecha, hacia arriba o hacia abajo. En cualquier momento, solo un numero finito de renglones en cualquier dimensión contienen símbolos no blancos, y cada uno de estos renglones tienen solo un numero finito de símbolos no blancos. Por tanto, la función de transición para esta máquina de Turing será de la forma
Cinta infinita de doble vía
Se denota por M = (Q, Σ, Γ, δ, q0, B, F), la cinta es infinita tanto hacia la izquierda como hacia
la derecha. Denotamos una DI de tal dispositivo de la misma manera que en la MT con cinta semi-infinita. Existe bloques infinitos de celdas tanto a la derecha como a la izquierda de la porción no blanca en la cinta. La primera máquina marca la celda a la izquierda de la posición inicial de la cabeza y luego simula la segunda máquina. Si durante la simulación se alcanza la celda marcada, entonces termina la simulación sin aceptar la entrada.
Tesis de Church-Turing La Tesis de Church-Turing es una formulación hipotética de la equivalencia entre los conceptos de función computable y máquina de Turing, que si se expresa en lenguaje corriente, sería “todo algoritmo es equivalente a una máquina de Turing”. El concepto inicial de la máquina de Turing, misma que no existe físicamente, sino como descripción formal, se tienen los siguientes modos: •Máquinas de Turing con más de una cinta •Máquinas de Turing con contas n -dimensionales •Máquinas de Turing con un número limitado de estados y símbolos •Máquinas de Turing probabilistas •Máquinas de Turing no deterministas Los lenguajes formales aceptados por una máquina de Turing son los que se pueden generar por una gramática formal . Entre los lenguajes formales aceptados por una máquina de Turing existen: •Autómatas finitos con dos pilas •Autómatas finitos con dos contadores •La gramática formal •El sistema Post •El cálculo Lambda •Funciones recursivas parciales •Autómatas celulares, como el juego de la vida de Conway •Computadoras cuánticas Los tres últimos ejemplos funcionan con una definición un poco distinta de aceptación de lenguaje, ya que aceptan una cadena si existe un solo cómputo que la acepta o la mayoría la acepta, entonces es equivalente a la máquina de Turing. Aunque se asume como cier ta, la tesis de Church-Turing no puede ser probada debido a que no se poseen los medios necesarios, por ello es una tesis. Debido a que “procedimiento efectivo” y“algoritmo” no son conceptos dentro de ninguna teoría matemática y no son definibles fácilmente. Esta tesis ha ganado gran éxito porque la mayoría la considera como verdadera. Los términos que se derivan de ella como método efectivo y computable son comúnmente utilizados, en realidad, computable se refiere a Turing-Computable, en el salto entre uno y otro se encuentra la tesis de Church.
Simulación de Autómatas por medio de la Maquina de Turing: Simulación de Autómatas, Simulación de Autómatas con Pila.
Simulación de máquinas de Turing Será la definición del diagrama de transiciones. Las opciones de dibujo son idénticas. Y lo mismo las operaciones que podemos llevar a cabo una vez tenemos el diagrama de transiciones definidos. Una diferencia importante es, sin embargo, la posibilidad de elegir distintos tipo de máquinas de Turing. El modelo básico se complementa con otros, fruto de restringir o aumentar las capacidades del modelo básico. Autómata Simulador: Permite el diseño y simulación de autómatas finitos, autómatas de pila y máquinas de Turing. Como en otras, su punto débil es la facilidad de uso. Integra la simulación de autómatas finitos, autómatas de pila y tanto máquinas de Turing convencionales como multicinta. Simulación de autómatas de pila El primer paso, cuando trabajamos con los autómatas de pila, es definir su funcionamiento mediante la definición de su diagrama de transiciones, que podemos editar con las herramientas de dibujo. Podemos insertar estados y conectarlos mediante transiciones. Cada vez que realizamos la conexión de un par de estados se nos pregunta por el símbolo que deberá leerse de la entrada, el símbolo que deberá estar presente en el tope de pila, y la secuencia de símbolos que debe apilarse a continuación (estos se apilarán de izquierda a derecha, es decir al final, el último símbolo de la secuencia, será el símbolo de tope de pila).
Podemos simular su funcionamiento, observando paso a paso, como se van modificando el estado actual, la entrada por leer y los contenidos de la pila. Cuando hacemos esto, podemos avanzar o retroceder en el proceso. O seleccionar las configuraciones a las que llegamos para mostrar una traza que nos muestra toda la secuencia de configuraciones que nos ha permitido llegar a la seleccionada. Esto es especialmente útil en presencia de situaciones de indeterminismo, en las que podemos tener más de una posible configuración actual.
Conclusiones Una Máquina de Turing, o MT, se considerar una cinta infinita dividida en casillas, cada una de las cuales contiene un símbolo, y sobre la cual actúa un dispositivo que puede adoptar diversos estados, y que lee un símbolo de la casilla sobre la que está situado. En función de dicho símbolo y del estado actual, se pueden realizar tres acciones siguientes: pasa a un nuevo estado, imprime un símbolo en lugar del que acaba de leer y se desplaza a una posición hacia la izquierda, derecha, o se detiene.
• Existen diversas clasificaciones de las Máquinas de Turing, atendiendo a los estados
reconocidos, tipo de cinta, cantidad o división de dichas cintas: MT con directiva de permanecer, MT con cinta infinita en una dirección, MT en dos direcciones, MT multicinta, MT Multidimensional, MT No determinista. • Las MT, de acuerdo a la clasificación de los lenguajes formales de Chomsky, acepta los
lenguajes tipo cero (0), llamados lenguajes recursivamente enumerables. • La creación modular de una maquina de Turing perm ite desarrollar máquinas complejas
a partir de bloques elementales, mediante diagramas de transiciones. La construcción de máquinas de Turing se lleva a cabo mediante dichos diagramas de transición, y sus combinaciones. • Las MT han sido aplicadas en el d esarrollo de la teoría computacional y en las llamadas
máquinas oráculo, generadores de funciones, calculadoras de funciones, y generadores de lenguaje.