Aut - PowerPoint PPT Presentation

1 / 37
About This Presentation
Title:

Aut

Description:

Aut matas de Pila Teor a del Aut mata Definici n Definici n Definici n Lenguaje aceptado por un ADPND Ejemplo Explicaci n Ejemplo Aut matas de pila y ... – PowerPoint PPT presentation

Number of Views:30
Avg rating:3.0/5.0
Slides: 38
Provided by: galiaFcU7
Category:
Tags: aut | automatas

less

Transcript and Presenter's Notes

Title: Aut


1
Autómatas de Pila
  • Teoría del Autómata

2
Definición
Un Autómata de pila no determinista (ADPND) es
una 7-tupla. M (Q, S, G, D, s, F, z) donde Q
es un conjunto finito de estados S es un
alfabeto de entrada G es un alfabeto llamado
alfabeto de la pila D es una regla de
transición s ? Q es el estado inicial o de
partida F ? Q es el conjunto de los estados
finales o de aceptación z ? G es el símbolo
inicial de la pila La D se define por medio de la
terna (q, s, g), donde q es el estado actual, s
es un símbolo de D ? e y g ? G. El resultado de
aplicar D a esta terna es el par (p, w), donde p
es el siguiente estado y w es la cadena que se
apilará en lugar del símbolo g.
3
Definición
Entonces D se define como D ? Q ? (S ? e) ? G
? Q ? G Se puede tener que D(q, a, b) produzca
(p, e), esto indica que el estado siguiente es p
y el símbolo b se elimina de la pila. No es
posible ningún movimiento si la pila está
vacía. Es posible también tener D(q, e, a)
(p, aa), esto es, cambiar al estado p sin
consumir ningún símbolo y apilando una a.
También, si D(q, e, a) ?, no es posible ningún
movimiento y el ADPND parará.
4
Definición
La terna (q, w, u), donde q es el estado actual,
w es la cadena de entrada restante y u el
contenido de la pila (con el símbolo de la cima
en el extremo de la izquierda), se llama
descripción instantánea del autómata. Indicaremos
un movimiento de una configuración a otra
situando el símbolo ? entre dos descripciones
instantáneas (q1, aw, bx) (q2, w,
yx) representa el movimiento que resulta de (q2,
y) ? D(q1, a, b).
5
Lenguaje aceptado por un ADPND
Sea M (Q, S, G, D, s, F, z) un ADPND. El
lenguaje aceptado por M se denota por L(M) y es
el conjunto L(M) w ? S (s, w, z) (p, ?,
u) para p ? F y u ? ?
6
Ejemplo
Se al ADPND Q q1, q2, q3, q4S a, bG
A, Bz AF q4s q1 D dada por
D (a, A) (b, A) (e, A) (a, B) (b, B) (e, B)
q1 (q2, BA), (q4, A) (q4, e)
q2 (q2, BB) (q3, e)
q3 (q4, A) (q3, e)
7
Explicación
El estado inicial es q1 y el de aceptación es q4.
La tabla pone en los renglones el estado actual
y en las columnas las transiciones
correspondientes para cada símbolo de entrada y
cada símbolo en la pila. El lenguaje aceptado es
anbn ? a
8
Ejemplo
El siguiente ADPND acepta L w ? a, b w
contiene el mismo número de aes que de bes Q
q1, q2S a, bG A, B,,Zz ZF
q2s q1 D dada por D(q1, e, Z) (q2, Z)
D(q1, a, Z) (q1, AZ) D(q1, b, Z) (q1,
BZ) D(q1, a, A) (q1, AA) D(q1, b, A)
(q1, e) D(q1, a, B) (q1, e) D(q1, b, B)
(q1, BB)
9
(q1, abba, Z) (q1, bba, AZ)
(q1, ba, Z) (q1, a, BZ) (q1, e,
Z) (q2, e, Z) Procesar aaababbb
10
El siguiente ADPND acepta L wcwI w ? a,
b Q q1, q2 , q3S a, b, cG a,
b,,zz zF q3 s q1 D dada por D(q1, a,
z) (q1, az) D(q1, c, z) (q2, z) D(q1,
a, a) (q1, aa) D(q1, c, a) (q2, a)
D(q1, a, b) (q1, ab) D(q1, c, b) (q2,
b) D(q1, b, z) (q1, bz) D(q2, a, a)
(q2, e) D(q1, b, a) (q1, ba) D(q2, b, b)
(q2, e) D(q1, b, b) (q1, bb) D(q2, e,
z) (q3, z)
11
Autómatas de pila y lenguajes independientes del
contexto
Se construirá un ADPND que acepte el mismo
lenguaje que una gramática G. Se construirá un
ADPND que haga las derivaciones por la izquierda
para cualquier cadena del lenguaje. Representaremo
s la derivación guardando en la pila los no
terminales del extremo derecho de la
derivación. La parte izquierda es idéntica a la
cadena de entrada que se ha leído.
12
Introducimos en la pila el símbolo inicial de G,
después se realiza una de estas actividades. 1.
Si el símbolo que está en la cima de la pila es
un no terminal A, lo sustituiremos por el lado
derecho de la producción para A, A ? w, o 2. Si
el símbolo en la cima de la pila es un terminal y
se corresponde con el siguiente símbolo de
entrada. Los desapilaremos de la pila. Si se
agota la cadena de entrada y en la cima de la
pila está el símbolo inicial de la pila,
aceptaremos la cadena.
13
Para construir un ADPND a partir de una gramática
G (N, S, S, P) se hace lo siguiente Se define
un ADPND con
Q q1, q2, q3 ? N ? ? ? z, z es el símbolo
inicial de la pila (distinto de todos los
símbolos de N ? S) F q3 s q1
14
la regla de transición está compuesta por cuatro
tipos de transiciones
  1. D(q1, e, z) (q2, Sz), la cual se corresponde
    con la introducción del símbolo inicial en la
    pila.
  2. D(q2, e, A) (q2, w) A ? w es una producción
    de P para cada no terminal A de N.
  3. D(q2, a, a) (q2, ?) para cada símbolo
    terminal a de ?.
  4. D(q2, e, z) (q3, z).

15
Ejemplo
Sea G S ? aSa bSb c El ADPND es D(q1, e,
z) (q2, Sz) D(q2, e, S) (q2, aSa), (q2,
bSb), (q2, c) D(q2, a, a) D(q2, b, b) D(q2,
c, c) (q2, e) D(q2, e, z) (q3, e)
16
La cadena abcba se acepta mediante la
secuencia (q1, abcba, z) - (q2, abcba, Sz)
- (q2, abcba, aSaz) - (q2, bcba, Saz) -
(q2, bcba, bSbaz) - (q2, cba, Sbaz) - (q2,
cba, cbaz) - (q2, ba, baz) - (q2, a,
az) - (q2, e, z) - (q3, e, z)
17
Obsérvese que si se tiene que (q2, x, Aa) - (q2,
x, ba), es posible A ? b. Por tanto si w
a1a2an es aceptada por el ADPND, debemos tener
(q2, a1a2an, Sz) - (q2, a1a2an, a1b1z) -
(q2, a2an, b1z) - (q2, an, anz) -
(q2, ?, z) - (q3, ?, z)
y por se obtienen las derivaciones siguientes S
? a1b1 ? a1a2b2 ? ? a1a2an w Por
consiguiente, si w es aceptada por el ADPND,
entonces w se deriva de la gramática.
18
Similarmente, si S ? a1a2an, entonces tendremos
una derivación de a1a2an por la izquierda y de
la forma S ? A1a1 ? a1a1 ? a1A2a2 ? a1a2a2 ?
a1a2an Por tanto, en un ADPND derivado de la
gramática, se puede tener la secuencia
(q2, a1a2an, Sz) (q2, a1a2an, a1a1z)
(q2, a2an, a1z) (q2, ?, z) (q3, ?,
z) Es decir el ADPND acepta la cadena w
a1a2an.
19
Teorema
Si L es un lenguaje independiente del contexto,
entonces existirá un ADPND para el cual L L(M).
20
GIC a partir de un ADPND
El lenguaje aceptado por la pila vacía de M se
define como N(M) w (q1, w, z)- (p, ?,
e) Sea M un ADPND. Podemos transformar M en un
ADPND M tal que L(M) N(M). Resultará que M
tendrá un único estado final. Además se requiere
que todas las transiciones sean de la
forma D(q, a, A) c1, c1, c1, ,cn donde ci
(p, ?) o ci (p, BC).
21
Diferencia entre L(M) y N(M)
No se cumple que el lenguaje aceptado por un
autómata sea el mismo que el aceptado con pila
vacía. D(q1, a, z) (q1, az) D(q1, b, z)
(q2, e) D(q1, a, a) (q3, a) N(M)
b L(M) a2
22
Transformación L(M) N(M)
Si M nunca desapila z, se hará de la siguiente
forma (q, e) ? D(q, t, z) Se sustituyen las
transiciones donde q no esté en F por nuevas
transiciones (p1, z). Se sustituyen las
transiciones donde q esté en F por nuevas
transiciones (p2, z) inclluyendo p2 en F. Para
todo q F, se añaden transiciones D(q, e, g)
(p3, g) para todo g ? G. D(p3, e, g) (p3,
e) para todo g ? G z D(p3, e, z) (p4,
e) Se hace F p4
23
Para poder seguir la traza de los estados por los
que pasa el autómata conforme se reconoce la
gramática, usaremos no terminales de la forma
qAp, donde interpretaremos qAp ? w como la
acción del ADPND correspondiente, que saca A de
la pila y se mueve del estado q al p mientras
consume la cadena de entrada w. Si (qj, ?) ?
D(qi, a, A), la producción correspondiente es
qiAqj ? a, ya que el ADPND para del estado qi
al estado qj y desapila A de la pila sobre el
símbolo de entrada a.
24
Por otro lado si (qj, BC) ? D(qi, a, A), la
entrada a produce que A sea desapilado, pero
entonces B y C serían rechazados. Para
eliminarlos incluiremos todas las producciones de
la forma qiAqm ? aqjBqnqnCqm, donde qn y qm
pueden ser cualquiera de los estados de Q.
Finalmente, tendremos como símbolo inicial
szqf, donde s es el estado inicial, z es el
símbolo inicial de la pila y qf es el (único)
estado de aceptación de ADPND. Obsérvese que, de
la forma de construir una gramática a partir de
un ADPND que satisfaga las condiciones dadas, se
obtiene que (qi, uv, Ax) - (qj, v, x) por medio
de las operaciones que realiza un autómata de
pila, entonces en la gramática resultante se
tendrá qiAqj ? u. Lo inverso también se cumple.
25
Construcción de GIC a partir de ADPND
Los no terminales serán de la forma pAq, donde
se interpreta pAq ? w como la acción de sacar A
de la pila mientras se va del estado p a q y se
consume la cadena w. Además el símbolo inicial es
szqf, donde s es el estado inicial qf es el
único estado de aceptación z es el símbolo
inicial de la pila. Las transiciones del autómata
se convierten a producciones de acuerdo a la
siguiente tabla.
Transición Producción
(qj, e) ? D(qi, a, A) qiAqj ? a
(qj, BC) ? D(qi, a, A) qiAqm? aqjBqn qnCqm para cualquier n, m.
26
Ejemplo
sea el ADPND 1. D(q1, a, z) (q1, Az) 2.
D(q1, a, A) (q1, AA) 3. D(q1, b, A) (q2,
e) 4. D(q2, b, A) (q2, e) 5. D(q2, e, A)
(q2, e) 6. D(q2, e, z) (q3, e) con F
q3 y q1 como el estado inicial. El símbolo
inicial es q1zq3 y las transiciones 3, 4, 5 y 6
se traducen por q1Aq2 ? b q2Aq2 ? b
e q2zq3 ? e
27
Ejemplo
q1Aq2 ? b q2Aq2 ? b e q2zq3 ? e Las
transiciones 1 y 2 se traducen por q1zq1 ?
aq1Aq1 q1zq1 aq1Aq2 q2zq1 aq1Aq3
q3zq1 q1zq2 ? aq1Aq1 q1zq2 aq1Aq2
q2zq2 aq1Aq3 q3zq2 q1zq3 ? aq1Aq1
q1zq3 aq1Aq2 q2zq3 aq1Aq3
q3zq3 q1Aq1 ? aq1Aq1 q1Aq1 aq1Aq2
q2Aq1 aq1Aq3 q3Aq1 q1Aq2 ? aq1Aq1
q1Aq2 aq1Aq2 q2Aq2 aq1Aq3
q3Aq2 q1Aq3 ? aq1Aq1 q1Aq3 aq1Aq2
q2Aq3 aq1Aq3 q3Aq3
28
Los siguientes no terminales son
inútilies q2zq1 , q3zq1, q3zq2 q2Aq1,
q3Aq1, q3Aq2, q3zq3 Pueden ser eliminados
por los algoritmos estudiados antes.
29
La cadena aabb se acepta por el autómata de la
siguiente manera (q1, aabb, z) - (q1, abb, Az)
- (q1, bb, AAz) - (q2, b, Az) - (q2, e,
e) La derivación con la gramática es q1Aq2 ?
a q1Aq2 q2zq3 ? aa q1Aq2 q2Aq2
q2zq3 ? aab q2Aq2 q2zq3 ? aabb
q2zq3 ? aabb
30
1. D(q1, a, z) (q1, Az) 2. D(q1, b, A)
(q2, e) 3. D(q4, e, z) (q1, Az) 4. D(q2,
e, z) (q3 e) 5. D(q1, a, A) (q4, e)
q1zq3 inicial, q1Aq2 ? b q1Aq4 ?
a q2zq3 ? e Las transiciones 1 y 3 se traducen
por q1zq1 ? aq1Aq1 q1zq1aq1Aq2
q2zq1aq1Aq3 q3zq1aq1Aq4 q4zq1 q1zq2
? aq1Aq1 q1zq2aq1Aq2 q2zq2aq1Aq3
q3zq2aq1Aq4 q4zq2 q1zq3 ? aq1Aq1
q1zq3aq1Aq2 q2zq3aq1Aq3
q3zq3aq1Aq4 q4zq3 q1zq4 ? aq1Aq1
q1zq4aq1Aq2 q2zq4aq1Aq3
q3zq4aq1Aq4 q4zq4 q1zq1 ? q1Aq1
q1zq1 q1Aq2 q2zq1 q1Aq3 q3zq1
q1Aq4 q4zq1 q1zq2 ? q1Aq1 q1zq2
q1Aq2 q2zq2 q1Aq3 q3zq2 q1Aq4
q4zq2 q1zq3 ? q1Aq1 q1zq3 q1Aq2
q2zq3 q1Aq3 q3zq3 q1Aq4 q4zq3 q1zq4
? q1Aq1 q1zq4 q1Aq2 q2zq4 q1Aq3
q3zq4 q1Aq4 q4zq4
31
Forma normal de Greibach
Teorema. Si A ? aBg es una producción de una
gramática independiente del contexto y si B ? b1
b2 ... bm son las producciones que tienen a
B en su lado izquierdo, entonces la producción A
? aBg se puede reemplazar por A ? ab1g ab2g
... abmg sin que varíe el lenguaje generado por
la gramática.
32
Definiciones
Una producción de la forma A ? aA se llama
recursiva por la derecha. Una producción de la
forma A ? Aa se llama recursiva por la izquierda.
33
Teorema. Sea G una gramática independiente del
contexto y A un no terminal de G. Si A ? Aa1
Aa2 ... Aan son todas las producciones de A, que
sonmm recursivas por la izquierda y si A ? b1
b2 ... bm son las restantes producciones de
A, entonces se puede construir una gramática
equivalente introduciendo un nuevo no terminal Z
y reemplazando todas las producciones precedentes
por A ? b1 b2 ... bm b1Z b2Z ...
bmZ Z ? a1 a2 ... am a1Z a2Z ...
anZ Demostración En ambos caso las producciones
forman el lenguaje regular b1, b2, ... , bm
a1, a2, ... , an
34
Ejemplo
Considere la gramática S ? Sa Sb cA A ? Aa
a e Cuando se procesa S se transforma en S ? cA
cAZ1 Z1 ? a b aZ1 bZ1 A ? Aa a
e Cuando se procesa A se transforma en S ? cA
cAZ1 Z1 ? a b aZ1 bZ1 A ? a aZ2 e
Z2 Z2 ? a aZ2
35
Definición
Una gramática independiente del contexto está en
forma normal de Greeibach (FNG) si todas las
producciones son de la forma A ? aa, donde a es
un símbolo terminal y a ? (S ? N).
36
Pasar a forma normal de Greibach. a) S ? aSb
ab b) S ? AA a A ? SS b c) S ? Sa Sb
cA A ? Aa a e
37
(No Transcript)
Write a Comment
User Comments (0)
About PowerShow.com