Revista

Page 1

1

Publicaci贸n Semanal Abril 30, 2015, Numero 3


Editorial ........................................................................................................... 3 Minimización de un Autómata Finito Determinístico¡Error!

Marcador

no

definido. Función Autómata-Mínimo (A): AFDm ............................................................... 5 Algoritmo de Minimización .............................................................................. 5 Pasos para minimizar un AFD ........................................................................ 6 ¿Por qué el AFD minimizado no se puede reducir aún más ......................... 8 TEOREMA .............................................................................................. 9 Ejemplo: ................................................................................................. 10 Ejemplo 2: ............................................................................................... 11 Referencias Bibliográficas .............................................................................. 19

2


Editorial

Revista Singularidad

Director Luis Enrique Rangel. Redacción Manuel Martino Del Molino Consejo Académico Asesor Yamila Gascón Nelsy Vivenes Jonathan Vásquez Editor Responsable: Luis E. Rangel y Manuel Martino Del Molino. Las ideas y opiniones expresadas en esta revista son responsabilidad única y exclusiva de los autores, la revista no se responsabilizara por dichas opiniones. Avenida Universidad Los Guaritos. Maturín, Monagas, Venezuela Teléfono: +58 (0291) 6417755 Correo electrónico: m1bff7e2@alum.udo.edu. ve

3 RIF: G-20000052-0

En un diseño lógico de autómatas es imprescindible, conocer a detalle todos los posibles campos de acción que poseen estos, al momento de diseñar los autómatas, es fundamental conocer todas sus propiedades y características, desde su forma de ser planteados hasta la forma en como concluyen sus expresiones, pasando por los métodos de reducción o minimización.

Se hace un especial énfasis en la minimización, en vista que se puede tener un autómata, que sea eficiente, sin embargo este puede que no sea eficaz, como se puede observar esta idea, pues observando la cantidad de estados que posee un autómata por ejemplo. Un autómata puede poseer una enorme cantidad de estados, sin embargo esto traduce en una mayor cantidad de procesamiento o computo por parte del equipo, y a nivel de ingeniería un factor imprescindible es la evaluación de un costo que implica realizar una acción, si posee muchos estados este autómata incurre en que requiere de un tiempo mayor para leer una cadena de caracteres por ejemplo, y también dependiendo de la situación, incurrirá en un gasto en hardware.

Con la minimización se busca el tan anhelado deseo de todo proceso de ingeniería de reducir costos, tiempos y sobre todo complejidad, reduciendo estos tres factores, los autómatas serán los más eficaz posibles, por supuesto, todo esto está sujeto a este paradigma de computación, si en un futuro surgen nuevos paradigmas que dejen obsoletos estos modelos


Una práctica muy común dentro de los campos de la matemática y las ciencias que requieren de una demostración, es que sus postulados pueden ser re-escritos y llevados a una expresión en la cual su complejidad se ve enormemente reducida, y es llevada a una expresión más simple y comprensible para todo aquel menos hábil en la comprensión de estos temas.

En la teoría de los autómatas no está alejada de esta realidad, en este caso, podemos partir de un autómata finito determinístico, con ciertas cualidades y lo podemos llevar a una expresión que unifique ciertos estados a fin de disminuir su complejidad, y lograr su eficiencia. Esto contribuye a una implementación correcta de un autómata.

El estudio de la minimización requiere de ciertas cualidades de observación y lograr detallar que patrones pueden ser minimizados por el usuario.

Minimización de un Autómata Finito Determinístico Como resultado de las anteriores definiciones de equivalencia de autómatas, una de las aplicaciones más interesantes consiste en diseñar el autómata equivalente a uno dado que contenga el mínimo número de estados. Se puede demostrar que, para cada AFD, existe un AFDm mínimo equivalente.

La construcción del AFD mínimo se realiza en los pasos especificados a continuación. El algoritmo primero calcula el autómata conexo, eliminando todos aquellos estados no accesibles desde el inicial. Después, calcula el conjunto cociente, que determina el mínimo número de estados con significado diferente. Estos estados serán las clases de equivalencia del conjunto cociente y formarán el conjunto de estados, Q', del autómata mínimo.

4


Función Autómata-Mínimo (A): AFDm A: Entrada a la función, AF definido por (Σ, Q, f, q0, F) AFDm: salida de la función, autómata mínimo equivalente a A.

Eliminar de A todos los estados inaccesibles desde q0; Construir el AFDm = (Σ, Q’, f’, q’0, F’) donde: Q’ = Conjunto-Cociente(A); q’0 = c0 si q0 ϵ c0, c0 ϵ Q’; F’ = {c|

}; (

Y

)

(

)

El resto de los elementos del autómata se calculan en función de esos estados. Así, el estado inicial del autómata mínimo será la clase de equivalencia donde esté el estado inicial del autómata de partida. Las transiciones de los nuevos estados (clases de equivalencia) se realizarán en función de las transiciones de los estados que los forman. Como los estados del autómata de partida que pertenezcan a la misma clase de equivalencia son equivalentes (generan la misma aceptación o no dada la misma palabra de entrada), da igual cuál se considere a la hora de fijar las transiciones desde el nuevo estado que los representa en el autómata mínimo. El conjunto de los nuevos estados finales serán las clases de equivalencia donde aparezcan estados finales del autómata de partida.

Algoritmo de Minimización 1. Eliminar todos los estados no alcanzables. 2. Las clases de equivalencias ≡0 son F (el conjunto de estados finales) y QF (los estados no finales). 3. Calcular las clases de equivalencia ≡n a partir de las de ≡n-1 4. Repetir 3 hasta que ≡n sea idéntico a ≡n-1. 5. Cada clase de equivalencia resultante corresponde un estado del Autómata Finito Determinístico mínimo.

5


6. Los estados finales en el Autómata Finito Determinístico mínimo son las clases que contengan estados finales del Autómata Finito Determinístico original. 7. El estado inicial el Autómata Finito Determinístico mínimo es la clase de equivalencia que contenga al estado inicial del Autómata Finito Determinístico original. 8. La tabla de transiciones del Autómata Finito Determinístico mínimo se calcula a partir de la tabla original. 1. Para cada entrada δ(qi,a) = qj en la tabla original, se coloca una entrada δ'(C(qi),a) = C(qj) en la tabla del Autómata Finito Determinístico mínimo, donde C(q) es la clase de equivalencia del estado q.

Pasos para minimizar un AFD El algoritmo de minimización consiste en cinco pasos, aunque éstos a veces deben ser repetidos:     

Partición inicial Partición de nuevos conjuntos Verificar la nueva partición Eliminar los estados que se encuentren en el mismo grupo Remover estados sumidero y no alcanzables desde símbolo inicial

De los pasos anteriores, el segundo y el tercero forman un bucle, mientras que los demás son procesos mecánicos que sólo se deben aplicar una vez. A continuación, detallaremos cada uno de estos pasos. A partir de un autómata finito determinista, ya sea una tabla con los valores o su dibujo, se determinan dos conjuntos: uno que contiene a todos los estados finales y otro que contiene a los demás estados. Por ejemplo, en la tabla de abajo, los estados finales son aquellos que tienen “(f)” después del número (3 y 4) y los estados no finales son los demás (1 y 2). Para el dibujo, los estados finales son los que tienen doble círculo (3 y 4), mientras que los no finales son los que tienen círculo sencillo (1 y 2). A este proceso se le conoce como partición inicial.

6

Estados / Transiciones

a

b

1(i)

2

-


1 a

4

3(f)

4

3

4(f)

-

3

1

b

2

1

3

b

a

2

= ESTADOS

a a

b 4

= TRANSICIONES

A partir de cada estado en cada uno de los conjuntos que se tiene, se estudia cuáles transiciones tienen, a cuáles estados se dirigen y a cuáles conjuntos pertenecen estos estados de llegada. Si dos estados del mismo conjunto se dirigen a estados de conjuntos distintos por medio de una de las transiciones, entonces estos estados deben separarse, formando así una nueva partición. A esto se le llama partición de nuevos conjuntos. Asimismo, si uno de los estados del conjunto tiene una transición hacia otro estado y los demás estados del conjunto no van a ninguna parte con el terminal de la transición, entonces el que sí la tiene debe separarse.

En estrecha relación con el paso anterior se encuentra el paso de verificación de la nueva partición. Este indica que se debe repetir la fase de partición hasta que los conjuntos ya no se puedan separar más. Los conjuntos no se pueden separar cuando quedan con únicamente un estado o cuando todos los estados del conjunto tienen transiciones hacia estados de los mismos conjuntos. Cuando ya no se puede realizar más particiones a los conjuntos, se sigue con el cuarto paso. Resulta de suma importancia considerar que cuando se separan dos estados de un conjunto, esto puede afectar las futuras particiones.

Se dispone ahora de una partición final. Si todos los estados están en conjuntos distintos, no hay que hacer nada. Si, por el contrario, hay varios estados en uno o varios de los conjuntos, estos estados deben fusionarse. La justificación es sencillamente que todos los estados de un conjunto cumplen una misma función y el autómata no se ve afectado si se unen. Para realizar esta fusión, se

7


determina arbitrariamente un estado representante por cada conjunto. En la tabla del autómata, se reemplazan los demás estados del conjunto por el representante. Luego, se eliminan las filas repetidas.

Finalmente, se debe remover aquellos estados no finales que sólo tienen transiciones hacia ellos mismos o, en otras palabras, aquellos a partir de los cuales no se puede llegar a ningún estado final. A estos se les denomina estados sumideros. Asimismo, se debe eliminar los estados a los que no se puede llegar desde el estado inicial.

¿Por qué el AFD minimizado no se puede reducir aún más

Supongamos que tenemos un Autómata Finito Determinístico A y deseamos minimizarlo para construir un Autómata Finito Determinístico M, utilizando el método de partición del Teorema 4.24. Dicho teorema demuestra que no podemos agrupar los estados de A en grupos más pequeños y construir con ellos un Autómata Finito Determinístico equivalente. Sin embargo, ¿podría existir otro Autómata Finito Determinístico N, no relacionado con A, que acepte el mismo lenguaje que A y M y que tenga menos estados que M? Podemos demostrar por reducción al absurdo que N no existe. En primer lugar, llevamos a cabo el proceso que nos permite determinar los estados distinguibles, visto en la equivalencia de autómatas, de M y N, como si fueran un solo Autómata Finito Determinístico. Podemos suponer que los estados de M y N no tienen nombres en común, por lo que la función de transición del autómata combinado es la unión de las reglas de transiciones de M y N, sin interaccionar entre sí. Los estados serán estados de aceptación del Autómata Finito Determinístico combinado si y sólo si son estados de aceptación del Autómata Finito Determinístico del que proceden.

Los estados iniciales de M y N son indistinguibles porque L(M) = L(N). Además, si {p,q} son indistinguibles, entonces sus sucesores para cualquier símbolo de entrada también serán indistinguibles. La razón de ello es que si los sucesores pudieran distinguirse, entonces podríamos distinguir p de q.

8


Ni M ni N pueden tener un estado inaccesible, pues de lo contrario podríamos eliminar dicho estado y obtener un Autómata Finito Determinístico más pequeño para el mismo lenguaje. Por tanto, cada estado de M es indistinguible de al menos un estado de N. Para ver por qué, supongamos que p es un estado de M. Entonces existirá una cadena a1a2 · · ·ak que pasa del estado inicial de M al estado p. Esta cadena también parte del estado inicial de N y llega a un cierto estado q. Puesto que sabemos que los estados iniciales son indistinguibles, también sabemos que sus sucesores para un símbolo de entrada a1 serán también indistinguibles. Entonces, los sucesores de dichos estados para la entrada a2 son indistinguibles, y así se puede continuar hasta concluir que p y q son indistinguibles.

Puesto que N tiene menos estados que M, existen dos estados de M que son indistinguibles de los mismos estados de N y, por tanto, entre sí. Pero M se había diseñado de modo que todos sus estados fueran distinguibles entre sí. Luego hemos llegado a una contradicción, por lo que la suposición de que existe N es errónea, y M tiene el número mínimo de estados de entre todos los Autómatas Finitos Determinísticos equivalentes a A. Formalmente, hemos demostrado que:

TEOREMA Si A es un Autómata Finito Determinístico y M es un Autómata Finito Determinístico construido a partir de A utilizando el algoritmo de minimización, entonces el número de estados de M es menor que el de cualquier Autómata Finito Determinístico equivalente a A.

En realidad, podemos hacer una afirmación algo más restrictiva que la del Teorema anterior. Debe existir una correspondencia uno-a-uno entre los estados de cualquier otro autómata N con un número mínimo de estados y el Autómata Finito Determinístico M. La razón es la que hemos argumentado anteriormente, cada estado de M debe ser equivalente a un estado de N, y ningún estado de M puede ser equivalente a dos estados de N. Podemos argumentar de forma similar que ningún estado de N puede ser equivalente a dos estados de M, aunque cada estado de N tiene que ser equivalente a uno de los estados de M. Por tanto, el Autómata Finito Determinístico equivalente con un número mínimo de estados a A es único excepto por un posible cambio de nombre de los estados.

9


Ejemplo:

Sea el siguiente autómata:

(*

+*

+

*

+)

Donde f se define como: f(q0, O) = q3 f(q0, 1) = q2 f(q1, O) = q4

f

0

1

f(q1, 1) = q1

→q0

q3

q2

f(q2, O) = q0

*q1

q4

q1

f(q2, 1) = q3

*q2

q0

q3

f((q3 , O) = q0

q3

q0

q2

f(q3, 1) = q2

q4

q4

q1

f(q4, O) = q4 f(q4, 1) = q1

Para calcular el autómata mínimo equivalente a A4, se siguen los siguientes pasos 1. Se calcula el autómata conexo. En este caso, se puede comprobar que los estados ql y q4 no son accesibles desde qo, con lo que se pueden eliminar, quedando:

(*

+*

+

* +)

2. Se obtiene el Q / E de A’4.  Q/E0 = [{ q2}, {q0, q3}]  Q/E = Q/E0 = Q/E1 = [c0 = {q2} , c1 = {q0, q3}] 3. El autómata mínimo equivalente a A4 será:

(*

10

+*

+

* +)


Donde f se define como: f(c0, 0) = c0

f

0

1

f(c1, 0) = c0

*c0

c0 c1

f(c1, 1) = c0

→c1 c0 c0

f(c0, 1) = c1

Ejemplo 2:

Minimización de un autómata usando el método de conjunto con un alfabeto ∑ [0,1]

0 0,1 1

0

0,1 1 1

0

0,1

Lo primero que tenemos que hacer es etiquetar los estados del autómata.

E B 0

1 D

11

A

1

0,1

0,1


1

0

C

0,1

Luego generamos dos conjuntos: X= [E, F] aceptadores Y= [A, B, C, D] no aceptadores Ahora evaluamos el conjunto de los estados aceptaos con nuestro alfabeto ∑ [0,1]

0

1

E X

X

F

X

X

Observamos que E y F con 0 y 1 se quedan en E y F, y E y F pertenece al conjunto X Podemos ver en esta primera iteraciĂłn es que tanto el estado E y F por 0 y 1 nos llevan al mismo estado, lo que quiere decir q lo podemos unificar y formar un solo estado. Eso lo comprobaremos iterando nuevamente.

Ahora vemos el conjunto de los otros estados no aceptados, a,b,c,d y lo iteramos con el alfabeto 0,1

0

1

A

Y

Y

B

X

Y

C

X

Y

D

Y

Y

Miramos A con 0 nos lleva a B y B pertenece al conjunto Y, A con 1 nos lleva a C y C pertenece al conjunto Y

12


El estado B con 0 nos lleva a E pero E es un estado aceptador del conjunto X, B con 1 nos conduce a D y D es del conjunto de Y, ahora con C, C con 0 nos lleva a F y, F es un estado aceptador, por lo tanto pertenece a X, C con 1 nos lleva a D y D pertenece a Y. Ahora D con 0 y 1 se queda en D y D pertenece al conjunto Y. Observamos que B y C tienen las mismas características ya que con 0 ambos van a X y con 1 van a Y lo mismo pasa con A y D Esto nos dice que lo podemos unificar en diferentes conjuntos. Tenemos el conjunto X formado por E y F(este conjunto se va a convertir en solo estado a la hora de graficar) El conjunto Y en este caso se segmenta, podemos colocar A y D o B y C dependiendo de cómo lo quereos unir. Como A y D comparten las mismas características los metemos en Y creamos un nuevo estado al q llamaremos Z y metemos los otros dos estado que comparten las mismas características en este caso B y C. X= [E, F] aceptadores Y= [A, D] no aceptadores Z= [B, C] no aceptadores Ahora seguimos iterando para comprobar que de verdad pueden ir al mismo estado.

0

1

E X

X

F

X

X

Observamos que E y F con 0 y 1 se quedan en E y F, y E y F pertenece al conjunto X

13


Ahora probamos con Y (A, D)

0

1

A Z

Z

D Y

Y

A con 0 me lleva a B y B está en el conjunto Z, A con 1 me lleva a C y C está en el conjunto Z

D de con 0 me lleva a D y de pertenecer a Y y D con 1 me lleva a D y de es del conjunto Y podemos notar que la características que vimos anteriormente tanto A como D se podían relacionar en el mismo estado pero al iterar nuevamente nos damos cuenta que no pueden ir juntos estos dos estados.

Probamos con el conjunto Z (B, C)

0

1

B X

Y

C X

Y

Probamos B con 0 me lleva a E y pertenece a X ahora B con 1 me lleva a D y de pertenecer a Y. Ahora C con 0 me lleva F y F pertenece a X y C con 1 me lleva a D y D pertenece a Y. En este paso podemos ver que B y C si pueden estar en el mismo estado ya que poseen las mismas características, (se van a los mismos estados). Entonces el factor problema sería A y D Volvemos a particional nuestros conjuntos para resolver el problema de A y D y nos quedan:

14


X= [E, F] aceptadores Y= [A] no aceptadores Z= [B, C] no aceptadores W= [D] no aceptadores Volvemos a evaluar con las iteraciones Probamos en X

0

1

E X

X

F

X

X

Observamos que E y F con 0 y 1 se quedan en E y F, y E y F pertenece al conjunto X Probamos en Z

0

1

B X

W

C X

W

Probamos B con 0 me lleva a E y pertenece a X ahora B con 1 me lleva a D y D ahora pertenecer a W Ahora C con 0 me lleva F y F pertenece a X y C con 1 me lleva a D y D ahora pertenece a W

Probamos con Y

15

0

1

A Z

Z


Evaluamos y vemos q A con 0 nos lleva a B y B pertenece a Z y A con 1 se va a C y C pertenece a Z Probamos con W

0

1

D W W Probamos D con 0 y 1 y observamos que se queda en D y D pertenece a W Ya particionamos todo el autómata, el siguiente paso es marcar a que conjunto pertenece cada estado, esto lo hacemos porque cada una de estos conjuntos será un estado a la hora de crear el autómata nuevo, sabemos q son 4 estados porque son 4 los conjuntos que formamos. Sabemos que ya no hay más iteraciones porque vimos q todos los estados se encuentran en armonía. Ahora pasamos a armar nuestro nuevo autómata minimizado

Sabemos que va tener cuatro estados porque nos quedaron 4 conjuntos y ya sabemos que cada conjunto será un nuevo estado, los etiquetamos (no importa el orden que tengan) ahora identificamos el estado inicial, en el conjunto Y se encuentra el estado A y el estado A era el estado inicial de nuestro autómata anterior por lo tanto Y será nuestro estado inicial, ahora buscamos el estado aceptador, en nuestro autómata anterior los estados aceptadores eran E y F ahora E y F quedaron en el conjunto X por lo tanto nuestro estado aceptador será X, ya tenemos estado inicial y aceptador Ahora pasamos a marcar las transiciones

16

Y

0

1

Z

0

1

W 0

1

X

0

1

A

Z

Z

B

X W D W W E

X

X

C

X W

X

X

F


0

0,1

Y

1

Z

W

X

0,1

0,1

Empezamos por el estado inicial que en este caso es Y, si vemos en la tabla de Y su elemento es A y en 0 Y 1 va Z, entonces colocamos nuestra transición desde Y a Z con el lenguajes de 0 y 1 Ahora en Z vemos que B y C con 0 se van X y con 1 se van a W En W el elemento D con 0 y 1 se va a W esto quiere decir que se forma un bucle en W de (0, 1) Y por último observamos en la tabla de X que con 0 y 1 se hace un bucle y se queda en X Por ultimo comprobamos que nuestro nuevo autómata minimizado sea equivalente al principal, este autómata acepta todas las cadenas o palabras q tengan como segundo símbolo en su alfabeto el cero, probamos con dos cadenas en este caso 1100 1010 Probamos la primera cadena 1100 (la identificaremos con el color rojo) B

0,1

0 1

0

0,1

E

D A

1 1

0 0

C

F

0,1 Y

17

Z

1

W

X 0,1

0,1

0,1


Nos podemos dar cuenta que funcionan de la misma manera ambos aut贸matas como esta cadena su segunda palabra no es 0 es no aceptados Probamos la segunda cadena 1010 (la identificaremos con el color verde)

0

E

B

0,1

1

0

D A

0,1

1 1

0

C

F

0,1

0

Y

0,1

Z

1

W

0,1

X

0,1

Podemos ver que esta cadena si es aceptada por el aut贸mata y los aut贸matas lo acepta correctamente.

18


Referencias BibliogrĂĄficas Baier Aranda, J. A. (s.f.). Jorge A. Baier's Homepage. Recuperado el 26 de Abril de 2015, de http://goo.gl/FemeMd Garcia del Real Ruizdelgado , J. (18 de Marzo de 2011). Universidad Politecnica de Madrid Departamento de Inteliencia Artificial. Recuperado el 26 de Abril de 2015, de http://goo.gl/CTxrCs Hopcroft, J. E., Motwani, R., & Ullman, J. D. (2007). Teoria de Automatas, Lenguajes y Computacion. Madrid: Pearson Education. Isasi, P., Martinez, P., & Borrajo, D. (1997). Lenguajes, Gramaticas y Automatas: Un Enfoque Practico. Madrid, EspaĂąa: Addison-Wesley Iberoamericana. Kelley, D. (2001). Teoria de Automatas y Lenguajes Formales. Madrid: Pearson Education. Quiroga Rojas, A. (2008). Automatas y Lenguajes Formales. Bogota: Universidad Nacional Abierta y a Distancia. Ruiz Blais, S. (2009). Di-Mare. Recuperado el 26 de Abril de 2015, de http://goo.gl/pHPq8S

19


Turn static files into dynamic content formats.

Create a flipbook
Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.