autómatas de pila

51
Autómatas de Pila Jesús E. Carpio 14-0807 Juan A. Ramírez 13-1072

Upload: jesus-enrique-carpio-dominguez

Post on 14-Apr-2017

288 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: Autómatas de pila

Autómatas de PilaJesús E. Carpio 14-0807Juan A. Ramírez 13-1072

Page 2: Autómatas de pila

Autómata de Pila

• Un autómata de pila es un modelo matemático

de un sistema que recibe una cadena

constituida por símbolos de un alfabeto y

determina si esa cadena pertenece al lenguaje

que el autómata reconoce.

• El lenguaje que reconoce un autómata con pila

pertenece al grupo de los lenguajes libres de

contexto en la clasificación de la Jerarquía de

Chomsky.

Page 3: Autómatas de pila

Definición formalUn Autómata a Pila se define como la séptupla:(Σ, P, Q, A0, q0, f, F)donde:

• Σ: alfabeto de entrada.• P: alfabeto de la pila.• Q: conjunto de estados.• A0: símbolo inicial de la pila (#).• q0: símbolo inicial del conjunto de estados.• f: función de transición. Es una aplicación de• Q x Σ {λ} x P en el conjunto de partes de P(QxP)*.• F: conjunto de estados finales o de aceptación.

Page 4: Autómatas de pila

Diagrama de transiciónUn diagrama de transición (Función de transición) modela el comportamiento del autómata. Es una aplicación de QxΣ∪{λ}xP en el conjunto de partes de P(QxP)*. Pudiendo interpretarlo de la siguiente forma: f(q, a, A) = {(q1,Z1),…, (qn, Zn)} : Si el AP se en encuentra en el estado q, lee el símbolo a de la cinta de entrada, y aparece el símbolo A en el tope de la pila, pasará al estado qi (n≥i≥1), borrará el símbolo A de la pila e introducirá la palabra Zi, situando la cabecera de la misma en el tope de la pila, y avanzando una posición en la cinta de entrada.

Page 5: Autómatas de pila

f(q, λ, A) = {(q1,Z1),..., (qn,Zn)}: Si el AP se encuentra en el estado q y aparece el símbolo A en el tope de la pila, pasará al estado qi (n≥i≥1), borrará el símbolo A de la pila e introducirá la palabra Zi, situando la cabecera de la misma en el tope de la pila, y mantendrá la misma posición en la cinta de entrada.

Page 6: Autómatas de pila

Autómata de Pila Determinista

Un AP es Determinístico si verifica:1. ∀q∈Q, ∀A∈P, cardinal(f(q, λ, A)) 0⇒f(q, a, A) =∅,

∀a∈Σ.2. ∀q∈Q,∀A∈P,∀a∈Σ∪{λ} ⇒cardinal(f(q, a, A))<2.

Page 7: Autómatas de pila
Page 8: Autómatas de pila
Page 9: Autómatas de pila

Lenguaje aceptado por un autómata con pila.

Lenguaje aceptado por un AP (M=(Σ, P, Q, A0, q0, f, F)• Lenguaje aceptado por criterio de estado finalLEF(M) = (x / (q0, x, A0) →* (p, λ, X), p∈F, X∈P*}• Lenguaje aceptado por criterio de pila vacíaLPV(M) = (x / (q0, x, A0) →* (p, λ, λ), p∈Q}

Page 10: Autómatas de pila

Ejemplo: Autómata con pila que reconoce el lenguaje L={xnym, n>m} • Aplicamos el algoritmo de LEF⇒LPV

Page 11: Autómatas de pila

Autómatas finitos con pila no-deterministas (AFPND)

• Un autómata finito con pila no-determinista (AFPND) es una séptupla donde:

Page 12: Autómatas de pila

Es decir, el comportamiento del autómata depende en cada transición

• del estado actual

• posiblemente del siguiente símbolo de la entrada

• del símbolo en la cima de la pila

Y se modifica el autómata en el sentido que

• se cambia (posiblemente) del estado

• se consume (posiblemente) el siguiente símbolo de la entrada

• se modifica (posiblemente) el contenido de la cima de la pila.

Page 13: Autómatas de pila

Generalidades

q1 q2

q 3q4

a /z/A H

a /A /ab /b /b

a /z/z

a /A /F bb /F /a Ha E

a /z/za /z/AHB

Q u ita r C o lo ca r

z

Ejemplo

Page 14: Autómatas de pila

q1 q2

q 3q4

a /z/AH

a /A /ab /b /b

a /z/z

a /A /F bb /F /a Ha E

a /z/z

a /z/AHB z

¿Acepta aab?

Page 15: Autómatas de pila

¿Acepta aab?

q1 q2

q 3q4

a /z/A H

a /A /ab /b /b

a /z/z

a /A /F bb /F /a Ha E

a /z/z

a /z/AHB

z

Page 16: Autómatas de pila

¿Acepta aab?

a /z/AH a /A /a b /b /bq 2q 1 q 2

q 1

z

a)

Page 17: Autómatas de pila

¿Acepta aab?

a /z/AH a /A /a b /b /bq 2q 1 q 2q 1

z

a)

HA

Page 18: Autómatas de pila

¿Acepta aab?

a /z/AH a /A /a b /b /bq 2q 1 q 2

q 1

z

a)

HA

Ha

Page 19: Autómatas de pila

¿Acepta aab?

a /z/AH a /A /a b /b /bq 2q 1 q 2

q 1

z

a)

HA

Ha Falló

Page 20: Autómatas de pila

¿Acepta aab?

q1 q2

q 3q4

a /z/A H

a /A /ab /b /b

a /z/z

a /A /F bb /F /a Ha E

a /z/z

a /z/AHB

z

b)

Page 21: Autómatas de pila

¿Acepta aab?

a /z/z a /z/z b /F /a Ha Eq 3q 2 q 4q 1

z

b)

Page 22: Autómatas de pila
Page 23: Autómatas de pila

¿Acepta aab?

a /z/z a /z/z b /F /a Ha Eq 3q 2 q 4q 1

z

b)

z

Page 24: Autómatas de pila

¿Acepta aab?

a /z/z a /z/z b /F /a Ha Eq 3q 2 q 4q 1

z

b)

z z

Page 25: Autómatas de pila

¿Acepta aab?

a /z/z a /z/z b /F /a Ha Eq 3q 2 q 4q 1

z

b)

z z

Falló

Page 26: Autómatas de pila

¿Acepta aab?

q1 q2

q 3q4

a /z/AH

a /A /ab /b /b

a /z/z

a /A /F bb /F /a Ha E

a /z/za /z/AHB

z

c)

Page 27: Autómatas de pila

¿Acepta aab?

a /z/AHB a /A /F b b /F /a Ha Eq 3q 3 q 4q 1

z

c)

Page 28: Autómatas de pila

¿Acepta aab?

a /z/AHB a /A /F b b /F /a Ha Eq 3q 3 q 4q 1

z

c)

BHA

Page 29: Autómatas de pila

¿Acepta aab?

a /z/AHB a /A /F b b /F /a Ha Eq 3q 3 q 4q 1

z

c)

BHA

BHbF

Page 30: Autómatas de pila

¿Acepta aab?

a /z/A HB a /A /F b b /F /a Ha Eq 3q 3 q 4q 1

z

c)

BHA

BHbF

BHbEaHa

Page 31: Autómatas de pila

¿Acepta aab?

a /z/A HB a /A /F b b /F /a Ha Eq 3q 3 q 4q 1

z

c)

BHA

BHbF

BHbEaHa

El autómata acepta aab

Page 32: Autómatas de pila

q1 q2

q 3q4

a /z/AH

a /A /ab /b /b

a /z/z

a /A /F bb /F /a Ha E

a /z/z

a /z/AHB z

¿Acepta ab?

Page 33: Autómatas de pila

q1 q2

q 3q4

a /z/A H

a /A /ab /b /b

a /z/z

a /A /F bb /F /a Ha E

a /z/z

a /z/AHB z

¿Acepta ab? No

Page 34: Autómatas de pila

q1 q2

q 3q4

a /z/AH

a /A /ab /b /b

a /z/z

a /A /F bb /F /a Ha E

a /z/z

a /z/AHB z

¿Acepta aba?

Page 35: Autómatas de pila

q1 q2

q 3q4

a /z/AH

a /A /ab /b /b

a /z/z

a /A /F bb /F /a Ha E

a /z/z

a /z/AHB z

¿Acepta aba? No

Page 36: Autómatas de pila

Descripción instantánea

z

BH

A

BHbF

BHbE

aH

a

a /z/AHB a /A /F b b /F /a Ha Eq 3q 3 q 4q 1

( q1, aab, z)

Page 37: Autómatas de pila

Descripción instantánea

z

BH

A

BHbF

BHbE

aH

a

a /z/A HB a /A /F b b /F /a Ha Eq 3q 3 q 4q 1

( q1, aab, z) ├── ( , , )

Page 38: Autómatas de pila

Descripción instantánea

z

BH

A

BHbF

BHbE

aH

a

a /z/AHB a /A /F b b /F /a Ha Eq 3q 3 q 4q 1

( q1, aab, z) ├── ( q3, , )

Page 39: Autómatas de pila

Descripción instantánea

z

BH

A

BHbF

BHbE

aH

a

a /z/AHB a /A /F b b /F /a Ha Eq 3q 3 q 4q 1

( q1, aab, z) ├── ( q3, ab, )

Page 40: Autómatas de pila

Descripción instantánea

z

BH

A

BHbF

BHbE

aH

a

a /z/AHB a /A /F b b /F /a Ha Eq 3q 3 q 4q 1

( q1, aab, z) ├── ( q3, ab, AHB)

Page 41: Autómatas de pila

Descripción instantánea

z

BH

A

BHbF

BHbE

aH

a

a /z/A HB a /A /F b b /F /a Ha Eq 3q 3 q 4q 1

( q1, aab, z) ├── ( q3, ab, AHB) ├── ( , , )

Page 42: Autómatas de pila

Descripción instantánea

z

BH

A

BHbF

BHbE

aH

a

a /z/AHB a /A /F b b /F /a Ha Eq 3q 3 q 4q 1

( q1, aab, z) ├── ( q3, ab, AHB) ├── ( q3, , )

Page 43: Autómatas de pila

Descripción instantánea

z

BH

A

BHbF

BHbE

aH

a

a /z/A HB a /A /F b b /F /a Ha Eq 3q 3 q 4q 1

( q1, aab, z) ├── ( q3, ab, AHB) ├── ( q3, b, )

Page 44: Autómatas de pila

Descripción instantánea

z

BH

A

BHbF

BHbE

aH

a

a /z/A HB a /A /F b b /F /a Ha Eq 3q 3 q 4q 1

( q1, aab, z) ├── ( q3, ab, AHB) ├── ( q3, b, FbHB)

Page 45: Autómatas de pila

Descripción instantánea

z

BH

A

BHbF

BHbE

aH

a

a /z/AHB a /A /F b b /F /a Ha Eq 3q 3 q 4q 1

( q1, aab, z) ├── ( q3, ab, AHB) ├── ( q3, b, FbHB) ├── ( , , )

Page 46: Autómatas de pila

Descripción instantánea

z

BH

A

BHbF

BHbE

aH

a

a /z/AHB a /A /F b b /F /a Ha Eq 3q 3 q 4q 1

( q1, aab, z) ├── ( q3, ab, AHB) ├── ( q3, b, FbHB) ├── ( q4, , )

Page 47: Autómatas de pila

Descripción instantánea

z

BH

A

BHbF

BHbE

aH

a

a /z/A HB a /A /F b b /F /a Ha Eq 3q 3 q 4q 1

( q1, aab, z) ├── ( q3, ab, AHB) ├── ( q3, b, FbHB) ├── ( q4, ε, )

Page 48: Autómatas de pila

Descripción instantánea

z

BH

A

BHbF

BHbE

aH

a

a /z/AHB a /A /F b b /F /a Ha Eq 3q 3 q 4q 1

( q1, aab, z) ├── ( q3, ab, AHB) ├── ( q3, b, FbHB) ├── ( q4, ε, aHaEbHB)

Page 49: Autómatas de pila

Aplicaciones que requieren análisis sintáctico

• Compilador para un computador de automatización industrial

• Herramienta de consulta de bases de datos distribuidas

• Creación de un motor de base de datos relacional

• Creación de un motor de base de datos OO (Base de objetos) y su lenguaje

de consulta (OQL)

• Simulador robótico con lenguaje de programación para robots

• Generador de analizador sintáctico (YACC, JAVACC)

Page 50: Autómatas de pila