Upload
others
View
8
Download
0
Embed Size (px)
Citation preview
Universidad Central “Marta Abreu” de Las Villas Facultad de Matemática, Física y Computación
Trabajo de Diploma
Título Aplicación de algoritmo AntNet al problema de
secuenciación en múltiples máquinas
Autora: Juliett M. Suárez Ferreira
Tutora: Msc. Yailén Martínez
“Año 50 de la Revolución”
Santa Clara
2008
Hago constar que el presente trabajo fue realizado en la Universidad Central Marta Abreu de Las
Villas como parte de la culminación de los estudios de la especialidad de Ciencia de la Computación,
autorizando a que el mismo sea utilizado por la institución, para los fines que estime conveniente,
tanto de forma parcial como total y que además no podrá ser presentado en eventos ni publicado sin
la autorización de la Universidad.
______________
Firma del autor
Los abajo firmantes, certificamos que el presente trabajo ha sido realizado según acuerdos de la
dirección de nuestro centro y el mismo cumple con los requisitos que debe tener un trabajo de esta
envergadura referido a la temática señalada.
_______________ _______________________
Firma del tutor Firma del jefe del Laboratorio
Resumen Los problemas de Optimización Combinatoria ocupan diversos campos como la economía, el
comercio, la ingeniería, la industria o la medicina. Los problemas de secuenciación, como ejemplo de
estos, consisten en la localización o asignación de recursos en el tiempo a un conjunto de tareas o
actividades; dentro de ellos, aparece el problema de secuenciación en múltiples máquinas,
caracterizado como la actividad de asignar un número de trabajos que son llevados a cabo por un
número de máquinas, con un rendimiento cuya efectividad en costo o tiempo son cumplidos.
En los últimos años ha habido un crecimiento en el desarrollo de procedimientos heurísticos para
resolver problemas de optimización. Este es el caso de la metaheurística ACO (Ant Colony
Optimization) que se inspira en el comportamiento que rige a las hormigas de diversas especies para
encontrar los caminos más cortos entre las fuentes de comida y el hormiguero. El tipo de problemas
que pueden ser resueltos por esta vía pertenecen al grupo de problemas de camino mínimo de
optimización combinatoria, que pueden representarse en forma de grafo ponderado y que ha
demostrado ser capaz de obtener buenos resultados para varios de los problemas a los que ha sido
aplicada.
En este trabajo se presenta una alternativa de solución al problema MMS utilizando AntNet, un
algoritmo aproximado o heurístico perteneciente a ACO, diseñado inicialmente para resolver
problemas de enrutamiento en las redes de telecomunicación. En esta propuesta de solución se
realizan adaptaciones al algoritmo para ajustarlo a las características del problema MMS, tanto en la
representación de la solución como en el procedimiento de búsqueda del valor óptimo y se obtienen
resultados comparables con otra variante de solución encontrada en la literatura, así como con
variantes propias del algoritmo obtenidas por la variación de algunos parámetros.
Abstract Combinatorial Optimization problems are present in different fields like economy, commerce,
engineering, industry or medicine. Scheduling problems, for example, consist in the allocation in time
of resources to jobs or activities, one of the scheduling problems is the Multi Machine Scheduling
(MMS), and this is characterized as the activity of assigning a number of jobs to machines such that
certain performance demands like cost and time effectiveness are fulfilled.
In recent years there has been a growth in the development of heuristic procedures to solve
optimization problems. This is the case of the ACO metaheuristic (Ant Colony Optimization), which
takes inspiration from the behavior of some ant species to find the shortest path between the food and
the nest.
The kind of problems that can be solved using this way belongs to the group of problems of minimum
path of combinatorial optimization. It is worthwhile to note that ACO algorithms are appropriate for
discrete optimization problems that can be characterized as a graph. This metaheuristic has
demonstrated that is able to obtain good results for several problems to which it has been applied.
In this work an alternative of solution to the MMS problem using AntNet is presented. AntNet is an
approximate or heuristic algorithm of the Ant Colony Optimization metaheuristic, it was initially
designed to solve routing problems in telecommunication networks.
In this solution proposal, some adaptations to the algorithm were introduced in order to approach it to
the MMS problem characteristics, these adaptations can be observed in the representation of the
solution, as well as in the search procedure of the optimal value. Comparable results with another
variant of solution found in the literature are obtained. The results are also comparables with own
variants of the algorithm obtained by the variation of some of parameters that take part in the different
formulas.
Tabla de contenidos Introducción............................................................................................... 1 Capítulo I: Problemas de Optimización Combinatoria. Metaheurística ACO. ...................... 6
1.1 Introducción.................................................................................................................................. 6
1.2 Optimización Combinatoria .......................................................................................................... 6
1.3 Problemas de secuenciación de tareas (scheduling) ................................................................... 8
1.4 Descripción del problema de secuenciación en múltiples máquinas (Multi Machine Scheduling -
MMS).................................................................................................................................................. 9
1.4.1 Definición matemática ......................................................................................................... 11
1.4.2 Ejemplo................................................................................................................................ 12
1.5 Métodos para solucionar problemas de Optimización Combinatoria ......................................... 14
1.6 Optimización basada en colonias de hormigas.......................................................................... 16
1.6.1 Representación del Problema ............................................................................................. 17
1.6.2 Comportamiento de las hormigas........................................................................................ 18
1.6.3 Modo de funcionamiento y estructura genérica de la Metaheurística ACO ........................ 18
1.6.4 Algoritmos de la Metaheurística ACO ................................................................................. 21
1.7 Consideraciones finales ............................................................................................................. 22
Capítulo II: AntNet y su aplicación al MMS ...........................................................23 2.1 Introducción................................................................................................................................ 23
2.2 AntNet ........................................................................................................................................ 23
2.2.1 Principales características del AntNet .......................................................................... 24
2.2.2 Descripción del algoritmo AntNet ................................................................................. 26
2.2.3 Descripción de la forma de actualización del modelo de tráfico Mk y las tablas de
enrutamiento Tk ............................................................................................................................ 29
2.2.4 Pseudocódigo del AntNet ............................................................................................. 34
2.3 Aplicación del algoritmo AntNet a la solución del problema MMS ............................................. 35
2.3.1 Representación gráfica del problema MMS ........................................................................ 35
2.3.2 Representación de la secuenciación de tareas................................................................... 37
2.3.3 Ejemplo de representación gráfica de la solución del problema MMS................................ 38
2.3.4 Adaptación del algoritmo AntNet al problema MMS............................................................ 44
2.4 Conclusiones parciales .............................................................................................................. 48
Capítulo III: Análisis de los resultados................................................................49 3.1 Introducción................................................................................................................................ 49
3.2 Definición de la forma de representación de instancias del MMS.............................................. 49
3.3 Resultados Experimentales........................................................................................................ 50
3.4 Técnicas estadísticas para el análisis de los resultados............................................................ 54
3.4.1 Análisis estadístico de los resultados obtenidos utilizando el parámetro α . ...................... 57
3.5 Conclusiones parciales .............................................................................................................. 59
Conclusiones ............................................................................................61 Recomendaciones.......................................................................................62 Bibliografía ...............................................................................................63 Anexo 1 ...................................................................................................66 Anexo 2 ...................................................................................................68
Lista de Figuras:
Figura 1: Representación gráfica de un problema MMS........................................................................ 9
Figura 2: Representación gráfica del ejemplo del problema MMS....................................................... 13
Figura 3: Estructura de un nodo de la red............................................................................................ 26
Figura 4: Representación de la solución (máquinas y pasos de producción) ...................................... 35
Figura 5: Representación de la solución (con tiempos de procesamiento).......................................... 36
Figura 6: Representación de la solución (con nodos inM y outM ) ...................................................... 36
Figura 7: Representación de la solución (con caminos de producción)............................................... 37
Figura 8: Representación de la secuenciación de tareas .................................................................... 38
Figura 9: Representación de la secuenciación orientada a los trabajos .............................................. 38
Figura 10: Máquinas que intervienen en el proceso de producción..................................................... 39
Figura 11: Máquinas con el tiempo de producción asociado ............................................................... 40
Figura 12: Nodos ficticios con valor 0 .................................................................................................. 40
Figura 13: Proceso de producción con arcos y tiempos asociados ..................................................... 42
Figura 14: Representación de la secuenciación de tareas del ejemplo ............................................... 43
Figura 15: Representación de la solución del ejemplo......................................................................... 43
Figura 16: Estructura de un nodo del grafo que representa el problema MMS ................................... 44
Figura 17: Funcionamiento de AntNet (movimiento de las hormigas) ................................................. 45
Figura 18: Archivo texto con los datos del problema MMS .................................................................. 49
Figura 19: Comparación de soluciones para 50 trabajos..................................................................... 51
Figura 20: Comparación de soluciones para 500 trabajos................................................................... 52
Figura 21: Resultados de AntNet ......................................................................................................... 53
Figura 22: Resultados de AntNet hasta 50 trabajos............................................................................. 54
Figura 23: Resultados de AntNet con más de 50 trabajos................................................................... 54
Lista de Tablas: Tabla 1: Datos de los tiempos de un ejemplo del problema MMS ....................................................... 13
Tabla 2: Tiempos de producción de las máquinas............................................................................... 39
Tabla 3: Paso de producción 1............................................................................................................ 41
Tabla 4: Paso de producción 2............................................................................................................. 41
Tabla 5: Paso de producción 3............................................................................................................. 41
Tabla 6: Paso de producción 4............................................................................................................. 41
Tabla 7: Resultados de la aplicación del algoritmo para 50 y 500 hormigas utilizando SMAL ............ 51
Tabla 8: Resultados obtenidos por AntNet modificando el número de trabajos .................................. 52
Tabla 9: Resultados del Test de Friedman .......................................................................................... 55
Tabla 10: Resultados del Test de Wilcoxon ......................................................................................... 55
Tabla 11: División en grupos de los resultados obtenidos ................................................................... 56
Tabla 12: Resultados de Test de Wilcoxon para el Grupo 1 (10-50 trabajos) ..................................... 56
Tabla 13: Resultados del Test de Wilcoxon para el Grupo 2 (100-550) .............................................. 57
Tabla 14: Resultados de AntNet con refuerzo igual a cero para distintos valores de α ..................... 57
Tabla 15: Resultados del Test de Wilcoxon para AntNet ( r =0) con distintos valores de α ............... 58
Tabla 16: Resultados de AntNet con refuerzo constante para distintos valores de α ........................ 58
Tabla 17: Resultados del Test de Wilcoxon para AntNet ( r const.) con distintos valores de α ......... 58
Tabla 18: Resultados de AntNet con refuerzo calculable para distintos valores de α ........................ 59
Tabla 19: Resultados del Test de Wilcoxon para AntNet ( r calc.) con distintos valores de α ............ 59
1
Introducción La Optimización es la acción y el efecto de buscar la mejor manera de realizar una actividad. Un
problema de optimización trata entonces de tomar una decisión óptima para maximizar (ganancias,
velocidad, eficiencia) o minimizar (costos, tiempo, riesgo, error) un criterio determinado, teniendo en
cuenta ciertas restricciones.
En términos matemáticos, un problema de optimización involucra un conjunto de variables de
decisión y una función objetivo que representa o mide la calidad de las decisiones en un cierto
dominio X. La Optimización Combinatoria, por su parte, es la rama de la Optimización que afronta los
problemas con un dominio X finito, conocidos como problemas combinatorios.
Existen problemas complejos de Optimización Combinatoria en diversos campos como la economía,
el comercio, la ingeniería, la industria o la medicina. Un ejemplo de esto son los problemas de
secuenciación de tareas (scheduling), que consisten en la asignación óptima de recursos en el tiempo
a un conjunto de tareas o actividades.
Los problemas de Optimización Combinatoria tienen como característica recurrente que son fáciles
de entender y de enunciar, pero generalmente son difíciles de resolver, entendiéndose como
problema de optimización difícil1 aquel para el cual no se puede garantizar encontrar la mejor solución
posible en un tiempo razonable (Garey and Jonson, 1979).
A diario aparecen nuevos problemas de este tipo, lo que ha dado lugar a que se hayan realizado
diversas propuestas de algoritmos para tratar de solucionarlos. Las técnicas existentes se pueden
clasificar básicamente en algoritmos exactos o aproximados.
Los algoritmos exactos intentan encontrar una solución óptima y demostrar que la solución obtenida
es de hecho la óptima global; estos algoritmos incluyen técnicas como: procesos de vuelta atrás
(backtracking), ramificación y poda (branch and bound) y programación dinámica (Papadimitriou and
Steiglitz, 1982) (Brassard and Bratley, 1996).
Debido a que los algoritmos exactos muestran un rendimiento pobre para algunos problemas, se han
desarrollado múltiples tipos de algoritmos aproximados que proporcionan soluciones de alta calidad
(aunque no necesariamente óptimas) para estos problemas combinatorios en un tiempo
computacional breve. Estos métodos, en los que la rapidez del proceso es tan importante como la
calidad de la solución obtenida, se denominan también heurísticos.
El término heurística proviene de la palabra griega heuriskein, que significa hallar, inventar. Es la
técnica de la indagación y el descubrimiento, y en algunas ciencias es considerada la manera de
buscar la solución de un problema mediante métodos empíricos.
1 También conocidos como problemas NP-hard, lo que significa que se pueden resolver por un algoritmo no determinista en
un tiempo polinomial.
Introducción
2
El concepto de heurística ofrecido por Feigenbaum y Feldman (Feigenbaum and Feldman, 1963) es
el siguiente:
"Una heurística es un tipo de estrategia que limita en forma drástica la búsqueda de
soluciones. La heurística no garantiza soluciones óptimas; de hecho, no garantiza el que haya
una solución; todo lo que se puede decir para que una heurística sea útil es que ofrece
soluciones que son suficientemente buenas la mayoría de las veces.”
En esencia, una heurística puede definirse como un conjunto de reglas que evalúan la posibilidad de
que una búsqueda marche en la dirección correcta.
Generalmente los métodos de búsqueda heurística se basan en maximizar o minimizar algunos
aspectos del problema. En (Díaz et al., 1996) se recogen más de dos definiciones diferentes de
algoritmo heurístico, entre las que se ha querido destacar la siguiente:
“Un método heurístico es un procedimiento para resolver un problema de optimización bien
definido mediante una aproximación intuitiva, en la que la estructura del problema se utiliza de
forma inteligente para obtener una buena solución.”
En contraposición a los métodos exactos que proporcionan una solución óptima del problema, los
métodos heurísticos se limitan a proporcionar una buena solución no necesariamente óptima.
Lógicamente, el tiempo invertido por un método exacto para encontrar la solución óptima de un
problema difícil, si es que existe tal método, es de un orden de magnitud muy superior al del
heurístico (pudiendo llegar a ser tan grande en muchos casos, que sea inaplicable).
Aunque solamente se ha mencionado la problemática de la resolución de un problema difícil, existen
otras razones para utilizar métodos heurísticos, entre las que se pueden destacar:
• El problema es de una naturaleza tal que no se conoce ningún método exacto para su
resolución.
• Aunque existe un método exacto para resolver el problema, su uso es computacionalmente
muy costoso.
• El método heurístico es más flexible que un método exacto, permitiendo, por ejemplo, la
incorporación de condiciones de difícil modelación.
• El método heurístico se utiliza como parte de un procedimiento global que garantiza el óptimo
de un problema; existiendo dos posibilidades:
o proporcionar una buena solución inicial de partida.
o participar en un paso intermedio del procedimiento.
Introducción
3
En los últimos años ha habido un crecimiento en el desarrollo de procedimientos heurísticos para
resolver problemas de optimización2. En estos métodos, las técnicas e ideas aplicadas a la resolución
de un problema son específicas del mismo y aunque, en general, pueden ser trasladadas a otros
problemas, han de particularizarse en cada caso. Así pues, es necesario referirse a un problema
concreto para estudiar con detalle los procedimientos heurísticos.
Se han desarrollado una serie de métodos bajo el nombre de metaheurísticos con el propósito de
obtener mejores resultados que los alcanzados por los heurísticos tradicionales; este término fue
introducido en (Glover, 1986). En algunos textos se puede encontrar la expresión “heurísticos
modernos” refiriéndose a los metaheurísticos (Reeves, 1995). Los profesores Osman y Kelly en
(Osman and Kelly, 1996) introducen la siguiente definición:
“Los procedimientos metaheurísticos son una clase de métodos aproximados que están
diseñados para resolver problemas difíciles de optimización combinatoria, en los que los
heurísticos clásicos no son efectivos. Los metaheurísticos proporcionan un marco general
para crear nuevos algoritmos híbridos combinando diferentes conceptos derivados de la
inteligencia artificial, la evolución biológica y los mecanismos estadísticos.”
Los procedimientos metaheurísticos se sitúan conceptualmente “por encima” de los heurísticos en el
sentido que guían el diseño de éstos. Así, al resolver un problema de optimización, puede escogerse
cualquiera de estos métodos para diseñar un algoritmo específico que lo resuelva aproximadamente.
En estos momentos existe un gran desarrollo y crecimiento de estos procedimientos, que han
probado su eficiencia sobre una colección significativa de problemas entre los que se destacan: la
Búsqueda Tabú (Glover, 1977), el Recocido Simulado (Kirkpatrick et al., 1983), los Algoritmos
Genéticos (Goldberg, 1989), la Optimización Basada en Enjambre de Partículas (Particle Swarm
Optimization, PSO) (Kennedy and Eberhart, 1995) y la Optimización Basada en Colonias de
Hormigas (Ant Colony Optimization, ACO) (Dorigo and Gambardella, 1997), entre otros. Estas dos
últimas metaheurísticas caen en la categoría de algoritmos bioinspirados o de vida artificial e
inteligencia colectiva, ya que la potencialidad de estos modelos para resolver problemas está dada
por la cooperación entre individuos de una forma directa o indirecta.
La metaheurística ACO se inspira en el comportamiento que rige a las hormigas de diversas especies
para encontrar los caminos más cortos entre las fuentes de comida y el hormiguero. El tipo de
problemas que pueden ser resueltos por esta vía pertenecen al grupo de problemas de camino
mínimo de optimización combinatoria, que pueden representarse en forma de grafo ponderado
G=(N,A), donde A es el conjunto de aristas que conectan al conjunto de componentes N.
2 Este hecho queda claramente reflejado en el gran número de artículos publicados en revistas especializadas. En 1995 se
edita el primer número de la revista Journal of Heuristics dedicada íntegramente a la difusión de los procedimientos
heurísticos.
Introducción
4
En la literatura se han propuesto diversos algoritmos que siguen la metaheurística ACO. Por ejemplo:
Sistema de Hormigas (Ant System, AS) (Dorigo, 1992), Sistema de Colonias de Hormigas (Ant
Colony System, ACS) (Dorigo and Gambardella, 1997), Sistema de Hormigas Max-Min (Max-Min Ant
System) (Stützle and Hoos, 2000), Sistema de Hormigas con ordenamiento (Rank-Based Ant System)
(Bullnheimer et al., 1999), Hormigas Multitipo (Multi Type Ants) (Vrancx, 2004) y el Sistema de la
Mejor-Peor Hormiga (Best-Worst Ant System) (Cordón et al., 2000), cada uno con sus características
particulares. AntNet es otra de las extensiones de AS. Es un algoritmo diseñado para resolver el
problema de enrutamiento en las redes de comunicación (Dorigo, 1998).
Los algoritmos de ACO se han aplicado a un gran número de problemas de optimización
combinatoria difíciles, obteniéndose buenos resultados. El primer problema que fue tratado por un
algoritmo de ACO fue el Problema del Viajero Vendedor (Travelling Salesman Problem, TSP), por ser
este una instancia bien conocida de un problema difícil, que además incluye de manera inmediata un
problema de camino mínimo, haciendo por tanto que su adaptación al comportamiento real de las
hormigas para resolverlo fuese una tarea casi inmediata. Desde entonces, diversos autores (Castro,
2006) (Peter Korosec et al., 2004) (Enríquez, 2007), han usado la metaheurística ACO para
solucionar múltiples problemas de optimización combinatoria como: la asignación cuadrática, la
secuenciación de tareas, el enrutamiento de redes, la supersecuencia común más corta, la
asignación generalizada, la cobertura de conjuntos, varios problemas de la mochila y de satisfacción
de restricciones, entre otros. Actualmente, ACO es capaz de obtener los mejores resultados para
varios de los problemas a los que ha sido aplicada, y para otros ha alcanzado resultados buenos y
cercanos a los mejores, lo cual es significativo debido a que la mayoría de esos problemas han
atraído una buena cantidad de esfuerzo e investigación.
Lo anteriormente planteado se puede considerar un argumento importante para resolver el problema
de secuenciación en múltiples máquinas, conocido como Multi Machine Scheduling (MMS), que
puede ser caracterizado brevemente como la actividad de asignar un número de trabajos que son
llevados a cabo por un número de máquinas, con un rendimiento cuya efectividad en costo o tiempo
son cumplidos. Aparece la siguiente interrogante que es considerada el problema del MMS: Dado el
número de productos a ser confeccionados, ¿qué camino de producción debe seguir cada uno de los
productos para que el tiempo de producción total sea mínimo?
Se analiza en este trabajo la factibilidad de aplicar el AntNet, uno de los algoritmos que pertenecen a
la familia de los algoritmos de ACO al problema propuesto anteriormente constituyendo el objetivo
fundamental:
Adaptar el algoritmo AntNet para solucionar el problema de secuenciación en
múltiples máquinas. Este objetivo general fue desglosado en los objetivos específicos siguientes:
Introducción
5
1. Construir el marco teórico-referencial del trabajo de investigación derivado de la consulta de la
literatura relacionada con la temática de estudio.
2. Proponer una adaptación del algoritmo AntNet para resolver el problema MMS.
3. Realizar la implementación computacional del algoritmo AntNet para solucionar el problema
planteado.
4. Evaluar los resultados obtenidos a partir de comparaciones con la solución al problema
aportada por el paradigma Multi Agent Learnig (MAL).
5. Establecer comparaciones estadísticas entre los resultados que brindan las variantes de AntNet
implementadas.
El estudio del AntNet y la factibilidad de su aplicación para encontrar una solución al problema MMS,
adquiere un significado relevante en la vida práctica. La secuenciación de trabajos juega un papel
particularmente importante en el contexto de la industria. Además de esta perspectiva industrial, esta
caracterización tiene otras interpretaciones; trabajos y máquinas pueden entenderse como programas
y computadoras, clases y profesores, misiones militares y soldados, o pacientes y equipamiento de
hospital.
La realización de la investigación presenta motivaciones de carácter teórico y práctico. Desde una
perspectiva teórica, se ofrece una adaptación del algoritmo AntNet a la solución del problema MMS
en la que se destaca la forma de representación del problema y los ajustes realizados para modelar
las características del problema. En el orden práctico se realiza la implementación computacional de
esta solución y se establecen comparaciones con los resultados obtenidos.
El presente informe incluye, además de esta introducción, tres capítulos, conclusiones,
recomendaciones, bibliografía y anexos. En el Capítulo I aparecen algunas consideraciones de
carácter teórico sobre la Optimización Combinatoria y algunos problemas de este tipo. Se destacan
los problemas de secuenciación de tareas (scheduling), en particular el problema MMS. Se expone la
definición del MMS así como la forma de representar la solución de este problema. El Capítulo II
dedica su espacio al tratamiento de los aspectos generales relacionados con la metaheurística
basada en colonias de hormigas. Se explica el funcionamiento del algoritmo AntNet y las
adaptaciones para solucionar el problema MMS. En el Capítulo III se ofrecen las valoraciones acerca
de los resultados obtenidos por la aplicación del algoritmo AntNet con diferentes parámetros, así
como la comparación con otros métodos que solucionan el problema MMS, en este caso el Multi
Agent Learning.
6
Capítulo I: Problemas de Optimización Combinatoria. Metaheurística ACO.
1.1 Introducción Optimizar significa mejorar, perfeccionar; sin embargo, en el contexto científico la optimización es el
proceso de tratar de encontrar la mejor solución posible para un determinado problema.
El capítulo inicial de este trabajo aborda aspectos esenciales de la teoría de la Optimización
Combinatoria, que trata a los problemas que tienen la meta de maximizar o minimizar un objetivo
sobre un conjunto finito de soluciones.
Reconociendo que el problema de secuenciación de tareas en múltiples máquinas (Multi Machine
Scheduling, en lo adelante MMS) se encuentra dentro de esta categoría, se investiga acerca de su
definición y se ofrece un ejemplo general de este problema.
También se profundiza en la metaheurística ACO como una forma eficiente de resolver este tipo de
problemas y se propone el algoritmo AntNet como variante de solución al problema planteado.
1.2 Optimización Combinatoria Los orígenes históricos de la Optimización Combinatoria se deben a problemas en Economía
relativos a la planificación y administración de operaciones y el uso eficiente de recursos.
Posteriormente se han abordado más aplicaciones técnicas, modelándose como problemas
combinatorios, tales como secuenciación de máquinas y planificación de producción. Actualmente los
problemas combinatorios se presentan en diseño de campañas de ventas, estudios de códigos
genéticos, clasificación de plantas y animales, diseño de nuevas moléculas, asignación controlada de
ondas de radios, modelación de redes de comunicación, posicionamiento de satélites, tamaño de
flotas de camiones y planificación del transporte, entre otras aplicaciones.
Los problemas combinatorios pueden ser vistos como problemas triviales, ya que se asume como
válida la técnica general de la enumeración total; esto es, el examen exhaustivo de todas y cada una
de las posibles soluciones. Es fácil decir “elegir el mejor de este número finito de posibilidades”, pero
los problemas combinatorios no son triviales, sino que suponen grandes retos (González, 1996). La
Optimización Combinatoria busca, para cada uno de sus problemas, una mejor alternativa práctica de
solución frente a la, normalmente no factible, técnica general de enumeración total.
Un problema de Optimización Combinatoria queda definido por un conjunto de instancias del
problema y una prescripción de maximizar o minimizar (Mailing, 2003). Si se define f como la
función objetivo y S el conjunto de soluciones, el problema puede quedar expresado como:
Capítulo I: Problemas de Optimización Combinatoria. Metaheurística ACO.
7
( ){ } ( ){ }SxxfSxxf ∈−−=∈ :min:max
Una instancia de un problema de Optimización Combinatoria es un par ( )fS , donde S es el
conjunto de soluciones factibles y RSf →: es la función de costo. El problema reside en encontrar
una solución óptima global, esto es, un ( ) ( ) SiififSi ∈∀≤∈ ** , . Además, si un ( )iff =* entonces
( ){ }** : fifSiS =∈= denota el conjunto de soluciones óptimas.
Una instancia generalmente no está dada explícitamente, esto es, expuesta llanamente como una
lista de soluciones con sus costos respectivos. Usualmente se presenta una representación compacta
de los datos, formada por un algoritmo de tiempo polinomial para verificar si una solución pertenece a
S y calcular su costo (Garey and Jonson, 1979).
Estos problemas tienen como objetivo encontrar el máximo (o el mínimo) de la función objetivo sobre
el conjunto finito de soluciones S . No se exige ninguna condición o propiedad sobre la función
objetivo o la definición del conjunto S . Es importante notar que dada la finitud de S , las variables
han de ser discretas, restringiendo su dominio a una serie finita de valores. Habitualmente, el número
de elementos de S es muy elevado, haciendo impracticable la evaluación de todas sus soluciones
para determinar el óptimo.
Los problemas de Optimización Combinatoria cubren un amplio espectro. Una muestra de los que se
han encontrado en la literatura (Martí, 2000) se presenta a continuación:
• Problema de la Mochila: Se tienen n objetos donde cada objeto j tiene un peso iw y un
valor jv . El problema consiste en seleccionar los objetos a incluir en una mochila sin exceder
el peso máximo W , de modo que el valor total de los mismos sea máximo.
• Problema del Viajante de Comercio (Traveling Salesman Problem): Un viajante de
comercio ha de visitar n ciudades, comenzando y finalizando en su propia ciudad.
Conociendo el costo de ir de cada ciudad a otra, se debe determinar el recorrido de costo
mínimo.
• Problema del Cubrimiento de Conjuntos (Set Covering): Sea un conjunto de objetos
{ }mS ,...,2,1= y una clase H de subconjuntos de S , { }nHHHH ,...,, 21= donde cada iH
tiene un costo ic asociado. El problema consiste en cubrir con costo mínimo todos los
elementos de S con subconjuntos iH .
• Problema del Empaquetado de Conjuntos (Set Packing): Como en el problema anterior, se
tienen los conjuntos S y H , pero ahora cada iH tiene un valor asociado. El objetivo es
Capítulo I: Problemas de Optimización Combinatoria. Metaheurística ACO.
8
empaquetar tantos elementos de S como sea posible, de forma que el beneficio obtenido sea
máximo y no haya solapamientos (ningún elemento de S puede aparecer más de una vez).
• Problema de la Partición de Conjuntos (Set Partitioning): En este problema, al igual que
en los dos anteriores, se tienen los conjuntos S y H . Cada elemento de S tiene que
aparecer exactamente en uno de H , por lo tanto la solución representa una partición del
conjunto S . La función objetivo puede ser maximizar o minimizar, según la aplicación.
• Problema de secuenciación de tareas (Scheduling): Consiste en la localización o
asignación de recursos en el tiempo a un conjunto de tareas o actividades; por ejemplo el
proceso de confección de n productos utilizando m máquinas con el objetivo de minimizar el
tiempo de producción.
1.3 Problemas de secuenciación de tareas (scheduling) Dentro de los problemas de Optimización Combinatoria se encuentran los problemas de
secuenciación de tareas (scheduling) que se formalizan inicialmente en el área de las manufacturas.
Las primeras publicaciones aparecieron en la “Naval Research Logistics Quartely”, revista de la
marina de guerra de los Estados Unidos a principios de los años cincuenta y estuvieron a cargo de
W.E Smith, S.M Jonhson y J.R Jackson. Durante los años sesenta se trabajó en programación
dinámica y programación en enteros para la formulación de problemas de este tipo. En los años
setenta, la labor investigativa estuvo centrada en la complejidad de los problemas. Ya en los ochenta
comienzan a tomar disímiles direcciones; se abordan tanto en las universidades como en la industria,
con un incremento en la atención a los problemas desde un punto de vista estocástico. En la década
pasada, con el desarrollo alcanzado por la computación, se han podido aplicar los diferentes modelos
de planificación con eficacia dando grandes dividendos en las industrias y en los servicios.
Actualmente es una rama de la planificación (planning), que está siendo desarrollada por
especialistas en ciencias de la computación, matemática aplicada e ingenieros industriales.
Los problemas de secuenciación de tareas son importantes en diversas ramas del mundo real. Se
pueden aplicar en las fábricas para llevar a cabo la producción, en los hospitales para atender a los
pacientes, en los aeropuertos para despachar los vuelos, en las escuelas para distribuir las
actividades de los alumnos y profesores, en un taller para decidir qué equipo es reparado primero o
bien la secuencia de la reparación, en ejercicios militares para distribuir misiones y soldados. La alta
aplicabilidad que tiene este tipo de problemas ha motivado un gran interés por estos. En todos los
casos es necesario ejecutar un número de tareas con la utilización de un número de recursos dados.
En la literatura se abordan estos problemas desde dos perspectivas distintas:
Capítulo I: Problemas de Optimización Combinatoria. Metaheurística ACO.
9
• las tareas juegan el rol fundamental, se comportan como entidades inteligentes que
conocen el tiempo necesario para su ejecución y la forma en la que se ejecutan,
dejando a los recursos sólo como el medio que les facilita su terminación.
Ejemplo:
Uno de los problemas que más ha sido estudiado es el Job Shop Scheduling. En éste,
los trabajos conocen el orden de las máquinas que van a visitar y el tiempo que se van
a demorar en cada una, mientras que las máquinas son entidades pasivas (Mailing,
2003).
• los recursos son los que deciden cómo y cuándo van a ser utilizados y las tareas se
limitan a ejecutarse según las decisiones de los recursos. Un ejemplo de esta forma de
problemas es el que se desarrolla en el epígrafe posterior.
1.4 Descripción del problema de secuenciación en múltiples máquinas
(Multi Machine Scheduling - MMS)
El problema MMS puede ser caracterizado como la actividad de asignar un número de trabajos a un
número de máquinas, donde la efectividad en tiempo es maximizada (Brauer and Weib, 2006). Esta
actividad compleja es considerada un problema difícil de resolver, incluso para muchos escenarios
donde el número de trabajos o de máquinas es conocido y fijado con anterioridad; asumiendo
además que este escenario es una idealización del mundo real donde no existen problemas como
roturas de máquinas, cancelación de trabajos, el arribo tardío de los materiales o las condiciones
impuestas por el mercado.
Gráficamente, el problema MMS se describe como muestra la Figura 1. En este caso, se desea
producir una cierta cantidad de productos. Para ello se dispone de un conjunto de máquinas
organizadas en varios niveles de producción. Un paso de producción consiste en utilizar una de las
máquinas pertenecientes a un nivel de producción, durante un período de tiempo.
Figura 1: Representación gráfica de un problema MMS
Capítulo I: Problemas de Optimización Combinatoria. Metaheurística ACO.
10
Un producto se considera terminado cuando ha pasado por una máquina de cada uno de los niveles
de producción. Se denomina camino de producción a la secuencia de pasos de producción
necesarios para terminar el producto.
Dados, un conjunto de máquinas y un conjunto de piezas de material que se necesitan procesar para
obtener los productos deseados, una planificación es una asignación que fija los caminos de
producción a seguir para cada producto. El problema consiste en encontrar cierta planificación que
minimice el tiempo producción.
Se listan a continuación las restricciones del MMS:
• Las máquinas que pertenecen al primer paso de producción procesan continuamente las
piezas de material.
• El proceso de producción es unidireccional.
• Los pasos de producción están organizados de forma ascendente, esto es, ningún producto
puede realizar el paso de producción i sin antes haber realizado el i-1.
• Un producto se considera terminado sólo cuando ha pasado por todos los niveles de
producción.
• Las máquinas que ejecutan el paso de producción i (i+1) se llaman antecesoras (sucesoras)
de las máquinas que ejecutan el paso de producción i+1(i).
• Cada máquina puede procesar solamente una pieza de material a la vez.
• Se asume que cada máquina es capaz de ejecutar uno de los niveles de producción y que en
cada nivel de producción hay al menos una máquina.
• En cada nivel de producción existe una misma cantidad de máquinas.
• Asociada a cada máquina responsable del nivel de producción 2 ó superior se encuentra una
cola de espera, en la que es puesto el material que llega si la máquina está ocupada.
• En cuanto la máquina completa su paso de producción y pasa el material procesado a una
máquina sucesora, chequea su cola de espera.
• El material que es puesto en la cola es procesado de la forma “el primero que llega es el
primero en ser procesado” (FIFO).
• La ejecución de un paso de producción se trata como una unidad atómica que no puede ser
interrumpida, es decir, una vez que una máquina ha comenzado a procesar una pieza de
material, no puede ser interrumpida.
• Cada máquina tiene asociado el tiempo que demora en terminar un paso de producción y el
tiempo que demora en enviar el material procesado a cada una de sus máquinas sucesoras.
Estos tiempos son independientes de los materiales a procesar, una misma máquina procesa
con igual tiempo todas las piezas de material que lleguen a ella.
Capítulo I: Problemas de Optimización Combinatoria. Metaheurística ACO.
11
• Para cada máquina se calcula el tiempo de espera en la cola de forma aproximada, como el
número de piezas de material que están esperando multiplicado por el tiempo de
procesamiento de dicha máquina.
• Cada máquina conoce en todo momento:
o El tiempo que demora en enviar la pieza a sus sucesoras.
o El tiempo de procesamiento de sus sucesoras.
o El tiempo de espera en la cola de sus sucesoras.
Con estas características las máquinas tienen una visión limitada de su ambiente y del estado del
proceso de manufactura.
1.4.1 Definición matemática La descripción del problema de planificación en múltiples máquinas presentada en el epígrafe
anterior, puede formalizarse matemáticamente como sigue:
Se tiene una cantidad m de máquinas y n de productos a confeccionar. Se define que existen r
pasos de producción y se denota como M al conjunto de máquinas que intervienen en la producción
teniendo en cuenta que { } MMMMM miiiii ⊆= ,2,1, ,...,, es el subconjunto de máquinas capaces de
ejecutar el paso de producción i que cumple con las restricciones:
• jiMM ji ≠∀Φ=I
• rMMMM UUU ...21=
Las máquinas contenidas en iM ( 1+iM ) son llamadas predecesoras (sucesoras) de las máquinas
contenidas en 1+iM ( iM ).
Cada elemento en rMMM ××× ...21 constituye una forma de hacer productos y es llamado camino
de producción.
Para cada producto el proceso de confección consiste en r pasos de producción, donde cada paso
individual es organizado de forma que el paso i tiene que ser ejecutado antes del paso
{ }1,...,1,1 −∈∀+ rii . Un producto se completa sólo cuando ha pasado por los r pasos de producción
correspondientes a cada uno de los r niveles de producción.
En el proceso de producción descrito existen dos tiempos elementales que deben ser tomados en
consideración: el tiempo jip , que requiere la máquina jiM , para completar su paso de producción, y
el tiempo ljjid ,1
,+ que demora una máquina jiM , en pasar el material procesado a su máquina
sucesora jiM ,1+ . Estos tiempos son fijos durante todo el proceso de producción.
Capítulo I: Problemas de Optimización Combinatoria. Metaheurística ACO.
12
Existen diferencias entre los tiempos de procesamiento de las máquinas que pertenecen a un mismo
paso de producción ( kjpp kiji ≠∀≠ ,, ). También hay diferencias en el tiempo que demoran las
máquinas de un paso de producción en enviar las piezas de material procesado a una misma
máquina sucesora ( kjdd ljki
ljji ≠∀≠ ++ ,1
,,1
, ).
El tiempo que una pieza de material tiene que esperar en cola hasta que su procesamiento comience
es aproximadamente jijiji xtw ,,, *= , donde jix , es el número de piezas que hay en la cola de la
máquina jiM , .
Asociado al camino de producción de cada producto existe un tiempo it que es el tiempo que demora
la terminación de este producto. Para una cantidad n de productos, puede obtenerse el tiempo de
producción total T , como la sumatoria de los it de cada producto, lo que constituye el objetivo a
minimizar:
{ }⎭⎬⎫
⎩⎨⎧
= ∑=
n
iitT
1min
Entonces, dado el número de productos a confeccionar, ¿qué camino de producción debe seguir
cada producto tal que el tiempo de producción sea mínimo?
1.4.2 Ejemplo Se tiene un escenario donde se presentan cinco niveles de producción ( 5=r ) con un total de 20
máquinas, 4 en cada nivel. La Tabla 1 representa los tiempos que intervienen en el proceso de
producción. Como la tabla indica, hay diferencias entre los tiempos de procesamiento de las
máquinas que pertenecen a un mismo nivel de producción ( kjpp kiji ≠∀≠ ,, ). Por ejemplo, las
máquinas 4,13,12,11,1 ,,, MMMM requieren 10, 24, 32 y 39 unidades de tiempo respectivamente, para
completar el primer nivel de producción. También hay diferencias en el tiempo que demoran las
máquinas de un nivel de producción en enviar las piezas de material procesado a una misma
máquina sucesora ( kjdd ljki
ljji ≠∀≠ ++ ,1
,,1
, ). En este caso, el envío desde las máquinas 3,12,11,1 ,, MMM y
4,1M a la máquina 1,2M toma 16, 9, 18 y 29 unidades de tiempo respectivamente.
Capítulo I: Problemas de Optimización Combinatoria. Metaheurística ACO.
13
Tabla 1: Datos de los tiempos de un ejemplo del problema MMS lj
jid ,1,+ i j jip ,
1=l 2=l 3=l 4=l 1 10 16 8 33 33 2 24 9 12 8 24 3 32 18 29 21 14
1
4 39 29 12 3 32 1 20 37 35 25 30 2 40 17 21 5 14 3 37 40 27 12 28
2
4 29 6 15 10 18 1 19 24 17 6 10 2 32 6 35 17 9 3 22 31 15 24 40
3
4 7 7 17 28 32 1 1 25 20 17 24 2 30 22 38 6 34 3 15 24 28 2 36
4
4 14 27 22 30 5 1 33 - - - - 2 15 - - - - 3 23 - - - -
5
4 6 - - - -
De esta forma, el proceso de producción puede representarse como aparece en la Figura 2 siguiente:
Figura 2: Representación gráfica del ejemplo del problema MMS
Capítulo I: Problemas de Optimización Combinatoria. Metaheurística ACO.
14
1.5 Métodos para solucionar problemas de Optimización Combinatoria
Existen dos formas fundamentales de encontrar soluciones para los problemas de Optimización
Combinatoria: los métodos exactos y los métodos aproximados o heurísticos3.
Los métodos exactos son capaces de encontrar la solución óptima a los problemas. Entre estos se
encuentran los algoritmos de vuelta atrás (backtracking) (Aranda, 2000), ramificación y poda (branch
and bound) y programación dinámica (Goic, 1998).
La principal desventaja de los métodos exactos es que al explorar todos los caminos posibles, el
costo computacional en tiempo y espacio es elevado.
Los algoritmos aproximados son la única forma factible de obtener soluciones cercanas a las óptimas
con un costo computacional relativamente bajo (Marco Dorigo and Stutzle, 2000). Existen métodos
heurísticos de naturaleza muy diferente, por lo que es complicado dar una clasificación completa.
Además, muchos de ellos han sido diseñados para un problema específico sin posibilidad de
generalización o aplicación a otros problemas similares. La siguiente clasificación trata de dar una
categoría amplia, no excluyente, donde ubicar a los heurísticos más conocidos (Martí, 2000):
• Métodos de Descomposición: El problema original se descompone en subproblemas más
sencillos de resolver, teniendo en cuenta (aunque sea de manera general), que todos
pertenecen al mismo problema.
• Métodos Inductivos: La idea de estos métodos es generalizar de versiones pequeñas o más
sencillas al caso completo. Propiedades o técnicas identificadas en estos casos más fáciles de
analizar pueden ser aplicadas al problema completo.
• Métodos de Reducción: Procuran identificar propiedades que se cumplen mayoritariamente
por las buenas soluciones e introducirlas como restricciones del problema. El objeto es
restringir el espacio de soluciones, simplificando el problema. El riesgo obvio es dejar fuera las
soluciones óptimas del problema original.
• Métodos Constructivos: Construyen literalmente paso a paso una solución del problema.
Usualmente son métodos deterministas y suelen estar basados en la mejor elección en cada
iteración. En el caso más simple, los componentes de la solución son adicionados de forma
aleatoria; pero mejores resultados se obtienen si se tiene en cuenta un estimado heurístico del
beneficio de adicionar componentes a la solución. La desventaja de tomar las mejores
decisiones en cada paso sin la posibilidad de volver atrás, es que sólo puede ser generado un
número limitado de soluciones. Las decisiones voraces en los pasos iniciales restringen
fuertemente las posibilidades disponibles en los pasos posteriores, determinando pobres 3 Otra forma puede ser con los métodos aproximados que obtenemos cuando detenemos métodos exactos como
ramificación y poda antes de que terminen.
Capítulo I: Problemas de Optimización Combinatoria. Metaheurística ACO.
15
movimientos en las fases finales del proceso de construcción. Estos métodos han sido muy
utilizados en problemas clásicos como el del viajante de comercio.
• Métodos de Búsqueda Local: A diferencia de los métodos anteriores, los procedimientos de
búsqueda o mejora local comienzan con una solución del problema y la mejoran
progresivamente, buscándola en un vecindario de la solución actual. El procedimiento realiza
en cada paso un movimiento de una solución a otra con mejor valor. El método finaliza
cuando, para una solución, no existe ninguna solución accesible que la mejore. La selección
de un vecindario apropiado es crucial para el rendimiento de la búsqueda local.
Los métodos constructivos y los de búsqueda local constituyen la base de los procedimientos
metaheurísticos. Las metaheurísticas son estrategias inteligentes para diseñar o mejorar
procedimientos heurísticos muy generales con un alto rendimiento (Julio Brito Santana et al., 2004).
Los modelos metaheurísticos son una herramienta muy estudiada en la actualidad para resolver
instancias de problemas que se creen difíciles en general, explorando el espacio de soluciones
(usualmente grande) para estas instancias. Estos modelos logran esto reduciendo el tamaño efectivo
del espacio y explorando el espacio de búsqueda eficientemente.
Los tipos de metaheurísticas se establecen en función del tipo de procedimientos heurísticos a los
que hace referencia. Una clasificación de estas estrategias es la siguiente (Julio Brito Santana et al.,
2004):
• Las metaheurísticas de relajación: se refieren a procedimientos de resolución de problemas
que utilizan relajaciones del modelo original (es decir, modificaciones del modelo que lo hacen
más fácil de resolver), cuya solución facilita la solución del problema original.
Ejemplo: Métodos de relajación lagrangiana.
• Las metaheurísticas constructivas: se orientan a los procedimientos que tratan de la
obtención de una solución a partir del análisis y selección paulatina de las componentes que la
forman.
Ejemplo: Estrategia voraz o greedy.
• Las metaheurísticas de búsqueda: guían los procedimientos que usan transformaciones o
movimientos para recorrer el espacio de soluciones alternativas y explorar las estructuras de
entorno asociadas.
Ejemplo: Algoritmos escaladores (hill-climbing).
• Las metaheurísticas evolutivas: enfocadas a los procedimientos basados en conjuntos de
soluciones que evolucionan sobre el espacio de soluciones.
Ejemplo: Algoritmos genéticos.
La Vida Artificial (Jiménez, 1999) (Paolo, 2000) o algoritmos bioinspirados constituye una disciplina
que estudia la vida natural, recreando los fenómenos biológicos en computadoras y otros medios
Capítulo I: Problemas de Optimización Combinatoria. Metaheurística ACO.
16
artificiales. Complementa el estudio teórico de la biología, pero en lugar de tomar organismos
aislados y analizar su comportamiento, lo que intenta es colocar juntos, organismos que actúan como
los seres vivos. Esta técnica se puede encontrar en aplicaciones prácticas como el diseño de
computadoras, robots móviles, medicina, nanotecnología, entre otras.
Una de las más recientes técnicas de Inteligencia Artificial en el área de Vida Artificial es la llamada
Optimización Basada en Colonias de Hormigas (Ant Colony Optimization, ACO) (Dorigo M. and LM.
Gambardella, 1997), metaheurística inspirada en el comportamiento (a nivel de especie) de colonias
de hormigas que optimizan el camino para llegar desde el nido hasta su fuente de alimento, utilizando
para éste fin, comunicación indirecta por medio de una sustancia química denominada feromona y su
capacidad para adaptarse a cambios de ambiente.
La interpretación de ACO como una extensión de heurística constructiva es apelable por diferentes
razones. La componente estocástica de ACO obliga a las hormigas a construir una amplia variedad
de soluciones diferentes por lo que explora más soluciones que las heurísticas greedy. Al mismo
tiempo, el uso de la información heurística disponible en muchos problemas, puede guiar a las
hormigas a través de las soluciones más prometedoras. La experiencia de la búsqueda de las
hormigas puede ser usada como un aprendizaje con refuerzo para la construcción de la solución en
futuras iteraciones del algoritmo. Adicionalmente, el uso de la colonia de hormigas o agentes puede
permitir el aumento de la robustez del algoritmo y en muchas aplicaciones ACO, la interacción
colectiva de una población de agentes es necesaria para resolver eficientemente el problema.
Esta metaheurística desde su surgimiento ha constituido una buena herramienta para solucionar
problemas de Optimización Combinatoria, ofreciendo las técnicas algorítmicas más exitosas y
ampliamente reconocidas basadas en el comportamiento de las hormigas, siendo la cooperación un
componente clave en sus algoritmos.
1.6 Optimización basada en colonias de hormigas
La fuente inspiradora de ACO es el rastro de feromona y el comportamiento de las hormigas reales
que la usan como medio de comunicación. En analogía al ejemplo biológico, ACO está basada en la
comunicación indirecta de una colonia de agentes simples llamados hormigas artificiales, mediante
rastros artificiales de feromona. Los rastros de feromona en ACO sirven como una información
numérica distribuida que usan las hormigas para construir probabilísticamente las soluciones al
problema que se está resolviendo y que las mismas adaptan durante la ejecución del algoritmo para
reflejar su experiencia en la búsqueda.
Las aplicaciones de ACO pertenecen a dos clases importantes de problemas (Marco Dorigo and
Stutzle, 2000):
Capítulo I: Problemas de Optimización Combinatoria. Metaheurística ACO.
17
• Optimización Combinatoria Estática, en la que no cambia el costo ni la topología.
Por ejemplo: el problema del TSP.
• Optimización Combinatoria Dinámica donde la topología y el costo pueden cambiar.
Por ejemplo: el problema de enrutamiento en redes de computadoras.
Una hormiga artificial en ACO, es un procedimiento constructivo estocástico que construye
incrementalmente una solución. Agregando oportunamente componentes a la solución parcial en
construcción se tiene en cuenta:
• Información heurística de la instancia del problema a resolver, si está disponible.
• Rastros de feromona artificial que cambian dinámicamente como reflejo de la experiencia de
la búsqueda adquirida por el agente.
1.6.1 Representación del Problema Se considera la siguiente, como la representación del problema de Optimización Combinatoria a
solucionar por un algoritmo ACO.
Se tiene el problema de minimización ( )Ω,, fS donde S es el conjunto de soluciones posibles, f es
la función objetivo que asigna a cada solución Ss ∈ un valor de la función objetivo de costo ( )tsf , y
Ω es el conjunto de restricciones. El objetivo es encontrar una solución óptima global Ssopt ∈ que es
la función de costo mínimo que satisface las restricciones de Ω donde:
• { }nccccC ,...,, 21= es el conjunto finito de componentes y L el conjunto de conexiones entre
los componentes de C .
• Los estados del problema son definidos en términos de secuencias ( ),...,...,, hji cccX = sobre
los componentes de C . El conjunto de todas las posibles secuencias es denotado por X . La
longitud de una secuencia x , es decir, el número de componentes de x es denotada por x .
• El conjunto finito de restricciones Ω se define como el conjunto de estados factibles XX ⊆' .
• Un conjunto *S de soluciones factibles está dado con '* XS ⊆ y SS ⊆* .
• Un costo ( )tsf , está asociado a cada solución posible Ss ∈ .
• En algunos casos, un estimado del costo ( )txJ i , puede estar asociado a estados ( ii xs ≤ se
puede obtener adicionando un componente de solución al estado ix i, entonces
( ) ( )txJtxJ ji ,, ≤ , note que ( ) ( )tsftsJ ,, ≡ ).
Dada esta representación, las hormigas artificiales construyen soluciones mediante el movimiento en
el grafo de construcción ( )LCG ,= donde los vértices son los componentes C y L las conexiones.
Capítulo I: Problemas de Optimización Combinatoria. Metaheurística ACO.
18
Las restricciones del problema Ω son implementadas por la política constructiva seguida por las
hormigas.
1.6.2 Comportamiento de las hormigas Las hormigas pueden ser caracterizadas como procedimientos constructivos estocásticos que
construyen las soluciones moviéndose en un grafo ( )LCG ,= . Las hormigas no se mueven
arbitrariamente en la red, sino siguiendo una política de construcción en función de las restricciones
del problema Ω . En general, las hormigas tratan de construir soluciones factibles pero si es
necesario generan soluciones no factibles. Componentes y conexiones ( )ClCc iji ∈∈ , pueden tener
asociados un rastro de feromona τ ( iτ a los componentes, ijτ a las conexiones) codificado en la
memoria de la hormiga sobre todo el proceso de búsqueda y actualizado por ella misma, y un valor
heurístico η ( iη , ijη ) representando a priori la información sobre la definición de la instancia del
problema o alguna información proveída por otra fuente diferente de hormigas. En muchos casos η
es el costo, o el estimado del costo, del trayecto al estado actual. Estos valores son usados por las
reglas heurísticas de las hormigas para tomar decisiones probabilísticas de cómo moverse en el
grafo.
Cada hormiga tiene las siguientes propiedades:
• Explora el grafo G para buscar soluciones factibles s de mínimo costo (soluciones tal
que ( )tsff ss ,min= ).
• Tiene una memoria kM que se utiliza para almacenar alguna información sobre el camino
seguido. La memoria puede ser usada para:
o Construir las soluciones factibles.
o Evaluar la solución encontrada.
o Volver sobre el camino hacia atrás para depositar feromonas.
• Puede asignársele un estado inicial kss y una o más condiciones de terminación ke .
Usualmente el estado inicial es una secuencia de un componente o una secuencia vacía.
1.6.3 Modo de funcionamiento y estructura genérica de la Metaheurística ACO
El modo de operación básico de un algoritmo de ACO es como sigue: las m hormigas (artificiales) de
la colonia se mueven, concurrentemente y de manera asíncrona, a través de los estados adyacentes
del problema. Este movimiento se realiza siguiendo una regla de transición que está basada en la
Capítulo I: Problemas de Optimización Combinatoria. Metaheurística ACO.
19
información local disponible, es decir, cada arista del grafo, que representa los posibles pasos que la
hormiga puede dar, tiene asociados dos tipos de información que guían el movimiento de la hormiga:
• Información heurística: que mide la preferencia heurística de moverse desde el nodo r hasta
el nodo s , o sea, de recorrer la arista rsa . Se denota por rsη . Las hormigas no modifican esta
información durante la ejecución del algoritmo.
• Información de los rastros de feromona artificiales: que mide la “deseabilidad aprendida” del
movimiento de r hasta s . Imita a la feromona real que depositan las hormigas naturales. Esta
información se modifica durante la ejecución del algoritmo dependiendo de las soluciones
encontradas por las hormigas. Se denota por rsτ .
Al moverse por el grafo representativo del problema, las hormigas construyen soluciones
incrementalmente. Opcionalmente, las hormigas pueden depositar feromona cada vez que crucen un
arco en el proceso de construcción de la solución (actualización en línea paso a paso de los rastros
de feromona).
Una vez que cada hormiga ha generado una solución, ésta se evalúa y puede depositar una cantidad
de feromona que está en función de la calidad de su solución (actualización en línea de los rastros de
feromona). Esta información guiará la búsqueda de las otras hormigas de la colonia en el futuro.
Es bueno aclarar que la estructura que almacena la feromona está en dependencia del tipo del
problema a resolver. Para problemas de secuenciación o asignación, la feromona es asociada a los
arcos del grafo representativo, por lo que se habla de una matriz de feromona como se presenta en la
mayoría de los problemas. Para problemas donde el orden de los elementos de la solución no es
importante se asocia la feromona a los nodos del grafo, por lo que se utiliza como estructura de
almacenamiento un vector de feromona. En lo adelante, para explicar el funcionamiento de la
metaheurística ACO y el comportamiento de sus algoritmos se utilizará el término “matriz de
feromona”, sin que se refiera a un tipo de problema en específico.
Los valores iniciales de feromona pueden ser de la siguiente forma:
• Inicialización aleatoria: donde cada elemento de la matriz es un elemento escogido
aleatoriamente con distribución uniforme en el intervalo (0,1).
• Con un valor constante: cada elemento de la matriz es inicializado con el mismo valor, éste
valor debe de estar en el intervalo (0,1).
• Inicialización dependiendo de una solución ( S ) calculada por algún otro algoritmo con menor
costo computacional; donde cada elemento de la matriz es inicializado con el valor S1 .
Además, el modo de operación genérico de un algoritmo de ACO incluye dos procedimientos
adicionales: la evaporación de los rastros de feromona y las acciones del demonio. La evaporación de
feromona la lleva a cabo el entorno y se usa como un mecanismo que evita el estancamiento en la
Capítulo I: Problemas de Optimización Combinatoria. Metaheurística ACO.
20
búsqueda y permite que las hormigas busquen y exploren nuevas regiones del espacio. Las acciones
del demonio son acciones opcionales (que no tienen un contrapunto natural) para implementar tareas
desde una perspectiva global que no pueden llevar a cabo las hormigas por la perspectiva local que
ofrecen. Entre las capacidades adicionales que desarrollan las acciones del demonio se encuentran:
observar la calidad de todas las soluciones generadas y depositar una nueva cantidad de feromona
adicional sólo en las transiciones/componentes asociadas a algunas soluciones, o aplicar un
procedimiento de búsqueda local a las soluciones generadas por las hormigas antes de actualizar los
rastros de feromona. En ambos casos, el demonio reemplaza la actualización en línea a posteriori de
feromona y el proceso pasa a llamarse actualización fuera de línea de rastros de feromona.
La estructura de un algoritmo de ACO genérico es como sigue (M. Dorigo and Stützle, 1999):
Procedimiento Metaheurística ACO;
Actividades Programadas
Construir Soluciones de las Hormigas
Actualizar Feromona
Evaporación de la feromona
Acciones del Demonio (opcional)
Fin de las Actividades Fijas
Fin del procedimiento
Este procedimiento se anida en el siguiente procedimiento iterativo:
P1: Inicializar los valores de feromona
Nciclo = 1
P2: Repetir
Procedimiento Metaheurística ACO
Nciclo = Nciclo + 1
Hasta que: criterio de parada
Los criterios de parada de este proceso iterativo pueden ser, entre otros:
• Se alcanza un número máximo de ciclos.
• Se alcanza una solución con la calidad deseada.
• Convergencia a la misma solución (estancamiento).
• Se alcanza un tiempo límite de procesamiento.
Capítulo I: Problemas de Optimización Combinatoria. Metaheurística ACO.
21
1.6.4 Algoritmos de la Metaheurística ACO En la literatura se han propuesto diversos algoritmos que siguen la metaheurística ACO. Entre los
algoritmos ACO disponibles para problemas de Optimización Combinatoria difíciles, se encuentra el
Ant System (AS), que es una técnica innovadora basada en agentes simples llamados
hormigas(Dorigo, 1992). Tres variantes de este algoritmo: Ant-density, Ant-quantity y Ant-cycle surgen
posteriormente (M. Dorigo, 1996). Estas se diferencian en el momento y la manera de actualizar una
matriz que representa la feromona de los sistemas biológicos. La última variante, Ant-cycle, ha
presentado mejores resultados y por tanto las siguientes investigaciones se han centrado en ella.
Dorigo y Gambardella trabajaron en varias versiones extendidas del algoritmo AS (M. Dorigo and L.
M. Gambardella, 1997). Ant-Q es un híbrido entre AS y Q-learning, un conocido algoritmo de
aprendizaje con realimentación positiva (Marco Dorigo and Gambardella, 1998). En Ant Colony
System (ACS) (M. Dorigo and Stützle, 1999) se presentaron mejoras del AS en tres aspectos
principales: el procedimiento que realizan las hormigas para la elección del siguiente movimiento
(ofrece un balance entre la exploración de nuevos caminos y la explotación del conocimiento
acumulado acerca del problema), la actualización global (modifica la matriz de feromonas sólo con el
mejor camino encontrado hasta el momento) y la regla de actualización local (permite a todas las
hormigas actualizar la matriz de feromonas al terminar su viaje).
Otra variante de AS, conocida como Max-Min Ant System (MMAS), permite actualizar la matriz de
feromonas sólo a la hormiga con el mejor camino (T. Stützle and H. Hoos, 2000). Esto acelera la
convergencia, pero puede llevar a estancamientos en soluciones sub-óptimas. A fin de evitar
convergencias prematuras, se ha propuesto situar un límite máximo y otro mínimo dentro de los
cuales puede variar la cantidad de feromona. La aplicación de una búsqueda local mejora
notoriamente los resultados experimentales.
Un gran número de investigadores, interesados por la originalidad y el rendimiento del modelo ACO,
han aplicado la metaheurística con excelentes resultados a problemas tan diversos como:
• El paradigma del Viajante de Comercio (Travelling Salesman Problem) (M. Dorigo, 1996).
• El problema del ordenamiento secuencial (Sequential Ordering Problem) (Gambardella and
Dorigo, 2000).
• El problema de enrutamiento de vehículos (Vehicle Routing Problem) (Gambardella et al.,
1999a);
• El problema de asignación cuadrática (Quadratic Assignment Problem) (Gambardella et al.,
1999b);
• Redes de telecomunicaciones (Telecommunications Networks) (Caro, 2004).
AntNet (Gianni Di Caro and Dorigo, 1998) es un algoritmo de la metaheuristca ACO diseñado para
resolver el problema de enrutamiento en las redes de telecomunicación. Dado un grafo que
Capítulo I: Problemas de Optimización Combinatoria. Metaheurística ACO.
22
representa la red de telecomunicación, el problema que resuelve AntNet es determinar al camino de
costo mínimo entre cada par de nodos. Este problema puede ser resuelto eficientemente por
algoritmos sencillos y conocidos como Dijsktra, pero se complica cuando los costos de los caminos
son variables estocásticas dependientes del tiempo, éste es el caso del enrutamiento en las redes de
telecomunicación.
Dado que las condiciones del problema MMS se asemejan a las del enrutamiento en las redes de
telecomunicación, pues las colas de los trabajos, y por tanto, los costos en tiempo entre uno y otro
nodo se modifican constantemente, AntNet ha sido en este trabajo el algoritmo elegido para resolver
este problema.
1.7 Consideraciones finales • Los problemas de Optimización Combinatoria son diversos y ocupan múltiples esferas de la
vida real. Su forma de solución exhaustiva es muy costosa, por lo que encontrar una vía
óptima de solución es un problema latente para los que investigan en esta temática.
• La aplicación de las metaheurísticas basadas en colonias de hormigas ha reportado buenos
resultados en la solución de problemas de Optimización Combinatoria.
• El problema MMS, como tipo de problema de Optimización Combinatoria no queda exento de
los comentarios anteriores, por lo que el planteamiento de una posible forma de solucionar
este problema utilizando el algoritmo AntNet, perteneciente a la metaheuristica ACO,
constituye el punto de partida en el capítulo que sigue.
23
Capítulo II: AntNet y su aplicación al MMS
2.1 Introducción AntNet es un algoritmo de la metaheurística ACO diseñado para resolver el problema de
enrutamiento en redes de telecomunicación. En este capítulo se presentan sus principales
características y las estructuras de datos fundamentales sobre las que basa su funcionamiento.
Se trata además, la representación de la solución de un problema MMS a partir de una estructura de
grafo con pesos y la adaptación del AntNet para solucionar este tipo de problema, presentando el
pseudocódigo general del algoritmo.
2.2 AntNet AntNet es un algoritmo de enrutamiento, inspirado en los trabajos previos de las técnicas de colonias
de hormigas para resolver problemas de Optimización Combinatoria (Dorigo et al., 1991) y el
enrutamiento de redes telefónicas(R. Schoonderwoerd et al., 1997).
El núcleo de las ideas de estas técnicas tiene tres fundamentos principales (Marco Dorigo et al.,
1999):
• El uso de simulaciones repetidas y concurrentes llevadas a cabo por una población de
agentes artificiales llamados hormigas, para generar nuevas soluciones al problema.
• El uso, por los agentes, de una búsqueda estocástica local para construir las soluciones de
forma incremental.
• El uso de la información recolectada durante simulaciones pasadas para dirigir la búsqueda
futura de mejores soluciones.
En el enfoque de las colonias de hormigas artificiales, siguiendo un proceso iterativo, cada hormiga
construye una solución utilizando dos tipos de información localmente accesible: la información
específica del problema y la información adicionada por las hormigas durante las iteraciones previas
del algoritmo. De hecho, mientras se construye una solución, cada hormiga recolecta información
sobre las características del problema y sobre su comportamiento y utiliza esta información para
modificar la representación del problema que es vista localmente por las otras hormigas. La
representación del problema es modificada de tal manera que la información contenida en las
mejores soluciones anteriores puede ser explotada para construir nuevas y mejores soluciones. Esta
forma de comunicación indirecta mediante el ambiente es llamada estimergia y es típica de insectos
sociales.
Capítulo II: AntNet y su aplicación al MMS
24
2.2.1 Principales características del AntNet AntNet mantiene los fundamentos principales del paradigma de las colonias de hormigas artificiales y
presenta además, un grupo de características propias, que se enuncian a continuación:
• A intervalos regulares y de forma concurrente con el tráfico de datos, de cada nodo de la red,
agentes móviles son lanzados asincrónicamente hacia nodos destinos elegidos de forma
aleatoria (hormigas forward).
• Los agentes actúan de forma independiente y concurrente y se comunican de forma indirecta
a través de la información que leen y escriben localmente en los nodos.
• Cada agente busca un camino de costo mínimo que una su nodo fuente y su nodo destino.
• Cada agente se mueve paso a paso hasta su nodo destino. En cada nodo intermedio se aplica
una política greedy estocástica para elegir el próximo nodo a dirigirse. Esta política hace uso
de:
o Información local del agente (generada y mantenida).
o Información heurística local (dependiente del problema).
o Información privada del agente.
• Durante el movimiento, los agentes coleccionan información sobre el tiempo, la longitud, el
estado de la congestión y los identificadores de nodos del camino seguido.
• Una vez que llegan al destino, los agentes vuelven atrás a sus nodos de origen, moviéndose
por el mismo camino en dirección contraria (hormigas backward).
• Durante este viaje hacia atrás, los modelos locales del estado de la red y de la tabla de
enrutamiento local de cada nodo visitado son modificados por los agentes en función del
camino que siguieron y de cuán bueno fue.
• Una vez que los agentes han vuelto a su nodo de origen, mueren.
AntNet es convenientemente descrito en términos de dos conjuntos de agentes móviles llamados
hormigas forward y hormigas backward. Estos poseen la misma estructura, pero están situados de
forma diferente en el ambiente y los nombres que reciben están en correspondencia con el viaje que
realizan (del origen al destino recolectando información: hormigas forward y del destino hacia el
origen actualizando la información: hormigas backward). Los agentes reaccionan recuperando un
conjunto de comportamientos pre-compilados y al mismo tiempo mantienen una descripción completa
del estado interno de la red. Se comunican de una forma indirecta acorde al paradigma de la
estimergia, a través de la información almacenada en cada nodo de la red.
Todos los nodos de la red poseen la misma estructura formada por una tabla de enrutamiento cuyas
entradas son probabilísticas y un modelo de tráfico local con las estadísticas locales del tráfico de la
Capítulo II: AntNet y su aplicación al MMS
25
red que juega el papel de un modelo adaptable para el tráfico hacia cada nodo destino posible. La
Figura 3 muestra la estructura de un nodo con L vecinos, de una red de N nodos.
La tabla de enrutamiento es equivalente a la matriz de feromonas que distingue a los algoritmos ACO
tradicionales. En lo adelante se utilizará el término tabla de enrutamiento, para hacer referencia a
dicha matriz.
A continuación se brinda una descripción detallada de la estructura de cada uno de los nodos de la
red:
i) Tabla de enrutamiento kT : define la política probabilística de enrutamiento adoptada
habitualmente en el nodo k . Esta política sostiene que, para cada nodo destino posible d y
para cada nodo vecino n , kT almacena un valor de probabilidad ndP expresando cuán bueno
es el camino de n a d bajo la actual política de enrutamiento; es decir, cuán buena es la
elección de n . La suma de las probabilidades de los nodos vecinos se comporta como sigue:
)}({],,1[,1 kvecinosNNdP kNn
ndk
=∈=∑∈
ii) Modelo de tráfico local kM : arreglo ( )dddk WM ,,σμ de estructuras de datos que definen un
modelo paramétrico y estadístico para la distribución del tráfico en la red, como es visto por el
nodo k . El modelo es adaptable y descrito por muestras de medias y varianzas calculadas
sobre el tiempo de viaje experimentado por los agentes móviles y por una ventana de
observación del movimiento dW , usada para almacenar el mejor valor dbestW _ de tiempo de
viaje de los agentes. Para cada nodo destino d en la red, la media y la varianza estimadas
dμ y 2dσ dan una representación del tiempo esperado en ir hasta d y de su estabilidad. Se
utilizan las estrategias aritmética y exponencial para calcular las estadísticas. El cambio de las
estrategias no afecta mucho el rendimiento, pero se han observado los mejores resultados
utilizando el modelo exponencial siguiente según (Caro and Dorigo, 1998):
( )ddkdd o μημμ −+← → (1)
( )( )2222dddkdd o σμησσ −−+← → (2)
Donde dko → es el nuevo tiempo observado de viaje del agente del nodo k al destino d .
El factor η pesa el número de las muestras más recientes que realmente afectan el promedio.
El peso de la t-iésima muestra usada para estimar el valor de dμ después de j muestras,
con ij > , es ( ) ijn −−1η . De esta forma, si 1.0=η aproximadamente sólo las últimas 50
Capítulo II: AntNet y su aplicación al MMS
26
observaciones realmente influyen en el estimado; para 05.0=η las últimas 100 y así
sucesivamente. Es por eso que el número de observaciones es aproximadamente ⎟⎠⎞⎜
⎝⎛
η15 .
La ventana de observación dW es usada para calcular el valor dbestW _ del mejor tiempo de
viaje de los agentes hacia el nodo d , observado en las últimas w muestras. Después de
cada nueva muestra w es aumentado |W|max (|W|max es el tamaño máximo permitido de la
ventana de observación). El valor bestW expresa el movimiento empírico, acotado inferiormente
por el estimado del tiempo de ir hasta el nodo d del nodo actual.
kT y kM pueden verse como memorias locales de los nodos que capturan diferentes aspectos de la
dinámica de la red. El modelo kM mantiene estimados absolutos distancia/tiempo para todos los
nodos, mientras que la tabla de enrutamiento kT ofrece medidas relativas probabilísticas de cuán
bueno puede ser el camino representado por cada par (origen, destino), bajo la política actual de
enrutamiento implementada sobre toda la red.
Figura 3: Estructura de un nodo de la red
2.2.2 Descripción del algoritmo AntNet Los pasos que se describen a continuación detallan el comportamiento del algoritmo AntNet según
aparece en (Caro and Dorigo, 1998):
Capítulo II: AntNet y su aplicación al MMS
27
1- A intervalos regulares tΔ , de cada nodo s de la red, un agente móvil (hormiga forward) es
lanzado hacia un nodo destino d para descubrir un camino factible de bajo costo hacia ese
nodo y para investigar el estado de carga de la red. Estos agentes comparten las mismas
colas que los paquetes de datos que viajan por la red, por lo que experimentan la misma
carga de tráfico. Los destinos son seleccionados localmente de acuerdo con el diseño del
tráfico de datos generado por la carga de trabajo local. Si sdf es una medida (en bits o
número de paquetes) del flujo de datos del nodo s al nodo destino d , entonces la
probabilidad de crear un agente móvil de s a d es:
∑=
= N
dsd
sdd
f
fp
1''
(3)
De esta forma, las hormigas adaptan su actividad de exploración a la distribución variable del
tráfico de datos.
2- Mientras viajan hacia sus nodos destinos, los agentes mantienen en memoria los caminos
seguidos y las condiciones de tráfico encontradas. El identificador de cada nodo visitado k y el
tiempo transcurrido desde el lanzamiento del agente hasta su arribo al k-ésimo nodo se sitúan
en la pila de memoria ( )kS ds→ .
3- En cada nodo k , cada agente viajero con destino hacia d selecciona el nodo n a moverse,
escogiendo entre los vecinos que no ha visitado, o sobre todos los vecinos, en caso de que
todos hayan sido visitados previamente. El vecino n es seleccionado con una probabilidad '
ndP , calculada como la suma normalizada de la entrada probabilística ndP de la tabla de
enrutamiento, con un factor de corrección heurístico nl tomando en cuenta el estado (la
longitud) del n-ésimo enlace de la cola del nodo actual k .
( )11'
−−+
=k
nndnd N
lPPα
α (4)
La corrección heurística 0 ≤ nl ≤ 1 es un valor normalizado proporcional a la longitud nq (en
bits esperando a ser enviados) de la cola del enlace que conecta el nodo k con su vecino n :
∑=
−=kN
nn
nn
q
ql
1''
1 (5)
El valor α pesa la importancia de la corrección heurística con respecto a los valores de
probabilidad almacenados en la tabla de enrutamiento. nl refleja el estado instantáneo de las
Capítulo II: AntNet y su aplicación al MMS
28
colas de los nodos y asume que el proceso de consumo de la cola es casi estacionario o
lentamente variable. nl brinda una medida cuantitativa asociada con el tiempo de espera en la
cola.
Los valores de la tabla de enrutamiento son el resultado de un proceso continuo de
aprendizaje y captura del estado actual y pasado de la red entera, como es vista por el nodo
local. Corregir estos valores con el valor nl , permite que el sistema sea más reactivo, evitando
al mismo tiempo todas las fluctuaciones de la red. Las decisiones de los agentes son tomadas
sobre la base de la combinación de un proceso de aprendizaje a término largo y una
predicción heurística instantánea.
La corrección introducida es un mecanismo efectivo. Dependiendo de las características del
problema, el mejor valor a asignar al peso α puede variar pero si 5.02.0 ≤≤ α el rendimiento
no varía de forma considerable. Para valores menores el efecto de nl desaparece, mientras
que para valores mayores, la tabla de enrutamiento resultante oscila y en ambos casos el
rendimiento se degrada.
4- Si se detecta un ciclo, esto es, si una hormiga es forzada a retornar a un nodo ya visitado, los
nodos del ciclo son extraídos de la pila de nodos visitados de la hormiga y toda la memoria
relacionada con este proceso es eliminada. Si el último ciclo es mayor que el tiempo de vida
de la hormiga antes de entrar al ciclo (si el ciclo es mayor que la mitad de la edad de la
hormiga) la hormiga se destruye. En este caso, el agente desperdició mucho tiempo
probablemente debido a una secuencia equivocada de toma de decisiones y no a la
congestión de los estados y no resulta productivo usar esta información en el proceso de
actualización de las tablas de enrutamiento.
5- Cuando se alcanza el nodo destino d , el agente dsF → transfiere toda su memoria al agente
dsB → (hormiga backward) y muere.
6- El agente dsB → toma el mismo camino de su correspondiente dsF → pero en dirección opuesta.
En cada nodo k a lo largo del camino, lee su pila ( )kS ds→ para saber el próximo nodo a saltar.
Los agentes dsB → , (hormigas que recorren los caminos obtenidos en dirección opuesta) no
comparten la misma cola de enlace que los paquetes de datos; utilizan colas de prioridad
superior, pues su tarea es propagar rápidamente la información acumulada por los agentes
dsF → a las tablas de enrutamiento.
7- Arribando al nodo k , desde un nodo vecino f , el agente dsB → actualiza las dos estructuras
de datos principales del nodo: el modelo de tráfico local kM y la tabla de enrutamiento kT
Capítulo II: AntNet y su aplicación al MMS
29
para todas las entradas correspondientes con el nodo destino. Tomando algunas
precauciones, la actualización está representada también en las entradas correspondientes a
todo nodo 'k que pertenece a dsS → , tal que dk ≠ en los subcaminos seguidos por la hormiga
dsF → después de visitar el nodo actual k . De hecho, si el tiempo de viaje transcurrido en un
subcamino es estadísticamente bueno (es menor que ( )σμμ ,l+ , donde l es un estimado del
intervalo de confianza de μ ) entonces el valor del tiempo es usado para actualizar las
estadísticas correspondientes y la tabla de enrutamiento. Por el contrario, si el tiempo de viaje
de los subcaminos no fue suficientemente bueno en el mismo sentido estadístico defendido
anteriormente, no es usado porque no brinda una idea correcta del tiempo en ir al nodo
subdestino. De hecho, todas las decisiones de los agentes dsF → son tomadas solamente en
función del nuevo destino. Con esta perspectiva, los subcaminos tienen efectos colaterales y
son sub-óptimos intrínsecamente por las variaciones locales del tráfico en la red (no se puede
razonar con la misma perspectiva que en la programación dinámica por lo no estacionario de
la representación del problema). Obviamente, en caso de un buen subcamino, se puede
utilizar: la hormiga descubrió sin costo, una ruta adicional buena.
2.2.3 Descripción de la forma de actualización del modelo de tráfico Mk y las tablas de enrutamiento Tk
La forma de actualización del modelo de tráfico local kM y la tabla de enrutamiento kT de cada nodo
con respecto a un destino genérico 'd , que pertenece a dsS → se describe de la manera siguiente:
i) kM es actualizado con los valores guardados en la pila de memoria ( )kS ds→ . El tiempo que el
agente dsF → demora en llegar a su destino 'd , desde el nodo actual k , es usado para
actualizar los estimados de media y varianza 'dμ y 2
'dσ y el mejor valor sobre la ventana de
observación 'dW . De esta forma se mantiene un modelo paramétrico del tiempo de viaje. El
valor de la media de este tiempo y su dispersión pueden variar fuertemente en dependencia
de las condiciones de tráfico: un tiempo pobre en una baja carga de tráfico puede ser muy
bueno frente a una carga de tráfico pesada. El modelo estadístico tiene que ser capaz de
capturar esta variabilidad y de seguir de forma robusta las fluctuaciones de tráfico. Este
modelo juega un rol crítico en el proceso de actualización de la tabla de enrutamiento, es por
Capítulo II: AntNet y su aplicación al MMS
30
eso que se han investigado múltiples formas de construir modelos efectivos y
computacionalmente baratos, como se menciona posteriormente en el epígrafe 2.2.3.1
ii) La tabla de enrutamiento kT es modificada incrementando la probabilidad fdP (probabilidad de
elegir un vecino f cuando el destino es 'd ) y decrementando por normalización las otras
probabilidades 'ndP . La variación en los valores de las probabilidades depende de, en qué
medida es bueno el tiempo de viaje Tk→d’ experimentado por el agente dsF → . Este tiempo
representa la única señal de retroalimentación explícita disponible para marcar caminos. Da
una clara indicación sobre cuán bueno es el valor r (en lo adelante refuerzo) de la ruta
seguida, porque es proporcional a su longitud desde un punto de vista físico (número de
saltos, capacidad de transmisión de los enlaces usados, velocidad de procesamiento de los
nodos atravesados) y desde el punto de vista de congestión del tráfico (los agentes dsF →
comparten las mismas colas que los paquetes).
La medida de tiempo T , compuesta por los tiempos transcurridos de los subcaminos, no
puede ser asociada con una medida de error exacta, dado que no se conoce el tiempo óptimo
de viaje, que depende del estado de carga de toda la red. Es por eso que T puede ser usada
solamente como una señal de refuerzo.
Se define el refuerzo ( )kMTrr ,≡ , como una función de bondad del tiempo de viaje
observado como estimado basado en el modelo de tráfico local. ( ]1,0∈r , es usado por el
nodo actual k como un refuerzo positivo para el nodo f del cual proviene el agente dsB → y
toma en cuenta algún promedio de los valores observados más lejanos y de su dispersión
para medir cuán bueno es el tiempo de viaje T .
La probabilidad 'fdP es incrementada por el valor de refuerzo:
( )''' 1 fdfdfd prpp −+← (6)
De esta forma, la probabilidad 'fdP será incrementada por un valor proporcional al refuerzo
recibido y el valor previo de la probabilidad del nodo (esto es, dado un refuerzo similar, valores
de probabilidad pequeños, son incrementados proporcionalmente más, que valores de
probabilidad grandes, favoreciendo de esta manera la explotación rápida de nuevos y mejores
caminos descubiertos).
Las probabilidades 'ndP para el destino 'd de los otros n nodos vecinos, implícitamente
reciben un refuerzo negativo. Sus valores son reducidos tal que la suma de las probabilidades
sea 1:
Capítulo II: AntNet y su aplicación al MMS
31
fnNnrppp kfdfdnd ≠∈−← ,,''' (7)
Es importante resaltar que todo camino descubierto recibe un refuerzo positivo en su
probabilidad de selección y el refuerzo es, en general, una función no lineal de cuán bueno
puede ser un camino donde como estimado se usa el tiempo de viaje asociado. De esta
forma, no sólo el valor r asignado (explícito) juega un rol, sino también el tiempo de llegada
del agente (implícito). Esta estrategia está basada en los caminos de confianza que reciben
refuerzos mayores o menores independientemente de su frecuencia y la frecuencia de
refuerzo. De hecho, para cualquier condición de carga de tráfico, un camino recibe uno o más
refuerzos grandes sólo si este es mejor que los caminos previamente explorados, de otra
manera, durante una fase pasajera, después de un incremento súbito de la carga de la red,
todos los caminos parecen tener mayor tiempo de recorrido que aquellos aprendidos por el
modelo kM cuando esto fue precedido por una situación de menor congestión. Por lo tanto,
en este caso los mejores caminos pueden ser diferenciados por las frecuencias de arribo de
los agentes, asignando siempre un valor de refuerzo pequeño y positivo en el caso de los
caminos con un gran tiempo de travesía, lo que permite la implementación del mecanismo
anterior basado en las frecuencias de refuerzo, mientras que al mismo tiempo evita dar un
crédito excesivo a caminos con gran tiempo de recorrido debido a su mala calidad.
Las tablas de enrutamiento son utilizadas de manera probabilística no sólo por los agentes sino
también por los paquetes de datos. Esto ha sido observado para mejorar el rendimiento de AntNet, lo
que significa que la manera en que las tablas de enrutamiento son construidas, concuerda con una
distribución probabilística de los paquetes de datos sobre todos los mejores caminos. Los paquetes
de datos están alertados de la elección de enlaces con probabilidades muy bajas debido al reajuste
de las entradas de kT .
2.2.3.1 Formas de asignar el refuerzo r El refuerzo r es una cantidad que debe ser asignada considerando tres aspectos:
1- Los caminos deben recibir un incremento en su selección de probabilidad, proporcional a su
bondad o a cuán buenos son.
2- La medida en que un camino es bueno, es una medida relativa que depende de las
condiciones del tráfico y puede ser estimada por el modelo kM .
3- Es importante no seguir todas las fluctuaciones del tráfico. Esto es fundamental ya que las
oscilaciones no controladas en las tablas de enrutamiento constituyen uno de los principales
problemas en el enrutamiento de los caminos más cortos (Z. Wang and Crowcroft, 2002).
Existen dos formas de asignar el refuerzo r :
Capítulo II: AntNet y su aplicación al MMS
32
• r = constante; los caminos descubiertos son recompensados de la misma manera
independientemente del resultado del viaje de las hormigas. En este caso, lo que es trabajoso
es el mecanismo de reforzamiento implícito debido a la diferenciación del tiempo de arribo de
las hormigas. Hormigas viajando a través de caminos más cortos llegan a su destino con
menor tiempo que las otras hormigas. Debido a esto, los caminos seguidos por ellas recibirán
mayor recompensa. El problema en este enfoque yace en el hecho de que aunque las
hormigas que siguen los caminos más largos van a llegar atrasadas, nunca van a tener el
mismo efecto en las tablas de enrutamiento que las que siguen un camino más corto.
• r variable; este enfoque más elaborado define r como una función del tiempo t de viaje de
las hormigas y de los parámetros del modelo estadístico local kM . Se han probado varias
alternativas utilizando diferentes combinaciones lineales, hiperbólicas y cuadráticas de t y
valores de kM . Se utiliza la siguiente formula en el calculo de r (Gianni Di Caro and Dorigo,
1998):
( ) ( )⎟⎟⎠
⎞⎜⎜⎝
⎛
−+−−
+⎟⎠⎞
⎜⎝⎛=
infinfsup
infsup21 ITII
IIc
TWcr best
(8)
En la ecuación (2), bestW es el mejor tiempo de viaje experimentado por las hormigas viajando
hacia el destino d sobre la última ventana de observación W . El tamaño máximo de la
ventana (el número máximo de muestras consideradas antes de reiniciar el valor bestW ) es
asignado en base al coeficiente η de la ecuación (1). η pesa el número de muestras efectivas
dando una contribución al valor estimado de μ , definiendo un orden del movimiento
exponencial de la ventana. Para el número de muestras efectivas:
( )ncW 5
max= 1<c (9)
supI e infI son estimados convenientes de los límites apropiados de un estimado de confianza
para μ . infI toma el valor de bestW mientras que:
⎟⎟⎠
⎞⎜⎜⎝
⎛+=
WzI σμsup (10)
γ−=
11z (11)
En esta fórmula γ da el nivel de confianza seleccionado. Existe un nivel de arbitrariedad en el
cálculo del intervalo de confianza porque se coloca de forma asimétrica y los parámetros μ y
σ no son estimados aritméticos.
Capítulo II: AntNet y su aplicación al MMS
33
De todas formas, lo que se necesita es un estimado rápido del valor del promedio y de la
dispersión de los valores.
El primer término de la ecuación (8) evalúa la proporción entre el tiempo de viaje actual y el
mejor tiempo observado por la ventana de observación actual. Este término es corregido por
el segundo, que evalúa cuán lejos está T de infI en relación con la extensión del intervalo de
confianza, considerando la estabilidad en el último tiempo de viaje. Los coeficientes 1c y 2c
pesan la importancia de cada término. El primer término es el más importante mientras que el
segundo juega el rol de la corrección. Aquí 7.01 =c y 3.02 =c . Se observa que 2c no debe ser
mayor que 0.35 ya que el rendimiento se degrada apreciablemente. El comportamiento del
algoritmo se mantiene estable para valores de 2c en el rango de 0.15 a 0.35, pero si los
valores de 2c son menores que 0.15 se degrada el rendimiento. El algoritmo es robusto ante
los cambios de γ , lo que define el nivel de confianza: variando el nivel de confianza en el
rango del 75 al 95% el rendimiento cambia poco. Los mejores resultados se obtienen con
valores entre el 75 y el 80%. Se observa que el algoritmo es robusto con respecto a la
configuración interna de sus parámetros.
El valor r es transformado mediante una función ( )xs 4:
( ) ( ] +
−
∈∈⎟⎟⎠
⎞⎜⎜⎝
⎛⎟⎟⎠
⎞⎜⎜⎝
⎛+= Rax
Nxaxs
k
,1,0,exp11
(12)
( )( )1s
rsr ← (13)
Esto permite al sistema ser más sensible a los buenos valores de r (que son los altos),
mientras tiene la tendencia de saturar las recompensas de los valores malos de T (cercanos
a 0). La escala está comprimida para valores bajos y expandida para la parte superior. De
esta forma se hace énfasis en los buenos resultados, mientras que los malos juegan un rol
menor.
El coeficiente kN
a determina una dependencia paramétrica del valor de refuerzo y el
número kN de vecinos del nodo reforzado k . Esto significa que a mayor número de vecinos
el refuerzo se incrementa. La razón de hacer esto es que se quiere tener un efecto similar,
fuerte, de los buenos resultados de las tablas de enrutamiento probabilísticas,
independientemente del número de vecinos.
4 En la literatura, la función s(x) es conocida como función squash.
Capítulo II: AntNet y su aplicación al MMS
34
2.2.4 Pseudocódigo del AntNet Tomando en consideración las características y descripción del algoritmo AntNet presentadas en
epígrafes anteriores, se plantea a continuación una propuesta de pseudocódigo del mismo:
t := Tiempo Actual;
tend := Tiempo que dura la simulación;
Δt := Intervalo de tiempo entre las generaciones de hormigas;
Para cada Nodo
M = Modelo de tráfico local;
T = Tabla de enrutamiento del nodo;
Mientras (t ≤ tend)
en_paralelo
si (t mod Δt = 0)
nodo_destino:= Seleccionar_Nodo_Destino(Distribución_de_Trafico);
Enviar_Hormiga_Fordward (nodo_destino, nodo_origen);
Para cada Hormiga_Fordward_Activa (nodo_destino, nodo_origen, nodo_actual)
Mientras (nodo_actual ≠ nodo_destino)
proximo_nodo := Seleccionar_Proximo_Nodo(nodo_destino, nodo_actual, T);
Escribir_Informacion_Pila(proximo_nodo, tiempo);
nodo_actual := proximo_nodo;
Enviar_Hormiga_Backward (nodo_destino, nodo_origen, pila);
Morir();
Para cada Hormiga_Backward_Activa (nodo_destino, nodo_origen, nodo_actual)
Mientras (nodo_actual ≠ nodo_origen)
proximo_nodo := Extraer_de_Pila();
Actualizar_Modelo_Trafico(M, nodo_origen, nodo_actual, pila);
refuerzo := Obtener_Refuerzo(nodo_origen, nodo_actual, pila, M);
Actualizar_Tabla_de_Enrutamiento(T, nodo_origen, nodo_actual, refuerzo);
Morir();
Note que en el pseudocódigo anterior se establecen dos momentos fundamentales correspondientes
al recorrido de las hormigas forward y al recorrido de las hormigas backward como procesos que,
además de la estructura típica de los nodos, definen explícitamente el funcionamiento del algoritmo.
Capítulo II: AntNet y su aplicación al MMS
35
2.3 Aplicación del algoritmo AntNet a la solución del problema MMS
La solución del problema MMS utilizando un algoritmo de la metaheurística ACO, en particular
AntNet, supone que las características del problema sean modeladas a partir del funcionamiento de
dicho algoritmo sin pérdida de generalidad. Con estas restricciones, en los epígrafes que continúan
se realizan las propuestas que contribuyen a la adaptación del AntNet para solucionar el problema
planteado.
2.3.1 Representación gráfica del problema MMS Para resolver e interpretar la solución de los problemas del mundo real se debe encontrar una forma
de abstraerlos para poder abordarlos. A esta forma de abstracción se denomina representación de la
solución.
Para representar gráficamente la solución de un problema MMS y poder adaptar esta representación
a las características del algoritmo AntNet, se utiliza un grafo ( )AMG ,= que se construye siguiendo
los pasos que se describen a continuación:
1. Colocar un conjunto M de nodos que representan los posibles pasos de producción ( i : nivel
de producción, j : máquina).
Figura 4: Representación de la solución (máquinas y pasos de producción)
2. Añadir los tiempos de procesamiento de cada paso de producción, en la parte superior de
cada nodo.
Capítulo II: AntNet y su aplicación al MMS
36
Figura 5: Representación de la solución (con tiempos de procesamiento)
3. Agregar dos nodos: primero y último, representando el inicio y final del grafo. Estas
operaciones ficticias permiten definir el nodo inicial y final de todos los caminos. Entonces, la
producción comienza con el paso de producción inM y termina con el paso de producción
outM . Estos dos nodos no pertenecen a ningún paso de producción y tienen un tiempo nulo de
procesamiento asociado.
Figura 6: Representación de la solución (con nodos inM y outM )
Capítulo II: AntNet y su aplicación al MMS
37
4. Por último, colocar el conjunto de arcos dirigidos que simbolizan los posibles caminos de
producción a seguir por cada producto. Cada arco representa el proceso de traslado de una
pieza de material de una máquina a otra, por lo que se le añade el tiempo de esta operación.
Los arcos que unen los pasos de producción simbólicos inicial ( inM ) y final ( outM ) con las
máquinas del primer y el último nivel de producción respectivamente, se considera que tienen
tiempo igual a cero.
Figura 7: Representación de la solución (con caminos de producción)
2.3.2 Representación de la secuenciación de tareas El diagrama de Gantt o carta Gantt es una popular herramienta gráfica cuyo objetivo es el de mostrar
el tiempo de dedicación previsto para diferentes tareas o actividades a lo largo de un tiempo total
determinado. A pesar de que, en principio, el diagrama de Gantt no indica las relaciones existentes
entre actividades, la posición de cada tarea a lo largo del tiempo hace que se puedan identificar
dichas relaciones e interdependencias.
La secuenciación de tareas puede ser representada utilizando un diagrama de Gantt. Estos
diagramas pueden ser orientados a máquinas (a) u orientados a trabajos (b) como se muestra en la
Figura 8.
Capítulo II: AntNet y su aplicación al MMS
38
Figura 8: Representación de la secuenciación de tareas
La secuenciación de tareas del problema que se ha mostrado en la Figura 7, puede ser representada
como en la Figura 9 orientada a los trabajos ( nP es el conjunto de trabajos a realizar, donde
{ }nn ,...,2,1∈ ).
Figura 9: Representación de la secuenciación orientada a los trabajos
2.3.3 Ejemplo de representación gráfica de la solución del problema MMS A continuación se construye el grafo de representación de la solución siguiendo los pasos descritos
en el epígrafe 2.3.1. En este caso, el problema MMS se describe a través de 20 máquinas ubicadas
en 5 niveles de producción.
Primeramente se colocan los nodos que representan los posibles pasos de producción a seguir por
los trabajos.
Capítulo II: AntNet y su aplicación al MMS
39
Figura 10: Máquinas que intervienen en el proceso de producción
Cada máquina tiene asociado el tiempo que demora en procesar una pieza de material, lo cual se
puede tabular como sigue:
Tabla 2: Tiempos de producción de las máquinas Pasos de producción
1 2 3 4 5
1 10 20 19 1 33
2 24 40 22 30 15
3 32 37 32 15 23 Máq
uina
s
4 39 29 7 14 6
A cada nodo se le coloca encima, el tiempo de producción. Este es el tiempo de producción de cada
máquina. Es independiente en cada una de ellas y coincide con el descrito en la tabla anterior.
Capítulo II: AntNet y su aplicación al MMS
40
Figura 11: Máquinas con el tiempo de producción asociado
Se agregan los nodos ficticios inM y outM con tiempos de producción asociados con valor 0.
Figura 12: Nodos ficticios con valor 0
Para cada paso de producción, excepto el último, se conoce el tiempo que demora cada máquina que
pertenece a éste, en pasar el material procesado a cada una de las máquinas del siguiente paso de
producción.
Capítulo II: AntNet y su aplicación al MMS
41
Tabla 3: Paso de producción 1 M2,1 M2,2 M2,3 M2,4
M1,1 16 8 33 33
M1,2 9 12 8 24
M1,3 18 29 21 14
M1,4 29 12 3 32
Tabla 4: Paso de producción 2 M3,1 M3,2 M3,3 M3,4
M2,1 37 35 25 30
M2,2 17 21 5 14
M2,3 40 27 12 28
M2,4 6 15 10 18
Tabla 5: Paso de producción 3
Tabla 6: Paso de producción 4 M5,1 M5,2 M5,3 M5,4
M4,1 25 20 17 24
M4,2 22 38 6 34
M4,3 24 28 2 36
M4,4 27 22 30 5
Al grafo se adicionan el conjunto de arcos y el tiempo asociado, que representan los caminos y los
tiempos en los que las máquinas envían los materiales procesados a sus máquinas sucesoras
respectivamente. Para evitar la sobrecarga de arcos y tiempos, en la Figura 13 solamente se han
colocado los tiempos asociados al enviar la pieza de material procesada por la máquina 1,1M ,
después que termina su paso de producción, a las máquinas 1,2M y 2,2M , que coinciden con 16 y 8
unidades de tiempo respectivamente.
M4,1 M4,2 M4,3 M4,4
M3,1 24 17 6 10
M3,2 6 35 17 9
M3,3 31 15 24 40
M3,4 7 17 28 32
Capítulo II: AntNet y su aplicación al MMS
42
Los arcos que van desde el nodo inM hasta las máquinas que pertenecen al primer nivel de
producción y los que van desde las máquinas del último nivel de producción hasta outM tienen un
tiempo asociado igual a cero.
Figura 13: Proceso de producción con arcos y tiempos asociados
Considerando las restricciones inherentes al problema anteriormente planteadas y suponiendo que se
debe realizar un número n de trabajos, el problema consiste en encontrar el camino óptimo para
cada uno de ellos, de forma tal que se minimice el tiempo de producción.
En este ejemplo, un trabajo puede ser realizado por cuatro máquinas distintas en cada uno de los
niveles de producción. Teniendo en cuenta que cada trabajo debe pasar por cada uno de los niveles
de producción, existen 4*4*4*4*4 = 45 = 1024 formas en las que un trabajo puede realizarse. De esta
manera, si se desean realizar n trabajos, en este problema hay 1024 formas de realizar cada uno de
ellos, por lo que existirían n *1024 caminos distintos a seguir por los trabajos para ser realizados.
Generalizando, si tenemos n trabajos, r niveles de producción y m máquinas en cada nivel de
producción (en todos los niveles de producción existe el mismo número de máquinas), el número de
caminos a explorar para encontrar la mejor solución es rmn ∗ . Imaginando una gran fábrica donde a
diario son producidos millones de productos y el número de máquinas que intervienen en la
producción es relativamente elevado, realmente el espacio de búsqueda del camino que minimiza el
tiempo de producción para cada uno de los productos sería inmenso.
Continuando con el ejemplo, se supone que se tienen n=3 productos a confeccionar. Utilizando una
estrategia de selección del mejor tiempo en cada paso, se puede dar solución a este problema de la
Capítulo II: AntNet y su aplicación al MMS
43
siguiente forma, representada tanto en el diagrama de Gantt, como en el grafo (Figura 14 y Figura
15).
Figura 14: Representación de la secuenciación de tareas del ejemplo
Figura 15: Representación de la solución del ejemplo
Esta solución tiene como tiempo total de fabricación 171 unidades de tiempo ¿Será éste el tiempo
mínimo de fabricación? Esta es solamente una de las 3*1024 = 3072 posibles soluciones a este
problema específico. Obtener cada una de las 3071 restantes de forma manual es un trabajo tedioso.
De ahí la importancia de encontrar un método que permita obtener la mejor solución posible.
Capítulo II: AntNet y su aplicación al MMS
44
2.3.4 Adaptación del algoritmo AntNet al problema MMS La representación del problema MMS está dada por un grafo donde cada nodo se refiere a una
máquina involucrada en la producción (ver Figura 7). Se considera que este grafo es la red por la cual
van a transitar los paquetes que en este caso serán los productos a confeccionar. En esta adaptación
del algoritmo se considera que cada hormiga representa un producto a confeccionar (número de
hormigas = número de productos). Cada producto tiene como nodo origen a inM y como nodo
destino outM .
En cada nodo existe una tabla de enrutamiento kT en la que están almacenados los valores de
probabilidad correspondientes a los nodos vecinos; es decir, solamente los valores de las máquinas
que intervienen en el próximo paso de producción (Figura 16).Las entradas de probabilidad de la
tabla de enrutamiento se calculan según la fórmula (4).
Además, en cada nodo existe un modelo de tráfico ( )dddk WM ,,σμ que refleja las estadísticas de
viaje desde este nodo hacia el único destino d , en este caso outM .
Cada hormiga (producto) tiene asociada una estructura pila, que contiene los nodos visitados por ella
y los tiempos en llegar a cada uno de ellos.
Figura 16: Estructura de un nodo del grafo que representa el problema MMS
El proceso de producción comienza enviando cada hormiga forward desde el único nodo inicial inM
hasta el único nodo destino outM (Figura 17). Las hormigas eligen la próxima máquina a visitar según
Capítulo II: AntNet y su aplicación al MMS
45
las probabilidades almacenadas en la tabla de enrutamiento del nodo en el que se encuentran. Es
elegida como próxima máquina a moverse, aquella cuya probabilidad sea mayor. Las máquinas
visitadas por cada hormiga son introducidas en su pila de nodos visitados, conjuntamente con los
tiempos asociados a cada una de ellas5. Este proceso se repite hasta que cada una de las hormigas
llegue a su nodo destino outM . A medida que las hormigas forward llegan a su destino, imprimen el
tiempo del viaje que hicieron y traspasan la información recogida en su camino a las hormigas
backward que son enviadas hacia el nodo origen inM siguiendo el mismo camino que las hormigas
forward, pero en orden inverso y actualizando paso a paso el Modelo de tráfico y la Tabla de
enrutamiento de cada nodo.
Figura 17: Funcionamiento de AntNet (movimiento de las hormigas)
El algoritmo termina cuando cada uno de los trabajos ha sido procesado completamente, es decir,
cuando todas las hormigas han llegado a su destino. El tiempo de producción es el mayor tiempo de
viaje experimentado por una hormiga.
5 Se debe tener en cuenta que en el proceso se toman en consideración tres tiempos distintos: el tiempo de procesamiento
de la máquina, el tiempo que se demora la máquina en enviar el trabajo a la máquina sucesora y el tiempo en cola de la
máquina sucesora.
Capítulo II: AntNet y su aplicación al MMS
46
2.3.4.1 Pseudocódigo del algoritmo AntNet aplicado a MMS Pseudocódigo AntNet para MMS
n = Número de trabajos; // Número de hormigas
l = Null; //Lista de nodos ordenada por tiempo
Para cada Nodo
M = Modelo de tráfico local;
T = Tabla de enrutamiento del nodo;
Para cada n
l = Enviar_Hormiga_Forward (n, nodo_destino, nodo_origen);
Mientras (l ≠ Null)
nodo_actual = Extraer_Nodo(l);
Si (nodo_actual = nodo_destino)
Imprimir_Camino(pila);
Enviar_Hormiga_Backward (nodo_destino, nodo_origen, pila);
Morir();
En caso contrario
próximo_nodo := Seleccionar_Proximo_Nodo(nodo_destino, nodo_actual, T);
Escribir_Informacion_Pila(proximo_nodo, tiempo);
Insertar_Nodo(próximo_nodo, l);
End; //Mientras
End; // Pseudocódigo AntNet para MMS
Las líneas que siguen, representan el pseudocódigo del procedimiento Enviar_Hormiga_Backward
invocado en el algoritmo AntNet para MMS.
Enviar_Hormiga_Backward (nodo_destino, nodo_origen, pila)
nodo_actual = pila.Top();
Mientras (nodo_actual ≠ nodo_origen)
proximo_nodo := Extraer_de_Pila();
Actualizar_Modelo_Trafico(M, nodo_origen, nodo_actual, pila);
refuerzo := Obtener_Refuerzo(nodo_origen, nodo_actual, pila, M);
Actualizar_Tabla_de_Enrutamiento(T, nodo_origen, nodo_actual, refuerzo);
Morir();
Capítulo II: AntNet y su aplicación al MMS
47
End; //Mientras
End; //Procedimiento Enviar_Hormiga_Backward
Si se compara el pseudocódigo anterior con el presentado en el epígrafe 2.2.4 puede observarse que:
• El lanzamiento de las hormigas forward se corresponde en cantidad, con el número de
trabajos a ser procesados, cuestión esta que difiere del algoritmo original, donde son lanzadas
cada cierto intervalo de tiempo, durante un tiempo fijo donde se simula el enrutamiento en
redes de computadoras.
• La medida de corrección heurística nl es calculada en función de tres tiempos distintos: el
tiempo de procesamiento de la máquina, el tiempo que se demora la máquina en enviar el
trabajo a la máquina sucesora y el tiempo en cola de la máquina sucesora. En el algoritmo
original representa el número de bits esperando a ser enviados.
Además, el procedimiento Obtener_Refuerzo calcula el refuerzo según las variantes expuestas en el
epígrafe 2.2.3.1.
Se analiza el cálculo de la complejidad del algoritmo de la siguiente manera:
En cada nodo se debe calcular las probabilidades de seleccionar un nodo vecino, lo cual es un O( kN )
ya que es calculada para cada nodo que pertenece al conjunto de nodos vecinos kN . La hormiga
almacena el identificador del nodo en el que se encuentra y el tiempo en el cual arribó, lo cual es un
O(1). Luego va a la cola del nodo elegido como próximo nodo; esto es un O(1). Denotemos M al
número máximo de saltos que debe dar una hormiga para llegar a su destino, en este problema
especifico M sería el número de niveles de producción. Por lo que la complejidad de una hormiga
forward de viajar de su nodo fuente a su nodo destino es O( M kN ).
La complejidad de una hormiga backward de viajar hasta el nodo fuente desde el nodo destino es
también un O( M kN ). Esta se calcula de forma similar ya que los procesos de extraer el próximo
nodo de la pila y de moverse a la siguiente maquina son un O(1) y las hormigas backward actualizan
las tablas de enrutamiento de los kN vecinos y lo hacen en los M saltos correspondientes a cada
nivel de producción.
Si son generadas p hormigas, en este caso correspondientes al número de trabajos a ser
procesados, entonces la complejidad de AntNet para las hormigas forward y backward es
O( p M kN ).
Capítulo II: AntNet y su aplicación al MMS
48
El número máximo de caminos que puede seguir una hormiga para este problema en específico es
equivalente al número de máquinas de cada paso de producción elevado al número de niveles de
producción, que se denota como mc .
Entonces la complejidad de AntNet en el peor de los casos para encontrar el camino mas corto es
O( mc M kN ).
La complejidad de que p hormigas forward encuentren un camino mínimo hacia su destino es
O( p mc M kN ).
2.4 Conclusiones parciales La adaptación del algoritmo AntNet para solucionar el problema MMS ha sido posible a partir de:
• La modelación de la representación de la solución del problema a través de un grafo.
• La representación de los productos mediante hormigas.
• La adaptación del modelo de tráfico y la tabla de enrutamiento de cada nodo en
correspondencia con las restricciones del problema MMS.
• La obtención de soluciones mediante el camino seguido por las hormigas forward y la
actualización de las estructuras incluidas en los nodos por las hormigas backward que
asegura un proceso de retroalimentación y comunicación indirecta de las hormigas.
49
Capítulo III: Análisis de los resultados
3.1 Introducción Para efectuar el análisis de los resultados obtenidos, en este capítulo se propone primeramente, una
forma de representar los datos que intervienen en el problema MMS. Partiendo de esta notación para
introducir los datos al algoritmo implementado, se realizan ejecuciones del mismo para diferentes
cantidades de trabajos (hormigas) y distintos valores de los parámetros involucrados en el algoritmo.
Utilizando los resultados obtenidos se realizan pruebas analíticas y estadísticas para la comparación
de los mismos.
3.2 Definición de la forma de representación de instancias del MMS En la literatura revisada, el único juego de datos del problema de secuenciación en múltiples
máquinas (Brauer and Weib, 2006) es el que aparece en la tabla del ejemplo que se ha desarrollado
en este trabajo (ver Tabla 1). La información que brinda esta tabla se organizó en un archivo texto
para la ejecución del algoritmo, como muestra la Figura 18.
Figura 18: Archivo texto con los datos del problema MMS
La primera fila brinda la información de que existen 5 pasos de producción y que en cada uno de ellos
hay 4 máquinas. En el resto de las filas, la primera columna representa el tiempo de producción de la
máquina en cuestión y las siguientes columnas los tiempos que se demora dicha máquina en enviar
el trabajo a sus respectivas máquinas sucesoras. Nótese que las máquinas correspondientes al
último paso de producción no tienen tiempo de envío.
Capítulo III: Análisis de los resultados
50
No se ha encontrado en la literatura una estructura específica para organizar estos datos del MMS,
por lo que se propone la estructura dada anteriormente, que permite entrar los datos al algoritmo
AntNet de forma estándar y probarlo con nuevos conjuntos de datos.
3.3 Resultados Experimentales Todos los resultados experimentales obtenidos en este epígrafe fueron desarrollados en una
computadora P4 Intel a 3.0 GHz de velocidad, 1024 MB de RAM, con sistema operativo Windows
XP. La implementación del algoritmo se realizó en el lenguaje C++, para lo cual se utilizó el Microsoft
Visual C++ 2008 como entorno de desarrollo.
En el funcionamiento del algoritmo AntNet intervienen parámetros que pueden tomar diferentes
valores:
• η pesa el número de muestras que afectan el cálculo de las medias y las varianzas (1) (2). Se
toma 1.0=η para la ejecución del algoritmo.
• En el cálculo de las probabilidades de la tabla de enrutamiento (4) interviene el parámetroα ;
este se prueba con los valores 0.2, 0.3, 0.4 y 0.5.
Se desarrollaron tres variantes del algoritmo AntNet, tomando el refuerzo como el parámetro que
marca la diferencia:
• Variante 1: refuerzo igual a cero.
• Variante 2: refuerzo constante ( )r . Para las pruebas del algoritmo se toman los valores 0.05,
0.1 y 0.2.
• Variante 3: refuerzo calculado según la fórmula (13). Para la cual es necesario obtener el
resultado de la fórmula (8) en la que intervienen parámetros que varían en la ejecución del
algoritmo:
o En el cálculo de z (11) interviene el parámetro γ que toma los valores 0.75, 0.8 y
0.85.
o En el cálculo de W (9) interviene el parámetro c que debe estar entre 0 y 1. Se
prueba para los valores 0.3, 0.6 y 0.9.
o En el cálculo de la función squash (12) interviene el parámetro a , que debe ser
seleccionado de forma tal que sea mayor que el número de vecinos del nodo al cual se
le está calculando el refuerzo. Los valores con los que se prueba este parámetro es
número de vecinos +1 y número de vecinos +100.
AntNet fue ejecutado con todas las posibles combinaciones de los parámetros anteriormente
descritos. Los resultados que se muestran a continuación pertenecen, en todos los casos, a los
mejores obtenidos en cada una de las variantes de algoritmo.
Capítulo III: Análisis de los resultados
51
En la Figura 7 se muestran aquellos que se obtienen de aplicar el algoritmo a los datos conocidos
para 50 y 500 productos.
“SMAL” es la solución reportada por la aplicación del Multi Agent Learning al problema. Este método
de solución es el único encontrado en la bibliografía consultada que resuelve el problema del MMS.
En el mismo, cada máquina es considerada un agente inteligente autónomo y cada pieza de material,
un recurso usado por los agentes. La inteligencia y autonomía de la máquina se manifiesta en su
habilidad de aprender a cuál de sus máquinas sucesoras debe entregar la pieza de material con el
objetivo de minimizar el tiempo de producción; lo cual se basa en un estimado del tiempo que resta
para completar el producto(Brauer and Weib, 2006).
“AN” es el resultado del algoritmo AntNet para un refuerzo igual a cero, “AN-rcte” la solución obtenida
por el algoritmo AntNet utilizando un refuerzo constante distinto de cero y “AN-r” la solución
encontrada por el algoritmo AntNet utilizando un refuerzo calculado en función del tiempo de viaje de
las hormigas.
Tabla 7: Resultados de la aplicación del algoritmo para 50 y 500 hormigas utilizando SMAL Número de Productos SMAL AN AN-rcte AN-r
50 470 362 401 486 500 3400 1506 1612 1540
En la Figura 19 puede observarse que los resultados obtenidos por la aplicación de los algoritmos
descritos anteriormente son semejantes, cuando se realizan 50 trabajos. Una mejoría se presenta con
la variante AntNet con refuerzo igual a cero.
Comparación de soluciones (50 trabajos)
470
362401
486
0
100
200
300
400
500
600
MAL AN (r=0) AN (r constante) AN (r calculable)
Algoritmos
Tiem
po
Figura 19: Comparación de soluciones para 50 trabajos
Capítulo III: Análisis de los resultados
52
Sin embargo, si se observa la Figura 20, puede notarse que para 500 trabajos existe una mejoría
notable al utilizar AntNet en su variante con refuerzo igual a cero, aunque con refuerzo calculable se
obtienen resultados bastante similares.
Comparación de soluciones (500 trabajos)
3400
1506 1612 1540
0500
1000150020002500300035004000
MAL AN (r=0) AN (r constante) AN (r calculable)
Algoritmos
Tiem
po
Figura 20: Comparación de soluciones para 500 trabajos
La Tabla 8 muestra los resultados obtenidos por AntNet modificando el número de trabajos a
procesar.
Tabla 8: Resultados obtenidos por AntNet modificando el número de trabajos Número de Productos AN AN-rcte AN-r
10 216 210 280 20 263 278 311 30 291 294 311 40 333 337 452 50 362 401 486
100 524 563 548 150 643 722 696 200 774 847 790 250 902 1003 913 300 1016 1107 1059 350 1153 1239 1174 400 1260 1348 1286 450 1381 1490 1392 500 1506 1612 1540 550 1226 1774 1653
Capítulo III: Análisis de los resultados
53
Un gráfico de líneas como el de la Figura 21, permite realizar observaciones sobre el comportamiento
de los algoritmos. Nótese que este comportamiento presenta diferencias antes y después de los 50
trabajos.
Resultados de AntNet (refuerzo)
0200400600800
100012001400160018002000
10 20 30 40 50 100 150 200 250 300 350 400 450 500 550
Número de Trabajos
Tiem
po
r = 0 r constante r calculado
Figura 21: Resultados de AntNet Esto ha permitido afirmar que, aún cuando el AntNet con refuerzo igual a cero ofrece los mejores
resultados, el AntNet con refuerzo calculable mejora su comportamiento para muestras mayores que
100 (Figura 22, Figura 23).
Capítulo III: Análisis de los resultados
54
Resultados de AntNet (10-50 Trabajos)
0
100
200
300
400
500
600
10 20 30 40 50
Trabajos
Tiem
po
r = 0 r constante r calculado
Figura 22: Resultados de AntNet hasta 50 trabajos
Resultados AntNet (100-550 Trabajos)
0200400600800
100012001400160018002000
100 150 200 250 300 350 400 450 500 550
Trabajos
Tiem
po
r = 0 r constante r calculado
Figura 23: Resultados de AntNet con más de 50 trabajos
3.4 Técnicas estadísticas para el análisis de los resultados Un análisis a simple vista no es suficiente para probar que existen diferencias entre los resultados
expuestos en el epígrafe anterior, por lo que se utilizaron técnicas estadísticas para validar los
resultados. Este análisis se realizó utilizando el paquete estadístico SPSS versión 11.0.
Capítulo III: Análisis de los resultados
55
En (José A. Moreno Pérez et al., 2006) se propone el uso de pruebas no paramétricas sencillas,
seguras y robustas para la comparación estadística de metaheuristicas sobre un conjunto de
instancias: la prueba de los rangos con signo de Wilcoxon (Test de Wilcoxon) para la comparación de
dos algoritmos y, para la comparación de más de dos algoritmos, la prueba de Friedman (Test de
Friedman) .
Por no disponer de datos suficientes, a los resultados expuestos en la Tabla 7 no se le pueden aplicar
pruebas estadísticas, aunque se pueden apreciar diferencias entre los algoritmos, ya mencionadas
anteriormente.
A los resultados expuestos en la Tabla 8 se les aplicó un Test de Friedman cuya significación resulta
0.000, menor que 0.05. Esto demuestra, como se observa en la Tabla 9, que existen diferencias
significativas entre los algoritmos comparados.
Tabla 9: Resultados del Test de Friedman
N 15Chi-Square 20.133Df 2Asymp. Sig. .000
Se aplicó el Test de Wilcoxon a los mismos datos, para observar entre cuáles de los algoritmos
existen estas diferencias. Este test evalúa los algoritmos por pares como se observa en la Tabla 10,
mostrando que las diferencias se encuentran entre las variantes de AntNet:
• Con refuerzo constante y con refuerzo igual a cero.
• Con refuerzo calculable y con refuerzo igual a cero.
Siendo superiores los resultados obtenidos para la variante con refuerzo igual a cero.
Tabla 10: Resultados del Test de Wilcoxon
ANRCONST -
ANSINR ANRCALC -
ANSINR ANRCALC - ANRCONST
Z -3.238(a) -3.408(a) -.852(b) Asymp. Sig. (2-tailed) .001 .001 .394
a Based on negative ranks. b Based on positive ranks.
En la Figura 22 y la Figura 23 del epígrafe anterior se observa que a partir de los resultados obtenidos
para 100 trabajos, el comportamiento de los algoritmos es diferente. Se decide entonces adicionar a
la prueba una variable Grupo para evaluar lo observado (Tabla 11).
Capítulo III: Análisis de los resultados
56
Tabla 11: División en grupos de los resultados obtenidos Grupo Número de Productos AN AN-rcte AN-r
1 10 216 210 280 1 20 263 278 311 1 30 291 294 311 1 40 333 337 452 1 50 362 401 486 2 100 524 563 548 2 150 643 722 696 2 200 774 847 790 2 250 902 1003 913 2 300 1016 1107 1059 2 350 1153 1239 1174 2 400 1260 1348 1286 2 450 1381 1490 1392 2 500 1506 1612 1540 2 550 1226 1774 1653
Luego, se dividieron los datos del fichero según la variable Grupo que fue definida anteriormente y se
aplicó el Test de Wilcoxon a cada grupo por separado para ver si existen diferencias entre los
algoritmos según el número de trabajos que procesan (Tabla 12).
Tabla 12: Resultados de Test de Wilcoxon para el Grupo 1 (10-50 trabajos)
ANRCONST -
ANSINR ANRCALC -
ANSINR ANRCALC - ANRCONST
Z -1.214(a) -2.023(a) -2.023(a) Asymp. Sig. (2-tailed) .225 .043 .043
a Based on negative ranks.
Para el Grupo 1 el Test muestra que aunque la significación para los dos últimos casos es menor que
0.05, el valor 0.043 no es lo suficientemente bueno como para afirmar que existen diferencias entre
los algoritmos.
Sin embargo, según la
Tabla 13 para el Grupo 2, la significación del Test muestra que para cada par de algoritmos, a partir
de los 100 trabajos, existen diferencias significativas.
Capítulo III: Análisis de los resultados
57
Tabla 13: Resultados del Test de Wilcoxon para el Grupo 2 (100-550)
ANRCONST –
ANR=0 ANRCALC –
ANR=0 ANRCALC - ANRCONST
Z -2.803(a) -2.805(a) -2.803(b) Asymp. Sig. (2-tailed) .005 .005 .005
a Based on negative ranks. b Based on positive ranks.
3.4.1 Análisis estadístico de los resultados obtenidos utilizando el parámetro α . Además de los resultados analizados por la aplicación del AntNet para las distintas variantes de
refuerzo, se realizó un análisis estadístico para comparar los resultados obtenidos con cada una de
las variantes utilizando la variación del parámetro α con los valores 0.2, 0.3, 0.4 y 0.5 recomendados
en la literatura.
En la Tabla 14 se muestran los resultados obtenidos al ejecutar el algoritmo AntNet con un refuerzo
igual a cero utilizando distintos valores para el parámetro α , que interviene en la fórmula (4) que
calcula las entradas probabilísticas de la tabla de enrutamiento.
Tabla 14: Resultados de AntNet con refuerzo igual a cero para distintos valores de α Número de Productos
AN α =0.2
AN α =0.3
AN α =0.4
AN α =0.5
10 247 232 216 21620 291 318 263 27430 310 306 291 29140 338 339 348 33350 399 378 365 362
100 599 526 530 524150 699 662 643 659200 799 783 774 781250 975 912 902 918300 1028 1016 1026 1045350 1154 1190 1165 1153400 1280 1260 1302 1285450 1425 1414 1415 1381500 1514 1540 1506 1507550 1659 1641 1639 1626
Capítulo III: Análisis de los resultados
58
A estos valores se le aplicó una prueba de Friedman obteniéndose como resultado una significación
0.003<0.05, lo que demuestra que existen diferencias entre los resultados obtenidos con los distintos
valores de α . Para determinar dónde se encuentran estas diferencias se aplicó una prueba de
Wilcoxon que muestra los resultados en la Tabla 15.
Tabla 15: Resultados del Test de Wilcoxon para AntNet ( r =0) con distintos valores de α AN03 - AN02 AN04 - AN02 AN05 - AN02 AN04 - AN03 AN05 - AN03 AN05 – AN04Z -1.477(a) -2.471(a) -2.955(a) -1.761(a) -1.961(a) -.315(a)Asymp. Sig. (2-tailed) .140 .013 .003 .078 .050 .753
a Based on positive ranks. De estos resultados se puede concluir que los mejores valores deα para AntNet con refuerzo igual a
cero son 0.4 y 0.5.
La Tabla 16 muestra los valores obtenidos al aplicar AntNet con un refuerzo constante distinto de
cero para los diferentes valores de α .
Tabla 16: Resultados de AntNet con refuerzo constante para distintos valores de α Número de Productos
AN-rcteα =0.2
AN-rcte α =0.3
AN-rcte α =0.4
AN-rcte α =0.5
10 237 227 230 21020 338 317 278 28430 449 344 294 32540 476 372 373 33750 521 437 422 401
100 692 650 597 563150 852 770 722 744200 1051 941 847 856250 1229 1066 1019 1003300 1313 1260 1123 1107350 1566 1344 1292 1239400 1645 1512 1429 1348450 1825 1606 1559 1490500 2020 1770 1642 1653550 2132 1852 1774 1778
Al hacer el mismo análisis anteriormente explicado los resultados de la prueba de Wilcoxon se
muestran en la Tabla 17.
Tabla 17: Resultados del Test de Wilcoxon para AntNet ( r const.) con distintos valores de α
RCONST03 - RCONST02
RCONSR04 - RCONST02
RCONS05 - RCONST02
RCONSR04 - RCONST03
RCONS05 - RCONSR04
Z -3.408(a) -3.408(a) -3.408(a) -3.238(a) -1.761(a)Asymp. Sig. (2-tailed) .001 .001 .001 .001 .078
a Based on positive ranks.
Capítulo III: Análisis de los resultados
59
Los resultados obtenidos evidencian en este caso, al igual que en el anterior, que los valores de
α para los que se obtienen mejores resultados son 0.4 y 0.5.
En laTabla 18 se muestran los resultados de AntNet para un refuerzo calculable a la cual se le aplica
el mismo procedimiento estadístico cuyos resultados se muestran en la Tabla 19.
Tabla 18: Resultados de AntNet con refuerzo calculable para distintos valores de α Número de Productos
AN-r α =0.2
AN-r α =0.3
AN-r α =0.4
AN-r α =0.5
10 324 286 287 28020 537 490 311 31830 550 429 503 38940 452 628 536 56150 547 755 486 516
100 661 660 548 619150 841 1176 771 696200 845 790 1297 835250 938 1036 997 913300 1081 1156 1137 1059350 1174 1241 1226 1255400 1425 1359 1314 1286450 1630 1527 1392 1480500 1784 1546 1540 1545550 1695 1665 1672 1653
Tabla 19: Resultados del Test de Wilcoxon para AntNet ( r calc.) con distintos valores de α
RCAL03 - RCAL02
RCAL04 - RCAL02
RCAL05 - RCAL02
RCAL04 - RCAL03
RCAL05 - RCAL03
RCAL05 - RCAL04
Z -.227(a) -1.193(b) -2.443(b) -1.874(b) -2.783(b) -.824(b)Asymp. Sig. (2-tailed) .820 .233 .015 .061 .005 .410a Based on negative ranks. b Based on positive ranks.
Estos resultados evidencian también que las mejores opciones de asignar α están dadas por los
valores 0.4 y 0.5.
Del análisis realizado sobre los resultados que se obtienen por la aplicación del AntNet con las
distintas variantes de refuerzo para los diferentes valores de α , se puede concluir que 0.4 ó 0.5 son
los mejores valores.
3.5 Conclusiones parciales Con la adaptación de AntNet para dar solución al problema MMS:
Capítulo III: Análisis de los resultados
60
• Se ha propuesto una estructura de archivo para representar los datos del problema que
proporcione al algoritmo una forma más cómoda de obtener el conjunto de datos necesarios
para su funcionamiento.
• En comparación con los resultados de los datos del problema localizados en la literatura, se
tiene que AntNet reporta mejores resultados cuando aumenta el número de trabajos en las
máquinas.
• Comparando las diferentes variantes propuestas, según el análisis del refuerzo se tiene que
para cantidades incrementales de trabajos, AntNet ofrece resultados siempre mejores para la
variante con refuerzo igual a cero.
• En la ejecución de las distintas variantes del algoritmo es importante tener en cuenta el valor
que se le asigna a los parámetros. Estos tienen una gran influencia en el resultado que se
obtendrá posteriormente, como es el caso del parámetro α que para valores iguales a 0.4 y
0.5 muestra los mejores resultados.
Conclusiones
61
Conclusiones La aplicación de las metaheurísticas basadas en colonias de hormigas ha reportado buenos
resultados en la solución de problemas de Optimización Combinatoria. En particular, en este trabajo
se seleccionó el algoritmo AntNet para solucionar un problema de este tipo; el de secuenciación en
múltiples máquinas.
La adaptación del algoritmo AntNet para solucionar el problema ha permitido:
• La modelación de la representación de la solución a través de un grafo con pesos significando
el proceso de producción y los tiempos asociados.
• La representación de los productos mediante hormigas y la correspondiente adaptación del
modelo de tráfico y la tabla de enrutamiento de cada nodo del grafo, en correspondencia con
las restricciones del problema MMS.
• La implementación del algoritmo y obtención de soluciones óptimas mediante el camino
seguido por las hormigas forward y la actualización de las estructuras incluidas en los nodos
por las hormigas backward, que asegura un proceso de retroalimentación y comunicación
indirecta de las hormigas.
Las soluciones obtenidas se han comprobado tanto analítica como estadísticamente obteniéndose los
resultados siguientes:
• En comparación con los resultados de los datos del problema localizados en la literatura,
AntNet reporta mejores resultados cuando aumenta el número de trabajos en las máquinas.
• Comparando las diferentes variantes propuestas, según el análisis del refuerzo se tiene que
para cantidades incrementales de trabajos, AntNet ofrece resultados siempre mejores para la
variante con refuerzo igual a cero, aunque par la variante con refuerzo calculable los
resultados mejoran a medida que aumenta el numero de productos.
• El estudio realizado acerca del comportamiento de los resultados de las variantes del AntNet
muestra que con los valores 0.4 y 0.5 para el parámetro α el algoritmo muestra los mejores
resultados.
Recomendaciones
62
Recomendaciones Este trabajo es pionero en el estudio del problema de secuenciación de múltiples máquinas por lo que
se hace necesario:
• Estudiar a profundidad el comportamiento del AntNet para los valores que pueden tomar los
parámetros que intervienen en el algoritmo ya que sólo se hizo este estudio para el parámetro
α .
• Ejecutar el algoritmo AntNet con un número mayor de productos para explorar su
comportamiento.
• Continuar la búsqueda de juegos de datos para este problema con los cuales se pueda probar
el algoritmo implementado.
AntNet ha sido la vía de solución elegida para solucionar el problema del MMS pero se pueden
investigar otras vías de solución que aporten buenos resultados.
63
Bibliografía ARANDA, J. B. (2000) Backtracking.
BRASSARD, G. & BRATLEY, P. (1996) Fundamentals of Algorithmics.
BRAUER, W. & WEIB, G. (2006) Multi-Machine Scheduling – A Multi-Agent Learning Approach.
BULLNHEIMER, B., HARTL, R. F. & STRAUSS, C. (1999) A new rank-based version of the Ant
System: A computational study. Central European Journal for Operations Research and
Economics, 7, 25-38.
CARO, G. D. (2004) Ant Colony Optimization and its Application to Adaptive Routing in
Telecommunication Networks.
CARO, G. D. & DORIGO, M. (1998) AntNet: distributed Stigmergetic Control for Comunication
Networks. Journal of Artificial Inteligence, 9, 317-365.
CASTRO, B. C. A. C. (2006) Ant Colonies using Arc Consistency Techniques for the Set Partitioning
Problem. LNAI 4183, 45-55.
CORDÓN, O., VIANA, I. F. D., HERRERA, F. & MORENO, L. (2000) New ACO model integrating
evolutionary computation concepts: The Best-Worst Ant System. IN M. DORIGO, M. M., Y T.
STÜTZLE (Ed. ANTS 2000. Université Libre de Bruxelles, Belgium.
DÍAZ, A., GLOVER, F., GHAZIRI, H. M., GONZALEZ, J. L., LAGUNA, M. & MOSCATO, P. (1996)
Optimización Heurística y Redes Neuronales, Madrid, Paraninfo.
DORIGO, G. D. C. A. M. (1998) Mobile Agents for Adaptive Routing. Proceedings of the 31st Hawaii
International Conference on System. Hawaii.
DORIGO, M. (1992) Optimization, Learning and Natural Algorithms. Dipartimento di Electronica. Italy,
Politecnico di Milano.
DORIGO, M. & GAMBARDELLA, L. M. (1997) Ant Colony System: A cooperative learning approach to
the traveling salesman problem. IEEE Transactions on Evolutionary Computation, 1, 53-66.
DORIGO, M., MANIEZZO, V. & COLORNI, A. (1991) The Ant System: An autocatalytic optimizing
process. Italy, Dipartimento di Electronica, Politecnico di Milano.
DORIGO M. AND LM. GAMBARDELLA (1997) Ant Colonies for the Traveling Salesman Problem.
BioSystems, 43, 73-81.
ENRÍQUEZ, E. T. (2007) Uso de una Colonia de Hormigas para resolver Problemas de Programación
de Horarios. LABORATORIO NACIONAL DE INFORMATICA AVANZADA A. C. Centro de
Enseñanza LANIA.
FEIGENBAUM, E. & FELDMAN, J. (1963) Computers and Thought. New York, McGraw-Hill.
GAMBARDELLA, L. M. & DORIGO, M. (2000) Ant Colony System hybridized with a new local search
for the sequential ordering problem. INFORMS Journal on computing 12, 237-255.
Bibliografía
64
GAMBARDELLA, L. M., TAILLARD, E. D. & AGAZZI, G. (1999a) MACS-VRPTW: A multiple ant
colony system for vehicle routing problems with time windows. New ideas in optimization.
GAMBARDELLA, L. M., TAILLARD, E. D. & DORIGO, M. (1999b) Ant colonies for the quadratic
assignment problem. Journal of the Operational Research Society, 50, 167-176.
GAREY, M. R. & JONSON, D. S. (1979) Computers and Intractability: A Guide to the Theory of NP-
Completeness.
GIANNI DI CARO & DORIGO, M. (1998) AntNet: Distributed Stigmergetic Control for Communications
Networks. Journal of Artificial Inteligence, 317-365.
GLOVER, F. (1977) Heuristics for Integer Programming Using Surrogate Constraints. Decision
Sciences, 8, 156-166.
GLOVER, F. (1986) Future Paths for Integer Programming and Links to Artifical Intelligence.
Computers and Operations Research, 13, 533–549.
GOIC, M. (1998) Programación Dinámica.
GOLDBERG, D. E. (1989) Genetic Algorithms in Search, Optimization, and Machine Learning,
Addison-Wesley.
GONZÁLEZ, J. J. S. (1996) Optimización combinatoria poliédrica: problemas de rutas-localización.
JIMÉNEZ, F. (1999) Vida Artificial.
JOSÉ A. MORENO PÉREZ, CLARA CAMPOS RODRÍGUEZ & LAGUNA, M. (2006) Sobre la
comparación de metaheurísticas mediante técnicas estadísticas no paramétricas.
JULIO BRITO SANTANA, C. C. R., FÉLIX C. GARCÍA LÓPEZ, M. G. T., BELÉN MELIÁN BATISTA,
J. A. M. P. & VEGA, J. M. M. (2004) Metaheurísticas: una revisión actualizada.
KENNEDY, J. & EBERHART, R. C. (1995) Particle swarm optimization. IN CENTER, I. S. (Ed. on
neural networks. Piscataway, NJ.
KIRKPATRICK, S., GELATT, D. & VECCHI, M. P. (1983) Optimization by Simulated Annealing.
Science,, 220 671-680.
M. DORIGO & STÜTZLE, T. (1999) ACO Algorithms for the Traveling Salesman Problem, EEUU,
John Wiley & Sons.
M. DORIGO AND L. M. GAMBARDELLA (1997) Ant Colony System: A cooperative learning approach
to the traveling salesman problem. IEEE Transactions on Evolutionary Computation, 1, 53-66.
M. DORIGO, V. M., AND A. COLORNI (1996) The Ant System: Optimization by a colony of
cooperating agents. IEEE Transactions on Systems Man, and Cybernetics, 26, 29-41.
MAILING, G. (2003) Algoritmos heurísticos y el problema de job shop scheduling. Facultad de
Ciencias Exactas y Naturales. Buenos Aires, Universidad de Buenos Aires.
MARCO DORIGO & GAMBARDELLA, L. M. (1998) A study of some properties of Ant-Q. Proceedings
of PPSN IV-Fourth International Conference on Parallel
Bibliografía
65
Problem Solving From Nature-Springer-Verlag, 656-665.
MARCO DORIGO, GIANNI DI CARO & GAMBARDELLA, L. M. (1999) Ant Algorithms for discrete
optimization. Artificial Life, 5, 137-172.
MARCO DORIGO & STUTZLE, T. (2000) The Ant Colony Optimization Metaheuristic: Algorithms,
Applications, and Advances.
MARTÍ, R. (2000) Procedimientos Metaheurísticos en Optimización Combinatoria
OSMAN, I. H. & KELLY, J. P. (1996) Meta-Heuristics: Theory and Applications, Boston, Ed. Kluwer
Academic.
PAOLO, E. D. (2000) Artificial Life Bibliography of On-line Publications.
PAPADIMITRIOU, C. H. & STEIGLITZ, K. (1982) Combinatorial Optimization - Algorithms and
Complexity. .
PETER KOROSEC, JURIJ SILC & ROBIC, B. (2004) Solving the mesh-partitioning problem with an
ant-colony algorithm. Paralell Computing, 30, 785–801.
R. SCHOONDERWOERD, O. HOLLAND & BRUTEN, J. (1997) Ant-like agents for load balancing in
telecomunications metworks. Proceedings of the first International conference on Autonomous
Agents., 209-216.
REEVES, C. R. (1995) Modern Heuristic Techniques for Combinatorial Problems, UK, Ed. McGraw-
Hill.
STÜTZLE, T. & HOOS, H. (2000) MAX-MIN Ant System. Future Generation Computer Systems, 16, 889-914.
T. STÜTZLE AND H. HOOS (2000) MAX-MIN Ant System. Future Generation Computer Systems, 16, 889-914.
VRANCX, P. (2004) Multi-type Ant Systems: The introduction of competition to Ant Algorithms.
Department of Computer Science. Bruselas, Vrije Universiteit Brussel.
Z. WANG & CROWCROFT, J. (2002) Analysis of shortest-path routing algorithms in a dynamic
network enviroment ACM Computer Comunication Review, 22.
66
Anexo 1 Resultados de las variantes de AntNet para distintos valores de los parámetros que intervienen en su
funcionamiento (500 productos).
Alpha AN r=0 TE r-cte AN r-cte TE n c a AN r-cal TE0.2 1514 18 0.05 2020 19 0.75 0.3 5 3513 19
0.1 2098 18 100 2779 18 0.2 2149 18 0.6 5 4251 18 100 2779 18 0.9 5 1872 18 100 2779 18 0.8 0.3 5 2118 18 100 2779 18 0.6 5 1830 18 100 2779 18 0.9 5 6350 19 100 2779 18 0.85 0.3 5 5527 18 100 2779 18 0.6 5 2626 19 100 2779 18 0.9 5 1784 18 100 2779 18
0.3 1540 18 0.05 1770 18 0.75 0.3 5 1726 18 0.1 1788 18 100 1546 18 0.2 1956 18 0.6 5 1728 18 100 1546 18 0.9 5 1627 18 100 1546 18 0.8 0.3 5 1614 18 100 1546 18 0.6 5 1700 18 100 1546 18 0.9 5 1670 18 100 1546 18 0.85 0.3 5 1727 18 100 1546 17 0.6 5 1640 18 100 1546 18 0.9 5 4635 18 100 1546 18
Anexo 1. Continuación
67
Alpha AN r=0 TE r-cte AN r-cte TE n c a AN r-cal TE0.4 1506 18 0.05 1642 18 0.75 0.3 5 3610 18
0.1 1723 18 100 1540 18 0.2 1745 19 0.6 5 1718 19 100 1540 19 0.9 5 2259 18 100 1540 19 0.8 0.3 5 4245 18 100 1540 19 0.6 5 1595 18 100 1540 18 0.9 5 3674 18 100 1540 18 0.85 0.3 5 1679 18 100 1540 18 0.6 5 1690 18 100 1540 18 0.9 5 1614 18 100 1540 17
0.5 1507 18 0.05 1653 18 0.75 0.3 5 1626 18 0.1 1727 18 100 1545 17 0.2 1753 18 0.6 5 1712 18 100 1545 18 0.9 5 1939 18 100 1545 18 0.8 0.3 5 1560 18 100 1545 17 0.6 5 1643 18 100 1545 18 0.9 5 1730 18 100 1545 18 0.85 0.3 5 1683 18 100 1545 18 0.6 5 1928 18 100 1545 17 0.9 5 1627 18 100 1545 18
68
Anexo 2 Resultados de las variantes de AntNet para distintos valores de los parámetros que intervienen en su
funcionamiento (500 productos).
Alpha AN r=0 TE r-cte AN r-cte TE n c alpha AN r-cal TE0.2 399 0 0.05 525 1 0.75 0.3 5 655 1
0.1 521 1 100 547 0 0.2 540 1 0.6 5 655 1 100 547 0 0.9 5 655 1 100 547 0 0.8 0.3 5 655 0 100 547 0 0.6 5 655 0 100 547 0 0.9 5 655 0 100 547 0 0.85 0.3 5 655 0 100 547 0 0.6 5 655 1 100 547 0 0.9 5 655 0 100 547 0
0.3 378 0 0.05 443 0 0.75 0.3 5 777 0 0.1 437 0 100 755 1 0.2 550 1 0.6 5 817 1 100 755 0 0.9 5 817 1 100 755 0 0.8 0.3 5 777 0 100 755 1 0.6 5 771 0 100 755 1 0.9 5 817 1 100 755 0 0.85 0.3 5 777 1 100 755 0 0.6 5 771 0 100 755 1 0.9 5 817 1 100 755 1
Anexo 2. Continuación
69
Alpha AN r=0 TE r-cte AN r-cte TE n c alpha AN r-cal TE0.4 365 1 0.05 446 0 0.75 0.3 5 605 0
0.1 422 1 100 486 0 0.6 5 654 1 100 486 0 0.9 5 654 0 100 486 0 0.8 0.3 5 605 1 100 486 0 0.6 5 654 0 100 486 0 0.9 5 654 0 100 486 1 0.85 0.3 5 605 0 100 486 0 0.6 5 605 0 100 486 0 0.9 5 654 0 100 486 0
0.5 362 1 0.05 420 1 0.75 0.3 5 583 0 0.1 401 1 100 770 1 0.2 439 1 0.6 5 583 0 100 770 0 0.9 5 583 1 100 770 0 0.8 0.3 5 583 0 100 770 1 0.6 5 583 0 100 770 0 0.9 5 583 1 100 770 0 0.85 0.3 5 516 0 100 770 1 0.6 5 583 0 100 770 1 0.9 5 583 0 100 770 0