Anda di halaman 1dari 2

* Algoritmo: 

Entrada: AFND(E,Q,d,q0,F) 
Salida: AFD(E,Q',d',C0,F') 

1) El estado inicial del AFD C0 se etiqueta con los estados en los que se encuentra el AFND al
iniciar su ejecución, es decir, d(q0, Lambda), o lo que es lo mismo {q0}. 

2) El resto de estados del AFD se obtienen a partir del estado inicial aplicando la función de
transición d'. d' se define de la siguiente forma: d'(Ci,a) = Cj . De manera que si el Ci viene
etiquetado con el conjunto de estados {qi, qi+1, .... ,qi+n} Cj vendrá etiquetado con los estados
d(qi,a) U d(qi+1,a) U ... U d(qi+n,a) 

3) Los estados finales del AFD serán aquellos que estén etiquetados con al menos un estado
final del AFND 

Ejemplo: 

Partiremos del siguiente AFND: ({0,1},{q0,q1},d,q0,{q0,q1}) donde d viene definida como: 


d(q0,0) = {q0, q1} 
d(q0,1) = {} 
d(q1,0) = {} 
d(q1,1) = {q1} 

El estado inicial del AFD C0 vendrá etiquetado con el valor de d(q0, Lambda), es decir {q0}. A
continuación estudiaremos C0 para todos los símbolos del alfabeto de entrada. 

* Estudio de C0 -> {q0}: 

Si el AFND se encuentra en {q0} y lee a la entrada 0, el autómata pasaría a d(q0,0) = {q0, q1}.
Esto significa que el AFD tendrá un estado etiquetado con {q0,q1} al que llamaremos C1. Por lo
tanto, d'(C0,0) = C1. 

Si el AFND se encuentra en {q0} y lee a la entrada 1, el autómata pasaría a los estados d(q0,1) =
{}. El AFD tendrá un estado etiquetado con {} al que llamaremos C2 (Fijaros que se corresponde
con el estado muerto). Por lo tanto, d'(C0,1) = C2. 

* Estudio de C1 -> {q0,q1}: 

Si el AFND se encuentra en {q0, q1} y lee a la entrada 0, pasaría a los estados d(q0,0) U d(q1,0) =
{q0, q1}. Por tanto: d'(C1,0) = C1. 

Si el AFND se encuentra en {q0, q1} y lee a la entrada 1, pasaría a los estados d(q0,1) U d(q1,1) =
{q1}. Como todavía no se ha contemplado la posibilidad de que el AFND se encuentre en el
conjunto de estados {q1}, creamos un nuevo estado C3 en el AFD. d'(C1,1) = C3. 

* Estudio de C2 -> {}: 

Evidentemente al corresponderse con el estado muerto (conjunto vacio de estados) tenemos


que: d'(C2,0) = C2 y d'(C2,1) = C2. 

* Estudio de C3 -> {q1}: 

Si el AFND se encuentra en {q1} y lee a la entrada 0, pasaría a los estados d(q1,0) = {}. Por tanto:
d'(C3,0) = C2. 

Si el AFND se encuentra en {q1} y lee a la entrada 1, pasaría a los estados d(q1,1) = {q1}. Por
tanto: d'(C3,0) = C3. 

* Estados Finales 

Ya hemos estudiado todos los estados del AFD que nos han ido apareciendo, quedaría por
definir el conjunto de estados finales. Serán estados finales todos aquellos estados etiquetados
con al menos un estado final del AFND. Es decir: F'={C0,C1,C3} 

* Resultado: 
El AFD obtenido es el siguiente: 
AFD(E,Q',d',C0,F') 
Donde E = {0,1}, Q'={C0,C1,C2,C3} 
d'(C0,0)=C1 d'(C0,1)=C2 
d'(C1,0)=C1 d'(C1,1)=C3 
d'(C2,0)=C2 d'(C2,1)=C2 
d'(C3,0)=C2 d'(C3,1)=C3 
F'={C0,C1,C3} 

Ejercicio: 
----------------------------------- 
AFND: ({0,1},{q0,q1,q2},d,q0,{q2}) donde d viene definida: 
d(q0,0) = {q0, q1} 
d(q0,1) = {} 
d(q1,0) = {} 
d(q1,1) = {q1,q2} 
d(q2,0) = {q2} 
d(q2,1) = {} 

Anda mungkin juga menyukai