Está en la página 1de 10

Lenguajes Formales

y Autómatas
TRANSFORMAR UNA MAQUINA DE TURING
EN UN AUTOMATA PUSH DOWN DE DOBLE
PILA.

TRABAJO DE INVESTIGACIÓN POR:


FRANCISCA JACOBO MARÍN
SAUSEDO ZARATE MARIANA
GRUPO: 7
Introducción:
El objetivo de esta investigación es primeramente definir de forma breve y simplificada que es un autómata de
doble pila, así como una Máquina de Turing. Para poder dar paso a la pregunta principal del trabajo que es
dada una máquina de Turing donde la máquina de Turing tiene un conjunto de estados, como podríamos
transformar una máquina de Turing en un autómata Push Down de doble pila.

Teoría de autómatas.
 Estudio de dispositivos o máquinas de cómputo abstractas.

 Turing en los 30’s estudió una máquina abstracta con las


capacidades de las de hoy (en lo que podían calcular).

 La meta de Turing era describir la frontera entre lo que una


máquina podía hacer y lo que no, su conclusión aplica no solo a las
máquinas de Turing, sino a las máquinas actuales.
 En los 40’s y 50’s se estudiaron los Autómatas Finitos.

 Finales de los 50’s, N. Chomsky inicia el estudio formal de las


gramáticas.

 En 1969 S. Cook extiende el trabajo de Turing para estudiar lo que


se podía y no calcular (compute), y lo que se podía resolver
eficientemente o no (NP-duros).

Los autómatas son sistemas que reciben


información, la transforman y producen
otra información que se transmite al
entorno.

Definido esto y conociendo un poco más allá de la línea de tiempo de la Teoría de autómatas y una
descripción general de que es un “autómata”, podemos ahora si pasar a la siguiente pregunta que es
un autómata de doble pila, como funciona, etc.
Autómata
Push Down
de
Doble
pila
Las gramáticas libres de contexto tienen un tipo de autómata que las define llamado
Push Down autómata.
Un Push Down autómata (PDA) es básicamente un ϵ -NFA con un stack, en donde se puede
almacenar una cadena y por lo tanto se puede recordar información. Sin embargo, sólo
puede acceder a esta información en forma LIFO por lo que existen lenguajes
reconocidos por una computadora, pero no por un PDA, por ejemplo: {0 n1 n2 n |n ≥ 1}.

 Backer define los autómatas con dos pilas (2-Stack


autómata) como una extensión de los autómatas de
pila en la que se permite hacer las siguientes
operaciones:

 Leer un terminal de la cadena de entrada.


 Apilar un símbolo de pila en la primera pila.
 Eliminar de la primera pila el símbolo situado en su cima.
 Apilar un símbolo en la segunda pila.
 Situar en la cima de cada pila un símbolo especial denominado
separador.
 Eliminar de la cima de las dos pilas el símbolo separador.
 En el caso de que en la cima de primera pila se encuentre un
separador, eliminar de la segunda pila el símbolo situado en su
cima.

Así con cada símbolo que va leyendo el


autómata puede hacer 2 acciones:

 Moverse a otro estado.


 También si lo necesita afecta
(push, pull) la pila.
DEFINICIÓN FORMAL DE UN APD DE DOS PILAS.
Donde q, q’ ∈ Q, a ∈  V T ∪ {∈}, Z1 , Z3 ∈ V S , Z2 ∈ V S U {∈ } , α1, α2 ∈ V S∗¿ ∪ V S [V S∗¿ cumpliéndose además que
α 1incluye un separador si y sólo si α 2 también lo incluye, y α 3∈ V S∗¿¿ . El primer tipo de transiciones permite apilar
elementos en la primera y/o segunda pila y extraer elementos de la primera pila. Las transiciones del segundo
tipo permiten extraer símbolos de la segunda pila si y sólo si la cima de la primera pila está ocupada por un
separador. El tercer tipo de transiciones permite eliminar los separadores de la cima de ambas pilas.

Hasta ahora sabemos que un autómata de dos pilas, no es


necesariamente más poderoso ya que la memoria siempre será
infinita , al agregarle una pila más lo único que nos permite hacer
esta 2da pila es recordar información que en la de una pila no
podíamos, entendiendo esto es necesario ahora conocer algunos
datos importantes de la Máquina de Turing.
Máquina
de
Turing
En 1936, A. Turing público su máquina de Turing como un modelo para cualquier tipo de computación (aunque
todavía no existían las computadoras). La hipótesis de Church o la tesis de Church-Turing dice que lo que las
máquinas de Turing (y para tal caso las computadoras modernas) pueden computar son las funciones
recursivamente enumerables.

Una máquina de Turing consiste de un


control finito que puede estar en
cualquier estado de un conjunto finito
de estados.

Una máquina universal de Turing consta de los siguientes elementos:


 Primero, una cinta tan larga como se necesite, dividida en casillas, que será la memoria y en la
que podemos escribir símbolos (por ejemplos 0´s y 1´s).
 Segundo, una cabeza capaz de moverse por la cinta de izquierda a derecha, que también puede
leer y escribir símbolos en esa celda. Estas dos acciones son excluyentes, es decir, se hace una o
la otra, pero no ambas a la vez.
 Finalmente, un programa que le diga a la cabeza que hacer, el programa puede estar escrito en
la cinta, por ejemplo, codificado con ceros y unos.
Formalmente, una máquina de Turing es una
séptupla: M= (Q, Σ, Γ, δ, q0, B, F), donde:
 Q: es un conjunto finito de estados.
 Σ: es un conjunto finito de símbolos de
entrada.
 Γ: es el conjunto de símbolos de la cinta. Σ
es siempre un subconjunto de Γ.  q0: es el estado inicial.
 δ: la función de transición δ (q, X) = (p, Y,  B: es el símbolo de vacío, que está
D), donde p es el siguiente estado en Q, Y en Γ pero no en Σ.
es el símbolo en Γ que se escribe en la  F: es el conjunto de estados finales o
celda que está viendo la cabeza de la cinta
de aceptación.
y D es la dirección (izq. o der.).
La máquina de Turing tiene, como los autómatas que hemos
visto antes un control finito, una cabeza lectora y una cinta
donde puede haber caracteres, y donde eventualmente viene
la palabra de entrada. La cinta no es infinita hacia la
izquierda, por lo que hay un cuadro de la cinta que es
extremo izquierdo.
Como la cabeza en la MT es de lectura y escritura, la cinta
puede ser modificada en curso de ejecución. Además, en la
MT la cabeza se mueve bidireccionalmente (izquierda y
derecha), por lo que puede pasar repetidas veces sobre un
mismo segmento de la cinta.

Decimos que en la MT se llega al “final de un cálculo” cuando se alcanza un estado especial llamado halt en el control
finito, como resultado de una transición. Representaremos al halt por “h”. Al llegar al halt, se detiene la operación de
la MT, y se acepta la palabra de entrada. Así, en la MT no hay estados finales. En cierto sentido el halt sería entonces
el único estado final, sólo que además detiene la ejecución. Cuando queremos que una palabra no sea aceptada,
desde luego debemos evitar que la MT llegue al halt. Podemos asegurarnos de ello haciendo que la MT caiga en un
ciclo infinito.
¿CÓMO
TRANSFORM
AR UNA
En primer lugar, sabemos que la clase de lenguajes aceptados por una Máquina de Turing no es
sensible al contexto, sino que es recursivamente enumerable.

Ahora si asumimos que un APD de dos pilas es tan poderoso como una MT. Es un poco simple
asumirlo pues sabemos que en ambas la cinta es infinita pero solo hacia la izquierda ya que
tanto la MT como el APDD tienen un tope a la derecha.

Para ver la equivalencia, simplemente piense en la primera pila como el contenido de la cinta a
la izquierda de la posición actual y la segunda como el contenido a la derecha. Empiezas así:

 Empuje los marcadores normales de "parte inferior de la pila" en ambas pilas.


 Empuje la entrada a la pila de la izquierda (use el no determinismo para "adivinar" el
final de la entrada).
 Mueva todo a la pila correcta (para mantener las cosas en el orden correcto).

Ahora puede ignorar la entrada y hacer todo en el contenido de las pilas (que simula la
cinta). Aparece para leer y presiona para escribir (para que pueda cambiar la "cinta"
presionando algo diferente a lo que lee). Luego, podemos simular la MT saliendo de la pila de
la derecha y presionando hacia la izquierda para movernos hacia la derecha y viceversa para
movernos hacia la izquierda. Si tocamos la parte inferior de la pila de la izquierda, nos
comportamos en consecuencia (detener y rechazar, o permanecer donde usted, según el
modelo), si tocamos la parte inferior de la pila de la derecha, simplemente empujamos un
símbolo en blanco a la izquierda.

https://cs.stackexchange.com/questions/3154/how-to-show-two-models-of-computation-are-equivalent/3162#3162

También podría gustarte