You are on page 1of 5

Conversión NFA – DFA

Cálculo de la Cerradura

 Parte de la unión de conjunto de estados pertenecientes al NFA, que se representara


por un único estado en el DFA.

 Donde existe un camino etiquetado que conduce del estado de inicio al de aceptación.

Operaciones de Cerradura

 Clausura (Sn): conjunto de estados del NFA alcanzables desde el estado Sn, con
transiciones ε (épsilon)

 Por ejemplo desde q0 se puede alcanzar


q1, q2, q4.

 Mov(T,a): representa el movimiento desde el estado T, con una transición a, que es


parte del alfabeto.

 La transición Mov(q2,a) logra llegar al estado q3

 Es importante llevar el control de las cerraduras que se crean, llevar el control de su


uso e identificarlas cuando se haya finalizado el análisis.

 Además de indicar claramente los estados de inicio y el final del autómata.

Construcción de Tabla de Transiciones

 Cada estado se obtiene de la cerradura, y representa una fila.


 Cada símbolo de entrada o carácter representa una columna.
 La unión del estado y el símbolo representa el conjunto resultante al operar la
cerradura.
 El estado de aceptación es el conjunto de estados en el que se incluye el estado de
aceptación

Transformación NFA – DFA

 La transformación se hace a través de la utilización de la cerradura de épsilon.

 La función cerradura es concentrar en un sólo estado situaciones similares dentro del


NFA original para la construcción de un DFA equivalente.

 Se calcula al estar en un estado si existe una trayectoria con épsilon: es decir, no se


requiere de un símbolo determinado para llegar a otro estado. Y a este se le asigna un
nombre. Por lo general una letra.

 Luego se calcula los movimientos de este a través de los símbolos del NFA.

 Y se continua con el siguiente estado.

Ejemplo NFA – DFA

Como ejemplo utilizaremos la expresión regular x ( x | y ) * x que se representa a través del


siguiente NFA.

C(0) = {0} → lo definimos como A


Mov(A,x) = {1} * calculamos el siguiente estado
Mov(A,y) = {}
C(1) = {1,2,3,5,8} → lo definimos como B
Mov(B,x) = {4, 9} * calculamos el siguiente estado

C(1) = {1,2,3,5,8} → lo definimos como B


Mov(B,x) = {4, 9}
Mov(B,y) = {6} * calculamos el siguiente estado

C(4,9) = {4,9,7,8,2,3,5} → C
Mov(C,x) = {4, 9}  C

C(6) = {6, 7, 8, 2, 3, 5} → D
Mov(C,x) = {4, 9} à C
Mov(C,y) = {6} à D
C(4,9) = {4,9,7,8,2,3,5} → C
Mov(C,x) = {4, 9} à C
Mov(C,y) = {6} à D

Luego terminado el proceso, se procede a crear una tabla de resumen de las transiciones
generadas.

x y

A B
B C D
C C D
D C D

DFA Resultado

A B D
Tomando en cuenta que no existe ningún estado que haga su movimiento con la misma letra a
varios estados.

RESUMEN

 Los NFA difieren de DFA que el movimiento de estados puede ser a varios estados con
el mismo símbolo.

 Se pueden construir diagramas de DFA por medio de la utilización del Algoritmo de


Thompson para un NFA.

 DFA son un conjunto finito de estados y un conjunto de transiciones de estado a


estado, que se dan sobre símbolos de entrada tomados de un alfabeto S .
 Para cada símbolo de entrada existe exactamente una transición a partir de cada
estado.

You might also like