Está en la página 1de 9

Automata Minimization Algorithm

Paulo Andres Ortegon Fortoul


Noviembre 2020

Resumen
Este paper esta desarrollado con el fin de explicar que es un auto-
mata de minimizacion y que algoritmos ha trabajado sobre el concepto ,
adicional a ello se hará una comparación de estos algoritmos .
Keywords:deterministic finite automata, non-deterministic finite auto-
mata, minimal automata,minimization algorithms, random generation

1. Introducción
El problema de escribir algoritmos eficientes para encontrar el DFA mı́nimo
equivalente a un autómata dado se remonta a la década de 1950 con la investi-
gación del maestre Huffman [Huf55] y el matematico Moore [Moo58] los cuales
suelen presentar el tiempo de ejecución de análisis del peor de los casos de sus
algoritmos. La comparación del rendimiento de los algoritmos es siempre un pro-
blema, y se sabe poco sobre el rendimiento práctico del tiempo de ejecución de
los algoritmos de mininimización de autómatas. Nicaud[Nic00], demuestra que la
complejidad de caso promedio del algoritmo de Brzozowski es exponencial para
los autómatas de grupo. Tabakov y Vardi [VT05] compararon los algoritmos de
Hopcroft y Brzozowski. Baclet y col. [BP06] analizó diferentes implementacio-
nes de Hopcroft algoritmo. Más recientemente, Bassino et al. [BDN07] comparó
los algoritmos de Moore y Hopcroft. Usando el lenguaje de programación Pyt-
hon,compararé los algoritmos de Hopcroft (H) [Hop71], Brzozowski (B) [Brz63a],
Watson (W) [Wat01], y también con memorización completa (WD) [WD03]. La
elección de los algoritmos se debió a la disparidad de las complejidades del peor
de los casos y dudas sobre el comportamiento práctico de cada algoritmo. Los
datos de entrada se obtuvieron con generadores de autómatas aleatorios.

2. Definiciones
Un autómata finito determinista (DFA) D es una tupla (Q, , , q0, F): Donde
Q es un conjunto finito de estados, es el alfabeto de entrada (cualquier conjunto
de sı́mbolos no vacı́o), : Q Q es la transición función,q0 es el estado inicial ,F
Q es el conjunto de estados finales.Cuando la función de transición es total, se
dice que el autómata D está completo. Cualquier secuencia finita de sı́mbolos

1
alfabéticos a es una palabra. Sea el conjunto de todas las palabras sobre el
alfabeto y o la palabra vacı́a. La función de transición extendida ˆ: Q Q de
la siguiente manera: ˆ (q, o) = q;ˆ (q, xa) = (ˆ (q, x), a). Un estado q Q de
un DFA D = (Q, , , q0, F) se llama accesible si ˆ (q0, w) = q para algunos w
. Si se puede acceder a todos los estados de Q, se llama un DFA D completo
(completo) conectado inicialmente (ICDFA). El idioma aceptado por D, L (D),
es el conjunto de todas las palabras w tal que ˆ (q0, w) F. Dos AFD D y
D son equivalentes si y solo si L (D) = L (D ). Un DFA se llama mı́nimo
si hay ningún otro DFA equivalente con menos estados. Dado un DFA D =
(Q, , , q0, F), dos estados q1, q2 Q se dice que son equivalentes, denotados
q1 q2, si para todo w , ˆ (q1, w) F ˆ (q2, w) F. Dos los estados que no
son equivalentes se denominan distinguibles. El autómata mı́nimo equivalente
D / se llama autómata del cociente, y sus estados corresponden a las clases de
equivalencia de . Está demostró ser único hasta el isomorfismo. Un autómata
finito no determinista (NFA) también es una tupla (Q, , , I, F), donde I es
un conjunto de estados iniciales y la función de transición se define como : Q
2,P. Al igual que con los DFA, puede definir la función de transición extendida
ˆ: 2Q 2 Q de la siguiente manera: ˆ (S, o) = S; ˆ (S, xa) = S qˆ (S, x)
(q, a). El idioma aceptado por N es el conjunto de todas las palabras w tal
que ˆ (I, w) F 6 = . Todos los idiomas aceptados por algunas NFA también
pueden ser descritos por un DFA. El subconjunto El método de construcción
toma un NFA A como entrada y calcula un DFA D tal que L (A) = L (D).
Este proceso también se conoce como determinación y tiene una complejidad
de tiempo de ejecución en el peor de los casos. de O 2— Q —. Siguiendo a
Leslie [Les95], definimos la densidad de transición de un autómata A = (Q, , ,
I, F) como la relación t— Q —2 — —, donde t es el número de transiciones
en A. Esta función de densidad está normalizada, dando siempre un valor entre
0 y 1. También definimos densidad determinista como la relación de la número
de transiciones t al número de transiciones de un DFA completo con el mismo
número de estados y sı́mbolos, es decir, t — Q —— —.La inversión de una
palabra w = a0a1 · · · an, escrito w R, es un · · · a1a0. La inversión de un idioma
L es L R = wR — w L. Se pueden encontrar más detalles sobre los idiomas
habituales en elreferencias (Hopcroft [HMU00] o Kozen [Koz97], por ejemplo)

3. Algoritmos de minimización
Dado un autómata, para obtener el DFA mı́nimo asociado debemos calcular
la equivalencia relación como se define en la Sección 2. El cálculo de esta
relación es la diferencia clave de varios algoritmos de minimización. El algoritmo
de Moore y sus variantes, por ejemplo, tienen como objetivo encontrar pares de
estados distinguibles. H, por otro lado, calcula el autómata mı́nimo refinando
una partición del conjunto de los estados. De los tres algoritmos de minimización
que comparamos, H tiene el mejor tiempo de ejecución en el peor de los casos
de análisis. B es simple , a pesar de su complejidad exponencial en el peor de
los casos, se supone para superar con frecuencia a otros algoritmos (incluido H).

2
B también tiene la particularidad de poder para tomar tanto DFA como NFA
como entrada. W se puede detener en cualquier momento, lo que produce un
autómata. La versión mejorada, WD, incluye el uso de memorización completa.
Porque uno de nuestras las motivaciones eran comprobar la minimidad de un
autómata dado, no obtener el equivalente mı́nimo uno, este algoritmo fue de
particular interés

3.1. Algoritmo de Hopcroft (H)


H [Hop71], publicado en 1971, logra la complejidad del peor de los casos en
tiempo de ejecución más conocida para algoritmos de minimización. Se ejecuta
en tiempo O (kn log n) para un DFA con n estados y un alfabeto de tamaño k.
Sea D = (Q, , , q0, F) un DFA. H, procede refinando la partición más gruesa
hasta que no son posibles más refinamientos. La partición inicial es P = F, Q -
F y, en cada paso del algoritmo, un bloque B P y un sı́mbolo a se seleccionan
para refinar la partición. Este refinamiento l proceso divide cada bloque B de la
partición según los estados de B al consumir el sı́mbolo a, pasa a un estado que
está en B o no. Formalmente, llamamos a este procedimiento dividir y definir
es por dividir (B, B, a) = (B 1(B, a), B 1 (B, a))donde (S, a) = S qS (q,
a).El algoritmo termina cuando no hay más bloques para refinar. Al final, cada
bloque de la partición es un conjunto de estados equivalentes. Porque, para dos
bloques cualesquiera B, B P, cada estado q B es distinguible de cualquier
estado q B , los elementos de P representan los estados de un nuevo mı́nimo
DFA.

3
3.2. Algoritmo de Brzozowski (B)
B [Brz63b] se basa en dos operaciones sucesivas inversas y de determinación.

Al tener que realizar dos determinaciones, la complejidad del tiempo de ejecución


del peor caso de B es exponencial. La tesis de Watson, sin embargo, presenta al-
gunos resultados sorprendentes sobre el desempeño práctico de B, generalmente
superando a H. En cuanto a la forma peculiar en que este algoritmo calcula un
DFA mı́nimo, Watson asumió que era único y, en su taxonomı́a, lo colocó aparte
de todos los demás algoritmos. Luego, Champarnaud y col. [CKP02] analizó la
forma en que las determinaciones secuenciales realizan la minimización y mostró
que sı́ calcula equivalencias de estado.

3.3. Un algoritmo incremental (W)


En 2001 Watson presentó un algoritmo de minimización incremental de DFA
(W) [Wat01]. Este algoritmo se puede detener en cualquier momento y producir
un DFA parcialmente minimizado que reconoce el mismo idioma como entrada
DFA. Posteriormente, Watson y Daciuk presentaron una versión mejorada del
mismo algoritmo (WD) [WD03] que utiliza la memorización completa. Mientras
que el primer algoritmo tiene un tiempo de ejecución exponencial en el peor de
los casos, la versión memorizada produce un O (n2) algoritmo (para todos los
valores prácticos de n, es decir, n 22 dieciséis). Sin embargo, no estaba claro que
este algoritmo superarı́a a H como parecı́an indicar los resultados experimen-
tales en [WD03]. Dado que el uso de la memorización introduce algunos gastos
generales considerables en el algoritmo, querı́amos descubrir en qué punto este
trabajo adicional comienza a dar sus frutos. W usa una función auxiliar, equiv,
para probar la equivalencia de dos estados. El tercer argumento, un entero k,
se usa para controlar la profundidad de recursividad solo por cuestiones de efi-
ciencia. También para asuntos de eficiencia, se hace una variable S que contiene
un conjunto de pares de estados presuntamente equivalentes global. El pseu-
docódigo para una implementación no memorizada, especializada para ICDFA,
de equiv es presentado en el algoritmo 1.3. El algoritmo memorizado (WD) es
bastante extenso y se puede encontrar en el artı́culo de Watson y Daciuk [WD03].

4
Teniendo un método para verificar la equivalencia de estados por pares, es posi-
ble implementar una prueba que llama equiv para cada par de estados y devuelve
F alse si se encuentra que algún par es equivalente.

4. Generación de autómatas aleatorios


Incluso si consideramos solo los ICDFA (no isomórficos), el número de autóma-
tas con n estados sobre un El alfabeto de k sı́mbolos crece tan rápido [RMA05a]
que tratar de minimizar cada uno no es factible, incluso para valores pequeños
de n y k. Lo mismo se aplica a las NFA. Para comparar el rendimiento prácti-
co de los algoritmos de minimización, debemos tener una cantidad arbitraria
de ”bueno.al azar Autómatas generados disponibles, es decir, las muestras no
pueden ser imparciales. Un generador aleatorio uniforme obviamente produce
muestras insesgadas. Usamos la cadena DFA método de representación y genera-
ción aleatoria propuesto por Almeida et al. [AMR07]. Este enfoque, a diferencia
del propuesto por Bassino et al. [BN07], no requiere un paso de rechazo. El

generador produce una cadena de la forma. donde


ai, bi [0, n - 1]. Esta cadena es una representación canónica de un ICDFA
con n estados y k sı́mbolos sin información de estados finales, como lo descri-
ben Reis et al. [RMA05b, AMR07]. Dado un orden sobre , es posible definir
un orden canónico sobre el conjunto de estados atravesando el autómata en
amplitud primero eligiendo en cada nodo los bordes salientes usando el or-
den de . En la representación de cadena, cada uno de los bloques i, para 1
i n, corresponde a las transiciones desde el estado i - 1. La siguiente cadena,

por ejemplo, representa el ICDFA de la Fig.1. El


generador aleatorio produce las cadenas aleatorias de izquierda a derecha, te-

5
niendo en cuenta el número de ICDFA que, en un punto dado, todavı́a serı́a
posible producir con un determinado prefijo. El conjunto de estados finales
se calcula generando un flujo de bits equiprobable de tamaño ny consideran-
do final todos los estados que corresponden a una posición distinta de cero.

Al carecer de un generador aleatorio uniforme para NFA, implementamos uno


que combina el van Zijl método de flujo de bits, presentado por Champarnaud
et al. [CHPZ04], con uno de los enfoques de Leslie [Les95], que nos permite gene-
rar NFA conectados inicialmente (con un estado inicial) y controlar la densidad
de transición. Leslie presenta un método de ”generar y probar”que puede que
nunca se detenga, ası́ que agregamos algunos cambios menores que corrigen esta
situación. Una breve explicación del azar sigue el generador de NFA. Suponga-
mos que queremos generar un NFA aleatorio con n estados sobre un alfabeto de
k sı́mbolos y una densidad de transición d. Dejemos que los estados (respectiva-
mente los sı́mbolos) sean nombrados por los enteros 0,. . . , n - 1 (respectivamente
0,..., k - 1). Una secuencia de n 2k bits describen la transición funcionan de la
siguiente manera: la aparición de un bit distinto de cero en la posición ink +
jk + a denota la existencia de una transición del estado i al estado j etiqueta-
da por el sı́mbolo a. Considera lo siguiente bitstream, que representa el NFA

de la Fig.2 Co-
menzando con una secuencia de cero bits, el primer paso del algoritmo es crear
un estructura y ası́ garantizar que todos los estados de la NFA final sean acce-
sibles. Con el fin de hacerlo, definimos el primer estado como 0, lo marcamos

6
como visitado, generamos una transición de 0 a cualquier no visitado indique i y
marque i como visitado. A continuación, hasta que todos los estados estén mar-
cados como visitados, elija al azar un estado ya visitado q1, elija aleatoriamente
un estado no visitado q2, agregue una transición de q1 a q2 (con un azar) y
marque q2 como visitado. En este punto tenemos una NFA inicialmente conec-
tada y proceda agregando transiciones aleatorias. Hasta que se logre la densidad
deseada, simplemente seleccionamos uno de los bits cero del flujo de bits y con-
figúrelo en uno. Manteniendo una lista de estados visitados en el primer paso y
manteniendo un registro de los bits cero en el segundo paso, evitamos generar
una desconexión NFA o una transición repetida y garantizan que el algoritmo
siempre se detiene. El conjunto de estados finales puede obtenerse fácilmente
generando un flujo de bits equiprobable de tamaño ny considerando todos los
los estados que corresponden a una posición distinta de cero en el flujo de bits.

5. Resultados experimentales
Comparar algoritmos siempre es un problema difı́cil. La elección del lenguaje
de programación,los detalles de implementación y el hardware utilizado pueden
dañar el rigor de cualquier punto de referencia. A fin de que producir resultados
realistas, los datos de entrada deben ser aleatorios para que representen un uso
tı́pico de el algoritmo y el entorno de prueba deben ser idénticos para todos
los puntos de referencia. Se implementa todos los algoritmos en el lenguaje
de programación Python 3.8, utilizando estructuras de datos similares siempre
que posible. Todas las pruebas se ejecutaron en la misma computadora, un
procesador Intel Core i7 10th gen con 2,5GB de RAM. Usamos muestras de
10.000 autómatas, con 5 n 100 estados y alfabetos con k 2, 5, 10, 20 sı́mbolos.
Para los conjuntos de datos obtenidos con el generador aleatorio uniforme, el
tamaño de cada muestra es suficiente para garantizar un nivel de confianza del
95 porciento dentro de un margen de error del 1 porciento . Eso se calcula con la
fórmula n = (z2o) 2 , donde z se obtiene de la tabla de distribución normal tal
que P (z ¡Z ¡z)) = , o es el margen de error y es el nivel de confianza deseado.

6. Análisis de los resultados


En este trabajo, comparamos experimentalmente cuatro algoritmos de mini-
mización de autómatas (H, W, WD y B). Como conjuntos de datos utilizamos
dos tipos diferentes de autómatas generados aleatoriamente (ICDFA y NFA)
con una variedad de diferentes números de estados y sı́mbolos. Se obtuvo el
conjunto de datos de los ICDFA utilizando un generador aleatorio uniforme y
es lo suficientemente grande como para garantizar un nivel de confianza del 95
Porciento dentro de un margen de error del 1porciento . Para los ICDFA con
solo sı́mbolos, H es el algoritmo más rápido. Como el alfabeto el tamaño crece,
WD comienza a funcionar mejor que H. Con alfabetos mayores de 10, WD se
vuelve claramente más rápido. En cuanto a los algoritmos W y B, podemos con-

7
cluir con seguridad que ninguno funciona bien, independientemente del número
de estados y sı́mbolos. En cuanto a las NFA, es importante señalar que el ge-
nerador aleatorio utilizado no era uniforme y, por lo tanto, no tiene el misma
precisión como la primera. B es definitivamente el algoritmo más rápido. Ambos
H y WD consistentemente muestran resultados igualmente más lentos. Todos
estos algoritmos hacen uso del pase de construcción de subconjuntos, al menos
una vez, que convierte la razón del buen desempeño de B es aún menos evidente.
Serı́a interesante hacer un caso promedio análisis de la complejidad del tiempo
de ejecución para la inversión de DFA y, por lo tanto, posiblemente explique el
comportamiento de B con minimización de ICDFA.

7. Referencias
[AMR06] M. Almeida, N. Moreira, and R. Reis. Aspects of enumeration and
generation with a string automata representation. In H. Leung and G.Pighizzini,
editors, Proc. of DCFS’06, pages 58–69, Las Cruces, New Mexico, 2006. NMSU.
[AMR07] M. Almeida, N. Moreira, and R. Reis. Enumeration and gene-
ration with a string automata representation. Theoretical Computer Science,
387(2):93–102, 2007.
[BDN07] Frederique Bassino, Julien David, and Cyril Nicaud. A library to
randomly and exhaustively generate automata. In Implementation and Appli-
cation of Automata, volume 4783 of LNCS, pages 303–305. Springer-Verlag,
2007.
[BN07] F. Bassino and C. Nicaud. Enumeration and random generation of
accessible automata. Theoretical Computer Science, 381(1-3):86–104, 2007.
[BP06] M. Baclet and C. Pagetti. Around hopcroft’s algorithm. pages 114–125,
Taipei, Taiwan, 2006. Springer.
[Brz63a] J. A. Brzozowski. Canonical regular expressions and minimal state
graphs for definite events. In J. Fox, editor, Proceedings of the Symposium
on Mathematical Theory of Automata, volume 12 of MRI Symposia Series,
pages 529–561, New York, NY, April 24-26,1962 1963. Polytechnic Press of the
Polytechnic Institute of Brooklyn, Brooklyn, NY.
[Brz63b] J. A. Brzozowski. Canonical regular expressions and minimal state
graphs for definite events. In J. Fox, editor, Proc. of the Sym. on Mathematical
Theory of Automata, volume 12 of MRI Symposia Series, pages 529–561, NY,
1963. Polytechnic Press of the Polytechnic Institute of Brooklyn.
[CHPZ04] J.-M. Champarnaud, G. Hansel, T. Paranthoen, and D. Ziadi.
Random generation models for nfas. J. of Automata, Languages and Combina-
torics, 9(2), 2004.
[CKP02] J.-M. Champarnaud, A. Khorsi, and T. Paranthoen. Split and join
for minimizing: Brzozowski’s algorithm. In M. Balık and M. Simanek, editors,
Proc. of PSC’02, Report DC-2002-03, pages 96–104. Czech Technical University
of Prague, 2002.
[HMU00] John E. Hopcroft, Rajeev Motwani, and Jeffrey D. Ullman. Intro-
duction to Automata Theory, Languages and Computation. Addison Wesley,

8
2000.
[Hop71] J. Hopcroft. An n log n algorithm for minimizing states in a finite
automaton. In Proc. Inter. Symp. on the Theory of Machines and Computations,
pages 189–196, Haifa, Israel, 1971. AP.
[Huf55] D. A. Huffman. The synthesis of sequential switching circuits. The
Journal of Symbolic Logic, 20(1):69–70, 1955.
[Koz97] D. C. Kozen. Automata and Computability. Undergrad. Texts in
Computer Science. SpringerVerlag, 1997.
[Les95] T. Leslie. Efficient approaches to subset construction. Master’s thesis,
University of Waterloo, Ontario, Canada, 1995.
[Lho00] O. Lhotak. A general data structure for efficient minimization of
deterministic finite automata. Technical report, University of Waterloo, 2000.
[Moo58] E. F. Moore. Gedanken-experiments on sequential machines. The Jour-
nal of Symbolic Logic, 23(1):60, 1958.
[Nic00] C. Nicaud. Etude du comportement en moyenne des automates finis
et des la ngages rationnels. PhD thesis, Universite de Paris 7, 2000.
[RMA05a] R. Reis, N. Moreira, and M. Almeida. On the representation of
finite automata. In C. Mereghetti C. Mereghetti, B. Palano, G. Pighizzini, and
D.Wotschke, editors, Proc. of DCFS’05, pages 269–276, Como, Italy, 2005.
[RMA05b] R. Reis, N. Moreira, and M. Almeida. On the representation of
finite automata. In C. Mereghetti, B. Palano, G. Pighizzini, and D.Wotschke,
editors, 7th International Workshop on Descriptional Complexity of Formal Sys-
tems, number 06-05 in Rapporto Tecnico delo Departimento de Informatica e
Comunicazione dela Universit‘a degli Studi di Milano, pages 269–276, Como,
Italy, June 2005. International Federation for Information Processing.
[VT05] M. Vardi and D. Tabakov. Evaluating classical automata-theoretic
algorithms. In LPAR’05, 2005.
[Wat95] B. W. Watson. Taxonomies and toolkit of regular languages algor-
tihms. PhD thesis, Eindhoven Univ. of Tec., 1995.
[Wat01] B. W. Watson. An incremental DFA minimization algorithm. In In-
ternational Workshop on Finite-State Methods in Natural Language Processing,
Helsinki, Finland, August 2001.
[WD03] B. W. Watson and J. Daciuk. An efficient DFA minimization algo-
rithm. Natural Language Engineering, pages 49–64, 2003.

También podría gustarte