Top Banner
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
14

Autómatas finitos no deterministas

Jul 26, 2015

Download

Technology

Omega Tech
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Autómatas finitos no deterministas

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

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

q1

a a

a b

∑={a,b}

q0

q2

q1

a a

bb

∑={a,b}

q0

q2

q1

λ a

bb

∑={a,b}

Page 3: Autómatas finitos no deterministas

Definición

Un autómata finito no determinista (AFND) es un modelo matemá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

Representación

Tablas de transición.

Diagramas de transición.

q0q1 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

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

Definición λ-clausura: Se llama λ-clausura de un estado al conjunto de estados a los que

puede evolucionar sin consumir ninguna entrada, lo denotaremos como CL(q) o λ-clausura(q).

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

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

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

CL(P)= CL(q)qP

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

Viejos=Nuevos=PMientras viejosnuevos

hacerNuevos=viejos

{q / f(pi,λ)=q, piviejos}

Fmientrasλ-clausura(P)=nuevos

Fin_procedimiento

Page 6: Autómatas finitos no deterministas

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)qP

donde PQ, x∑* y a∑

Page 7: Autómatas finitos no deterministas

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

Simulación algorítmica de un AFND

Entrada: cadena de entrada x que termina con un carácter fin de cadena o fin de 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 un carácter de entrada c

Función reconocer() A=CL(q0)c= leer_carácter() Mientras c != FDC

A=CL ( f(q,c))

qPc= leer_carácter()

fmientrasSi A F entonces

Devolver(ACEPTADA)SinoDevolver(NO ACEPTADA)fsi

Page 9: Autómatas finitos no deterministas

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 qG)

Page 10: Autómatas finitos no deterministas

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

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

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}=Q1

2. 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

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