Autómatas finitos no deterministas actualizado

14
Lenguajes Formales y Teoría de Autómatas Profesora: Rina Familia Josue A. Puntiel Mena 13-0972 Juan E. Rivera Garcia 13-0992 AUTÓMATAS FINITOS NO DETERMINISTAS

Transcript of Autómatas finitos no deterministas actualizado

Page 1: Autómatas finitos no deterministas actualizado

Lenguajes Formales y Teoría de Autómatas

Profesora: Rina Familia

Josue A. Puntiel Mena 13-0972

Juan E. Rivera Garcia 13-0992

AUTÓMATAS FINITOS NO

DETERMINISTAS

Page 2: Autómatas finitos no deterministas actualizado

Autómatas Finitos No Deterministas

Un autómata finito es no determinista si:

No f(q,a) para algún a ∑ desde algún q Q

mas de una f(q,a) desde q Q con a ∑

f(q,λ)

q0

q2

q1a a

a b

∑={a,b}

q0

q2

q1a a

bb

∑={a,b}

q0

q2

q1λ a

bb

∑={a,b}

Page 3: Autómatas finitos no deterministas actualizado

Definición

Un autómata finito no determinista (AFND) es un modelomatemático definido por la quíntupla M=(Q, ∑,f, q0, F) en el que:

Q es un conjunto finito llamado conjunto de estados.

∑ es un conjunto finito de símbolos, llamado alfabeto de

entrada.

f es una aplicación llamada función de transición definida como:

f: Q x (∑ U { λ}) → P(Q)

donde P(Q) es el conjunto de las partes de Q, es decir, conjunto de

todos los subconjuntos que se pueden formar con elementos de Q

q0 es un elemento o estado de Q, llamado estado inicial.

F es un subconjunto de Q, llamado conjunto de estados finales.

Page 4: Autómatas finitos no deterministas actualizado

Representación

Tablas de transición.

Diagramas de transición.

q0 q1 q2

0 λ,2

0,1 0,2 1,2

λ

0 1 2 λ

q0 {q0,q1} {q0}

q1 {q1} {q1,q2} {q0,q2}

*q2{q2} {q2}

Page 5: Autómatas finitos no deterministas actualizado

Función de transición. Extensión a palabras

Definición λ-clausura:

Se llama λ-clausura de un estado al conjunto de estados a los quepuede evolucionar sin consumir ninguna entrada, lo denotaremoscomo CL(q) o λ-clausura(q).

CL(q) se define recursivamente: El estado q pertenece a la λ-clausura de q, q CL(q). Si el estado p CL(q) y hay una transición del estado p al estado r

etiquetada con una transición nula (λ), entonces r también está enCL(q).

Si P Q se llama λ-clausura de un conjunto de estados P a:

CL(P)= CL(q)q P

Algoritmo para el cálculo de λ-clausura(P)

Procedimiento λ-clausura(P)Viejos=Nuevos=PMientras viejos nuevos hacer

Nuevos=viejos {q / f(pi,λ)=q, pi viejos}

Fmientrasλ-clausura(P)=nuevos

Fin_procedimiento

Page 6: Autómatas finitos no deterministas actualizado

Función de transición. Extensión a palabras

Si M=(Q,∑,f,q0,F) es un AFND se define la función de

transición asociada a palabras como la función

f’: Q x ∑* → P(Q) dada por:

f ’(q0,λ)=CL(q0)

f’(P,λ)=P

f’(P,ax)= f’( CL( f(q,a)),x)q P

donde P Q, x ∑* y a ∑

Page 7: Autómatas finitos no deterministas actualizado

Lenguaje aceptado por un AFND

Una cadena x ∑* es aceptada por un AFND M=(Q,∑,f,q0,F)

si y solo si

f’(q0,x) F

En otro caso se dice que la cadena es rechazada por el

autómata.

Dado un AFND M=(Q,∑,f,q0,F) se llama lenguaje aceptado o

reconocido por dicho autómata al conjunto de las palabras

de ∑* que acepta,

L(M)={x ∑* / f’(q0,x) F

}

Page 8: Autómatas finitos no deterministas actualizado

Simulación algorítmica de un AFND

Entrada: cadena de entrada x que termina con un carácter fin de cadena o finde archivo (FDC).Salida: La respuesta ACEPTADA si el autómata reconoce x NO ACEPTADA encaso contrarioMétodo: aplicar f al estado al cual hay una transición desde el estado q a uncarácter de entrada c

Función reconocer()

A=CL(q0)c= leer_carácter()Mientras c != FDC

A=CL ( f(q,c))q P

c= leer_carácter()

fmientras

Si A F entonces

Devolver(ACEPTADA)Sino

Devolver(NO ACEPTADA)

fsi

Page 9: Autómatas finitos no deterministas actualizado

Equivalencia entre AFND y AFD

A partir de un AFND con estados q0,…qm , construiremos un AFD

equivalente (que acepta el mismo lenguaje) con estados Q0,…Qn donde

q0, Q0, son los estados iniciales.

Premisas:

Se definió inductivamente el conjunto de estados C = λ-clausura(s):

s C.

si t C y una transición vacía de t a u entonces u C.

Se define el conjunto de estados G = f(s , a) :

si una transición etiquetada con a entre s y t entonces t G.

Estas definiciones se generalizan para conjuntos de estados

S = { ... ti ... } :

Si u λ-clausura(ti) entonces u λ-clausura(S)

Si u f(ti , a) entonces u f(S , a).

(f(G,a) son los estados s alcanzables con a desde algún q G)

Page 10: Autómatas finitos no deterministas actualizado

Equivalencia entre AFND y AFD

Algoritmo de construcción de la tabla de transiciones del AFD:

1. se crea una nueva tabla T[estado,símbolo], inicialmente vacía.

2. se calcula Q0 = λ-clausura(q0)

3. se crea una entrada en T para Q0.

4. para cada casilla vacía T[Q,a] :

1. se asigna T[Q,a] = λ-clausura(f(Q,a))

2. si no existe una entrada en T para el estado T[Q,a], se crea

la entrada.

5. se repite 4 mientras existan casillas vacías.

Page 11: Autómatas finitos no deterministas actualizado

Equivalencia entre AFND y AFD

Ejemplo:

b

42

3

b

1

0a

a, b

a

a,b

λ

b

λ

a

a b λ

0 1 1 2

1 2 1 3

2 0 4

3 4 1

*4 4 4

Page 12: Autómatas finitos no deterministas actualizado

Equivalencia entre AFND y AFD

1. se crea una nueva tabla T[estado,símbolo], inicialmente vacía.

2. se calcula Q0 = λ-clausura(0) = {0,2}

3. se crea una entrada en T para Q0.

4. para cada casilla vacía T[Q,a] :

1. se asigna T[Q,a] = λ-clausura(f(Q,a))

λ-clausura(f(Q0={0,2},a))=λ-clausura(0,1)={0,1,2,3}=Q12. si no existe una entrada en T para el estado T[Q,a], se crea

la entrada.

a b

Q0 Q1

Q1

5. se repite 4 mientras existan casillas vacías.

a b λ

0 1 1 2

1 2 1 3

2 0 4

3 4 1

*4 4 4

a b

Q0

Page 13: Autómatas finitos no deterministas actualizado

Equivalencia entre AFND y AFD

El AFD equivalente es:

a b

Q0 Q1 Q2

Q1 Q3 Q2

*Q2 Q4 Q2

*Q3 Q3 Q2

*Q4 Q5 Q6

*Q5 Q5 Q2

*Q6 Q6 Q6

Page 14: Autómatas finitos no deterministas actualizado