Presentación de los temas Automata de Pila No Deterministas y Maquina de Turing No Deterministas
Universidad Iberoamericana
Lenguajes Formales y Teorias de Automatas
Estudiantes:
Luis R. Sánchez 15-0589
Pedro Román Infante 15-0298
3. ¿Qué es un Autómata de Pila?
Brena, R. (2003). Autómatas y Lenguajes (ed., Vol., pp.). Monterrey, México
4. Autómata de Pila
La pila funciona de manera que el
ultimo carácter que se almacena en
ella es el primero en salir (“LIFO” por
las siglas en ingles), como si
empiláramos platos uno encima de
otro, y naturalmente el primero que
quitaremos es el último que hemos
colocado.
q
S
Brena, R. (2003). Autómatas y Lenguajes (ed., Vol., pp.). Monterrey, México
5. Autómata de Pilaun
Al igual que los AF, los AP tienen estados finales, que permiten
distinguir cuando una palabra de entrada es aceptada. De hecho,
para que una palabra de entrada sea aceptada en un AP se deben
cumplir todas las condiciones siguientes:
1. La palabra de entrada se debe haber agotado (consumido
totalmente).
2. El AP se debe encontrar en un estado final.
3. La pila debe estar vacía.
Brena, R. (2003). Autómatas y Lenguajes (ed., Vol., pp.). Monterrey, México
6. Al iniciar la operación de un Autómata de Pila, la pila se encuentra
vacía. Durante la operación del AP, la pila puede ir recibiendo (y
almacenando) caracteres, según lo indiquen las transiciones
ejecutadas. Al final de su operación, para aceptar una palabra, la
pila debe estar nuevamente vacía.
Brena, R. (2003). Autómatas y Lenguajes (ed., Vol., pp.). Monterrey, México
7. Ahora describiremos el funcionamiento de los AP. Si tenemos una
transición de la forma ((p, u, β), (q, γ)) ∈ ∆, el AP hace lo siguiente:
Estando en el estado p, consume u de la entrada;
Saca β de la pila;
Llega a un estado q;
Mete γ en la pila
Brena, R. (2003). Autómatas y Lenguajes (ed., Vol., pp.). Monterrey, México
B
8. Puede verse que las transiciones se definen
como una relación, no como una función, por lo
que de entrada se les formaliza como autómatas
no deterministas.
Brena, R. (2003). Autómatas y Lenguajes (ed., Vol., pp.). Monterrey, México
9. ¿Cuando los AP son Deterministas?
Para calificar a un autómata con pila como
determinista deben darse dos circunstancias:
• En primer lugar que en la definición de
cada componente de la función de
transición existan un único elemento lo que
da la naturaleza determinista
• Segundo, en los AP deterministas no debe
existir transición posible con lectura de
símbolo si puede hacerse sin ella, ni al
contrario.
Brena, R. (2003). Autómatas y Lenguajes (ed., Vol., pp.). Monterrey, México
10. A la hora de diseñar un AP tenemos que
repartir lo que requiere ser “recordado”
entre los estados y la pila. Distintos diseños
para un mismo problema pueden tomar
decisiones diferentes en cuanto a que
recuerda cada cual.
Autómata de Pila
Brena, R. (2003). Autómatas y Lenguajes (ed., Vol., pp.). Monterrey, México
11. Ejemplo - Diseñar un AP que acepte exactamente el lenguaje
con palabras de la forma 𝑎 𝑛 𝑏 𝑛, para cualquier numero natural n. Una idea que surge
inmediatamente es la de utilizar la pila como “contador” para recordar la cantidad de a’s
que se consumen, y luego confrontar con la cantidad de b’s. Una primera versión de este
diseño utiliza un solo estado q, con transiciones a/ε/a y b/a/ε de q a sı mismo, como en la
figura 5.2(a).
Brena, R. (2003). Autómatas y Lenguajes (ed., Vol., pp.). Monterrey, México
12. Para verificar el funcionamiento del autómata, podemos simular
su ejecución, listando las situaciones sucesivas en que se
encuentra, mediante una tabla que llamaremos “traza de
ejecución”. Las columnas de una traza de ejecución para un AP
son: el estado en que se encuentra el autómata, lo que falta por
leer de la palabra de entrada, y el contenido de la pila.
Por ejemplo, la traza de
ejecución del AP del
´ultimo ejemplo, para la
palabra aabb, se
muestra a continuación:
Brena, R. (2003). Autómatas y Lenguajes (ed., Vol., pp.). Monterrey, México
13. Tomar en Cuenta…
Conviene en este punto recordar que en un
autómata no determinista una palabra es aceptada
cuando existe un calculo que permite aceptarla,
independientemente de que un calculo en particular
se vaya por un camino erróneo.
Lo importante es, pues, que exista un calculo que
acepte la palabra en cuestión.
Brena, R. (2003). Autómatas y Lenguajes (ed., Vol., pp.). Monterrey, México
14. EJERCICIOS
L = { anbn | n ≥ 0}
L = { anb2n | n > 0}
L = { a2nbn | n ≥ 0}
L = { a2nbn | n > 0}
Chocolates a Participantes:
Diseñar un Autómata a Pila para los siguientes lenguajes:
16. Maquina de Turing
La maquina de Turing (abreviado MT) 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 es de longitud infinita
hacia la derecha, hacia donde se extiende
indefinidamente, llenándose los espacios con el
carácter blanco (que representaremos con “t”).
La cinta no es infinita hacia la izquierda, por lo que
hay un cuadro de la cinta que es el extremo
izquierdo, como en la figura.
Brena, R. (2003). Autómatas y Lenguajes (ed., Vol., pp.). Monterrey, México
17. Operación de la Maquina de Turing
La operación de la MT consta de los siguientes pasos:
1. Lee un carácter en la cinta
2. Efectúa una transición de estado
3. Realiza una acción en la cinta
Las acciones que puede ejecutar en la cinta la MT pueden ser:
Escribe un símbolo en la cinta, o Mueve la cabeza a la izquierda
o a la derecha Estas dos acciones son excluyentes, es decir, se
hace una o la otra, pero no ambas a la vez.
Brena, R. (2003). Autómatas y Lenguajes (ed., Vol., pp.). Monterrey, México
18. Funcionamiento de una MT
La palabra de entrada en la MT está
escrita inicialmente en la cinta, como
es habitual en nuestros autómatas,
pero iniciando a partir de la segunda
posición de la cinta, siendo el primer
cuadro un carácter blanco. Como la
cinta es infinita, inicialmente toda la
parte de la cinta a la derecha de la
palabra de entrada está llena del
carácter blanco (t).
Por definición, al iniciar la operación de
la MT, la cabeza lectora está
posicionada en el carácter blanco a la
izquierda de la palabra de entrada, el
cual es el cuadro más a la izquierda 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.
12
Brena, R. (2003). Autómatas y Lenguajes (ed., Vol., pp.). Monterrey, México
20. Ha habido diversos intentos de
encontrar otros modelos de maquinas u
otros formalismos que sean mas
poderosos que las MT, en el mismo
sentido que las MT son mas poderosas
que los AF y los AP. (Decimos que una
tipo de maquina MA es mas poderoso
que un tipo MB cuando el conjunto de
lenguajes aceptados por alguna
maquina en MB es un subconjunto
propio de los aceptados por MA).
Por ejemplo, independientemente de
Turing, Emil Post propuso aun otro
modelo de maquina abstracta, basada
en la idea de un diagrama de flujo.
También se han tratado de hacer
“extensiones” a la MT, para
hacerla mas poderosa. Por
ejemplo, se propusieron MT no
deterministas. Sin embargo, todos
los intentos han sido infructuosos
al encontrarse que dichas
extensiones son equivalentes en
poder de calculo a la MT original
21. MT No Deterministas
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.
Brena, R. (2003). Autómatas y Lenguajes (ed., Vol., pp.). Monterrey, México
22. ¿Cómo sabe una máquina no determinista qué
acción tomar de las varias posibles?
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
finalmente 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.
Brena, R. (2003). Autómatas y Lenguajes (ed., Vol., pp.). Monterrey, México
23. 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.
Mientras que una máquina determinista sigue un
único "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.
24. EJERCICIOS
Diseñar una Máquina de Turing que calcule el complemento a 1 de un número binario. (Es decir, que
sustituya los 0’s por 1’s y los 1’s por 0’s).
Construir una máquina que verifique si el numero de 0s en una palabra es par:
Chocolates a Participantes: