ISSN electrónico: 2145-9371 Fecha de aceptación: 24 de marzo de 2009 |
Algoritmo basado en autómatas finitos para la obtención de óptimos globales en problemas combinatorios
Algorithm based on finite automata for obtaining global optimum combinatorial problems
Elías D. Niño*, Carlos J. Ardila**
* Magíster en Ingeniería de Sistemas y Computación, Universidad del Norte, docente catedrático, Departamento de Ingeniería de Sistemas. Correspondencia: Universidad del Norte, km 5 vía a Puerto Colombia, Barranquilla (Colombia). enino@uninorte.edu.co
** Magíster en Ingeniería Industrial, Universidad del Norte, docente de tiempo completo, Departamento de Ingeniería de Sistema. cardila@ uninorte.edu.co
Resumen
En este artículo se propone un Autómata Finito Determinista de Intercambio (AFD - I) que permite modelar el espacio de soluciones factibles a problemas de naturaleza combinatoria, específicamente a problemas asociados con el orden de elementos. Con la estructura AFD - I definida, se diseña e implementa un algoritmo con cuyo uso se obtiene un óptimo global a problemas combinatorios. El problema que aquí se trata puede ser extrapolado a cualquiera de los siguientes casos: asignación de n procesos a n máquinas que trabajan en paralelo, selección de la ruta óptima en el problema del agente viajero y el problema del bin packing.
Palabras claves: autómata, grafo, optimización combinatoria, óptimo global.
Abstract
This article states a Deterministic Finite Automaton of Exchange (DFA - E). It allows modeling of the space of feasible solutions to combinatorial problems, specifically, the problems associated with the order of elements. With the structure DFA - E defined, we designed and implemented an algorithm that uses it for obtaining a global solution of combinatorial problems. The problem we treat here can be extrapolated to any of the following: an allocation of n processes machines working in parallel, selecting the optimal route in the traveling salesman problem (TSP) and the problem of Bin Packing.
Key words: automaton, graph, combinatorial optimization, global opti- mum.
1. INTRODUCCIÓN
Los problemas de naturaleza combinatoria son encontrados a diario: distribución de recursos a procesos, selección de la mejor ruta para la entrega de paquetes, organización de paquetes en bodegas; estos son solo algunos ejemplos de la alta gama de problemas asociados a este género.
La gran dificultad asociada a los problemas anteriormente mencionados es que a medida que crece el número de elementos al momento de la toma de decisiones, el espacio solución crece en orden de factorial, lo cual dificulta la obtención del óptimo global (o los óptimos globales).
1.1. Autómata finito determinista
Un AFD (autómata finito deterministas) es una quíntupla [5]:
Donde:
Q es un conjunto finito de estados.
∑ es el alfabeto finito de entrada.
δ es la función de transición la cual toma un estado y una entrada del alfabeto y determina un nuevo estado.
q0 es el estado inicial, q0 ∈ Q
F es el conjunto de estados de finalización.
Una característica de los AFD es que todos los estados que pertenecen a Q, obligatoriamente, tienen transiciones con todos los elementos del alfabeto de entrada ∑.
2. AUTÓMATAS FINITOS DETERMINISTAS DE INTERCAMBIOS (AFD - I):
Un Autómata Finito Determinista de Intercambio (AFD - I) es un modelo que mediante un grafo no dirigido representa el conjunto de soluciones factibles asociadas a un problema de naturaleza combinatoria. Este modelo soporta los problemas en los cuales el orden de los elementos es importante.
Alrededor de los problemas combinatorios existen estructuras que permiten modelar su espacio de soluciones factibles. Las representaciones mediante redes neuronales para problemas de naturaleza combinatoria con funciones de costo lineales [8] y las que corresponden a representaciones neuronales solo [7] son las comúnmente utilizadas.
Uno de los aportes del modelado mediante un AFD - I es la sencillez y rapidez con que puede ser representado el conjunto de soluciones factibles a un problema combinatorio.
Formalmente un AFD - I se define como una séptupla:
Donde:
Q es un conjunto de estados finitos, cada estado qk ∈ Q tiene una permutación asociada a los elementos del vector original Xo, el cual se denota como Xk
La estructura de cada estado viene dada por:
Debido a que tiene asociado un qk , cada qk es distinto debido a que proviene de una o más permutaciones de los elementos del vector de entrada .
El número total de estados en Q será el número total de formas en las que se puedan organizar los elementos del vector de entrada, esto es:
Σ es el alfabeto finito de entrada; contiene todas las posibles combinaciones entre los índices del vector agrupándolos en parejas. Las parejas de Σ cumplen la siguiente condición:
Donde n es el número de elementos de .
Por medio de Σ se representan todos los posibles intercambios que se pueden realizar en un vector de n elementos. Por ejemplo, (1,4) representa intercambiar la posición 1 con la posición 4 del vector. El valor de j siempre es mayor que el valor de k ya que intercambiar 1 con 4 representa lo mismo que intercambiar 4 con 1.
Teorema 1. Dado un AFD - I cuyo vector de entrada es de tamaño n, el número de elementos de Σ viene dado por la expresión:
Demostración 1:
Por definición se sabe que el número de formas en las que se pueden agrupar n elementos en k subgrupos sin repeticiones es:
Por (6), si se agrupan los índices del vector en grupos de a dos se obtiene:
Aplicando la definición de factorial a 7, se tiene:
Desarrollando operaciones elementales sobre 8, queda:
Y con ello se demuestra el teorema.
δ es la función de transición, que toma un estado q, q∈Q, y una tupla de Σ, y devuelve un nuevo estado t, t∈Q, esto es δ(q(i,k)) = t, en donde (i,k) ∈Σ.
q0 es el estado inicial del AFD - I. Este estado contiene al vector inicial.
F es el conjunto de estados de finalización del AFD - I; para estos autómatas, los elementos de Q son los mismos que los elementos de F.
es el vector de entrada; por lo general se asume que contiene los elementos en el mismo orden que .
es la función objetivo la cual se desea optimizar.
Vecino de un estado: dos estados qk, qj∈Q son vecinos sí y solo sí es posible en una sola transición con un elemento de Σ llegar de qk a qj y viceversa, esto es:
2.1. Construcción de un AFD - I a partir de un vector de entrada de tres posiciones
Ejemplo 1. Se supone el vector de entrada y la función objetivo , para la construcción del AFD - I equivalente a estos datos; se procede a hacer lo siguiente:
Establecer el estado inicial: en este caso el estado inicial q0 contendrá el vector de entrada ; por lo tanto, .
Establecer el conjunto Σ: por 6 se sabe que el número de elementos de Σ es igual a 3 x (3-1). Además, por la definición de Σ, se tiene que Σ - {(1,2), (1,3), (2,3)}.
Establecer la función δ: Debido a que los AFD - I exigen que los estados tengan transiciones con todos los símbolos del alfabeto, se inicia la gene ración de vecinos por el estado inicial el cual es q0. Cada estado vecino nuevo encontrado es nombrado como qk. Los qk encontrados son utilizados para generar nuevos vecinos hasta que no haya nuevos. La traza de generación de vecinos se aprecia en la tabla 2.
Establecer todos los estados de q∈Q como estados de finalización, esto es q∈Q y q∈F.
Establecer los valores obtenidos al evaluar en la función objetivo. El siguiente paso es calcular el valor de evaluar en la función objetivo cada , con esto se obtiene la tabla 3.
El AFD - I de la figura 2 representa el autómata generado por este ejemplo. Note que cada estado tiene transición con todos los elementos de Σ. Estos representan el intercambio utilizado en el vector para alcanzar el nuevo estado
3. ALGORITMO PROPUESTO
Aún cuando los AFD - I facilitan el modelado del espacio de soluciones factibles de un problema combinatorio, no especifica ninguna técnica que permita obtener un óptimo global. Debido a esto, se propone el Algoritmo Elías D. (AED); es una técnica que obtiene un óptimo global de un problema combinatorio a través del uso de un AFD - I.
La estrategia consiste en encontrar cuál es la permutación adecuada de los elementos del vector de entrada que optimiza la función . Debido a que Q contiene todas las soluciones del problema asociado, en alguno de los estados q∈Q se encuentra el óptimo global para . Se podría pensar entonces en la construcción de todo el AFD - I y explorar los estados para ver cuál optimiza la función objetivo. Lo anterior sería viable si la cantidad de elementos a considerar es pequeña. Por otra parte, para grandes cantidades de elementos explorar todos los estados sería algo intratable. Esto es debido a que la proporción de crecimiento del espacio de soluciones factibles (número de estados) respecto a la cantidad de elementos del vector de entrada, es del orden factorial. En la tabla 4 puede apreciarse la proporción para algunos valores de n (número de elementos del vector de entrada).
Pensar en explorar espacios soluciones que contienen 100!, 200! y 500! estados suena casi imposible; para solucionar el problema se proponen los siguientes pasos conocidos como AED:
En la tabla 5 se condensan los pasos realizados en la ejecución de este algoritmo.
Nótese que aun cuando se comparan contra todos los vecinos, no todos los vecinos se generan al mismo tiempo; solo son creados al momento de la comparación.
4. ANÁLISIS Y PRUEBA
El algoritmo se analizó y se probó mediante la función objetivo:
El problema consiste en encontrar el orden de los elementos de x que maximice a 10. Se utilizaron vectores de entrada x de tamaño 2, 3, 4… 1000.
Para obtener los óptimos globales de 10 y comparar con los resultados obtenidos mediante AED, se implementó un algoritmo exhaustivo. Mediante esta técnica fue posible obtener los óptimos globales de espacios soluciones menores a 10!.
El vector de entrada con el que se trabajó es de la forma x -(n, n - 1, n-1, ..., 2, 1) en donde n es el número de elementos del vector; en la tabla 6 se puede observar el vector de entrada para algunos valores de n.
5. RESULTADOS
5.1. Resultados obtenidos por medio de búsqueda exhaustiva y analítica
Los resultados obtenidos por medio de la exploración exhaustiva, así como el número de iteraciones y el tiempo consumido para encontrar los óptimos globales, se condensan en la tabla 7.
Para espacios soluciones mayores a 9 se obtuvieron los óptimos globales de manera analítica. Simplemente se invirtió el orden de los elementos del vector de entrada, que se presentan en la tabla 8.
5.2. Resultados obtenidos mediante AED
En la tabla 9 se comparan los resultados de AED con los obtenidos mediante búsqueda exhaustiva.
En la tabla 9 se aprecia como AED mejora en gran medida la búsqueda exhaustiva (que es la única que garantiza óptimos globales) en tiempo y rendimientos, pues, como puede observarse el número de iteraciones es considerablemente menor; esto no es algo sorprendente ya que, por lo general, las metas heurísticas superan a la primera. La idea al realizar este tipo de comparación es observar que los óptimos arrojados por este algoritmo, son globales ya que son los mismos que se encuentran por medio de una búsqueda. En la figura 3 puede apreciarse la mejora en cuanto a tiempo de respuestas en milisegundos.
Se ejecutó el algoritmo con los espacios soluciones de la tabla 8; los resultados obtenidos se sintetizan en la tabla 10: son los óptimos globales como puede apreciarse.
Obsérvese en la tabla 10 que no fue posible representar numéricamente el espacio soluciones factibles a partir de 200! ya que se necesita toda esta página para poder hacerlo. Por lo anterior se optó por dejar la expresión indicada. En la figura 3 puede apreciarse el tiempo consumido en segundos por el algoritmo para la obtención del óptimo global del problema planteado.
6. CONCLUSIONES
AED es un algoritmo que mediante saltos obtiene un óptimo global asociado a un problema combinatorio. Su diseño está basado sobre la teoría de los AFD - I. Los tiempos de respuestas así como el número de iteraciones son cortos en comparación con los enormes espacios de soluciones factibles a los cuales se enfrenta. Su estrategia, principalmente, es obtener un óptimo a partir del cual se nueve saltando hacia donde se encuentre uno mejor que el actual.
Como pudo apreciarse experimentalmente, AED acota un problema combinatorio en orden polinómico, lo cual garantiza que, en un tiempo finito, se obtendrá una solución a un problema combinatorio sin importar que tan grande sea el espacio de soluciones factibles.
Finalmente, categorizar este algoritmo puede ser un poco complicado. No existe nada similar basado sobre una estructura como un grafo y que esté soportado sobre una teoría como es la de autómatas. Sin embargo, esta estrategia puede considerarse como un método de búsqueda local, que comienza con una solución del problema, y con el cual se va mejorando progresivamente [9].
REFERENCIAS
[1] I. Navarrete, Teoría de autómatas y lenguajes formales. Murcia: Addison-Wesley Iberoamericana, 2003, pp. 10 - 12.
[2] E. Castillo, Formulación y resolución de modelos de programación matemática en ingeniería y ciencia. [E-book] Disponible en: http://departamentos.unican.es/macc/personal/profesores/castillo/descargas.htm.
[3] D. Castro, Teoría de autómatas, lenguajes formales y gramática. Alcalá: Addison- Wesley Iberoamericana, 2004, pp. 15 - 17
[4] W. Cook, Combinatorial Optimization. United States of America: John Wiley & Sons, 1998.
[5] R. Brena, Autómatas y lenguajes formales, un enfoque de diseño. Editorial, 2003.
[E-book] Disponible: http://homepages.mty.itesm.mx/rbrena/AyL.html
[6] R. Johnsonbaugh, Matemáticas discretas. España: Prentice Hall, 2005.
[7] S. Matsuda, "Yet Another Optimal Neural Representation For Combinatorial Optimization, Neural Networks", Proceedings of the International Joint Conference, vol. 2, pp. 873-878, July 2003, Disponible: http://ieeexplore.ieee.org
[8] S. Matsuda, "Optimal Neural Representation For Combinatorial Optimization With Linear Cost Function", Neural Networks Proceedings, IEEE World Congress on Computational Intelligence, vol. 2, pp. 1657-1660, May 1998. Disponible: http://ieeexplore.ieee.org
[9] R. Hincapié, C. Ríos y R. Gallego, "Técnicas heurísticas aplicadas al problema del cartero viajante (TSP)", Sciencia et Técnica, n.° 24, mar. 2004.
Revista Ingeniería y Desarrollo |