Está en la página 1de 33

Clase 09: AFN, AFD y Construccin de Thompson

Solicitado: Ejercicios 07: Construccin de AFNscon Thompson

M. en C. Edgardo Adrin Franco Martnez 1


http://computacion.cs.cinvestav.mx/~efranco
@efranco_escom
edfrancom@ipn.mx
Contenido

Prof. Edgardo Adrin Franco Martnez


Teora computacional
Clase 08: AFN, AFD y Construccin de Thompson
Autmata finito
Clasificacin de los autmatas finitos
Autmata finito no determinista (AFN)
Autmata finito determinista (AFD)
Teorema sobre la transformacin de AFN en AFD
Transformacin de una expresin regular en un autmata
finito
Construccin de Thompson de un AFN a partir de una
expresin regular
Nomenclatura de Thompson
Ejemplos
2
Ejercicios 07: Construccin de AFNs con Thompson
Autmata finito

Prof. Edgardo Adrin Franco Martnez


Teora computacional
Clase 08: AFN, AFD y Construccin de Thompson
Un autmata finito es un modelo matemtico de
una mquina que acepta cadenas de un lenguaje
definido sobre un alfabeto.

Consiste en un conjunto finito de estados y un


conjunto de transiciones entre esos estados, que
dependen de los smbolos de la cadena de entrada.

El autmata finito acepta una cadena x si la


secuencia de transiciones correspondientes a los
smbolos de x conduce desde el estado inicial a un 3
estado final.
Clasificacin de los autmatas finitos

Prof. Edgardo Adrin Franco Martnez


Teora computacional
Clase 08: AFN, AFD y Construccin de Thompson
La funcin f: E*x QQ, es en general no determinista. As en
funcin de f, se hablar de autmatas finitos deterministas
AFD y autmatas finitos no deterministas AFN.

Un autmata finito no determinista AFN se caracteriza por la


posibilidad de que dada una entrada e en un estado qi, se pueda
pasar a un estado qj, qk,...,qn sin saber a ciencia cierta, a cual de esos
estados pasar. Existiendo la misma probabilidad de que pase a
cualquiera de dichos estados.

Un autmata finito determinista AFD es un caso particular de los


autmatas finitos, en el que la funcin de transicin no presenta
ninguna ambigedad en las transiciones de estados para una
entrada dada.
4
Autmatas finitos no deterministas (AFN)

Prof. Edgardo Adrin Franco Martnez


Teora computacional
Clase 08: AFN, AFD y Construccin de Thompson
La definicin de autmata finito no determinista
AFN o AFN coincide con la de autmata finito:

AFN=(E, Q, f, q1, F)

Con la salvedad de que f: E*x QQ es no determinista,


i.e. es aquel que presenta cero, una o ms transiciones
por el mismo carcter del alfabeto.

5
Resolver:
AFN Ejemplo

Teora computacional
6

Clase 08: AFN, AFD y Construccin de Thompson


Prof. Edgardo Adrin Franco Martnez
Solucin:

Teora computacional
7

Clase 08: AFN, AFD y Construccin de Thompson


Prof. Edgardo Adrin Franco Martnez
Autmatas finitos deterministas (AFD)

Prof. Edgardo Adrin Franco Martnez


Teora computacional
Clase 08: AFN, AFD y Construccin de Thompson
Un autmata finito determinista AFD es un caso
particular de los autmatas finitos, en el que la
funcin de transicin no presenta ninguna
ambigedad en las transiciones de estados para una
entrada dada.

Un autmata finito determinista es una quntupla


AFD=(E, Q, f, q1, F) donde la funcin f: E*x QQ es
determinista.

8
Teorema sobre la transformacin de AFN en AFD

Prof. Edgardo Adrin Franco Martnez


Teora computacional
Clase 08: AFN, AFD y Construccin de Thompson
"Para todo autmata finito no determinista AFN=(E,
Q, f, q1,F) se puede construir un autmata finito
determinista AFD=(E, Q, f, q1, F) tal que el
lenguaje reconocido por el autmata finito
determinista AFD coincida con el lenguaje
reconocido por el autmata finito no determinista
AFN, es decir L(AFD) = L(AFN)".

9
AFN
Expresin: ab|ac*

INICIO
1

a
a
2

c
b
3
Transformacin de AFN en AFD

Teora computacional
10

Clase 08: AFN, AFD y Construccin de Thompson


Prof. Edgardo Adrin Franco Martnez
AFD

INICIO
Expresin: ab|ac*

1
a
2,4

c
b

4
3

Teora computacional
11

Clase 08: AFN, AFD y Construccin de Thompson


Prof. Edgardo Adrin Franco Martnez
Transformacin de una expresin regular en un autmata
finito

Prof. Edgardo Adrin Franco Martnez


Teora computacional
Clase 08: AFN, AFD y Construccin de Thompson
Dada una expresin regular existe un autmata
finito capaz de reconocer el lenguaje que sta define.

Recprocamente, dado un autmata finito, se puede


expresar mediante una expresin regular del
lenguaje que reconoce.

12
((a+b)(a(bba* + aa) + ba))(b*)
finito
Transformacin de una expresin regular en un autmata

Teora computacional
13

Clase 08: AFN, AFD y Construccin de Thompson


Prof. Edgardo Adrin Franco Martnez
Teora computacional
14

Clase 08: AFN, AFD y Construccin de Thompson


Prof. Edgardo Adrin Franco Martnez
Teora computacional
15

Clase 08: AFN, AFD y Construccin de Thompson


Prof. Edgardo Adrin Franco Martnez
Construccin de Thompson de un AFN a partir de
una expresin regular

Prof. Edgardo Adrin Franco Martnez


Teora computacional
Clase 08: AFN, AFD y Construccin de Thompson
La construccin de Thompson construye un AFN a
partir de cualquier expresin regular.

La construccin de Thompson construye a partir de


una expresin regular r un AFN que reconoce el
lenguaje definido por r, esto se realiza con el
objetivo de que en un algoritmo siguiente se pueda
generar un AFD mnimo equivalente.

Utiliza una notacin estndar para generar el AFN


16
Nomenclatura de Thompson

Prof. Edgardo Adrin Franco Martnez


Teora computacional
Clase 08: AFN, AFD y Construccin de Thompson
Para la representacin de una cadena vaca se utiliza
el smbolo o

Cadena Vaca

17
Para representar un smbolo, se utilizan dos
estados y una transicin para el movimiento con el

Prof. Edgardo Adrin Franco Martnez


Teora computacional
Clase 08: AFN, AFD y Construccin de Thompson
smbolo.

18
se unen

rs

Concatenacin de smbolo
Para la concatenacin de dos smbolos nicamente

Teora computacional
19

Clase 08: AFN, AFD y Construccin de Thompson


Prof. Edgardo Adrin Franco Martnez
Para la eleccin de alternativas, crear transiciones
para la unin de las transiciones.

Prof. Edgardo Adrin Franco Martnez


Teora computacional
Clase 08: AFN, AFD y Construccin de Thompson
r|s

Eleccin de alternativas

20
Para la cerradura positiva, se agregan transiciones
para retornar al estado previo, permitiendo agregar

Prof. Edgardo Adrin Franco Martnez


Teora computacional
Clase 08: AFN, AFD y Construccin de Thompson
1 o mas veces el smbolo

r+

Cerradura positiva

21
Para la cerradura de Kleene, se agregan
transiciones para retornar a estado previo. Y otra

Prof. Edgardo Adrin Franco Martnez


Teora computacional
Clase 08: AFN, AFD y Construccin de Thompson
transicin para saltar la transicin con r.

r*

Cerradura de Kleene

22
Ejemplo 01 Mtodo de Thompson

Prof. Edgardo Adrin Franco Martnez


Teora computacional
Clase 08: AFN, AFD y Construccin de Thompson
Diagrama del AFN que representa la ER a*b.

1. Parte de la cerradura de Kleene.

a*b

23
smbolo b

a*b
2. Para continuar se generan la concatenacin del

Teora computacional
24

Clase 08: AFN, AFD y Construccin de Thompson


Prof. Edgardo Adrin Franco Martnez
a*b

q0
q1
estado inicial y final

q2

q3
q4
3. Para finalizar se numeran los estados y se indica el

Teora computacional
25

Clase 08: AFN, AFD y Construccin de Thompson


Prof. Edgardo Adrin Franco Martnez
4. Formalizando
AFN=(E,Q,f,q0,F)

Prof. Edgardo Adrin Franco Martnez


Teora computacional
Clase 08: AFN, AFD y Construccin de Thompson
E={a,b} L(a*b)=L(AFN)
Q={q0,q1,q2,q3,q4}
F={q4}
f: E*x QQ

f a b
q0 - - {q1, q3}
q1 q2 - -
q2 - - {q1, q3}
q3 - q4 -
q4 - - -

26
Ejemplo 02 Mtodo de Thompson

Prof. Edgardo Adrin Franco Martnez


Teora computacional
Clase 08: AFN, AFD y Construccin de Thompson
A partir de la ER (b|(b*a)*)a

1. Parte de la cerradura de Kleene que se encuentra


dentro de parntesis.

(b|(b*a)*)a

27
smbolo a

(b|(b*a)*)a
A partir de la ER (b|(b*a)*)a

2. Completamos dicho parntesis concatenando el

Teora computacional
28

Clase 08: AFN, AFD y Construccin de Thompson


Prof. Edgardo Adrin Franco Martnez
(b|(b*a)*)a
A partir de la ER (b|(b*a)*)a



3. Aplicar la Cerradura de Kleene al parntesis

Teora computacional
29

Clase 08: AFN, AFD y Construccin de Thompson


Prof. Edgardo Adrin Franco Martnez
A partir de la ER (b|(b*a)*)a

Prof. Edgardo Adrin Franco Martnez


Teora computacional
Clase 08: AFN, AFD y Construccin de Thompson
4. La eleccin de alternativas del b y el diagrama
anterior.

(b|(b*a)*)a

30
(b|(b*a)*)a



indicando el estado inicial y el final
5. Concatenamos el ltimo smbolo, enumerando e

Teora computacional
31

Clase 08: AFN, AFD y Construccin de Thompson


Prof. Edgardo Adrin Franco Martnez
6. Formalizando
AFN=(E,Q,f,q0,F) L((b|(b*a)*)a)=L(AFN)
E={a,b}

Prof. Edgardo Adrin Franco Martnez


Teora computacional
Clase 08: AFN, AFD y Construccin de Thompson
Q={q0,q1,q2,q3,q4, q5,q6,q7,q8,q9,q10,q11}
F={q11}
f: E*x QQ f A b
q0 - - {q1, q8}
q1 - - {q2, q7}
q2 - - {q3, q5}
q3 - q4 -
q4 - - q5
q5 q6 - -
q6 - - {q7, q2}
q7 - - q10
q8 - q9 -
q9 - - q10
32
q10 q11 - -
Q11 - - -
Ejercicios 07: Construccin de AFNs con Thompson

Prof. Edgardo Adrin Franco Martnez


Teora computacional
Clase 08: AFN, AFD y Construccin de Thompson
Construir grafica y formalmente los autmatas para las siguientes
expresiones regulares a travs de la nomenclatura de Thompson.
1. (abc)*
2. (b|bc)+
3. letra_(letra_|digito)*
4. (a|b)*abb
5. [(b|b*a)*]a
6. (a*|b+) +

*Se entregarn antes del da Lunes 30 de Septiembre de 2013


(23:59:59 hora limite).
*Sugerencia utilizar Jflap para el dibujo y simulacin de los
autmatas
*Incluir la redaccin de cada ejercicio
33
*Portada y encabezados de pagina

También podría gustarte