Sunteți pe pagina 1din 14

AUTMATAS FINITOS NO DETERMINISTAS (AFND)

Autmatas Finitos No Deterministas (AFND) Definicin: Un Autmata finito determinista queda definido por un quntupla, al igual que en los AFD, y que su diferencia fundamental se encuentra, en como se definir a la funcin de transicin:

AFND = ( , Q, q0, F, f ) donde:

Q q0 F f

Alfabeto de smbolos de entrada. Conjunto finito de estados qo Q estado inicial previsto F Q - es el conjunto de estado finales de aceptacin. Funcin de transicin de estados definida como f: Q x ( U { } ) P (Q)

En donde P (Q), es el conjunto que se puede armar con todos los subconjuntos de Q Este tipo de autmatas se diferencia de los AFD, bsicamente en como puede constituirse la funcin de transicin:. Esta diferencias son las siguientes:

1) 2)

Para cada par estado entrada, el autmata puede tener la posibilidad de transitar a mas de un estado posible. Para algn par de estado entrada, el autmata puede no tener definido ninguna transicin. Lo que significa que podr realizar transicin alguna. Puede realizar transiciones de un estado a otro sin leer smbolo alguno de la entrada. A este tipo particular de transiciones se las denomina transiciones- .

3)

Ejemplo: Una AFND puede definirse como sigue:

AFND1 = ( { 1 , 0 }, { p, q , r, s , t }, p, { r, t }, f ) , donde: la funcin f puede definirse: En forma explicita:

f (p,0) = r f (p,1) = {t,s} f (p, ) = t

f (q,1) = {s,r} f (r,0) = p f (s,0) = {p,r}

f (s,1) = t f (t, ) = s f (t,1) = s

Tabla de doble entrada: Al igual que en los AFD tendremos:

En las filas los estados si el estado es final lo anteceder un * si el estado es inicial lo marcaremos con una En las columnas se pondrn los smbolos del alfabeto de entrada y se aadir una columna adicional para En la interseccin (celdas de la matriz) se indicarn las transiciones

f p q r s t

0 r p {p,r}

1 {t,s} {s,r} t s s t

En la tabla f de la funcin de transicin, se encuentran presentes las tres situaciones que se admiten en los AFND a diferencia de los AFD. La situacin identificada como de no determinismo propiamente dicho, en donde para un estado determinado y ante una misma entrada, el autmata tiene la posibilidad de transitar a uno o mas estado. Esta situacin se presenta en tres oportunidades: f (p,1) = {t,s} f (q,1) = {s,r} f (s,0) = {p,r}

y en representacin grfica de f (p,1) = {t,s} sera:

La segunda situacin cuando que es no tiene definida transicin a estado alguno se presenta en las siguientes situaciones:

f (q,0) = f ( r,1) = f ( t,0) =

Y la tercer situacin es cuando tiene la posibilidad de transitar de estado, an sin leer ningn smbolo de la entrada, esta situacin se evidencia en las siguientes situaciones:

f (p, ) = t f (t, ) = s

Grficamente se evidencia f (p, ) = q de la siguiente manera:

Diagrama de transiciones:

Cada Nodo es un estado El estado inicial tendr un arco entrante no identificado Los estados finales tendrn doble crculo. Existir un arco con sentido, etiquetado con un smbolo a entre dos nodos p y q si existe una transicin F(p,a) = q.

Conceptos asociados a los AFND A continuacin presentaremos un conjunto de definiciones, que resultan necesarias, para el tratamiento de este tipo de Autmatas:

Relaciones de Transiciones-

(Conjunto T).

Cierre transitivo de la relacin T ; (Conjunto T*). Extensin a palabras. Lenguaje Aceptado por un AFND

Equivalencias entre AFD y AFND

Relaciones de Transiciones- (Conjunto T). Es la relacin que se establece entre los pares de estados en que existe una transicin-. Esta relacin tambin es reflexiva, lo que significa tambin existir una transicin entre los estados contra ellos mismos, de esta manera se verifica que para todo estado perteneciente al conjunto de estados existe f (q, ) = q. Con las definiciones anteriores, se proceder a la construccin de un conjunto, denominado conjunto T , que contendr a todos los pares de estados, que tengan transiciones entre ellos. En el ejemplo del AFND1 el conjunto T resultar: T = {(p,t) , (t,s) , (p,p) , (q,q) , (r,r) , (s,s) , (t,t) }

Cierre transitivo de la relacin T (Conjunto T*) Este nuevo conjunto ser calculado aplicando la propiedad transitiva de las relacin T , ya que se verifica que: si p T q y q T r entonces resulta que p T r. En nuestro ejemplo se verifica que aparare un nuevo par de estado (p,s) ya que al aplicar la relacin transitiva p T t y t T s entonces p T s, esta es la nica regla de transitividad que se puede aplicar, de esta manera el nuevo conjunto T* nos quedar.

T * = {(p,t) , (p,s) , (p,p) , (q,q) , (r,r) , (s,s) , (t,t), (t,s) }

Extensin a palabras Ahora veremos como ser el comportamiento del AFND cuando la entrada deja de ser un smbolo individual y pasa a ser una cadena de caracteres, formados con smbolos del alfabeto. Definiremos entonces una funcin f : f : Q x * P (Q)

en la que su comportamiento es el siguiente:

Como los AFND pueden producir transiciones entre estados sin leer ningn smbolo desde el exterior, para cada uno de los estados en donde se encuentra el autmata hay que considerar estas transiciones-. Por lo tanto estas transiciones se pueden presentar antes de leer el primer smbolo, entre cada uno de los smbolos procesador en la entrada y tambin se lo debe hacer sobre el final cuando se ha finalizado de procesar toda la cadena de entrada. Estas transiciones * a las que hacemos referencias son las que aparecen en el conjunto T* del cierre transitivo de las relaciones T (transiciones-) En nuestro ejemplo del AFND1 : vamos a calcular las transiciones que se producirn, tras recibir en la cinta de entrada la cadena 101, entonces:

Lo primero que debemos realizar previo a la entrada del primer smbolo, es aplicar si existieren las relaciones de transiciones-, y entonces como primer paso se debe aplicar: f ( p , ) = Y entonces lo que hacemos es buscar si existen relacin de transiciones dentro del conjunto T* = {(p,t) , (p,s) , (p,p) , (q,q) , (r,r) , (s,s) , (t,t), (t,s) } y lo que se obtiene es lo siguiente: f ( p , ) = {t,s,p} Entonces significa, que el autmata podr estar en cualquiera de los estados t , s , p antes de recibir la primer entrada, por lo tanto se deber ver cual sern las transiciones (aplicacin de la funcin de transicin f) con la entrada para cada uno de los estados respectivos. Ahora entonces aplicamos la funcin f , para el primer smbolo de la entrada.

Entonces lo hecho hasta ahora es : f ( p , .1 ) = { s , t } Ahora nuevamente debemos aplicar el conjunto T* para determinar, si desde los estados s ,t es posible que el autmata transite sin leer nada de la entrada. Al aplicar nuevamente el conjunto T* y nos quedar:

Hasta el momento tendremos : f ( p , .1. ) = { s , t } Veremos ahora a que estados podr transitar ante la lectura de la prxima entrada:

Y hasta el momento tendremos : f ( p , .1..0 ) = { p, r, s } Nuevamente aplicaremos el conjunto T* y tenemos:

Y hasta el momento tendremos : f ( p , .1..0. ) = { p, r, s, t } Nuevamente tomaremos al prximo smbolo de entrada 1 que ser el ltimo que tenemos que procesar, y por lo tanto aplicamos la funcin f.

Vemos que f ( r , 1 ) = , no tiene definida transicin alguna, por lo tanto la descartaremos y nos quedar. Y hasta el momento tendremos : f ( p , .1..0..1 ) = { s, t } Ahora nos falta aplicar sobre el final de la cadena de entrada, si existe transicin sobre los estados ( s, t ) , para ello aplicamos por ltima vez T*

Y finalmente tendremos : f ( p , .1..0..1. ) = { s, t }; Esto significa que partiendo del estado inicial p y recibiendo la cadena de entrada 101, y al seguir todos las combinaciones posibles de transiciones de estados (todos los caminos que se pueden presentar), el autmata solo podr quedar posicionado en el conjunto de estados {s , t} que esta formado por los estados s o t ,y como el estado t pertenece al conjunto de estado finales de aceptacin, se dice que la cadena es aceptada por el AFND Lenguaje Aceptado por un AFND Ser el conjunto de palabras que le hacen transitar desde el estado inicial a algn estado de finalizacin utilizando la funcin f . L
AFND

= { x / x * y f (q0 , x) F

Significa que el lenguaje aceptado por un AFND estar constituido por todas las cadenas formadas con smbolos del alfabeto de entrada, que partiendo desde el estado inicial, el autmata quedar posicionado en un estados que pertenezca al conjunto de estados finales de aceptacin. Equivalencias entre AF Determinista y No determinista La equivalencia entre autmatas AFD y AFND, siempre es posible, y esto significa que siempre se podr dado uno de ellos obtener su equivalente. Por lo tanto, se podr asegurar que ambos, AFD y AFND reconocern el mismo lenguaje. Conversin de AFD a AFND :

Es fcil ver que los AFD son una particularizacin de los AFND, ya que: por un lado no existirn transiciones- y por otro lado, las transiciones siempre producirn un estado determinado. As tendremos que: No existirn transiciones- por lo tanto: f (q, ) = . | f (p,a)| = 1 ; Siempre se transita a un solo estado

Conversin de AFND a AFD: Vamos a construir un AFD partiendo de un AFND, donde: AFND = ( , Q, q0, F, f ) AFD = ( , Q, q0, F , f ) donde para la conversin se tendr en cuenta:

Q = P(Q) q0 = f (q0, ) ; El nuevo estado inicial, se obtiene en forma directa de T*. F = { c / c Q Si existe q c y q F } Un estado perteneciente al nuevo conjunto de estados ser de finalizacin o aceptacin, solo si esta constituido por estados que eran de aceptacin en el autmata en el AFND de origen. f(c,a) = { c / c Q =
q c

f (q,a)

Lo que se har primero es calcular q0 y luego se irn calculando los dems estados Qobtenidos a partir de P(Q) a medida que van presentando en el proceso de conversin. Ejemplo:

Dado: AFND1 = ( { 0 , 1 }, { p, q , r, s , t }, p, { r }, f ) , donde:

Obtendremos ahora el AFD equivalente.

T = {(p,t) , (t,s) , (p,p) , (q,q) , (r,r) , (s,s) , (t,t) } T* = {(p,t) , (p,s) , (p,p) , (q,q) , (r,r) , (s,s) , (t,t), (t,s) } Nuevo estado inicial c0 = f ( p, c0 = { t , s , p} Para el estado t c0 : ) ; lo obtendremos de T*

Para el estado s c0 :

Para el estado t c0 :

De esta manera : f( c0 , 0 ) = { (, , ) }

Por lo tanto:

f (c0 , 0 ) = { t, s, p, r } = c1

De igual manera calcularemos a c0 pero ahora con entrada 1, pero simplificando la representacin de los pasos y nos queda:

Ahora debemos para cada uno de los estados que vaya apareciendo, como se va comportando ante ambas entradas. Tomamos ahora el estado c1 = { t,s,p,r }

Ahora tomamos c2 = { t, s}, y vemos como se comportar la funcin de transicin f ante nuevas entradas 0 y 1, respectivamente.

Vemos ahora que no se ha creado ningn nuevo estado, por lo tanto hemos terminado el proceso de construccin de la funcin f y de el conjunto Q .

Nuevo estado c0 c1 c2

P(Q) Q { t,s,p } { t, s, p, r} {s,t}

Ahora estamos en condicin de formalizar el AFD equivalente al AFND1 AFD = ( { 0 , 1 }, { c0 , c1, c2 }, c0 , { c1 }, f ) , donde: Los estados finales de aceptacin en el ADND, es el conjunto F = { r }, por lo tanto F estar conformada por todos los nuevos estados que incluyan a dicho estado. Entonces el estado c1 ser estado de aceptacin del nuevo autmata.

Donde la funcin de transicin ser:

Y el grafo del AFD quedar :

S-ar putea să vă placă și