Está en la página 1de 4

Sistemas de Hormigas Max-Min para resolver el

Problema de Programación de Proyectos de Software


Max-Min Ant System to solve the Software Project
Scheduling Problem
Broderick Crawford1,2, Ricardo Soto,1,3, Franklin Johnson1,4, Fernando Paredes5 y Miguel Olivares Suárez1
1
Pontificia Universidad Católica de Valparaíso, Valparaíso, Chile
2
Universidad San Sebastián, Santiago, Chile
3
Universidad Autónoma de Chile, Santiago, Chile
4
Universidad de Playa Ancha, Valparaíso, Chile
5
Universidad Diego Portales, Santiago, Chile

Resumen—El problema de programación de proyectos de Problem, SPSP). Este problema fue originalmente propuesto el
software, es un caso particular dentro de los problemas de 2007 por Alba [2], el cual consiste en realizar la asignación
programación de proyectos. Este problema consiste en asignar adecuada de ingenieros de software a las distintas tareas que
trabajadores, con distintas habilidades, a una serie de tareas componen un proyecto de software de manera tal, que
propias del proyecto de software, de manera tal que el proyecto satisfagan las restricciones de tareas, trabajadores y
sea completado en el menor tiempo posible y al menor costo. precedencia. Dicha programación tiene por objetivo minimizar
Además, dicha asignación debe cumplir con las restricciones de la duración y costos de todo el proyecto. Este problema ha sido
habilidad requerida por cada tareas y las restricciones de abordado en pocos trabajos inicialmente por Alba,
precedencia entre tarea. Se presenta la solución a este problema
resolviéndolo mediante un algoritmos genético, más tarde Xiao
utilizando el algoritmo de optimización de Sistema de Hormigas
[5] propone un algoritmo basado en Colonias de Hormigas, y
Max-Min y el marco de trabajo de Hipercubo. Se proponen dos
heurísticas capaces de guiar el algoritmo para busca de mejores más tarde Ramandeep Kaur [10] realiza en el 2013 una revisión
soluciones. Se presentan los resultados experimentales y se bibliográfica del problema. Este problema pertenece a la
comparan con otras técnicas de resolución, demostrando una familia de los problemas NP-duros, por lo cual es difícil de
mejora mediante la implementación de nuestra propuesta. resolver mediante un método de búsqueda completa en un
tiempo limitado. Por este motivo proponemos su resolución
Palabras Claves; Programación de proyectos de software, mediante el uso de una metaheurística ACO.
Sistemas de Hormigas Max-Min, Metaheuísticas, Hipercubo.
ACO es un método de optimización probabilístico basado
Abstract — The Software Project Scheduling Problem is a special en el comportamiento de las colonias de hormigas reales y de
case of project scheduling problems. This problem consists in cómo estas son capaces de acortar los recorridos entre el
assigning workers with different skills, to a series of tasks in a hormiguero y su fuente de alimento. El proceso de resolución
software project so that the project is completed in the shortest de ACO es iterativo, en el cual las hormigas repetidamente
time and the lowest cost possible. In addition, this allocation must construyen soluciones; este proceso es guiado por la
meet the constraints of skill required for each task and the información heurística, la cual está asociada específicamente al
precedence constraints between tasks. The solution to this problema, y la información memorística, determinada por la
problem is presented using the Max - Min Ant System algorithm feromona, la cual es depositada por las hormigas en su
and the Hypercube framework. Two heuristics capable of
recorrido al construir una solución. El Sistema de Hormigas
guiding the algorithm to find better solutions are proposed.
Max-Min (MMAS en inglés) es un tipo de algoritmo ACO,
Experimental results are presented and compared with other
techniques of resolution, showing an improvement by
originalmente propuesto por Stutzle [3] en el cual los valores
implementing our proposal. de feromona siempre se encuentran entre un valor máximo y un
mínimo, además sólo la mejor hormiga puede depositar
Keywords – Software Project Scheduling, Max-Min Ant System, feromona. El marco de trabajo de Hipercubo para ACO (ACO-
Metaheuristics, Hypercube. HC) es un marco que permite manejar de manera automática
los valores de feromona y define un espacio multidimensional
I. INTRODUCCIÓN en el cual se mueven estos valores. Presentamos los resultados
En este documento se presenta una metaheurística de experimentales obtenidos al resolver el SPSP utilizando
Optimización basada en Colonia de Hormigas (ACO en inglés) MMAS y ACO-HC. Demostramos que los resultados son
[1] para la resolución del problema de Programación de prometedores, pues logran mejorar respecto a otras técnicas
Proyectos de Software (en inglés Software Project Scheduling utilizadas y reportadas en la literatura para el mismo problema.
II. DESCRIPCIÓN DEL PROBLEMA El objetivo es minimizar la función de fitness definida
El problema de programación de proyectos de software es como f(x)= (wcospcos + wlenplen), donde wcos y wlen representan la
un problema común en la administración de proyectos de importancia relativa de pcos y plen.
software. Este problema consiste en encontrar la asignación
adecuada de carga de los trabajadores a cada una de las tareas t eff
j
t len (3)
¦
j | E|
que componen el proyecto [5]. Los recursos más importantes m
involucrados en este problema son; las habilidades, las tareas y i 1 ij
los empleados. | E|

Las habilidades son las características que poseen los t cos


j ¦e rem
i ˜ mij ˜ t len
j (4)
empleados y son necesarias para completar una tarea. El i 1
conjunto de todas las Habilidades se define como S={s1,...,s|S|}, |T |
donde |S| es el número total de habilidades.
Las Tareas son todas las actividades necesarias para
p cos ¦t j 1
cos
j (5)

completar el proyecto. El conjunto de todas las tareas se define


como T={t1,...,t|T|}, donde |T| es la cantidad de tareas del Otro elemento a considerar es la sobre explotación de los
proyecto. Cada tarea tiene dos atributos: tjsk es el conjunto de empleados, esto es cuando en un momento el empleado es
habilidades necesarias para la tarea j, tjeff representa el esfuerzo asignado a un tarea o a varias tareas con una carga mayor a
necesario para completar la tarea j. eimaxd. El sobre trabajo de todo el proyecto es determinado
como poverw, para que una solución sea factible además debe
El conjunto de empleados se define como EMP={e1,...,e|E|}, tener poverw=0.
donde |E| es el número total de empleados. Cada empleados
tiene tres atributos: eisk es el conjunto de habilidades del III. SISTEMA DE HORMIGA MAX-MIN USANDO EL MARCO
empleado i y eisk Ž S, eimaxd es el grado máximo de trabajo del DE TRABAJO DE HIPERCUBO
empleado i. eimaxd  [0,1], y eirem es la remuneración mensual Los algoritmos ACO son un método de optimización
del empleado i. probabilístico basado en el comportamiento de las colonias de
Una solución puede ser representada mediante una matriz hormigas reales y de cómo estas son capaces de acortar los
M=[E×T]. Los elementos de la matriz mij [0,1], son números recorridos entre el hormiguero y su fuente de alimento
reales, los cuales representan el grado de dedicación del utilizando una sustancia olfativa llamada feromona [6].
empleado i a la tarea j. Si el grado de dedicación es 0 el MMAS es un tipo de algoritmo ACO en el cual los valores
empleado i no está asignado a la tarea j. Si el grado de de feromona siempre se encuentran entre un valor máximo y un
dedicación es 1 el empleado i utiliza el 100% de su tiempo a la valor mínimo, además sólo la mejor hormiga de la iteración
tarea j. Si el grado de dedicación fuera 0.5 el empleado puede depositar feromona. El marco de trabajo de Hipercubo
utilizaría el 50% de su jornada a dicha tarea. para ACO define un espacio multidimensional para los valores
La solución generada es factible si cumple con las de feromona como un espacio cerrado entre 0 y 1, en el cual se
siguientes restricciones: Primero, todas las tareas tienen mueven las posibles soluciones del problema [7]. Este marco
asignado al menos un empleado, por lo tanto se realizarán, esto de trabajo introduce una modificación en la función de
se presenta en la Eq. (1). Segundo, los empleados asignados a actualización de feromona, la cual se obtiene mediante la
una tarea j deben cumplir con todas las habilidades necesarias normalización de la ecuación de actualización de feromona
para completar dicha tarea, como se presenta en la Eq. (2). original. Esto permite tener algoritmos más robustos y con un
manejo autónomo de los valores de feromona, mejorando la
| E| exploración del espacio de solución. Para adaptar MMAS a
¦m
i 1
ij !0 j  {1,..., | T |} (1) SPSP utilizando el marco de Hipercubo [8] debemos establecer
un grafo de construcción adecuado que adapte el problema al
comportamiento de las hormigas artificiales, definir la función
t skj Ž e sk
i j  {1,..., | T |} (2) de actualización de feromona adecuada y establecer la
i|mij !0 información heurística asociada al problema específico.
Para evaluar la calidad de una solución generada, debemos A. Grafo de construccion utlizado
primero calcular la duración de cada tarea tjlen, de acuerdo a la Para que las hormigas artificiales puedan construir
ecuación Eq. (3). Para las tareas sin precedencia el tiempo de soluciones estas deben hacer recorridos por un grafo a cíclico y
inicialización es tjinit=0. Si la tarea tiene precedencia, primero unidireccional llamado grafo de construcción. Las hormigas
debemos calcular el tiempo de término de las tareas que la parten desde un nodo inicial y van seleccionando el siguiente
preceden. En este caso tjinit se define como tjinit=max{tlterm|(tl,tj) nodo a recorrer utilizando la siguiente función probabilística:
 E}, y el tiempo de termino es tjterm=tjinit+tjlen. La duración de
todo el proyecto plen es el tiempo de término de la tarea que
pijt
>W @ >K @
ij
D
ij
E

, j {1,..., den} (6)


termina más tarde. Para calcular el costo de una tarea
¦ >W @ >K @
den
D E
utilizamos la ecuación Eq. (4), y el costo total de todo el l 0 il il

proyecto pcos se obtiene de acuerdo a la Eq. (5). Donde Wij representa la feromona y Kij la información
heurística en el nodo ij. D y E son dos parámetros fijos
utilizados para determinar la influencia de la feromona y la operativo Windows7. El algoritmo fue arrancado 10 veces por
información heurística. den determina el número de filas. El cada instancia y reportamos los valores promedios de esas
grafo de construcción propuesto (CG) representa la asociación ejecuciones. Para realizar los experimentos utilizamos las
de los empleados y su grado de dedicación a una tarea. Esta instancias previamente generadas por un generador creado para
representación debe ser construida para cada tarea del proyecto, el trabajo presentado en [2]. El generador de instancias es el
para la cual se crearan nodos y aristas las que pueden ser mismo utilizado en [5], se han realizado las instancias con los
representadas mediante una matriz. Las hormigas eligen solo mismos parámetros utilizados en dicho trabajo. Las instancias
un nodo por cada columna, cuando una hormiga ha completado están nombradas como <nº de tareas>t<nº de eventos>e<nº de
un recorrido la dedicación de los empleados a esa tarea está habilidades>s
completa.
Por la bibliografía se sabe que los resultados de algoritmos
En MMAS solo la mejor hormiga de la iteración es de ACO pueden variar fuertemente dependiendo de los
utilizada para depositar el rastro de feromona. Debemos parámetros utilizados para configurar los algoritmos. Por esta
representar computacionalmente la evaporación y deposición razón hemos conducido previamente una serie de experimentos
de la feromona cada vez que se completa un recorrido. para encontrar los mejores parámetros para nuestro algoritmo.
Para esto utilizamos esta regla de actualización de la feromona
Las primeras pruebas se realizaron utilizando la instancia
Wij = UWij + (1-U)'Wupd, donde U  ]0,1] es un factor de
10t10e10s (10 tareas, 10 empleados y 10 habilidades) con mind
evaporación. Si U es alto, el nuevo valor de feromona es menos
= 0.25 y conservamos contantes los parámetros D = 1, E = 2, y
influenciado por 'Wupd, pero más influenciado por el valor el número de iteraciones Nit=1000. Las variantes que se
anterior de feromona y viceversa. 'Wupd está asociado a la probaron fueron m = {10, 100, 200, 300} y U = {0.01, 0.02,
calidad de la solución de la mejor hormiga de la iteración [7]. 0.08, 0.4} mostrando que los mejores fitness (más bajos) se
La calidad de la solución está asociado específicamente al
obtuvieron con m = 200 and U = 0.02.
problema, utilizando la duración, costo y sobre trabajo del
proyecto de acuerdo a 'Wupd=(wcospcos + wlenplen + woverwpoverw)-1, Para evaluar la calidad de nuestra propuesta, comparamos
donde wcos, wlen, y woverw son valores fijos que determinan la nuestros resultados con otros resultados presentados en [5] por
importancia de plen, y poverw del proyecto de software. Entonces Xiao, utilizando los mismos parámetros en nuestras instancias.
'Wupd es la cantidad de feromona depositada en base a la En dicho trabajo se utilizan las metaheurísticas de Sistemas de
calidad de la solución generada por la mejor hormiga de la colonias de Hormigas (ACS en inglés) y Algoritmos Genéticos
iteración. (GA en inglés), los cuales fueron probados en multiples
instancias, los resultados de [5] son comparados en la tabla 1.
B. Información Heurística Para mejorar la representación de las soluciones se ha
La información heurística es utilizada para mejorar y guiar transformado el fitness presentado en dicho trabajo como
la habilidad de búsqueda de las hormigas, las cuales pueden ser fitness-1 para así igualarlo al fitness utilizado por nosotros.
muy sensibles ante cambio de heurísticas. Las hormigas
necesitan encontrar el nodo adecuado en su recorrido utilizando Los resultados comparativos entre los diferentes algoritmos
la información heurística. En este trabajo exponemos dos se presentan en la Tabla 1. De acuerdo a la tabla 1 podemos
estrategias para definir la información heurística, definidas comparar la Tasa de Hit y el fitness de las soluciones. En este
como H1 y H2. caso las instancias con número de tareas = 10 siempre se
obtiene una Tasa de Hit del 100%, independiente del número
H1 considera la dedicación de un empleado ei a otras de empleados y habilidades. Pero en el caso de las instancias
tareas. Si un empleado trabaja más en las tareas previas, tendrá con número de tareas = 20, ACO-HC (H2) tiene mejor tasa de
menos probabilidad de ser asignado a la tarea actual. Esta Hit. Si observamos los resultados en función del fitness
heurística puede calcularse como h[i] = tmp[den-i-1]/sum, si la podemos observar que ACO-HC (con H1 y H2) tiene los
dedicación a tareas acumulada para el empleado k es más mejores resultados para todas las instancias con número de
grande que 0.5 y es h[i] = tmp[i]/sum en otro caso, donde tmp tareas = 10. Para la instancia 20t10e10s (20 tareas, 10
es un arreglo temporal con la suma de las posibles asignaciones empleados, 10 habilidades) el mejor resultado es obtenido con
de dedicación, y sum es la suma de todos los valores del ACO-HC(H2). Si analizamos los resultados con número de
arreglo tmp. tareas = 30, los mejores resultados son obtenidos con ACO-
HC(H2), los otros algoritmos no pudieron obtener resultados
La heurística H2 utiliza la remuneración de los empleados.
factibles. En resumen en el 75% de las instancias probadas se
Si un empleado tiene una alta remuneración tiene menos
obtuvo mejor resultado con ACO-HC(H2), 12,5% fue mejor
probabilidad de ser seleccionada. Si un empleado tiene una
ACO-HC(H1) y el 12,5% se obtuvo mejor resultado utilizando
baja remuneración, tendrá una alta probabilidad de ser
GA.
asignado a una tarea. La información heurística H2 para un
empleados i se puede calcular como h[i] = (eirem)-1. V. CONCLUSIONES
IV. RESULTADOS EXPERIMENTALES Se ha presentado brevemente la resolución del problema de
programación de proyectos de software utilizando una nueva
En esta sección se presentan los resultados experimentales
aplicación de un algoritmo ACO llamado Sistema de Hormigas
y el análisis de los resultados obtenidos. El algoritmo fue
Max-Min utilizando el marco de trabajo de Hipercubo. Hemos
implementado en java bajo el uso de NetBeans IDE 7.2. y se
presentado el diseño de una representación del problema, de
ejecutó sobre una maquina Intel Core i7 bajo el sistema
manera tal que pueda ser resuelto mediante un algoritmo ACO
propuesto. Además hemos definido un grafo de construcción AGRADECIMIENTOS
adecuado y las correspondientes reglas de actualización de Se extienden los agradecimientos de:
feromona junto con dos posibles heurísticas, capaces de guiar
el comportamiento del algoritmo para mejorar las soluciones Broderick Crawford apoyado por CONICYT/
generadas. Se ha implementado dicho algoritmo y se han FONDECYT/ REGULAR/ 1140897.
realizado una serie de experimentos, ya sea para parametrizar y
Ricardo Soto apoyado por CONICYT/ FONDECYT/
obtener el mejor rendimiento de nuestra propuesta, como para
INICIACION/ 11130459.
compararla con otras metaheurísticas como Sistema de
Colonias de Hormigas y Algoritmos Genéticos. Hemos Fernando Paredes apoyado por CONICYT/ FONDECYT/
demostrado en base a los resultados que nuestra propuesta es REGULAR/ 1130455.
capaz de obtener los mejores resultados para las instancias
pequeñas. Para instancias más grandes es más difícil obtener REFERENCIAS BIBLIOGRÁFICAS
mejores soluciones, pero utilizando la heurística H2 siempre se [1] M. Dorigo and G. Di Caro. Ant colony optimization: a new meta-
logran buenos resultados. Además para las instancias con heuristic. In Evolutionary Computation. CEC 99. Proceedings of the
número de tareas =30 la heurística H2 siempre obtiene 1999 Congress, volume 2, 1999.
soluciones por sobre las otras técnicas comparadas. Si bien las [2] E. Alba and F. Chicano. Software project management with GAs.
Information Sciences, 177(11), June 2007, pp. 2380-2401.
condiciones de experimentación son ideales, se puede tomar
esta propuesta como base para resolver instancias más duras o [3] T. Stutzle and H. H. Hoos. Max-Min ant system. Future Generation
Computer Systems, 16 (8), 2000, pp. 889-914.
realistas. Se puede definir como un punto de partida en un
[4] F. Johnson, B. Crawford, and W. Palma. Hypercube framework for
trabajo de alcance exploratorio. ACO applied to timetabling. In IFIP AI, 2006, pp. 237-246.
Como trabajo futuro se espera poder integrar mecanismos [5] J. Xiao, X. T. Ao, and Y. Tang. Solving software project scheduling
de búsqueda autónoma en el proceso de resolución, ya que en problems with ant colony optimization. Computers and Operations
Research, 40 (1), 2013, pp. 33-46.
otros trabajos han presentados excelentes resultados [9].
[6] M. Dorigo and T. Stutzle. Ant Colony Optimization. MIT Press, USA,
2004.
TABLA 1: COMPARACIÓN CON OTRAS TÉCNICAS.
[7] F. Johnson, B. Crawford, and W. Palma. Hypercube framework for
Instancia Algoritmo Tasa de Hit Fitness ACO applied to timetabling. In IFIP AI, 2006, pp. 237-246.
10t5e5s ACO-HC(H1) 100 3.136531 [8] B. Crawford, R. Soto, F. Johnson, and E. Monfroy. Ants can schedule
ACO-HC(H2) 100 2.775044 software projects. In C. Stephanidis, editor, HCI International 2013
ACS 100 3.514938 Posters Extended Abstracts, volume 373 of Communications in
Computer and Information Science. Springer Berlin Heidelberg, 2013,
GA 95 3.587443 pp. 635-639.
10t10e5s ACO-HC(H1) 100 2.134546
[9] B. Crawford, R. Soto, E. Monfroy, W. Palma, C. Castro, and F. Paredes.
ACO-HC(H2) 100 2.096707 Parameter tuning of a choice-function based hyperheuristic using
ACS 100 2.577319 particle swarm optimization. Expert Systems with Applications, 40 (5),
GA 97 2.841312 2013, pp. 1690-1695.
20t10e5s ACO-HC(H1) 30 6.741111 [10] E.Kaur, S. Singh, and M. Rakshit. A review of various software project
ACO-HC(H2) 90 6.876989 scheduling techniques. International Journal of Computer Science &
ACS 67 6.385696 Engineering Techniques, 2013, pp. 877-882.
GA 19 6.276675
30t10e5s ACO-HC(H1) -
ACO-HC(H2) 70 10.654631
ACS -
GA -
10t5e10s ACO-HC(H1) 100 2.875215
ACO-HC(H2) 100 3.344930
ACS 100 3.404951
GA 90 3.528706
10t10e10s ACO-HC(H1) 100 2.612948
ACO-HC(H2) 100 2.266089
ACS 100 2.644033
GA 100 2.537169
20t10e10s ACO-HC(H1) 50 6.249782
ACO-HC(H2) 100 5.596390
ACS 65 6.298419
GA 71 6.186970
30t10e10s ACO-HC(H1) -
ACO-HC(H2) 90 10.164974
ACS -
GA -

También podría gustarte