diapositiva 1 -...

12
0 0 09:15

Upload: phunghanh

Post on 02-Nov-2018

218 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Diapositiva 1 - ecaths1.s3.amazonaws.comecaths1.s3.amazonaws.com/programacion2/1128375602.U3-Automatas de... · Lenguajes regulares (Tipo 3) Autómatas finitos Las gramáticas proporcionan

0 0 09:15

Page 2: Diapositiva 1 - ecaths1.s3.amazonaws.comecaths1.s3.amazonaws.com/programacion2/1128375602.U3-Automatas de... · Lenguajes regulares (Tipo 3) Autómatas finitos Las gramáticas proporcionan

1 1 09:15

Temas

Definición de autómata de pila

Autómata de pila determinístico y no determinístico

Objetivo

Que el estudiante logre:

1) Identificar conceptos constructivos de la Teoría de la

Computabilidad.

2) Definir autómatas de pila.

Page 3: Diapositiva 1 - ecaths1.s3.amazonaws.comecaths1.s3.amazonaws.com/programacion2/1128375602.U3-Automatas de... · Lenguajes regulares (Tipo 3) Autómatas finitos Las gramáticas proporcionan

2 2 09:15

Autómata

• Dispositivo mecánico capaz de procesar cadenas de símbolos.

• Dado un lenguaje L definido sobre un alfabeto A y una

cadena x arbitraria, determina si x L o x L.

• Un autómata tiene dos posibles reacciones:

Autómata

Las hileras son

reconocidas o

aceptadas SI

Las hileras son

rechazadas por

el autómata

NO

Cadena x

Lenguaje

Page 4: Diapositiva 1 - ecaths1.s3.amazonaws.comecaths1.s3.amazonaws.com/programacion2/1128375602.U3-Automatas de... · Lenguajes regulares (Tipo 3) Autómatas finitos Las gramáticas proporcionan

3 3 09:15

GRAMÁTICAS LENGUAJES AUTÓMATAS

Gramáticas no restringidas

Lenguajes Irrestrictos o recursivamente

enumerables (Tipo 0)

Máquinas de Turing

Gramáticas sensibles al contexto Lenguajes sensibles al

contexto (Tipo 1)

Autómatas ligados

linealmente

Gramáticas libres de contexto

Lenguajes libres de contexto (Tipo 2)

Autómatas de pila

Gramáticas regulares

Lenguajes regulares (Tipo 3)

Autómatas finitos

Las gramáticas proporcionan un método para generar cadenas de un lenguaje

y para reconocer cadenas de un lenguaje se han descripto autómatas de varios

tipos.

Page 5: Diapositiva 1 - ecaths1.s3.amazonaws.comecaths1.s3.amazonaws.com/programacion2/1128375602.U3-Automatas de... · Lenguajes regulares (Tipo 3) Autómatas finitos Las gramáticas proporcionan

4 4 09:15

Un autómata de pila consiste de:

1) Una unidad de control, que es un autómata finito.

2) Una memoria auxiliar que es una cinta semi-infinita con una clase

particular de acceso restringido. La memoria de los autómatas de pila

los hace más poderosos que los autómatas finitos. El acceso restringido

a la memoria auxiliar es del tipo LIFO (last input first output). Tal

memoria se denomina almacén pushdown o pila.

a b a b b a

q0

q1

q2

q4 q3 qi

qn

Cinta de entrada

Cabeza lectora Control

Pila

Page 6: Diapositiva 1 - ecaths1.s3.amazonaws.comecaths1.s3.amazonaws.com/programacion2/1128375602.U3-Automatas de... · Lenguajes regulares (Tipo 3) Autómatas finitos Las gramáticas proporcionan

5 5 09:15

Un autómata de pila (pushdown automata) es:

A = (Q, ,, ,q0 ,z0 ,F) donde:

Q es un conjunto no vacío de estados.

es el alfabeto de entrada, no vacío.

es el alfabeto de la pila, no vacío.

q0 Q es el estado inicial.

F Q es el conjunto de estados finales.

es la función de transición directa. Es una proyección:

Q x ( ) x en subconjuntos finitos de Q x *.

z0 : símbolo inicial de la pila.

Una configuración de un autómata de pila es una tripla c = (q , a , z) con

q Q, a * , z *; q es el estado actual, a es el elemento a

considerar de la hilera de entrada y z es el contenido de la pila.

Page 7: Diapositiva 1 - ecaths1.s3.amazonaws.comecaths1.s3.amazonaws.com/programacion2/1128375602.U3-Automatas de... · Lenguajes regulares (Tipo 3) Autómatas finitos Las gramáticas proporcionan

6 6 09:15

Funcionamiento o movimientos

atómicos:

Existen dos clases :

z

Pila

a

Entrada no

procesada

Entrada

q

Unidad de

control en

estado q

1) (q,a,z) = (p,w) donde:

q : estado actual.

a : símbolo de la hilera de entrada.

z : símbolo del tope de pila.

p : próximo estado.

w : símbolo que se deja en el tope de

pila. Al realizar el movimiento atómico la unidad

de control pasa al estado p, el símbolo de

entrada a se procesa y el símbolo z del tope

de pila se reescribe como la hilera w *.

• Si w = se borra, la pila pierde el primer

símbolo de arriba.

• Si |w| = 1, z se reemplaza por otro símbolo,

posiblemente el mismo.

• Si |w| > 1 se añaden símbolos a la pila.

Page 8: Diapositiva 1 - ecaths1.s3.amazonaws.comecaths1.s3.amazonaws.com/programacion2/1128375602.U3-Automatas de... · Lenguajes regulares (Tipo 3) Autómatas finitos Las gramáticas proporcionan

7 7 09:15

z

Pila

a

Entrada no

procesada

Entrada

q

Unidad de

control en

estado q

2) (q,,z) = (p,w)

Al realizar este movimiento no se

procesa ningún símbolo de entrada (la

cabeza de entrada no se mueve). El

autómata de pila puede cambiar de

estado y modificar el contenido de la

pila.

Page 9: Diapositiva 1 - ecaths1.s3.amazonaws.comecaths1.s3.amazonaws.com/programacion2/1128375602.U3-Automatas de... · Lenguajes regulares (Tipo 3) Autómatas finitos Las gramáticas proporcionan

8 8 09:15

El símbolo a la derecha de la barra, como único elemento: a, b / significa que

se borra de la pila el elemento que se encuentra como tope de pila.

El símbolo a la izquierda de la barra significa fin de la hilera de entrada.

L(G) = { an bn / n ≥ 1} A = ({q0 ,q1 ,q2 ,q3}, {a,b}, {z0 ,a},,q0

,z0 ,{q3 })

(q0 ,a,z0 ) = (q1 ,a z0 )

(q1 ,a,a) = (q1 ,a a)

(q1 ,b,a) = (q2 ,)

(q2 ,b,a) = (q2 ,)

(q2 ,,z0 ) = (q3 ,z0)

q0 q1 q2 a,z0/az0 b,a/

a,a/aa b,a/

q3 ,z0/z0

Símbolo que se toma de la hilera de entrada

Símbolo de tope de pila

Símbolo que se carga en el tope de pila

Símbolo anterior al que se carga

a , b a b /

Page 10: Diapositiva 1 - ecaths1.s3.amazonaws.comecaths1.s3.amazonaws.com/programacion2/1128375602.U3-Automatas de... · Lenguajes regulares (Tipo 3) Autómatas finitos Las gramáticas proporcionan

9 9 09:15

Los autómatas de pila son no determinísticos, si para algún:

(q,a,z) Q x ( ) x , |(q,a,z)| > 1

Un autómata de pila es determinístico si |(q,a,z)| ≤ 1.

Ejemplo de Autómata de Pila Determinístico

L = {xcx-1 / x {a,b}*} un conjunto de palíndromas con marcador central c.

q0 q1 c,z0/z0

c,a/a

c,b/b

a,a/

b,b/

q2 ,z0/z0

a,z0/az0

b,z0/bz0

a,a/aa

b,b/bb

a,b/ab

b,a/ba

A = ({q0 , q1 , q2}, {a,b,c}, {a,b,z0 }, , q0 , z0 , {q2})

(q0 ,a,z0 ) = (q0 ,a z0 )

(q0 ,b,z0 ) = (q0 ,b z0 )

(q0 ,a,a) = (q0 ,a a)

(q0 ,b,b) = (q0 ,b b)

(q0 ,a,b) = (q0 ,a b)

(q0 ,b,a) = (q0 ,b a)

(q0 ,c,z0 ) = (q1 ,z0 )

(q0 ,c,a) = (q1 ,a)

(q0 ,c,b) = (q1 ,b)

(q1 ,a,a) = (q1 ,)

(q1 ,b,b) = (q1 , )

(q1 , ,z0 ) = (q2 ,z0 )

Page 11: Diapositiva 1 - ecaths1.s3.amazonaws.comecaths1.s3.amazonaws.com/programacion2/1128375602.U3-Automatas de... · Lenguajes regulares (Tipo 3) Autómatas finitos Las gramáticas proporcionan

10 10 09:15

Ejemplo de Autómata de Pila No Determinístico

L = {xx-1 / x {a,b}*} un conjunto de palíndromas sin marcador central.

A = ({q0 , q1 , q2}, {a,b}, {a,b,z0 }, , q0 , z0 ,

{q2})

(q0 ,a,z0 ) = (q0 ,a z0 )

(q0 ,b,z0 ) = (q0 ,b z0 )

(q0 ,a,a) = (q0 ,a a)

(q0 ,b,b) = (q0 ,b b)

(q0 ,a,b) = (q0 ,a b) q0 q1 a,a/

b,b/

a,a/

b,b/

q2 ,z0/z0

a,z0/az0

b,z0/bz0

a,a/aa

b,b/bb

a,b/ab

b,a/ba

,z0/z0

Es no determinístico debido a:

(q0 ,a,a) = {(q0 ,a a), (q1 ,)}

(q0 ,b,b) = {(q0 ,b b), (q1 , )}

No siempre es posible, dado un autómata de pila no determinístico, encontrar un

autómata de pila determinístico que acepte el mismo lenguaje.

Page 12: Diapositiva 1 - ecaths1.s3.amazonaws.comecaths1.s3.amazonaws.com/programacion2/1128375602.U3-Automatas de... · Lenguajes regulares (Tipo 3) Autómatas finitos Las gramáticas proporcionan

11 11 09:15

El AP tiene más poder que el autómata finito.

La memoria (dada por la pila) es de acceso limitado, para acceder a

un cierto dato es necesario borrar los anteriores. Esto impide, por ejemplo,

reconocer el lenguaje: L(G) = {anbncn / n ≥1}

Se ve entonces la necesidad de disponer otro modelo computacional,

que se presenta como otro tipo de autómata, cuya memoria no tenga esas

limitaciones. Este modelo es la Máquina de Turing.

Cada tipo de autómata definido, incluye al anterior como caso

particular.