Sei sulla pagina 1di 15

AUTMATAS A PILA (AP)

(Tema 5)

NDICE
1. Introduccin: Definicin
1.1. Funcionamiento (Movimientos)
1.2. Configuraciones (Descripciones Instantneas)
1.3. Lenguajes Aceptados por un AP
1.4. Autmatas a Pila Deterministas (APD)
2. LIC y AP
2.1. Equivalencia entre aceptacin de autmatas: LV(AP) = LF(AP)
2.1.1. LV(AP) LF(AP)
2.1.2. LV(AP) LF(AP)
2.2. Lenguajes Independientes de Contexto (LIC) son los lenguajes
aceptados por un AP y generados por una gramtica (G).
LIC = L(AP) = L(G2)
2.2.1. LIC = L(G2) L(AP)
2.2.2. LIC = L(G2) L(AP)

1. INTRODUCCIN

MAQUINS GRAMTICAS Y LENGUAJES:


Jerarqua de CHOMSKY
Mquinas de Turing (MT)

Go

Autmatas Linealmente Acotados (ALA)

G1

Autmatas a Pila (AP)

G2

G3 G2 G1 G0
equivalencia

GRAMTICA

MQUINA

describe
genera

reconoce
acepta

LENGUAJE

Lenguajes sin
restricciones (LSR)

Lenguajes
dependientes de
contexto (LDC)

Lenguajes
independientes de
contexto (LIC)

G3
Lenguajes regulares
(LR)

Autmatas Finitos (AF)

Definicin
Autmata Finito (AF) que tiene acceso (controla) a una memoria intermedia
(Pila) y que lee smbolos en una cinta de entrada ( ).
PILA: tiene el tamao que sea necesario (incluso ).
LIFO: Last Input Firt Ouput
AP No Deterministas: Lenguajes Independientes de Contexto (Tipo 2)
A : : = v , v ( T N )*
AP Deterministas: Subconjunto de los Lenguajes de Tipo 2
L(APD) L(APND)

ESQUEMA GRFICO de un AP

Q
q0
.
.

A1
AF
Control

qn

.
An
A0

ACEPTA
O NO ACEPTA

Operaciones en la pila:
Escribir

Introducir

Leer

Extraer (la lectura es destructiva)

1.1. Funcionamiento (Movimientos)


En un AP existen 2 tipos de movimientos:
Movimientos de tipo 1:
f ( q a A ) = { ( q1 Z1 ), ( q2 Z2 ), ( q3 Z3 ),.. ( qn Zn ) }

Movimientos de tipo 2:
f ( q A ) = { ( q1 Z1 ), ( q2 Z2 ), ( q3 Z3 ),.. ( qn Zn ) }

1er EJEMPLO:
Construir un AP que reconozca el lenguaje L = { anbn / n 1 }
AP = { , , Q , A0 , q0 , f , }

AP = { { a, b }, { A, A0 } , { q0, q1 } , A0 , q0 , f , }

1) f ( q0 a A0) = ( q0 AA0)

Lee a mete A

2) f ( q0 a A ) = ( q0 AA )

Lee a mete A (resto a ledas)

3) f ( q0 b A ) = ( q1 )

Lee b borra A (pasa a q1)

4) f ( q1 b A ) = ( q1 )

Lee b borra A (resto b ledas)

5) f ( q1 A0) = ( q1 )

Borra A0 (vaca la pila) Acepta Para

PALABRA: aabb
a

q0

A0

q0

AF

q1

A
AF
A0

Control

Control

NO ACEPTA

NO ACEPTA

q0

q0

AF

q1

Control

A
AF

q0
q1

A0

Control

A0

NO ACEPTA

NO ACEPTA

q1

q1

A0

q0

AF

q1

AF

Control

Control

NO ACEPTA

ACEPTA

1.2. Configuraciones (Descripciones Instantneas):


Describen la aceptacin o rechazo de una palabra x .
Se representan por una terna:

(q x Z)

q = Estado actual del AP


x = palabra (o subpalabra) por leer
Z = Contenido actual de la pila
Movimientos de tipo 1 con descripciones instantneas:
( q ax AZ ) ( p x YZ )
Cuando el movimiento del AP es:
(p Y)f(q a A)
q, p Q ; A ; Y, Z * ; a ; x *
Movimientos de tipo 2 con descripciones instantneas:
( q ax AZ ) ( p ax YZ )
Cuando el movimiento del AP es:
(p Y)f(q A)
q, p Q ; A ; Y, Z * ; a ; x *

El smbolo significa PRECEDE


( DI1 ) ( DI2 ) ( DI3 ) ( DI4 ) . ( DIn )
( DI1 ) ( DIn )
*
El smbolo significa SUCESIN DE MOVIMIENTOS
*

1.3. Lenguajes aceptados por un AP:


Son de 2 tipos:
- Estados finales
L = { x / ( q0 x A0 ) ( p Z ) }
*

q0 Q , p F Q ; A0 ; x { }
- Vaciado de Pila
L = { x / ( q0 x A0 ) ( p ) }
*

q0 , p Q ; A0 ; x { }

1.4. Autmatas a Pila Deterministas (APD):


Debe cumplir 2 condiciones:
1. q Q , A
Si f (q A ) > 0
entonces a , f (q A q ) =
2. q Q , A
f (q a A ) < 2 ; a { }

2. LENGUAJES INDEPENDIENTES DE CONTEXTO (LIC) Y AUTMATAS


A PILA (AP)
2.1. Equivalencia entre aceptacin de lenguajes por un AP,
LV(AP) = LF(AP)
2.1.1. LV(AP) LF(AP)
2.1.2. LV(AP) LF(AP)

2.1.1. Caso "": LV(AP) LF(AP)


A1 es un AP, si L = LV(A1) A2 / LF(A2) = L
A1 = { , , Q, q0, A0, f, },
A2 = { , { A0}, Q { q0,qF }, q0, A0, f, { qF } }

Paso 1:

A2 accede a DII de A1 y comienza a simular a A1


f( q0 A0) = ( q0 A0A0)

Paso 2:

A2 realiza los mismos movimientos que A1


f( q a A ) = f ( q a A ) q Q ; a { } ; A

Con los pasos 1 y 2:


A1 con una palabra x borra A0 y acepta la palabra.
A2 con una palabra x borra A0 y aflora A0a la cima de la pila.
Paso 3:

Para aceptar una palabra x, A2 debe realizar un -movimiento


borrar A0 y acceder al estado final qF.
( qF ) f( q A0)

qQ

2.1.2. Caso "": LV(AP) LF(AP)


M1 es un AP, si L = LF(M1) M2 / LV(M2) = L
M1 = { , , Q, q0, A0, f, F },
M2 = { , { A0}, Q { q0,qv }, q0, A0, f, }

Paso 1:

M2 accede a DII de M1 y comienza a emular a M1


f( q0 A0) = ( q0 A0A0)

Paso 2:

M2 realiza los mismos movimientos que M1


f( q a A ) = f ( q a A ) q Q ; a { } ; A

Paso 3:

a) M2 debe transitar al estado qv cuando M1 alcanza un estado


final q.

( qv ) f( q Z ) q F ; Z * { A0}

b) M2 debe permanecer en qv y borrar smbolo a smbolo hasta


vaciar totalmente la pila.

( qv ) f( qv Z )
qv Q ; Z * { A0}

10

2.2. LOS LENGUAJES INDEPENDIENTES DE CONTEXTO (LIC) SON


ACEPTADOS POR UN AUTMATA A PILA (AP) Y GENERADOS
POR UNA GRAMTICA DE TIPO 2 (G2): LIC = L(AP) = L(G2)
2.2.1. L(AP) L(G2)
2.2.2. L(AP) L(G2)

2.2.1. Caso "": L(AP) L(G2)


L = L(AP)

G2 / L(G2) = L

Se va a construir una gramtica (G2) obtenida a partir de un autmata a


pila (AP) que acepte el mismo lenguaje L.

2.2.2. Caso "": L(AP) L(G2)


L = L(G2)

AP / L(AP) = L

Se va a construir un autmata a pila (AP) obtenido a partir de una


gramtica (G2) que genere el mismo lenguaje L.

11

2.2.1. Caso "": L(AP) L(G2). CONSTRUCCIN DE UNA GRAMTICA


(G2) OBTENIDA A PARTIR DE UN AP.
Se debe construir una gramtica que genere el lenguaje aceptado por un
autmata a pila: AP = { , , Q , A0 , q0 , f , }
G = { T , N , P , S }
T = del AP
N = { S } { [ q A p ] / q, p Q , A }
S = Axioma

P = Producciones de G
ALGORITMO (para obtener las producciones P de G):
1.

Desde el axioma S, se genera la siguiente produccin:


S::=[q A p],pQ

2.

Se construyen producciones de la forma:


[ q A qm+1 ] : : = a [ q1 B1 q2 ] , [ q2 B2 q3 ] , ... , [ qm Bm qm+1 ]
Todas las posibles secuencias que llevan de q1 a qm+1
para cada smbolo B1, B2, ... , Bm introducido en la pila
q1, q2, q3, .... , qm, qm+1 Q
A, B1, B2, B3, .... , Bm
a{}
si los movimientos de la funcin de transicin f son del tipo:
( q1 B1B2B3 ... Bm ) f ( q a A )

3.

Si m = 0, es decir, no se introduce nada en la pila, se construyen


producciones de la forma:
[ q A q i ] : : = a , qi Q
si los movimientos de la funcin de transicin f son del tipo:
( qi ) f ( q a A )

12

Smbolos no-terminales (TERNAS)


Los smbolos no-terminales N de una gramtica (G) construida a partir de
un AP tienen la forma de TERNAS:
[q A p]
q = Estado actual del autmata a pila (AP)
A = Smbolo de la cima de pila
p = Estado al que llega el autmata a pila (AP) cuando se hayan suprimido
todos los smbolos que se hayan podido introducir en la pila al borrar el
smbolo A.

Las TERNAS estn asociadas a la supresin de un smbolo de pila A.

Las TERNAS dan informacin de los estados en que se encuentra el AP


antes y despus de la supresin del smbolo A.

AUTMATA A PILA (AP)

GRAMATICA (G)

Elimina A de la pila

2 componente de la TERNA en la
parte IZQUIERDA de la produccin
[q A p]::=
2 componente/s de las TERNA/S en
la parte DERECHA de la produccin

Introduce B1B2B3 ... Bm en la pila


(que luego se eliminan con
sucesivos movimientos)

: : = [ q B1 p ] [ q B2 p ]...[ q Bm p ]

Se lee a

Se genera a T

METODO REDUCIDO:
Se aplica el mtodo anterior pero tras ver que smbolos no-terminales
(TERNAS) son vlidos para construir las producciones de la G2 a partir de los
movimientos del AP.
Se construyen todas las posibles ternas que se pueden formar con los
estados (Q) y los smbolos de pila () y se analizan.

13

2.2.2. Caso "": L(AP) L(G2). CONSTRUCCIN DE UN AP A PARTIR


DE UNA GRAMTICA (G2).

Existen 2 mtodos para construir un AP a partir de una gramtica G:


MTODO 1 y MTODO 2

MTODO 1
Construir un AP que acepte (reconozca) el lenguaje generado por la
gramtica: G = { T, N, P, S }. La gramtica ha de estar en FNG.
AP = { T , N , { q } , S , q , f , }
T = alfabeto de entrada ()
N = alfabeto de pila ()
{ q } = Q conjunto de estados de AP
S = Smbolo de inicio de pila
q = estado inicial de AP
F = Funcin de transicin (movimientos)
F=

ALGORITMO (para obtener los movimientos del AP):


1.

Si

A : : = aZ , a T , A N , Z N*

entonces, ( q Z ) f ( q a A )
2.

Si

S::=

entonces, ( q ) f ( q S )

14

MTODO 2
Construir un AP que acepte (reconozca) el lenguaje generado por la
gramtica: G = { T, N, P, S }. La gramtica puede estar o no en FNG.
AP = { T , { N T } , { q } , S , q , f , }
T = Alfabeto de entrada ()
{ N T } = Alfabeto de pila ()
{ q } = Q (Conjunto de estados del AP)
S = Smbolo de inicio de pila
q = estado inicial del AP
F = Funcin de transicin (movimientos)
F = (Conjunto de estados finales)
ALGORITMO (para obtener los movimientos del AP):
1.

X { N T }, A N
A : : = X produccin de la gramtica,
en AP se hace: ( q X ) f ( q A )

2.

a T
entonces, ( q ) f ( q a a )

15

Potrebbero piacerti anche