INTRODUCCIÓN

         Los diagramas de transición son una instrumentación de un modelo formal denominado autómatas finitos, conocidos también como máquinas de estado finito o máquinas secuénciales.

Los autómatas finitos vienen en diferentes tipos:

·        No determinísticos (AFN) el autómata puede estar en varios estados simultáneamente.

Los autómatas finitos no determinísticos pueden ser “compilados” a autómatas finitos determinísticos por medio de un algoritmo.

·        Deterministicos (AFD) el autómata únicamente puede estar en un estado en un momento determinado.

Un autómata finito es un conjunto de estados y un control que se mueve de un estado a otro en respuesta a entradas externas.

Existe otro tipo de autómata finito que amplia los no determinísticos permitiendo el paso de un estado a otro espontáneamente por medio de transiciones con la cadena vacía.

Estos últimos aceptan el mismo tipo de lenguajes (regulares).

 

CONVERTIR UN DIAGRAMA NO DETERMINISTA EN UNO DETERMINISTA

TEOREMA. Dado un AFND  M = ( ∑,Q,  I, F,  δ ), se puede construir un AFN M‘ equivalente a M, es  decir, tal             que  L(M) = L(M‘)

     Cojamos  el  diagrama  del  siguiente  autómata  para  el  alfabeto ∑ = {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:

PROPIEDADES DE LOS LENGUAJES ACEPTADOS POR UN AUTÓMATA FINITO

Sea å un alfabeto. El conjunto de los lenguajes regulares sobre å se define recursivamente como sigue:

 

1.  Æ es un lenguaje regular

2.  }Æ{ es un lenguaje regular

3.  Para todo a Î å, {a} es un lenguaje regular

4.  Si A y B son lenguajes regulares, entonces AÈB, A · B y A* son lenguajes regulares

5.  Ningún otro lenguaje sobre å es regular

EQUIVALENCIAS DE AFND Y AFD

        Si tratamos de definir un Autómata Finito no Deterministico, tenemos que gran parte de la definición se puede obtener a partir  de la de AFD. La única diferencia  que existe se encuentra en las reglas de transición.

 

        Existe una equivalencia en entre los AFD y  AFND, de forma que un autómata M es equivalente a un autómata M’ si L(M) = L (M’).

 

·        Ya que una función es un caso especial de relación (es decir, las funciones son relaciones que poseen requerimientos adicionales), las funciones de los AFD se consideran como relaciones en los AFND

·        En consecuencia, todo AFD es un AFND

·        La colección de lenguajes aceptados por los AFND incluye a todos los lenguajes aceptados por los AFD

·        Por lo tanto, los AFND no son más potentes que los AFD con respecto a los lenguajes que aceptan.

 

·        Debe ser cerrado con respecto a las operaciones de unión concatenación, cerradura de estrella y complemento.“Un conjunto C es cerrado con respecto a la operación Å si

                        x, y є C   ®  (x Å y) є C

                        x  є  C  ®  Å x є C”

·        Son generados por expresiones regulares

·        Son formas de trabajo para análisis léxico

 

Para cada AFND, existe un AFD que acepta el mismo lenguaje.

Dado el autómata finito no determinístico MND = <END, A, dND, e0ND, FND>, se define el autómata finito determinístico correspondiente MD= <ED, A, dD, e0D, FD> como sigue:

- ED =  P(END)  (conjunto  potencia de END).  Cada  elemento de  ED  se  representa   como  [e1, e2, ..., ei] donde e1, e2, ..., ei están en END. Se debe notar que [e1, e2, ..., ei] es un único estado de MD que corresponde a un conjunto de estados de MND.

- A: alfabeto

- dD: ED x A ® ED, se define como

      dD([e1, e2, ..., ei], a) = [el, em, ..., ek]   sii  

      dND({e1, e2, ..., ei}, a) = dG ({e1, e2, ..., ei}, a) = {el, em, ..., ek},

donde dG se define como dG (C, a) = È d (p, a)   y   dG (Æ, a) = Æ  (C: conj. de estados)

                                                        p Î C

Es decir que dD aplicada a un elemento [e1, e2, ..., ei] de ED se calcula aplicando dND a cada estado de END representado por [e1, e2, ..., ei].

 

- e0D = [e0ND]

- FD: conjunto de todos los estados de ED que contienen al menos un estado final de MND.

 

Ejemplo 5: Construcción del autómata finito determinístico correspondiente al autómata finito no determinístico del ejemplo 4.

El AFD M4D correspondiente al AFND M4ND se define como

M4D = < E4D, {0, 1}, d4D, [e0], F4D>

La función de transición d4D  se calcula como:

 

d4D

0

1

 

[e0]

[e0, e3]

[e0, e1]

 

[e0, e3]

[e0, e3, e4]

[e0, e1]

 

[e0, e1]

[e0, e3]

[e0, e1, e2]

 

[e0, e3, e4]

[e0, e3, e4]

[e0, e1, e4]

 

[e0, e1, e2]

[e0, e2, e3]

[e0, e1, e2]

 

[e0, e1, e4]

[e0, e3, e4]

[e0, e1, e2, e4]

 

[e0, e2, e3]

[e0, e2, e3, e4]

[e0, e1, e2]

 

[e0, e1, e2, e4]

[e0, e2, e3, e4]

[e0, e1, e2, e4]

 

[e0, e2, e3, e4]

[e0, e2, e3, e4]

[e0, e1, e2, e4]

 

Como d4ND(e0, 0) = {e0, e3}, entonces  d4D([e0], 0) = [e0, e3].

Como d4ND({e0, e3}, 0)= dG({e0, e3}, 0)=d4ND(e0, 0) È d4ND(e3, 0)={e0, e3} È {e4} = {e0, e3, e4}

entonces d4D([e0, e3], 0) = [e0, e3, e4].

De la misma forma se calcula d4D  para el resto de los estados.

Se debe notar que se ha calculado d4D para únicamente aquellos estados alcanzables desde el estado inicial y a partir de los cuales se puede alcanzar un estado final. Por lo tanto, el conjunto de estados E4D es

E4D = {[e0], [e0, e3], [e0, e1], [e0, e3, e4], [e0, e1, e2], [e0, e1, e4], [e0, e2, e3], [e0, e1, e2, e4], [e0, e2, e3, e4].}

El conjunto de estados finales F4D está formado por aquellos estados de E4D que contienen al menos un estado final de M4ND. Entonces

F4D = {[e0, e3, e4], [e0, e1, e2], [e0, e1, e4], [e0, e2, e3], [e0, e1, e2, e4], [e0, e2, e3, e4]}

 

Renombrando los estados correspondientes al AFD:

[e0] ® q0

[e0, e3] ® q1

[e0, e1] ® q2

[e0, e3, e4] ® q3

[e0, e1, e2] ® q4

[e0, e1, e4] ® q5

[e0, e2, e3] ® q6

[e0, e1, e2, e4] ® q7

[e0, e2, e3, e4] ® q8

 

la función de transición d4D se puede rescribir como:

 

 

d4D

0

1

 

q0

q1

q2

 

q1

q3

q2

 

q2

q1

q4

 

q3

q3

q5

 

q4

q6

q4

 

q5

q3

q7

 

q6

q8

q4

 

q7

q8

q7

 

q8

q8

q7

 

Entonces M4D = <{q0, q1, q2, q3, q4, q5, q6, q7, q8}, {0, 1}, d4D, q0, {q3, q4, q5, q6, q7, q8}>

 

El diagrama de transición de estados correspondiente a este autómata es:

 

 

 

 

 

 

 

 


+ Estado 1.- Con la etiqueta a no hay transición en el original, por lo tanto el arco se dibuja hacia el estado vacío 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 transición en el original, por lo tanto el arco se dibuja hacia el estado vacío; 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 1-3.
+ Estado 3.- Con ninguna de las dos etiquetas hay transición en el original, por lo tanto se dibujan sendos arcos hacia el estado vacío.

+ Estado 1-2.- Con la etiqueta a hay transición 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 transición desde ninguno de los dos estados originales, por lo tanto el arco se dibuja hacia el estado vacío; 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 transición 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 ningún arco en ninguno de los dos estados originales, por lo tanto el arco se dibuja al estado vacío.
+ Estado 1-2-3.- Con la etiqueta a hay transición 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.