You are on page 1of 31

AFN, AFD y Construccin de Thompson

Ing. Romualdo Jonatan Quintero Hernndez Sistemas Computacionales

Contenido

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 Ejercicios 02 "Construccin de AFNs con Thompson"
RJQH

Autmata finito
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 estado final.
RJQH

Clasificacin de los autmatas finitos


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

Autmatas finitos no deterministas (AFN)


La definicin de autmata finito no determinista AFN o AFN coincide con la de autmata finito :

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.

RJQH

AFN Ejemplo
Resolver:

RJQH

AFN Ejemplo
Solucin:

RJQH

Autmatas finitos deterministas (AFD)


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.

RJQH

Teorema sobre la transformacin de AFN en AFD


"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)".

RJQH

Transformacin de AFN en AFD


AFN

Expresin: ab|ac*
1
INICIO

2
4

RJQH

Transformacin de AFN en AFD


AFD b
2,4
3

Expresin: ab|ac*
INICIO

a
1

RJQH

Transformacin de una expresin regular en un autmata finito


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.

RJQH

Transformacin de una expresin regular en un autmata finito

RJQH

Transformacin de una expresin regular en un autmata finito

RJQH

Transformacin de una expresin regular en un autmata finito

RJQH

Construccin de Thompson de un AFN a partir de una expresin regular


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
RJQH

Nomenclatura de Thompson
Para la representacin de una cadena vaca se utiliza el smbolo .

Cadena Vaca

RJQH

Nomenclatura de Thompson
Para representar un smbolo, se utilizan dos estados y una transicin para el movimiento con el smbolo.
r

RJQH

Nomenclatura de Thompson
Para la concatenacin nicamente se unen
de dos smbolos

rs

Concatenacin de smbolo

RJQH

Nomenclatura de Thompson
Para la eleccin de alternativas, crear transiciones para la unin de las transiciones.

r|s

Eleccin de alternativas
RJQH

Nomenclatura de Thompson
Para la cerradura positiva, se agregan transiciones para retornar al estado previo, permitiendo agregar 1 o mas veces el smbolo r+

Cerradura positiva

RJQH

Nomenclatura de Thompson
Para la cerradura de Kleene, se agregan transiciones para retornar a estado previo. Y otra transicin para saltar la transicin con r.

r*

Cerradura de Kleene
RJQH

Ejemplo 01 Mtodo de Thompson


Diagrama del AFN que representa la ER a*b. 1. Parte de la cerradura de Kleene. a*b

RJQH

Ejemplo 01 Mtodo de Thompson


2. Para continuar se generan la concatenacin del smbolo b

a*b

RJQH

Ejemplo 01 Mtodo de Thompson


3. Para finalizar se numeran los estados y se indica el estado inicial y final

a*b

RJQH

Ejemplo 02 Mtodo de Thompson


A partir de la ER (b|(b*a)*)a 1. Parte de la cerradura de Kleene que se encuentra dentro de parntesis.

RJQH

Ejemplo 02 Mtodo de Thompson


A partir de la ER (b|(b*a)*)a 2. Completamos dicho parntesis concatenando el smbolo a (b|(b*a)*)a

RJQH

Ejemplo 02 Mtodo de Thompson


A partir de la ER (b|(b*a)*)a 3. Aplicar la Cerradura de Kleene al parntesis (b|(b*a)*)a

RJQH

Ejemplo 02 Mtodo de Thompson


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

4. La eleccin de alternativas del b y el diagrama anterior. (b|(b*a)*)a

RJQH

Ejemplo 02 Mtodo de Thompson


5. Concatenamos el ltimo smbolo, enumerando e indicando el estado inicial y el final (b|(b*a)*)a

RJQH

Ejercicios 02 "Construccin de AFNs con Thompson"


Construir los autmatas para las siguientes

expresiones regulares a travs nomenclatura de Thompson.


1. (abc)*

de

la

2. (b|bc)+ si 3. letra_(letra_|digito)* 4. (a|b)*abb si 5. [(b|b*a)*]a 6. (a*|b+) +

si

RJQH

You might also like