SlideShare una empresa de Scribd logo
1 de 26
Descargar para leer sin conexión
Universidad Iberoamericana (Unibe)

DESCRIPCIÓN BREVE
Autómatas Push-Down es una máquina con un número
finito de estados, una cinta de entrada y una Pila.

PUSH-DOWN
AUTÓMATA

Anyela Báez 13-1005 - Leslei García 13-0991
PROFESORA:
DRA. ING. RINA FAMILIA
Anyela Báez 13-1005
Leslei García 13-0991
Artículo Push-Down Autómata
Materia: Lenguajes Formales y Teoría de Autómatas
PROFESORA:
DRA. ING. RINA FAMILIA

Santo Domingo Rep., Dom.
24 de Febrero 2014
pág. 2
Índice
Resumen.…………………………………………………………………………………………4
Introducción………………………………………………………………………………………5
Historia y aplicaciones…………………………………………………………………………...7
Teoría……………………………………………………………………………………………..7
Definición………………………………………………………………………………………...7

Ejemplo de un autómata de pila…………………………………………………………8
Un autómata Push-Down (APD) es una colección de 8 cosas…………………………10
Aceptores Push-Down. Definiciones……………………………………………..……11
Autómatas de Pila y lenguajes libres de contexto……………………………………...12
Clasificación de Autómatas Push-Down……………………………………………………..12
El funcionamiento típico de un autómata Push-down………………………………….14
Descripción……………………………………………………………………………..14
Aplicación de un Autómata Push-down………………………...……………………...16
Aceptores Push-Down Propios…………………………………………………………18
Autómatas de pila………………………………………………………………………20
Representación gráfica de un AP……………………………………………………….20
Conclusión……………………………………………………………………………...24
Glosario………………………………………………………………………………...25
Referencias……………………………………………………………………………..26

pág. 3
Resumen
Autómatas Push-Down es una máquina con un número finito de estados, una
cinta de entrada y una Pila. El autómata lee cadenas de símbolos de longitud finita de la
cinta de entrada que es infinita. El comportamiento de la máquina está determinado por
el estado en que se encuentra, el símbolo o símbolos en el tope de la Pila y el o los
símbolos en la cinta de entrada. Para cada estado y dependiendo del tope de la Pila, al
leer uno o varios símbolos de la cinta de entrada cambia de estado, empila o despila de
la Pila y avanza en la cinta de entrada.
Estas máquinas también pueden usarse para reconocer lenguajes, es decir, para
leer cadenas y determinar si pertenecen o no a un lenguaje dado. También sirven para
describir el comportamiento de ciertas máquinas.
Dependiendo de lo que lee, del tope de la Pila y del estado en el que se
encuentra, cambia de estado avanza en la cinta de entrada, despila lo que reconoció en
la Pila y empila símbolos en la Pila de acuerdo con la relación de transición de estados.

pág. 4
Introducción

La Introducción a la Informática Teórica, también conocido como TALF (Teoría
de Autómatas y Lenguajes Formales), trata principalmente sobre las capacidades de
cualquier máquina que sea capaz de calcular o computar (incluida entre estas máquinas,
están los computadores... porque computan). Por una parte, están los problemas de
cesibilidad, los cuales nos permiten decidir cuándo un computador (o una máquina que
computar) es capaz de resolver un problema dado.
Cuando se habla de autómata, se hace referencia a máquinas (abstractas o no)
que sean capaces de computar. De igual manera que los lenguajes regulares se pueden
representar mediante autómatas finitos deterministas, los lenguajes independientes del
contexto tienen su correspondencia en otro tipo de dispositivo: el Autómata de Pila
(AP). Push-Down.
Un autómata de pila es un dispositivo que tiene acceso a:
• Una secuencia de símbolos de entrada, que en general se representa por una
cinta que se desplaza frente a un mecanismo de captación de dichos símbolos.
• El símbolo superior de una memoria en pila (LIFO) Un autómata a pila se
encuentra en cada momento en un estado determinado y el estado siguiente depende de
los tres elementos siguientes:
• Estado actual
• Símbolo de entrada
• Símbolo superior de la pila
Generalmente, el autómata a pila es no determinista en el sentido de que se
permite que haya varias acciones posibles en cada momento.
Los autómatas de pila, en forma similar a como se usan los autómatas finitos,
también se pueden utilizar para aceptar cadenas de un lenguaje definido sobre un
alfabeto A. Los autómatas de pila pueden aceptar lenguajes que no pueden aceptar los
autómatas finitos. Un autómata de pila cuenta con una cinta de entrada y un mecanismo
de control que puede encontrarse en uno de entre un número finito de estados. Uno de
estos estados se designa como estado inicial, y además algunos estados se llaman de
aceptación o finales. A diferencia de los autómatas finitos, los autómatas de pila cuentan
Con una memoria auxiliar llamada pila. Los símbolos (llamados símbolos de
pila) pueden ser insertados o extraídos de la pila, de acuerdo con el manejo last-infirstout (LIFO). Las transiciones entre los estados que ejecutan los autómatas de pila
pág. 5
dependen de los símbolos de entrada y de los símbolos de la pila. El autómata acepta
una cadena x si la secuencia de transiciones, comenzando en estado inicial y con pila
vacía, conduce a un estado final, después de leer toda la cadena x.

pág. 6
Historia y aplicaciones
EPDAs fueron descritos por primera vez por K. Vijay-Shanker en su tesis
doctoral 1988. Desde entonces, han sido aplicadas a descripciones más completas de la
clase de gramáticas levemente sensibles al contexto y han tenido un papel importante en
la ampliación y el perfeccionamiento de la jerarquía de Chomsky a esta clase. Varios
subgrammars, tales como la gramática indexada lineal, por lo tanto se pueden definir.
También están empezando a jugar un papel importante en el procesamiento del lenguaje
natural.
Mientras que los lenguajes naturales tradicionalmente han sido analizados
mediante gramáticas libres de contexto, este modelo no funciona bien para los idiomas
con dependencias cruzadas, como la holandesa, situaciones para las que la EPDA es
muy adecuada.
Teoría
Un EPDA es una máquina de estados finitos con un conjunto de pilas que se
puede acceder a través de ellos la pila incorporada. Cada pila contiene elementos del
alfabeto de pila, y por lo que definen un elemento de una pila por, donde la estrella es el
cierre de Kleenedel alfabeto.
Cada pila se puede definir en términos de sus elementos, por lo que se denota la
pila ª en el autómata mediante un símbolo de la doble daga:, donde sería el siguiente
símbolo accesible en la pila.
Definición
Un autómata con pila (PDA) es esencialmente un autómata finito que posee
control sobre una pila, es decir una lista de la cual solo se puede “leer”, “poner” o
“sacar” el primer elemento. Dado el estado actual del autómata y el primer elemento de
la pila, un símbolo de input nos llevará (posiblemente en forma no determinística) el
estado siguiente y a la modificación que se debe hacer en el primer elemento de la pila.
Diremos que una cadena es aceptada por pila vacía por el PDA si cuando la
aplicamos obtenemos una pila vacía. Diremos que una cadena es aceptada por estado
final por el PDA si lleva el estado inicial a uno final. Los lenguajes aceptados por los
autómatas con pila, tantos los aceptados por pila vacía o por estado final, son los
mismos que los aceptados por las gramáticas libres de contexto e incluye estrictamente
a los lenguajes regulares.

pág. 7
Un autómata de pila o Push-Down es un autómata que cuenta con un mecanismo
que permita almacenamiento ilimitado y opera como una pila. El autómata de pila (se
abrevia PDA de sus siglas en inglés Push-Down Autómata) tiene una cinta de entrada,
un control finito y una pila. La pila es una cadena de símbolos de algún alfabeto. El
símbolo que se encuentra más a la izquierda se considera como que está en la “cima”. El
dispositivo será no determinístico y tendrá un número finito de alternativas de
movimiento en cada situación como se muestra en la siguiente figura.
Ejemplo de un autómata de pila

Un autómata de pila (APN) es una máquina de estados finito al que se le añade
una memoria externa en forma de pila (stack), es decir que sólo acepta operaciones
meter (push) y sacar (pop).
Los movimientos serán de dos tipos. En el primer tipo de movimiento se utiliza
un símbolo de entrada. Dependiendo del símbolo de entrada, del símbolo de la cima y el
estado de control finito, es posible un número de alternativas. Cada alternativa consiste
en un estado posterior para el control finito y una cadena (posiblemente vacía) de
símbolos, para sustituir al símbolo que se encuentra en la cima de la pila. Después de
seleccionar una alternativa, la cabeza de entrada avanza un símbolo como se ilustra en
la siguiente figura:

pág. 8
La figura anterior muestra el avance de un símbolo de entrada (q1, c, B), a un
estado posterior y sustitución de la cima de la pila {(q2, B)}.
El segundo tipo de movimiento conocido como movimiento ε es parecido al
primero, excepto que el símbolo de entrada no se utiliza y la cabeza de la entrada no
avanza después del movimiento. Este tipo de movimiento permite al PDA manipular la
pila sin leer símbolos de entrada como se muestra en la figura: Manipulación de la pila
sin leer símbolo de entrada.
Un autómata de pila es un autómata finito más una pila. Se definen por la a tupla
M = (Q; P ; ¡; ±; q0; Z0; F) donde Q; P,S , q0 y F se definen igual que en un AFN. G es
un alfabeto de los caracteres que pueden introducirse a la pila, y Z0 es el símbolo inicial
en la misma, generalmente l (significa pila vacía), pero en ocasiones es útil usar otro
símbolo.
La función de transición es definida como:
: Q x (S È {l } ) x (G È {l } ) ® [Q x (G È {l })]*
Es decir que el cambio de estado ya no sólo depende del estado y del símbolo en
la entrada, sino además del contenido de la pila, específicamente del símbolo en el tope
de la pila. El contenido de la pila puede cambiar después de cada transición.
Para clarificar a la función de transición, analicemos la parte por parte:
Q x (S È {l } ) x (G È {l } ): Esta nos dice que los elementos del dominio son
tercias (estado, alfabeto, pila)
[Q x (G È {l })]*: Indica que el codominio son varios pares del tipo (estado,
pila).

pág. 9
Un autómata Push-Down (APD) es una colección de 8 cosas:
1. Un alfabeto Σ de letras de entrada
2. Una cinta de entrada (infinita en una dirección). Inicialmente la cadena de
letras de entrada se ubica en la cinta comenzando en la celda i. El resto de la cinta tiene
blancos.
3. Un alfabeto Γ de caracteres del stack.
4. Un stackpush-down (infinito en una dirección). Inicialmente el stack está
vacío (contiene todos blancos).
5. Un estado start que contiene solo aristas de salida, no aristas de entrada.

6. Estados de detención de dos clases: algunos accept y algunosreject. Tienen
aristas de entrada y no aristas de salida.

7. Un número finito de estados pushsin ramificación que introducen caracteres
en la parte superior del stack. Son de la forma:

8.

Donde X es cualquier letra en Γ.Un número finito de estados con

ramificación de dos clases:
i) estados que leen la próxima letra no usada de la cinta.

Que pueden tener aristas de salida etiquetadas con letras de Σ y el carácter
blanco Δ, sin restricciones de duplicación de etiquetas y sin obligación de que haya una
etiqueta para cada letra de Σ, o una Δ.
Y
ii) estados que leen el carácter superior del stack

pág. 10
Que pueden tener aristas de salida etiquetadas con letras de Γ y el carácter
blanco Δ, nuevamente sin restricciones.
Ejecutar una cadena de letras entradas en un APD significa comenzar desde el
estado starty seguir las aristas no etiquetadas y las etiquetadas que generen un camino a
través del diagrama. El camino termina en un estado de detención o hará crash en algún
estado que no posea ramificación ante la lectura de un carácter de la entrada desde la
cinta.
Aceptores Push-Down. Definiciones
Un aceptor Push-Down (APD) es una tupla de seis elementos:

M = (Q, S, U, P, I, F) en la cual:

Q es el conjunto finito de estados de la unidad de control
S es un alfabeto finito de entrada
U es un alfabeto finito de la pila o "stack"
P es el programa de M
I Í Q es un conjunto de estados iniciales
F Í Q es un conjunto de estados finales o estados de aceptación

El programa P es una secuencia finita de instrucciones, cada una de las cuales tiene una
de las siguientes formas:

En cada caso, el estado q es la etiqueta o rótulo de la instrucción, y el estado q'
es el estado sucesor. Cada estado en Q rotula como máximo un tipo de instrucción read,
write o scan.

pág. 11
Si q es un estado cualquiera, j es un string cualquiera de S* y s es cualquier
string en U*, luego (q, j, s) es una configuración de M. El string s se llama usualmente
pila o "stack" y el símbolo que se encuentra al tope de la misma se conoce como
símbolo tope de la pila.
Una configuración (q, j, s) es una descripción completa del estado total de un
aceptor Push-Down en algún punto en su análisis de una cinta de entrada. El control se
encuentra en el estado q; el prefijo j del string de entrada ya ha sido explorado
("scanned") y el cabezal de entrada se posiciona en el último símbolo de j; la pila s es el
contenido de la cinta de almacenamiento, y el cabezal de la pila se posiciona en el
último símbolo de s.
Autómatas de Pila y lenguajes libres de contexto
Los autómatas de pila son máquinas que nos permiten aceptar lenguajes libres de
contexto. Los autómatas de pila son máquinas finitas que tienen una memoria que les da
la capacidad de "recordar". De esta manera es posible reconocer lenguajes del tipo aibi |
i >= 0, en el que se necesita saber cuántas a’s tiene la palabra para determinar si el
número de b’s es igual.
Clasificación de Autómatas Push-Down
Autómatas a pila embebidos
Autómatas a pila embebidos ascendentes
Autómatas lógicos a pila restringidos
Autómatas lineales de índices
Autómatas con dos pilas.
Autómatas a pila embebidos
En los cuales la estructura principal de almacenamiento la constituye una pila de
pilas. Junto a la definición clásica se presenta una nueva formulación en la cual se
elimina el control de estado finito y se simplifica la forma de las transiciones al tiempo
que se mantiene la potencia expresiva. Esta nueva formulación permite diseñar una
técnica de tabulación para la ejecución eficiente de los diversos esquemas de
compilación para gramáticas de adjunción de árboles y gramáticas lineales de índices.
Autómatas a pila embebidos ascendentes
Constituyen los autómatas a pila embebidos ascendentes. La eliminación del
control de estado finito permite simplificar la forma de las transiciones, lo cual facilita
la definición de una técnica de tabulación para este modelo de autómata.
Autómatas lógicos a pila restringidos
pág. 12
Las gramáticas lineales de índices constituyen un tipo específico de gramáticas
de cláusulas definidas en el cual los predicados tienen un único argumento en forma de
pila de índices. Aprovechamos esta característica para definir una versión restringida de
los autómatas lógicos a pila adecuada al tratamiento de este tipo de gramáticas y de las
gramáticas de adjunción de árboles. Dependiendo de la forma de las transiciones
permitidas, podemos distinguir tres tipos diferentes de autómata, uno que permite el
análisis ascendente de los índices o adjunciones, otro que permite el análisis
descendente y otro que permite estrategias mixtas. En los dos últimos casos es preciso
establecer restricciones en la combinación de las transiciones para garantizar que dichos
autómatas aceptan exactamente la clase de los lenguajes de adjunción de árboles. Se
presentan esquemas de compilación y técnicas de tabulación para los tres tipos de
autómata.
Autómatas lineales de índices
Los autómatas lineales de índices, que utilizan la misma estructura de
almacenamiento que los autómatas lógicos a pila restringidos pero con un juego
diferente de transiciones. Distinguimos tres tipos diferentes de autómata: los autómatas
lineales de índices orientados a la derecha para estrategias en las cuales las pilas de
índices se evalúan de modo ascendente, los autómatas lineales de índices orientados a la
izquierda en los cuales las pilas de se evalúan de modo descendente y los autómatas
lineales de índices fuertemente dirigidos que permiten definir estrategias mixtas de
análisis para el tratamiento de las pilas de índices.
Autómatas con dos pilas
Se opta por un modelo de autómata con una nueva estructura de
almacenamiento. Se preserva la pila de los autómatas a pila tradicionales, a la que
acompaña una pila auxiliar cuyo contenido restringe el conjunto de transiciones
aplicables es un momento dado. Los autómatas con dos pilas fuertemente dirigidos
permiten definir esquemas de compilación arbitrarios para gramáticas de adjunción de
árboles y gramáticas lineales de índices. Por su parte, los autómatas con dos pilas
ascendentes sólo permiten describir esquemas de compilación que incorporan
estrategias ascendentes en lo referente al tratamiento de las adjunciones y de las pilas de
índices. Se presentan las técnicas de tabulación que permiten una ejecución eficiente de
ambos modelos de autómata.

pág. 13
El funcionamiento típico de un autómata Push-down.
Por ejemplo, el siguiente autómata de pila reconoce L(G) = {wcwR|w E (0+1)*}
, es decir los palíndromes en (0 + 1)* cuyo punto intermedio está marcado con un
carácter especial c:
M = ({q1,q2}, {0,1}, {RBG}, d , q1, R, q )
Donde d vale:

Descripción
[q, w, a ] ^ [qj,v,b ] ^ * ^ + Se pueden usar descripciones instantáneas para ver el
funcionamiento del autómata: (q, aw, za ) ^ (p,w,b a ) si d (q,a,z) = (p,b ).
La cadena de un lenguaje es aceptado por el autómata si éste para en elestado
final: L(M) = {w|(q0,w,Z0) ^ (p,e ,g ) para algún p Î F, g Î G *}
Autómata Push-down para el reconocimiento de lenguajes libres de
contexto.
Toda gramática GLC puede ponerse en forma normal de Greibach, en donde
todas las producciones son del tipo
L ->aa donde a Î (V U T)*, a Î (T U {e }).
Método de normalización:
Suponer V = { L 1 ... L m}.
Hacer todas las producciones del estilo
L i -> L jg para j >i.
Si j < i, sustituir L j por sus lados derechos. Si j = i, eliminar recursión a la
izquierda, sustituyendo: L i -> L a 1 | L a 2 | ... | L ia 1 || b 1 | .... |b n | por:
L i -> b 1 | .... |b s | b 1B| .... |b s Bi
Bi -> a 1 |a 2| .... |a T | a 1Bi| a 2Bi| .... |a T Bi
Sustituir L m -> g en L m-1, después en L m-2 y así sucesivamente.
En las nuevas producciones Bi, si es necesario sustituir el primer símbolo no
terminal por lo que produce.
Por ejemplo en:
G = ({L 1; L 2; L 3 },{a,b},P, L 1)
P : L 1 -> L 2L 3
pág. 14
L 2 -> L 3L 1 | b
L 3 -> L 1L 2 | a
Hay que cambiar la última producción en
L 3 -> L 1L 2 | a
L 3 -> L 2L 3L 2 | a
L 3 -> L 3L 1L 3L 2 | bL 3L 2 |a
y después de eliminar la recursión a la izquierda tenemos
L 3 ->bL 3L 2B3 | aB3 | bL 3L 2 | a
B3 -> L 1L 3L 2 | L 1L 3L 2B3
Finalmente sólo nos resta sustituir en toda producción, a partir de L 3, los
símbolos no terminales de la izquierda.
Obtención de una GLC a partir de un Autómata de Pila (push-down).
Para obtener la GLC G = (V, T, P, S) correspondiente a un APN M, hay que
crear primero un APN extendido M´ con d ´ construida a partir de d a la que se le añade:
1. Si [ qj, e ] Î d ( qi, u, e ) entonces [ qj, L ] Î d ´ (qi, u, L ) para toda L Î G .
2. Si [ qj, B ] Î d ( qi, u, e ) entonces [ qj, BL ] Î d ´ (qi, u, L ) para toda L Î G .
El alfabeto de entrada de G es el alfabeto de entrada de M´. Las variables de G
consisten de un símbolo inicial S y objetos de la forma <qi, L ,qj> donde las q’s son los
estados de M´ y L Î G È {e }. La variable <qi, L ,qj> representa un cálculo que
comienza en el estado qi , termina en qj y quita el símbolo L de la pila. Las reglas de G
son construidas de la siguiente manera:
S Þ < q0, e ,qj> para cada qj Î F.
Cada transición [ qj, B ] Î d ( qi, x, L ), donde L Î G È {e } genera el conjunto de
reglas
{<qi, L , qk>Þ x <qj, B, qk> | qk Î Q }
3. Cada transición [ qj, BL ] Î d ( qi, x, L ), donde L Î G È {e } genera el
conjunto de reglas
{<qi, L , qk>Þ x <qj, B, qn><qn, L , qk> | qk , qn Î Q }
Para cada estado qk Î Q ,<qk , e , qk> Þ e
Obtención de una gramática de contexto libre a partir de un Autómata
Push-down sin estados finales.
Si en lugar de tener un Autómata Push-down con estados finales como en el caso
anterior tenemos un autómata Push-down que termina cuando se vacía la pila, podemos
aplicar el procedimiento explicado a continuación. Si M = (Q, S , G , d , q0, Z0, q ) es
pág. 15
una autómata Push-down, puede ser representado por la gramática libre de contexto G =
(V, S , P, S), donde V = {< q, L , p > | q, p Î Q ^ L Î G } È {S} y P tiene las siguientes
producciones:
S Þ [q0, Z0, q] para cada q en Q.
[q, L , qm+1] Þ a[q1,B1,q2][q2,B2,q3] ... [qm,Bm,qm+1] para cada q,q1,q2, ...,
qm+1
en Q, cada a en S È {e } y L , B1, B2, ... Bm en G tal que d (q,a,L )contiene a
(q1, B1B2 ... Bm).
Aplicación de un Autómata Push-down
El autómata para procesar un lenguaje del tipo 2 o Lenguaje de contexto libre es
llamado
Autómata Finito Push-down (PDFA). El elemento push-down permite que este
tipo de autómata puede procesar las sentencias más complejas que puedan resultar de un
lenguaje de contexto libre. En otras palabras, una de las diferencias fundamentales entre
un lenguaje del tipo 3 y uno del tipo 2 es la necesidad de "recordar" cuándo fue la
ocurrencia de un símbolo y cuándo se generó una comparación de símbolo.
Este es el caso del lenguaje de paréntesis, en el que es necesario recordar el
número de paréntesis izquierdo en orden para reconocer el número de paréntesis
derecho correcto. El Autómata Pushdown mantiene un stack que es usado como
memoria para este propósito. En el autómata finito de estados, las transiciones entre
estados se basan sólo en el estado actual y en el carácter de la cadena de entrada. EN el
caso de los autómatas Pushdown la transición es una función del estado actual, el
carácter actual en la cadena de entrada y el carácter actual en la CIMA del stack del
autómata Push-down.
En el lenguaje de paréntesis, es necesario no perder de vista cada paréntesis
izquierdo que es encontrado, además de cuándo se ha encontrado un paréntesis derecho
después en la sentencia. Esto puede hacerse poniendo una marca en el stack del
Autómata Push-down cada vez que se encuentra un paréntesis izquierdo. Cuando se
encuentra un paréntesis derecho en la sentencia de entrada, se hace una transición de
estado se hace solo si el stack tiene la marca correspondiente; y en caso contrario,
entonces la sentencia no es parte del lenguaje de paréntesis.
Si el último estado del autómata push-down no es un estado de aceptación
entonces la sentencia no es parte del lenguaje.

pág. 16
Figura 3.5.1.- Autómata de Estados Finitos para el Lenguaje de Paréntesis.
El primer paso del autómata del diseño de un autómata de push-down para el lenguaje
de paréntesis es desarrollar un autómata finito como el siguiente.
El autómata finito para el lenguaje de paréntesis consiste en un control de 4
estados:
el estado inicial (S), el estado para el procesamiento del paréntesis izquierdo (L),
el estado para el procesamiento del paréntesis derecho (R) y el estado final (F). En este
caso asumimos que una sentencia de lenguaje termina por el símbolo (#). Este carácter
final, cuando es encontrado realiza una transición desde el estado R hasta el estado F.
Pero qué tipo de sentencias en lenguaje de paréntesis podrá reconocer este
autómata finito por ejemplo:
El paréntesis izquierdo inicial nos indica hacer una transición desde el estado
Sistemas al estado L y el siguiente paréntesis izquierdo causa una transición hacer esta
al mismo estado L.
Luego el primer paréntesis derecho es procesado y se hace una transición al
estado R. En el estado R si se encuentra otro paréntesis izquierdo, se hará una transición
de regreso al estado L. El siguiente paréntesis derecho es procesado, y se hace una
transición al estado R una vez más. El siguiente paréntesis causa una transición en el
mismo estado R. Finalmente (#) causa una transición al estado final y la sentencia es
reconocida. Y la sentencia es (()()) # .
Pasos del reconocimiento de la sentencia anterior.
El autómata finito push-down tiene la memoria necesaria para no perder de vista
los paréntesis izquierdos y así es como estos son procesados en una sentencia del
lenguaje de paréntesis. Al autómata finito se le aumentan operaciones destack (PILA),
para que pueda procesar elementos de una sentencia y sea capaz de no perder de vista

pág. 17
los paréntesis. El autómata aumentado (PDFA) se muestra en la siguiente figura.

Figura 3.5.4.- Autómata Finito push-down para el lenguaje de paréntesis
Aceptores Push-Down Propios
Nuestra definición de APD no permite ciertos comportamientos anómalos o no
productivos. En particular:
1.- Un APD no puede explorar más allá del final del stringque está en la cinta de
entrada, debido a que no puede hacer un movimiento en el cual un "numeral" sea
explorado.
2.- Un APD no puede mover su cabezal sobre la pila a la izquierda del primer
segmento de la cinta de almacenamiento, ya que no puede realizar un movimiento en el
cual un "numeral" sea leído de la pila. Sin embargo, otros dos tipos de comportamientos
improductivos que pueden ocurrir, y que pueden conducir a dificultades en el análisis de
las propiedades de aceptores Push-Down, son:
3.- Uno se produce cuando un movimiento de read ocurre inmediatamente
después de un movimiento de write.
4.- El otro es una repetición sin fin de sucesivos movimientos de write (ciclo).
Supongamos que un APD M tiene una secuencia de movimientos en la cual un
movimiento de write es seguido por un movimiento de read, y en esta secuencia no
intervienen movimientos de scan:

Este par de movimientos no tiene un efecto neto además de hacer que la unidad
de control cambie entre los estados q y q". Esta secuencia de movimientos
pág. 18
inconsistentes puede ocurrir solamente si M tiene una instrucción de escritura: q] write
(u, q') para la cual el estado sucesor q' es el rótulo de una instrucción read.
En el programa de un APD M, una instrucción write: q] write (u, q') es impropia
si q' es el rótulo de una instrucción read cualquiera. Una APD es propio si su programa
no contiene instrucciones impropias. Las instrucciones impropias son fácilmente
identificables en el diagrama de estados de un APD, y pueden ser eliminadas sin
modificar el comportamiento de la máquina en lo referente al lenguaje reconocido. En
particular, si M es un APD cualquiera, es posible construir un APDP mediante la
adición y el borrado de instrucciones tal como sigue.

Obsérvese que no hay transiciones para todas las ternas posibles de estado,
símbolo de entrada y símbolo de pila. Por lo tanto, si el PDA pasa a un estado para el
cual no se especifica un estado siguiente y una acción de la pila para los símbolos
actuales de la pila y la entrada, el PDA no puede volver a realizar ningún movimiento.
En particular, cuando el autómata está en el estado q4, que es el estado de
aceptación, no hay ninguna transición sea cual sea el símbolo de la cima y de la entrada.
Si el PDA se mueve al estado q2, entonces obsérvese que cada vez que aparece en la
entrada se apila una B en la pila.
El PDA permanece en el estado q2 hasta que se encuentra la primera b entonces
se mueve al estado q3, ninguna b puede preceder a una a.
pág. 19
Finalmente, en el estado q3 sólo se consideran las b’s y, cuando se encuentra
cualquier b, se desapila B de la pila. (Sólo pueden desapilarse las B’s que fueron
apiladas, debido a encontrarse una a en la entrada). Las únicas cadenas que acepta el
PDA pertenecen al lenguaje puesto que son las únicas cadenas de entrada que, una vez
que han sido consumidas, causan que el PDA termine en el estado final q4.
Autómatas de pila
Desafortunadamente los autómatas de conteo no son suficientemente poderosos
para reconocer todos los LLC.
En ocasiones se requiere más de un tipo de cuenta o “roca” o en lugar de una
“bolsa”.
Se utiliza un stack o pila LIFO (Last In FirstOut) en el cual el orden es
importante. La acción que lleva a cabo el autómata sólo es influenciada no sólo por el
estado en que se encuentra y por el símbolo que lee, sino también por el tipo de piedra u
objeto que se encuentra arriba en la pila.

Representación gráfica de un AP
La transición ((p, u, b), (q, g)), d(p, u, b) = (q, g), se presenta gráficamente por

Y, significa que cuando estamos en el estado p, leemos de la palabra de entrada
el símbolo u y sacamos del stack el símbolo b, entonces pasamos al estado q y ponemos
en la pila la cadena g.
Y, significa que cuando estamos en el estado p, leemos de la palabra de entrada
el símbolo u y sacamos del stack el símbolo b, entonces pasamos al estado q y ponemos
en la pila la cadena g.
pág. 20
Ejemplo
Autómata de pila que acepte {aibi | i m 0}

K = {q0, q1}
–S = {a, b}
–G = {A}
–s0 = q0
–F = {q0, q1}
–d(q0, a, l) = (q0, A)
–d(q0, b, A) = (q1, l)
–d(q1, b, A) = (q1, l)

pág. 21
Ejemplo: palíndromos de longitud impar

Ejemplo: palíndromos de longitud par

pág. 22
Ejemplo

pág. 23
Conclusión

El análisis de este nivel de autómatas específicamente de Push-Down nos
permitió abrir el horizonte mostrando en cada punto de la investigación la existencia
de múltiples herramientas que pueden favorecer en nuestro trabajo del día a día, las
cuales ya están demostradas en su funcionamiento desde su inicio y existirá siempre la
seguridad de que no habrá un problema con dicho análisis.
Donde además de conocer se obtuvieron informaciones, en las cuales se
destacaron que los autómatas de pila, en forma similar a como se usan los autómatas
finitos, también se pueden utilizar para aceptar cadenas de un lenguaje definido sobre un
alfabeto A; a diferencia de los autómatas finitos, los autómatas de pila si cuentan con
una memoria auxiliar llamada pila.
Y sobre todo las transiciones entre los estados que ejecutan los autómatas de pila
dependen de los símbolos de entrada y de los símbolos de la pila.

Esperando que este artículo de investigación pueda aportar conocimientos y a su vez
servir de apoyo a la hora de indagar dicho tema.

pág. 24
Glosario
Autómata: Es una máquina capaz de efectuar por sí misma un cierto número de
operaciones previamente especificadas.
Pila: Lista de elementos a la cual se puede insertar o eliminar elementos sólo por
uno de sus extremos.
Compilador: Programa escrito generalmente en lenguaje de máquina que
permite compilar.
Compilar: Producir una rutina en lenguaje máquina mediante una rutina escrita
en otro lenguaje diferente a la máquina.
Extraer (Pop): Reemplazar el contenido de una parte específica de una palabra
con las partes correspondientes de otra palabra, lo cual es determinado por algún tipo de
control de patrón.
Instrucción: Conjunto de caracteres que representan una orden dada a la
máquina y que esta puede cumplir.
Lenguaje: Conjunto de caracteres, símbolos, palabras, frases, instrucciones y
reglas que permiten escribir y describir programas para una aplicación dada.
Lenguaje de máquina: Sistema de instrucciones que es directamente utilizable
por la máquina, tal como se encuentra en la memoria principal en el momento en que
está cargada.
Lenguaje de programación: Aquel que utilizan los programadores para escribir
un programa en forma más o menos cómoda y que lo general requiere una traducción
para ser transformado a lenguaje de máquina.
Embebido: sistema de computación diseñado para realizar una o algunas pocas
funciones dedicadas frecuentemente en un sistema de computación en tiempo real.

pág. 25
Referencias
Centro de Artigos (S.F). Historia, aplicaciones y teoría. Recuperado el 20 de Febrero
del 2014 de: http://centrodeartigos.com/articulos-revista-digital/contenidorevista-30635.html
CS. Famaf (2012). Definición. Recuperado el 20 de Febrero del 2014 de:
http://www.cs.famaf.unc.edu.ar/wiki/lib/exe/fetch.php?media=intrologica:autom
atas2012.pdf
Frro.utn.edu (S.F) Automata Push-Down. Recuperado el 20 de Febrero del 2014 de:
http://www.frro.utn.edu.ar/repositorio/catedras/sistemas/2_anio/sintaxis/PushDo
wn_y_Turing.pdf
OOcities. (S.F). Autómatas de pila. Recuperado el 20 de Febrero del 2014 de:
http://www.oocities.org/mx/prog_sis_itq/Equipo3/autopush.html#_Toc52627736
8
OOcities. (S.F) Clasificación de autómatas Push-Down. Recuperado el 20 de Febrero
del 2014 del:http://www.oocities.org/mx/prog_sis_itq/Equipo3/autopush.html#_
OOcities (S.F) Ejemplo de un autómata de pila. Recuperado el 20 de Febrero del 2014 de:
http://www.oocities.org/mx/prog_sis_itq/Equipo3/autopush.html#_Toc52627736
8
Portal Tecnología. (2010). Aceptores Push-Down. Recuperado el 20 de Febrero del
2014 del: http://www.portaltecnologica.com.ar/wpcontent/uploads/2010/03/Unidad-3.pdf
Portal tecnología (2010). Aplicación de un autómata push-down. Recuperado el 20 de
Febrero

del

2014

de:

http://www.portaltecnologica.com.ar/wp-

content/uploads/2010/03/Unidad-3.pdf
Teo de la Comp (2011) Aceptores Push-Down Propios. Recuperado el 20 de Febrero
del 2014 de: http://teodelacomp.blogspot.com/2011/03/automata-pushdown.html
Teo de la Comp (2011) Ejemplo de un autómata de pila. Recuperado el 20 de Febrero del
2014 de: http://teodelacomp.blogspot.com/2011/03/automata-push-down.html

pág. 26

Más contenido relacionado

La actualidad más candente

Portafolio unidad 2 [Lenguajes y autómatas]- Expresiones y lenguajes regulares
Portafolio unidad 2 [Lenguajes y autómatas]- Expresiones y lenguajes regularesPortafolio unidad 2 [Lenguajes y autómatas]- Expresiones y lenguajes regulares
Portafolio unidad 2 [Lenguajes y autómatas]- Expresiones y lenguajes regularesHumano Terricola
 
Gramática Libre de Contexto
Gramática Libre de ContextoGramática Libre de Contexto
Gramática Libre de ContextoBrayhan Acosta
 
1.1 tipos de datos abstractos
1.1 tipos de datos abstractos1.1 tipos de datos abstractos
1.1 tipos de datos abstractoserwin_alexander
 
Topicos Avanzados de Programacion - Unidad 3 componentes y librerias
Topicos Avanzados de Programacion - Unidad 3 componentes y libreriasTopicos Avanzados de Programacion - Unidad 3 componentes y librerias
Topicos Avanzados de Programacion - Unidad 3 componentes y libreriasJosé Antonio Sandoval Acosta
 
Transacciones y sql procedural EN MySQL
Transacciones y sql procedural EN MySQLTransacciones y sql procedural EN MySQL
Transacciones y sql procedural EN MySQLLuiS YmAY
 
Los lenguajes aceptados para una maquina de turing
Los lenguajes aceptados para una maquina de turingLos lenguajes aceptados para una maquina de turing
Los lenguajes aceptados para una maquina de turingJonathan Bastidas
 
Teoria de automatas
Teoria de automatasTeoria de automatas
Teoria de automatasPedro Roman
 
U1 Analisis Algoritmos Complejidad
U1 Analisis Algoritmos ComplejidadU1 Analisis Algoritmos Complejidad
U1 Analisis Algoritmos Complejidadrezzaca
 
Estructura de un interprete
Estructura de un interpreteEstructura de un interprete
Estructura de un interpreteperlallamas
 
Modelo De Desarrollo Evolutivo
Modelo De Desarrollo EvolutivoModelo De Desarrollo Evolutivo
Modelo De Desarrollo Evolutivocamilosena89
 
Incorporacion De Una Tabla De Simbolos Compiladores
Incorporacion De Una Tabla De Simbolos CompiladoresIncorporacion De Una Tabla De Simbolos Compiladores
Incorporacion De Una Tabla De Simbolos Compiladoresguest5fa3fc
 
Notación infija postfija
Notación infija postfijaNotación infija postfija
Notación infija postfijaOmarzingm
 
2...2 expresiones regulares, cerradura, fractales, automata
2...2 expresiones regulares, cerradura, fractales, automata2...2 expresiones regulares, cerradura, fractales, automata
2...2 expresiones regulares, cerradura, fractales, automataJacqui Venegas
 

La actualidad más candente (20)

Portafolio unidad 2 [Lenguajes y autómatas]- Expresiones y lenguajes regulares
Portafolio unidad 2 [Lenguajes y autómatas]- Expresiones y lenguajes regularesPortafolio unidad 2 [Lenguajes y autómatas]- Expresiones y lenguajes regulares
Portafolio unidad 2 [Lenguajes y autómatas]- Expresiones y lenguajes regulares
 
TRIGGERS O DISPARADORES
TRIGGERS O DISPARADORESTRIGGERS O DISPARADORES
TRIGGERS O DISPARADORES
 
Manual pseint
Manual pseintManual pseint
Manual pseint
 
Código intermedio
Código intermedioCódigo intermedio
Código intermedio
 
Gramática Libre de Contexto
Gramática Libre de ContextoGramática Libre de Contexto
Gramática Libre de Contexto
 
1.1 tipos de datos abstractos
1.1 tipos de datos abstractos1.1 tipos de datos abstractos
1.1 tipos de datos abstractos
 
Topicos Avanzados de Programacion - Unidad 3 componentes y librerias
Topicos Avanzados de Programacion - Unidad 3 componentes y libreriasTopicos Avanzados de Programacion - Unidad 3 componentes y librerias
Topicos Avanzados de Programacion - Unidad 3 componentes y librerias
 
Transacciones y sql procedural EN MySQL
Transacciones y sql procedural EN MySQLTransacciones y sql procedural EN MySQL
Transacciones y sql procedural EN MySQL
 
Procedimientos almacenados
Procedimientos almacenadosProcedimientos almacenados
Procedimientos almacenados
 
Los lenguajes aceptados para una maquina de turing
Los lenguajes aceptados para una maquina de turingLos lenguajes aceptados para una maquina de turing
Los lenguajes aceptados para una maquina de turing
 
Teoria de automatas
Teoria de automatasTeoria de automatas
Teoria de automatas
 
Colas
ColasColas
Colas
 
1.4 ensambladores y compiladores
1.4 ensambladores y compiladores1.4 ensambladores y compiladores
1.4 ensambladores y compiladores
 
U1 Analisis Algoritmos Complejidad
U1 Analisis Algoritmos ComplejidadU1 Analisis Algoritmos Complejidad
U1 Analisis Algoritmos Complejidad
 
Estructura de un interprete
Estructura de un interpreteEstructura de un interprete
Estructura de un interprete
 
Unidad1 2 Lenguajes y automatas
Unidad1 2  Lenguajes y automatasUnidad1 2  Lenguajes y automatas
Unidad1 2 Lenguajes y automatas
 
Modelo De Desarrollo Evolutivo
Modelo De Desarrollo EvolutivoModelo De Desarrollo Evolutivo
Modelo De Desarrollo Evolutivo
 
Incorporacion De Una Tabla De Simbolos Compiladores
Incorporacion De Una Tabla De Simbolos CompiladoresIncorporacion De Una Tabla De Simbolos Compiladores
Incorporacion De Una Tabla De Simbolos Compiladores
 
Notación infija postfija
Notación infija postfijaNotación infija postfija
Notación infija postfija
 
2...2 expresiones regulares, cerradura, fractales, automata
2...2 expresiones regulares, cerradura, fractales, automata2...2 expresiones regulares, cerradura, fractales, automata
2...2 expresiones regulares, cerradura, fractales, automata
 

Destacado

Autómatas de Pila
Autómatas de PilaAutómatas de Pila
Autómatas de PilaPablo Guerra
 
1...1 noam chomsky (gramatica generativa, automata de pila, etc.)
1...1 noam chomsky (gramatica generativa, automata de pila, etc.)1...1 noam chomsky (gramatica generativa, automata de pila, etc.)
1...1 noam chomsky (gramatica generativa, automata de pila, etc.)Jacqui Venegas
 
Automata de Pila y Maquina de Turing No Deterministas
Automata de Pila y Maquina de Turing No DeterministasAutomata de Pila y Maquina de Turing No Deterministas
Automata de Pila y Maquina de Turing No DeterministasPedro Roman
 
Simplificación de gramáticas independientes de contexto
Simplificación de gramáticas independientes de contextoSimplificación de gramáticas independientes de contexto
Simplificación de gramáticas independientes de contextoEduardo Tello
 
GRAMATICA GENERATIVA Y AUTOMATA DE PILA
GRAMATICA GENERATIVA Y AUTOMATA DE  PILAGRAMATICA GENERATIVA Y AUTOMATA DE  PILA
GRAMATICA GENERATIVA Y AUTOMATA DE PILAAliciaSandovalCamacho
 
Tablas de multiplicar
Tablas de multiplicarTablas de multiplicar
Tablas de multiplicarMarta_tuchi
 
Automatas de pila_no_det
Automatas de pila_no_detAutomatas de pila_no_det
Automatas de pila_no_detOscar Eduardo
 
LENGUAJES LIBRES DE CONTEXTO Y GRAMATICA LIBRES DE CONTEXTO
LENGUAJES LIBRES DE CONTEXTO Y GRAMATICA LIBRES DE CONTEXTO LENGUAJES LIBRES DE CONTEXTO Y GRAMATICA LIBRES DE CONTEXTO
LENGUAJES LIBRES DE CONTEXTO Y GRAMATICA LIBRES DE CONTEXTO Guillermo Iván Prisco Pérez
 
Unidad 1 lenguajes regulares
Unidad 1 lenguajes regularesUnidad 1 lenguajes regulares
Unidad 1 lenguajes regularesluisita91
 
Expresiones regulares y gramáticas
Expresiones regulares y gramáticasExpresiones regulares y gramáticas
Expresiones regulares y gramáticasJuanchi Novas
 
Ejercicios gimnasia cerebral
Ejercicios gimnasia cerebralEjercicios gimnasia cerebral
Ejercicios gimnasia cerebralEduardo Tello
 

Destacado (20)

Autómatas de Pila
Autómatas de PilaAutómatas de Pila
Autómatas de Pila
 
1...1 noam chomsky (gramatica generativa, automata de pila, etc.)
1...1 noam chomsky (gramatica generativa, automata de pila, etc.)1...1 noam chomsky (gramatica generativa, automata de pila, etc.)
1...1 noam chomsky (gramatica generativa, automata de pila, etc.)
 
Automata de Pila y Maquina de Turing No Deterministas
Automata de Pila y Maquina de Turing No DeterministasAutomata de Pila y Maquina de Turing No Deterministas
Automata de Pila y Maquina de Turing No Deterministas
 
Automatas de pila
Automatas de pilaAutomatas de pila
Automatas de pila
 
Tutorial de JFLAP
Tutorial de JFLAPTutorial de JFLAP
Tutorial de JFLAP
 
Recapitulación
RecapitulaciónRecapitulación
Recapitulación
 
Simplificación de gramáticas independientes de contexto
Simplificación de gramáticas independientes de contextoSimplificación de gramáticas independientes de contexto
Simplificación de gramáticas independientes de contexto
 
GRAMATICA GENERATIVA Y AUTOMATA DE PILA
GRAMATICA GENERATIVA Y AUTOMATA DE  PILAGRAMATICA GENERATIVA Y AUTOMATA DE  PILA
GRAMATICA GENERATIVA Y AUTOMATA DE PILA
 
Tablas de multiplicar
Tablas de multiplicarTablas de multiplicar
Tablas de multiplicar
 
Libro alumnos
Libro alumnosLibro alumnos
Libro alumnos
 
Automátas de Pila
Automátas de PilaAutomátas de Pila
Automátas de Pila
 
AnáLisis LéXico
AnáLisis LéXicoAnáLisis LéXico
AnáLisis LéXico
 
Ejercicios
EjerciciosEjercicios
Ejercicios
 
Automatas de pila_no_det
Automatas de pila_no_detAutomatas de pila_no_det
Automatas de pila_no_det
 
LENGUAJES LIBRES DE CONTEXTO Y GRAMATICA LIBRES DE CONTEXTO
LENGUAJES LIBRES DE CONTEXTO Y GRAMATICA LIBRES DE CONTEXTO LENGUAJES LIBRES DE CONTEXTO Y GRAMATICA LIBRES DE CONTEXTO
LENGUAJES LIBRES DE CONTEXTO Y GRAMATICA LIBRES DE CONTEXTO
 
Unidad 1 lenguajes regulares
Unidad 1 lenguajes regularesUnidad 1 lenguajes regulares
Unidad 1 lenguajes regulares
 
Expresiones regulares y gramáticas
Expresiones regulares y gramáticasExpresiones regulares y gramáticas
Expresiones regulares y gramáticas
 
Automatas finitos
Automatas finitosAutomatas finitos
Automatas finitos
 
Mini manual de JFlap
Mini manual de JFlapMini manual de JFlap
Mini manual de JFlap
 
Ejercicios gimnasia cerebral
Ejercicios gimnasia cerebralEjercicios gimnasia cerebral
Ejercicios gimnasia cerebral
 

Similar a Articulo Autómata (push down)

Tipos de Autómatas 
Tipos de Autómatas Tipos de Autómatas 
Tipos de Autómatas yelizabeth_20
 
Automatas
AutomatasAutomatas
Automatasveriyo
 
Maquina de turing
Maquina de turingMaquina de turing
Maquina de turingdiego
 
La máquina de turing
La máquina de turingLa máquina de turing
La máquina de turingLorenzo Alejo
 
Presentacion Enguelbert Garcia
Presentacion Enguelbert GarciaPresentacion Enguelbert Garcia
Presentacion Enguelbert GarciaEnguelbert Garcia
 
Introducción a la Teoría de Autómatas by Yeredith
Introducción a la Teoría de Autómatas by YeredithIntroducción a la Teoría de Autómatas by Yeredith
Introducción a la Teoría de Autómatas by Yeredithyeredith1
 
Reny galaviz web quest
Reny galaviz web questReny galaviz web quest
Reny galaviz web questReny-Galaviz
 
Reny Galaviz Web Quest
Reny Galaviz Web QuestReny Galaviz Web Quest
Reny Galaviz Web QuestReny-Galaviz
 
Automatas 2014 s1 guía
Automatas 2014 s1 guíaAutomatas 2014 s1 guía
Automatas 2014 s1 guíaraflhax
 
maquinas de turing
maquinas de turingmaquinas de turing
maquinas de turingAnel Sosa
 
Tipos de autómatas
Tipos de autómatasTipos de autómatas
Tipos de autómatasCesar Garcia
 
automatas finitos
 automatas finitos automatas finitos
automatas finitosAnel Sosa
 
Presentación 2014 profe gabriel
Presentación 2014 profe gabrielPresentación 2014 profe gabriel
Presentación 2014 profe gabrielEnrique Morales
 
Sistemas AutÓmatas.
Sistemas AutÓmatas.Sistemas AutÓmatas.
Sistemas AutÓmatas.jengibre
 

Similar a Articulo Autómata (push down) (20)

Autómata de Pila
Autómata de Pila Autómata de Pila
Autómata de Pila
 
Tipos de Autómatas 
Tipos de Autómatas Tipos de Autómatas 
Tipos de Autómatas 
 
Webquest
WebquestWebquest
Webquest
 
Teoría de autómatas
Teoría de autómatasTeoría de autómatas
Teoría de autómatas
 
Automatas[1]
Automatas[1]Automatas[1]
Automatas[1]
 
Teoría de autómatas
Teoría de autómatasTeoría de autómatas
Teoría de autómatas
 
Automatas
AutomatasAutomatas
Automatas
 
Maquina de turing
Maquina de turingMaquina de turing
Maquina de turing
 
La máquina de turing
La máquina de turingLa máquina de turing
La máquina de turing
 
Presentacion Enguelbert Garcia
Presentacion Enguelbert GarciaPresentacion Enguelbert Garcia
Presentacion Enguelbert Garcia
 
Introducción a la Teoría de Autómatas by Yeredith
Introducción a la Teoría de Autómatas by YeredithIntroducción a la Teoría de Autómatas by Yeredith
Introducción a la Teoría de Autómatas by Yeredith
 
Reny galaviz web quest
Reny galaviz web questReny galaviz web quest
Reny galaviz web quest
 
Reny Galaviz Web Quest
Reny Galaviz Web QuestReny Galaviz Web Quest
Reny Galaviz Web Quest
 
Automatas 2014 s1 guía
Automatas 2014 s1 guíaAutomatas 2014 s1 guía
Automatas 2014 s1 guía
 
maquinas de turing
maquinas de turingmaquinas de turing
maquinas de turing
 
AUTOMATAS
AUTOMATASAUTOMATAS
AUTOMATAS
 
Tipos de autómatas
Tipos de autómatasTipos de autómatas
Tipos de autómatas
 
automatas finitos
 automatas finitos automatas finitos
automatas finitos
 
Presentación 2014 profe gabriel
Presentación 2014 profe gabrielPresentación 2014 profe gabriel
Presentación 2014 profe gabriel
 
Sistemas AutÓmatas.
Sistemas AutÓmatas.Sistemas AutÓmatas.
Sistemas AutÓmatas.
 

Último

El uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELEl uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELmaryfer27m
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdfIsabellaMontaomurill
 
Hernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxHernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxJOSEMANUELHERNANDEZH11
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfsoporteupcology
 
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersSalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersIván López Martín
 
dokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptdokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptMiguelAtencio10
 
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...JaquelineJuarez15
 
R1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaR1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaarkananubis
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxaylincamaho
 
tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxazmysanros90
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024GiovanniJavierHidalg
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesFundación YOD YOD
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxNombre Apellidos
 
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA241531640
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxpabonheidy28
 
Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadMiguelAngelVillanuev48
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)GDGSucre
 
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...FacuMeza2
 
El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.241514949
 
definicion segun autores de matemáticas educativa
definicion segun autores de matemáticas  educativadefinicion segun autores de matemáticas  educativa
definicion segun autores de matemáticas educativaAdrianaMartnez618894
 

Último (20)

El uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELEl uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFEL
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdf
 
Hernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxHernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptx
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdf
 
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersSalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
 
dokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptdokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.ppt
 
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
 
R1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaR1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en mina
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
 
tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptx
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento Protégeles
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
 
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docx
 
Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidad
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)
 
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
 
El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.
 
definicion segun autores de matemáticas educativa
definicion segun autores de matemáticas  educativadefinicion segun autores de matemáticas  educativa
definicion segun autores de matemáticas educativa
 

Articulo Autómata (push down)

  • 1. Universidad Iberoamericana (Unibe) DESCRIPCIÓN BREVE Autómatas Push-Down es una máquina con un número finito de estados, una cinta de entrada y una Pila. PUSH-DOWN AUTÓMATA Anyela Báez 13-1005 - Leslei García 13-0991 PROFESORA: DRA. ING. RINA FAMILIA
  • 2. Anyela Báez 13-1005 Leslei García 13-0991 Artículo Push-Down Autómata Materia: Lenguajes Formales y Teoría de Autómatas PROFESORA: DRA. ING. RINA FAMILIA Santo Domingo Rep., Dom. 24 de Febrero 2014 pág. 2
  • 3. Índice Resumen.…………………………………………………………………………………………4 Introducción………………………………………………………………………………………5 Historia y aplicaciones…………………………………………………………………………...7 Teoría……………………………………………………………………………………………..7 Definición………………………………………………………………………………………...7 Ejemplo de un autómata de pila…………………………………………………………8 Un autómata Push-Down (APD) es una colección de 8 cosas…………………………10 Aceptores Push-Down. Definiciones……………………………………………..……11 Autómatas de Pila y lenguajes libres de contexto……………………………………...12 Clasificación de Autómatas Push-Down……………………………………………………..12 El funcionamiento típico de un autómata Push-down………………………………….14 Descripción……………………………………………………………………………..14 Aplicación de un Autómata Push-down………………………...……………………...16 Aceptores Push-Down Propios…………………………………………………………18 Autómatas de pila………………………………………………………………………20 Representación gráfica de un AP……………………………………………………….20 Conclusión……………………………………………………………………………...24 Glosario………………………………………………………………………………...25 Referencias……………………………………………………………………………..26 pág. 3
  • 4. Resumen Autómatas Push-Down es una máquina con un número finito de estados, una cinta de entrada y una Pila. El autómata lee cadenas de símbolos de longitud finita de la cinta de entrada que es infinita. El comportamiento de la máquina está determinado por el estado en que se encuentra, el símbolo o símbolos en el tope de la Pila y el o los símbolos en la cinta de entrada. Para cada estado y dependiendo del tope de la Pila, al leer uno o varios símbolos de la cinta de entrada cambia de estado, empila o despila de la Pila y avanza en la cinta de entrada. Estas máquinas también pueden usarse para reconocer lenguajes, es decir, para leer cadenas y determinar si pertenecen o no a un lenguaje dado. También sirven para describir el comportamiento de ciertas máquinas. Dependiendo de lo que lee, del tope de la Pila y del estado en el que se encuentra, cambia de estado avanza en la cinta de entrada, despila lo que reconoció en la Pila y empila símbolos en la Pila de acuerdo con la relación de transición de estados. pág. 4
  • 5. Introducción La Introducción a la Informática Teórica, también conocido como TALF (Teoría de Autómatas y Lenguajes Formales), trata principalmente sobre las capacidades de cualquier máquina que sea capaz de calcular o computar (incluida entre estas máquinas, están los computadores... porque computan). Por una parte, están los problemas de cesibilidad, los cuales nos permiten decidir cuándo un computador (o una máquina que computar) es capaz de resolver un problema dado. Cuando se habla de autómata, se hace referencia a máquinas (abstractas o no) que sean capaces de computar. De igual manera que los lenguajes regulares se pueden representar mediante autómatas finitos deterministas, los lenguajes independientes del contexto tienen su correspondencia en otro tipo de dispositivo: el Autómata de Pila (AP). Push-Down. Un autómata de pila es un dispositivo que tiene acceso a: • Una secuencia de símbolos de entrada, que en general se representa por una cinta que se desplaza frente a un mecanismo de captación de dichos símbolos. • El símbolo superior de una memoria en pila (LIFO) Un autómata a pila se encuentra en cada momento en un estado determinado y el estado siguiente depende de los tres elementos siguientes: • Estado actual • Símbolo de entrada • Símbolo superior de la pila Generalmente, el autómata a pila es no determinista en el sentido de que se permite que haya varias acciones posibles en cada momento. Los autómatas de pila, en forma similar a como se usan los autómatas finitos, también se pueden utilizar para aceptar cadenas de un lenguaje definido sobre un alfabeto A. Los autómatas de pila pueden aceptar lenguajes que no pueden aceptar los autómatas finitos. Un autómata de pila cuenta con una cinta de entrada y un mecanismo de control que puede encontrarse en uno de entre un número finito de estados. Uno de estos estados se designa como estado inicial, y además algunos estados se llaman de aceptación o finales. A diferencia de los autómatas finitos, los autómatas de pila cuentan Con una memoria auxiliar llamada pila. Los símbolos (llamados símbolos de pila) pueden ser insertados o extraídos de la pila, de acuerdo con el manejo last-infirstout (LIFO). Las transiciones entre los estados que ejecutan los autómatas de pila pág. 5
  • 6. dependen de los símbolos de entrada y de los símbolos de la pila. El autómata acepta una cadena x si la secuencia de transiciones, comenzando en estado inicial y con pila vacía, conduce a un estado final, después de leer toda la cadena x. pág. 6
  • 7. Historia y aplicaciones EPDAs fueron descritos por primera vez por K. Vijay-Shanker en su tesis doctoral 1988. Desde entonces, han sido aplicadas a descripciones más completas de la clase de gramáticas levemente sensibles al contexto y han tenido un papel importante en la ampliación y el perfeccionamiento de la jerarquía de Chomsky a esta clase. Varios subgrammars, tales como la gramática indexada lineal, por lo tanto se pueden definir. También están empezando a jugar un papel importante en el procesamiento del lenguaje natural. Mientras que los lenguajes naturales tradicionalmente han sido analizados mediante gramáticas libres de contexto, este modelo no funciona bien para los idiomas con dependencias cruzadas, como la holandesa, situaciones para las que la EPDA es muy adecuada. Teoría Un EPDA es una máquina de estados finitos con un conjunto de pilas que se puede acceder a través de ellos la pila incorporada. Cada pila contiene elementos del alfabeto de pila, y por lo que definen un elemento de una pila por, donde la estrella es el cierre de Kleenedel alfabeto. Cada pila se puede definir en términos de sus elementos, por lo que se denota la pila ª en el autómata mediante un símbolo de la doble daga:, donde sería el siguiente símbolo accesible en la pila. Definición Un autómata con pila (PDA) es esencialmente un autómata finito que posee control sobre una pila, es decir una lista de la cual solo se puede “leer”, “poner” o “sacar” el primer elemento. Dado el estado actual del autómata y el primer elemento de la pila, un símbolo de input nos llevará (posiblemente en forma no determinística) el estado siguiente y a la modificación que se debe hacer en el primer elemento de la pila. Diremos que una cadena es aceptada por pila vacía por el PDA si cuando la aplicamos obtenemos una pila vacía. Diremos que una cadena es aceptada por estado final por el PDA si lleva el estado inicial a uno final. Los lenguajes aceptados por los autómatas con pila, tantos los aceptados por pila vacía o por estado final, son los mismos que los aceptados por las gramáticas libres de contexto e incluye estrictamente a los lenguajes regulares. pág. 7
  • 8. Un autómata de pila o Push-Down es un autómata que cuenta con un mecanismo que permita almacenamiento ilimitado y opera como una pila. El autómata de pila (se abrevia PDA de sus siglas en inglés Push-Down Autómata) tiene una cinta de entrada, un control finito y una pila. La pila es una cadena de símbolos de algún alfabeto. El símbolo que se encuentra más a la izquierda se considera como que está en la “cima”. El dispositivo será no determinístico y tendrá un número finito de alternativas de movimiento en cada situación como se muestra en la siguiente figura. Ejemplo de un autómata de pila Un autómata de pila (APN) es una máquina de estados finito al que se le añade una memoria externa en forma de pila (stack), es decir que sólo acepta operaciones meter (push) y sacar (pop). Los movimientos serán de dos tipos. En el primer tipo de movimiento se utiliza un símbolo de entrada. Dependiendo del símbolo de entrada, del símbolo de la cima y el estado de control finito, es posible un número de alternativas. Cada alternativa consiste en un estado posterior para el control finito y una cadena (posiblemente vacía) de símbolos, para sustituir al símbolo que se encuentra en la cima de la pila. Después de seleccionar una alternativa, la cabeza de entrada avanza un símbolo como se ilustra en la siguiente figura: pág. 8
  • 9. La figura anterior muestra el avance de un símbolo de entrada (q1, c, B), a un estado posterior y sustitución de la cima de la pila {(q2, B)}. El segundo tipo de movimiento conocido como movimiento ε es parecido al primero, excepto que el símbolo de entrada no se utiliza y la cabeza de la entrada no avanza después del movimiento. Este tipo de movimiento permite al PDA manipular la pila sin leer símbolos de entrada como se muestra en la figura: Manipulación de la pila sin leer símbolo de entrada. Un autómata de pila es un autómata finito más una pila. Se definen por la a tupla M = (Q; P ; ¡; ±; q0; Z0; F) donde Q; P,S , q0 y F se definen igual que en un AFN. G es un alfabeto de los caracteres que pueden introducirse a la pila, y Z0 es el símbolo inicial en la misma, generalmente l (significa pila vacía), pero en ocasiones es útil usar otro símbolo. La función de transición es definida como: : Q x (S È {l } ) x (G È {l } ) ® [Q x (G È {l })]* Es decir que el cambio de estado ya no sólo depende del estado y del símbolo en la entrada, sino además del contenido de la pila, específicamente del símbolo en el tope de la pila. El contenido de la pila puede cambiar después de cada transición. Para clarificar a la función de transición, analicemos la parte por parte: Q x (S È {l } ) x (G È {l } ): Esta nos dice que los elementos del dominio son tercias (estado, alfabeto, pila) [Q x (G È {l })]*: Indica que el codominio son varios pares del tipo (estado, pila). pág. 9
  • 10. Un autómata Push-Down (APD) es una colección de 8 cosas: 1. Un alfabeto Σ de letras de entrada 2. Una cinta de entrada (infinita en una dirección). Inicialmente la cadena de letras de entrada se ubica en la cinta comenzando en la celda i. El resto de la cinta tiene blancos. 3. Un alfabeto Γ de caracteres del stack. 4. Un stackpush-down (infinito en una dirección). Inicialmente el stack está vacío (contiene todos blancos). 5. Un estado start que contiene solo aristas de salida, no aristas de entrada. 6. Estados de detención de dos clases: algunos accept y algunosreject. Tienen aristas de entrada y no aristas de salida. 7. Un número finito de estados pushsin ramificación que introducen caracteres en la parte superior del stack. Son de la forma: 8. Donde X es cualquier letra en Γ.Un número finito de estados con ramificación de dos clases: i) estados que leen la próxima letra no usada de la cinta. Que pueden tener aristas de salida etiquetadas con letras de Σ y el carácter blanco Δ, sin restricciones de duplicación de etiquetas y sin obligación de que haya una etiqueta para cada letra de Σ, o una Δ. Y ii) estados que leen el carácter superior del stack pág. 10
  • 11. Que pueden tener aristas de salida etiquetadas con letras de Γ y el carácter blanco Δ, nuevamente sin restricciones. Ejecutar una cadena de letras entradas en un APD significa comenzar desde el estado starty seguir las aristas no etiquetadas y las etiquetadas que generen un camino a través del diagrama. El camino termina en un estado de detención o hará crash en algún estado que no posea ramificación ante la lectura de un carácter de la entrada desde la cinta. Aceptores Push-Down. Definiciones Un aceptor Push-Down (APD) es una tupla de seis elementos: M = (Q, S, U, P, I, F) en la cual: Q es el conjunto finito de estados de la unidad de control S es un alfabeto finito de entrada U es un alfabeto finito de la pila o "stack" P es el programa de M I Í Q es un conjunto de estados iniciales F Í Q es un conjunto de estados finales o estados de aceptación El programa P es una secuencia finita de instrucciones, cada una de las cuales tiene una de las siguientes formas: En cada caso, el estado q es la etiqueta o rótulo de la instrucción, y el estado q' es el estado sucesor. Cada estado en Q rotula como máximo un tipo de instrucción read, write o scan. pág. 11
  • 12. Si q es un estado cualquiera, j es un string cualquiera de S* y s es cualquier string en U*, luego (q, j, s) es una configuración de M. El string s se llama usualmente pila o "stack" y el símbolo que se encuentra al tope de la misma se conoce como símbolo tope de la pila. Una configuración (q, j, s) es una descripción completa del estado total de un aceptor Push-Down en algún punto en su análisis de una cinta de entrada. El control se encuentra en el estado q; el prefijo j del string de entrada ya ha sido explorado ("scanned") y el cabezal de entrada se posiciona en el último símbolo de j; la pila s es el contenido de la cinta de almacenamiento, y el cabezal de la pila se posiciona en el último símbolo de s. Autómatas de Pila y lenguajes libres de contexto Los autómatas de pila son máquinas que nos permiten aceptar lenguajes libres de contexto. Los autómatas de pila son máquinas finitas que tienen una memoria que les da la capacidad de "recordar". De esta manera es posible reconocer lenguajes del tipo aibi | i >= 0, en el que se necesita saber cuántas a’s tiene la palabra para determinar si el número de b’s es igual. Clasificación de Autómatas Push-Down Autómatas a pila embebidos Autómatas a pila embebidos ascendentes Autómatas lógicos a pila restringidos Autómatas lineales de índices Autómatas con dos pilas. Autómatas a pila embebidos En los cuales la estructura principal de almacenamiento la constituye una pila de pilas. Junto a la definición clásica se presenta una nueva formulación en la cual se elimina el control de estado finito y se simplifica la forma de las transiciones al tiempo que se mantiene la potencia expresiva. Esta nueva formulación permite diseñar una técnica de tabulación para la ejecución eficiente de los diversos esquemas de compilación para gramáticas de adjunción de árboles y gramáticas lineales de índices. Autómatas a pila embebidos ascendentes Constituyen los autómatas a pila embebidos ascendentes. La eliminación del control de estado finito permite simplificar la forma de las transiciones, lo cual facilita la definición de una técnica de tabulación para este modelo de autómata. Autómatas lógicos a pila restringidos pág. 12
  • 13. Las gramáticas lineales de índices constituyen un tipo específico de gramáticas de cláusulas definidas en el cual los predicados tienen un único argumento en forma de pila de índices. Aprovechamos esta característica para definir una versión restringida de los autómatas lógicos a pila adecuada al tratamiento de este tipo de gramáticas y de las gramáticas de adjunción de árboles. Dependiendo de la forma de las transiciones permitidas, podemos distinguir tres tipos diferentes de autómata, uno que permite el análisis ascendente de los índices o adjunciones, otro que permite el análisis descendente y otro que permite estrategias mixtas. En los dos últimos casos es preciso establecer restricciones en la combinación de las transiciones para garantizar que dichos autómatas aceptan exactamente la clase de los lenguajes de adjunción de árboles. Se presentan esquemas de compilación y técnicas de tabulación para los tres tipos de autómata. Autómatas lineales de índices Los autómatas lineales de índices, que utilizan la misma estructura de almacenamiento que los autómatas lógicos a pila restringidos pero con un juego diferente de transiciones. Distinguimos tres tipos diferentes de autómata: los autómatas lineales de índices orientados a la derecha para estrategias en las cuales las pilas de índices se evalúan de modo ascendente, los autómatas lineales de índices orientados a la izquierda en los cuales las pilas de se evalúan de modo descendente y los autómatas lineales de índices fuertemente dirigidos que permiten definir estrategias mixtas de análisis para el tratamiento de las pilas de índices. Autómatas con dos pilas Se opta por un modelo de autómata con una nueva estructura de almacenamiento. Se preserva la pila de los autómatas a pila tradicionales, a la que acompaña una pila auxiliar cuyo contenido restringe el conjunto de transiciones aplicables es un momento dado. Los autómatas con dos pilas fuertemente dirigidos permiten definir esquemas de compilación arbitrarios para gramáticas de adjunción de árboles y gramáticas lineales de índices. Por su parte, los autómatas con dos pilas ascendentes sólo permiten describir esquemas de compilación que incorporan estrategias ascendentes en lo referente al tratamiento de las adjunciones y de las pilas de índices. Se presentan las técnicas de tabulación que permiten una ejecución eficiente de ambos modelos de autómata. pág. 13
  • 14. El funcionamiento típico de un autómata Push-down. Por ejemplo, el siguiente autómata de pila reconoce L(G) = {wcwR|w E (0+1)*} , es decir los palíndromes en (0 + 1)* cuyo punto intermedio está marcado con un carácter especial c: M = ({q1,q2}, {0,1}, {RBG}, d , q1, R, q ) Donde d vale: Descripción [q, w, a ] ^ [qj,v,b ] ^ * ^ + Se pueden usar descripciones instantáneas para ver el funcionamiento del autómata: (q, aw, za ) ^ (p,w,b a ) si d (q,a,z) = (p,b ). La cadena de un lenguaje es aceptado por el autómata si éste para en elestado final: L(M) = {w|(q0,w,Z0) ^ (p,e ,g ) para algún p Î F, g Î G *} Autómata Push-down para el reconocimiento de lenguajes libres de contexto. Toda gramática GLC puede ponerse en forma normal de Greibach, en donde todas las producciones son del tipo L ->aa donde a Î (V U T)*, a Î (T U {e }). Método de normalización: Suponer V = { L 1 ... L m}. Hacer todas las producciones del estilo L i -> L jg para j >i. Si j < i, sustituir L j por sus lados derechos. Si j = i, eliminar recursión a la izquierda, sustituyendo: L i -> L a 1 | L a 2 | ... | L ia 1 || b 1 | .... |b n | por: L i -> b 1 | .... |b s | b 1B| .... |b s Bi Bi -> a 1 |a 2| .... |a T | a 1Bi| a 2Bi| .... |a T Bi Sustituir L m -> g en L m-1, después en L m-2 y así sucesivamente. En las nuevas producciones Bi, si es necesario sustituir el primer símbolo no terminal por lo que produce. Por ejemplo en: G = ({L 1; L 2; L 3 },{a,b},P, L 1) P : L 1 -> L 2L 3 pág. 14
  • 15. L 2 -> L 3L 1 | b L 3 -> L 1L 2 | a Hay que cambiar la última producción en L 3 -> L 1L 2 | a L 3 -> L 2L 3L 2 | a L 3 -> L 3L 1L 3L 2 | bL 3L 2 |a y después de eliminar la recursión a la izquierda tenemos L 3 ->bL 3L 2B3 | aB3 | bL 3L 2 | a B3 -> L 1L 3L 2 | L 1L 3L 2B3 Finalmente sólo nos resta sustituir en toda producción, a partir de L 3, los símbolos no terminales de la izquierda. Obtención de una GLC a partir de un Autómata de Pila (push-down). Para obtener la GLC G = (V, T, P, S) correspondiente a un APN M, hay que crear primero un APN extendido M´ con d ´ construida a partir de d a la que se le añade: 1. Si [ qj, e ] Î d ( qi, u, e ) entonces [ qj, L ] Î d ´ (qi, u, L ) para toda L Î G . 2. Si [ qj, B ] Î d ( qi, u, e ) entonces [ qj, BL ] Î d ´ (qi, u, L ) para toda L Î G . El alfabeto de entrada de G es el alfabeto de entrada de M´. Las variables de G consisten de un símbolo inicial S y objetos de la forma <qi, L ,qj> donde las q’s son los estados de M´ y L Î G È {e }. La variable <qi, L ,qj> representa un cálculo que comienza en el estado qi , termina en qj y quita el símbolo L de la pila. Las reglas de G son construidas de la siguiente manera: S Þ < q0, e ,qj> para cada qj Î F. Cada transición [ qj, B ] Î d ( qi, x, L ), donde L Î G È {e } genera el conjunto de reglas {<qi, L , qk>Þ x <qj, B, qk> | qk Î Q } 3. Cada transición [ qj, BL ] Î d ( qi, x, L ), donde L Î G È {e } genera el conjunto de reglas {<qi, L , qk>Þ x <qj, B, qn><qn, L , qk> | qk , qn Î Q } Para cada estado qk Î Q ,<qk , e , qk> Þ e Obtención de una gramática de contexto libre a partir de un Autómata Push-down sin estados finales. Si en lugar de tener un Autómata Push-down con estados finales como en el caso anterior tenemos un autómata Push-down que termina cuando se vacía la pila, podemos aplicar el procedimiento explicado a continuación. Si M = (Q, S , G , d , q0, Z0, q ) es pág. 15
  • 16. una autómata Push-down, puede ser representado por la gramática libre de contexto G = (V, S , P, S), donde V = {< q, L , p > | q, p Î Q ^ L Î G } È {S} y P tiene las siguientes producciones: S Þ [q0, Z0, q] para cada q en Q. [q, L , qm+1] Þ a[q1,B1,q2][q2,B2,q3] ... [qm,Bm,qm+1] para cada q,q1,q2, ..., qm+1 en Q, cada a en S È {e } y L , B1, B2, ... Bm en G tal que d (q,a,L )contiene a (q1, B1B2 ... Bm). Aplicación de un Autómata Push-down El autómata para procesar un lenguaje del tipo 2 o Lenguaje de contexto libre es llamado Autómata Finito Push-down (PDFA). El elemento push-down permite que este tipo de autómata puede procesar las sentencias más complejas que puedan resultar de un lenguaje de contexto libre. En otras palabras, una de las diferencias fundamentales entre un lenguaje del tipo 3 y uno del tipo 2 es la necesidad de "recordar" cuándo fue la ocurrencia de un símbolo y cuándo se generó una comparación de símbolo. Este es el caso del lenguaje de paréntesis, en el que es necesario recordar el número de paréntesis izquierdo en orden para reconocer el número de paréntesis derecho correcto. El Autómata Pushdown mantiene un stack que es usado como memoria para este propósito. En el autómata finito de estados, las transiciones entre estados se basan sólo en el estado actual y en el carácter de la cadena de entrada. EN el caso de los autómatas Pushdown la transición es una función del estado actual, el carácter actual en la cadena de entrada y el carácter actual en la CIMA del stack del autómata Push-down. En el lenguaje de paréntesis, es necesario no perder de vista cada paréntesis izquierdo que es encontrado, además de cuándo se ha encontrado un paréntesis derecho después en la sentencia. Esto puede hacerse poniendo una marca en el stack del Autómata Push-down cada vez que se encuentra un paréntesis izquierdo. Cuando se encuentra un paréntesis derecho en la sentencia de entrada, se hace una transición de estado se hace solo si el stack tiene la marca correspondiente; y en caso contrario, entonces la sentencia no es parte del lenguaje de paréntesis. Si el último estado del autómata push-down no es un estado de aceptación entonces la sentencia no es parte del lenguaje. pág. 16
  • 17. Figura 3.5.1.- Autómata de Estados Finitos para el Lenguaje de Paréntesis. El primer paso del autómata del diseño de un autómata de push-down para el lenguaje de paréntesis es desarrollar un autómata finito como el siguiente. El autómata finito para el lenguaje de paréntesis consiste en un control de 4 estados: el estado inicial (S), el estado para el procesamiento del paréntesis izquierdo (L), el estado para el procesamiento del paréntesis derecho (R) y el estado final (F). En este caso asumimos que una sentencia de lenguaje termina por el símbolo (#). Este carácter final, cuando es encontrado realiza una transición desde el estado R hasta el estado F. Pero qué tipo de sentencias en lenguaje de paréntesis podrá reconocer este autómata finito por ejemplo: El paréntesis izquierdo inicial nos indica hacer una transición desde el estado Sistemas al estado L y el siguiente paréntesis izquierdo causa una transición hacer esta al mismo estado L. Luego el primer paréntesis derecho es procesado y se hace una transición al estado R. En el estado R si se encuentra otro paréntesis izquierdo, se hará una transición de regreso al estado L. El siguiente paréntesis derecho es procesado, y se hace una transición al estado R una vez más. El siguiente paréntesis causa una transición en el mismo estado R. Finalmente (#) causa una transición al estado final y la sentencia es reconocida. Y la sentencia es (()()) # . Pasos del reconocimiento de la sentencia anterior. El autómata finito push-down tiene la memoria necesaria para no perder de vista los paréntesis izquierdos y así es como estos son procesados en una sentencia del lenguaje de paréntesis. Al autómata finito se le aumentan operaciones destack (PILA), para que pueda procesar elementos de una sentencia y sea capaz de no perder de vista pág. 17
  • 18. los paréntesis. El autómata aumentado (PDFA) se muestra en la siguiente figura. Figura 3.5.4.- Autómata Finito push-down para el lenguaje de paréntesis Aceptores Push-Down Propios Nuestra definición de APD no permite ciertos comportamientos anómalos o no productivos. En particular: 1.- Un APD no puede explorar más allá del final del stringque está en la cinta de entrada, debido a que no puede hacer un movimiento en el cual un "numeral" sea explorado. 2.- Un APD no puede mover su cabezal sobre la pila a la izquierda del primer segmento de la cinta de almacenamiento, ya que no puede realizar un movimiento en el cual un "numeral" sea leído de la pila. Sin embargo, otros dos tipos de comportamientos improductivos que pueden ocurrir, y que pueden conducir a dificultades en el análisis de las propiedades de aceptores Push-Down, son: 3.- Uno se produce cuando un movimiento de read ocurre inmediatamente después de un movimiento de write. 4.- El otro es una repetición sin fin de sucesivos movimientos de write (ciclo). Supongamos que un APD M tiene una secuencia de movimientos en la cual un movimiento de write es seguido por un movimiento de read, y en esta secuencia no intervienen movimientos de scan: Este par de movimientos no tiene un efecto neto además de hacer que la unidad de control cambie entre los estados q y q". Esta secuencia de movimientos pág. 18
  • 19. inconsistentes puede ocurrir solamente si M tiene una instrucción de escritura: q] write (u, q') para la cual el estado sucesor q' es el rótulo de una instrucción read. En el programa de un APD M, una instrucción write: q] write (u, q') es impropia si q' es el rótulo de una instrucción read cualquiera. Una APD es propio si su programa no contiene instrucciones impropias. Las instrucciones impropias son fácilmente identificables en el diagrama de estados de un APD, y pueden ser eliminadas sin modificar el comportamiento de la máquina en lo referente al lenguaje reconocido. En particular, si M es un APD cualquiera, es posible construir un APDP mediante la adición y el borrado de instrucciones tal como sigue. Obsérvese que no hay transiciones para todas las ternas posibles de estado, símbolo de entrada y símbolo de pila. Por lo tanto, si el PDA pasa a un estado para el cual no se especifica un estado siguiente y una acción de la pila para los símbolos actuales de la pila y la entrada, el PDA no puede volver a realizar ningún movimiento. En particular, cuando el autómata está en el estado q4, que es el estado de aceptación, no hay ninguna transición sea cual sea el símbolo de la cima y de la entrada. Si el PDA se mueve al estado q2, entonces obsérvese que cada vez que aparece en la entrada se apila una B en la pila. El PDA permanece en el estado q2 hasta que se encuentra la primera b entonces se mueve al estado q3, ninguna b puede preceder a una a. pág. 19
  • 20. Finalmente, en el estado q3 sólo se consideran las b’s y, cuando se encuentra cualquier b, se desapila B de la pila. (Sólo pueden desapilarse las B’s que fueron apiladas, debido a encontrarse una a en la entrada). Las únicas cadenas que acepta el PDA pertenecen al lenguaje puesto que son las únicas cadenas de entrada que, una vez que han sido consumidas, causan que el PDA termine en el estado final q4. Autómatas de pila Desafortunadamente los autómatas de conteo no son suficientemente poderosos para reconocer todos los LLC. En ocasiones se requiere más de un tipo de cuenta o “roca” o en lugar de una “bolsa”. Se utiliza un stack o pila LIFO (Last In FirstOut) en el cual el orden es importante. La acción que lleva a cabo el autómata sólo es influenciada no sólo por el estado en que se encuentra y por el símbolo que lee, sino también por el tipo de piedra u objeto que se encuentra arriba en la pila. Representación gráfica de un AP La transición ((p, u, b), (q, g)), d(p, u, b) = (q, g), se presenta gráficamente por Y, significa que cuando estamos en el estado p, leemos de la palabra de entrada el símbolo u y sacamos del stack el símbolo b, entonces pasamos al estado q y ponemos en la pila la cadena g. Y, significa que cuando estamos en el estado p, leemos de la palabra de entrada el símbolo u y sacamos del stack el símbolo b, entonces pasamos al estado q y ponemos en la pila la cadena g. pág. 20
  • 21. Ejemplo Autómata de pila que acepte {aibi | i m 0} K = {q0, q1} –S = {a, b} –G = {A} –s0 = q0 –F = {q0, q1} –d(q0, a, l) = (q0, A) –d(q0, b, A) = (q1, l) –d(q1, b, A) = (q1, l) pág. 21
  • 22. Ejemplo: palíndromos de longitud impar Ejemplo: palíndromos de longitud par pág. 22
  • 24. Conclusión El análisis de este nivel de autómatas específicamente de Push-Down nos permitió abrir el horizonte mostrando en cada punto de la investigación la existencia de múltiples herramientas que pueden favorecer en nuestro trabajo del día a día, las cuales ya están demostradas en su funcionamiento desde su inicio y existirá siempre la seguridad de que no habrá un problema con dicho análisis. Donde además de conocer se obtuvieron informaciones, en las cuales se destacaron que los autómatas de pila, en forma similar a como se usan los autómatas finitos, también se pueden utilizar para aceptar cadenas de un lenguaje definido sobre un alfabeto A; a diferencia de los autómatas finitos, los autómatas de pila si cuentan con una memoria auxiliar llamada pila. Y sobre todo las transiciones entre los estados que ejecutan los autómatas de pila dependen de los símbolos de entrada y de los símbolos de la pila. Esperando que este artículo de investigación pueda aportar conocimientos y a su vez servir de apoyo a la hora de indagar dicho tema. pág. 24
  • 25. Glosario Autómata: Es una máquina capaz de efectuar por sí misma un cierto número de operaciones previamente especificadas. Pila: Lista de elementos a la cual se puede insertar o eliminar elementos sólo por uno de sus extremos. Compilador: Programa escrito generalmente en lenguaje de máquina que permite compilar. Compilar: Producir una rutina en lenguaje máquina mediante una rutina escrita en otro lenguaje diferente a la máquina. Extraer (Pop): Reemplazar el contenido de una parte específica de una palabra con las partes correspondientes de otra palabra, lo cual es determinado por algún tipo de control de patrón. Instrucción: Conjunto de caracteres que representan una orden dada a la máquina y que esta puede cumplir. Lenguaje: Conjunto de caracteres, símbolos, palabras, frases, instrucciones y reglas que permiten escribir y describir programas para una aplicación dada. Lenguaje de máquina: Sistema de instrucciones que es directamente utilizable por la máquina, tal como se encuentra en la memoria principal en el momento en que está cargada. Lenguaje de programación: Aquel que utilizan los programadores para escribir un programa en forma más o menos cómoda y que lo general requiere una traducción para ser transformado a lenguaje de máquina. Embebido: sistema de computación diseñado para realizar una o algunas pocas funciones dedicadas frecuentemente en un sistema de computación en tiempo real. pág. 25
  • 26. Referencias Centro de Artigos (S.F). Historia, aplicaciones y teoría. Recuperado el 20 de Febrero del 2014 de: http://centrodeartigos.com/articulos-revista-digital/contenidorevista-30635.html CS. Famaf (2012). Definición. Recuperado el 20 de Febrero del 2014 de: http://www.cs.famaf.unc.edu.ar/wiki/lib/exe/fetch.php?media=intrologica:autom atas2012.pdf Frro.utn.edu (S.F) Automata Push-Down. Recuperado el 20 de Febrero del 2014 de: http://www.frro.utn.edu.ar/repositorio/catedras/sistemas/2_anio/sintaxis/PushDo wn_y_Turing.pdf OOcities. (S.F). Autómatas de pila. Recuperado el 20 de Febrero del 2014 de: http://www.oocities.org/mx/prog_sis_itq/Equipo3/autopush.html#_Toc52627736 8 OOcities. (S.F) Clasificación de autómatas Push-Down. Recuperado el 20 de Febrero del 2014 del:http://www.oocities.org/mx/prog_sis_itq/Equipo3/autopush.html#_ OOcities (S.F) Ejemplo de un autómata de pila. Recuperado el 20 de Febrero del 2014 de: http://www.oocities.org/mx/prog_sis_itq/Equipo3/autopush.html#_Toc52627736 8 Portal Tecnología. (2010). Aceptores Push-Down. Recuperado el 20 de Febrero del 2014 del: http://www.portaltecnologica.com.ar/wpcontent/uploads/2010/03/Unidad-3.pdf Portal tecnología (2010). Aplicación de un autómata push-down. Recuperado el 20 de Febrero del 2014 de: http://www.portaltecnologica.com.ar/wp- content/uploads/2010/03/Unidad-3.pdf Teo de la Comp (2011) Aceptores Push-Down Propios. Recuperado el 20 de Febrero del 2014 de: http://teodelacomp.blogspot.com/2011/03/automata-pushdown.html Teo de la Comp (2011) Ejemplo de un autómata de pila. Recuperado el 20 de Febrero del 2014 de: http://teodelacomp.blogspot.com/2011/03/automata-push-down.html pág. 26