Documentos de Académico
Documentos de Profesional
Documentos de Cultura
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
3.2. Algoritmo de Brzozowski (B)
B [Brz63b] se basa en dos operaciones sucesivas inversas y de determinación.
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.
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.
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.
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.