Está en la página 1de 11

Ciencias de la Computación I

Autómatas de Pila y
Lenguajes Libres del Contexto

Ciencias de la Computación I - Filminas de Clase – Facultad Cs. Exactas – UNCPBA – 2021

Autómatas de Pila Reconocedores


Formalmente, un AP reconocedor determinístico (APD) se define
como una 7-upla
APD = <E, A, P, , ei, F, Z0>

✓ E es un conjunto finito de estados; E  

✓ A es el alfabeto de entrada
AP=
✓ P es el alfabeto de la pila

✓  es la función de transición de estados


: E x ( A  {} ) x P → E x P*

✓ ei es el estado inicial; ei  E

✓ F es el conjunto de estados finales o de aceptación; F  E

✓ Z0 símbolo distinguido de la Pila Z0  P


Ciencias de la Computación I - Filminas de Clase – Facultad Cs. Exactas – UNCPBA – 2021

1
Autómatas de Pila Reconocedores
✓  es la función de transición de estados
: E x ( A  {} ) x P → E x P*
a, X / a
1) (ei, a, X) = (ek, a) ej ek

, X / a
2) (ei, , X) = (ek, a) ej ek
donde a  A; X  P; a  P* ; ei , ek  E

Importante:
Si existe transición de tipo (2), sólo se garantiza que AP es determinístico
si

s: s  A, ( ei , s, X) no está definida


Ciencias de la Computación I - Filminas de Clase – Facultad Cs. Exactas – UNCPBA – 2021

Ejemplo: Lenguaje libre del contexto


L = { w c wR / w  {a, b}* }

L = { c, aca, bcb, aacaa, abcba, …, abbcbba, …}

B
1) a b c b 4) a b c b a
a Z0 A
Z0

2) a b c b a A 5) a b c b a A
Z0
Z0

B
3) a b c b a 6) a b
A c b a
Z0 Z0

Ciencias de la Computación I - Filminas de Clase – Facultad Cs. Exactas – UNCPBA – 2021

2
Ejemplo: Lenguaje libre del contexto determinístico
L = { w c wR / w  {a,b}* }

b,B / BB
b,A / BA
a,B / AB a,A / 
a,A / AA b,B/ 

b,Z0 / BZ0 c,B / B


a,Z0 / AZ0 c,A / A , Z0 / Z0
e0 e1 e2
e3
c,Z0 / Z0

APD=<{e0,e1,e2,e3}, {a,b,c}, {A,B, Z0}, , e0, Z0, {e3}>

Ciencias de la Computación I - Filminas de Clase – Facultad Cs. Exactas – UNCPBA – 2021

Ejemplo: Lenguaje libre del contexto


L = { w wR / w  {a, b}* }

L = { , aa, bb, aaaa, abba, …, abbbba, …}

B
1) a b b a 3) a b b a
Z0 A
Z0

2) a b b a A 4) a b b a A
Z0
Z0

5) a b b a
Z0

Ciencias de la Computación I - Filminas de Clase – Facultad Cs. Exactas – UNCPBA – 2021

3
Ejemplo: Lenguaje libre del contexto no determinístico
L = { w wR / w {a,b}* }

b,B / BB
b,A / BA
a,B / AB a,A / 
a,A / AA b,B/ 
b,Z0 / BZ0 b,B / 
a,Z0 / AZ0 a,A / 
, Z0 / Z0
e0 e1 e2
e3

APND = <{e0,e1,e2,e3}, {a, b}, {A, B, Z0}, , e0, Z0, {e0,,e3}>

Para este lenguaje no existe una solución con AP determinístico

Ciencias de la Computación I - Filminas de Clase – Facultad Cs. Exactas – UNCPBA – 2021

Ejemplo: Lenguaje libre del contexto no determinístico


L = { w wR / w {a,b}* } APND = <{e0,e1,e2,e3}, {a, b}, {A, B, Z0}, , e0, Z0, {e0,,e3}>

b,B / BB
b,A / BA
a,B / AB a,A / 
a,A / AA b,B/ 
b,Z0 / BZ0 b,B / 
a,Z0 / AZ0 a,A / 
, Z0 / Z0
e0 e1 e2
e3
Ejemplo cadena abba
<e0, abba,Z0> ├ <e1,bba, AZ0 >├ <e1, ba, BAZ0>├ <e1, a, BBAZ0>├ <e1, , ABBAZ0>
lee abba pero no termina en estado final, intenta otro camino (si hay)
<e0, abba,Z0> ├ <e1,bba, AZ0 >├ <e1, ba, BAZ0>├ <e2, a, AZ0> ├ <e2, , Z0> ├ <e3, , Z0>
lee abba y termina en estado final luego, abba  L
Ciencias de la Computación I - Filminas de Clase – Facultad Cs. Exactas – UNCPBA – 2021

4
Autómata de Pila de No Determinístico
APND= <E, A , P, , e0, Z0, F>, siendo  no determinística definida como:

: E x (A  {}) x P → Pf( E x P *) Pf denota los subconjuntos finitos de E x P*


CASOS DE NO DETERMINISMO
a, X / a1 e Si lee a, con
j
1) ( ei ,a, X) = {(ej, a1), (ek, a2), .... } ei tope X
ek dos caminos
a, X / a2
, X / b1 en Si no lee cinta
2) ( ei ,, X) = {(en, b1), (em, b 2),… } ei
con tope X
em dos caminos
, X / b2
a, X / a1 ej
3) Combinadas (1) y (2) ei Si lee a, y tope X un camino
Si no lee a, y tope X otro camino
en
, X / b 1
donde a  A, X  P, a1, a2, b1, b2  P* y ei, ej, ek, en, em  E
Ciencias de la Computación I - Filminas de Clase – Facultad Cs. Exactas – UNCPBA – 2021

Autómatas de Pila

Teorema:
Los APND tienen mayor poder de reconocimiento que los APD.
Es decir, hay lenguajes libres del contexto que pueden ser
reconocidos por un APND pero no por un APD.

APD

APND

Ciencias de la Computación I - Filminas de Clase – Facultad Cs. Exactas – UNCPBA – 2021

5
Análisis del Lenguaje

• Si el lenguaje es libre del contexto no determinístico


hacer APND

• Si el lenguaje es libre del contexto determinístico hacer


APD (fijarse si agregaron transiciones que generan no
determinismo y corregirlas)

Ciencias de la Computación I - Filminas de Clase – Facultad Cs. Exactas – UNCPBA – 2021

Autómatas de Pila Traductores


Formalmente, un AP traductor (APT) se define como una 9-tupla
APT = <E, A, P, , ei, F, Z0, , S>
donde E, A , P, , e0, Z0, F se definen como antes y se agregan dos componentes

✓ S es el alfabeto de salida
✓  es la función de traducción;  : E x ( A  {}) x P → S*

 está definida siempre que  está definida.

Si existe (ej, a, X) =( ek, a) y además (ej, a, X) = t


donde ej, ek  E; a  A; X  P; a  P*; t  S*

a, X / a, t
ej ek
Ciencias de la Computación I - Filminas de Clase – Facultad Cs. Exactas – UNCPBA – 2021

6
Autómatas de Pila Traductores
Función de traducción para cadenas

El autómata sólo define la traducción, si el autómata AP subyacente


“acepta” la cadena.

Es decir, la traducción T(w): A* → S* asociada a APT está


definida como:
* < e , , a > donde w  A*
T(w) es válida  < e0, w, Z0 > |⎯ f

Ciencias de la Computación I - Filminas de Clase – Facultad Cs. Exactas – UNCPBA – 2021

Ejemplo
L = { an bn / n > 0 } Traducir las cadenas
an bn como 13n

AA,111
a,A / AA b,A / , 

a,Z0 / AZ0,
0 111 b,A / ,  , Z0 / Z0 ,
e0 e1 e2
e3

AP=<{e0,e1,e2,e3}, {a,b}, {A,Z0}, , e0, Z0, {e3}, , {1}>

Ejemplos
ab  L traduce 111 aabb  L traduce 111111
aab  L no traduce abbb  L no traduce

Ciencias de la Computación I - Filminas de Clase – Facultad Cs. Exactas – UNCPBA – 2021

7
Uso de la pila (caso MENOR n< k)
L = { an bk / n ≥ 0 y n < k}
Ejemplo
5) a a b b b b b
1) a a b b b b b Z0
Z0

6) a a b b b b b
2) a a b b b b b A Z0
Z0

7) a a b b b b b
A
3) a a b b b b b Z0
A
Z0
8) a a b b b b b
4) a a b b b b b Z0
A Si la cantidad de a´s es menor
Z0 a la cantidad de b´s
quedan b´s para leer con Z0 en la pila
Ciencias de la Computación I - Filminas de Clase – Facultad Cs. Exactas – UNCPBA – 2021

Uso de la pila (caso MENOR n < k)

L = { an bk / n ≥ 0 y n < k}
A

Ej. de cadenas n A k Desapila igual cantidad


A
bbb Z0
k>n Leer todas las b´s con Z0
aabbb
abb
… a,A / AA b,A / 
b,Z0 / Z0
:
a,Z0 / AZ0 b,A / 
e0 e1 b, Z0 / Z0
e2 e3
b,Z0 / Z0

APD = <{e0,e1,e2,e3}, {a, b}, {A, Z0}, , e0, Z0, {e3} >
Ciencias de la Computación I - Filminas de Clase – Facultad Cs. Exactas – UNCPBA – 2021

8
Uso de la pila (caso MENOR IGUAL n ≤ k)
L = { an bk / n ≥ 0 y n ≤ k}
Ejemplo
5) a a b b
1) a a b b Z0
Z0

• Se puede llegar a fin de cadena con Z0


en la pila (si es igual)
2) a a b b A O
Z0 • Pueden quedar b´s para leer con Z0 en
la pila (si es mayor)

A
3) a a b b A
Z0

4) a a b b A
Z0

Ciencias de la Computación I - Filminas de Clase – Facultad Cs. Exactas – UNCPBA – 2021

Uso de la pila (CASO MENOR IGUAL n ≤ k)


L = { an bk / n≥0 y n ≤ k}
A
Ej. de cadenas n A k
 A
Z0
bbbb k≥n
aabb
aabbb a,A / AA b,A / 
… b,Z0 / Z0
:
a,Z0 / AZ0 b,A / 
e0 e1 , Z0 / Z0
e2 e3

APD = <{e0,e1,e2,e3}, {a, b}, {A, Z0}, , e0, Z0, {e0, e3} >
Ciencias de la Computación I - Filminas de Clase – Facultad Cs. Exactas – UNCPBA – 2021

9
Uso de la pila (caso MAYOR n > k)
L = { an bk / n ≥ 0 y n > k}
A
Ejemplo A
4) a a a b
1) a a a b A
Z0 Z0

2) a a a b 5) a a a b A
A
Z0 A
Z0

A Si la cantidad de a´s es mayor


3) a a a b a la cantidad de b´s
A
Z0 se llega a fin de cadena con A´s en la pila

Ciencias de la Computación I - Filminas de Clase – Facultad Cs. Exactas – UNCPBA – 2021

Uso de la pila (CASO MAYOR n>k)


Si n>k tiene que llegar
L = { an bk / k≥0 y n > k }
a leer toda la cadena
A
n A
k y quedar A´s en la pila
A
Z0
Ej. de cadenas
a
: a,A / AA aaaa
aaabb
a,Z0 / AZ0 b,A /  , A / A aaaab
e0 e1 e2 e3

b, A / 

APD = <{e0,e1,e2,e3}, {a, b}, {A, Z0}, , e0, Z0, {e1, e3}>

Ciencias de la Computación I - Filminas de Clase – Facultad Cs. Exactas – UNCPBA – 2021

10
Uso de la pila (caso MAYOR IGUAL n ≥ k)
L = { an bk / n ≥ 0 y n ≥ k}
Ejemplo
4) a a b b
1) a a b b A
Z0 Z0

2) a a b b A 5) a a b b
Z0
Z0

A
3) a a b b A
Z0
• Se puede llegar por igualdad a fin de
cadena con Z0 en la pila (si es igual)
O
• Puede llegar a fin de cadena con A´s en
la pila (si es mayor)

Ciencias de la Computación I - Filminas de Clase – Facultad Cs. Exactas – UNCPBA – 2021

Uso de la pila (CASO MAYOR IGUAL n ≥ k)

L = { an bk / k ≥ 0 y n ≥ k} Ej. de cadenas

A
n A
k <
A
= aaa
Z0
aab
aabb
: a,A / AA b,A /  aaaabb

a,Z0 / AZ0 b,A / 
e0 e1 e2

APD = <{e0,e1,e2}, {a, b}, {A, Z0}, , e0, Z0, {e0 ,e1 ,e2} >

Ciencias de la Computación I - Filminas de Clase – Facultad Cs. Exactas – UNCPBA – 2021

11

También podría gustarte