Documentos de Académico
Documentos de Profesional
Documentos de Cultura
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|
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 -