Você está na página 1de 16

3.

4 REPRESENTACIN DE UN ER USANDO AFND

AUTMATAS FINITOS Y EXPRESIONES REGULARES.


Existen algoritmos que relacionan la especificacin de tokens expresiones regulares-,con el reconocimiento de stos autmatas finitos-. Tambin es posible obtener el AFND que reconozca el lenguaje representado por dicha expresin regular. El algoritmo utilizado para la construccin del autmata finito no determinstico AFND, es relativamente sencillo de aplicar, ya que se basa en reglas simples. Existen muchas variantes de este algoritmo denominado Algoritmo de Thompson. Este algoritmo es dirigido por sintaxis, es decir, usa la estructura sintctica de la expresin regular para guiar el proceso de construccin del autmata AFND.

EXPRESIN REGULAR
El objetivo de las expresiones regulares es representar todos los posibles lenguajes definidos sobre un alfabeto , en base a una serie de lenguajes primitivos, y unos operadores de composicin. Lenguajes primitivos: el lenguaje vaco, el lenguaje formado por la palabra vaca, y los lenguajes correspondientes a los distintos smbolos del alfabeto. Operadores de composicin: la unin, la concatenacin y el cierre.

Dado un alfabeto S, las expresiones regulares sobre S se definen de forma recursiva por las siguientes reglas:
1. Las siguientes expresiones son expresiones regulares primitivas: a, siendo aS. 2. Sean a y b expresiones regulares, entonces son expresiones regulares derivadas: a+b (unin) a.b (o simplemente ab) (concatenacin) a* (cierre) (a) 3. No hay ms expresiones regulares sobre S que las construidas mediante estas reglas.

DESCRIPCIN DE LAS EXPRESIONES REGULARES BSICAS


l smbolo es una expresin regular que describe el lenguaje {}, lenguaje vaco l smbolo es una expresin regular que describe el lenguaje { }, lenguaje formado por la palabra vaca Para todo smbolo a , a es una expresin regular que describe el lenguaje { a }, lenguaje formado por la palabra a.

DEFINICIN FORMAL AFND


Los AFND es una extensin de los AFD que tiene la capacidad de transitar a ms de un estado para una misma entrada.

Un AFND se define mediante una quntupla AF=( , Q, , q0, F), donde: - : alfabeto de las palabras de lenguaje a reconocer - Q : conjunto de estados, es un conjunto finito no vaco, - : Q x P(Q), representa subconjunto de estados de Q. Funcin de transicin, que transforma el par ordenado (qi, a){qj,..} - q0 Q, estado inicial -F Q: conjunto no vaco de estados finales o de aceptacin
Dado el siguiente lenguaje L = {anbm | n,m>0}, especificar un AF que lo reconozca:

AF=(={a,b}, Q={ q0, q1, q2}, , q0, F={ q2}), : (q0, a) {q0} (q0, a) {q1} (q0, a) {q0, q1} (q1, b) {q1} (q1, b) {q2} (q1, b) { q1,q2}

AFND EQUIVALENTE A UNA EXPRESIN REGULAR


Tres mtodos principales para convertir expresiones regulares en autmatas: Mtodo de las rn ij (Hopcroft). Eliminacin de estados (Hopcroft,Linz) Ecuaciones caractersticas (Alfonseca, Isasi)(equivalente al mtodo de la eliminacin de estados).

MTODO DE ELIMINACIN DE ESTADOS: CONCATENACIN

MTODO DE ELIMINACIN DE ESTADOS: UNION

MTODO DE ELIMINACIN DE ESTADOS: CIERRE

CONVERSIN DE UN DFA A UNA RE POR ELIMINACIN DE ESTADOS


Ahora utilizaremos autmatas que podrn tener RE como etiquetas. El lenguaje del autmata es la unin de todas las rutas que van del estado inicial a un estado de aceptacin. Concatenando los lenguajes de las RE que van a travs de la ruta. En la siguiente figura se muestra un autmata al cual se va a eliminar el estado s. Se eliminan todos los arcos que incluyen a s Se introducen, para cada predecesor qi de s y cada sucesor pj de s, una RE que representa todas las rutas que inician en qi, van a s, quizs hacen un loop en s cero o mas veces, y finalmente van a pj .La expresin para estas rutas es QiSPj . Esta expresin se suma (con el operador unin) al arco que va de qi a pj . Si este arco no existe, se aade primero uno con la RE El autmata resultante despus de la eliminacin de s es el siguiente

ESTRATEGIA PARA CONSTRUIR EL AUTMATA


1. Para cada estado de aceptacin q, aplicar el proceso de reduccin para producir un autmata equivalente con RE como etiquetas en los arcos. Eliminar todos los estados excepto q y el estado inicial q0. 2. Si q 6= q0, se genera un autmata con 2 estados como el siguiente, una forma de describir la RE de este autmata es (R + SUT)SU

3. Si el estado inicial tambin es un estado de aceptacin, tambin se debe hacer una eliminacin de estados del autmata original que elimine todos los estados menos el inicial y dejamos un autmata como el siguiente:

4. La RE final es la suma (unin) de todas las expresiones derivadas del autmata reducido para cada estado de aceptacin por las reglas 2 y 3.

CONVIRTIENDO UN ER A UN AUTMATA
Todo lenguaje definido por una RE tambin esta definido por un autmata finito. Prueba: Suponemos L = L(R) para la expresin regular R. Mostramos que L = L(E) para algn -NFA E con: 1. Exactamente un estado de aceptacin 2. Sin arcos que lleguen al estado inicial 3. Sin arcos que salgan del estado de aceptacin Base: cumpliendo las condiciones 1, 2, y 3.

Induccin: a)

b)

c)

d)

Ejemplo : Convertir la RE (0 + 1)1(0 + 1) a un -NFA.

Você também pode gostar