Вы находитесь на странице: 1из 26

CONVERTIR UN AFN EN AFD 3.1.

Equivalencia entre autmatas Equivalencia entre AFD y AFN


La equivalencia entre AFD y AFN es clara entendiendo todo AFD como un caso particular de un AFN. En el otro sentido, a partir un AFN A=(Q,S, d,q0,F) se puede construir otro AFD A'=(Q',S, d', q0', F') equivalente (que acepte el mismo lenguaje), de la siguiente forma: Q' = 2Q q0' = {q0} F' = { q' Q' | q' F }

d'(q',a) =

Figura 1. Autmata finito no determinista del ejemplo 1. Ejemplo 1. Dado el autmata de la figura 1, el proceso de construccin de un AFD equivalente parte del estado inicial {q0}, y determina el conjunto de estados alcanzables con cada smbolo del alfabeto. De esta forma, por ejemplo, al considerar el smbolo a se alcanzan los estados {q0, q1, q2}. Cada uno de los conjuntos de estados que aparezcan se considera como uno de los estados del AFD equivalente, determinandose para cada uno de ellos su funcin de transicin. El proceso se repite mientras aparezcan nuevos estados. La figura 2 muestra la tabla de transiciones del AFD.

(q q')

d(q,a) : q' Q, a S

a {q0} {q0,q1,q 2}

b {q1, q2} {q1, q2}

c { q 2} { q

{q0,q1,q2 {q0,q1,q } 2}

{q1,q2}

{q1, q2}

{ q 2} { q 2}

{q2}

Figura 2. Tabla de transiciones del AFD equivalente al AFN de la a partir de esta tabla el diagrama de transiciones queda como muestra la figura 3. Figura 3. Autmata finito determinista equivalente. Ejemplo 2. Dado el AFN de la figura 4 la tabla de transiciones del AFD equivalente sera la mostrada en la figura 5, con lo que el diagrama de transiciones del AFD quedaria como se muestra en la figura 6 Figura 4. AFN ejemplo.

a {q0} {q0,q1} {q0} {q0}

b {q0,q1} {q0,q1,q 2}

{q0,q1,q2 {q0,q1,q {q0,q1,q } 2} 2}

Figura 5. Tabla de transiciones del AFD equivalente al AFN de la figura 4. Figura 6. AFD equivalente al AFN de la figura. El estado {q0,q1,q2} es el nico estado final del AFD porque es el nico que contiene el estado q2, estado final del AFN original.

Equivalencia entre AFD y AFl


A partir de todo autmata finito no determinista con l-transiciones A=(Q,S, d,q0,F), se puede construir un AFD equivalente. Para ello seguiremos los siguientes pasos: 1. Obtener un AFN A'=(Q,S,d', q0, F') donde: F' = F {q0}, si l-clausura(q 0) F F' = F, si l-clausura(q0) F = . d'(q,a) = (q,a) tomando a S, x S*, q Q y donde: (q,l) = l-clausura(q) (q,xa) = l-clausura

(p (q,x))

d(p,a)

de esta forma A' no posee l-transiciones. 2. A partir del AFN obtenido, aplicar el mtodo de la seccin 1.1 para obtener un AFD a partir de un AFN. Figura 7. Ejemplo de autmata finito con transiciones vacias Ejemplo 3. Dado el AFl de la figura 7, representamos en la figura 8 su tabla de transiciones y la l-clausura de cada estado.

lclausu ra {q0,q1} {q0,q1}

q0 {q2} q1 { q 1} {q3}

q2

{ q 1}

{q2, q3}

{q0,q1,q 2} {q0,q1,q 3}

q3

Figura 8. Tabla de transiciones y l-clausura de cada estado del AFl de la figura 7.

Para obtener el conjunto de transiciones del AFN equivalente aplicaremos la construccin indicada al principio de la seccin. Por ejemplo, para obtener el conjunto de transiciones del estado q0 con el smbolo b en el AFN equivalente: partiremos de la l-clausura de q0 ({q0,q1}) obtendremos los estados que se alcanzan a partir de {q0,q1} utilizando una b ({q2} {q3}) obtendremos la l-clausura de este conjunto: l-clausura({q 2,q3}) = {q0,q1,q2} {q0,q1,q3} = {q0,q1, q2, q3}

Procediendo de igual forma para todo q Q y todo a S, obtenemos la tabla de transiciones del AFN sin transiciones vacias que se muestra en la figura 9. En este AFN, el nico estado final es q3 porque l-clausura(q0) F = . Una vez obtenida la tabla de transiciones del AFN, se puede construir el AFD equivalente que queda como muestra la figura 10.

a q0 {q0, q1} q1 {q0, q1}

b {q0,q1,q2,q 3} {q0,q1,q2,q 3} {q0,q1,q2,q

q2 {q0,

q1} q3 {q0, q1}

{q0,q1,q2,q 3}

Figura 9. Tabla de transiciones del AFN equivalente al AFl de la figura 7. Figura 10. Autmata finito determinista equivalente al AFl de la figura 7. Ejemplo 4. Otro ejemplo de AFl es el mostrado en la figura 11. Figura 11. Autmata finito con transiciones vacas. La tabla de transiciones y la l-clausura de cada estado del autmata de la figura 11 se muestran en la figura 12.

lclausur a

q0

{ {q0,q2,q q1 3} } {q1}

q1 { q 3} q2 { q 0} { q 3}

{q2}

q3 { q 3}

{q3}

Figura 12. Tabla de transiciones y l-clausura de cada estado en el AFl de la figura 11. Como ejemplo del paso a AFN, para obtener el conjunto de transiciones del estado q1 con el smbolo a: partiremos de la l-clausura de q1 ({q1}) obtendremos los estados que se alcanzan a partir de {q1} utilizando una a (conjunto vacio) l-clausura() = El AFN resultado tiene como estados finales {q0, q3} porque en este caso lclausura(q0) F . Al repetir el proceso para cada estado se obtiene la tabla de transiciones de la figura 13. A partir de ella, se puede obtener el AFD de la figura 14.

0 q0 {q0,q1,q2,q 3} q1

1 { q 3} { q 3} { q 3} { q 3}

q2

{q0,q2,q3}

q3

Figura 13. Tabla de transiciones del AFN equivalente al AFl de la Figura 14.Autmata finito determinista equivalente al AFl de la 11 ELABORANDO UN AFD

La construccin de AFDs es esencial para entender el comportamiento de las expresiones regulares. Dado un alfabeto y una serie de condiciones, se puede elaborar un AFD que satisfaga dichas condiciones, mediante ensayo y error Ejercicios Dado el alfabeto en {0,1}, elaborar un AFD que acepte solamente palabras que empiecen con 00 que no empiecen con 00 con un nmero par de ceros con un nmero impar de unos con las dos condiciones anteriores A continuacin se realiza el inciso c:

Las palabras reconocidas son todas aquellas que llegan a los estados finales a partir del estado inicial. Un autmata finito (determinista) es pues una estructura de la forma

donde

Un semiautmata finito es una estructura de la forma

Es decir, es un ``autmata finito'' en el que no se ha especificado estados finales. Todo autmata finito puede ser visto como un semiautmata con estados finales distinguidos. El semiautmata determinado por un autmata se dice ser el semiautmata subyacente del autmata. Todas las nociones y aseveraciones hechas sobre semiautmatas sern vlidas tambin en los autmatas de los que son subyacentes. Como en las mquinas finitas, ya sea de Mealy o de Moore, en cada semiautmata extendemos la funcin de transicin para cada estado : a una funcin , haciendo,

Sea

la funcin

. Un estado

se dice

ser accesible si est en la imagen de T, es decir, si . La parte accesible de es la imagen de T, es decir, consta de todos los estados accesibles a partir del estado inicial. Lema 2.1 Sea un semiautmata finito. Cualquier estado accesible se alcanza mediante una palabra de longitud a lo sumo el nmero total de estados, . En otras palabras, la parte accesible

del

semiautmata

coincide

con

el

conjunto

En efecto, para cada sea el conjunto de palabras de longitud a lo sumo m. La coleccin de conjuntos es un recubrimiento (creciente) del diccionario mediante conjuntos anidados:

Consecuentemente, es tambin un recubrimiento de Q mediante conjuntos anidados. Por ser Q finito, necesariamente para algn ndice m0 se ha de tener que todo , inclusiones, , y, de hecho, para . As pues, se tiene una cadena finita de

Como cualesquiera dos conjuntos consecutivos

pueden . Adems,

diferir en al menos un elemento en Q se tiene que

. De aqu se sigue la tesis del lema, quod erat demonstratum (q.e.d.). La parte accesible, , de un semiautmata consta de todos sus estados accesibles. Naturalmente, se tiene un algoritmo elemental para construir la parte accesible de cualquier semiautmata finito:

1. Consideremos dos listas: una de estados ya revisados y otra de estados por revisar. Inicialmente la primera est vaca y la segunda consta slo del estado inicial. 2. Para cada estado por revisar, (a) se toma a ese estado como actual q, (b) para cada smbolo de entrada sea . Si p aparece en alguna de las dos listas se pasa al siguiente smbolo, en otro caso se lo coloca al final de los estados a revisar, (c) se coloca el estado actual en la lista de los ya revisados. En la figura 3.5 se presenta un pseudo cdigo de este algoritmo. Figure 3.5: Clculo de la parte accesible.

El lema anterior implica que el nmero de iteraciones en el ciclo principal del algoritmo anterior no excede al nmero de estados en el autmata.

Ejemplo. Si

consta de un nico smbolo entonces el algoritmo 3.5 , es

muestra que la parte accesible tiene forma de la letra griega ``rho'', decir, existen tales que

Sea

un autmata finito. Decimos que una palabra

es reconocida por A si , es decir, es reconocida si al aplicarla a desde el estado inicial se arriba a uno de los estados finales. El lenguaje reconocido por consta de todas las palabras reconocidas por :

Diremos que un autmata

subsume a otro autmata

si

. La relacin de ``subsuncin'' es reflexiva y transitiva. Diremos que dos autmatas son equivalentes si uno subsume al otro, es decir, si coinciden los lenguajes reconocidos por ellos. Esta es una relacin de equivalencia entre autmatas. Diremos que un lenguaje es regular-

AF si existe un autmata finito

tal que

Ejemplos. Sea . 1. Construyamos un autmata que reconozca cadenas binarias con nmeros pares de 0's y de 1's. Consideremos los estados siguientes:

La tabla de transicin queda definida de manera natural:

El estado inicial es q0 y el conjunto de estados finales es ver que el lenguaje reconocido por este autmata es

. Es fcil

El lenguaje L es pues regular-AF. En este ejemplo, es tambin muy fcil ver que para cada de 1's en . , queda determinada por las paridades de 0's y

2. Consideremos el autmata con tabla de transicin

y estado inicial q0. Observemos que si se arriba al estado q3 ya no se sale de ah,

se arriba a q3 si inicialmente aparece un 1 y no hay 0's que lo precedan, o bien, habiendo llegado un bloque de 0's y luego uno de 1's, reaparece un 0. As pues, si el conjunto de estados finales es reconocido por este autmata es entonces el lenguaje

AUTMATAS FINITOS NO DETERMINISTAS


CONVERTIR UN DIAGRAMA NO DETERMINISTA EN UNO DETERMINISTA
Cojamos el diagrama del siguiente autmata para el alfabeto S ={a, b}. Como podemos ver, no es determinista pues desde el estado 1 salen dos arcos rotulados con b y del estado 2 salen dos arcos etiquetados con a.

<>

Para convertir el diagrama no determinista en uno que lo sea vamos ha realizar los siguientes pasos: S'=P(S) Conjunto de todos los subconjuntos de S (recordar que el conjunto potencia se encuentra incluido el conjunto vaco, que ser el estado de captacin global) Como tenemos tres estados, el conjunto potencia P(S) = { l, 1, 2, 3, 1-2, 13, 2-3, 1-2-3 } i'= {i} (mismo estado inicial)

En nuestro caso seguir siendo el estado 1. F' es la coleccin de subconjuntos de S (estados de S') que contienen, por lo menos, un estado de F (cada uno de los estados de S' dentro de los cuales hay al menos un estado de aceptacin de M). En nuestro caso sern todos los subconjuntos que tengan el estado 3, ya que este es el nico estado de aceptacin del diagrama original; luego F'= { 3, 1-3, 2-3, 1-2-3 }

d es la funcin de S' x S a S'; Para cada smbolo del alfabeto y estado s' de S', d (s',x) es el estado de S' compuesto por los estados de S a los que es posible llegar desde todos los estados s de s' siguiendo un arco con etiqueta x. Como d es una funcin, M' es finito determinista. En nuestro caso, En cada estado del conjunto potencia solo va a salir un arco por cada smbolo, siendo el destino, el estado de S' que tenga todos los estados a los que fuera en el diagrama inicial: para ello: + vaco.- como dijimos, era el estado de captacin global, por lo tanto se le dibujan tantos arcos que salen e inciden en el estado, como smbolos del alfabeto haya, con los cuales se rotulan. Adems, en este estado, van a incidir todas aquellas transiciones que no existan para algn smbolo en algn estado original.

* Estado 1.- Con la etiqueta a no hay transicin en el original, por lo tanto el arco se dibuja hacia el estado vaco con la etiqueta b salen dos arcos, uno hacia el estado 2 y otro al estado 3, por lo tanto el arco se dibuja al estado 2-3

* Estado 2.- Con la etiqueta b no hay transicin en el original, por lo tanto el arco se dibuja hacia el estado vaco; con la etiqueta a salen dos arcos, uno hacia el estado 1 y otro al estado 3, por lo tanto el arco se dibuja al estado 13. * Estado 3.- Con ninguna de las dos etiquetas hay transicin en el original, por lo tanto se dibujan sendos arcos hacia el estado vaco.

* Estado 1-2.- Con la etiqueta a hay transicin desde el estado 2 original al 1 y 3 original, por lo tanto el arco se dibuja hacia el estado 1-3; con la etiqueta b salen dos arcos desde el estado 1 original, uno hacia el estado 2 y otro al estado 3, por lo tanto el arco se dibuja al estado 2-3. * Estado 1-3.- Con la etiqueta a no hay transicin desde ninguno de los dos estados originales, por lo tanto el arco se dibuja hacia el estado vaco; con la etiqueta b salen dos arcos desde el estado 1 original, uno hacia el estado 2 y otro al estado 3, por lo tanto el arco se dibuja al estado 2-3.

*Estado 2-3.- Con la etiqueta a hay transicin desde el estado 2 original al 1 y 3 original, por lo tanto el arco se dibuja hacia el estado 1-3; con la etiqueta b no sale ningn arco en ninguno de los dos estados originales, por lo tanto el arco se dibuja al estado vaco. * Estado 1-2-3.- Con la etiqueta a hay transicin desde el estado 2 original al 1 y 3 original, por lo tanto el arco se dibuja hacia el estado 1-3; con la etiqueta b salen dos arcos desde el estado 1 original, uno hacia el estado 2 y otro al estado 3, por lo tanto el arco se dibuja al estado 2-3.

Una vez que hemos terminado todos los pasos, podremos eliminar aquellos estados que sean superfluos al diagrama que acabamos de obtener. En nuestro caso particular podemos eliminar los estados 2, 3, 1-2 y 1-2-3, quedando el definitivo autmata finito determinista.

TEOREMA DE TRANSFORMACIN AFN A AFD Para todo AFN N existe algn AFD D tal que L(N)=L(D) Un AFN con transiciones puede ser convertido en un AFN sin transiciones , eliminando las transiciones vacas, sin alterar el comportamiento del autmata. Para hacer esto, es necesario comprender que las deltas manejadas tienen una diferencia cuando se trata de la cerradura al vaco, ya que en el AFN sin la cerradura al vaco de un estado es solamente el mismo estado.

Lema. Para cada x,y y A K, (A,xy) = ((A,x),y) El lema anterior nos dice que es posible separar las cadenas en una operacin de transicin de un Autmata Finito. Esta separacin nos ayudar a simplificar el rastreo de la cadena general.

Ejercicios. Obtener un AF que acepte ((a+b)(a+b))*(ab+(ba)*) Obtener una ER para el lenguaje generado por el siguiente autmata:

En este captulo se ense el concepto de Expresin Regular y su relacin para ser representado por un Autmata Finito. La construccin de AFs tiene como base los grafos de transicin, los cuales nos muestran cmo un lenguaje puede ser reconocido por dicho grafo. NOCIONES BSICAS Los autmatas no-deterministas se conforman como los autmatas finitos ya vistos, salvo que sus transiciones, en lugar de ser funciones, son relaciones que a cada pareja (estado, estmulo) le asocian varios, uno o ningn estado. Ms precisamente: Un semiautmata no-determinista es una estructura de la forma

donde

Un autmata no-determinista es una pareja

donde es un conjunto de

SAFND es un semiautmata no-determinista y


estados finales. Si

decimos que se puede transitar a p desde el su

estado q cuando arriba un smbolo e. Para cada pareja

imagen bajo la transicin es el conjunto , es decir, es el conjunto de estados a los que se puede transitar desde q con e.
De manera reiterada, para como sigue: , definimos la imagen

Para cada

definimos

. Una palabra

es

reconocida por el autmata del autmata consiste

si algn estado en es final. El lenguaje de todas las palabras que reconoce,

Ejemplo. Sea

el autmata no-determinista tal que

En la siguiente tabla presentamos el clculo de la correspondiente funcin T en algunas palabras:

As pues,

y consecuentemente

Observacin 3.1 Todo autmata finito (determinista) es tambin un autmata finito no-determinista. En efecto, las funciones son casos particulares de relaciones. Por tanto, toda funcin de transicin, es una relacin de transicin Representacin de transiciones mediante matrices booleanas Sea el lgebra booleana de dos elementos, dotada de sus es 1 slo

operaciones usuales de conjuncin, `` '' y disyuncin, `` '':

si ambos x e y son 1; entrada para todos

es 0 slo si ambos x e y son 0. Para cada smbolo de tal que

definamos la matriz :

Similarmente,

para

definamos tal que para todos :

la

matriz

As pues,

se tiene la relacin,

Ahora bien, la coleccin de matrices booleanas con ndices en Q tiene una estructura de anillo con la operacin suma dada por la disyuncin entrada a entrada,

y el producto booleano de matrices,

Lema 3.1 Si

entonces

. En

particular, si

entonces

Ejemplo. Para el AFND del ejemplo anterior tenemos

Indeterminismo y determinismo

Diremos que un lenguaje es regular-N si coincide con el lenguaje reconocido por algn autmata no-determinista. Ya que todo autmata finito es en s mismo un autmata no-determinista se tiene que todo lenguaje regular es tambin un lenguaje regular-N. El recproco tambin es cierto. Lema 3.2 (Equivalencia de determinismo e indeterminismo) Todo lenguaje regular-N es regular. Es decir, para todo autmata no-determinista existe un autmata finito tal que .

En efecto, sea un autmata no-determinista. Podemos presentar dos construcciones de autmatas finitos equivalentes a . Primera construccin. Construyamos el monoide del autmata nodeterminista y consideremos su estructura de autmata finito: cada uno de sus elementos transicin es un estado, para cada smbolo definamos la

y definamos como estados finales a las clases de

equivalencia tales que . Una palabra ser reconocida en este ltimo autmata cuando y slo cuando lo sea por . Segunda construccin. Construyamos como sigue: estados: Todo subconjunto de estados ``viejos'' ser un ``nuevo'' estado, el autmata finito

transicin: Todo subconjunto de estados ``viejos'' se transforma en su imagen bajo la funcin de transicin ``vieja'', , es decir, para cada , estado inicial: Hagamos , la mnada que consta slo del estado inicial ``viejo''. si y slo si .

estados finales: Todo subconjunto de estados ``viejos'' que contenga alguno final de sos ser un nuevo estado final: Observamos que rige cada una de las siguientes equivalencias para cualquier palabra :

as pues, y son equivalentes. Observemos tambin aqu que el nuevo conjunto de estados ha de tener 2n elementos, donde n es el nmero de estados ``viejos''. Esto hace crecer mucho el tamao del autmata finito equivalente construdo de esta forma. Bien que en algunos casos tal cota superior al nmero de estados nuevos puede alcanzarse, en muchos otros casos la parte accesible del autmata construdo incluir slo una cantidad mucho menor de estados. Por tanto, en la prctica es muy conveniente construir tan solo la parte accesible del autmata siguiendo la estrategia del algoritmo (3.5) de clculo de estados accesibles.

Ejemplo. Consideremos el mismo ejemplo tratado en esta seccin. Cada subconjunto Q del conjunto de estados codificado por una cadena de 5 caracteres manera evidente, puede ser de

y cada una de tales cadenas puede ser vista como la representacin binaria de un nmero entero entre 0 y 31. Nombremos pues con nmeros de 0 a 31 a los elementos del conjunto Q2 de nuevos estados. As por ejemplo ``7'' que en binario es 00111 representa al conjunto y ``16'', 16=(10000) 2, es

el nuevo estado inicial . Los nuevos estados finales son todos aquellos que contegan a q4, es decir, que tengan el ltimo bit ``prendido''. Los nuevos estados finales son entonces todos los nmeros impares. Con ayuda de la tabla (3.14), se ve que la funcin de transicin del nuevo autmata es la mostrada en la tabla (3.15).

Table 3.15: Transicin en el autmata finito equivalente al nodeterminista.

Observamos en este ejemplo que hay muchos estados inaccesibles tan slo por el hecho de que la imagen de la funcin de transicin no incluye a todos los estados. Con el estmulo 0 slo se puede arribar a los estados 0, 4, 8, 12, 16, 20, 24 y 28. Con el estmulo 1 slo se puede arribar a los estados 0, 2, 13 y 15. Si se aplica el algoritmo (3.5) se obtiene el autmata de 8 estados cuya tabla de transicin es la siguiente:

en el que ``16'' es el estado inicial y ``13'' es el nico estado final.

Вам также может понравиться