78
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

Aplicación de algoritmo AntNet al problema de

  • Upload
    others

  • View
    8

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Aplicación de algoritmo AntNet al problema de

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

Page 2: Aplicación de algoritmo AntNet al problema de

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

Page 3: Aplicación de algoritmo AntNet al problema de
Page 4: Aplicación de algoritmo AntNet al problema de

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.

Page 5: Aplicación de algoritmo AntNet al problema de

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.

Page 6: Aplicación de algoritmo AntNet al problema de

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

Page 7: Aplicación de algoritmo AntNet al problema de

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

Page 8: Aplicación de algoritmo AntNet al problema de

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

Page 9: Aplicación de algoritmo AntNet al problema de

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

Page 10: Aplicación de algoritmo AntNet al problema de

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.

Page 11: Aplicación de algoritmo AntNet al problema de

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.

Page 12: Aplicación de algoritmo AntNet al problema de

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.

Page 13: Aplicación de algoritmo AntNet al problema de

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:

Page 14: Aplicación de algoritmo AntNet al problema de

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.

Page 15: Aplicación de algoritmo AntNet al problema de

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:

Page 16: Aplicación de algoritmo AntNet al problema de

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

Page 17: Aplicación de algoritmo AntNet al problema de

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:

Page 18: Aplicación de algoritmo AntNet al problema de

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

Page 19: Aplicación de algoritmo AntNet al problema de

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.

Page 20: Aplicación de algoritmo AntNet al problema de

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.

Page 21: Aplicación de algoritmo AntNet al problema de

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.

Page 22: Aplicación de algoritmo AntNet al problema de

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

Page 23: Aplicación de algoritmo AntNet al problema de

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.

Page 24: Aplicación de algoritmo AntNet al problema de

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

Page 25: Aplicación de algoritmo AntNet al problema de

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):

Page 26: Aplicación de algoritmo AntNet al problema de

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.

Page 27: Aplicación de algoritmo AntNet al problema de

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

Page 28: Aplicación de algoritmo AntNet al problema de

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

Page 29: Aplicación de algoritmo AntNet al problema de

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.

Page 30: Aplicación de algoritmo AntNet al problema de

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

Page 31: Aplicación de algoritmo AntNet al problema de

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.

Page 32: Aplicación de algoritmo AntNet al problema de

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.

Page 33: Aplicación de algoritmo AntNet al problema de

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

Page 34: Aplicación de algoritmo AntNet al problema de

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

Page 35: Aplicación de algoritmo AntNet al problema de

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):

Page 36: Aplicación de algoritmo AntNet al problema de

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

Page 37: Aplicación de algoritmo AntNet al problema de

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

Page 38: Aplicación de algoritmo AntNet al problema de

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

Page 39: Aplicación de algoritmo AntNet al problema de

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:

Page 40: Aplicación de algoritmo AntNet al problema de

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 :

Page 41: Aplicación de algoritmo AntNet al problema de

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.

Page 42: Aplicación de algoritmo AntNet al problema de

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.

Page 43: Aplicación de algoritmo AntNet al problema de

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.

Page 44: Aplicación de algoritmo AntNet al problema de

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.

Page 45: Aplicación de algoritmo AntNet al problema de

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 )

Page 46: Aplicación de algoritmo AntNet al problema de

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.

Page 47: Aplicación de algoritmo AntNet al problema de

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.

Page 48: Aplicación de algoritmo AntNet al problema de

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.

Page 49: Aplicación de algoritmo AntNet al problema de

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.

Page 50: Aplicación de algoritmo AntNet al problema de

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

Page 51: Aplicación de algoritmo AntNet al problema de

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

Page 52: Aplicación de algoritmo AntNet al problema de

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.

Page 53: Aplicación de algoritmo AntNet al problema de

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

Page 54: Aplicación de algoritmo AntNet al problema de

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.

Page 55: Aplicación de algoritmo AntNet al problema de

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();

Page 56: Aplicación de algoritmo AntNet al problema de

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 ).

Page 57: Aplicación de algoritmo AntNet al problema de

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.

Page 58: Aplicación de algoritmo AntNet al problema de

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.

Page 59: Aplicación de algoritmo AntNet al problema de

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.

Page 60: Aplicación de algoritmo AntNet al problema de

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

Page 61: Aplicación de algoritmo AntNet al problema de

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

Page 62: Aplicación de algoritmo AntNet al problema de

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).

Page 63: Aplicación de algoritmo AntNet al problema de

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.

Page 64: Aplicación de algoritmo AntNet al problema de

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).

Page 65: Aplicación de algoritmo AntNet al problema de

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.

Page 66: Aplicación de algoritmo AntNet al problema de

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

Page 67: Aplicación de algoritmo AntNet al problema de

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.

Page 68: Aplicación de algoritmo AntNet al problema de

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:

Page 69: Aplicación de algoritmo AntNet al problema de

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.

Page 70: Aplicación de algoritmo AntNet al problema de

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.

Page 71: Aplicación de algoritmo AntNet al problema de

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.

Page 72: Aplicación de algoritmo AntNet al problema de

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.

Page 73: Aplicación de algoritmo AntNet al problema de

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

Page 74: Aplicación de algoritmo AntNet al problema de

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.

Page 75: Aplicación de algoritmo AntNet al problema de

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

Page 76: Aplicación de algoritmo AntNet al problema de

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

Page 77: Aplicación de algoritmo AntNet al problema de

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

Page 78: Aplicación de algoritmo AntNet al problema de

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