Contactese con nosotros Herramientas didacticas Conozca mas acerca de nuestro proyecto Pagina Principal del Sitio
     
     

 Máquinas de Estados: Autómatas Finitos NO DEterministas (AFND) 

 

Autómatas Finitos No Deterministas (AFND)

 Definición:

            Un Autómata finito determinista queda definido por un quíntupla, al igual que en los AFD, y que su diferencia fundamental se encuentra, en como se definirá a la función de transición:

  

AFND = ( ∑ , Q, q0, F, f )

 donde:

Alfabeto de símbolos de entrada.

Q

Conjunto finito de estados

q0

qo  Q – estado inicial previsto

F

F   Q - es el conjunto de estado finales de aceptación.

f

Función de transición 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 autómatas se diferencia de los AFD, básicamente en como puede constituirse la función de transición:. Esta diferencias son las siguientes:

 

1)

Para cada par estado entrada, el autómata puede tener la posibilidad de transitar a mas de un estado posible.

2)

Para algún par de estado entrada, el autómata puede no tener definido ninguna transición. Lo que significa que podrá realizar transición alguna.

3)

Puede realizar transiciones de un estado a otro sin leer símbolo alguno de la entrada. A este tipo particular de transiciones se las denomina transiciones-.

 

Ejemplo:

 Una AFND puede definirse como sigue:

 

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

la función f puede definirse:

En forma explicita:

 

f (p,0)  =  r

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

f (s,1)  = t

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

f (r,0) = p

 f (t, ) = s

f (p,) = t

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

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 pondrán los símbolos del alfabeto de entrada y se añadirá una columna adicional para 

·  En la intersección (celdas de la matriz) se indicarán las transiciones

 

 

 

f

0

1

 

p

r

{t,s}

t

 

q

 

{s,r}

 

 

r

p

 

 

 

s

{p,r}

t

 

 

t

 

s

s

 

En la tabla f de la función de transición, se encuentran presentes las tres situaciones que se admiten en los AFND a diferencia de los AFD.

La situación identificada como de no determinismo propiamente dicho, en donde para un estado determinado y ante una misma entrada, el autómata tiene la posibilidad de transitar a uno o mas estado. Esta situación se presenta en tres oportunidades:

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

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

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

 

y en representación gráfica de f (p,1) = {t,s} sería:

  

 

 

 

La segunda situación cuando que es no tiene definida transición a estado alguno se presenta en las siguientes situaciones:

 

f (q,0) =

f ( r,1) =

f ( t,0) =

 

Y la tercer situación es cuando tiene la posibilidad de transitar de estado, aún sin leer ningún símbolo de la entrada, esta situación se evidencia en las siguientes situaciones:

 

f (p,) = t

f (t,) = s

 

Gráficamente 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 tendrán doble círculo.

·        Existirá un arco con sentido, etiquetado con un símbolo a entre dos nodos p y q   si existe una transición F(p,a) = q.

 

 Conceptos asociados a los AFND 

A continuación presentaremos un conjunto de definiciones, que resultan necesarias, para el tratamiento de este tipo de Autómatas:

 

·        Relaciones de Transiciones-   (Conjunto T).

·        Cierre transitivo de la relación T ; (Conjunto T*).

·        Extensión a palabras.

·        Lenguaje Aceptado por un AFND

·        Equivalencias entre AFD y  AFND

  

 Relaciones de Transiciones-λ   (Conjunto T).

            Es la relación que se establece entre los pares de estados en que existe una transición-λ.

Esta relación también es reflexiva, lo que significa también existirá una transición λ 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 construcción 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 relación T  (Conjunto T*)

 Este nuevo conjunto será calculado aplicando la propiedad transitiva de las relación 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 relación 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) }

  

 Extensión a palabras

 Ahora veremos como será el comportamiento del AFND cuando la entrada deja de ser un símbolo individual y pasa a ser una cadena de caracteres, formados con símbolos del alfabeto.

 Definiremos entonces una función f ” :

           f ¨  : Q x ∑*  → P (Q)

  en la que su comportamiento es el siguiente:

  

  Como los AFND pueden producir transiciones entre  estados sin leer ningún símbolo desde el exterior, para cada uno de los estados en donde se encuentra el autómata hay que considerar estas transiciones-λ.

Por lo tanto estas transiciones se pueden presentar antes de leer el primer símbolo, entre cada uno de los símbolos procesador en la entrada y también 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 producirán, tras recibir en la cinta de entrada la cadena 101, entonces:

 

Lo primero que debemos realizar previo a la entrada del primer símbolo, 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 relación 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 autómata podrá estar en cualquiera de los estados t , s , p antes de recibir la primer entrada, por lo tanto se deberá ver cual serán las transiciones (aplicación de la función de transición f) con la entrada para cada uno de los estados respectivos.   

           Ahora entonces aplicamos la función f , para el primer símbolo 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 autómata 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 próxima 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 próximo símbolo de entrada “1” que será el último que tenemos que procesar, y por lo tanto aplicamos la función f.

 


 

Vemos que f  ( r , 1 ) =   Ф,  no tiene definida transición 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 transición λ 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 autómata 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 aceptación, 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 algún estado de finalización utilizando la función 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 símbolos del alfabeto de entrada, que partiendo desde el estado inicial, el autómata quedará posicionado en un estados que pertenezca al conjunto de estados finales de aceptación.

 Equivalencias entre AF  Determinista y No determinista

           La equivalencia entre autómatas 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 reconocerán el mismo lenguaje.

Conversión de AFD a AFND :

 Es fácil ver que los AFD son una particularización de los AFND, ya que: por un lado no existirán transiciones-λ y por otro lado, las transiciones siempre producirán un estado determinado. Así tendremos que:

  • No existirán transiciones-λ por lo tanto:   f” (q, λ) = ф.

  • | f (p,a)| = 1  ;   Siempre se transita a un solo estado

  

  Conversión de AFND a AFD:

 Vamos a construir un AFD partiendo de un AFND, donde:

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

AFD  = ( , , q0´, F ´, f ´ )

 donde para la conversión se tendrá en cuenta:

 

·        = P(Q)

·        q0´ = f” (q0, λ)  ; El nuevo estado inicial, se obtiene en forma directa de T*.

·        = { c / c  ε    Si existe q ε c y  q  ε F } Un estado perteneciente al nuevo conjunto de estados será de finalización o aceptación, solo si esta constituido por estados que eran de aceptación en el autómata en el AFND de origen.

·        (c,a) = { c / c  ε  = c f ” (q,a)  

 

Lo que se hará primero es calcular q0´  y luego se irán calculando los demás estados obtenidos a partir de P(Q) a medida que van presentando en el proceso de conversión.

 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,  )  ; lo obtendremos de T*

c0 =  { t , s , p}

Para el estado t  c0 : 

 


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 representación 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 función de transición f ´ ante nuevas entradas 0 y 1, respectivamente.



Vemos ahora que no se ha creado ningún nuevo estado, por lo tanto hemos terminado el proceso de construcción de la función f ´ y de el conjunto Q ´.

Nuevo estado   Q ´

P(Q)

c0

{ t,s,p }

c1

{ t, s, p, r}

c2

{ s , t }

 

Ahora estamos en condición de formalizar el AFD equivalente al  AFND1

AFD  = ( { 0 , 1 }, { c0 , c1,  c2 }, c0 , { c1 }, f ´) , donde:

Los estados finales de aceptación 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 aceptación del nuevo autómata.

 
Donde la función de transición será:

 

Y el grafo del AFD quedará :

 

 


 

 
 
GHD © Copyright 2006-2007. Todos los derechos reservados.