09.05.2013 Views

Algoritmos de trayectoria multiobjetivo aplicados al problema de ...

Algoritmos de trayectoria multiobjetivo aplicados al problema de ...

Algoritmos de trayectoria multiobjetivo aplicados al problema de ...

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Instituto Superior Politécnico José Antonio<br />

Echeverría CUJAE<br />

ALGORITMOS DE TRAYECTORIA<br />

MULTIOBJETIVO APLICADOS AL<br />

PROBLEMA DE ASIGNACIÓN DE...<br />

Ana Lilian Infante Abreu<br />

La Habana, 2012


Tesis <strong>de</strong> Maestría


<strong>Algoritmos</strong> <strong>de</strong> <strong>trayectoria</strong> <strong>multiobjetivo</strong> <strong>aplicados</strong> <strong>al</strong> <strong>problema</strong> <strong>de</strong> asignación <strong>de</strong><br />

recursoshumanos a equipos <strong>de</strong> proyecto <strong>de</strong> software. – La Habana : Instituto Superior<br />

Politécnico José Antonio Echeverría (CUJAE), 2012. – Tesis (Maestría).<br />

Dewey: 621.39 Ingeniería <strong>de</strong> computadoras.<br />

Registro No.: Maestria1001 CUJAE.<br />

(cc) Ana Lilian Infante Abreu, 2012.<br />

Licencia: Creative Commons <strong>de</strong> tipo Reconocimiento, Sin Obra Derivada.<br />

En acceso perpetuo: http://www.e-libro.com/titulos


Instituto Superior Politécnico José Antonio Echeverría (ISPJAE)<br />

Facultad <strong>de</strong> Ingeniería Informática<br />

<strong>Algoritmos</strong> <strong>de</strong> <strong>trayectoria</strong> <strong>multiobjetivo</strong> <strong>aplicados</strong> <strong>al</strong> <strong>problema</strong> <strong>de</strong> asignación <strong>de</strong> recursos<br />

humanos a equipos <strong>de</strong> proyecto <strong>de</strong> software<br />

Tesis presentada en opción <strong>al</strong> título <strong>de</strong> Máster en Informática Aplicada<br />

Autora: Ing. Ana Lilian Infante Abreu, ISPJAE<br />

Tutores: Dra. Margarita André Ampuero, ISPJAE<br />

Dr. Alejandro Rosete Suárez, ISPJAE<br />

La Habana, Cuba<br />

Febrero 2012


Resumen<br />

La ina<strong>de</strong>cuada conformación <strong>de</strong> equipos <strong>de</strong> proyecto <strong>de</strong> software es un <strong>problema</strong> que afecta a la<br />

industria <strong>de</strong> software a nivel mundi<strong>al</strong>. Este proceso resulta complejo, teniendo en cuenta que <strong>de</strong>be<br />

consi<strong>de</strong>rar varios factores, como son, asignar a los roles <strong>de</strong>l equipo las personas con las competencias<br />

apropiadas, consi<strong>de</strong>rar las incompatibilida<strong>de</strong>s entre los miembros y la carga <strong>de</strong> trabajo, entre otros.<br />

Esta situación se torna más compleja en organizaciones medianas y gran<strong>de</strong>s, <strong>de</strong>bido a la gran cantidad<br />

<strong>de</strong> combinaciones <strong>de</strong> asignaciones posibles, en dimensiones relativamente significativas <strong>de</strong> roles a<br />

cubrir y empleados disponibles. Esto hace que esta etapa sea prácticamente imposible <strong>de</strong> abordar <strong>de</strong><br />

manera eficiente, sin la ayuda <strong>de</strong> sistemas automatizados <strong>de</strong> soporte a la <strong>de</strong>cisión que se basen en<br />

<strong>al</strong>goritmos <strong>de</strong> solución <strong>de</strong> mo<strong>de</strong>los matemáticos que representen el <strong>problema</strong> a resolver lo más<br />

objetivamente posible.<br />

En el Instituto Superior Politécnico “José Antonio Echeverría” (ISPJAE) se propuso un mo<strong>de</strong>lo form<strong>al</strong><br />

para la asignación <strong>de</strong> recursos humanos a equipos <strong>de</strong> proyecto <strong>de</strong> software. El mo<strong>de</strong>lo propuesto<br />

respon<strong>de</strong> a un <strong>problema</strong> <strong>de</strong> optimización combinatorio <strong>multiobjetivo</strong>, que plantea optimizar los siguientes<br />

objetivos: maximizar las competencias <strong>de</strong> los trabajadores, minimizar las incompatibilida<strong>de</strong>s entre los<br />

miembros <strong>de</strong>l equipo y b<strong>al</strong>ancear la carga <strong>de</strong> trabajo. Incluye a<strong>de</strong>más, en una version ampliada <strong>de</strong>l<br />

mo<strong>de</strong>lo, minimizar el costo <strong>de</strong> <strong>de</strong>sarrollar software a distancia.<br />

En trabajos previos el mo<strong>de</strong>lo fue implementado en una herramienta <strong>de</strong> soporte a la <strong>de</strong>cisión<br />

<strong>de</strong>nominada Teamsoft + y para la solución <strong>de</strong>l <strong>problema</strong> se implementaron en la herramienta un conjunto<br />

<strong>de</strong> <strong>al</strong>goritmos metaheurísticos <strong>de</strong> <strong>trayectoria</strong>, entre los que se encuentran: Búsqueda Tabú, Recocido<br />

Simulado, Esc<strong>al</strong>ador <strong>de</strong> Colinas y GRASP, junto <strong>al</strong> método <strong>de</strong> factores pon<strong>de</strong>rados.<br />

Con el objetivo <strong>de</strong> brindar soporte a las diferentes preferencias <strong>de</strong>l <strong>de</strong>cisor en este trabajo se incorporan<br />

<strong>al</strong>gunas variantes <strong>multiobjetivo</strong> <strong>de</strong> los <strong>al</strong>goritmos <strong>de</strong> <strong>trayectoria</strong> Esc<strong>al</strong>ador <strong>de</strong> Colinas, Recocido<br />

Simulado, Búsqueda Tabú y GRASP y las técnicas <strong>de</strong> solución <strong>multiobjetivo</strong> puro y método lexicográfico<br />

para dar solución <strong>al</strong> <strong>problema</strong>.<br />

En el trabajo se hace uso <strong>de</strong> la biblioteca <strong>de</strong> clases <strong>de</strong> <strong>al</strong>goritmos metaheurísticos BICIAM, que es<br />

modificada para solucionar <strong>problema</strong>s <strong>de</strong> optimización <strong>multiobjetivo</strong> y extendida con la incorporación <strong>de</strong><br />

los <strong>al</strong>goritmos mencionados anteriormente, utilizandose la misma en la herramienta Teamsoft + .<br />

Para v<strong>al</strong>idar el mo<strong>de</strong>lo con los <strong>al</strong>goritmos mencionados se generaron un conjunto <strong>de</strong> datos <strong>de</strong> prueba<br />

basados en encuestas re<strong>al</strong>izadas a especi<strong>al</strong>istas informáticos <strong>de</strong> las organizaciones <strong>de</strong> software Softel y<br />

el Complejo <strong>de</strong> Investigaciones <strong>de</strong> Tecnología Integrada (CITI) y se diseñaron escenarios <strong>de</strong> prueba<br />

para simular organizaciones medianas, gran<strong>de</strong>s y especi<strong>al</strong>mente gran<strong>de</strong>s con el objetivo <strong>de</strong> ev<strong>al</strong>uar el<br />

<strong>de</strong>sempeño <strong>de</strong> los <strong>al</strong>goritmos en cada escenario.


ÍNDICE<br />

INTRODUCCIÓN ..................................................................................................................................... 1<br />

CAPÍTULO 1. ALGORITMOS METAHEURÍSTICOS DE TRAYECTORIA PARA RESOLVER<br />

PROBLEMAS MULTIOBJETIVO ............................................................................................................ 6<br />

1.1 INTRODUCCIÓN ................................................................................................................................ 6<br />

1.2 PROBLEMA DE ASIGNACIÓN ............................................................................................................... 6<br />

1.3 MODELO DE ASIGNACIÓN DE RECURSOS HUMANOS A EQUIPOS DE PROYECTOS DE DESARROLLO DE<br />

SOFTWARE ............................................................................................................................................ 7<br />

1.4 PROBLEMAS DE OPTIMIZACIÓN MULTIOBJETIVO .................................................................................. 9<br />

1.5 TÉCNICAS DE OPTIMIZACIÓN MULTIOBJETIVO .................................................................................... 10<br />

1.5.1 Combinación line<strong>al</strong> <strong>de</strong> pesos ................................................................................................. 10<br />

1.5.2 Or<strong>de</strong>namiento lexicográfico ................................................................................................... 11<br />

1.5.3 Multiobjetivo puro .................................................................................................................. 11<br />

1.6 ALGORITMOS METAHEURÍSTICOS ..................................................................................................... 12<br />

1.6.1 Esc<strong>al</strong>ador <strong>de</strong> Colinas............................................................................................................. 13<br />

1.6.2 Recocido Simulado ............................................................................................................... 18<br />

1.6.3 Búsqueda Tabú ..................................................................................................................... 23<br />

1.6.4 GRASP.................................................................................................................................. 26<br />

1.6.5 Comparación <strong>de</strong> variantes <strong>multiobjetivo</strong> <strong>de</strong> <strong>al</strong>goritmos <strong>de</strong> <strong>trayectoria</strong> .................................... 29<br />

1.7 MÉTRICAS DE RENDIMIENTO DE ALGORITMOS MULTIOBJETIVO ........................................................... 29<br />

1.8 BIBLIOTECAS DE CLASES QUE IMPLEMENTAN ALGORITMOS METAHEURÍSTICOS ................................... 35<br />

1.9 CONCLUSIONES ............................................................................................................................. 38<br />

CAPÍTULO 2. PROPUESTA DE SOLUCIÓN PARA RESOLVER EL MODELO DE ASIGNACIÓN DE<br />

RECURSOS HUMANOS A EQUIPOS DE PROYECTO DE SOFTWARE ............................................. 39<br />

2.1 INTRODUCCIÓN .............................................................................................................................. 39<br />

2.2 HERRAMIENTA TEAMSOFT + ............................................................................................................. 39<br />

2.3 IMPLEMENTACIÓN DE LA SOLUCIÓN PROPUESTA ............................................................................... 43<br />

2.3.1 <strong>Algoritmos</strong> <strong>de</strong> <strong>trayectoria</strong> <strong>multiobjetivo</strong> implementados ......................................................... 43<br />

2.3.2 Descripción <strong>de</strong> la solución propuesta .................................................................................... 43<br />

2.4 CONCLUSIONES ............................................................................................................................. 52<br />

CAPÍTULO 3. ANÁLISIS EXPERIMENTAL .......................................................................................... 53<br />

3.1 INTRODUCCIÓN .............................................................................................................................. 53<br />

3.2 ALGORITMO DE GENERACIÓN DE DATOS........................................................................................... 53<br />

3.3 DISEÑO DE LOS EXPERIMENTOS ...................................................................................................... 55<br />

3.3.1 Tamaño <strong>de</strong>l espacio <strong>de</strong> soluciones ........................................................................................ 56


3.4 PARÁMETROS DE LOS ALGORITMOS ................................................................................................. 56<br />

3.5 ANÁLISIS DE LAS MÉTRICAS ............................................................................................................. 57<br />

3.5.1 Escenario 1 ........................................................................................................................... 59<br />

3.5.2 Escenario 2 ........................................................................................................................... 61<br />

3.5.3 Escenario 3 ........................................................................................................................... 62<br />

3.5.4 Escenario 4 ........................................................................................................................... 64<br />

3.5.5 Escenario 5 ........................................................................................................................... 66<br />

3.6 CONCLUSIONES ............................................................................................................................. 69<br />

CONCLUSIONES .................................................................................................................................. 70<br />

RECOMENDACIONES .......................................................................................................................... 71<br />

REFERENCIAS BIBLIOGRÁFICAS ...................................................................................................... 72<br />

GLOSARIO DE TÉRMINOS Y SIGLAS ................................................................................................. 79<br />

ANEXOS ............................................................................................................................................... 80<br />

ANEXO 1 ............................................................................................................................................. 80<br />

ANEXO 2. ............................................................................................................................................ 82<br />

ANEXO 3. ............................................................................................................................................ 83<br />

ANEXO 4. ............................................................................................................................................ 84<br />

ANEXO 5. ............................................................................................................................................ 85<br />

ANEXO 6. ............................................................................................................................................ 86<br />

ANEXO 7. ............................................................................................................................................ 87<br />

ANEXO 8. ............................................................................................................................................ 88<br />

ANEXO 9. ............................................................................................................................................ 88<br />

ANEXO 10. .......................................................................................................................................... 89<br />

ANEXO 11. .......................................................................................................................................... 90<br />

ANEXO 12. .......................................................................................................................................... 91<br />

ANEXO 13. .......................................................................................................................................... 92<br />

ANEXO 14. .......................................................................................................................................... 93


ÍNDICE DE FIGURAS<br />

FIGURA 1. DOMINANCIA ASUMIENDO MAXIMIZACIÓN. X DOMINA A Z. X Y Y SON NO<br />

DOMINADAS ENTRE SÍ. ....................................................................................................................... 10<br />

FIGURA 2. SEUDOCÓDIGO DE LOS ALGORITMOS ESCALADORES DE COLINA ........................... 13<br />

FIGURA 3. SEUDOCÓDIGO DEL ESCALADOR DE COLINAS ESTOCÁSTICO MULTIOBJETIVO ..... 15<br />

FIGURA 4. SEUDOCÓDIGO DEL ESCALADOR DE COLINAS ESTOCÁSTICO MULTIOBJETIVO CON<br />

REINICIO ............................................................................................................................................... 16<br />

FIGURA 5. SEUDOCÓDIGO DEL ESCALADOR DE COLINAS ESTOCÁSTICO MULTIOBJETIVO POR<br />

MAYOR DISTANCIA .............................................................................................................................. 17<br />

FIGURA 6. SEUDOCÓDIGO DEL RECOCIDO SIMULADO BÁSICO .................................................... 19<br />

FIGURA 7. SEUDOCÓDIGO DEL RECOCIDO SIMULADO MULTIOBJETIVO BASADO EN UN PUNTO<br />

.............................................................................................................................................................. 20<br />

FIGURA 8. SEUDOCÓDIGO BÚSQUEDA TABÚ .................................................................................. 23<br />

FIGURA 9. SEUDOCÓDIGO DEL ALGORITMO BÚSQUEDA TABÚ MULTIOBJETIVO ....................... 25<br />

FIGURA 10. GRASP BÁSICO PARA MINIMIZACIÓN ........................................................................... 27<br />

FIGURA 11. ETAPA DE CONSTRUCCIÓN DEL ALGORITMO GRASP ................................................ 27<br />

FIGURA 12. SEUDOCÓDIGO GRASP MULTIOBJETIVO ..................................................................... 28<br />

FIGURA 13. PANTALLA DE LA HERRAMIENTA TEAMSOFT + PARA LA ASIGNACIÓN DEL JEFE DE<br />

PROYECTO ........................................................................................................................................... 40<br />

FIGURA 14. PANTALLA PARA LA ASIGNACIÓN DEL EQUIPO DE PROYECTO SELECCIONANDO EL<br />

MÉTODO DE SOLUCIÓN MULTIOBJETIVO PURO ............................................................................. 41<br />

FIGURA 15. PANTALLA PARA LA ASIGNACIÓN DEL EQUIPO DE PROYECTO SELECCIONANDO EL<br />

MÉTODO DE SOLUCIÓN LEXICOGRÁFICO ........................................................................................ 42<br />

FIGURA 16. VISTA DE LA ARQUITECTURA DE BICIAM ..................................................................... 43<br />

FIGURA 17. CLASES PRINCIPALES DEL PAQUETE CEIS.GRIAL.PROBLEM ................................... 44<br />

FIGURA 18. CLASES PRINCIPALES DEL PAQUETE CEIS.GRIAL.GENERATOR .............................. 45<br />

FIGURA 19.CLASES PRINCIPALES DE BICIAM PARA RESOLVER PROBLEMAS DE OPTIMIZACIÓN<br />

MULTIOBJETIVO .................................................................................................................................. 46<br />

FIGURA 20. VISTA DEL DIAGRAMA DE CLASES DE BICIAM CON ALGORITMOS NUEVOS<br />

INCORPORADOS EN COLOR MÁS CLARO ........................................................................................ 47


FIGURA 21. REPRESENTACIÓN DE UNA SOLUCIÓN ........................................................................ 48<br />

FIGURA 22. REPRESENTACIÓN DE UNA SOLUCIÓN FIJANDO ALGUNOS TRABAJADORES EN<br />

DETERMINADOS ROLES ..................................................................................................................... 48<br />

FIGURA 23. ARQUITECTURA DE TEAMSOFT + INCORPORANDO BICIAM ........................................ 49<br />

FIGURA 24. CLASES IMPLEMENTADAS PARA UTILIZAR LA BIBLIOTECA BICIAM EN TEAMSOFT +<br />

.............................................................................................................................................................. 51


ÍNDICE DE TABLAS<br />

TABLA 1.COMPARACIÓN ENTRE ALGORITMOS DE TRAYECTORIA MULTIOBJETIVO .................. 30<br />

TABLA 2.COMPARACIÓN ENTRE ALGORITMOS DE TRAYECTORIA MULTIOBJETIVO<br />

(CONTINUACIÓN) ................................................................................................................................. 31<br />

TABLA 3.COMPARACIÓN ENTRE ALGORITMOS DE TRAYECTORIA MULTIOBJETIVO<br />

(CONTINUACIÓN) ................................................................................................................................. 32<br />

TABLA 4.COMPARACIÓN ENTRE ALGORITMOS DE TRAYECTORIA MULTIOBJETIVO<br />

(CONTINUACIÓN) ................................................................................................................................. 33<br />

TABLA 5. COMPARACIÓN DE BIBLIOTECAS QUE IMPLEMENTAN ALGORITMOS<br />

METAHEURÍSTICOS ............................................................................................................................ 37<br />

TABLA 6. CLASES DEL PAQUETE CEIS.GRIAL.PROBLEM ................................................................ 44<br />

TABLA 7. CLASES DEL PAQUETE CEIS.GRIAL.GENERATOR ........................................................... 45<br />

TABLA 8. TAMAÑO DEL ESPACIO DE SOLUCIONES PARA LOS DIFERENTES ESCENARIOS A<br />

EVALUAR .............................................................................................................................................. 56<br />

TABLA 9. PARÁMETROS DE LOS ALGORITMOS ............................................................................... 57<br />

TABLA 10. CANTIDAD DE SOLUCIONES EN EL FRENTE DE PARETO VERDADERO TOMADO<br />

COMO REFERENCIA ............................................................................................................................ 58<br />

TABLA 11. CANTIDAD DE SOLUCIONES OBTENIDAS CON CADA ALGORITMO EN LOS<br />

DIFERENTES ESCENARIOS DE PRUEBA ........................................................................................... 58<br />

TABLA 12. VALORES MÍNIMO, PROMEDIO Y MÁXIMO DE LAS MÉTRICAS TASA DE ERROR,<br />

DISTANCIA GENERACIONAL Y DISPERSIÓN EN EL ESCENARIO 1. ................................................ 59<br />

TABLA 13. TIEMPO MÍNIMO, PROMEDIO Y MÁXIMO EN LA EJECUCIÓN DE LOS ALGORITMOS EN<br />

EL ESCENARIO 1. ................................................................................................................................ 60<br />

TABLA 14. VALORES MÍNIMO, PROMEDIO Y MÁXIMO DE LAS MÉTRICAS TASA DE ERROR,<br />

DISTANCIA GENERACIONAL Y DISPERSIÓN EN EL ESCENARIO 2. ................................................ 61<br />

TABLÓN 15. TIEMPO MÍNIMO, PROMEDIO Y MÁXIMO EN LA EJECUCIÓN DE LOS ALGORITMOS<br />

EN EL ESCENARIO 2............................................................................................................................ 62<br />

TABLA 16. VALORES MÍNIMO, PROMEDIO Y MÁXIMO DE LAS MÉTRICAS TASA DE ERROR,<br />

DISTANCIA GENERACIONAL Y DISPERSIÓN EN EL ESCENARIO 3. ................................................ 63


TABLA 17. TIEMPO MÍNIMO, PROMEDIO Y MÁXIMO EN LA EJECUCIÓN DE LOS ALGORITMOS EN<br />

EL ESCENARIO 3. ................................................................................................................................ 64<br />

TABLA 18. VALORES MÍNIMO, PROMEDIO Y MÁXIMO DE LAS MÉTRICAS TASA DE ERROR,<br />

DISTANCIA GENERACIONAL Y DISPERSIÓN EN EL ESCENARIO 4. ................................................ 65<br />

TABLA 19. TIEMPO MÍNIMO, PROMEDIO Y MÁXIMO EN LA EJECUCIÓN DE LOS ALGORITMOS EN<br />

EL ESCENARIO 4. ................................................................................................................................ 66<br />

TABLA 20. VALORES MÍNIMO, PROMEDIO Y MÁXIMO DE LAS MÉTRICAS TASA DE ERROR,<br />

DISTANCIA GENERACIONAL Y DISPERSIÓN EN EL ESCENARIO 5. ................................................ 67<br />

TABLA 21. TIEMPO MÍNIMO, PROMEDIO Y MÁXIMO EN LA EJECUCIÓN DE LOS ALGORITMOS EN<br />

EL ESCENARIO 5. ................................................................................................................................ 68


Introducción<br />

Resultan numerosos los <strong>problema</strong>s <strong>de</strong> la vida cotidiana en los que se tienen que satisfacer varios<br />

objetivos, en muchas ocasiones en conflicto. Estos son conocidos como <strong>problema</strong>s <strong>multiobjetivo</strong>.<br />

El reto <strong>de</strong> conformar equipos capaces <strong>de</strong> <strong>de</strong>sarrollar proyectos <strong>de</strong> software exitosos constituye un<br />

<strong>problema</strong> <strong>multiobjetivo</strong>, en tanto se requiere tomar en cuenta varios criterios como son, asignar a los<br />

roles <strong>de</strong>l equipo las personas con las competencias apropiadas, consi<strong>de</strong>rar las incompatibilida<strong>de</strong>s entre<br />

los miembros y la carga <strong>de</strong> trabajo, entre otros factores.<br />

La industria <strong>de</strong> software <strong>de</strong>be prestar especi<strong>al</strong> atención <strong>al</strong> proceso <strong>de</strong> formación <strong>de</strong> equipos ya que<br />

entre las princip<strong>al</strong>es causas <strong>de</strong>l fracaso <strong>de</strong> los proyectos <strong>de</strong> software se encuentran las asociadas a<br />

factores humanos (Nelson 2007) como son la asignación no a<strong>de</strong>cuada <strong>de</strong> person<strong>al</strong> y los <strong>problema</strong>s <strong>de</strong><br />

trabajo en equipo (Ángeles, Gómez et <strong>al</strong>. 2005; Neil 2006).<br />

Sin embargo, el proceso <strong>de</strong> formación <strong>de</strong> equipos se torna complejo en medianas y gran<strong>de</strong>s empresas,<br />

<strong>de</strong>bido a la gran cantidad <strong>de</strong> combinaciones <strong>de</strong> asignaciones posibles, en dimensiones relativamente<br />

significativas <strong>de</strong> roles a cubrir y empleados disponibles. Esto hace que esta etapa sea prácticamente<br />

imposible <strong>de</strong> abordar <strong>de</strong> manera eficiente, sin la ayuda <strong>de</strong> sistemas informatizados <strong>de</strong> soporte a la<br />

<strong>de</strong>cisión que se basen en <strong>al</strong>goritmos <strong>de</strong> solución <strong>de</strong> mo<strong>de</strong>los matemáticos que representen el <strong>problema</strong><br />

a resolver lo más objetivamente posible.<br />

En la bibliografía se reportan varios mo<strong>de</strong>los que abordan la asignación <strong>de</strong> person<strong>al</strong> a proyectos <strong>de</strong><br />

software entre los que se encuentran: (Barreto 2003; DeCarv<strong>al</strong>ho 2003; Acuña and Juristo 2005; André,<br />

B<strong>al</strong>doquín et <strong>al</strong>. 2008; Ngo-The and Ruhe 2008; André 2009).<br />

Este trabajo toma como antece<strong>de</strong>nte el mo<strong>de</strong>lo <strong>de</strong>sarrollado en el Centro <strong>de</strong> Referencia <strong>de</strong> Ingeniería<br />

<strong>de</strong> Software (CRIS) <strong>de</strong>l Instituto Superior Politécnico José Antonio Echeverría (ISPJAE), el cu<strong>al</strong> no solo<br />

consi<strong>de</strong>ra factores que favorecen la asignación individu<strong>al</strong> a los roles establecidos en un equipo <strong>de</strong><br />

<strong>de</strong>sarrollo <strong>de</strong> software sino que toma en cuenta factores que contribuyen a la formación <strong>de</strong>l equipo<br />

como un todo.<br />

El mo<strong>de</strong>lo propuesto en (André 2009; André, B<strong>al</strong>doquín et <strong>al</strong>. 2010; M. André, M.G. B<strong>al</strong>doquín et <strong>al</strong>.<br />

2011) respon<strong>de</strong> a un <strong>problema</strong> <strong>de</strong> optimización combinatorio <strong>multiobjetivo</strong>, en tanto, la asignación <strong>de</strong><br />

personas a equipos <strong>de</strong> proyecto <strong>de</strong> software consiste en asignar m trabajadores (según se requiere) a n<br />

roles necesarios para llevar a cabo un proyecto, consi<strong>de</strong>rando tres objetivos: maximizar las<br />

competencias <strong>de</strong> los trabajadores en el rol asignado, minimizar las incompatibilida<strong>de</strong>s entre los<br />

miembros <strong>de</strong>l equipo <strong>de</strong> <strong>de</strong>sarrollo y b<strong>al</strong>ancear la carga <strong>de</strong> trabajo. A<strong>de</strong>más, se propone una versión<br />

que incluye un cuarto objetivo asociado a minimizar el costo <strong>de</strong> <strong>de</strong>sarrollar software a distancia para el<br />

caso <strong>de</strong> organizaciones que así lo requieran. Asimismo el mo<strong>de</strong>lo incluye doce tipos <strong>de</strong> restricciones<br />

que limitan la asignación <strong>de</strong> personas a roles establecidos como incompatibles, regulan la cantidad<br />

1


máxima <strong>de</strong> roles a <strong>de</strong>sempeñar por un individuo y la carga <strong>de</strong> trabajo máxima que pue<strong>de</strong> tener un<br />

individuo, entre otros.<br />

Dado la factibilidad <strong>de</strong> utilizar <strong>al</strong>goritmos metaheurísticos en la solución <strong>de</strong> <strong>problema</strong>s combinatorios<br />

<strong>multiobjetivo</strong> (Coello, Veldhuizen et <strong>al</strong>. 2007), para el mo<strong>de</strong>lo propuesto en (André 2009) se utilizaron<br />

<strong>al</strong>goritmos <strong>de</strong> <strong>trayectoria</strong> como la Búsqueda Tabú (Glover 1986), el Recocido Simulado (Kirkpatrick,<br />

Gelatt et <strong>al</strong>. 1983), el Esc<strong>al</strong>ador <strong>de</strong> Colinas (Rich and Knight 1994) <strong>de</strong> Mejor Ascenso con Reinicio, e<br />

híbridos <strong>de</strong>l Procedimiento <strong>de</strong> búsqueda <strong>al</strong>eatorio, adaptativo y avaricioso (GRASP, por sus siglas en<br />

inglés) (Feo and Resen<strong>de</strong> 1995): GRASP con Búsqueda Tabú, GRASP con Recocido Simulado y<br />

GRASP con Esc<strong>al</strong>ador <strong>de</strong> Colinas <strong>de</strong> Mejor Ascenso. Sin embargo, solo se utilizó el método <strong>de</strong> solución<br />

<strong>de</strong> factores pon<strong>de</strong>rados, que construye una única función objetivo a partir <strong>de</strong> la suma <strong>de</strong> las funciones<br />

objetivos inici<strong>al</strong>es pon<strong>de</strong>radas según un v<strong>al</strong>or <strong>de</strong> peso, lo que no consi<strong>de</strong>ra el carácter <strong>multiobjetivo</strong> <strong>de</strong>l<br />

<strong>problema</strong>.<br />

Como parte <strong>de</strong>l trabajo <strong>de</strong>scrito en (André 2009), se dispone <strong>de</strong> una herramienta <strong>de</strong> soporte a la<br />

<strong>de</strong>cisión (Teamsoft + ) que implementa el mo<strong>de</strong>lo. Sin embargo, la herramienta no tiene implementado<br />

técnicas <strong>de</strong> solución que le permitan <strong>al</strong> <strong>de</strong>cisor enfrentar el proceso <strong>de</strong> asignación estableciendo<br />

priorida<strong>de</strong>s entre los objetivos e incluso dándole igu<strong>al</strong> importancia a todos los objetivos.<br />

Otro aspecto importante a señ<strong>al</strong>ar es que la arquitectura <strong>de</strong> Teamsoft + no fue diseñada consi<strong>de</strong>rando el<br />

empleo <strong>de</strong> bibliotecas <strong>de</strong> clases que faciliten el reuso <strong>de</strong> los <strong>al</strong>goritmos ya implementados, práctica muy<br />

difundida en la actu<strong>al</strong>idad.<br />

En (André 2009) se re<strong>al</strong>izaron pruebas experiment<strong>al</strong>es para v<strong>al</strong>idar la aplicabilidad <strong>de</strong>l mo<strong>de</strong>lo<br />

propuesto en escenarios <strong>de</strong> organizaciones medianas y gran<strong>de</strong>s, utilizando en todos los casos<br />

<strong>al</strong>goritmos <strong>de</strong> <strong>trayectoria</strong>. Sin embargo, aún para el método <strong>de</strong> factores pon<strong>de</strong>rados utilizado, no se<br />

ev<strong>al</strong>uó la aplicación <strong>de</strong>l mo<strong>de</strong>lo para organizaciones significativamente gran<strong>de</strong>s.<br />

Por otra parte, en la bibliografía consultada se reportan disímiles trabajos que utilizan <strong>al</strong>goritmos<br />

poblacion<strong>al</strong>es <strong>multiobjetivo</strong> en la solución <strong>de</strong> <strong>problema</strong>s <strong>de</strong> asignación (Ahuja, Orlin et <strong>al</strong>. 2000; Coello,<br />

Veldhuizen et <strong>al</strong>. 2002; Ramkumar and Ponnamb<strong>al</strong>am 2006; Coello, Veldhuizen et <strong>al</strong>. 2007; Sahu and<br />

Tapadar 2007), específicamente <strong>al</strong>goritmos genéticos (Fleurent and Ferland 1993; Chu and Beasley<br />

1997; Vazquez and Whitley 2000; Drezner 2002; Mishmast and Gelareh 2007; Sahu and Tapadar 2007).<br />

De igu<strong>al</strong> forma, existen diversas fuentes que refieren la capacidad <strong>de</strong> los <strong>al</strong>goritmos <strong>de</strong> <strong>trayectoria</strong><br />

basados en óptimo <strong>de</strong> Pareto para resolver <strong>problema</strong>s <strong>de</strong> optimización <strong>multiobjetivo</strong> (Czyzak and<br />

Jaszkiewicz 1998; Díaz 2001; Donoso, Albor et <strong>al</strong>. 2005; Jaffrès, Gorce et <strong>al</strong>. 2008; Reynolds, Corne et<br />

<strong>al</strong>. 2009) y específicamente <strong>al</strong>gunos tipos <strong>de</strong> <strong>problema</strong>s <strong>de</strong> asignación (Ulungu and Teghem 1994;<br />

Hapke, Jaszkiewicz et <strong>al</strong>. 2000; Baykasoglu, Ozbaku et <strong>al</strong>. 2002; Kulcsár, Erdélyi et <strong>al</strong>. 2007; Chang and<br />

Chyu 2008; Burke, Li et <strong>al</strong>. 2009; Hamm, Beißert et <strong>al</strong>. 2009). Sin embargo, en estos trabajos no se<br />

dispone <strong>de</strong> estudios experiment<strong>al</strong>es don<strong>de</strong> se ev<strong>al</strong>úe el <strong>de</strong>sempeño <strong>de</strong> ambos tipos <strong>de</strong> <strong>al</strong>goritmos<br />

2


(<strong>al</strong>goritmos <strong>de</strong> <strong>trayectoria</strong> <strong>multiobjetivo</strong> y <strong>al</strong>goritmos poblacion<strong>al</strong>es <strong>multiobjetivo</strong>) <strong>aplicados</strong> en la solución<br />

<strong>de</strong> <strong>problema</strong>s <strong>de</strong> asignación.<br />

Tomando en consi<strong>de</strong>ración lo planteado en el teorema No Free Lunch (Wolpert and Macready 1997), <strong>de</strong><br />

que no existe un método que sea absolutamente mejor que otro cuando se comparan en todas las<br />

funciones posibles, aún fijando una función a optimizar para un tipo <strong>de</strong> <strong>problema</strong>, un método pue<strong>de</strong> ser<br />

más eficiente que otro <strong>de</strong>pendiendo <strong>de</strong> la dimension<strong>al</strong>idad <strong>de</strong> las instancias a resolver y <strong>de</strong>l recurso a<br />

optimizar (c<strong>al</strong>idad <strong>de</strong> la solución o tiempo <strong>de</strong> ejecución), resulta necesario ev<strong>al</strong>uar el <strong>de</strong>sempeño <strong>de</strong><br />

<strong>al</strong>goritmos poblacion<strong>al</strong>es y <strong>de</strong> <strong>trayectoria</strong> en la solución <strong>de</strong>l mo<strong>de</strong>lo <strong>de</strong> asignación <strong>de</strong> recursos humanos<br />

a equipos <strong>de</strong> proyectos <strong>de</strong> software. Para ello <strong>de</strong>ntro <strong>de</strong>l grupo <strong>de</strong> investigación se <strong>de</strong>finieron dos<br />

trabajos, uno que ev<strong>al</strong>úa el <strong>de</strong>sempeño <strong>de</strong> <strong>al</strong>goritmos poblacion<strong>al</strong>es <strong>multiobjetivo</strong> y este trabajo don<strong>de</strong><br />

se ev<strong>al</strong>úa el <strong>de</strong>sempeño <strong>de</strong> los <strong>al</strong>goritmos <strong>de</strong> <strong>trayectoria</strong> <strong>multiobjetivo</strong>.<br />

Así, se <strong>de</strong>fine como <strong>problema</strong> <strong>de</strong> investigación que no se dispone <strong>de</strong> un estudio experiment<strong>al</strong> que<br />

permita ev<strong>al</strong>uar el <strong>de</strong>sempeño <strong>de</strong> los <strong>al</strong>goritmos <strong>de</strong> <strong>trayectoria</strong> <strong>multiobjetivo</strong> para solucionar el <strong>problema</strong><br />

<strong>de</strong> asignación <strong>de</strong> recursos humanos a equipos <strong>de</strong> proyecto <strong>de</strong> software para diferentes tamaños <strong>de</strong>l<br />

<strong>problema</strong>.<br />

A partir <strong>de</strong>l <strong>problema</strong> se formula la siguiente hipótesis <strong>de</strong> investigación: Con la aplicación <strong>de</strong> <strong>al</strong>goritmos<br />

<strong>de</strong> <strong>trayectoria</strong> <strong>multiobjetivo</strong> <strong>al</strong> <strong>problema</strong> <strong>de</strong> asignación <strong>de</strong> recursos humanos a equipos <strong>de</strong> proyecto <strong>de</strong><br />

software es posible obtener soluciones factibles en tiempos razonables para diferentes tamaños <strong>de</strong>l<br />

<strong>problema</strong>.<br />

Se entien<strong>de</strong> que las soluciones factibles son aquellas que cumplen con todas las restricciones <strong>de</strong>l<br />

<strong>problema</strong> y que dada las características y exigencias <strong>de</strong>l <strong>problema</strong>s planteado se consi<strong>de</strong>ran tiempos<br />

razonables, aquellos que no excedan los diez minutos, tomando como referencia los resultados<br />

obtenidos en (André 2009).<br />

Se <strong>de</strong>fine como objeto <strong>de</strong> estudio los <strong>al</strong>goritmos metaheurísticos <strong>de</strong> <strong>trayectoria</strong> y las técnicas <strong>de</strong><br />

solución <strong>de</strong> <strong>problema</strong>s <strong>de</strong> optimización <strong>multiobjetivo</strong> y como campo <strong>de</strong> acción los <strong>al</strong>goritmos<br />

metaheurísticos <strong>de</strong> <strong>trayectoria</strong> en la solución <strong>de</strong> <strong>problema</strong>s <strong>de</strong> asignación <strong>multiobjetivo</strong>.<br />

Para resolver el <strong>problema</strong> <strong>de</strong> investigación se <strong>de</strong>finió el siguiente objetivo gener<strong>al</strong>: Implementar<br />

<strong>al</strong>goritmos <strong>de</strong> <strong>trayectoria</strong> <strong>multiobjetivo</strong> en la herramienta Teamsoft + que permitan ev<strong>al</strong>uar el <strong>de</strong>sempeño<br />

<strong>de</strong> estos para solucionar el <strong>problema</strong> <strong>de</strong> asignación <strong>de</strong> recursos humanos a equipos <strong>de</strong> proyecto <strong>de</strong><br />

software para diferentes tamaños <strong>de</strong>l <strong>problema</strong>.<br />

A partir <strong>de</strong>l análisis <strong>de</strong>l objetivo gener<strong>al</strong> se <strong>de</strong>rivaron los siguientes objetivos específicos:<br />

1. Incorporar en Teamsoft + <strong>al</strong>goritmos metaheurísticos <strong>de</strong> <strong>trayectoria</strong> <strong>multiobjetivo</strong> para dar solución<br />

<strong>al</strong> <strong>problema</strong> <strong>de</strong> asignación <strong>de</strong> recursos humanos a equipos <strong>de</strong> proyecto <strong>de</strong> <strong>de</strong>sarrollo <strong>de</strong><br />

software.<br />

2. Dotar a Teamsoft + <strong>de</strong> una arquitectura que permita el uso <strong>de</strong> una biblioteca <strong>de</strong> <strong>al</strong>goritmos<br />

metaheurísticos.<br />

3


3. Ev<strong>al</strong>uar el <strong>de</strong>sempeño <strong>de</strong> los <strong>al</strong>goritmos implementados para diferentes tamaños <strong>de</strong>l <strong>problema</strong>.<br />

Para lograr los objetivos trazados y <strong>de</strong>mostrar la hipótesis establecida se acometieron las siguientes<br />

tareas:<br />

1. Estudio <strong>de</strong>l mo<strong>de</strong>lo <strong>de</strong> asignación <strong>de</strong> recursos humanos a equipos <strong>de</strong> proyecto <strong>de</strong> software<br />

<strong>de</strong>sarrollado en el CRIS, así como <strong>de</strong> los métodos y <strong>al</strong>goritmos ya implementados.<br />

2. Estudio <strong>de</strong>l estado <strong>de</strong>l arte <strong>de</strong> las investigaciones don<strong>de</strong> se aplican <strong>al</strong>goritmos metaheurísticos<br />

en la solución <strong>de</strong> <strong>problema</strong>s <strong>de</strong> optimización <strong>multiobjetivo</strong>, que incluye:<br />

Los <strong>problema</strong>s <strong>de</strong> optimización <strong>multiobjetivo</strong>.<br />

Las técnicas <strong>de</strong> solución a <strong>problema</strong>s <strong>de</strong> optimización <strong>multiobjetivo</strong>: método lexicográfico y<br />

<strong>multiobjetivo</strong> puro.<br />

Métricas <strong>de</strong> rendimiento para ev<strong>al</strong>uar el <strong>de</strong>sempeño <strong>de</strong> <strong>al</strong>goritmos <strong>de</strong> optimización<br />

<strong>multiobjetivo</strong>.<br />

Las variantes <strong>de</strong> <strong>al</strong>goritmos metaheurísticos <strong>de</strong> <strong>trayectoria</strong> basados en óptimo <strong>de</strong> Pareto y su<br />

aplicación en <strong>problema</strong>s <strong>de</strong> asignación.<br />

3. Estudio <strong>de</strong> bibliotecas <strong>de</strong> clases para resolver <strong>problema</strong>s <strong>de</strong> optimización.<br />

4. Modificación <strong>de</strong> la biblioteca BICIAM para resolver <strong>problema</strong>s <strong>de</strong> optimización <strong>multiobjetivo</strong>.<br />

5. Implementación <strong>de</strong> los <strong>al</strong>goritmos y métodos propuestos en la biblioteca BICIAM.<br />

6. Rediseño <strong>de</strong> la arquitectura <strong>de</strong> la herramienta Teamsoft + para incorporar la biblioteca BICIAM.<br />

7. Implementación <strong>de</strong> los cambios en la herramienta Teamsoft + que apoye <strong>al</strong> <strong>de</strong>cisor a la hora <strong>de</strong><br />

elegir entre varias soluciones.<br />

8. Diseño <strong>de</strong> un procedimiento para generar los datos <strong>de</strong> los experimentos.<br />

9. Diseño <strong>de</strong> casos <strong>de</strong> prueba para v<strong>al</strong>idar la hipótesis establecida.<br />

10. Ejecución <strong>de</strong> experimentos utilizando los casos <strong>de</strong> prueba diseñados.<br />

11. Análisis comparativo <strong>de</strong> los resultados obtenidos.<br />

El trabajo está estructurado en tres capítulos. En el Capítulo 1 se presentan los fundamentos teóricos<br />

<strong>de</strong> la investigación. Se <strong>de</strong>scribe el <strong>problema</strong> <strong>de</strong> asignación <strong>de</strong> recursos humanos a equipos <strong>de</strong> proyecto<br />

<strong>de</strong> software y se enuncian conceptos fundament<strong>al</strong>es asociados a la optimización <strong>multiobjetivo</strong>. Se<br />

re<strong>al</strong>iza un análisis <strong>de</strong> las variantes <strong>multiobjetivo</strong> <strong>de</strong> <strong>al</strong>goritmos <strong>de</strong> <strong>trayectoria</strong> y su aplicación a<br />

<strong>problema</strong>s <strong>de</strong> asignación y un estudio <strong>de</strong> bibliotecas <strong>de</strong> clases existentes que implementan <strong>al</strong>goritmos<br />

metaheurísticos.<br />

En el Capítulo 2 se presenta la solución propuesta, mostrando las modificaciones re<strong>al</strong>izadas a la<br />

biblioteca BICIAM para que sea utilizada en la solución <strong>de</strong> <strong>problema</strong>s <strong>multiobjetivo</strong>. Se enuncian los<br />

<strong>al</strong>goritmos <strong>de</strong> <strong>trayectoria</strong> <strong>multiobjetivo</strong> a implementar y las modificaciones necesarias para incorporarlos<br />

a la biblioteca, así como la incorporación <strong>de</strong> BICIAM a la herramienta Teamsoft + .<br />

4


En el Capítulo 3 se <strong>de</strong>scribe el <strong>al</strong>goritmo <strong>de</strong> generación <strong>de</strong> datos diseñado para re<strong>al</strong>izar los<br />

experimentos, el diseño <strong>de</strong> los casos <strong>de</strong> prueba y la comparación <strong>de</strong> los resultados obtenidos en los<br />

experimentos re<strong>al</strong>izados, haciendo uso <strong>de</strong> los diferentes <strong>al</strong>goritmos propuestos.<br />

5


Capítulo 1. <strong>Algoritmos</strong> metaheurísticos <strong>de</strong> <strong>trayectoria</strong> para resolver <strong>problema</strong>s<br />

<strong>multiobjetivo</strong><br />

1.1 Introducción<br />

En el capítulo se re<strong>al</strong>iza un estudio <strong>de</strong>l mo<strong>de</strong>lo form<strong>al</strong> para la asignación <strong>de</strong> recursos humanos a<br />

equipos <strong>de</strong> proyectos <strong>de</strong> software y <strong>de</strong> los conceptos asociados a los <strong>problema</strong>s <strong>multiobjetivo</strong>. Se<br />

presentan las técnicas <strong>de</strong> solución: método lexicográfico y <strong>multiobjetivo</strong> puro y diversas variantes <strong>de</strong><br />

<strong>al</strong>goritmos <strong>de</strong> <strong>trayectoria</strong> basados en el concepto <strong>de</strong> óptimo <strong>de</strong> Pareto. Por último, se re<strong>al</strong>iza un estudio<br />

<strong>de</strong> diversas métricas para ev<strong>al</strong>uar el <strong>de</strong>sempeño <strong>de</strong> <strong>al</strong>goritmos <strong>multiobjetivo</strong> y <strong>de</strong> bibliotecas <strong>de</strong> clases<br />

que implementan <strong>al</strong>goritmos metaheurísticos.<br />

1.2 Problema <strong>de</strong> asignación<br />

El término <strong>de</strong> <strong>problema</strong> <strong>de</strong> asignación aparece por primera vez en 1952. El <strong>problema</strong> <strong>de</strong> asignación<br />

clásico (Pentico 2005) plantea la asignación <strong>de</strong> n tarea a n agente, minimizando el costo <strong>de</strong> las<br />

asignaciones, acor<strong>de</strong> <strong>al</strong> siguiente mo<strong>de</strong>lo matemático (Pentico 2005):<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

Don<strong>de</strong> si el agente i es asignado a la tarea j y 0 en caso contrario, y es el costo <strong>de</strong> asignar el<br />

agente i a la tarea j.<br />

Existen muchas variaciones <strong>de</strong> este <strong>problema</strong> (Pentico 2005), que pue<strong>de</strong>n ser clasificadas en tres tipos:<br />

asignación uno a uno (asignación clásica), asignación uno a muchos (asignación <strong>de</strong> múltiples agentes a<br />

una tarea o asignación <strong>de</strong> múltiples tareas a un mismo agente) y asignación muchos a muchos (la<br />

asignación <strong>de</strong> múltiples agentes a múltiples tareas).<br />

Algunos <strong>problema</strong>s <strong>de</strong> asignación son conocidos como NP-completos, que son aquellos <strong>problema</strong>s para<br />

los que no se ha encontrado un <strong>al</strong>goritmo que h<strong>al</strong>le su estado óptimo en un tiempo polinomi<strong>al</strong>.<br />

Entre estos se pue<strong>de</strong> citar el <strong>problema</strong> <strong>de</strong> asignación cuadrática (Garey and Johnson 1979), que es un<br />

tipo <strong>de</strong> <strong>problema</strong> <strong>de</strong> asignación uno a uno. Otro conjunto <strong>de</strong> <strong>problema</strong>s <strong>de</strong> planificación han sido<br />

<strong>de</strong>mostrado como <strong>problema</strong>s NP-Completos para diferentes instancias, t<strong>al</strong>es como (Garey and Johnson<br />

1979): el <strong>problema</strong> <strong>de</strong> planificación multiprocesador, el <strong>problema</strong> <strong>de</strong> planificación <strong>de</strong> restricciones <strong>de</strong><br />

prece<strong>de</strong>ncia, el <strong>problema</strong> <strong>de</strong> planificación <strong>de</strong> restricciones <strong>de</strong> recursos, el <strong>problema</strong> <strong>de</strong> planificación con<br />

fecha límite individu<strong>al</strong> y el <strong>problema</strong> <strong>de</strong> planificación con preferencias, entre otros.<br />

6


1.3 Mo<strong>de</strong>lo <strong>de</strong> asignación <strong>de</strong> recursos humanos a equipos <strong>de</strong> proyectos <strong>de</strong> <strong>de</strong>sarrollo <strong>de</strong><br />

software<br />

El <strong>problema</strong> <strong>de</strong> asignación <strong>de</strong> recursos humanos a equipos <strong>de</strong> proyectos <strong>de</strong> software es un <strong>problema</strong> <strong>de</strong><br />

asignación muchos a muchos. El <strong>problema</strong> plantea la asignación <strong>de</strong> n personas a m roles, don<strong>de</strong> una<br />

persona pue<strong>de</strong> <strong>de</strong>sempeñar más <strong>de</strong> un rol y un rol pue<strong>de</strong> ser <strong>de</strong>sempeñado por más <strong>de</strong> una persona.<br />

En la bibliografía se reportan varios mo<strong>de</strong>los que abordan la asignación <strong>de</strong> person<strong>al</strong> a proyectos <strong>de</strong><br />

software, entre los que se encuentran (Barreto 2003; DeCarv<strong>al</strong>ho 2003; Acuña and Juristo 2005; Arias<br />

2006; André, B<strong>al</strong>doquín et <strong>al</strong>. 2008; Ngo-The and Ruhe 2008; André 2009).<br />

Este trabajo toma como antece<strong>de</strong>nte el mo<strong>de</strong>lo <strong>de</strong>sarrollado por el CRIS dado que no solo consi<strong>de</strong>ra<br />

factores que favorecen la asignación individu<strong>al</strong> a los roles establecidos en un equipo <strong>de</strong> <strong>de</strong>sarrollo <strong>de</strong><br />

software sino que toma en cuenta factores que contribuyen a la formación <strong>de</strong>l equipo como un todo. El<br />

mo<strong>de</strong>lo (André, B<strong>al</strong>doquín et <strong>al</strong>. 2008; Rodríguez 2008; André 2009; M. André, M.G. B<strong>al</strong>doquín et <strong>al</strong>.<br />

2011) toma en cuenta los siguientes objetivos:<br />

Maximizar las competencias <strong>de</strong> los trabajadores en el rol o los roles asignados.<br />

<br />

, siendo = 1 si el empleado i es asignado <strong>al</strong> rol j y 0 en caso contrario, y<br />

<br />

<br />

la competencia neta <strong>de</strong>l empleado i para <strong>de</strong>sempeñar el rol j.<br />

Minimizar las incompatibilida<strong>de</strong>s entre los miembros <strong>de</strong> un equipo <strong>de</strong> proyecto.<br />

<br />

<br />

<br />

<br />

, siendo la incompatibilidad existente entre los trabajadores h e i y =<br />

1 si el empleado i es asignado <strong>al</strong> menos a un rol y 0 en caso contrario.<br />

B<strong>al</strong>ancear la carga <strong>de</strong>l person<strong>al</strong> <strong>de</strong>l equipo.<br />

<br />

<br />

, don<strong>de</strong> y <br />

<br />

7<br />

<br />

<br />

<br />

<br />

<br />

, es la<br />

carga <strong>de</strong> trabajo <strong>de</strong>l empleado i en el rol j según los proyectos a los que está asignado y es la<br />

carga <strong>de</strong> trabajo que implica asumir el rol j en un proyecto <strong>de</strong>terminado.<br />

Minimizar el costo <strong>de</strong> trabajar a distancia. Este es un objetivo que no está incluido en el mo<strong>de</strong>lo<br />

por <strong>de</strong>fecto, sino en una versión ampliada ya que solo es aplicable a organizaciones que<br />

enfrentan esta variante <strong>de</strong> <strong>de</strong>sarrollo.<br />

<br />

, don<strong>de</strong> es el costo <strong>de</strong>l empleado i según la lejanía que tenga <strong>de</strong>l proyecto<br />

<br />

<br />

y el rol j que va a <strong>de</strong>sempeñar.<br />

El mo<strong>de</strong>lo toma en cuenta los siguientes tipos <strong>de</strong> restricciones:<br />

Los roles <strong>de</strong>ben ser cubiertos en función <strong>de</strong> la cantidad necesaria <strong>de</strong> personas a <strong>de</strong>sempeñarlo.<br />

<br />

<br />

,<br />

don<strong>de</strong> <br />

Una persona no pue<strong>de</strong> <strong>de</strong>sempeñar <strong>al</strong> mismo tiempo roles que se consi<strong>de</strong>ren incompatibles<br />

entre sí.<br />

, siendo r = 1,…,R


Restringir el número máximo <strong>de</strong> roles que pue<strong>de</strong> <strong>de</strong>sempeñar cu<strong>al</strong>quier trabajador en el<br />

proyecto a una cantidad fijada por el usuario (L).<br />

,<br />

<br />

Para que una persona <strong>de</strong>sempeñe un rol <strong>de</strong>be cumplir los requisitos mínimos <strong>de</strong> nivel <strong>de</strong><br />

competencia para <strong>de</strong>sempeñar dicho rol.<br />

, , don<strong>de</strong> es el conjunto <strong>de</strong> competencias necesarias para<br />

<strong>de</strong>sempeñar el rol j.<br />

La carga <strong>de</strong> trabajo tot<strong>al</strong> asignada a un empleado no <strong>de</strong>be ser mayor que un v<strong>al</strong>or máximo.<br />

<br />

,<br />

don<strong>de</strong> U es el v<strong>al</strong>or máximo <strong>de</strong> la carga que pue<strong>de</strong> asumir cada empleado y<br />

<br />

es la carga <strong>de</strong> trabajo que implica asumir el rol j en un proyecto <strong>de</strong>terminado.<br />

Garantizar que la variable tome v<strong>al</strong>or 1 ó 0.<br />

<br />

<br />

,<br />

<br />

Otro conjunto <strong>de</strong> restricciones refleja la relación que existe entre los roles <strong>de</strong> Belbin 1 , los tipos<br />

psicológicos <strong>de</strong> Myers Briggs 2 y los roles a <strong>de</strong>sempeñar en un equipo <strong>de</strong> proyecto <strong>de</strong> software (André,<br />

B<strong>al</strong>doquín et <strong>al</strong>. 2008; Rodríguez 2008; André 2009; M. André, M.G. B<strong>al</strong>doquín et <strong>al</strong>. 2011):<br />

Un conjunto <strong>de</strong> restricciones garantizan que en el equipo <strong>de</strong> <strong>de</strong>sarrollo se representen las tres<br />

categorías <strong>de</strong> roles propuestas por Belbin (roles <strong>de</strong> acción, roles ment<strong>al</strong>es y roles soci<strong>al</strong>es).<br />

<br />

, <br />

, <br />

<br />

<br />

<br />

<br />

En el equipo <strong>de</strong> trabajo la preferencia <strong>de</strong> <strong>de</strong>sempeñar roles <strong>de</strong> acción <strong>de</strong>be sobrepasar la<br />

preferencia por <strong>de</strong>sempeñar los roles ment<strong>al</strong>es.<br />

<br />

<br />

<br />

<br />

En el equipo <strong>de</strong> trabajo la preferencia <strong>de</strong> <strong>de</strong>sempeñar roles ment<strong>al</strong>es <strong>de</strong>ben sobrepasar la<br />

preferencia por <strong>de</strong>sempeñar los roles soci<strong>al</strong>es.<br />

<br />

<br />

<br />

<br />

La persona que <strong>de</strong>sarrolla el rol <strong>de</strong> Jefe <strong>de</strong> Proyecto <strong>de</strong>be tener como preferido los roles <strong>de</strong><br />

Belbin: Impulsor o Coordinador.<br />

, asumiendo que en una matriz D la preferencia o no por <strong>de</strong>sempeñar los roles<br />

Impulsor y Coordinador se registran en las columnas 1 y 7 respectivamente.<br />

En el equipo <strong>al</strong> menos una persona <strong>de</strong>be tener como preferido el rol ment<strong>al</strong> Cerebro.<br />

1 Meredith Belbin es el creador <strong>de</strong>l test que lleva su apellido y que i<strong>de</strong>ntifica la preferencia <strong>de</strong> las personas por <strong>de</strong>sempeñar <strong>al</strong>gunos <strong>de</strong> los nueve roles que<br />

<strong>de</strong>fine están presentes en un equipo. La metodología establece que en un equipo <strong>de</strong>be haber presencia <strong>de</strong> las tres categorías <strong>de</strong> roles (ment<strong>al</strong>es, soci<strong>al</strong>es y <strong>de</strong><br />

acción) don<strong>de</strong> <strong>de</strong>ben predominar los roles <strong>de</strong> acción y no <strong>de</strong>be existir una <strong>al</strong>ta presencia <strong>de</strong> roles soci<strong>al</strong>es ni ment<strong>al</strong>es.<br />

2 Test que mi<strong>de</strong> cuatro dimensiones diferentes <strong>de</strong> las preferencias humanas: Extroversión (E)-Introversión (I), Intuición (N)-Sentidos (S), Emoción (F)-<br />

Pensamiento (T), y Juicio (J)-Percepción (P). A partir <strong>de</strong> los v<strong>al</strong>ores <strong>de</strong> cada dimensión se i<strong>de</strong>ntifica el tipo psicológico <strong>de</strong> la persona entre los 16 tipos<br />

posibles.<br />

8


,<br />

asumiendo que en la columna 4 <strong>de</strong> la matriz D se registra la preferencia o no por<br />

el rol Cerebro.<br />

La persona que <strong>de</strong>sarrolla el rol Jefe <strong>de</strong> Proyecto <strong>de</strong>be ser extrovertida y planificada (subtipo E_<br />

_J) según el test <strong>de</strong> Myers Briggs.<br />

, asumiendo que en una matriz B, la dimensión E/I se registra en la columna 1 y la<br />

<br />

J/P en la columna 4.<br />

1.4 Problemas <strong>de</strong> optimización <strong>multiobjetivo</strong><br />

Un <strong>problema</strong> <strong>de</strong> optimización <strong>multiobjetivo</strong> (POM) es aquel que incluye un conjunto <strong>de</strong> funciones<br />

objetivo a optimizar (dos o más funciones). El objetivo <strong>de</strong> este tipo <strong>de</strong> <strong>problema</strong> es encontrar los<br />

parámetros necesarios que optimicen el vector <strong>de</strong> funciones objetivo y satisfagan las restricciones<br />

(Coello, Veldhuizen et <strong>al</strong>. 2007). La asignación <strong>de</strong> recursos humanos a equipos e proyectos <strong>de</strong> software<br />

es un <strong>problema</strong> <strong>de</strong> optimización <strong>multiobjetivo</strong>.<br />

Un <strong>problema</strong> <strong>de</strong> optimización <strong>multiobjetivo</strong> es <strong>de</strong>finido como la minimización (o maximización) <strong>de</strong> F(X) =<br />

(f1(x),…,fk(x)) sujeto a gi(x) 0, i = {1,..,m}, y hj(x) = 0, j = {1,…,p}, x . Este tipo <strong>de</strong> <strong>problema</strong> consiste<br />

en k objetivos reflejados en las k funciones objetivos, m + p restricciones <strong>de</strong> las funciones objetivos y n<br />

variables <strong>de</strong> <strong>de</strong>cisión. El objetivo que se persigue es encontrar el vector x = (x1,…,xn) que satisfaga las<br />

restricciones <strong>de</strong>l <strong>problema</strong> y optimice la función vectori<strong>al</strong> F(x).<br />

Los <strong>problema</strong>s <strong>de</strong> optimización <strong>multiobjetivo</strong> no obtienen como resultado <strong>de</strong> la búsqueda una única<br />

solución, sino un conjunto <strong>de</strong> soluciones, por lo que requieren <strong>de</strong>l <strong>de</strong>cisor para elegir una <strong>de</strong> las<br />

soluciones <strong>de</strong>l conjunto. El concepto <strong>de</strong> óptimo cambia, ya que lo que se preten<strong>de</strong> es encontrar buenos<br />

compromisos entre los diferentes objetivos.<br />

A continuación se <strong>de</strong>finen <strong>al</strong>gunos conceptos necesarios (Coello, Veldhuizen et <strong>al</strong>. 2007), asumiendo un<br />

<strong>problema</strong> <strong>de</strong> minimización:<br />

Óptimo <strong>de</strong> Pareto: Una solución x es llamada óptimo <strong>de</strong> Pareto con respecto a si y solo si, no<br />

existe x´ para el cu<strong>al</strong> domina a<br />

<br />

. Es <strong>de</strong>cir x´ es un óptimo <strong>de</strong> Pareto si no existe ningún vector factible x<br />

que disminuya <strong>al</strong>gún criterio sin causar un aumento simultáneo en <strong>al</strong> menos uno <strong>de</strong> los otros<br />

criterios.<br />

Dominancia <strong>de</strong> Pareto: Un vector u = (u1,…,uk) se dice que domina a otro vector v = (v1,…,vk) si y<br />

solo si u es parci<strong>al</strong>mente menor que v (<strong>de</strong>notado por u v).<br />

En otras p<strong>al</strong>abras, x domina a y si x es mejor que y en <strong>al</strong> menos una <strong>de</strong> las funciones objetivos y no<br />

es peor en ninguna <strong>de</strong> las restantes.<br />

Conjunto óptimo <strong>de</strong> Pareto: Para un <strong>problema</strong> <strong>de</strong> optimización <strong>multiobjetivo</strong> dado, F(x), el conjunto<br />

óptimo <strong>de</strong> Pareto, P*, es <strong>de</strong>finido como . El conjunto óptimo <strong>de</strong><br />

9


Pareto está compuesto por aquellos elementos x que pertenecen a , t<strong>al</strong> que no existe ningún x’<br />

perteneciente a para el cuál x’ domina a x.<br />

Frente <strong>de</strong> Pareto: Para un <strong>problema</strong> <strong>de</strong> optimización <strong>multiobjetivo</strong> dado, F(x), y el conjunto óptimo<br />

<strong>de</strong> Pareto, P*, el frente <strong>de</strong> Pareto PF* es <strong>de</strong>finido como .<br />

En los <strong>problema</strong>s <strong>de</strong> optimización <strong>multiobjetivo</strong> lo que se preten<strong>de</strong> es encontrar el conjunto <strong>de</strong><br />

soluciones no dominadas <strong>de</strong>l espacio <strong>de</strong> soluciones visitadas. Un ejemplo <strong>de</strong> esto se muestra en la<br />

Figura 1. Asumiendo un <strong>problema</strong> <strong>de</strong> optimización <strong>multiobjetivo</strong> que propone maximizar dos funciones<br />

objetivo f1 y f2, en la Figura 1 se muestran tres puntos (X,Y,Z) que son todas las soluciones posibles <strong>de</strong><br />

las funciones a maximizar. Como se observa, X y Y son soluciones no dominadas entre sí y Z está<br />

dominada por X, por lo que X y Y son parte <strong>de</strong> las soluciones óptimas <strong>de</strong> Pareto (soluciones no<br />

dominadas).<br />

Figura 1. Dominancia asumiendo maximización. X domina a Z. X y Y son no dominadas entre sí.<br />

1.5 Técnicas <strong>de</strong> optimización <strong>multiobjetivo</strong><br />

En los <strong>problema</strong>s <strong>de</strong> optimización <strong>multiobjetivo</strong> existen diversas maneras <strong>de</strong> representar las<br />

preferencias <strong>de</strong>l <strong>de</strong>cisor (Coello, Veldhuizen et <strong>al</strong>. 2007). Algunas <strong>de</strong> las técnicas más simples proponen<br />

transformar el <strong>problema</strong> <strong>multiobjetivo</strong> en un <strong>problema</strong> esc<strong>al</strong>ar, pon<strong>de</strong>rando las funciones objetivo, como<br />

es el caso <strong>de</strong>l método combinación line<strong>al</strong> <strong>de</strong> pesos. Otros proponen, tratar el <strong>problema</strong> como<br />

monobjetivo seleccionando solo una <strong>de</strong> las funciones objetivos y tratando las restantes como<br />

restricciones o consi<strong>de</strong>rar varios objetivos simultáneamente.<br />

1.5.1 Combinación line<strong>al</strong> <strong>de</strong> pesos<br />

La combinación line<strong>al</strong> <strong>de</strong> pesos, también conocido como método <strong>de</strong> factores pon<strong>de</strong>rados (Cab<strong>al</strong>lero and<br />

Hernán<strong>de</strong>z 2003; Coello, Veldhuizen et <strong>al</strong>. 2007) se basa en la i<strong>de</strong>a <strong>de</strong> convertir el <strong>problema</strong><br />

<strong>multiobjetivo</strong> en un <strong>problema</strong> esc<strong>al</strong>ar, construyendo una única función objetivo que sea la suma <strong>de</strong> las<br />

10


funciones objetivos inici<strong>al</strong>es, pon<strong>de</strong>radas según un peso que se le asigna a cada una <strong>de</strong> ellas. De aquí<br />

que para cada pon<strong>de</strong>ración posible, se obtenga un <strong>problema</strong> esc<strong>al</strong>ar consistente en minimizar o<br />

maximizar la función resultante, sujeta a las restricciones <strong>de</strong>l <strong>problema</strong> origin<strong>al</strong>.<br />

El <strong>problema</strong> se plantea como sigue (Sunar and Kahraman 2001):<br />

<br />

<br />

<br />

<br />

Don<strong>de</strong> es una constante que indica el peso asignado a , y la suma <strong>de</strong> todos los pesos asignados a<br />

las funciones objetivos <strong>de</strong>be ser 1.<br />

El princip<strong>al</strong> inconveniente <strong>de</strong> esta técnica es el hecho <strong>de</strong> asignarle v<strong>al</strong>ores a los pesos, lo cu<strong>al</strong> pue<strong>de</strong><br />

resultar difícil para el <strong>de</strong>cisor. A<strong>de</strong>más, pue<strong>de</strong>n obtenerse igu<strong>al</strong>es soluciones para diferentes<br />

combinaciones <strong>de</strong> pesos. Por otra parte esta técnica no refleja la re<strong>al</strong>idad <strong>multiobjetivo</strong> <strong>de</strong>l <strong>problema</strong>.<br />

1.5.2 Or<strong>de</strong>namiento lexicográfico<br />

En la técnica or<strong>de</strong>namiento lexicográfico el <strong>de</strong>cisor asigna a cada objetivo una prioridad según la<br />

importancia <strong>de</strong>l mismo (<strong>de</strong> mejor a peor). La solución óptima es obtenida con la minimización (o<br />

maximización) <strong>de</strong> la función objetivo <strong>de</strong> mayor prioridad, y luego <strong>de</strong> optimizar este v<strong>al</strong>or obtenido para la<br />

función inici<strong>al</strong> se convierte en una restricción <strong>de</strong>l <strong>problema</strong> y se pasa a optimizar la próxima función<br />

objetivo. Esto se re<strong>al</strong>iza <strong>de</strong> manera iterativa y <strong>de</strong> acuerdo <strong>al</strong> or<strong>de</strong>n <strong>de</strong> importancia <strong>de</strong> los objetivos.<br />

La representación <strong>de</strong>l método es la siguiente. Se minimiza la función objetivo <strong>de</strong> mejor prioridad:<br />

Min f1(x) sujeto a gj(x) 0; j = 1,2, …, m<br />

Y se obtiene la solución x1 * y f1 * = f(x1 * ). Entonces el segundo <strong>problema</strong> es:<br />

Min f2(x) sujeto a gj(x) 0; j = 1,2, …, m y f1(x) >= f1 *<br />

Y se obtiene la solución x2 * y f2 * = f(x2 * ). Este procedimiento se repite hasta que los k objetivos han sido<br />

consi<strong>de</strong>rados.<br />

Esta técnica pue<strong>de</strong> ser aplicada <strong>al</strong> <strong>problema</strong> en cuestión, aunque supone que el <strong>de</strong>cisor <strong>de</strong>be conocer<br />

el nivel <strong>de</strong> prioridad que dará a los objetivos.<br />

1.5.3 Multiobjetivo puro<br />

Otra técnica <strong>de</strong> solución a este tipo <strong>de</strong> <strong>problema</strong> es tratarlo como <strong>multiobjetivo</strong> puro, y para ello <strong>de</strong>be<br />

encontrarse el conjunto <strong>de</strong> soluciones óptimas <strong>de</strong> Pareto (Coello, Veldhuizen et <strong>al</strong>. 2007).<br />

Se dice que una solución óptima <strong>de</strong> Pareto es aquella t<strong>al</strong> que no existe ninguna otra solución <strong>al</strong>canzable<br />

que la domine. Esta solución óptima gener<strong>al</strong>mente produce más <strong>de</strong> una solución, conocidas como<br />

soluciones no dominadas.<br />

11


Esta técnica resulta conveniente en tanto no necesita que el <strong>de</strong>cisor asigne pesos o priorida<strong>de</strong>s a los<br />

objetivos a diferencia <strong>de</strong> las técnicas anteriores y mo<strong>de</strong>la perfectamente la re<strong>al</strong>idad <strong>de</strong>l <strong>problema</strong>.<br />

1.6 <strong>Algoritmos</strong> metaheurísticos<br />

Dado que el mo<strong>de</strong>lo <strong>de</strong> asignación <strong>de</strong> recursos humanos a equipos <strong>de</strong> proyecto <strong>de</strong> software<br />

correspon<strong>de</strong> a un <strong>problema</strong> combinatorio, es necesario emplear <strong>al</strong>goritmos heurísticos en su solución.<br />

Los <strong>al</strong>goritmos heurísticos no garantizan obtener una solución óptima, pero ofrecen en un tiempo<br />

razonable <strong>de</strong> ejecución una “buena solución” <strong>al</strong> <strong>problema</strong> planteado (Martí 2003).<br />

Una <strong>de</strong>finición form<strong>al</strong> <strong>de</strong> los métodos heurísticos fue la enunciada por Lieberman en (Hillier and<br />

Lieberman 2006) don<strong>de</strong> los <strong>de</strong>fine como “...un procedimiento que trata <strong>de</strong> <strong>de</strong>scribir una solución factible<br />

muy buena, pero no necesariamente una solución óptima, para el <strong>problema</strong> específico bajo<br />

consi<strong>de</strong>ración”.<br />

En <strong>al</strong>gunas ocasiones no es necesario <strong>de</strong>sarrollar heurísticas <strong>de</strong> propósito específico para enfrentar los<br />

<strong>problema</strong>s, por lo que surgen las metaheurísticas, que brindan un enfoque flexible para enfrentar<br />

<strong>problema</strong>s complejos.<br />

Los <strong>al</strong>goritmos metaheurísticos <strong>de</strong>ben su nombre a Fred Glover quien lo <strong>de</strong>fine en 1986 (Glover 1986):<br />

“Una metaheurística es referida a la estrategia maestra que guía y modifica otras heurísticas para<br />

producir soluciones más <strong>al</strong>lá <strong>de</strong> aquellas que son norm<strong>al</strong>mente generadas en la búsqueda <strong>de</strong> un óptimo<br />

loc<strong>al</strong>. Las heurísticas guiadas por una estrategia meta pue<strong>de</strong>n ser un procedimiento <strong>de</strong> <strong>al</strong>to nivel o<br />

pue<strong>de</strong>n contener una <strong>de</strong>scripción <strong>de</strong> movimientos permitidos para trasformar una solución en otra,<br />

conjuntamente con una regla asociada <strong>de</strong> ev<strong>al</strong>uación”.<br />

Lieberman <strong>de</strong>fine las metaheurísticas como (Hillier and Lieberman 2006) “...un método <strong>de</strong> solución<br />

gener<strong>al</strong> que proporciona tanto una estructura gener<strong>al</strong> como criterios estratégicos para <strong>de</strong>sarrollar un<br />

método heurístico específico que se ajuste a un tipo particular <strong>de</strong> <strong>problema</strong>”.<br />

El prefijo meta se utiliza para indicar que estos <strong>al</strong>goritmos solo especifican la estrategia gener<strong>al</strong> para<br />

guiar aspectos específicos <strong>de</strong> la búsqueda pero no especifican todos los <strong>de</strong>t<strong>al</strong>les <strong>de</strong> la búsqueda, lo<br />

cu<strong>al</strong> le permiten ser adaptados por una heurística loc<strong>al</strong> a una aplicación específica.<br />

El término heurístico <strong>de</strong>riva <strong>de</strong> la p<strong>al</strong>abra griega heuriske in que significa encontrar o <strong>de</strong>scubrir y se usa<br />

en el ámbito <strong>de</strong> la optimización para <strong>de</strong>scribir una clase <strong>de</strong> <strong>al</strong>goritmos <strong>de</strong> resolución <strong>de</strong> <strong>problema</strong>s (Martí<br />

2003).<br />

La ten<strong>de</strong>ncia <strong>de</strong> las metaheurísticas para solucionar los <strong>problema</strong>s es comenzar por obtener una<br />

solución o conjunto <strong>de</strong> soluciones e iniciar una búsqueda <strong>de</strong> mejoramiento guiada por ciertos principios.<br />

Las metaheurísticas se pue<strong>de</strong>n clasificar en métodos <strong>de</strong> búsqueda basados en <strong>trayectoria</strong> y métodos <strong>de</strong><br />

búsqueda basados en población (Ólafsson 2006).<br />

Los métodos <strong>de</strong> búsqueda basados en <strong>trayectoria</strong> son aquellos que partiendo <strong>de</strong> un punto, buscan la<br />

vecindad y actu<strong>al</strong>izan la solución actu<strong>al</strong> en función <strong>de</strong> esta, formando una <strong>trayectoria</strong>, <strong>de</strong> punto a punto.<br />

12


Entre estos <strong>al</strong>goritmos se encuentran: Esc<strong>al</strong>ador <strong>de</strong> Colinas, Recocido Simulado (Kirkpatrick, Gelatt et<br />

<strong>al</strong>. 1983), Búsqueda Tabú (Glover 1986), GRASP (Pitsoulis and Resen<strong>de</strong> 2001), entre otros.<br />

Los <strong>al</strong>goritmos basados en poblaciones, a diferencia <strong>de</strong> los basados en <strong>trayectoria</strong>, trabajan con un<br />

conjunto <strong>de</strong> soluciones en cada iteración, y su resultado está <strong>de</strong>terminado por la forma en que se<br />

manipula la población. Entre estos <strong>al</strong>goritmos se encuentran: los <strong>al</strong>goritmos evolutivos (Coello,<br />

Veldhuizen et <strong>al</strong>. 2007) y los sistemas <strong>de</strong> enjambre <strong>de</strong> partículas (Cagnina, Esquivel et <strong>al</strong>. 2005), entre<br />

otros.<br />

En trabajos previos se han implementado un conjunto <strong>de</strong> <strong>al</strong>goritmos metaheurísticos <strong>de</strong> <strong>trayectoria</strong> para<br />

solucionar este <strong>problema</strong> <strong>de</strong> asignación, entre los que se encuentran (André 2009): Esc<strong>al</strong>ador <strong>de</strong><br />

Colinas <strong>de</strong> Mejor Ascenso con Reinicio, Recocido Simulado, Búsqueda Tabú e híbridos como GRASP<br />

con Esc<strong>al</strong>ador <strong>de</strong> Colinas <strong>de</strong> Mejor Ascenso, GRASP con Recocido Simulado y GRASP con Tabú.<br />

A continuación se <strong>de</strong>scriben estos <strong>al</strong>goritmos <strong>de</strong> <strong>trayectoria</strong> y <strong>al</strong>gunas <strong>de</strong> sus variantes <strong>multiobjetivo</strong>.<br />

1.6.1 Esc<strong>al</strong>ador <strong>de</strong> Colinas<br />

Algoritmo básico<br />

El <strong>al</strong>goritmo Esc<strong>al</strong>ador <strong>de</strong> Colinas utiliza la información brindada por las soluciones que han sido<br />

visitadas para dirigir la búsqueda.<br />

El planteamiento gener<strong>al</strong> <strong>de</strong> estos <strong>al</strong>goritmos se muestra en la Figura 2. Siendo xa la solución actu<strong>al</strong> y xc<br />

la solución candidata, S el espacio <strong>de</strong> búsqueda, N(xa) la vecindad <strong>de</strong> la solución actu<strong>al</strong> y se supone un<br />

<strong>problema</strong> <strong>de</strong> minimización.<br />

Tomar xaS<br />

Repetir<br />

Tomar xcN(xa)<br />

Si (F(xc) < F(xa))<br />

xa := xc<br />

Fin Si<br />

Hasta Fin <strong>de</strong> la Búsqueda<br />

Figura 2. Seudocódigo <strong>de</strong> los <strong>al</strong>goritmos Esc<strong>al</strong>adores <strong>de</strong> Colina [extraído <strong>de</strong> (Rosete 2000)]<br />

La forma <strong>de</strong> tomar la solución candidata en cada iteración (a partir <strong>de</strong> la vecindad <strong>de</strong> la solución actu<strong>al</strong>)<br />

<strong>de</strong>fine tres tipos princip<strong>al</strong>es <strong>de</strong> esc<strong>al</strong>adores <strong>de</strong> colinas (Rosete 2000):<br />

- Esc<strong>al</strong>ador <strong>de</strong> Colinas clásico (Rich and Knight 1994): El <strong>al</strong>goritmo explora exhaustivamente<br />

la vecindad <strong>de</strong> la solución actu<strong>al</strong> para escoger la mejor solución como solución candidata.<br />

13


- Esc<strong>al</strong>ador <strong>de</strong> Colinas estocástico <strong>de</strong> mejor ascenso (Jones 1995): El <strong>al</strong>goritmo es similar <strong>al</strong><br />

Esc<strong>al</strong>ador <strong>de</strong> Colinas Clásico, pero solo explora una parte <strong>de</strong> la vecindad <strong>de</strong> la solución<br />

actu<strong>al</strong> seleccionada <strong>al</strong>eatoriamente.<br />

- Esc<strong>al</strong>ador <strong>de</strong> Colinas estocásticos con primer ascenso (Juels and Watenberg 1994): El<br />

<strong>al</strong>goritmo selecciona como solución candidata, la primera solución <strong>de</strong> la vecindad <strong>de</strong> la<br />

solución actu<strong>al</strong>, que sea mejor que la solución actu<strong>al</strong>.<br />

La limitación fundament<strong>al</strong> <strong>de</strong> los esc<strong>al</strong>adores <strong>de</strong> colina <strong>de</strong>scritos es su ten<strong>de</strong>ncia a converger <strong>al</strong> óptimo<br />

loc<strong>al</strong> más cercano, por lo que se han <strong>de</strong>sarrollado diversos <strong>al</strong>goritmos que solucionan este <strong>problema</strong> <strong>de</strong><br />

diferentes maneras. Entre estos se encuentran:<br />

- Esc<strong>al</strong>ador <strong>de</strong> Colinas con Reinicio (Juels and Watenberg 1994; Jones 1995): El <strong>al</strong>goritmo<br />

reinicia la búsqueda en otro punto cuando esta se <strong>de</strong>tiene (ya sea por la convergencia a un<br />

óptimo loc<strong>al</strong> o <strong>de</strong>spués <strong>de</strong> un número fijo <strong>de</strong> ev<strong>al</strong>uaciones).<br />

- Recocido Simulado (Kirkpatrick, Gelatt et <strong>al</strong>. 1983): El <strong>al</strong>goritmo acepta como solución<br />

candidata peores soluciones con <strong>de</strong>terminada probabilidad.<br />

- Búsqueda Tabú (Glover 1986): El <strong>al</strong>goritmo tiene una lista tabú, don<strong>de</strong> <strong>al</strong>macena las<br />

soluciones visitadas recientemente y acepta como nueva solución la mejor solución <strong>de</strong> la<br />

vecindad que no esté en la lista tabú, aunque sea peor que la solución actu<strong>al</strong>.<br />

Variantes <strong>multiobjetivo</strong> <strong>de</strong>l Esc<strong>al</strong>ador <strong>de</strong> Colinas<br />

En (Díaz 2001) se proponen tres variantes <strong>multiobjetivo</strong> <strong>de</strong>l <strong>al</strong>goritmo Esc<strong>al</strong>ador <strong>de</strong> Colinas. Estos<br />

<strong>al</strong>goritmos se diferencian <strong>de</strong>l tradicion<strong>al</strong>, ya que en lugar <strong>de</strong> obtener una única solución obtienen una<br />

lista <strong>de</strong> soluciones en la que se <strong>al</strong>macenan, sin repeticiones, las soluciones no dominadas que se h<strong>al</strong>lan<br />

en el proceso <strong>de</strong> búsqueda. Las variantes son:<br />

Esc<strong>al</strong>ador <strong>de</strong> Colinas Estocástico Multiobjetivo<br />

El seudocódigo <strong>de</strong>l <strong>al</strong>goritmo se muestra en la Figura 3, siendo xa la solución actu<strong>al</strong>, xc la solución<br />

candidata, N(xa) la vecindad <strong>de</strong> la solución actu<strong>al</strong>, L el conjunto <strong>de</strong> v<strong>al</strong>ores no dominados encontrados<br />

hasta el momento y xlist uno <strong>de</strong> los individuos no dominados.<br />

El <strong>al</strong>goritmo compara la dominancia entre la solución actu<strong>al</strong> (xa) y la solución candidata (xc) y si esta<br />

última no es dominada, entonces se compara con las soluciones no dominadas obtenidas hasta el<br />

momento. Si la solución candidata domina <strong>al</strong>gunas <strong>de</strong> las soluciones <strong>de</strong> la lista estas son eliminadas y<br />

si fin<strong>al</strong>mente la solución candidata no es dominada por nadie, se agrega a la lista y se toma como<br />

solución actu<strong>al</strong> (Díaz 2001).<br />

14


Tomar xa S<br />

Agregar xa a L<br />

Repetir<br />

Tomar xc N(xa)<br />

Si xa no domina a xc<br />

Repetir<br />

Tomar xlist L<br />

Si xc domina a xlist<br />

Eliminar xlist <strong>de</strong> L<br />

Fin Si<br />

Hasta (Fin <strong>de</strong> la lista) o (xlist domina a xc)<br />

Si xc no fue dominada<br />

Agregar xc a L<br />

xa := xc<br />

Fin Si<br />

Fin Si<br />

Hasta Fin <strong>de</strong> la Búsqueda<br />

Figura 3. Seudocódigo <strong>de</strong>l Esc<strong>al</strong>ador <strong>de</strong> Colinas Estocástico Multiobjetivo (Extraído <strong>de</strong> (Díaz 2001))<br />

Esc<strong>al</strong>ador <strong>de</strong> Colinas Estocástico Multiobjetivo con Reinicio<br />

El seudocódigo <strong>de</strong>l <strong>al</strong>goritmo se muestra en la Figura 4, siendo xa la solución actu<strong>al</strong>, xc la solución<br />

candidata, N(xa) la vecindad <strong>de</strong> la solución actu<strong>al</strong>, L el conjunto <strong>de</strong> v<strong>al</strong>ores no dominados encontrados<br />

hasta el momento, xlist uno <strong>de</strong> los individuos no dominados y xu la última solución <strong>al</strong>macenada en la lista<br />

<strong>de</strong> no dominados.<br />

Su funcionamiento es similar <strong>al</strong> anterior con la diferencia <strong>de</strong> que cuando la solución candidata no es<br />

aceptada para sustituir a la solución actu<strong>al</strong>, el <strong>al</strong>goritmo verifica si ya se han generado todos los vecinos<br />

posibles <strong>de</strong> la solución actu<strong>al</strong>. De ser así se sustituye la solución actu<strong>al</strong> por otra obtenida<br />

<strong>al</strong>eatoriamente.<br />

15


Tomar xa S<br />

Agregar xa a L<br />

xu:= xa<br />

Tomar xc N(xa)<br />

Repetir<br />

Si xu no domina a xc<br />

Repetir<br />

Tomar xlist L<br />

Si xc domina a xlist<br />

Eliminar xlist <strong>de</strong> L<br />

Fin Si<br />

Hasta (Fin <strong>de</strong> la lista) o (xlist domina a xc)<br />

Fin Si<br />

Si xc no fue dominada<br />

Agregar xc a L<br />

Sino<br />

xa := xc<br />

xu := xc<br />

Tomar xc N(xa)<br />

Si N(xa) ha sido barrido completamente<br />

Tomar xa S<br />

xc := xa<br />

Sino<br />

Tomar xc N(xa)<br />

Fin Si<br />

Fin Si<br />

Hasta Fin <strong>de</strong> la Búsqueda<br />

Figura 4. Seudocódigo <strong>de</strong>l Esc<strong>al</strong>ador <strong>de</strong> Colinas Estocástico Multiobjetivo con Reinicio (Extraído <strong>de</strong><br />

(Díaz 2001))<br />

Esc<strong>al</strong>ador <strong>de</strong> Colinas Estocástico Multiobjetivo por mayor distancia<br />

El seudocódigo <strong>de</strong>l <strong>al</strong>goritmo se muestra en la Figura 5, siendo xa la solución actu<strong>al</strong>, xc la solución<br />

candidata, N(xa) la vecindad <strong>de</strong> la solución actu<strong>al</strong>, L el conjunto <strong>de</strong> v<strong>al</strong>ores no dominados encontrados<br />

hasta el momento, xlist uno <strong>de</strong> los individuos no dominados y xu la última solución <strong>al</strong>macenada en la lista<br />

<strong>de</strong> no dominados.<br />

16


Tomar xa S<br />

Agregar xa a L<br />

xu:= xa<br />

Tomar xc N(xa)<br />

Repetir<br />

Si xu no domina a xc<br />

Repetir<br />

Tomar xlist L<br />

Si xc domina a xlist<br />

Eliminar xlist <strong>de</strong> L<br />

Rec<strong>al</strong>cular distancias<br />

Fin Si<br />

Hasta (Fin <strong>de</strong> la lista) o (xlist domina a xc)<br />

Si xc no fue dominada<br />

EnReinicio := FALSO<br />

Agregar xc a L<br />

Rec<strong>al</strong>cular distancias<br />

Fin Si<br />

Fin Si<br />

Si (xc fue dominada) y (N(xa) ha sido barrido completamente)<br />

EnReinicio := VERDADERO<br />

Tomar xa S<br />

Sino<br />

xc := xa<br />

Si (EnReinicio=FALSO)<br />

Tomar xa := (xlist con mayor distancia)<br />

xu := xa<br />

Fin Si<br />

Tomar xc N(xa)<br />

Fin Si<br />

Hasta Fin <strong>de</strong> la Búsqueda<br />

Figura 5. Seudocódigo <strong>de</strong>l Esc<strong>al</strong>ador <strong>de</strong> Colinas Estocástico Multiobjetivo por Mayor Distancia (Extraído<br />

<strong>de</strong> (Díaz 2001))<br />

El <strong>al</strong>goritmo es similar <strong>al</strong> anterior, lo que cambia es la forma <strong>de</strong> seleccionar la solución actu<strong>al</strong>. Cada vez<br />

que se elimina o agrega un elemento a la lista <strong>de</strong> soluciones no dominadas, se c<strong>al</strong>cula para cada<br />

17


elemento, su distancia respecto a los <strong>de</strong>más sumando sus distancias individu<strong>al</strong>es. Como nueva solución<br />

se toma la solución con mayor distancia.<br />

En la bibliografía consultada no se encontró ningún trabajo don<strong>de</strong> se aplicaran variantes <strong>de</strong>l <strong>al</strong>goritmo<br />

Esc<strong>al</strong>ador <strong>de</strong> Colinas con un enfoque <strong>multiobjetivo</strong> a <strong>problema</strong>s <strong>de</strong> asignación. Sin embargo, <strong>de</strong>mostró<br />

buenos resultados en (Díaz 2001) <strong>aplicados</strong> a un conjunto <strong>de</strong> <strong>problema</strong>s <strong>de</strong> prueba, cada uno <strong>de</strong> estos<br />

con dificulta<strong>de</strong>s específicas.<br />

1.6.2 Recocido Simulado<br />

Algoritmo básico<br />

El Recocido Simulado es una metaheurística creada por Kirkpatrick (Kirkpatrick, Gelatt et <strong>al</strong>. 1983) en<br />

1983. El <strong>al</strong>goritmo <strong>de</strong>be su nombre a la an<strong>al</strong>ogía que tiene con el proceso <strong>de</strong> recocido <strong>de</strong> los met<strong>al</strong>es,<br />

método que consisten en c<strong>al</strong>entar y luego enfriar <strong>de</strong> forma controlada un materi<strong>al</strong> para conseguir su<br />

estado sólido.<br />

El <strong>al</strong>goritmo basa su funcionamiento en los cambios <strong>de</strong> temperatura teniendo en cuenta la temperatura<br />

inici<strong>al</strong> y la función <strong>de</strong> enfriamiento a emplear. T<strong>al</strong> como se muestra en la Figura 6, primeramente se<br />

elige una solución inici<strong>al</strong> <strong>al</strong>eatoria <strong>de</strong> la vecindad <strong>de</strong> la solución actu<strong>al</strong> y ésta es aceptada si cumple<br />

<strong>de</strong>terminada condición ( , don<strong>de</strong> p es un número <strong>al</strong>eatorio <strong>de</strong>l interv<strong>al</strong>o (0, 1), y es la<br />

diferencia entre la función objetivo ev<strong>al</strong>uada en la nueva solución y en la solución actu<strong>al</strong>). El <strong>al</strong>goritmo<br />

ejecuta un número L <strong>de</strong> iteraciones con una temperatura T fija y luego ésta es reducida <strong>de</strong> acuerdo a<br />

una función <strong>de</strong> enfriamiento (Doerner, Gendreau et <strong>al</strong>. 2007), que pue<strong>de</strong> <strong>de</strong>finirse <strong>de</strong> diversas formas.<br />

Algunos esquemas <strong>de</strong> enfriamiento son:<br />

Descenso exponenci<strong>al</strong>: Tk+1= *Tk don<strong>de</strong> (0,1) y k = # iteración. (Se plantea que los mejores<br />

v<strong>al</strong>or <strong>de</strong> son <strong>de</strong> 0.8 a 0.99 (Dowsland and A<strong>de</strong>nso 2003)).<br />

Criterio <strong>de</strong> Boltzmann: Tk = T0 / (1 + log(k)) don<strong>de</strong> k = # iteración y T0 es la temperatura inici<strong>al</strong><br />

Esquema <strong>de</strong> Cauchy: Tk = T0 / (1 + k) don<strong>de</strong> k = # iteración y T0 es la temperatura inici<strong>al</strong><br />

El <strong>al</strong>goritmo ha sido aplicado a diferentes tipos <strong>de</strong> <strong>problema</strong>s <strong>de</strong> asignación, t<strong>al</strong>es como el <strong>problema</strong> <strong>de</strong><br />

asignación gener<strong>al</strong>izado (Sahu and Tapadar 2007), el <strong>problema</strong> <strong>de</strong> asignación cuadrático (Vazquez and<br />

Whitley 2000; Misevicius 2003) y el <strong>problema</strong> <strong>de</strong> planificación <strong>de</strong> horarios (Moreno, Sánchez et <strong>al</strong>.<br />

2007).<br />

18


Tomar xaS<br />

Ti = T0<br />

Repetir<br />

Tomar xcN(xa)<br />

Si (F(xc) > F(xa))<br />

Sino<br />

xa:= xc<br />

a:= Generar número <strong>al</strong>eatorio(1)<br />

Si (a < fp )<br />

xa:= xc<br />

Fin Si<br />

Fin Si<br />

Ti = e(Ti)<br />

Hasta condición <strong>de</strong> parada<br />

Figura 6. Seudocódigo <strong>de</strong>l Recocido Simulado básico<br />

Variantes <strong>multiobjetivo</strong> <strong>de</strong>l <strong>al</strong>goritmo Recocido Simulado<br />

En la bibliografía se han encontrado numerosas variantes <strong>multiobjetivo</strong> <strong>de</strong>l <strong>al</strong>goritmo Recocido Simulado<br />

(Ulungu and Teghem 1994; Czyzak and Jaszkiewicz 1998; Nam and Park 1999; Hapke, Jaszkiewicz et<br />

<strong>al</strong>. 2000; Suman and Kumar 2006; Bandyopadhyay, Saha et <strong>al</strong>. 2008; Haidine and Lehnert 2008; Smith<br />

2008; Smith, Everson et <strong>al</strong>. 2008; Burke, Li et <strong>al</strong>. 2009; Hamm, Beißert et <strong>al</strong>. 2009), <strong>al</strong>gunas <strong>de</strong> los<br />

cu<strong>al</strong>es han sido aplicadas a <strong>problema</strong>s <strong>de</strong> asignación. Algunas variantes se basan en un punto y otras<br />

en una población <strong>de</strong> puntos.<br />

La estructura básica <strong>de</strong> las variantes <strong>de</strong>l Recocido Simulado Multiobjetivo que guía la búsqueda basado<br />

en un punto se muestra en la Figura 7.<br />

La mayoría <strong>de</strong> los enfoques <strong>de</strong>l Recocido Simulado Multiobjetivo se diferencian en la manera <strong>de</strong> <strong>de</strong>finir<br />

la probabilidad <strong>de</strong> aceptar un movimiento hacia una solución dominada.<br />

Entre las variantes basadas en un punto se encuentran:<br />

Recocido Simulado Multiobjetivo <strong>de</strong> Serafini (Serafini 1994; Coello, Veldhuizen et <strong>al</strong>. 2007):<br />

Propone el uso <strong>de</strong> la norma L-Tchebycheff para el cálculo <strong>de</strong> la probabilidad <strong>de</strong> aceptar una<br />

solución dominada: <br />

, don<strong>de</strong> P(x´,x,T) es la probabilidad <strong>de</strong><br />

aceptar a x´, dado x y la temperatura T. Los pesos son inici<strong>al</strong>izados en 1 y modificados durante el<br />

proceso <strong>de</strong> búsqueda. Propone a<strong>de</strong>más el uso <strong>de</strong> una regla <strong>de</strong>nominada “cone or<strong>de</strong>ring” que es<br />

similar <strong>al</strong> or<strong>de</strong>namiento lexicográfico que se explica en el epígrafe 1.5.2.<br />

19


Tomar xaS<br />

Ti = T0<br />

Agregar xaa L<br />

Repetir<br />

Tomar xcN(xa)<br />

Si xa no domina a xc<br />

Repetir<br />

Tomar xlistL<br />

Si xc domina a xlist<br />

Fin Si<br />

Eliminar xlist <strong>de</strong> L<br />

Hasta (Fin <strong>de</strong> la lista L) o (xlist domina a xc)<br />

Si xc no fue dominada<br />

Sino<br />

Agregar xc a L<br />

xa:= xc<br />

a:= Generar número <strong>al</strong>eatorio(1)<br />

Si (a < fp)<br />

xa:= xc<br />

Fin Si<br />

Fin Si<br />

Ti = e(Ti)<br />

Hasta condición <strong>de</strong> parada<br />

Figura 7. Seudocódigo <strong>de</strong>l Recocido Simulado Multiobjetivo basado en un punto<br />

Método <strong>de</strong> Suppapitnarm y Parks (SMOSA) (Suman and Kumar 2006): Propone c<strong>al</strong>cular la<br />

probabilidad <strong>de</strong> aceptación con múltiples temperaturas (una para cada objetivo), sin utilizar vectores<br />

<strong>de</strong> peso.<br />

Método <strong>de</strong> Ulungu y Teghem (UMOSA) (Coello, Veldhuizen et <strong>al</strong>. 2007): Propone un enfoque<br />

similar <strong>al</strong> <strong>al</strong>goritmo <strong>de</strong> Serafini. C<strong>al</strong>cula la probabilidad <strong>de</strong> aceptación con la siguiente suma <strong>de</strong><br />

<br />

<br />

pesos: <br />

, don<strong>de</strong> P(x´,x,T) es la probabilidad <strong>de</strong> aceptar a x´,<br />

dado x y la temperatura T y k, es el número <strong>de</strong> funciones objetivo. Los pesos son <strong>de</strong>finidos <strong>al</strong><br />

inicio <strong>de</strong>l <strong>al</strong>goritmo.<br />

Recocido Simulado Multiobjetivo usando violación <strong>de</strong> restricciones en criterio <strong>de</strong> aceptación<br />

(WMOSA) (Suman and Kumar 2006): Propone manejar las restricciones usando un vector <strong>de</strong> peso<br />

20


en el criterio <strong>de</strong> aceptación, para direccionar la búsqueda hacia regiones factibles. Utiliza en el<br />

cálculo <strong>de</strong> la probabilidad <strong>de</strong> aceptación, un vector <strong>de</strong> peso (W) que <strong>de</strong>pen<strong>de</strong> <strong>de</strong>l número <strong>de</strong><br />

restricciones violadas por el vector solución y el vector función objetivo.<br />

Recocido Simulado Multiobjetivo usando criterio <strong>de</strong> aceptación basado en dominancia <strong>de</strong> Pareto<br />

(PDMOSA) (Suman and Kumar 2006): El <strong>al</strong>goritmo propone utilizar funciones <strong>de</strong> pen<strong>al</strong>ización para<br />

tratar las soluciones no factibles. La probabilidad <strong>de</strong> aceptar nuevas soluciones se ev<strong>al</strong>úa basado<br />

en un v<strong>al</strong>or <strong>de</strong> aptitud, <strong>de</strong>finido como uno más el número <strong>de</strong> soluciones dominadas en el conjunto<br />

óptimo <strong>de</strong> Pareto (que contiene tanto soluciones factibles como no factibles). Mientras mayor es el<br />

v<strong>al</strong>or <strong>de</strong> aptitud, peor es la solución.<br />

La princip<strong>al</strong> diferencia entre este <strong>al</strong>goritmo y los anteriores es que no necesita el v<strong>al</strong>or <strong>de</strong> la función<br />

objetivo en el criterio <strong>de</strong> aceptación, lo que hace el cálculo mucho más simple. A<strong>de</strong>más, tiene la<br />

ventaja <strong>de</strong> diversificar el conjunto <strong>de</strong> soluciones <strong>de</strong> Pareto.<br />

Recocido Simulado Multiobjetivo con Búsqueda <strong>de</strong> Trayectoria Aleatoria (Baesler, Moraga et <strong>al</strong>.<br />

2008): Propone seleccionar en cada iteración un solo objetivo, el cu<strong>al</strong> será encargado <strong>de</strong> guiar la<br />

búsqueda durante esa iteración <strong>de</strong>l <strong>al</strong>goritmo. El enfoque incorpora el concepto <strong>de</strong> memoria a corto<br />

y largo plazo, estrategias que permiten seleccionar la dirección en la cu<strong>al</strong> el <strong>al</strong>goritmo <strong>de</strong>berá<br />

concentrarse en la iteración en cuestión.<br />

La memoria a largo plazo permite controlar la evolución histórica <strong>de</strong> cada objetivo. Consiste en un<br />

registro que contabiliza el porcentaje <strong>de</strong> mejoramiento que ha experimentado cada objetivo durante<br />

el proceso <strong>de</strong> búsqueda.<br />

La memoria a corto plazo contabiliza el porcentaje <strong>de</strong> mejoramiento que ha experimentado un<br />

objetivo en particular en la última iteración <strong>de</strong>l <strong>al</strong>goritmo.<br />

Recocido Simulado <strong>de</strong> Pareto basado en restricciones (Hamm, Beißert et <strong>al</strong>. 2009): El <strong>al</strong>goritmo<br />

utiliza simulación basada en restricciones para la generación <strong>de</strong> una solución vecina. El criterio <strong>de</strong><br />

aceptación está basado en la medida <strong>de</strong> dominancia <strong>de</strong> la solución actu<strong>al</strong>:<br />

<br />

, don<strong>de</strong> x´ es la solución<br />

<br />

actu<strong>al</strong>, M es el número <strong>de</strong> objetivos y Ri es el rango <strong>de</strong>l objetivo i-ésimo, y es c<strong>al</strong>culado por la<br />

diferencia entre el mejor y el peor v<strong>al</strong>or observado <strong>de</strong>l objetivo i.<br />

Recocido Simulado Multiobjetivo Multicaso (MC-MOSA) (Haidine and Lehnert 2008):El <strong>al</strong>goritmo<br />

propone una regla <strong>de</strong> aceptación que se basa en la comparación <strong>de</strong> la solución actu<strong>al</strong> con la nueva<br />

solución, tomando en cuenta el caso en que las dos soluciones sean indiferentes (hay mejoras en<br />

<strong>al</strong>gunos objetivos y <strong>de</strong>terioros en otros). En esta situación se <strong>de</strong>rivan tres subcasos. En el primer<br />

subcaso, el <strong>al</strong>goritmo chequea el número <strong>de</strong> soluciones <strong>de</strong> Pareto que son dominados por la nueva<br />

solución (llamado contador <strong>de</strong> dominancia <strong>de</strong> la nueva solución). Si es mayor que 0, entonces la<br />

probabilidad <strong>de</strong> aceptación es 1. En el segundo subcaso, si la nueva solución no domina ninguna<br />

21


solución <strong>de</strong> Pareto, entonces se chequea si pue<strong>de</strong> ser una solución <strong>de</strong>l conjunto <strong>de</strong> Pareto. Esto se<br />

hace c<strong>al</strong>culando el número <strong>de</strong> soluciones en el conjunto <strong>de</strong> Pareto que dominan a la solución<br />

(llamado rango <strong>de</strong> dominancia). Si este es 0, entonces la probabilidad <strong>de</strong> aceptación es 1.<br />

En el subcaso 3, si la nueva solución no pue<strong>de</strong> constituir una solución <strong>de</strong>l conjunto <strong>de</strong> Pareto,<br />

entonces la probabilidad <strong>de</strong> aceptación está basada en la diferencia entre el rango <strong>de</strong> dominancia<br />

<strong>de</strong> la nueva solución y la solución actu<strong>al</strong>.<br />

El <strong>al</strong>goritmo permite aceptar soluciones durante el proceso <strong>de</strong> búsqueda que no están tan lejos <strong>de</strong>l<br />

conjunto aproximado actu<strong>al</strong> y evitar regiones que son dominadas por una población <strong>de</strong>nsa <strong>de</strong><br />

soluciones <strong>de</strong> Pareto.<br />

Recocido Simulado Multiobjetivo Archivado (AMOSA) (Bandyopadhyay, Saha et <strong>al</strong>. 2008): El<br />

<strong>al</strong>goritmo propone <strong>al</strong>macenar en un archivo externo las soluciones no dominadas encontradas<br />

durante la búsqueda (<strong>al</strong> igu<strong>al</strong> que los métodos anteriores), pero establece un tamaño <strong>de</strong> archivo<br />

limitado. Mantiene dos límites en el tamaño <strong>de</strong>l archivo, el límite estricto <strong>de</strong>notado por HL y el límite<br />

blando <strong>de</strong>notado por SL. Durante el proceso las soluciones no dominadas son <strong>al</strong>macenadas en el<br />

archivo hasta que este <strong>al</strong>canza el tamaño HL. Si más soluciones no dominadas son generadas<br />

estas son adicionadas <strong>al</strong> archivo hasta <strong>al</strong>canzar el tamaño SL, el tamaño es entonces reducido a<br />

HL aplicando agrupamiento.<br />

Recocido Simulado basado en Pareto (Burke, Li et <strong>al</strong>. 2009): El <strong>al</strong>goritmo propone emplear dos<br />

funciones <strong>de</strong> ev<strong>al</strong>uación para el cálculo <strong>de</strong> la probabilidad <strong>de</strong> aceptación, la función <strong>de</strong> ev<strong>al</strong>uación<br />

<strong>de</strong> suma <strong>de</strong> pesos, que permite encontrar movimientos con las preferencias pre<strong>de</strong>finidas <strong>de</strong>l<br />

usuario y la función <strong>de</strong> ev<strong>al</strong>uación basada en dominancia, que encuentra movimientos con mayor<br />

diversificación <strong>de</strong>l conjunto <strong>de</strong> Pareto aproximado.<br />

Existe otro conjunto <strong>de</strong> variantes que se basan en poblaciones <strong>de</strong> puntos, entre las que se encuentran:<br />

Recocido Simulado <strong>de</strong> Pareto (PSA) (Czyzak and Jaszkiewicz 1998): Utiliza vectores <strong>de</strong> peso en el<br />

cálculo <strong>de</strong> la probabilidad <strong>de</strong> aceptación. En cada iteración <strong>de</strong>l procedimiento, un conjunto <strong>de</strong><br />

soluciones llamada muestra generada, controla los pesos <strong>de</strong> los objetivos usados en la probabilidad<br />

<strong>de</strong> aceptación. Cuando una solución candidata es generada, los pesos son incrementados en<br />

aquellos objetivos en los que la solución actu<strong>al</strong> domina a la solución candidata.<br />

Recocido Simulado Multiobjetivo Evolutivo (Li and Landa-Silva 2007): El <strong>al</strong>goritmo combina la<br />

búsqueda loc<strong>al</strong> y la evolutiva, incorporando dos características distintivas, los vectores <strong>de</strong> peso en<br />

la función <strong>de</strong> esc<strong>al</strong>a para la selección durante la búsqueda loc<strong>al</strong> y la competencia entre los<br />

miembros <strong>de</strong> la población actu<strong>al</strong> con similares vectores <strong>de</strong> peso.<br />

Algunas <strong>de</strong> estas variantes han sido aplicadas a <strong>problema</strong>s <strong>de</strong> asignación, <strong>de</strong>mostrando buenos<br />

resultados en cuanto a c<strong>al</strong>idad <strong>de</strong> las soluciones obtenidas. Entre estas se pue<strong>de</strong>n citar (Ulungu and<br />

Teghem 1994; Haidine and Lehnert 2008; Burke, Li et <strong>al</strong>. 2009; Hamm, Beißert et <strong>al</strong>. 2009).<br />

22


1.6.3 Búsqueda Tabú<br />

Algoritmo básico<br />

La búsqueda Tabú es una metaheurística introducida en 1986 por Glover (Glover 1986). La<br />

característica <strong>de</strong>finitoria <strong>de</strong>l <strong>al</strong>goritmo es cómo las soluciones son seleccionadas <strong>de</strong> la vecindad.<br />

El método hace uso <strong>de</strong> la <strong>de</strong>nominada lista tabú, la cu<strong>al</strong> garantiza que durante un cierto número <strong>de</strong><br />

iteraciones no se vuelva a una solución que ya se visitó, ya que en ella se <strong>al</strong>macenan los recientes<br />

estados visitados. Esta es la conocida memoria a corto plazo.<br />

El <strong>al</strong>goritmo <strong>de</strong> búsqueda Tabú simple (ver Figura 8) consiste en elegir una solución inici<strong>al</strong> y verificar si<br />

dicha solución no pertenece a la lista Tabú. De ser así se adopta como nueva solución y se actu<strong>al</strong>iza la<br />

lista Tabú. Este procedimiento se ejecutará mientras se cumpla la condición <strong>de</strong> parada.<br />

Tomar xaS<br />

Repetir<br />

Tomar xcN(xa)<br />

Si (xc no pertenece a L)<br />

xa := xc<br />

Fin Si<br />

Si (L está llena)<br />

Eliminar primer elemento <strong>de</strong> L<br />

Insertar xa en L<br />

Hasta condición <strong>de</strong> parada<br />

Figura 8. Seudocódigo Búsqueda Tabú<br />

Para la ejecución <strong>de</strong>l <strong>al</strong>goritmo es necesario <strong>de</strong>finir:<br />

- Tamaño <strong>de</strong> la lista Tabú: Es el tiempo o número <strong>de</strong> iteraciones que un elemento permanece en<br />

la lista Tabú.<br />

- Qué guardar en la lista: Aquellas soluciones o atributos <strong>de</strong> soluciones que no <strong>de</strong>ben ser<br />

elegidas. La lista tabú pue<strong>de</strong> contener: soluciones visitadas recientemente, movimientos<br />

re<strong>al</strong>izados recientemente, o atributos o características que tenían las soluciones visitadas.<br />

- Criterio <strong>de</strong> aspiración: Permite que un movimiento sea admisible aunque esté clasificado como<br />

tabú. Por ejemplo, si un movimiento produce una solución mejor que cu<strong>al</strong>quier otra obtenida<br />

hasta el momento se efectúa aunque sea tabú (aspiración por <strong>de</strong>fecto).<br />

La Búsqueda Tabú ha sido aplicada a gran variedad <strong>de</strong> <strong>problema</strong>s <strong>de</strong> asignación, entre los que se<br />

pue<strong>de</strong>n citar: el <strong>problema</strong> <strong>de</strong> asignación gener<strong>al</strong>izado (Díaz and Fernán<strong>de</strong>z 2001; Higgins 2001), el<br />

<strong>problema</strong> <strong>de</strong> asignación con restricciones binarias (Kochenberger, Glover et <strong>al</strong>. 2002), el <strong>problema</strong> <strong>de</strong><br />

programación <strong>de</strong> proyectos con recursos limitados (Rivera and Moreno 2005), el <strong>problema</strong> <strong>de</strong><br />

asignación cuadrático (Ertek, Aksu et <strong>al</strong>. 2005), el <strong>problema</strong> <strong>de</strong> planificación <strong>de</strong> horarios (Álvarez-<br />

23


V<strong>al</strong>dés, Crespo et <strong>al</strong>. 1999) y el <strong>problema</strong> <strong>de</strong> asignación <strong>de</strong> supervisores forest<strong>al</strong>es (Pra<strong>de</strong>nas, Hid<strong>al</strong>go<br />

et <strong>al</strong>. 2008).<br />

Variantes Multiobjetivo <strong>de</strong>l <strong>al</strong>goritmo Búsqueda Tabú<br />

Los trabajos revisados pue<strong>de</strong>n clasificarse en dos categorías (Jaffrès, Gorce et <strong>al</strong>. 2008): los que<br />

exploran el espacio usando un único camino (Ho, Yang et <strong>al</strong>. 2002; Kulturel-Konak, Smith et <strong>al</strong>. 2004) y<br />

los que re<strong>al</strong>izan varias búsquedas tabú en par<strong>al</strong>elo (Pilegaard 1996).<br />

En el primer caso, la estructura <strong>de</strong> una iteración es similar a la <strong>de</strong>l <strong>al</strong>goritmo monobjetivo estándar,<br />

excepto por la lista <strong>de</strong> soluciones no dominadas que se mantiene durante la búsqueda.<br />

En el segundo caso, existe una población <strong>de</strong> soluciones que representan el frente <strong>de</strong> búsqueda, el que<br />

es expandido a través <strong>de</strong> la búsqueda <strong>de</strong> vecinda<strong>de</strong>s, cuyas soluciones son ev<strong>al</strong>uadas y adicionadas <strong>al</strong><br />

frente <strong>de</strong> Pareto estimado. Entonces un nuevo frente <strong>de</strong> búsqueda es seleccionado. En esta categoría<br />

el objetivo es orientar la búsqueda par<strong>al</strong>elamente hacia diferentes partes <strong>de</strong>l frente <strong>de</strong> Pareto. Por<br />

consiguiente, la selección <strong>de</strong> un nuevo frente <strong>de</strong>be orientar la búsqueda a partes no exploradas <strong>de</strong>l<br />

frente <strong>de</strong> Pareto. A<strong>de</strong>más, existirán tantas listas tabú como caminos <strong>de</strong> búsqueda para evitar los ciclos.<br />

La estructura básica <strong>de</strong>l <strong>al</strong>goritmo Búsqueda Tabú Multiobjetivo basada en un punto se muestra en la<br />

Figura 9, siendo xa la solución actu<strong>al</strong>, xc la solución candidata, L la lista <strong>de</strong> soluciones no dominadas y<br />

LT la lista Tabú.<br />

Este <strong>al</strong>goritmo <strong>al</strong> igu<strong>al</strong> que las variantes <strong>multiobjetivo</strong> <strong>de</strong>l resto <strong>de</strong> los <strong>al</strong>goritmos an<strong>al</strong>izados mantiene<br />

una lista <strong>de</strong> soluciones no dominadas que se actu<strong>al</strong>iza durante la búsqueda. A diferencia <strong>de</strong> las<br />

variantes anteriores mantiene una lista conocida como lista Tabú en la que <strong>al</strong>macena las soluciones<br />

recientemente visitadas, con el objetivo <strong>de</strong> evitar ciclos en el <strong>al</strong>goritmo.<br />

Entre las variantes revisadas que basan la búsqueda en un solo punto se encuentran:<br />

- Búsqueda Tabú Multiobjetivo (Baykasoglu and Gindy 1999; Baykasoglu, Ozbaku et <strong>al</strong>. 2002): Se<br />

re<strong>de</strong>finen los pasos <strong>de</strong> selección y modificación <strong>de</strong>l <strong>al</strong>goritmo Tabú básico. Maneja dos listas<br />

a<strong>de</strong>más <strong>de</strong> la lista tabú: la lista Pareto, que contiene las soluciones no dominadas encontradas<br />

por el <strong>al</strong>goritmo y la lista <strong>de</strong> candidatos, en la que se coleccionan todas las otras soluciones que<br />

no son no dominadas glob<strong>al</strong>mente, pero son no dominadas loc<strong>al</strong>mente en <strong>al</strong>gún paso durante la<br />

búsqueda. La lista <strong>de</strong> candidatos juega un rol importante, ya que da la oportunidad <strong>de</strong><br />

diversificar la búsqueda.<br />

- (Ho, Yang et <strong>al</strong>. 2002): Usa el concepto <strong>de</strong> ranking <strong>de</strong> Pareto y un archivo externo con tamaño<br />

finito en el que va <strong>al</strong>macenando las soluciones no dominadas encontradas durante la búsqueda.<br />

Utiliza funciones <strong>de</strong> esc<strong>al</strong>a para ev<strong>al</strong>uar los diferentes objetivos.<br />

- (B<strong>al</strong>icki 2007): El <strong>al</strong>goritmo para encontrar las soluciones óptimas <strong>de</strong> Pareto, utiliza el<br />

procedimiento <strong>de</strong> ranking en la vecindad <strong>de</strong> la solución actu<strong>al</strong>.<br />

24


Tomar xaS<br />

Agregar xa a L<br />

Repetir<br />

Tomar xcN(xa)<br />

Si xa no domina a xc<br />

Repetir<br />

Tomar xlistL<br />

Si xc domina a xlist<br />

Fin Si<br />

Eliminar xlist <strong>de</strong> L<br />

Hasta (Fin <strong>de</strong> la lista L) o (xlist domina a xc)<br />

Si xc no fue dominada<br />

Fin Si<br />

Si (xc no pertenece a LT)<br />

Fin Si<br />

Agregar xc a L<br />

xa:= xc<br />

Si (LT está llena)<br />

Eliminar primer elemento <strong>de</strong> LT<br />

Insertar xa en LT<br />

Hasta condición <strong>de</strong> parada<br />

Figura 9. Seudocódigo <strong>de</strong>l <strong>al</strong>goritmo Búsqueda Tabú Multiobjetivo<br />

De las variantes revisadas en la bibliografía consultada solo ha sido aplicada a <strong>problema</strong>s <strong>de</strong> asignación<br />

la variante an<strong>al</strong>izada en (Baykasoglu, Ozbaku et <strong>al</strong>. 2002) .<br />

Entre los <strong>al</strong>goritmos que basan su búsqueda en un conjunto <strong>de</strong> puntos se encuentran:<br />

- Búsqueda Tabú Multiobjetivo <strong>de</strong> Hansen (MOTS, Tabu Search for Multiobjective Optimization)<br />

(Pilegaard 1996): Es una técnica poblacion<strong>al</strong>, que asigna pesos a cada objetivo y los adapta<br />

dinámicamente.<br />

Búsqueda Tabú Multiobjetivo Par<strong>al</strong>ela (Jaffrès, Gorce et <strong>al</strong>. 2008): El <strong>al</strong>goritmo emplea k<br />

caminos <strong>de</strong> búsqueda par<strong>al</strong>ela y <strong>al</strong>macena las soluciones dominadas en el frente <strong>de</strong> Pareto<br />

estimado. Se asigna una lista tabú a cada camino <strong>de</strong> búsqueda y su tamaño es modificado en<br />

cada iteración <strong>al</strong>eatoriamente.<br />

25


1.6.4 GRASP<br />

Algoritmo básico<br />

El procedimiento <strong>de</strong> búsqueda adaptativo, <strong>al</strong>eatorizado y avaricioso, acrónimo <strong>de</strong> Greedy Randomized<br />

Adaptive Search Procedure (GRASP) es una metaheurística que se basa en la premisa <strong>de</strong> que<br />

soluciones inici<strong>al</strong>es diversas y <strong>de</strong> buena c<strong>al</strong>idad juegan un papel importante en el éxito <strong>de</strong> los métodos<br />

loc<strong>al</strong>es <strong>de</strong> búsqueda, por lo que combina las heurísticas constructivas con la búsqueda loc<strong>al</strong>. A cada<br />

una <strong>de</strong> las soluciones que genera le aplica una búsqueda loc<strong>al</strong> con una componente <strong>de</strong> <strong>al</strong>eatoriedad<br />

controlada y enmarcada <strong>de</strong>ntro <strong>de</strong> un proceso constructivo básicamente avaricioso (Resen<strong>de</strong> and<br />

González 2003; Resen<strong>de</strong> and Ribeiro 2003).<br />

En su versión básica cada iteración consiste en dos fases: una fase constructiva, en la que se obtiene<br />

una solución factible buena, aunque no necesariamente un óptimo loc<strong>al</strong>, y una búsqueda loc<strong>al</strong>, durante<br />

la cu<strong>al</strong> se examinan vecinda<strong>de</strong>s <strong>de</strong> la solución hasta llegar a un óptimo loc<strong>al</strong>, momento en el que la<br />

iteración termina. Las iteraciones continúan, guardando la mejor solución encontrada en cada una <strong>de</strong><br />

ellas, hasta que se <strong>al</strong>canza un criterio <strong>de</strong> terminación. En la segunda fase se aplica una búsqueda loc<strong>al</strong><br />

convencion<strong>al</strong> (Pitsoulis and Resen<strong>de</strong> 2001).<br />

De acuerdo <strong>al</strong> nombre <strong>de</strong> la metaheurística el proceso constructivo tiene tres características: avaricioso<br />

(o miope), <strong>al</strong>eatorio y adaptativo. Avaricioso hace referencia a que, en cada paso, la <strong>de</strong>cisión <strong>de</strong> qué<br />

elemento incorporar a la solución se toma viendo el impacto que las diferentes <strong>al</strong>ternativas tienen en la<br />

función objetivo utilizada. Para ello, en cada paso, se <strong>de</strong>fine un conjunto <strong>de</strong> elementos candidatos que<br />

pue<strong>de</strong>n ser incorporados a la solución <strong>de</strong>nominado lista <strong>de</strong> candidatos. En este punto es don<strong>de</strong> se<br />

incorpora la existencia <strong>de</strong> restricciones <strong>de</strong>l <strong>problema</strong>, <strong>de</strong> forma que aquellos elementos cuya inclusión<br />

en la solución la torna inadmisible son excluidos <strong>de</strong> la lista <strong>de</strong> candidatos.<br />

Luego se c<strong>al</strong>cula para cada uno <strong>de</strong> los elementos un índice o medida <strong>de</strong> la bondad <strong>de</strong> elegir ese<br />

elemento para incluirlo en la solución, lo que le da el nombre <strong>de</strong> adaptativo, ya que este v<strong>al</strong>or para un<br />

mismo elemento pue<strong>de</strong> variar <strong>de</strong> un paso a otro.<br />

La tercera característica <strong>de</strong>l proceso constructivo es la <strong>al</strong>eatoriedad, dado por el hecho <strong>de</strong> que aunque<br />

se elige en cada paso <strong>de</strong> acuerdo con el v<strong>al</strong>or <strong>de</strong>l índice, se escoge <strong>al</strong>eatoriamente entre los candidatos<br />

<strong>de</strong> mejor índice. Para ello se <strong>de</strong>fine una lista <strong>de</strong> candidatos restringida, <strong>de</strong> forma que, en cada paso se<br />

elige <strong>al</strong>eatoriamente pero siempre una <strong>al</strong>ternativa que, en principio, es buena.<br />

El <strong>al</strong>goritmo sigue los pasos que se muestran en la Figura 10.<br />

El <strong>al</strong>goritmo requiere <strong>de</strong> la <strong>de</strong>finición <strong>de</strong>l número <strong>de</strong> iteraciones y <strong>de</strong>l <strong>al</strong>goritmo a utilizar en la fase <strong>de</strong><br />

búsqueda loc<strong>al</strong>.<br />

26


Repetir<br />

x = ConstruirSolución()<br />

x = BusquedaLoc<strong>al</strong>(x)<br />

Si f(x) < f*<br />

f* := f(x)<br />

x* := x<br />

Fin Si<br />

Hasta máximo número <strong>de</strong> iteraciones<br />

Figura 10. GRASP básico para minimización<br />

En la etapa <strong>de</strong> construcción, se re<strong>al</strong>izan los pasos que se muestran en la Figura 11:<br />

C<strong>al</strong>cular costo miope c(e), <br />

Repetir<br />

RCL = {k elementos con el menor c(e)}<br />

Tomar <br />

x = x U {s}<br />

Actu<strong>al</strong>izar C<br />

C<strong>al</strong>cular costo miope c(e), <br />

Hasta que C = 0<br />

Figura 11. Etapa <strong>de</strong> construcción <strong>de</strong>l <strong>al</strong>goritmo GRASP [extraído <strong>de</strong> (Resen<strong>de</strong> and González 2003)]<br />

Se parte <strong>de</strong> una solución parci<strong>al</strong> inici<strong>al</strong>, se c<strong>al</strong>cula el costo <strong>de</strong> dicha solución, y mientras el conjunto <strong>de</strong><br />

candidatos sea distinto <strong>de</strong> cero se selecciona <strong>al</strong> azar un elemento <strong>de</strong> la lista <strong>de</strong> candidatos restringida<br />

(don<strong>de</strong> estarán los elementos que cumplan las restricciones <strong>de</strong>l <strong>problema</strong>) que formará parte <strong>de</strong> la<br />

solución actu<strong>al</strong>. Se actu<strong>al</strong>iza la lista <strong>de</strong> candidatos restringida y se c<strong>al</strong>cula el costo miope <strong>de</strong> la nueva<br />

solución. Una <strong>de</strong> las variaciones <strong>de</strong>l <strong>al</strong>goritmo es el GRASP reactivo en el cu<strong>al</strong> se van modificando los<br />

v<strong>al</strong>ores <strong>de</strong> los parámetros <strong>de</strong>l <strong>al</strong>goritmo en <strong>de</strong>pen<strong>de</strong>ncia <strong>de</strong> la evolución <strong>de</strong>l mismo (Prais and Ribeiro<br />

2000; Comman<strong>de</strong>r, Butenko et <strong>al</strong>. 2004; Álvarez-V<strong>al</strong>dés, Parreño et <strong>al</strong>. 2008).<br />

El <strong>al</strong>goritmo GRASP ha sido utilizado para dar solución a diversas variantes <strong>de</strong> <strong>problema</strong>s <strong>de</strong><br />

asignación, como son: el <strong>problema</strong> <strong>de</strong> asignación gener<strong>al</strong>izado (Ram<strong>al</strong>hinho and Serra 2004), el<br />

<strong>problema</strong> <strong>de</strong> asignación <strong>de</strong> 3 índices (Aiex, Resen<strong>de</strong> et <strong>al</strong>. 2000) y el <strong>problema</strong> <strong>de</strong> <strong>de</strong>scomposición <strong>de</strong><br />

matrices en el contexto <strong>de</strong> la asignación <strong>de</strong>l tráfico en las comunicaciones satelit<strong>al</strong>es (Prais and Ribeiro<br />

2000).<br />

Variantes <strong>multiobjetivo</strong> <strong>de</strong>l <strong>al</strong>goritmo GRASP<br />

El <strong>al</strong>goritmo GRASP Multiobjetivo es propuesto en (Reynolds and Iglesia 2008; Reynolds, Corne et <strong>al</strong>.<br />

2009). La variante propuesta es similar <strong>al</strong> <strong>al</strong>goritmo básico, con la diferencia <strong>de</strong> que mantiene una lista<br />

27


<strong>de</strong> soluciones no dominadas encontradas durante la búsqueda. El <strong>al</strong>goritmo construye una lista <strong>de</strong><br />

soluciones no dominadas inici<strong>al</strong>es y luego aplica un <strong>al</strong>goritmo <strong>de</strong> búsqueda loc<strong>al</strong>, actu<strong>al</strong>izando la lista <strong>de</strong><br />

soluciones no dominadas obtenida en la etapa constructiva, t<strong>al</strong> como se muestra en la Figura 12, don<strong>de</strong><br />

G representa el número <strong>de</strong> generaciones, N el número <strong>de</strong> veces que la fase constructiva es aplicada en<br />

cada iteración e I es el número <strong>de</strong> iteraciones <strong>de</strong> la búsqueda loc<strong>al</strong> por cada generación.<br />

Función MOG(G,N,I)<br />

mejorFrente := Ø<br />

Repetir<br />

nuevoFrente = ConstruirSolución(N)<br />

nuevoFrente = BusquedaLoc<strong>al</strong>(nuevoFrente, I)<br />

mejorFrente = mejorFrente U nuevoFrente<br />

Eliminar cu<strong>al</strong>quier solución no dominada <strong>de</strong>l mejorFrente<br />

Hasta máximo número <strong>de</strong> generaciones (G)<br />

Retornar mejorFrente<br />

Función ContruirSolución(N)<br />

frente = Ø<br />

Repetir<br />

nuevoFrente = CorrerAlgoritmoGreedy()<br />

frente = frente U nuevoFrente<br />

Hasta máximo número <strong>de</strong> iteraciones (N)<br />

Eliminar cu<strong>al</strong>quier solución no dominada <strong>de</strong> frente<br />

Retornar frente<br />

Función BusquedaLoc<strong>al</strong>(frente, I)<br />

Repetir<br />

Seleccionar s <strong>al</strong>eatoriamente <strong>de</strong> frente<br />

s = AplicarMovimiento(s)<br />

Ev<strong>al</strong>uar s<br />

Si s no es dominada por ningún miembro <strong>de</strong> frente<br />

Adicionar s a frente<br />

Eliminar cu<strong>al</strong>quier solución dominada <strong>de</strong> frente<br />

Fin Si<br />

Hasta máximo número <strong>de</strong> iteraciones (I)<br />

Retornar frente<br />

Figura 12. Seudocódigo GRASP Multiobjetivo (Extraído <strong>de</strong> (Reynolds, Corne et <strong>al</strong>. 2009))<br />

28


En la bibliografía consultada no se encontraron aplicaciones <strong>de</strong>l <strong>al</strong>goritmo a <strong>problema</strong>s <strong>de</strong> asignación.<br />

1.6.5 Comparación <strong>de</strong> variantes <strong>multiobjetivo</strong> <strong>de</strong> <strong>al</strong>goritmos <strong>de</strong> <strong>trayectoria</strong><br />

En las Tablas 1-4 se resumen las princip<strong>al</strong>es características <strong>de</strong> los <strong>al</strong>goritmos <strong>de</strong> <strong>trayectoria</strong><br />

<strong>multiobjetivo</strong> que se han <strong>de</strong>scrito en los epígrafes anteriores.<br />

Como se observa, todos los <strong>al</strong>goritmos utilizan una lista para <strong>al</strong>macenar las soluciones no dominadas<br />

encontradas durante la búsqueda. Los <strong>al</strong>goritmos basados en Esc<strong>al</strong>ador <strong>de</strong> Colinas se diferencian<br />

fundament<strong>al</strong>mente en la posibilidad <strong>de</strong> reiniciar la búsqueda para evitar caer en óptimos loc<strong>al</strong>es, que es<br />

la princip<strong>al</strong> dificultad <strong>de</strong>l <strong>al</strong>goritmo básico.<br />

Los <strong>al</strong>goritmos basados en Recocido Simulado se diferencian fundament<strong>al</strong>mente en la forma <strong>de</strong> c<strong>al</strong>cular<br />

la probabilidad <strong>de</strong> aceptar peores soluciones.<br />

Los <strong>al</strong>goritmos basados en Búsqueda Tabú emplean diversas formas para diversificar la búsqueda.<br />

El <strong>al</strong>goritmo basado en GRASP es muy similar <strong>al</strong> <strong>al</strong>goritmo básico, con la diferencia <strong>de</strong> que se tiene<br />

construye una lista <strong>de</strong> soluciones no dominadas durante la etapa constructiva, que es actu<strong>al</strong>izada en la<br />

etapa <strong>de</strong> búsqueda loc<strong>al</strong>.<br />

1.7 Métricas <strong>de</strong> rendimiento <strong>de</strong> <strong>al</strong>goritmos <strong>multiobjetivo</strong><br />

Para comparar el rendimiento <strong>de</strong> los diferentes <strong>al</strong>goritmos <strong>multiobjetivo</strong>, teniendo en cuenta el hecho <strong>de</strong><br />

que su resultado no es un único vector esc<strong>al</strong>ar sino una colección <strong>de</strong> vectores formados por un conjunto<br />

no dominado, existen varias métricas. Estas persiguen medir (Zitzler 1999):<br />

- La distancia <strong>de</strong>l frente <strong>de</strong> Pareto producido por el <strong>al</strong>goritmo diseñado con respecto <strong>al</strong> frente<br />

verda<strong>de</strong>ro (suponiendo que el frente <strong>de</strong> Pareto verda<strong>de</strong>ro es conocido).<br />

- La distribución <strong>de</strong> soluciones obtenidas, <strong>de</strong> manera que se pueda tener una distribución <strong>de</strong><br />

vectores lo más uniforme posible.<br />

- La cantidad <strong>de</strong> elementos <strong>de</strong>l conjunto <strong>de</strong> óptimos <strong>de</strong> Pareto generados.<br />

Ninguna <strong>de</strong> las métricas que se an<strong>al</strong>izan a continuación, captura en un solo v<strong>al</strong>or numérico los tres<br />

elementos mencionados, ya que estos se refieren a aspectos <strong>de</strong> <strong>de</strong>sempeño diferentes. Por ello, es<br />

recomendable usar diferentes métricas para ev<strong>al</strong>uar los distintos aspectos <strong>de</strong> <strong>de</strong>sempeño <strong>de</strong> un<br />

<strong>al</strong>goritmo.<br />

Algunas <strong>de</strong> las métricas revisadas en la bibliografía se <strong>de</strong>scriben en (Knowles and Corne 2001):<br />

- Tasa <strong>de</strong> error (Veldhuizen 1999): Indica el porciento <strong>de</strong> soluciones que no son miembros <strong>de</strong>l<br />

frente <strong>de</strong> Pareto verda<strong>de</strong>ro, siendo n el número <strong>de</strong> vectores en el frente <strong>de</strong> Pareto actu<strong>al</strong>; ei = 0<br />

si el vector i es un miembro <strong>de</strong>l frente <strong>de</strong> Pareto verda<strong>de</strong>ro y ei= 1 <strong>de</strong> lo contrario:<br />

<br />

<br />

<br />

<br />

29


Tabla 1.Comparación entre <strong>al</strong>goritmos <strong>de</strong> <strong>trayectoria</strong> <strong>multiobjetivo</strong><br />

Diferencia<br />

fundament<strong>al</strong> con el<br />

resto <strong>de</strong> los<br />

<strong>al</strong>goritmos<br />

¿Ha sido aplicado a<br />

<strong>problema</strong>s <strong>de</strong><br />

asignación?<br />

¿Toma <strong>de</strong>cisiones<br />

<strong>al</strong>eatorias?<br />

¿Necesita<br />

parámetros?<br />

Mantiene una lista <strong>de</strong><br />

soluciones no<br />

dominadas<br />

¿Reinicia la<br />

búsqueda?<br />

¿Acepta soluciones<br />

peores?<br />

Algoritmo básico<br />

Fuentes <strong>de</strong><br />

referencia<br />

Variante<br />

<strong>multiobjetivo</strong><br />

Mantiene una lista <strong>de</strong> soluciones<br />

don<strong>de</strong> se <strong>al</strong>macenan las<br />

soluciones no dominadas<br />

encontradas durante la búsqueda.<br />

No No Si No Si No<br />

Díaz 2001<br />

Esc<strong>al</strong>ador <strong>de</strong><br />

Colinas<br />

Estocástico<br />

Multiobjetivo<br />

El <strong>al</strong>goritmo reinicia la búsqueda si<br />

la solución candidata no es<br />

aceptada para sustituir a la actu<strong>al</strong><br />

luego <strong>de</strong> comprobar que se han<br />

generado todos los vecinos<br />

posibles <strong>de</strong> la solución actu<strong>al</strong>.<br />

Díaz 2001 No Si Si No Si No<br />

Esc<strong>al</strong>ador<br />

<strong>de</strong> Colinas<br />

Esc<strong>al</strong>ador <strong>de</strong><br />

Colinas<br />

Multiobjetivo con<br />

Reinicio<br />

El comportamiento es similar <strong>al</strong><br />

anterior. A<strong>de</strong>más c<strong>al</strong>cula la<br />

distancia entre las soluciones <strong>de</strong> la<br />

lista <strong>de</strong> soluciones no dominadas y<br />

utiliza la solución <strong>de</strong> mayor<br />

distancia como nueva solución.<br />

Díaz 2001 No Si Si No Si No<br />

Esc<strong>al</strong>ador <strong>de</strong><br />

Colinas<br />

Estocástico<br />

Multiobjetivo por<br />

mayor distancia<br />

Utiliza un vector <strong>de</strong> peso en el<br />

cálculo <strong>de</strong> la probabilidad <strong>de</strong><br />

aceptación. Utiliza un método<br />

similar <strong>al</strong> lexicográfico.<br />

Si No<br />

Si, los<br />

típicos <strong>de</strong>l<br />

<strong>al</strong>goritmo.<br />

No Si<br />

Si, con<br />

<strong>de</strong>terminada<br />

probabilidad<br />

Serafini 1994;<br />

Coello,<br />

Veldhuizen et<br />

<strong>al</strong>. 2007<br />

Recocido<br />

Simulado <strong>de</strong><br />

Serafini<br />

La probabilidad <strong>de</strong> aceptación <strong>de</strong><br />

una nueva solución tiene en<br />

cuenta múltiples temperaturas<br />

(una para cada objetivo). No utiliza<br />

vectores <strong>de</strong> peso en este cálculo.<br />

Recocido<br />

Simulado<br />

Si No<br />

Si, la<br />

temperatura<br />

inici<strong>al</strong> <strong>de</strong><br />

cada<br />

objetivo.<br />

Si<br />

Si, periódicamente<br />

reinicia la búsqueda<br />

seleccionando una<br />

solución <strong>al</strong>eatoria <strong>de</strong>l<br />

conjunto <strong>de</strong> soluciones<br />

no dominadas.<br />

Si, con<br />

<strong>de</strong>terminada<br />

probabilidad<br />

Suman and<br />

Kumar 2006<br />

SMOSA<br />

30


Tabla 2.Comparación entre <strong>al</strong>goritmos <strong>de</strong> <strong>trayectoria</strong> <strong>multiobjetivo</strong> (Continuación)<br />

Diferencia<br />

fundament<strong>al</strong> con el<br />

resto <strong>de</strong> los<br />

<strong>al</strong>goritmos<br />

¿Ha sido aplicado a<br />

<strong>problema</strong>s <strong>de</strong><br />

asignación?<br />

¿Toma <strong>de</strong>cisiones<br />

<strong>al</strong>eatorias?<br />

¿Necesita<br />

parámetros?<br />

Mantiene una lista <strong>de</strong><br />

soluciones no<br />

dominadas<br />

¿Reinicia la<br />

búsqueda?<br />

¿Acepta soluciones<br />

peores?<br />

Algoritmo básico<br />

Fuentes <strong>de</strong><br />

referencia<br />

Variante<br />

<strong>multiobjetivo</strong><br />

Utiliza una estrategia llamada criterio <strong>de</strong><br />

esc<strong>al</strong>a don<strong>de</strong> la probabilidad <strong>de</strong><br />

aceptación <strong>de</strong> una nueva solución<br />

<strong>de</strong>pen<strong>de</strong> <strong>de</strong> la distancia entre la solución<br />

actu<strong>al</strong> y la nueva solución.<br />

Si (Problema<br />

<strong>de</strong> la mochila<br />

biobjetivo)<br />

Si<br />

Si, los pesos<br />

para el cálculo<br />

<strong>de</strong> la<br />

probabilidad <strong>de</strong><br />

aceptación.<br />

Si<br />

Si, periódicamente<br />

reinicia la búsqueda<br />

seleccionando una<br />

solución <strong>al</strong>eatoria <strong>de</strong>l<br />

conjunto <strong>de</strong> soluciones<br />

no dominadas.<br />

Si, con<br />

<strong>de</strong>termina<br />

da<br />

probabilid<br />

ad<br />

Coello,<br />

Veldhuizen<br />

et <strong>al</strong>. 2007<br />

UMOSA<br />

Utiliza un vector <strong>de</strong> peso en el cálculo <strong>de</strong><br />

la probabilidad <strong>de</strong> aceptación que<br />

<strong>de</strong>pen<strong>de</strong> <strong>de</strong>l número <strong>de</strong> restricciones<br />

violadas por el vector solución y el vector<br />

función objetivo.<br />

Si No<br />

Si, los típicos<br />

<strong>de</strong>l <strong>al</strong>goritmo<br />

Si<br />

Si, periódicamente<br />

reinicia la búsqueda<br />

seleccionando una<br />

solución <strong>al</strong>eatoriamente<br />

<strong>de</strong>l conjunto <strong>de</strong><br />

soluciones no<br />

Si, con<br />

<strong>de</strong>termina<br />

da<br />

probabilid<br />

ad<br />

Suman<br />

and Kumar<br />

2006<br />

WMOSA<br />

No usa el v<strong>al</strong>or <strong>de</strong> la función objetivo en el<br />

criterio <strong>de</strong> aceptación, sino un v<strong>al</strong>or <strong>de</strong><br />

aptitud que se obtiene a partir <strong>de</strong>l número<br />

<strong>de</strong> soluciones que dominan a la solución<br />

actu<strong>al</strong> en el conjunto optim<strong>al</strong> <strong>de</strong> Pareto.<br />

dominadas.<br />

Si, periódicamente<br />

reinicia la búsqueda<br />

seleccionando una<br />

solución <strong>al</strong>eatoriamente<br />

<strong>de</strong>l conjunto <strong>de</strong><br />

soluciones no<br />

dominadas.<br />

Si, con<br />

<strong>de</strong>termina<br />

da<br />

probabilid<br />

ad<br />

Recocido<br />

Simulado<br />

Si No<br />

Si, los típicos<br />

<strong>de</strong>l <strong>al</strong>goritmo<br />

Si<br />

Suman<br />

and Kumar<br />

2006<br />

PDMOSA<br />

Selecciona en cada iteración un solo<br />

objetivo que será encargado <strong>de</strong> guiar la<br />

búsqueda en esa iteración <strong>de</strong>l <strong>al</strong>goritmo.<br />

Incorpora memoria a corto y largo plazo,<br />

que permite seleccionar la dirección en la<br />

cu<strong>al</strong> el <strong>al</strong>goritmo <strong>de</strong>berá concentrarse.<br />

Utiliza una temperatura para cada<br />

objetivo.<br />

Si (Problema<br />

<strong>de</strong><br />

programación<br />

<strong>de</strong> la<br />

producción<br />

<strong>de</strong> máquinas<br />

par<strong>al</strong>elas)<br />

Si<br />

Si, la<br />

temperatura<br />

inici<strong>al</strong> <strong>de</strong> cada<br />

objetivo y los<br />

pesos w1 y w2<br />

que representan<br />

la importancia<br />

entre la<br />

memoria a largo<br />

y corto plazo.<br />

No Si<br />

Si, con<br />

<strong>de</strong>termina<br />

da<br />

probabilid<br />

ad<br />

Baesler,<br />

Moraga et<br />

<strong>al</strong>. 2008<br />

Recocido<br />

Simulado<br />

Multiobjetivo<br />

con<br />

Búsqueda<br />

<strong>de</strong><br />

Trayectoria<br />

Aleatoria<br />

31


Tabla 3.Comparación entre <strong>al</strong>goritmos <strong>de</strong> <strong>trayectoria</strong> <strong>multiobjetivo</strong> (Continuación)<br />

Diferencia<br />

fundament<strong>al</strong> con el<br />

resto <strong>de</strong> los<br />

<strong>al</strong>goritmos<br />

¿Ha sido aplicado a<br />

<strong>problema</strong>s <strong>de</strong><br />

asignación?<br />

¿Toma <strong>de</strong>cisiones<br />

<strong>al</strong>eatorias?<br />

¿Necesita<br />

parámetros?<br />

Mantiene una lista <strong>de</strong><br />

soluciones no<br />

dominadas<br />

¿Reinicia la<br />

búsqueda?<br />

¿Acepta soluciones<br />

peores?<br />

Algoritmo básico<br />

Fuentes <strong>de</strong><br />

referencia<br />

Variante<br />

<strong>multiobjetivo</strong><br />

La generación <strong>de</strong> una solución vecina<br />

utiliza la simulación basada en<br />

restricciones. Durante la simulación se<br />

modifican varios pasos teniendo en<br />

cuenta las restricciones <strong>de</strong>finidas. La<br />

probabilidad <strong>de</strong> aceptar una nueva<br />

solución se basa en la dominancia entre<br />

la solución actu<strong>al</strong> y candidata.<br />

Si<br />

(Problema<br />

<strong>de</strong><br />

asignación<br />

<strong>de</strong> tareas a<br />

recursos)<br />

Si, los típicos<br />

<strong>de</strong>l <strong>al</strong>goritmo Si<br />

No Si<br />

Si, con<br />

<strong>de</strong>terminada<br />

probabilidad<br />

Hamm, Beißert<br />

et <strong>al</strong>. 2009<br />

Recocido<br />

Simulado <strong>de</strong><br />

Pareto<br />

basado en<br />

restricciones<br />

Subdivi<strong>de</strong> en 3 subcasos el caso en que<br />

la solución actu<strong>al</strong> y la candidata son<br />

indiferentes entre sí para lograr una<br />

mejor exploración <strong>de</strong>l espacio <strong>de</strong><br />

búsqueda.<br />

Si<br />

(Problema<br />

<strong>de</strong> la<br />

mochila)<br />

Si, los típicos<br />

<strong>de</strong>l <strong>al</strong>goritmo Si<br />

No Si<br />

Si, con<br />

<strong>de</strong>terminada<br />

probabilidad<br />

Haidine and<br />

Lehnert 2008<br />

MC-MOSA<br />

Recocido<br />

Simulado<br />

El tamaño <strong>de</strong> la lista <strong>de</strong> soluciones no<br />

dominadas es limitado, y cuando se pasa<br />

<strong>de</strong> ese tamaño se aplican técnicas <strong>de</strong><br />

agrupamiento para mantenerlo en el<br />

tamaño pre<strong>de</strong>finido.<br />

Si No<br />

Si, el tamaño<br />

máximo <strong>de</strong>l<br />

archivo HL y<br />

el archivo SL<br />

No Si<br />

Si, con<br />

<strong>de</strong>terminada<br />

probabilidad<br />

Bandyopadhyay,<br />

Saha et <strong>al</strong>. 2008<br />

AMOSA<br />

Utiliza dos funciones para el cálculo <strong>de</strong> la<br />

probabilidad <strong>de</strong> aceptación: una función<br />

<strong>de</strong> ev<strong>al</strong>uación <strong>de</strong> suma <strong>de</strong> pesos y una<br />

función <strong>de</strong> ev<strong>al</strong>uación basada en la<br />

dominancia.<br />

Si<br />

(Problema<br />

<strong>de</strong><br />

planificación<br />

<strong>de</strong><br />

enfermeras)<br />

Si, los típicos<br />

<strong>de</strong>l <strong>al</strong>goritmo Si<br />

No Si<br />

Si, con<br />

<strong>de</strong>terminada<br />

probabilidad<br />

Burke 2009<br />

Recocido<br />

Simulado<br />

basado en<br />

Pareto<br />

32


Tabla 4.Comparación entre <strong>al</strong>goritmos <strong>de</strong> <strong>trayectoria</strong> <strong>multiobjetivo</strong> (Continuación)<br />

Diferencia<br />

fundament<strong>al</strong> con el<br />

resto <strong>de</strong> los<br />

<strong>al</strong>goritmos<br />

¿Ha sido aplicado a<br />

<strong>problema</strong>s <strong>de</strong><br />

asignación?<br />

¿Toma <strong>de</strong>cisiones<br />

<strong>al</strong>eatorias?<br />

¿Necesita<br />

parámetros?<br />

Mantiene una lista <strong>de</strong><br />

soluciones no<br />

dominadas<br />

¿Reinicia la<br />

búsqueda?<br />

¿Acepta soluciones<br />

peores?<br />

Algoritmo básico<br />

Fuentes <strong>de</strong><br />

referencia<br />

Variante<br />

<strong>multiobjetivo</strong><br />

Utiliza una lista <strong>de</strong> soluciones que son no<br />

dominadas loc<strong>al</strong>mente en <strong>al</strong>gún paso <strong>de</strong>l<br />

<strong>al</strong>goritmo, la que permite diversificar la búsqueda.<br />

Si (Problema <strong>de</strong><br />

asignación <strong>de</strong><br />

trabajos a<br />

máquinas)<br />

Si, los típicos<br />

<strong>de</strong>l <strong>al</strong>goritmo No<br />

Si Si Si<br />

Baykasoglu<br />

and Gindy<br />

1999;<br />

Baykasoglu,<br />

Ozbaku et<br />

<strong>al</strong>. 2002<br />

Búsqueda<br />

Tabú<br />

Multiobjetivo<br />

<strong>de</strong><br />

Baykasoglu<br />

Utiliza funciones <strong>de</strong> esc<strong>al</strong>a para ev<strong>al</strong>uar los<br />

objetivos. Cat<strong>al</strong>oga las soluciones vecinas <strong>de</strong> la<br />

solución actu<strong>al</strong> en función <strong>de</strong> un ranking que está<br />

dado por la cantidad <strong>de</strong> soluciones que dominan<br />

a la solución vecina.<br />

Búsqueda<br />

Tabú<br />

No No<br />

Si, los típicos<br />

<strong>de</strong>l <strong>al</strong>goritmo<br />

Si No Si<br />

Ho, Yang et<br />

<strong>al</strong>. 2002<br />

Búsqueda<br />

Tabú<br />

Multiobjetivo<br />

<strong>de</strong> Ho<br />

No No Utiliza el procedimiento <strong>de</strong> ranking.<br />

Si, los típicos<br />

<strong>de</strong>l <strong>al</strong>goritmo<br />

B<strong>al</strong>icki 2007 Si No Si<br />

Búsqueda<br />

Tabú<br />

Multiobjetivo<br />

<strong>de</strong> B<strong>al</strong>icki<br />

Mantiene una lista <strong>de</strong> soluciones don<strong>de</strong> se<br />

<strong>al</strong>macenan las soluciones no dominadas<br />

encontradas durante la búsqueda. Construye una<br />

lista <strong>de</strong> soluciones no dominadas y luego aplica<br />

un <strong>al</strong>goritmo <strong>de</strong> búsqueda loc<strong>al</strong>.<br />

Si No<br />

Si, los típicos<br />

<strong>de</strong>l <strong>al</strong>goritmo<br />

GRASP Si Si Si<br />

Reynolds<br />

and Iglesia<br />

2008;<br />

Reynolds,<br />

Corne et <strong>al</strong>.<br />

2009<br />

GRASP<br />

Multiobjetivo<br />

33


El comportamiento i<strong>de</strong><strong>al</strong> <strong>de</strong>l <strong>al</strong>goritmo es que la tasa <strong>de</strong> error sea 0, puesto que indica que todos<br />

los vectores generados por el <strong>al</strong>goritmo pertenecen <strong>al</strong> frente <strong>de</strong> Pareto verda<strong>de</strong>ro. Sin embargo,<br />

esta métrica requiere conocer los elementos <strong>de</strong>l frente <strong>de</strong> Pareto verda<strong>de</strong>ro, lo cu<strong>al</strong> pue<strong>de</strong><br />

resultar difícil <strong>de</strong> obtener en <strong>problema</strong>s re<strong>al</strong>es.<br />

- Distancia generacion<strong>al</strong> (Veldhuizen 1999): Indica qué tan lejos están los elementos <strong>de</strong>l frente <strong>de</strong><br />

Pareto actu<strong>al</strong> respecto <strong>al</strong> frente <strong>de</strong> Pareto verda<strong>de</strong>ro, siendo n el número <strong>de</strong> vectores no<br />

dominados en el frente <strong>de</strong> Pareto actu<strong>al</strong> y di la distancia euclidiana entre cada una <strong>de</strong> éstas y el<br />

miembro más cercano <strong>de</strong>l frente <strong>de</strong> Pareto verda<strong>de</strong>ro:<br />

<br />

<br />

34<br />

<br />

Si la distancia generacion<strong>al</strong> es 0 indica que todos los elementos generados están en el frente <strong>de</strong><br />

Pareto verda<strong>de</strong>ro. Cu<strong>al</strong>quier otro v<strong>al</strong>or indica que tan lejos se está <strong>de</strong>l frente <strong>de</strong> Pareto<br />

verda<strong>de</strong>ro.<br />

- Dispersión: Mi<strong>de</strong> la distribución <strong>de</strong> los elementos en el frente <strong>de</strong> Pareto actu<strong>al</strong> sobre la región no<br />

dominada. Existen varias propuestas para el cálculo <strong>de</strong> esta métrica:<br />

1. Srinivas y Deb (Srinivas and Deb 1994) proponen el uso <strong>de</strong> la distribución chi-cuadrada,<br />

don<strong>de</strong> q es el número <strong>de</strong> puntos óptimos <strong>de</strong>seados, ni es el número <strong>de</strong> individuos en la iésima<br />

subregión <strong>de</strong> la región no dominada, es el número esperado <strong>de</strong> individuos<br />

presentes en el i-ésimo nicho, y i es la varianza <strong>de</strong> los individuos presentes en la i-ésima<br />

subregión <strong>de</strong> la región no dominada:<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

, don<strong>de</strong> P es el tamaño <strong>de</strong> la población<br />

Para utilizar esta métrica, la región dominada se divi<strong>de</strong> en un cierto número <strong>de</strong> subregiones<br />

<strong>de</strong> igu<strong>al</strong> tamaño.<br />

2. Schott (Schott 1995) propone una métrica llamada conjunto eficiente espaciado “efficient set<br />

spacing” (ESS), don<strong>de</strong> j = 1,…,e, se refieren a la media <strong>de</strong> todas las di y e es el número <strong>de</strong><br />

elementos <strong>de</strong>l conjunto <strong>de</strong> Pareto obtenidos hasta el momento:<br />

<br />

<br />

<br />

<br />

Esta métrica mi<strong>de</strong> la varianza <strong>de</strong> la distancia <strong>de</strong> cada miembro <strong>de</strong>l conjunto <strong>de</strong> óptimos <strong>de</strong><br />

Pareto (encontrados hasta el momento) con respecto a su vecino más cercano.


Un v<strong>al</strong>or <strong>de</strong> 0 <strong>de</strong> esta métrica indica que todos los miembros <strong>de</strong>l frente <strong>de</strong> Pareto generado están<br />

equidistantes.<br />

- Cobertura (Zitzler 1999): Propone una métrica que compara dos conjuntos <strong>de</strong> vectores no<br />

dominados c<strong>al</strong>culando la fracción <strong>de</strong> cada uno que es cubierta (o dominada) por el otro. Se<br />

<strong>de</strong>fine <strong>de</strong> la siguiente manera:<br />

<br />

<br />

<br />

Don<strong>de</strong> A y B son dos conjuntos <strong>de</strong> vectores <strong>de</strong> solución. Si todos los puntos en A dominan o son<br />

igu<strong>al</strong>es a todos los puntos en B, entonces C = 0. En caso contrario C = 1.<br />

1.8 Bibliotecas <strong>de</strong> clases que implementan <strong>al</strong>goritmos metaheurísticos<br />

El uso <strong>de</strong> una biblioteca <strong>de</strong> clases que implemente <strong>al</strong>goritmos metaheurísticos para la solución <strong>de</strong><br />

<strong>problema</strong>s <strong>de</strong> optimización, resulta importante, en tanto garantiza el reuso <strong>de</strong> los <strong>al</strong>goritmos ya<br />

implementados. Es por esto que resulta <strong>de</strong> interés en este trabajo seleccionar una biblioteca <strong>de</strong> clases<br />

para utilizar en la solución <strong>de</strong>l mo<strong>de</strong>lo <strong>de</strong> asignación <strong>de</strong> recursos humanos a equipos <strong>de</strong> proyecto <strong>de</strong><br />

software.<br />

Existen numerosas bibliotecas que implementan <strong>al</strong>goritmos metaheurísticos. Algunas solo permiten<br />

resolver <strong>problema</strong>s monobjetivos y otras más gener<strong>al</strong>es, permiten resolver <strong>problema</strong>s <strong>multiobjetivo</strong>.<br />

Para el estudio <strong>de</strong> las bibliotecas <strong>de</strong> clases se tuvieron en cuenta los aspectos que se muestran en la<br />

Tabla 5.<br />

Los criterios <strong>de</strong> comparación fueron los siguientes:<br />

- El tipo <strong>de</strong> <strong>problema</strong> que pue<strong>de</strong> resolverse. En este caso se preten<strong>de</strong> resolver un <strong>problema</strong><br />

<strong>multiobjetivo</strong>.<br />

- El lenguaje <strong>de</strong> programación utilizado para el <strong>de</strong>sarrollo <strong>de</strong> la biblioteca, ya que se <strong>de</strong>sea utilizar<br />

una biblioteca <strong>de</strong>sarrollada en un lenguaje multiplataforma que pueda integrarse fácilmente a la<br />

herramienta Teamsoft + .<br />

- Las técnicas <strong>de</strong> solución, que permiten <strong>de</strong>terminar si la biblioteca soporta diferentes formas <strong>de</strong><br />

resolver los <strong>problema</strong>s <strong>multiobjetivo</strong>.<br />

- La extensibilidad, que permite <strong>de</strong>terminar si la biblioteca pue<strong>de</strong> ser fácilmente extendida con<br />

otros <strong>al</strong>goritmos.<br />

- Las aplicaciones, que permiten <strong>de</strong>terminar si la biblioteca ha sido probada en la solución <strong>de</strong><br />

<strong>problema</strong>s re<strong>al</strong>es.<br />

Se pue<strong>de</strong> concluir <strong>de</strong> la comparación re<strong>al</strong>izada que:<br />

Todas las bibliotecas an<strong>al</strong>izadas son extensibles, lo que indica que pue<strong>de</strong>n agregarse nuevos<br />

<strong>al</strong>goritmos <strong>de</strong> solución <strong>de</strong> manera fácil.<br />

35


Existen bibliotecas implementadas en Java y otras en C++. Estas últimas tienen el inconveniente<br />

<strong>de</strong> que no pue<strong>de</strong>n ser <strong>de</strong>splegadas en cu<strong>al</strong>quier plataforma.<br />

Solo MOMHLib++ implementa variantes <strong>multiobjetivo</strong> <strong>de</strong> <strong>al</strong>goritmos <strong>de</strong> <strong>trayectoria</strong>. El resto <strong>de</strong> las<br />

bibliotecas que permiten solucionar <strong>problema</strong>s <strong>multiobjetivo</strong> implementan solo variantes<br />

poblacion<strong>al</strong>es.<br />

Ninguna <strong>de</strong> las bibliotecas que implementan <strong>al</strong>goritmos <strong>multiobjetivo</strong> permiten seleccionar<br />

diferentes técnicas <strong>de</strong> solución, como por ejemplo la combinación line<strong>al</strong> <strong>de</strong> pesos, el método<br />

lexicográfico, entre otros. Esto limita el proceso <strong>de</strong> toma <strong>de</strong> <strong>de</strong>cisiones.<br />

Dado que la biblioteca BICIAM fue <strong>de</strong>sarrollada por un grupo <strong>de</strong> investigación <strong>de</strong> la propia facultad<br />

don<strong>de</strong> se <strong>de</strong>sarrolla este trabajo, y constituye un objetivo <strong>de</strong>l grupo <strong>de</strong> <strong>de</strong>sarrollo <strong>de</strong> la biblioteca<br />

<strong>de</strong>mostrar su aplicabilidad en diferentes tipos <strong>de</strong> <strong>problema</strong>s; teniendo en cuenta que está <strong>de</strong>sarrollada<br />

en Java, <strong>al</strong> igu<strong>al</strong> que la herramienta Teamsoft + , en la que se encuentra implementado el mo<strong>de</strong>lo y<br />

utiliza, a diferencia <strong>de</strong>l resto <strong>de</strong> las bibliotecas an<strong>al</strong>izadas, un conjunto <strong>de</strong> patrones <strong>de</strong> diseño, que<br />

contribuye a garantizar su extensibilidad y flexibilidad, se <strong>de</strong>ci<strong>de</strong> el uso <strong>de</strong> la biblioteca BICIAM en este<br />

trabajo. La biblioteca será modificada para ser utilizada en <strong>problema</strong>s <strong>de</strong> optimización <strong>multiobjetivo</strong>,<br />

incluyendo un conjunto <strong>de</strong> técnicas y <strong>al</strong>goritmos <strong>de</strong> solución para este tipo <strong>de</strong> <strong>problema</strong>s.<br />

36


Tabla 5. Comparación <strong>de</strong> bibliotecas que implementan <strong>al</strong>goritmos metaheurísticos<br />

Biblioteca/Parámetros<br />

Lenguaje <strong>de</strong><br />

implementación<br />

<strong>Algoritmos</strong> que<br />

implementa<br />

EJC (Luke 2010) Java Estrategias evolutivas,<br />

Algoritmo genético, Variantes<br />

<strong>de</strong> Programación Genética,<br />

Evolución diferenci<strong>al</strong>, NSGA-II,<br />

SPEA2<br />

JGAP(Rotstan Java Algoritmo genético,<br />

2002)<br />

JMet<strong>al</strong>(Durillo,<br />

Nebro et <strong>al</strong>.<br />

2010)<br />

MALLBA (Alba<br />

and Cotta 2002)<br />

MOMHLib++<br />

(MOMHTeam<br />

2007)<br />

OPT4J<br />

(Lukasiewycz,<br />

Glab et <strong>al</strong>. 2011)<br />

BICIAM (Sierra<br />

and Melo 2009)<br />

Programación genética<br />

Java NSGA-II, SPEA2, PAES,<br />

PESA-II, OMOPSO, MOEA/D.<br />

C++ Algoritmo genético, Recocido<br />

Simulado, Estrategias<br />

Evolutivas, Colonia <strong>de</strong><br />

Hormigas, Híbrido <strong>de</strong> Recocido<br />

Simulado con Algoritmo<br />

Genético, Búsqueda Loc<strong>al</strong><br />

Cooperativa, Optimización <strong>de</strong><br />

enjambre <strong>de</strong> partículas<br />

C++ Recocido Simulado <strong>de</strong> Pareto,<br />

Búsqueda loc<strong>al</strong> genética<br />

<strong>multiobjetivo</strong>, Recocido<br />

Simulado Multiobjetivo <strong>de</strong><br />

Serafini, Recocido Simulado<br />

Multiobjetivo <strong>de</strong> Ulungu,<br />

Algoritmo Memético <strong>de</strong> Pareto,<br />

entre otros<br />

Java <strong>Algoritmos</strong> evolutivos (SPEA2,<br />

NSGA), Optimización <strong>de</strong><br />

enjambre <strong>de</strong> partículas<br />

<strong>multiobjetivo</strong>, Recocido<br />

Simulado monobjetivo con<br />

esquema <strong>de</strong> enfriamiento<br />

pre<strong>de</strong>finido, Evolución<br />

diferenci<strong>al</strong> <strong>multiobjetivo</strong><br />

Java Búsqueda Tabú, Esc<strong>al</strong>ador <strong>de</strong><br />

Colinas, Búsqueda Aleatoria,<br />

Recocido Simulado, Algoritmo<br />

genético, Algoritmo <strong>de</strong><br />

Estimación <strong>de</strong> Distribuciones,<br />

Estrategias Evolutivas<br />

37<br />

¿Resuelve <strong>problema</strong>s<br />

<strong>multiobjetivo</strong>?<br />

Técnica <strong>de</strong> solución que<br />

implementa<br />

Licencia<br />

Extensibilidad<br />

Aplicaciones<br />

Si No Libre Si Se reportan 30 ó 40<br />

publicaciones don<strong>de</strong> se<br />

aplica<br />

Si No Libre Si No se reportan<br />

Si No Libre Si Ha sido <strong>de</strong>scargado 1600<br />

veces<br />

No No Libre Si Problema <strong>de</strong> asignación<br />

<strong>de</strong> frecuencias, ajuste <strong>de</strong><br />

pesos en re<strong>de</strong>s<br />

neuron<strong>al</strong>es artifici<strong>al</strong>es, y<br />

otros <strong>problema</strong>s par<strong>al</strong>elos.<br />

Si No Libre Si No se reportan<br />

Si No Libre Si Problema <strong>de</strong>l viajante <strong>de</strong><br />

comercio. Incluye los<br />

<strong>problema</strong>s <strong>de</strong> prueba<br />

ZDT, DTLZ y WFG<br />

No No Libre Si Integración <strong>de</strong> mo<strong>de</strong>los <strong>de</strong><br />

minería <strong>de</strong> datos,<br />

obtención <strong>de</strong> predicados<br />

difusos a partir <strong>de</strong> datos,<br />

<strong>problema</strong> <strong>de</strong>l viajante,<br />

<strong>problema</strong> <strong>de</strong> asignación<br />

cuadrática, entre otros.


1.9 Conclusiones<br />

A partir <strong>de</strong> la revisión bibliográfica re<strong>al</strong>izada se pue<strong>de</strong> concluir que:<br />

Los <strong>problema</strong>s <strong>de</strong> asignación pue<strong>de</strong>n ser resueltos por una gran variedad <strong>de</strong> <strong>al</strong>goritmos<br />

metaheurísticos, ya sean basados en <strong>trayectoria</strong>s o basados en poblaciones. Se <strong>de</strong>staca el uso <strong>de</strong>l<br />

<strong>al</strong>goritmo <strong>de</strong> <strong>trayectoria</strong> Búsqueda Tabú para dar solución a <strong>problema</strong>s <strong>de</strong> asignación.<br />

Los <strong>al</strong>goritmos <strong>de</strong> <strong>trayectoria</strong> <strong>multiobjetivo</strong> han sido <strong>aplicados</strong> a una gran variedad <strong>de</strong> <strong>problema</strong>s,<br />

entre los que se encuentran los <strong>problema</strong>s <strong>de</strong> asignación.<br />

Resulta conveniente contar con una herramienta que implemente el mo<strong>de</strong>lo form<strong>al</strong> <strong>de</strong> asignación <strong>de</strong><br />

recursos humanos a equipos <strong>de</strong> proyecto <strong>de</strong> software y dé soporte a la toma <strong>de</strong> <strong>de</strong>cisiones,<br />

teniendo en cuenta las preferencias <strong>de</strong>l <strong>de</strong>cisor.<br />

Las métricas para ev<strong>al</strong>uar el <strong>de</strong>sempeño <strong>de</strong> los <strong>al</strong>goritmos <strong>multiobjetivo</strong> preten<strong>de</strong>n disminuir la<br />

distancia <strong>de</strong> las soluciones obtenidas respecto <strong>al</strong> frente <strong>de</strong> Pareto verda<strong>de</strong>ro, obtener una buena<br />

distribución <strong>de</strong> las soluciones y aumentar la cantidad <strong>de</strong> elementos <strong>de</strong>l frente <strong>de</strong> Pareto generado.<br />

No existen métricas que ev<strong>al</strong>úen estos tres objetivos simultáneamente, por lo que se propone<br />

utilizar varias métricas para ev<strong>al</strong>uar el <strong>de</strong>sempeño <strong>de</strong> estos.<br />

Existen diversas bibliotecas <strong>de</strong> clases que implementan variantes <strong>de</strong> <strong>al</strong>goritmos <strong>multiobjetivo</strong>, en su<br />

mayoría poblacion<strong>al</strong>es. Sin embargo, ninguna <strong>de</strong> estas implementa la tot<strong>al</strong>idad <strong>de</strong> los <strong>al</strong>goritmos<br />

an<strong>al</strong>izados ni da soporte a varias técnicas <strong>de</strong> solución.<br />

La biblioteca BICIAM constituye una buena propuesta a ser utilizada, en tanto garantiza su<br />

extensibilidad y flexibilidad <strong>al</strong> usar un conjunto <strong>de</strong> patrones <strong>de</strong> diseño y estar <strong>de</strong>sarrollada en Java.<br />

A<strong>de</strong>más, se <strong>de</strong>sea <strong>de</strong>mostrar la aplicabilidad <strong>de</strong> la biblioteca en este tipo <strong>de</strong> <strong>problema</strong>s.<br />

38


Capítulo 2. Propuesta <strong>de</strong> solución para resolver el mo<strong>de</strong>lo <strong>de</strong> asignación <strong>de</strong> recursos<br />

humanos a equipos <strong>de</strong> proyecto <strong>de</strong> software<br />

2.1 Introducción<br />

En el capítulo se caracteriza la herramienta Teamsoft + , presentando las funcion<strong>al</strong>ida<strong>de</strong>s que se<br />

incorporan a la herramienta como parte <strong>de</strong>l trabajo. Se presenta la solución propuesta, que incluye las<br />

modificaciones re<strong>al</strong>izadas a la biblioteca BICIAM para que permita la solución <strong>de</strong> <strong>problema</strong>s<br />

<strong>multiobjetivo</strong> y la incorporación <strong>de</strong> las variantes <strong>multiobjetivo</strong> <strong>de</strong> los <strong>al</strong>goritmos <strong>de</strong> <strong>trayectoria</strong>: Búsqueda<br />

Tabú, Recocido Simulado, Esc<strong>al</strong>ador <strong>de</strong> Colinas y GRASP. A<strong>de</strong>más, se presenta la arquitectura <strong>de</strong><br />

Teamsoft + y las clases creadas para la utilización <strong>de</strong> la biblioteca <strong>de</strong> clases BICIAM.<br />

2.2 Herramienta Teamsoft +<br />

Los <strong>problema</strong>s <strong>de</strong> optimización <strong>multiobjetivo</strong> <strong>de</strong>ben apoyarse en una herramienta que posibilite <strong>al</strong><br />

<strong>de</strong>cisor tomar en cuenta o no los factores involucrados en el <strong>problema</strong>. Es por esto que se <strong>de</strong>ci<strong>de</strong> la<br />

implementación <strong>de</strong> la herramienta Teamsoft + en (André 2009) para dar solución <strong>al</strong> <strong>problema</strong> <strong>de</strong><br />

asignación <strong>de</strong> recursos humanos a equipos <strong>de</strong> proyecto <strong>de</strong> software.<br />

Teamsoft + es una aplicación web, <strong>de</strong>sarrollada en Java, que incluye funcion<strong>al</strong>ida<strong>de</strong>s para la gestión <strong>de</strong><br />

recursos humanos basado en competencias. En la versión 3 <strong>de</strong> la herramienta se incorpora el módulo<br />

<strong>de</strong> asignación <strong>de</strong> person<strong>al</strong> basado en el mo<strong>de</strong>lo <strong>de</strong> asignación <strong>de</strong> recursos humanos a equipos <strong>de</strong><br />

proyectos <strong>de</strong> software propuesto en (André 2009). La herramienta se convierte en un sistema <strong>de</strong><br />

soporte a la <strong>de</strong>cisión, que ayuda a los directivos <strong>de</strong> una organización para la conformación <strong>de</strong> equipos<br />

<strong>de</strong> proyecto <strong>de</strong> software.<br />

La versión 3 <strong>de</strong> la herramienta implementa métodos y <strong>al</strong>goritmos para la solución <strong>de</strong>l mo<strong>de</strong>lo referido,<br />

entre los que se encuentran: Búsqueda Tabú, Recocido Simulado, Esc<strong>al</strong>ador <strong>de</strong> Colinas, GRASP con<br />

Búsqueda Tabú, GRASP con Recocido Simulado y GRASP con Esc<strong>al</strong>ador <strong>de</strong> Colinas. Como método <strong>de</strong><br />

solución solo implementa el método <strong>de</strong> factores pon<strong>de</strong>rados. Sin embargo, no utiliza ninguna biblioteca<br />

<strong>de</strong> clases <strong>de</strong> <strong>al</strong>goritmos metaheurísticos, sino que tiene implementado sus propios <strong>al</strong>goritmos.<br />

La herramienta propone re<strong>al</strong>izar la asignación <strong>de</strong> person<strong>al</strong> en dos etapas, t<strong>al</strong> como propone la Guía <strong>de</strong><br />

Fundamentos para la Dirección <strong>de</strong> Proyectos PMBOK (PMI 2004). En una primera etapa se asigna <strong>al</strong><br />

Jefe <strong>de</strong> Proyecto y luego se conforma el equipo.<br />

La herramienta garantiza en ambos momentos la toma <strong>de</strong> <strong>de</strong>cisiones, permitiendo seleccionar los<br />

objetivos y restricciones a tener en cuenta. A<strong>de</strong>más, permite seleccionar entre los diferentes <strong>al</strong>goritmos<br />

propuestos, aunque se propone una selección por <strong>de</strong>fecto basado en los resultados obtenidos por los<br />

diferentes <strong>al</strong>goritmos en las pruebas re<strong>al</strong>izadas.<br />

39


En el trabajo <strong>de</strong> (André 2009), se recomienda la incorporación <strong>de</strong> otros métodos y <strong>al</strong>goritmos <strong>de</strong><br />

solución a la herramienta, con el objetivo <strong>de</strong> aten<strong>de</strong>r a las diferentes preferencias <strong>de</strong>l <strong>de</strong>cisor.<br />

En este trabajo se incorporan las técnicas <strong>de</strong> solución or<strong>de</strong>namiento lexicográfico y <strong>multiobjetivo</strong> puro,<br />

implementándose un conjunto <strong>de</strong> <strong>al</strong>goritmos <strong>multiobjetivo</strong> para dar solución <strong>al</strong> <strong>problema</strong>.<br />

Como se observa en la Figura 13, para re<strong>al</strong>izar la asignación <strong>de</strong>l jefe <strong>de</strong> proyecto, el <strong>de</strong>cisor pue<strong>de</strong><br />

seleccionar los objetivos y restricciones a tener en cuenta y la herramienta provee un listado <strong>de</strong> los<br />

trabajadores que cumplen con los parámetros establecidos, que pue<strong>de</strong> ser or<strong>de</strong>nado en función <strong>de</strong> los<br />

diferentes criterios consi<strong>de</strong>rados, mostrando la ev<strong>al</strong>uación <strong>de</strong> cada uno <strong>de</strong> los objetivos seleccionados.<br />

La facilidad <strong>de</strong> or<strong>de</strong>nar en función <strong>de</strong> los diferentes objetivos es incorporado en la nueva versión <strong>de</strong>l<br />

módulo <strong>de</strong> asignación que propone este trabajo.<br />

Figura 13. Pant<strong>al</strong>la <strong>de</strong> la herramienta Teamsoft + para la asignación <strong>de</strong>l jefe <strong>de</strong> proyecto<br />

40


Una vez que se asigna el Jefe <strong>de</strong> proyecto, se <strong>de</strong>be asignar <strong>al</strong> resto <strong>de</strong>l equipo. Como se muestra en<br />

las Figuras 14 y 15, la herramienta permite obtener varias propuestas <strong>de</strong> equipos, pudiendo seleccionar<br />

los objetivos, las restricciones, el método y el <strong>al</strong>goritmo <strong>de</strong> solución, así como fijar un trabajador en un<br />

rol y obtener una propuesta <strong>de</strong> equipo con uno o varios roles fijos.<br />

La nueva versión <strong>de</strong>l módulo <strong>de</strong> asignación <strong>de</strong> person<strong>al</strong> garantiza po<strong>de</strong>r seleccionar entre los tres<br />

métodos <strong>de</strong> solución propuestos (método <strong>de</strong> factores pon<strong>de</strong>rados, método lexicográfico y <strong>multiobjetivo</strong><br />

puro) e incorpora nuevos <strong>al</strong>goritmos a seleccionar. A<strong>de</strong>más, permite or<strong>de</strong>nar las soluciones encontradas<br />

teniendo en cuenta el v<strong>al</strong>or <strong>de</strong> la ev<strong>al</strong>uación <strong>de</strong> los diferentes objetivos, en cu<strong>al</strong>quiera <strong>de</strong> los métodos<br />

seleccionados.<br />

Figura 14. Pant<strong>al</strong>la para la asignación <strong>de</strong>l equipo <strong>de</strong> proyecto seleccionando el método <strong>de</strong> solución<br />

<strong>multiobjetivo</strong> puro<br />

41


En la Figura 15 se observa la solución obtenida aplicando el método lexicográfico y el <strong>al</strong>goritmo<br />

Esc<strong>al</strong>ador <strong>de</strong> Colinas. Para aplicar el método es necesario darle diferentes priorida<strong>de</strong>s a los objetivos,<br />

t<strong>al</strong> como se señ<strong>al</strong>a en la Figura 15.<br />

Figura 15. Pant<strong>al</strong>la para la asignación <strong>de</strong>l equipo <strong>de</strong> proyecto seleccionando el método <strong>de</strong> solución<br />

lexicográfico<br />

42


2.3 Implementación <strong>de</strong> la solución propuesta<br />

2.3.1 <strong>Algoritmos</strong> <strong>de</strong> <strong>trayectoria</strong> <strong>multiobjetivo</strong> implementados<br />

Teniendo en cuenta las distintas aplicaciones <strong>de</strong> variantes <strong>de</strong> <strong>al</strong>goritmos <strong>de</strong> <strong>trayectoria</strong> <strong>multiobjetivo</strong> a<br />

<strong>problema</strong>s <strong>de</strong> asignación y la premisa <strong>de</strong> ev<strong>al</strong>uar el <strong>de</strong>sempeño <strong>de</strong> <strong>al</strong>goritmos sencillos antes <strong>de</strong><br />

<strong>al</strong>goritmos más complejos en la solución <strong>de</strong> este tipo <strong>de</strong> <strong>problema</strong> se <strong>de</strong>ci<strong>de</strong> implementar los siguientes<br />

<strong>al</strong>goritmos:<br />

Variantes <strong>de</strong>l Esc<strong>al</strong>ador <strong>de</strong> Colinas (Díaz 2001): Esc<strong>al</strong>ador <strong>de</strong> Colinas Estocástico Multiobjetivo,<br />

Esc<strong>al</strong>ador <strong>de</strong> Colinas Multiobjetivo con Reinicio y Esc<strong>al</strong>ador <strong>de</strong> Colinas Multiobjetivo por mayor<br />

distancia.<br />

- Variantes <strong>de</strong> Recocido Simulado: Recocido Simulado Multiobjetivo <strong>de</strong> Ulungu y Teghem (Ulungu<br />

and Teghem 1994; Suman and Kumar 2006) y Recocido Simulado Multiobjetivo Multicaso<br />

(Haidine and Lehnert 2008)<br />

Variantes <strong>de</strong> Búsqueda Tabú: Búsqueda Tabú Multiobjetivo<br />

Variante <strong>de</strong> GRASP: GRASP Multiobjetivo (Reynolds and Iglesia 2008; Reynolds, Corne et <strong>al</strong>.<br />

2009)<br />

La <strong>de</strong>scripción <strong>de</strong>t<strong>al</strong>lada <strong>de</strong> estos <strong>al</strong>goritmos pue<strong>de</strong> encontrarse en el epígrafe 1.6 <strong>de</strong>l Capítulo 1.<br />

2.3.2 Descripción <strong>de</strong> la solución propuesta<br />

La herramienta Teamsoft + propuesta en (André 2009) no utilizan ninguna biblioteca <strong>de</strong> clases <strong>de</strong><br />

<strong>al</strong>goritmos metaheurísticos, sino que implementa sus propios <strong>al</strong>goritmos. Es por esto que se <strong>de</strong>ci<strong>de</strong> la<br />

incorporación <strong>de</strong> la biblioteca BICIAM a la arquitectura <strong>de</strong> Teamsoft + .<br />

BICIAM es una biblioteca <strong>de</strong> clases para resolver <strong>problema</strong>s <strong>de</strong> optimización monobjetivos. Propone<br />

una arquitectura proyectada en dos capas: la capa <strong>de</strong> aplicación, don<strong>de</strong> se encuentran los paquetes <strong>de</strong><br />

la biblioteca <strong>de</strong> clases y la capa JDK (Java Development Kit) don<strong>de</strong> se encuentran las clases e<br />

interfaces que brinda la plataforma (Fajardo and Pare<strong>de</strong>s 2009) (Ver Figura 16).<br />

Figura 16. Vista <strong>de</strong> la arquitectura <strong>de</strong> BICIAM (Extraído <strong>de</strong> (Fajardo and Pare<strong>de</strong>s 2009))<br />

43


Los paquetes que contienen las clases princip<strong>al</strong>es <strong>de</strong> la biblioteca se muestran en las Figuras 17<br />

(paquete ceis.gri<strong>al</strong>.problem) y 18 (paquete ceis.gri<strong>al</strong>.generator). En las Tablas 6 y 7 se <strong>de</strong>scriben las<br />

clases fundament<strong>al</strong>es <strong>de</strong> estos paquetes.<br />

Figura 17. Clases princip<strong>al</strong>es <strong>de</strong>l paquete ceis.gri<strong>al</strong>.problem (Extraído <strong>de</strong> (Fajardo and Pare<strong>de</strong>s 2009))<br />

Tabla 6. Clases <strong>de</strong>l paquete ceis.gri<strong>al</strong>.problem<br />

Clase Descripción<br />

Problem Clase que representa un <strong>problema</strong> <strong>de</strong> optimización. Incluye el atributo tipo <strong>de</strong> <strong>problema</strong> que<br />

pue<strong>de</strong> tomar el v<strong>al</strong>or <strong>de</strong> Minimización o Maximización.<br />

Domain Clase abstracta que representa el dominio <strong>de</strong> la solución. Incluye como método fundament<strong>al</strong><br />

v<strong>al</strong>idateState que se encarga <strong>de</strong> comprobar que un estado o solución se encuentre en el<br />

dominio.<br />

Constrain Clase abstracta que representa las restricciones <strong>de</strong>l <strong>problema</strong>. Incluye como método<br />

fundament<strong>al</strong> v<strong>al</strong>idateState que se encarga <strong>de</strong> verificar que un estado o solución cumpla las<br />

restricciones.<br />

ObjectiveFunction Clase abstracta que representa la función objetivo <strong>de</strong>l <strong>problema</strong>. Incluye el método<br />

Ev<strong>al</strong>uation que c<strong>al</strong>cula el v<strong>al</strong>or <strong>de</strong> la ev<strong>al</strong>uación <strong>de</strong> la función objetivo.<br />

ProblemState Clase que representa un estado o solución <strong>de</strong>l <strong>problema</strong>.<br />

Operator Clase abstracta que representa el operador <strong>de</strong>l <strong>problema</strong>. Incluye el método<br />

generateNewState que permite generar una lista <strong>de</strong> nuevos estados utilizando un operador<br />

<strong>de</strong>terminado, como por ejemplo sustitución, permutación, entre otros.<br />

44


Figura 18. Clases princip<strong>al</strong>es <strong>de</strong>l paquete ceis.gri<strong>al</strong>.generator (Extraído <strong>de</strong> (Fajardo and Pare<strong>de</strong>s 2009))<br />

Tabla 7. Clases <strong>de</strong>l paquete ceis.gri<strong>al</strong>.generator<br />

Clase Descripción<br />

ExecuteGenerator Clase que lleva a cabo el proceso <strong>de</strong> búsqueda. Manipula los datos <strong>de</strong>l <strong>problema</strong> y los<br />

parámetros <strong>de</strong> entrada a través <strong>de</strong> Generator, Problem, SolutionGreedy,<br />

Generator<br />

AcceptableCandidate, StopExecute y UpdateParameter.<br />

Clase abstracta que representa los diferentes <strong>al</strong>goritmos <strong>de</strong> solución. Delega sus<br />

responsabilida<strong>de</strong>s en clases concretas como SimulatedAnne<strong>al</strong>ing, TabuSearch,<br />

HillClimbing, RandomSearch, entre otros.<br />

AcceptableCandidate Clase abstracta que representa el criterio <strong>de</strong> aceptación <strong>de</strong> una nueva solución. Tiene<br />

como método fundament<strong>al</strong> acceptCandidate que <strong>de</strong>termina si la nueva solución se<br />

pue<strong>de</strong> aceptar o no.<br />

El primer paso para utilizar la biblioteca BICIAM en Teamsoft + consistió en modificar la misma para<br />

resolver <strong>problema</strong>s <strong>de</strong> optimización <strong>multiobjetivo</strong>. Los cambios re<strong>al</strong>izados se señ<strong>al</strong>an en la Figura 19 y<br />

se <strong>de</strong>scriben a continuación:<br />

45


En la clase Problem se incorpora como atributo el método <strong>de</strong> solución a emplear, teniendo en<br />

cuenta que para <strong>problema</strong>s <strong>de</strong> optimización <strong>multiobjetivo</strong> existen varias técnicas <strong>de</strong> solución, y<br />

que en esta versión <strong>de</strong> la biblioteca, se incluyen las técnicas <strong>de</strong> solución: combinación line<strong>al</strong> <strong>de</strong><br />

pesos, or<strong>de</strong>namiento lexicográfico y <strong>multiobjetivo</strong> puro, aunque pudieran agregarse otras.<br />

La cardin<strong>al</strong>idad entre la clase Problem y las clases ObjectiveFunction y ProblemState se<br />

cambia a uno a muchos, teniendo en cuenta que en <strong>problema</strong>s <strong>multiobjetivo</strong> se tiene más <strong>de</strong> una<br />

función objetivo y se pue<strong>de</strong> obtener más <strong>de</strong> una solución si se utiliza la técnica <strong>multiobjetivo</strong><br />

puro.<br />

En la clase ObjectiveFunction se incorpora un atributo <strong>de</strong>nominado tipo <strong>de</strong> <strong>problema</strong>, que<br />

indica si la función objetivo es <strong>de</strong> maximización o <strong>de</strong> minimización. A<strong>de</strong>más, se incorporan los<br />

atributos peso y prioridad para el caso en que se utilicen las técnicas combinación line<strong>al</strong> <strong>de</strong><br />

pesos y lexicográfico, respectivamente.<br />

En la clase que maneja la solución (ProblemState) se sustituye el atributo ev<strong>al</strong>uation que es <strong>de</strong><br />

tipo double por una lista <strong>de</strong> ev<strong>al</strong>uaciones <strong>de</strong> ese mismo tipo, para el caso en que se emplee la<br />

técnica <strong>de</strong> solución <strong>multiobjetivo</strong> puro.<br />

Se incorpora un método en la clase Problem <strong>de</strong>nominado Ev<strong>al</strong>uate, que permite ev<strong>al</strong>uar una<br />

solución según la técnica <strong>de</strong> solución empleada.<br />

Figura 19.Clases princip<strong>al</strong>es <strong>de</strong> BICIAM para resolver <strong>problema</strong>s <strong>de</strong> optimización <strong>multiobjetivo</strong> (paquete<br />

ceis.gri<strong>al</strong>.problem)<br />

46


El segundo paso consistió en agregar los <strong>al</strong>goritmos propuestos en el epígrafe 2.3.1 en la biblioteca <strong>de</strong><br />

clases, para lo cu<strong>al</strong> se incorporaron las clases que se señ<strong>al</strong>an en la Figura 20 y se <strong>de</strong>scriben a<br />

continuación:<br />

Se agregaron clases que heredan <strong>de</strong> AcceptableCandidate e implementan los diferentes<br />

criterios <strong>de</strong> aceptación establecidos por cada <strong>al</strong>goritmo.<br />

Se agregaron clases para cada <strong>al</strong>goritmo <strong>multiobjetivo</strong> implementado, que heredan <strong>de</strong> la clase<br />

Generator.<br />

Figura 20. Vista <strong>de</strong>l Diagrama <strong>de</strong> Clases <strong>de</strong> Biciam con <strong>al</strong>goritmos nuevos incorporados en color más<br />

claro (paquete ceis.gri<strong>al</strong>.generator)<br />

El tercer paso consistió en la incorporación <strong>de</strong> Biciam a la arquitectura <strong>de</strong> Teamsoft + . Para el uso <strong>de</strong> la<br />

biblioteca <strong>de</strong> clases es necesario:<br />

Mo<strong>de</strong>lar el <strong>problema</strong> mediante la <strong>de</strong>finición <strong>de</strong> la/las funciones objetivo y restricciones<br />

Definir la representación <strong>de</strong> una solución y su dominio<br />

Definir el/los operadores a utilizar<br />

47


Diseñar las clases <strong>de</strong>l <strong>problema</strong> bajo consi<strong>de</strong>ración heredando <strong>de</strong> las clases abstractas<br />

ObjectiveFunction, Constrain, Operator y Domain.<br />

Para el uso <strong>de</strong> la biblioteca BICIAM en la herramienta Teamsoft + se mo<strong>de</strong>ló el <strong>problema</strong> a través <strong>de</strong>l<br />

mo<strong>de</strong>lo form<strong>al</strong> explicado en <strong>de</strong>t<strong>al</strong>le en el epígrafe 1.3 <strong>de</strong>l Capítulo 1.<br />

La representación <strong>de</strong> una solución se muestra en la Figura 21. Dado que el <strong>problema</strong> consiste en<br />

asignar trabajadores a los roles <strong>de</strong>finidos en un equipo <strong>de</strong> proyecto dado y que se pue<strong>de</strong> necesitar que<br />

se asignen varios trabajadores a un mismo rol, se <strong>de</strong>fine como solución, una lista <strong>de</strong> elementos, don<strong>de</strong><br />

cada elemento está compuesto por un rol y la lista <strong>de</strong> trabajadores que juegan ese rol.<br />

Figura 21. Representación <strong>de</strong> una solución<br />

El <strong>problema</strong> planteado tiene una particularidad, asociada <strong>al</strong> hecho <strong>de</strong> que se pue<strong>de</strong> querer buscar una<br />

solución fijando uno o varios trabajadores en uno o más roles, t<strong>al</strong> como se muestra en la Figura 22.<br />

Figura 22. Representación <strong>de</strong> una solución fijando <strong>al</strong>gunos trabajadores en <strong>de</strong>terminados roles<br />

El espacio <strong>de</strong> soluciones está <strong>de</strong>terminado por la instancia <strong>de</strong>l <strong>problema</strong> que se an<strong>al</strong>iza. Para una<br />

instancia <strong>de</strong> 60 trabajadores y 6 roles, suponiendo que un trabajador solo pue<strong>de</strong> <strong>de</strong>sempeñar un rol y<br />

que el rol Jefe <strong>de</strong> Proyecto se asigna <strong>al</strong> inicio y permanece fijo durante la asignación, el espacio <strong>de</strong><br />

soluciones es 6 x 10 8 . En el Capítulo 3 se <strong>de</strong>t<strong>al</strong>la el espacio <strong>de</strong> soluciones para cada instancia <strong>de</strong>l<br />

<strong>problema</strong> consi<strong>de</strong>rada.<br />

En cuanto <strong>al</strong> tratamiento <strong>de</strong> las restricciones todos los <strong>al</strong>goritmos implementados consi<strong>de</strong>ran como<br />

soluciones no factibles aquellas que no cumplen con las restricciones <strong>de</strong>l <strong>problema</strong>, y por tanto no las<br />

toma en cuenta durante la búsqueda <strong>de</strong> una solución. Es <strong>de</strong>cir, en el proceso <strong>de</strong> búsqueda no se tienen<br />

en cuenta soluciones no factibles, por lo que si <strong>al</strong> generar un vecino <strong>de</strong> la solución actu<strong>al</strong> resulta que es<br />

una solución no factible, esta no es tomada en cuenta y se busca otro vecino.<br />

Los operadores utilizados en la versión actu<strong>al</strong> son sustitución y permutación. El operador sustitución,<br />

escoge uno <strong>de</strong> los roles <strong>de</strong> la solución y sustituye uno <strong>de</strong> los trabajadores que juegan ese rol por otro<br />

<strong>de</strong>l espacio <strong>de</strong> soluciones. El operador permutación escoge dos roles <strong>de</strong> la solución, selecciona un<br />

trabajador <strong>de</strong> cada rol y los intercambia.<br />

48


En la Figura 23 se muestra la arquitectura <strong>de</strong> la herramienta Teamsoft + utilizando un enfoque por<br />

reutilización. Se adicionaron dos paquetes <strong>de</strong>nominados Metaheuristics y Biciam. En el paquete<br />

Metaheuristics se encuentran todas las clases implementadas que heredan <strong>de</strong> las clases <strong>de</strong> la<br />

biblioteca BICIAM.<br />

En el paquete Biciam se encuentran todas las clases <strong>de</strong> la biblioteca, incluyendo las modificaciones<br />

(<strong>de</strong>scritas en el paso 1) y las adiciones re<strong>al</strong>izadas (<strong>de</strong>scritas en el paso 2).<br />

Figura 23. Arquitectura <strong>de</strong> Teamsoft+ incorporando BICIAM<br />

En la Figura 24 se presenta el mo<strong>de</strong>lo <strong>de</strong> clases elaborado para el uso <strong>de</strong> la biblioteca BICIAM en la<br />

herramienta Teamsoft + . A continuación se <strong>de</strong>scriben las modificaciones re<strong>al</strong>izadas:<br />

49


Se rediseñaron las clases MaximizeCompetence, MinimizeWorkload, MinimizeIncompatibilities y<br />

MinimizeCostDistance que en Teamsoft + representaban los funciones objetivos establecidas en<br />

<br />

el mo<strong>de</strong>lo form<strong>al</strong> <strong>de</strong> asignación <strong>de</strong> manera t<strong>al</strong> que pudieran heredar los atributos y el<br />

comportamiento <strong>de</strong>finido en la clase ObjectiveFunction <strong>de</strong> la biblioteca BICIAM.<br />

Se rediseñó la clase Solution que representa la solución establecida en Teamsoft + <strong>de</strong> manera t<strong>al</strong><br />

que pudieran heredar atributos y comportamiento <strong>de</strong>finido en la clase ProblemState <strong>de</strong> la<br />

biblioteca BICIAM.<br />

Se rediseñaron las clases GenerateNeighboorSolutionTabu y GenerateNeighboorSolution que<br />

en Teamsoft + se utilizaban para la generación <strong>de</strong> soluciones vecinas en el <strong>al</strong>goritmo Búsqueda<br />

Tabú y para generar las soluciones vecinas en el resto <strong>de</strong> los <strong>al</strong>goritmos, respectivamente; <strong>de</strong><br />

manera t<strong>al</strong> que pudieran heredar los atributos y el comportamiento <strong>de</strong>finido en la clase<br />

Operator.<br />

Se rediseñaron las clases para cada restricción establecida en el mo<strong>de</strong>lo form<strong>al</strong><br />

(AllBelbinCategories, AllBelbinRoles, AllCompetitionLevels, ExistCerebro, IsProjectBoss,<br />

IncompatibleRoles, IsISCO, IsEJ, IsDomainExperience, IsComplexityExperience,<br />

IncompatibleSelectedWorkers, IncompatibleWorkers, WorkerRemovedFromRole,<br />

IsWorkerAssigned, WorkerNotRepeatedInSameRole, MaxWorkload, MaximumRoles,<br />

<br />

IsB<strong>al</strong>anced), <strong>de</strong> manera t<strong>al</strong> que pudieran heredar los atributos y el comportamiento <strong>de</strong>finido en la<br />

clase Constrain.<br />

Se implementó la clase SolutionDomain para representar el dominio <strong>de</strong> la solución, <strong>de</strong> manera<br />

t<strong>al</strong> que pudiera heredar los atributos y el comportamiento <strong>de</strong>finido en la clase Domain.<br />

A la biblioteca <strong>de</strong> clases se le incorporaron los <strong>al</strong>goritmos propuestos: Búsqueda Tabú Multiobjetivo,<br />

Esc<strong>al</strong>ador <strong>de</strong> Colinas Estocástico Multiobjetivo, Esc<strong>al</strong>ador <strong>de</strong> Colinas Estocástico Multiobjetivo con<br />

Reinicio, Esc<strong>al</strong>ador <strong>de</strong> Colinas Estocástico Multiobjetivo <strong>de</strong> mayor distancia, Recocido Simulado<br />

Multiobjetivo <strong>de</strong> Ulungu y Recocido Simulado Multiobjetivo Multicaso.<br />

Una versión <strong>de</strong>l <strong>al</strong>goritmo GRASP Multiobjetivo se implementó en la herramienta, pero no se incluyó en<br />

la biblioteca <strong>de</strong> clases. En este caso, la biblioteca permite construir la solución inici<strong>al</strong> basada en un<br />

<strong>al</strong>goritmo voraz, que <strong>de</strong>be ser implementado para cada <strong>problema</strong> <strong>de</strong> manera diferente. La<br />

implementación que se re<strong>al</strong>izó <strong>de</strong> GRASP Multiobjetivo construye una solución inici<strong>al</strong> basada en este<br />

<strong>al</strong>goritmo y luego aplica el método <strong>de</strong> búsqueda loc<strong>al</strong> <strong>de</strong>seado, pero a diferencia <strong>de</strong>l GRASP<br />

Multiobjetivo propuesto en el Capítulo 1 este proceso no se re<strong>al</strong>iza varias veces.<br />

50


Figura 24. Clases implementadas para utilizar la biblioteca BICIAM en Teamsoft +<br />

51


2.4 Conclusiones<br />

En el capítulo se <strong>de</strong>scribió la solución propuesta, arribándose a las siguientes conclusiones:<br />

- La nueva versión <strong>de</strong> la herramienta Teamsoft + da soporte a las preferencias <strong>de</strong>l <strong>de</strong>cisor en<br />

cuanto a enfrentar el proceso <strong>de</strong> asignación estableciendo priorida<strong>de</strong>s entre los objetivos e<br />

incluso dándole igu<strong>al</strong> importancia a todos los objetivos, lo que da soporte a las <strong>de</strong>cisiones a las<br />

que se enfrentan los <strong>de</strong>cisores en la vida re<strong>al</strong>.<br />

- El rediseño <strong>de</strong> la arquitectura Teamsoft + para incorporar la biblioteca <strong>de</strong> clases BICIAM a la<br />

herramienta, permite el reuso <strong>de</strong> los <strong>al</strong>goritmos ya implementados y probados <strong>de</strong> la biblioteca, y<br />

facilita la incorporación <strong>de</strong> nuevos <strong>al</strong>goritmos y por tanto la ev<strong>al</strong>uación <strong>de</strong>l <strong>de</strong>sempeño <strong>de</strong> los<br />

diferentes <strong>al</strong>goritmos en las instancias <strong>de</strong>l <strong>problema</strong>.<br />

- La biblioteca BICIAM podrá ser utilizada en la solución <strong>de</strong> otros <strong>problema</strong>s <strong>de</strong> optimización<br />

<strong>multiobjetivo</strong> empleando las técnicas <strong>de</strong> solución: <strong>multiobjetivo</strong> puro, or<strong>de</strong>namiento lexicográfico<br />

y método <strong>de</strong> factores pon<strong>de</strong>rados y los <strong>al</strong>goritmos: Esc<strong>al</strong>ador <strong>de</strong> Colinas Estocástico<br />

Multiobjetivo, Esc<strong>al</strong>ador <strong>de</strong> Colinas Estocástico Multiobjetivo con Reinicio, Esc<strong>al</strong>ador <strong>de</strong> Colinas<br />

Estocástico Multiobjetivo <strong>de</strong> mayor distancia, Recocido Simulado <strong>de</strong> Ulungu, Recocido Simulado<br />

Multiobjetivo Multicaso y Búsqueda Tabú Multiobjetivo.<br />

- Aunque no utilizando la biblioteca <strong>de</strong> clases, Teamsoft + permite construir las soluciones inici<strong>al</strong>es<br />

haciendo uso <strong>de</strong>l <strong>al</strong>goritmo GRASP Multiobjetivo.<br />

52


Capítulo 3. Análisis experiment<strong>al</strong><br />

3.1 Introducción<br />

El objetivo <strong>de</strong>l presente capítulo es ev<strong>al</strong>uar y comparar el <strong>de</strong>sempeño <strong>de</strong> los <strong>al</strong>goritmos metaheurísticos<br />

<strong>de</strong> <strong>trayectoria</strong> <strong>multiobjetivo</strong> propuestos en el <strong>problema</strong> <strong>de</strong> asignación <strong>de</strong> recursos humanos a equipos <strong>de</strong><br />

proyecto <strong>de</strong> software. Para ello se diseñaron dos <strong>al</strong>goritmos <strong>de</strong> generación <strong>de</strong> datos y cinco escenarios<br />

<strong>de</strong> prueba y se an<strong>al</strong>izaron comparativamente los resultados experiment<strong>al</strong>es obtenidos con los diferentes<br />

<strong>al</strong>goritmos en cada escenario <strong>de</strong> prueba.<br />

3.2 Algoritmo <strong>de</strong> generación <strong>de</strong> datos<br />

Para v<strong>al</strong>idar el mo<strong>de</strong>lo y los <strong>al</strong>goritmos <strong>de</strong> solución es necesario contar con datos re<strong>al</strong>es. Sin embargo,<br />

como se plantea en (André 2009) dada la situación actu<strong>al</strong> <strong>de</strong> la industria <strong>de</strong> software nacion<strong>al</strong><br />

no es posible contar con estos datos teniendo en cuenta que:<br />

Las organizaciones no tienen el nivel <strong>de</strong> madurez necesario para aplicar el mo<strong>de</strong>lo ya que no<br />

tienen <strong>de</strong>finidos los roles y sus responsabilida<strong>de</strong>s form<strong>al</strong>mente, e incluso cuando lo tienen, no<br />

asignan los trabajadores a roles.<br />

Las organizaciones <strong>de</strong> software no cuentan con un mo<strong>de</strong>lo concreto para ev<strong>al</strong>uar las<br />

competencias <strong>de</strong> los trabajadores ni con la disciplina para registrarlas y mantenerlas<br />

actu<strong>al</strong>izadas.<br />

De manera gener<strong>al</strong> no se ev<strong>al</strong>úa <strong>al</strong> person<strong>al</strong> en función <strong>de</strong>l <strong>de</strong>sempeño <strong>de</strong>l rol asignado ni se<br />

registra la experiencia en cada rol.<br />

Tampoco se conoce <strong>de</strong> bases <strong>de</strong> datos <strong>de</strong> pruebas a nivel internacion<strong>al</strong> para este tipo <strong>de</strong> <strong>problema</strong>, que<br />

permita v<strong>al</strong>idar los <strong>al</strong>goritmos propuestos.<br />

Tomando en cuenta esta situación se <strong>de</strong>ci<strong>de</strong> elaborar un <strong>al</strong>goritmo para generar los datos requeridos<br />

para ev<strong>al</strong>uar el mo<strong>de</strong>lo.<br />

Para elaborar el <strong>al</strong>goritmo <strong>de</strong> generación <strong>de</strong> datos, se re<strong>al</strong>izaron encuestas a especi<strong>al</strong>istas <strong>de</strong> empresas<br />

cubanas <strong>de</strong> <strong>de</strong>sarrollo <strong>de</strong> software, t<strong>al</strong>es como Softel y el CITI (Ver Anexo 1).<br />

Softel es una organización mediana, según la clasificación dada en (Brandt and Lindberg 2006), con<br />

<strong>al</strong>re<strong>de</strong>dor <strong>de</strong> 60 trabajadores. Aunque cuenta con varios jóvenes, la mayor parte <strong>de</strong>l person<strong>al</strong> está<br />

formado por trabajadores <strong>de</strong> más <strong>de</strong> 15 años <strong>de</strong> experiencia. Tiene amplio reconocimiento a nivel<br />

nacion<strong>al</strong>, <strong>de</strong>dicándose <strong>al</strong> dominio <strong>de</strong> sistemas <strong>de</strong> gestión hospit<strong>al</strong>aria. Las encuestas fueron re<strong>al</strong>izadas<br />

<strong>al</strong> person<strong>al</strong> que está vinculado directamente a la producción <strong>de</strong> sistemas <strong>de</strong> software.<br />

El CITI es un centro <strong>de</strong> investigación que radica en el ISPJAE, es una organización gran<strong>de</strong> formada por<br />

person<strong>al</strong> <strong>de</strong>dicado a tiempo completo (especi<strong>al</strong>istas) y person<strong>al</strong> a tiempo parci<strong>al</strong> (profesores y<br />

estudiantes), y a diferencia <strong>de</strong> Softel, la mayor parte <strong>de</strong>l person<strong>al</strong> es joven.<br />

53


Los datos necesarios para la conformación <strong>de</strong>l <strong>al</strong>goritmo incluyen: los niveles <strong>de</strong> competencias técnicas<br />

y genéricas <strong>de</strong> los trabajadores, la experiencia en el <strong>de</strong>sempeño <strong>de</strong> roles, la carga <strong>de</strong> trabajo, la<br />

cantidad <strong>de</strong> incompatibilida<strong>de</strong>s entre los trabajadores, y las características psicológicas a través <strong>de</strong> los<br />

test <strong>de</strong> Myers Briggs y Belbin.<br />

Los datos correspondientes a los cuatro primeros aspectos fueron obtenidos a partir <strong>de</strong> las encuestas<br />

re<strong>al</strong>izadas a los especi<strong>al</strong>istas <strong>de</strong>l CITI y Softel (Ver Anexo 1).<br />

El quinto aspecto fue obtenido <strong>de</strong> las encuestas aplicadas en (André 2009). Los test <strong>de</strong> Myers-Briggs y<br />

Belbin fueron <strong>aplicados</strong> a 336 personas. De ellas el 44% son profesion<strong>al</strong>es que laboran en<br />

organizaciones <strong>de</strong> software, don<strong>de</strong> un porciento significativo pertenece a la empresa Softel y el 56%<br />

pertenecen a la aca<strong>de</strong>mia, don<strong>de</strong> un porciento significativo fue <strong>de</strong> profesores y estudiantes que hoy<br />

laboran en el CITI. Es por esto que se <strong>de</strong>ci<strong>de</strong> tomar en cuenta estos datos ya que los resultados<br />

gener<strong>al</strong>es obtenidos en las encuestas son similares a los obtenidos por los especi<strong>al</strong>istas <strong>de</strong> Softel y los<br />

profesores y estudiantes que laboran en el CITI.<br />

Para la generación <strong>de</strong> los datos se tomaron en cuenta los siguientes aspectos:<br />

1. Para <strong>de</strong>terminar las competencias técnicas y genéricas:<br />

- Se seleccionaron un conjunto <strong>de</strong> competencias técnicas <strong>de</strong>ntro <strong>de</strong> los tipos <strong>de</strong> competencias<br />

técnicas propuestas en (André 2009) (Ver Anexo 2), como son: Los lenguajes <strong>de</strong> programación<br />

Java, C++, Delphi, ASP, C# y PHP, los gestores <strong>de</strong> base <strong>de</strong> datos MySQL, SQLServer, Postgres<br />

y Oracle, las tecnologías J2EE y .NET.<br />

- Se seleccionaron un conjunto <strong>de</strong> competencias genéricas, teniendo en cuenta <strong>de</strong> las propuestas<br />

en (André 2009) (Ver Anexo 2), aquellas que son comunes a las <strong>de</strong>finidas en el CITI.<br />

Seleccionándose las competencias genéricas: Trabajo en equipo y cooperación, Capacidad <strong>de</strong><br />

análisis, Capacidad <strong>de</strong> planificar y organizar, Habilida<strong>de</strong>s <strong>de</strong> comunicación y Compromiso con la<br />

organización.<br />

- Los niveles <strong>de</strong> importancia <strong>de</strong> cada competencia en el rol se <strong>de</strong>finieron teniendo en cuenta los<br />

resultados obtenidos en encuestas aplicadas a expertos en (André 2009) (Ver Anexo 2).<br />

- Se establecieron 4 niveles <strong>de</strong> competencias técnicas: 1-conoce, 2-tiene habilidad, 3-conoce y<br />

ejecuta bien, 4-experto.<br />

- Se establecieron 4 niveles <strong>de</strong> competencias genéricas: 1-mínima, 2-regular, 3-bien, 4-experto.<br />

- Los resultados obtenidos para cada competencia técnica y para las competencias genéricas<br />

seleccionadas, en las organizaciones CITI y Softel se muestran en los Anexos 3 y 4<br />

respectivamente.<br />

- Los niveles mínimos <strong>de</strong> competencias para <strong>de</strong>sempeñar cada rol fueron establecidos en los<br />

niveles mínimos: Los roles Jefe <strong>de</strong> Proyecto y Arquitecto tienen nivel 2 en todas las<br />

competencias. El resto <strong>de</strong> los roles tienen nivel 1. Estos v<strong>al</strong>ores fueron tomados teniendo en<br />

54


cuenta la estrategia <strong>de</strong> aplicación <strong>de</strong>l mo<strong>de</strong>lo presentada en (André 2009), y suponiendo una<br />

organización que se inicia en la gestión <strong>de</strong> recursos humanos basada en competencias.<br />

2. Para <strong>de</strong>terminar la experiencia en el <strong>de</strong>sempeño <strong>de</strong> roles se utilizaron los resultados obtenidos en las<br />

encuestas aplicadas a los especi<strong>al</strong>istas <strong>de</strong> Softel y CITI, obteniéndose el comportamiento que se<br />

muestra en el Anexo 5.<br />

3. Para <strong>de</strong>terminar la carga <strong>de</strong> trabajo <strong>de</strong> los especi<strong>al</strong>istas se utilizaron los resultados obtenidos en las<br />

encuestas aplicadas a los especi<strong>al</strong>istas <strong>de</strong> Softel y CITI, obteniéndose el comportamiento que se<br />

muestra en el Anexo 6.<br />

4. Para <strong>de</strong>terminar las incompatibilida<strong>de</strong>s entre los trabajadores se utilizaron los resultados obtenidos en<br />

las encuestas aplicadas a los especi<strong>al</strong>istas <strong>de</strong> Softel y CITI, obteniéndose el comportamiento que se<br />

muestra en el Anexo 7.<br />

5. Para <strong>de</strong>terminar las características psicológicas <strong>de</strong> los trabajadores, se utilizaron los resultados<br />

obtenidos en (André 2009) relativos a los test <strong>de</strong> Belbin (Ver Anexo 8) y <strong>de</strong> Myers-Briggs (Ver Anexo 9).<br />

Se i<strong>de</strong>ntifica a partir <strong>de</strong> los resultados <strong>de</strong> las encuestas re<strong>al</strong>izadas que entre las dos organizaciones los<br />

resultados para cada tipo <strong>de</strong> competencia, carga <strong>de</strong> trabajo, incompatibilida<strong>de</strong>s y experiencia en el<br />

<strong>de</strong>sempeño <strong>de</strong> roles difieren, lo que permitió concluir que era necesario utilizar dos <strong>al</strong>goritmos <strong>de</strong><br />

generación <strong>de</strong> datos. El primero <strong>de</strong> los <strong>al</strong>goritmos teniendo en cuenta los datos <strong>de</strong> Softel, hace<br />

referencia a una organización que cuenta con un person<strong>al</strong> más maduro y experimentado. El segundo<br />

<strong>al</strong>goritmo hace referencia a una organización con person<strong>al</strong> más joven, teniendo en cuenta las encuestas<br />

re<strong>al</strong>izadas a especi<strong>al</strong>ista <strong>de</strong>l CITI.<br />

3.3 Diseño <strong>de</strong> los experimentos<br />

Se diseñaron cinco escenarios <strong>de</strong> prueba, teniendo en cuenta escenarios <strong>de</strong> organizaciones medianas,<br />

gran<strong>de</strong>s y especi<strong>al</strong>mente gran<strong>de</strong>s. Para cada escenario se re<strong>al</strong>izaron pruebas con los datos generados<br />

a partir <strong>de</strong> las encuestas aplicadas a Softel y <strong>al</strong> CITI, lo que permitió simular organizaciones <strong>de</strong><br />

<strong>de</strong>sarrollo <strong>de</strong> software en un entorno universidad-industria y en un entorno puramente industria. Los<br />

escenarios diseñados se muestran a continuación:<br />

- Escenario 1: 60 trabajadores y 6 roles a cubrir<br />

- Escenario 2: 100 trabajadores y 6 roles a cubrir<br />

- Escenario 3: 250 trabajadores y 6 roles a cubrir<br />

- Escenario 4: 500 trabajadores y 10 roles a cubrir<br />

- Escenario 5: 1500 trabajadores y 10 roles a cubrir<br />

El caso <strong>de</strong> prueba a re<strong>al</strong>izar tiene en cuenta las 3 funciones objetivos <strong>de</strong>l mo<strong>de</strong>lo por <strong>de</strong>fecto: Maximizar<br />

competencias, Minimizar incompatibilida<strong>de</strong>s y B<strong>al</strong>ancear carga <strong>de</strong> trabajo, teniendo en cuenta las<br />

restricciones <strong>de</strong> que un trabajador solo pue<strong>de</strong> <strong>de</strong>sempeñar un rol y las competencias mínimas<br />

establecidas para cada rol. A<strong>de</strong>más, se tomaron en cuenta las restricciones asociadas con la sinergia<br />

55


<strong>de</strong>l equipo: consi<strong>de</strong>rar la presencia <strong>de</strong> todas las categorías <strong>de</strong> roles <strong>de</strong> Belbin, elegir la presencia <strong>de</strong> <strong>al</strong><br />

menos una persona con el rol cerebro y que exista un b<strong>al</strong>ance entre las categorías <strong>de</strong> roles <strong>de</strong> Belbin<br />

(los roles <strong>de</strong> acción <strong>de</strong>ben ser mayores que los roles ment<strong>al</strong>es y los roles ment<strong>al</strong>es <strong>de</strong>ben ser mayores<br />

que los roles soci<strong>al</strong>es).<br />

Las condiciones relacionadas con el ambiente experiment<strong>al</strong>, fueron las siguientes:<br />

- Los <strong>al</strong>goritmos fueron implementados en Java bajo el ambiente <strong>de</strong> <strong>de</strong>sarrollo Eclipse 3.2, compilado<br />

con el JDK 1.6.0.<br />

- Las corridas fueron ejecutadas en un procesador Intel Pentium CPU P6100 con 2GHz y 2Gb <strong>de</strong><br />

RAM.<br />

Se ejecutaron 20 corridas <strong>de</strong> cada uno <strong>de</strong> los <strong>al</strong>goritmos implementados para cada escenario <strong>de</strong><br />

prueba.<br />

3.3.1 Tamaño <strong>de</strong>l espacio <strong>de</strong> soluciones<br />

El tamaño <strong>de</strong>l espacio <strong>de</strong> soluciones en cada escenario se c<strong>al</strong>cula a través <strong>de</strong> las r-permutaciones<br />

(Johnsonbaugh 2004) como n!/(n-m)!, siendo n la cantidad <strong>de</strong> trabajadores y m la cantidad <strong>de</strong> roles.<br />

Teniendo en cuenta la restricción <strong>de</strong> que una persona solo pue<strong>de</strong> <strong>de</strong>sempeñar un rol y que <strong>de</strong> la<br />

cantidad tot<strong>al</strong> <strong>de</strong> roles a cubrir, existe uno que es el Jefe <strong>de</strong> Proyecto que permanece fijo cuando se<br />

conforma el equipo, se c<strong>al</strong>cula el tamaño <strong>de</strong>l espacio <strong>de</strong> soluciones para cada escenario en la Tabla 8.<br />

Teniendo en cuenta que la cantidad <strong>de</strong> ev<strong>al</strong>uaciones <strong>de</strong> las funciones objetivo que se <strong>de</strong>sea ejecutar es<br />

45000, el por ciento <strong>de</strong>l espacio <strong>de</strong> soluciones que se explora en cada escenario se muestra en la<br />

última columna <strong>de</strong> la Tabla 8. Esto evi<strong>de</strong>ncia que es insignificante la cantidad <strong>de</strong> soluciones que se<br />

visitan, y menor aun a medida que aumenta el tamaño <strong>de</strong>l espacio <strong>de</strong> soluciones.<br />

Tabla 8. Tamaño <strong>de</strong>l espacio <strong>de</strong> soluciones para los diferentes escenarios a ev<strong>al</strong>uar<br />

Escenario<br />

Cantidad <strong>de</strong> trabajadores Cantidad <strong>de</strong> roles<br />

Tamaño <strong>de</strong>l espacio<br />

<strong>de</strong> soluciones<br />

% <strong>de</strong>l espacio <strong>de</strong><br />

soluciones que se<br />

explora<br />

60 6 6 * 10 8 0,0075%<br />

100 6 8.5 * 10 9 0,000529%<br />

250 6 9.2 * 10 11 0,0000049%<br />

500 10 1.78 * 10 24 2,5x10 -18 %<br />

1500 10 3.7 * 10 28 1,12x10 -21 %<br />

3.4 Parámetros <strong>de</strong> los <strong>al</strong>goritmos<br />

Los parámetros utilizados para la ejecución <strong>de</strong> los diferentes <strong>al</strong>goritmos se muestran en la Tabla 9.<br />

Todos los <strong>al</strong>goritmos utilizados tomaron como condición <strong>de</strong> parada un número máximo <strong>de</strong> ev<strong>al</strong>uaciones<br />

<strong>de</strong> las funciones objetivo, <strong>de</strong>finida como 45000.<br />

56


Tabla 9. Parámetros <strong>de</strong> los <strong>al</strong>goritmos<br />

Número <strong>de</strong> ev<strong>al</strong>uaciones: 45000<br />

Escenario Escenario Escenario Escenario Escenario<br />

Algoritmo/Parámetro<br />

1<br />

2<br />

3<br />

4<br />

5<br />

Esc<strong>al</strong>ador <strong>de</strong> Colinas Estocástico Multiobjetivo (ECEMO)<br />

Cantidad <strong>de</strong> iteraciones: 45000<br />

Esc<strong>al</strong>ador <strong>de</strong> Colinas Estocástico Multiobjetivo con Reinicio (ECEMOR)<br />

Cantidad <strong>de</strong> iteraciones:45000<br />

Esc<strong>al</strong>ador <strong>de</strong> Colinas Estocástico Multiobjetivo <strong>de</strong> Mayor Distancia (ECEMODist)<br />

Cantidad <strong>de</strong> iteraciones: 45000<br />

Búsqueda Tabú Multiobjetivo (BTM)<br />

Tamaño <strong>de</strong> la lista Tabú: 20<br />

Cantidad <strong>de</strong> iteraciones 153 91 36 10 3<br />

Recocido Simulado Multiobjetivo <strong>de</strong> Ulungu (RSMU)<br />

Temperatura inici<strong>al</strong>: 2 Temperatura fin<strong>al</strong>: 0<br />

Mecanismo <strong>de</strong> enfriamiento: Esquema <strong>de</strong> Cauchy (Tk = To/(1+k)), k es el número <strong>de</strong> la iteración<br />

Cantidad <strong>de</strong> iteraciones: 45000<br />

Recocido Simulado Multiobjetivo Multicaso (RSMMC)<br />

Cantidad <strong>de</strong> iteraciones: 45000<br />

GRASP Multiobjetivo (GRASP + BTM)<br />

Cantidad <strong>de</strong> iteraciones GRASP: 100<br />

Cantidad <strong>de</strong> iteraciones <strong>de</strong>l <strong>al</strong>goritmo <strong>de</strong> búsqueda loc<strong>al</strong> (Todos excepto Búsqueda Tabú Multiobjetivo): 44900<br />

Cantidad <strong>de</strong> iteraciones <strong>de</strong>l <strong>al</strong>goritmo <strong>de</strong> búsqueda<br />

loc<strong>al</strong> Búsqueda Tabú Multiobjetivo 152 91 36 10 3<br />

3.5 Análisis <strong>de</strong> las métricas<br />

A continuación se muestran los resultados obtenidos para las diferentes métricas citadas en el epígrafe<br />

1.7 <strong>de</strong>l Capítulo 1 con la ejecución <strong>de</strong> los casos <strong>de</strong> prueba en los escenarios diseñados.<br />

En ninguno <strong>de</strong> los escenarios propuestos fue posible <strong>de</strong>terminar el frente <strong>de</strong> Pareto verda<strong>de</strong>ro, por lo<br />

que para el cálculo <strong>de</strong> las métricas que lo requieren, se tomó como frente <strong>de</strong> Pareto verda<strong>de</strong>ro aquellas<br />

soluciones no dominadas <strong>de</strong> las obtenidas por todos los <strong>al</strong>goritmos ejecutados en cada escenario<br />

respectivamente. Es <strong>de</strong>cir, para cada escenario se compararon las soluciones no dominadas obtenidas<br />

por cada uno <strong>de</strong> los <strong>al</strong>goritmos y se obtuvieron las soluciones no dominadas entre todas estas<br />

soluciones, tomando estas como soluciones <strong>de</strong>l “frente <strong>de</strong> Pareto verda<strong>de</strong>ro”.<br />

Algunas pruebas re<strong>al</strong>izadas con el objetivo <strong>de</strong> obtener el frente <strong>de</strong> Pareto verda<strong>de</strong>ro en los escenarios<br />

diseñados <strong>de</strong>mostraron que el tiempo para su cálculo era <strong>de</strong>masiado gran<strong>de</strong> incluso para el más<br />

pequeño <strong>de</strong> los escenarios (aproximadamente 3 meses).<br />

La cantidad <strong>de</strong> soluciones no dominadas en los frentes <strong>de</strong> Pareto verda<strong>de</strong>ro tomados como referencia<br />

en cada escenario se muestran en el Tabla 10.<br />

57


Tabla 10. Cantidad <strong>de</strong> soluciones en el frente <strong>de</strong> Pareto verda<strong>de</strong>ro tomado como referencia<br />

Citerio/Escenarios<br />

Escenario 1 Escenario 2 Escenario 3 Escenario 4 Escenario 5<br />

CITI Softel CITI Softel CITI Softel CITI Softel CITI Softel<br />

Cantidad <strong>de</strong> soluciones en el frente <strong>de</strong> Pareto<br />

Verda<strong>de</strong>ro 26 30 4 7 5 10 2071 62 48 152<br />

La cantidad <strong>de</strong> soluciones no dominadas obtenidas con cada <strong>al</strong>goritmo en los diferentes escenarios se<br />

muestra en la Tabla 11.<br />

Tabla 11. Cantidad <strong>de</strong> soluciones obtenidas con cada <strong>al</strong>goritmo en los diferentes escenarios <strong>de</strong> prueba<br />

Escenario 1 Escenario 2 Escenario 3 Escenario 4 Escenario 5<br />

<strong>Algoritmos</strong>/Escenarios CITI Softel CITI Softel CITI Softel CITI Softel CITI Softel<br />

ECEMO 7 10 3 5 4 9 69 19 15 63<br />

ECEMOR 7 10 3 5 3 9 49 24 12 68<br />

ECEMODist 7 10 3 5 3 9 1004 38 25 39<br />

BTM 7 10 3 5 3 9 44 17 4 8<br />

RSMU 7 10 3 5 2 7 9 8 16 12<br />

RSMMC 7 12 3 5 3 9 176 25 10 22<br />

GRASP + ECEMO 7 7 3 3 4 9 619 39 29 36<br />

GRASP + ECEMOR 7 7 3 4 4 10 248 62 28 49<br />

GRASP + ECEMODist 7 10 3 5 3 10 230 20 18 29<br />

GRASP + BTM 25 26 3 7 6 8 6 11 11 4<br />

GRASP + RSMU 7 10 3 4 6 7 7 9 13 12<br />

GRASP + RSMMC 7 7 3 3 4 10 106 21 18 23<br />

Las métricas an<strong>al</strong>izadas para cada escenario y los resultados <strong>de</strong>seados se <strong>de</strong>scriben a continuación:<br />

La Tasa <strong>de</strong> error permite <strong>de</strong>terminar el porciento <strong>de</strong> soluciones que no son miembros <strong>de</strong>l frente <strong>de</strong><br />

Pareto verda<strong>de</strong>ro. Su v<strong>al</strong>or i<strong>de</strong><strong>al</strong> es igu<strong>al</strong> a 0, puesto que indica que todos los vectores generados por el<br />

<strong>al</strong>goritmo pertenecen <strong>al</strong> frente <strong>de</strong> Pareto verda<strong>de</strong>ro.<br />

La métrica Distancia generacion<strong>al</strong> indica cuán lejos están los elementos <strong>de</strong>l frente <strong>de</strong> Pareto obtenido<br />

con un <strong>al</strong>goritmo, respecto <strong>al</strong> frente <strong>de</strong> Pareto verda<strong>de</strong>ro. Su v<strong>al</strong>or i<strong>de</strong><strong>al</strong> es igu<strong>al</strong> a 0, puesto que indica<br />

que todos los elementos generados están en el frente <strong>de</strong> Pareto verda<strong>de</strong>ro.<br />

La métrica Dispersión mi<strong>de</strong> la distribución <strong>de</strong> los elementos en el frente <strong>de</strong> Pareto actu<strong>al</strong> sobre la región<br />

no dominada. Esta métrica indica cuán uniforme es la distribución <strong>de</strong> los elementos en el frente <strong>de</strong><br />

Pareto generado. Un v<strong>al</strong>or <strong>de</strong> 0 indica que todos los miembros <strong>de</strong>l frente <strong>de</strong> Pareto generado están<br />

equidistantes.<br />

La métrica Cobertura compara dos conjuntos <strong>de</strong> vectores no dominados c<strong>al</strong>culando la fracción <strong>de</strong> uno<br />

que es cubierta (o dominada) por el otro. Si el v<strong>al</strong>or es igu<strong>al</strong> a 1 indica que el primer conjunto <strong>de</strong><br />

vectores es dominado por los vectores <strong>de</strong>l segundo conjunto, y si es 0, indica lo contrario. En este caso<br />

se an<strong>al</strong>izan aquellos <strong>al</strong>goritmos que dominan a más cantidad <strong>de</strong> conjuntos y son dominados por la<br />

menor cantidad <strong>de</strong> conjuntos.<br />

58


A continuación se ev<strong>al</strong>úa el <strong>de</strong>sempeño <strong>de</strong> los diferentes <strong>al</strong>goritmos para cada escenario <strong>de</strong> prueba<br />

diseñado, an<strong>al</strong>izando el comportamiento <strong>de</strong> las métricas citadas.<br />

3.5.1 Escenario 1<br />

En la Tabla 12 se muestran los resultados obtenidos por cada <strong>al</strong>goritmo para las métricas Tasa <strong>de</strong> error,<br />

Distancia generacion<strong>al</strong> y Dispersión en el escenario 1.<br />

Tabla 12. V<strong>al</strong>ores mínimo, promedio y máximo <strong>de</strong> las métricas Tasa <strong>de</strong> error, Distancia generacion<strong>al</strong> y<br />

Dispersión en el escenario 1.<br />

Tasa <strong>de</strong> error Distancia generacion<strong>al</strong> Dispersión<br />

<strong>Algoritmos</strong><br />

CITI Softel CITI Softel CITI Softel<br />

Mínimo 0.16666667 0.60000002 0.0015 0.00307616 6.62E-04 2.28E-04<br />

Media 0.59952382 0.81274199 0.00597685 0.00628277 0.00140886 0.00124207<br />

ECEMO<br />

Máximo 1 1 0.02083567 0.01670184 0.00425383 0.00711224<br />

Mínimo 0.16666667 0.66666669 0.00101015 0.0010138 7.87E-04 4.27E-04<br />

Media 0.62952382 0.91551227 0.00479297 0.0087089 0.00156984 0.00179839<br />

ECEMOR<br />

Máximo 0.85714287 1 0.01172871 0.01411362 0.0055434 0.00820697<br />

Mínimo 0.33333334 0.5 0.00283333 5.77E-04 2.47E-04 2.30E-04<br />

Media 0.70857143 0.8805303 0.00722263 0.00687728 0.00205346 0.00129959<br />

ECEMODist<br />

Máximo 1 1 0.01500417 0.01281926 0.00500606 0.0039263<br />

Mínimo 0 0 0 0 5.12E-04 7.10E-04<br />

Media 0.26448413 0.51535714 0.00129918 0.0029922 0.00102076 9.99E-04<br />

BTM<br />

Máximo 0.5714286 1 0.00343452 0.00665933 0.00139597 0.00122909<br />

Mínimo 0.71428573 0.5 0.00468615 0.00150996 6.39E-04 3.00E-04<br />

Media 0.92880953 0.71538074 0.0127562 0.00510006 0.00203447 0.00164374<br />

RSMU<br />

Máximo 1 0.91666669 0.02314551 0.00935734 0.00521045 0.0041334<br />

Mínimo 0.2 0.40000001 0.0016 0.00364418 5.58E-04 2.72E-04<br />

Media 0.65589286 0.84795122 0.00557572 0.00707929 0.00174532 0.00156808<br />

RSMMC<br />

Máximo 1 1 0.02000556 0.01589811 0.00610987 0.0044224<br />

Mínimo 0.2857143 0 0.00218996 0 8.34E-04 9.80E-05<br />

Media 0.7117262 0.21934524 0.00834366 0.00110426 0.00152514 6.19E-04<br />

GRASP + ECEMO Máximo 1 0.71428573 0.02040493 0.004463 0.00268418 0.00238324<br />

Mínimo 0.2 0 0.00101015 0 8.33E-04 9.80E-05<br />

Media 0.6771627 0.25107143 0.00534581 0.00133103 0.00139016 8.08E-04<br />

GRASP + ECEMOR Máximo 1 0.75 0.01644498 0.00476642 0.0026284 0.00259653<br />

Mínimo 0.16666667 0.40000001 8.33E-04 5.66E-04 5.07E-05 2.32E-04<br />

Media 0.66583334 0.86559357 0.00607331 0.00730528 0.00173686 0.00139293<br />

GRASP + ECEMODist Máximo 1 1 0.02435898 0.01989071 0.00609725 0.00418483<br />

Mínimo 0 0 0 0 0 0<br />

Media 0.4463889 0.41250001 0.03071842 0.01350783 0.00142852 0.00145474<br />

GRASP + BTM Máximo 0.80000001 0.625 0.07636753 0.02884996 0.00537074 0.00669181<br />

Mínimo 0.80000001 0 0.00515842 0 3.60E-04 8.25E-04<br />

Media 0.9493254 0.56186509 0.01171226 0.0046761 0.00222105 0.00247938<br />

GRASP + RSMU Máximo 1 0.77777779 0.02565396 0.01155681 0.00750483 0.0055176<br />

Mínimo 0.16666667 0 0.00116058 0 6.76E-04 9.80E-05<br />

Media 0.66142858 0.23988096 0.00614531 0.00109807 0.00131229 0.00128932<br />

GRASP + RSMMC Máximo 1 0.75 0.02346146 0.00510702 0.0026894 0.0056981<br />

Los <strong>al</strong>goritmos que peor comportamiento tienen respecto a la métrica Tasa <strong>de</strong> error son RSMU y<br />

GRASP + RSMU. El resto <strong>de</strong> los <strong>al</strong>goritmos se comportan <strong>de</strong> manera similar, <strong>de</strong>stacándose BTM y<br />

GRASP + BTM como los <strong>al</strong>goritmos <strong>de</strong> mejores resultados en la métrica an<strong>al</strong>izada.<br />

59


En cuanto a la métrica Distancia generacion<strong>al</strong>, se observa que el <strong>al</strong>goritmo BTM tiene buenos<br />

resultados, no siendo así con GRASP + BTM que presenta los peores resultados en esta métrica.<br />

La dispersión es buena en todos los <strong>al</strong>goritmos an<strong>al</strong>izados, siendo los peores v<strong>al</strong>ores los obtenidos con<br />

RSMU y GRASP + RSMU.<br />

En el anexo 10 se muestran los resultados obtenidos para la métrica Cobertura en este escenario. En<br />

esta métrica los <strong>al</strong>goritmos con mejores resultados fueron ECEMODist, BTM, GRASP + ECEMODist y<br />

los <strong>de</strong> peores resultaron fueron RSMU, GRASP + RSMU y GRASP + RSMMC indistintamente en los<br />

escenarios <strong>de</strong> CITI y Softel.<br />

Tabla 13. Tiempo mínimo, promedio y máximo en la ejecución <strong>de</strong> los <strong>al</strong>goritmos en el escenario 1.<br />

Algoritmo / Tiempo (segundos)<br />

Escenario 1<br />

CITI Softel<br />

Mínimo 27.924 41.792<br />

Promedio 31.8487 49.926632<br />

ECEMO<br />

Máximo 36.909 52.916<br />

Mínimo 69.155 83.288<br />

Promedio 72.9112 101.83463<br />

ECEMOR<br />

Máximo 77.672 110.057<br />

Mínimo 69.514 86.067<br />

Promedio 73.6954 114.72979<br />

ECEMODist<br />

Máximo 78.39 119.653<br />

Mínimo 8.174 6.989<br />

Promedio 8.71121 7.188421<br />

BTM<br />

Máximo 9.141 7.628<br />

Mínimo 35.209 44.429<br />

Promedio 36.0493 46.57353<br />

RSMU<br />

Máximo 36.926 51.308<br />

Mínimo 25.022 38.563<br />

Promedio 29.391 49.908474<br />

RSMMC<br />

Máximo 33.898 53.586<br />

Mínimo 30.67 64.428<br />

Promedio 35.1164 80.6259<br />

GRASP + ECEMO Máximo 39.047 97.828<br />

Mínimo 72.664 92.68<br />

Promedio 75.2316 115.95094<br />

GRASP + ECEMOR Máximo 80.247 133.115<br />

Mínimo 70.091 323.741<br />

Promedio 74.2561 346.2497<br />

GRASP + ECEMODist Máximo 77.625 367.034<br />

Mínimo 2.98 14.29<br />

Promedio 3.354 16.067947<br />

GRASP + BTM Máximo 3.791 18.174<br />

Mínimo 36.083 70.013<br />

Promedio 38.5831 72.40794<br />

GRASP + RSMU Máximo 40.217 75.66<br />

Mínimo 31.559 64.662<br />

Promedio 34.6962 77.862946<br />

GRASP + RSMMC Máximo 38.283 80.917<br />

De manera gener<strong>al</strong> para este escenario los mejores resultados los reporta el <strong>al</strong>goritmo BTM y los<br />

peores RSMU y GRASP + RSMU, aunque el resto <strong>de</strong> los <strong>al</strong>goritmos muestran un buen <strong>de</strong>sempeño.<br />

60


Los tiempos <strong>de</strong> ejecución se muestran en la Tabla 13. Como se observa los tiempos <strong>al</strong>canzan los seis<br />

minutos con el <strong>al</strong>goritmo GRASP + ECEMODist, siendo menor <strong>de</strong> tres minutos en el resto <strong>de</strong> los casos,<br />

los que resultan tiempos aceptables en todos los casos.<br />

3.5.2 Escenario 2<br />

En la Tabla 14 se muestran los resultados obtenidos por cada <strong>al</strong>goritmo para las métricas Tasa <strong>de</strong> error,<br />

Distancia generacion<strong>al</strong> y Dispersión en el escenario 2.<br />

Tabla 14. V<strong>al</strong>ores mínimo, promedio y máximo <strong>de</strong> las métricas Tasa <strong>de</strong> error, Distancia generacion<strong>al</strong> y<br />

Dispersión en el escenario 2.<br />

Tasa <strong>de</strong> error Distancia generacion<strong>al</strong> Dispersión<br />

<strong>Algoritmos</strong><br />

CITI Softel CITI Softel CITI Softel<br />

Mínimo 0 0.33333334 0 3.33E-04 0 9.61E-05<br />

Media 0.841667 0.93333333 0.020412 0.01765981 9.50E-04 3.35E-04<br />

ECEMO<br />

Máximo 1 1 0.040289 0.04511467 0.002693 0.00196906<br />

Mínimo 0 0.33333334 0 3.33E-04 0 6.50E-05<br />

Media 0.833333 0.76666667 0.016699 0.01152192 6.35E-04 1.99E-04<br />

ECEMOR<br />

Máximo 1 1 0.040289 0.02802788 0.002783 8.32E-04<br />

Mínimo 0.333333 0 0.006342 0 1.06E-04 2.35E-05<br />

Media 0.825 0.8625 0.020835 0.0168129 9.01E-04 2.68E-04<br />

ECEMODist<br />

Máximo 1 1 0.047415 0.03352331 0.002664 8.12E-04<br />

Mínimo 0 0 0 0 0 3.82E-05<br />

Media 0.358333 0.775 0.004575 0.0094743 1.89E-04 1.89E-04<br />

BTM<br />

Máximo 1 1 0.015629 0.01545603 6.13E-04 0.00134927<br />

Mínimo 1 0.33333334 0.003559 0.00527046 7.54E-06 1.70E-05<br />

Media 1 0.84416667 0.016204 0.01323548 0.001002 7.66E-04<br />

RSMU<br />

Máximo 1 1 0.043723 0.02731739 0.00696 0.0025584<br />

Mínimo 0 0 0 0 0 6.50E-05<br />

Media 0.791667 0.805 0.014003 0.01249008 3.84E-04 1.45E-04<br />

RSMMC<br />

Máximo 1 1 0.049269 0.04151882 0.002693 2.72E-04<br />

Mínimo 0.333333 0.33333334 0.006342 3.33E-04 1.21E-04 1.06E-04<br />

Media 0.833333 0.8125 0.015252 0.00869107 3.85E-04 3.04E-04<br />

GRASP + ECEMO Máximo 1 1 0.028943 0.02680601 0.001672 0.00186874<br />

Mínimo 0.333333 0.66666669 0.006342 0.0060052 1.06E-04 9.05E-05<br />

Media 0.791667 0.82083334 0.01513 0.01109563 6.53E-04 3.98E-04<br />

GRASP + ECEMOR Máximo 1 1 0.037457 0.01452584 0.002691 8.53E-04<br />

Mínimo 0 0.33333334 0 3.33E-04 0 6.50E-05<br />

Media 0.725 0.90166667 0.014204 0.01688612 4.98E-04 3.21E-04<br />

GRASP + ECEMODist Máximo 1 1 0.059656 0.04193248 0.002618 0.0011045<br />

Mínimo 0.666667 0.5 0.009679 0.00223607 0 0<br />

Media 0.954167 0.95833333 0.020021 0.04213915 5.94E-04 0.00178745<br />

GRASP + BTM Máximo 1 1 0.033905 0.07262121 0.002048 0.0132845<br />

Mínimo 0.333333 0.33333334 0.001333 3.33E-04 7.54E-06 6.63E-05<br />

Media 0.816667 0.85 0.011653 0.01358752 6.52E-04 6.23E-04<br />

GRASP + RSMU Máximo 1 1 0.043384 0.03267739 0.006258 0.00245778<br />

Mínimo 0.333333 0 0.006342 0 9.87E-05 9.10E-05<br />

Media 0.79 0.70833334 0.013518 0.00951209 4.76E-04 3.99E-04<br />

GRASP + RSMMC Máximo 1 1 0.033405 0.02079062 0.002781 0.00172743<br />

En las métricas Tasas <strong>de</strong> error, Distancia generacion<strong>al</strong> y dispersión los mejores resultados los presenta<br />

el <strong>al</strong>goritmo BTM y los peores resultados los presenta RSMU y GRASP + BTM, aunque el resto <strong>de</strong> los<br />

<strong>al</strong>goritmos no tienen un m<strong>al</strong> <strong>de</strong>sempeño.<br />

61


En el anexo 11 se muestran los resultados obtenidos para la métrica Cobertura en este escenario. Para<br />

este caso los <strong>al</strong>goritmos con mejores resultados fueron ECEMOR y BTM y los peores resultados los<br />

presenta GRASP + BTM.<br />

Los tiempos <strong>de</strong> ejecución para este escenario se muestran en la Tabla 15. Como se observa los<br />

tiempos <strong>al</strong>canzan los nueve minutos con el <strong>al</strong>goritmo GRASP + ECEMODist, siendo menor <strong>de</strong> cuatro<br />

minutos en el resto <strong>de</strong> los casos, los que resultan tiempos aceptables en todos los casos.<br />

Tabla 15. Tiempo mínimo, promedio y máximo en la ejecución <strong>de</strong> los <strong>al</strong>goritmos en el escenario 2.<br />

Algoritmo / Tiempo (segundos)<br />

Escenario 2<br />

CITI Softel<br />

Mínimo 34.288 50.139<br />

Promedio 47.01516 57.43853<br />

ECEMO<br />

Máximo 53.555 66.799<br />

Mínimo 80.322 89.685<br />

Promedio 91.84705 113.9649<br />

ECEMOR<br />

Máximo 102.211 138.359<br />

Mínimo 87.688 107.469<br />

Promedio 100.6341 123.6453<br />

ECEMODist<br />

Máximo 110.167 151.009<br />

Mínimo 7.566 7.254<br />

Promedio 7.886158 7.800053<br />

BTM<br />

Máximo 8.455 8.299<br />

Mínimo 44.164 50.731<br />

Promedio 45.87974 53.70005<br />

RSMU<br />

Máximo 46.831 55.582<br />

Mínimo 34.414 55.115<br />

Promedio 47.26811 64.98595<br />

RSMMC<br />

Máximo 53.087 80.512<br />

Mínimo 50.263 145.439<br />

Promedio 60.99605 158.4948<br />

GRASP + ECEMO Máximo 68.656 193.378<br />

Mínimo 97.017 198.526<br />

Promedio 113.4369 212.819<br />

GRASP + ECEMOR Máximo 117.781 230.662<br />

Mínimo 496.752 462.494<br />

Promedio 520.2824 521.07<br />

GRASP + ECEMODist Máximo 535.153 550.416<br />

Mínimo 10.015 87.048<br />

Promedio 12.02442 99.14227<br />

GRASP + BTM Máximo 15.023 107.438<br />

Mínimo 53.945 139.791<br />

Promedio 55.88095 153.4983<br />

GRASP + RSMU Máximo 58.063 164.533<br />

Mínimo 51.043 145.423<br />

Promedio 61.64963 160.172<br />

GRASP + RSMMC Máximo 65.411 176.296<br />

3.5.3 Escenario 3<br />

En la Tabla 16 se muestran los resultados obtenidos por cada <strong>al</strong>goritmo para las métricas Tasa <strong>de</strong> error,<br />

Distancia generacion<strong>al</strong> y Dispersión en el escenario 3.<br />

62


En las cuatro métricas an<strong>al</strong>izadas (tasa <strong>de</strong> error, distancia generacion<strong>al</strong>, dispersión y cobertura) los<br />

<strong>al</strong>goritmos con peores resultados son RSMU, GRASP + BTM y GRASP + RSMU. El resto <strong>de</strong> los<br />

<strong>al</strong>goritmos se comportan <strong>de</strong> manera similar y presentan buenos resultados en todas las métricas.<br />

Los tiempos <strong>de</strong> ejecución para este escenario se muestran en la Tabla 17. Como se observa los<br />

tiempos <strong>al</strong>canzan los 21 minutos con el <strong>al</strong>goritmo GRASP + ECEMODist, siendo menor <strong>de</strong> cuatro<br />

minutos en el resto <strong>de</strong> los casos. Estos últimos resultan tiempos aceptables, no siendo así con los<br />

tiempos que reporta el <strong>al</strong>goritmo GRASP + ECEMODist.<br />

Tabla 16. V<strong>al</strong>ores mínimo, promedio y máximo <strong>de</strong> las métricas Tasa <strong>de</strong> error, Distancia generacion<strong>al</strong> y<br />

Dispersión en el escenario 3.<br />

Tasa <strong>de</strong> error Distancia generacion<strong>al</strong> Dispersión<br />

<strong>Algoritmos</strong><br />

CITI Softel CITI Softel CITI Softel<br />

Mínimo 0.25 0 7.50E-04 0 1.54E-05 3.18E-05<br />

Media 0.809444448 0.23682721 0.00650401 0.00163465 1.46E-04 2.28E-04<br />

ECEMO<br />

Máximo 1 0.72727275 0.01691863 0.00517224 5.01E-04 0.0015174<br />

Mínimo 0 0 0 0 1.54E-05 4.83E-05<br />

Media 0.767500004 0.28968254 0.00715937 0.00258724 2.25E-04 2.01E-04<br />

ECEMOR<br />

Máximo 1 1 0.01691032 0.00974217 5.01E-04 0.00150169<br />

Mínimo 0 0 0 0 1.89E-05 3.74E-05<br />

Media 0.722500002 0.24871032 0.00829374 0.00236291 3.89E-04 1.66E-04<br />

ECEMODist<br />

Máximo 1 1 0.02847696 0.0175991 0.00235386 8.26E-04<br />

Mínimo 0.25 0 7.50E-04 0 7.54E-06 0<br />

Media 0.830000004 0.2265873 0.00771562 0.00157901 1.19E-04 1.69E-04<br />

BTM<br />

Máximo 1 1 0.01806677 0.00844275 4.39E-04 0.00119978<br />

Mínimo 1 1 0.00636396 0.00976441 9.93E-05 5.01E-05<br />

Media 1 1 0.02296847 0.02060492 0.00153942 0.00120029<br />

RSMU<br />

Máximo 1 1 0.03976493 0.04229657 0.00615608 0.00361127<br />

Mínimo 0.25 0 7.50E-04 0 1.54E-05 5.22E-05<br />

Media 0.765000004 0.23582251 0.00691779 0.00129657 1.92E-04 1.35E-04<br />

RSMMC<br />

Máximo 1 1 0.01901052 0.00728655 5.01E-04 3.94E-04<br />

Mínimo 0.333333343 0 0.00166667 0 9.05E-05 5.40E-05<br />

Media 0.803333338 0.16954365 0.0064293 0.00150893 2.57E-04 2.83E-04<br />

GRASP + ECEMO Máximo 1 1 0.01114954 0.0100816 5.01E-04 0.00173524<br />

Mínimo 0.25 0 7.50E-04 0 1.18E-05 3.49E-05<br />

Media 0.619047628 0.09318182 0.00467403 4.30E-04 2.45E-04 1.24E-04<br />

GRASP + ECEMOR Máximo 1 0.375 0.01463919 0.00191621 0.00227137 2.86E-04<br />

Mínimo 0.25 0 7.50E-04 0 1.18E-05 6.75E-05<br />

Media 0.796666668 0.19267857 0.00902023 6.57E-04 4.02E-04 2.01E-04<br />

GRASP + ECEMODist Máximo 1 0.93333334 0.02798101 0.00452499 0.0022594 0.001476<br />

Mínimo 0 1 0 0.01538058 0 1.16E-04<br />

Media 0.95 1 0.02289901 0.02900438 0.00140799 0.00272806<br />

GRASP + BTM Máximo 1 1 0.0425793 0.09005693 0.0051005 0.02464199<br />

Mínimo 0.833333313 1 0.01143852 0.01084046 1.18E-05 1.48E-04<br />

Media 0.991666666 1 0.02384572 0.02063848 0.00111008 0.00134903<br />

GRASP + RSMU Máximo 1 1 0.03969633 0.04247221 0.00308994 0.00619048<br />

Mínimo 0 0 0 0 1.83E-05 5.20E-05<br />

Media 0.718571436 0.14883298 0.00532622 8.13E-04 2.63E-04 1.50E-04<br />

GRASP + RSMMC Máximo 1 0.44444445 0.01172605 0.00547536 6.36E-04 3.38E-04<br />

En el anexo 12 se muestran los resultados obtenidos para la métrica Cobertura en este escenario.<br />

63


Tabla 17. Tiempo mínimo, promedio y máximo en la ejecución <strong>de</strong> los <strong>al</strong>goritmos en el escenario 3.<br />

Algoritmo / Tiempo (segundos)<br />

Escenario 3<br />

CITI Softel<br />

Mínimo 37.947 28.923<br />

Promedio 45.274 34.984<br />

ECEMO<br />

Máximo 53.804 40.342<br />

Mínimo 100.293 104.052<br />

Promedio 111.2409 118.81348<br />

ECEMOR<br />

Máximo 121.602 197.606<br />

Mínimo 113.556 121.431<br />

Promedio 123.99579 125.91853<br />

ECEMODist<br />

Máximo 138.263 129.075<br />

Mínimo 8.689 8.424<br />

Promedio 9.273 8.869684<br />

BTM<br />

Máximo 9.968 9.376<br />

Mínimo 35.038 34.82<br />

Promedio 37.734684 37.10121<br />

RSMU<br />

Máximo 44.023 42.463<br />

Mínimo 37.081 28.985<br />

Promedio 44.02495 33.63621<br />

RSMMC<br />

Máximo 51.277 44.429<br />

Mínimo 95.422 84.599<br />

Promedio 118.00073 95.67494<br />

GRASP + ECEMO Máximo 153.099 106.142<br />

Mínimo 169.101 157.217<br />

Promedio 185.81242 168.37831<br />

GRASP + ECEMOR Máximo 209.002 178.262<br />

Mínimo 1164.776 1153.12<br />

Promedio 1175.1656 1217.3843<br />

GRASP + ECEMODist Máximo 1181.998 1261.587<br />

Mínimo 58.725 53.649<br />

Promedio 77.15021 59.76126<br />

GRASP + BTM Máximo 87.802 68.125<br />

Mínimo 107.5 91.244<br />

Promedio 126.24637 100.11273<br />

GRASP + RSMU Máximo 146.858 107.64<br />

Mínimo 103.725 79.732<br />

Promedio 129.51431 94.66742<br />

GRASP + RSMMC Máximo 151.96 105.628<br />

3.5.4 Escenario 4<br />

En la Tabla 18 se muestran los resultados obtenidos por cada <strong>al</strong>goritmo para las métricas Tasa <strong>de</strong> error,<br />

Distancia generacion<strong>al</strong> y Dispersión en el escenario 4.<br />

En el anexo 13 se muestran los resultados obtenidos para la métrica Cobertura en este escenario.<br />

Al igu<strong>al</strong> que en el escenario anterior el comportamiento <strong>de</strong> las métricas Tasa <strong>de</strong> error, Distancia<br />

generacion<strong>al</strong>, Dispersión y Cobertura muestran que los peores <strong>al</strong>goritmos son RSMU, GRASP + RSMU<br />

y GRASP + BTM y a diferencia <strong>de</strong>l resto <strong>de</strong> los escenario el <strong>al</strong>goritmo BTM no muestra buenos<br />

resultados en las métricas Tasa <strong>de</strong> error y Cobertura en este escenario. El resto <strong>de</strong> los <strong>al</strong>goritmos tienen<br />

un comportamiento similar y los resultados <strong>de</strong> las métricas son buenos.<br />

64


Tabla 18. V<strong>al</strong>ores mínimo, promedio y máximo <strong>de</strong> las métricas Tasa <strong>de</strong> error, Distancia generacion<strong>al</strong> y<br />

Dispersión en el escenario 4.<br />

Tasa <strong>de</strong> error Distancia generacion<strong>al</strong> Dispersión<br />

<strong>Algoritmos</strong><br />

CITI Softel CITI Softel CITI Softel<br />

Mínimo 0 1 4.04E-04 0.00388973 4.88E-06 9.02E-06<br />

Media 0.10554768 1 0.00107223 0.01523323 3.00E-04 3.53E-04<br />

ECEMO<br />

Máximo 0.42105263 1 0.0047111 0.0335345 0.00141379 0.00214696<br />

Mínimo 0 1 2.80E-04 0.0044361 4.61E-06 3.30E-05<br />

Media 0.06867754 1 6.99E-04 0.01580109 2.48E-04 3.74E-04<br />

ECEMOR<br />

Máximo 0.30769232 1 0.00214559 0.02797567 0.00259467 0.00120408<br />

Mínimo 0 1 3.00E-04 0.00523259 0 0<br />

Media 0.14814474 1 9.04E-04 0.01359317 3.32E-04 3.78E-04<br />

ECEMODist<br />

Máximo 0.77777779 1 0.00637317 0.02224797 0.00282624 0.00177128<br />

Mínimo 0 1 0.00119688 0.00373612 0 0<br />

Media 0.69969875 1 0.00325003 0.01489134 5.47E-05 2.96E-04<br />

BTM<br />

Máximo 1 1 0.01136176 0.03418515 2.00E-04 0.00183424<br />

Mínimo 1 1 0.01048257 0.02802545 4.62E-05 5.57E-05<br />

Media 1 1 0.01710198 0.04471325 8.87E-04 0.00113805<br />

RSMU<br />

Máximo 1 1 0.03141744 0.07178658 0.00677865 0.00519673<br />

Mínimo 0 1 2.89E-04 0.00234652 9.86E-06 2.83E-06<br />

Media 0.0754514 1 7.83E-04 0.0125698 2.35E-04 1.90E-04<br />

RSMMC<br />

Máximo 0.32142857 1 0.00174134 0.02126249 0.0011622 6.27E-04<br />

Mínimo 0 1 3.76E-04 0.00344903 1.10E-05 3.90E-06<br />

Media 0.09939299 1 9.84E-04 0.01382103 2.97E-04 4.08E-04<br />

GRASP + ECEMO Máximo 0.91666669 1 0.00500069 0.0231402 0.00149546 0.001828<br />

Mínimo 0 0 1.88E-04 1.53E-04 4.90E-06 0<br />

Media 0.07969799 0.38807946 8.30E-04 0.00141457 2.92E-04 4.09E-05<br />

GRASP + ECEMOR Máximo 0.2631579 0.8888889 0.00190732 0.00421545 0.00274617 1.86E-04<br />

Mínimo 0 1 3.91E-04 0.00424183 9.58E-06 0<br />

Media 0.08090937 1 6.79E-04 0.01429567 2.33E-04 2.51E-04<br />

GRASP + ECEMODist Máximo 0.3125 1 0.00146364 0.02484842 0.00207876 6.11E-04<br />

Mínimo 0.66666669 1 0.00711266 0.03121138 2.30E-05 1.62E-04<br />

Media 0.975 1 0.0100732 0.04531308 1.88E-04 0.0015119<br />

GRASP + BTM Máximo 1 1 0.01293573 0.06608611 4.62E-04 0.0116204<br />

Mínimo 0.75 1 0.00840179 0.02734453 1.25E-04 2.86E-04<br />

Media 0.98472222 1 0.01415019 0.03547362 5.48E-04 0.00131745<br />

GRASP + RSMU Máximo 1 1 0.02377235 0.05326585 0.00240452 0.00342415<br />

Mínimo 0 1 2.65E-04 0.00418568 1.12E-05 6.37E-05<br />

Media 0.09450693 1 7.77E-04 0.01430308 2.06E-04 3.94E-04<br />

GRASP + RSMMC Máximo 0.45161289 1 0.00161859 0.0211339 7.05E-04 0.00164164<br />

Los tiempos <strong>de</strong> ejecución para este escenario se muestran en la Tabla 19. Como se observa los<br />

tiempos <strong>al</strong>canzan los 20 minutos como promedio con el <strong>al</strong>goritmo GRASP + ECEMODist, siendo menor<br />

<strong>de</strong> diez minutos en el resto <strong>de</strong> los casos. Estos últimos resultan tiempos aceptables, teniendo en cuenta<br />

que el tamaño <strong>de</strong>l espacio <strong>de</strong> soluciones es mayor que en los escenarios anteriores.<br />

65


Tabla 19. Tiempo mínimo, promedio y máximo en la ejecución <strong>de</strong> los <strong>al</strong>goritmos en el escenario 4.<br />

Algoritmo / Tiempo (seg)<br />

Escenario 4<br />

CITI Softel<br />

Mínimo 45.802 60.903<br />

Promedio 59.19205 70.17821<br />

ECEMO<br />

Máximo 66.316 79.046<br />

Mínimo 61.869 303.421<br />

Promedio 100.5407 440.46332<br />

ECEMOR<br />

Máximo 417.221 574.362<br />

Mínimo 71.215 282.719<br />

Promedio 138.1245 412.85153<br />

ECEMODist<br />

Máximo 555.017 575.703<br />

Mínimo 21.092 21.107<br />

Promedio 23.38595 22.923052<br />

BTM<br />

Máximo 25.272 25.459<br />

Mínimo 59.078 58.937<br />

Promedio 61.55358 61.767105<br />

RSMU<br />

Máximo 62.962 64.24<br />

Mínimo 58.254 57.986<br />

Promedio 78.351 68.97831<br />

RSMMC<br />

Máximo 99.185 78.062<br />

Mínimo 228.025 248.644<br />

Promedio 258.4431 272.00436<br />

GRASP + ECEMO Máximo 286.339 310.752<br />

Mínimo 226.419 887.828<br />

Promedio 303.2397 1079.4956<br />

GRASP + ECEMOR Máximo 544.238 1829.784<br />

Mínimo 161.024 987.178<br />

Promedio 211.8608 1175.468<br />

GRASP + ECEMODist Máximo 498.265 1926.184<br />

Mínimo 163.598 184.377<br />

Promedio 185.0863 224.28088<br />

GRASP + BTM Máximo 204.205 269.49<br />

Mínimo 223.299 244.078<br />

Promedio 240.6018 280.3421<br />

GRASP + RSMU Máximo 261.862 307.445<br />

Mínimo 231.02 259.772<br />

Promedio 254.8602 293.46536<br />

GRASP + RSMMC Máximo 294.264 329.582<br />

3.5.5 Escenario 5<br />

En la Tabla 20 se muestran los resultados obtenidos por cada <strong>al</strong>goritmo para las métricas Tasa <strong>de</strong> error,<br />

Distancia generacion<strong>al</strong> y Dispersión en el escenario 5.<br />

En el anexo 14 se muestran los resultados obtenidos para la métrica Cobertura en este escenario.<br />

Los resultados <strong>de</strong> las métricas an<strong>al</strong>izadas muestran como peores <strong>al</strong>goritmos en todos los casos a BTM,<br />

RSMU, GRASP + BTM y GRASP + RSMU. El resto <strong>de</strong> los <strong>al</strong>goritmos muestran un buen<br />

comportamiento en las métricas an<strong>al</strong>izadas.<br />

66


Tabla 20. V<strong>al</strong>ores mínimo, promedio y máximo <strong>de</strong> las métricas Tasa <strong>de</strong> error, Distancia generacion<strong>al</strong> y<br />

Dispersión en el escenario 5.<br />

Tasa <strong>de</strong> error Distancia generacion<strong>al</strong> Dispersión<br />

<strong>Algoritmos</strong><br />

CITI Softel CITI Softel CITI Softel<br />

Mínimo 0 0 8.31E-04 1.80E-04 2.70E-05 0<br />

Media 0.25840612 0.22958397 0.00347408 0.00176842 2.44E-04 1.98E-05<br />

ECEMO<br />

Máximo 0.58333331 1 0.00800869 0.00504571 0.00149957 8.42E-05<br />

Mínimo 0 0 7.07E-04 2.87E-04 1.05E-05 0<br />

Media 0.23961905 0.15347981 0.00266289 0.00230805 1.71E-04 3.82E-05<br />

ECEMOR<br />

Máximo 0.46153846 1 0.00968597 0.01666584 5.90E-04 1.77E-04<br />

Mínimo 0 0 4.94E-04 2.68E-04 2.37E-05 0<br />

Media 0.23748903 0.23404358 0.00303818 0.00153121 1.30E-04 9.89E-06<br />

ECEMODist<br />

Máximo 0.61538464 0.95238096 0.01002776 0.00337063 3.81E-04 4.69E-05<br />

Mínimo 1 1 0.0169922 0.02613546 0 6.21E-06<br />

Media 1 1 0.03293586 0.05737282 1.34E-04 9.91E-05<br />

BTM<br />

Máximo 1 1 0.04635842 0.09195921 7.86E-04 0.001152<br />

Mínimo 1 1 0.0206485 0.03323254 8.80E-06 1.46E-05<br />

Media 1 1 0.02905494 0.04100588 6.70E-04 5.72E-04<br />

RSMU<br />

Máximo 1 1 0.03684674 0.05759374 0.00281936 0.00218456<br />

Mínimo 0 0 6.03E-04 2.07E-04 8.75E-06 0<br />

Media 0.1848796 0.14546773 0.00308934 0.00172289 2.08E-04 3.14E-05<br />

RSMMC<br />

Máximo 0.5 1 0.01124199 0.00461201 0.00113664 2.00E-04<br />

Mínimo 0 0 5.08E-04 4.29E-04 1.53E-05 0<br />

Media 0.17257445 0.26670996 0.00300934 0.00206819 2.11E-04 4.41E-05<br />

GRASP + ECEMO Máximo 0.44444445 1 0.00995789 0.00724697 6.37E-04 2.71E-04<br />

Mínimo 0 0 5.22E-04 6.87E-04 3.45E-05 0<br />

Media 0.22810652 0.19562729 0.00359249 0.00145285 1.50E-04 1.76E-05<br />

GRASP + ECEMOR Máximo 0.69999999 0.75 0.01039352 0.0030034 5.27E-04 1.12E-04<br />

Mínimo 0 0 8.10E-04 7.48E-04 6.91E-06 0<br />

Media 0.19579761 0.25066465 0.00336331 0.00177586 2.20E-04 2.23E-05<br />

GRASP + ECEMODist Máximo 0.57894737 0.83333331 0.00753186 0.00379043 0.00105232 1.14E-04<br />

Mínimo 1 1 0.01404843 0.01848122 2.36E-05 5.40E-06<br />

Media 1 1 0.01919435 0.02833719 1.70E-04 2.50E-04<br />

GRASP + BTM Máximo 1 1 0.0317578 0.03644857 5.38E-04 0.0011045<br />

Mínimo 1 1 0.01555823 0.02330135 1.20E-05 3.36E-05<br />

Media 1 1 0.02726847 0.03421126 8.48E-04 8.46E-04<br />

GRASP + RSMU Máximo 1 1 0.04359723 0.04694997 0.00517372 0.0039584<br />

Mínimo 0 0 6.73E-04 5.61E-04 9.06E-06 0<br />

Media 0.166877 0.23915661 0.00324722 0.00216894 2.41E-04 1.36E-04<br />

GRASP + RSMMC Máximo 0.80000001 0.8888889 0.01150132 0.00837687 0.00129283 0.00183982<br />

Los tiempos <strong>de</strong> ejecución para este escenario se muestran en la Tabla 21. Como se observa los<br />

tiempos <strong>al</strong>canzan los 25 minutos como promedio con el <strong>al</strong>goritmo GRASP + ECEMODist y GRASP +<br />

ECEMOR, siendo menor <strong>de</strong> 13 minutos en el resto <strong>de</strong> los casos. Estos últimos pue<strong>de</strong>n consi<strong>de</strong>rarse<br />

tiempo aceptables, teniendo en cuenta que el tamaño <strong>de</strong>l espacio <strong>de</strong> soluciones en este escenario es<br />

superior respecto <strong>al</strong> resto <strong>de</strong> los escenarios.<br />

67


Tabla 21. Tiempo mínimo, promedio y máximo en la ejecución <strong>de</strong> los <strong>al</strong>goritmos en el escenario 5.<br />

Algoritmo / Tiempo (seg)<br />

Escenario 5<br />

CITI Softel<br />

Mínimo 80.309 115.665<br />

Promedio 90.98026 124.7561<br />

ECEMO<br />

Máximo 107.344 130.9<br />

Mínimo 175.516 194.751<br />

Promedio 265.4616 377.19623<br />

ECEMOR<br />

Máximo 565.61 778.195<br />

Mínimo 178.933 212.098<br />

Promedio 254.56541 354.9139<br />

ECEMODist<br />

Máximo 631.239 785.056<br />

Mínimo 55.599 72.853<br />

Promedio 66.897316 76.56326<br />

BTM<br />

Máximo 76.831 82.103<br />

Mínimo 78.156 105.066<br />

Promedio 103.46694 119.67827<br />

RSMU<br />

Máximo 161.919 124.831<br />

Mínimo 89.591 113.428<br />

Promedio 102.22463 125.293846<br />

RSMMC<br />

Máximo 151.477 131.758<br />

Mínimo 536.5 744.403<br />

Promedio 621.94836 816.2395<br />

GRASP + ECEMO Máximo 688.959 940.027<br />

Mínimo 643.127 905.317<br />

Promedio 767.4638 1172.4587<br />

GRASP + ECEMOR Máximo 868.563 1692.681<br />

Mínimo 468.797 955.477<br />

Promedio 603.60114 1272.4527<br />

GRASP + ECEMODist Máximo 1239.376 1878.685<br />

Mínimo 472.032 690.754<br />

Promedio 578.46344 790.9096<br />

GRASP + BTM Máximo 629.57 919.699<br />

Mínimo 582.566 744.371<br />

Promedio 625.8705 826.8318<br />

GRASP + RSMU Máximo 681.362 961.04<br />

Mínimo 596.701 666.807<br />

Promedio 681.9129 802.40875<br />

GRASP + RSMMC Máximo 754.896 874.647<br />

De manera gener<strong>al</strong> los <strong>al</strong>goritmos tienen un buen <strong>de</strong>sempeño en los diferentes escenarios,<br />

exceptuando a los <strong>al</strong>goritmos RSMU, GRASP + RSMU y GRASP + BTM. Por otra parte, BTM resulta<br />

ser uno <strong>de</strong> los <strong>al</strong>goritmos <strong>de</strong> mejor <strong>de</strong>sempeño en los tres primeros escenarios, siendo uno <strong>de</strong> los <strong>de</strong><br />

peor <strong>de</strong>sempeño en los dos últimos escenarios.<br />

Los resultados <strong>de</strong> las métricas se <strong>de</strong>terioran a medida que crece el tamaño <strong>de</strong>l espacio <strong>de</strong> soluciones, lo<br />

que resulta norm<strong>al</strong>, teniendo en cuenta que existe un mayor espacio <strong>de</strong> soluciones a explorar y que la<br />

cantidad <strong>de</strong> ev<strong>al</strong>uaciones <strong>de</strong> las funciones objetivo es la misma en todos los escenarios. Esto indica que<br />

<strong>de</strong>berían re<strong>al</strong>izarse pruebas en los escenarios 4 y 5 teniendo en cuenta un mayor número <strong>de</strong><br />

ev<strong>al</strong>uaciones <strong>de</strong> las funciones objetivo.<br />

68


Por otra parte los <strong>al</strong>goritmos que comienzan con una solución construida con GRASP Multiobjetivo no<br />

muestran resultados superiores respecto a los <strong>al</strong>goritmos que comienzan con una solución <strong>al</strong>eatoria en<br />

gran parte <strong>de</strong> los casos, a pesar <strong>de</strong> que la solución inici<strong>al</strong> es mejor en el primero <strong>de</strong> los casos.<br />

El tiempo <strong>de</strong> ejecución <strong>de</strong> los diferentes <strong>al</strong>goritmos en cada escenario <strong>de</strong> prueba resultan aceptables en<br />

la mayoría <strong>de</strong> los casos. Sin embargo, los tiempos <strong>de</strong> ejecución aumentan en los <strong>al</strong>goritmos que<br />

comienzan con una solución construida con GRASP Multiobjetivo y a medida que aumenta el tamaño<br />

<strong>de</strong>l espacio <strong>de</strong> soluciones.<br />

En el caso <strong>de</strong> los <strong>al</strong>goritmos GRASP + ECEMODist y GRASP + ECEMOR muestran tiempo poco<br />

aceptables en los últimos escenarios <strong>de</strong> prueba, especi<strong>al</strong>mente el <strong>al</strong>goritmo GRASP + ECEMODist<br />

cuyos tiempos <strong>de</strong> ejecución <strong>al</strong>canzan los 25 minutos como promedio. En el resto <strong>de</strong> los casos los<br />

tiempos no son superiores a los 13 minutos como promedio.<br />

A pesar <strong>de</strong> que los tiempos resultan aceptables, sería conveniente disminuir los tiempos <strong>de</strong> ejecución,<br />

sobre todo en los escenarios más gran<strong>de</strong>s (escenario 4 y 5), teniendo en cuenta la sugerencia <strong>de</strong><br />

re<strong>al</strong>izar pruebas con mayor cantidad <strong>de</strong> ev<strong>al</strong>uaciones <strong>de</strong> las funciones objetivo para estos escenarios.<br />

3.6 Conclusiones<br />

- El cálculo <strong>de</strong> las métricas tasa <strong>de</strong> error, distancia generacion<strong>al</strong>, dispersión y cobertura permitieron<br />

caracterizar el comportamiento <strong>de</strong> los <strong>al</strong>goritmos para los diferentes escenarios <strong>de</strong> prueba,<br />

<strong>de</strong>stacándose por los buenos resultados obtenidos en estas métricas las variantes <strong>de</strong>l <strong>al</strong>goritmo<br />

Esc<strong>al</strong>ador <strong>de</strong> Colinas y el <strong>al</strong>goritmo Recocido Simulado Multiobjetivo Multicaso.<br />

- Los <strong>al</strong>goritmos con peores resultados en las métricas son Recocido Simulado Multiobjetivo <strong>de</strong><br />

Ulungu y la Búsqueda Tabú Multiobjetivo. Este último obtiene m<strong>al</strong>os resultados en los escenarios<br />

<strong>de</strong> organizaciones gran<strong>de</strong>s no siendo así en los escenarios que representan organizaciones<br />

medianas.<br />

- En los resultados obtenidos con las métricas aplicadas se observa que a medida que aumenta el<br />

tamaño <strong>de</strong>l <strong>problema</strong> la c<strong>al</strong>idad <strong>de</strong> las métricas disminuye, lo que resulta norm<strong>al</strong> teniendo en cuenta<br />

que los parámetros son igu<strong>al</strong>es a los <strong>de</strong>l resto <strong>de</strong> los escenarios y en estos casos se recorre un<br />

menor por ciento <strong>de</strong>l espacio <strong>de</strong> soluciones.<br />

- En las pruebas re<strong>al</strong>izadas y con los parámetros utilizados, los <strong>al</strong>goritmos que comienzan con una<br />

solución construida utilizando GRASP Multiobjetivo no encuentran mejores resultados que los<br />

<strong>al</strong>goritmos que comienzan con una solución construida <strong>al</strong>eatoriamente.<br />

- Los tiempos <strong>de</strong> respuesta <strong>de</strong> los diferentes <strong>al</strong>goritmos resultan aceptables, excepto en los<br />

<strong>al</strong>goritmos GRASP + ECEMODist y GRASP + ECEMOR para los últimos escenarios <strong>de</strong> prueba.<br />

69


Conclusiones<br />

A partir <strong>de</strong> los resultados <strong>de</strong> la tesis se arriban a las siguientes conclusiones:<br />

- Basado en un estudio <strong>de</strong> las diferentes variantes <strong>de</strong> <strong>al</strong>goritmos <strong>multiobjetivo</strong> aplicadas a<br />

<strong>problema</strong>s <strong>de</strong> asignación, para la solución <strong>de</strong>l <strong>problema</strong> <strong>de</strong> asignación <strong>de</strong> recursos humanos a<br />

equipos <strong>de</strong> proyecto <strong>de</strong> software se implementaron los <strong>al</strong>goritmos: Búsqueda Tabú Multiobjetivo,<br />

Recocido Simulado Multiobjetivo <strong>de</strong> Ulungu, Recocido Simulado Multiobjetivo Multicaso,<br />

Esc<strong>al</strong>ador <strong>de</strong> Colinas Estocástico Multiobjetivo, Esc<strong>al</strong>ador <strong>de</strong> Colinas Estocástico Multiobjetivo<br />

con Reinicio, Esc<strong>al</strong>ador <strong>de</strong> Colinas Estocástico Multiobjetivo <strong>de</strong> mayor distancia y GRASP<br />

Multiobjetivo.<br />

- Se modificó la biblioteca <strong>de</strong> clases BICIAM para solucionar <strong>problema</strong>s <strong>de</strong> optimización<br />

<strong>multiobjetivo</strong>, extendiéndola con la incorporación <strong>de</strong> los <strong>al</strong>goritmos propuestos en este trabajo y<br />

las técnicas <strong>de</strong> solución <strong>multiobjetivo</strong> puro, método lexicográfico y método <strong>de</strong> factores<br />

pon<strong>de</strong>rados.<br />

- La incorporación <strong>de</strong> las técnicas <strong>de</strong> solución <strong>multiobjetivo</strong> puro y lexicográfico a la herramienta<br />

<strong>de</strong> toma <strong>de</strong> <strong>de</strong>cisiones Teamsoft + contribuyó a aten<strong>de</strong>r las diferentes preferencias <strong>de</strong>l <strong>de</strong>cisor.<br />

- En los experimentos re<strong>al</strong>izados los <strong>al</strong>goritmos que mejores resultados obtuvieron son las<br />

variantes <strong>de</strong>l Esc<strong>al</strong>ador <strong>de</strong> Colinas: Esc<strong>al</strong>ador <strong>de</strong> Colinas Estocástico Multiobjetivo, Esc<strong>al</strong>ador <strong>de</strong><br />

Colinas Estocástico Multiobjetivo con Reinicio, Esc<strong>al</strong>ador <strong>de</strong> Colinas Multiobjetivo <strong>de</strong> mayor<br />

distancia y el <strong>al</strong>goritmo Recocido Simulado Multiobjetivo Multicaso.<br />

- La implementación <strong>de</strong>l método GRASP para construir una solución inici<strong>al</strong> para la ejecución <strong>de</strong><br />

los diferentes <strong>al</strong>goritmos no reporta mejores resultados que la generación <strong>al</strong>eatoria <strong>de</strong> una<br />

solución inici<strong>al</strong>.<br />

- El crecimiento <strong>de</strong>l tamaño <strong>de</strong>l espacio <strong>de</strong> soluciones ocasiona un <strong>de</strong>terioro <strong>de</strong> la c<strong>al</strong>idad <strong>de</strong> las<br />

métricas tasa <strong>de</strong> error y distancia generacion<strong>al</strong> en todos los <strong>al</strong>goritmos an<strong>al</strong>izados.<br />

- Los <strong>al</strong>goritmos con peores resultados en las métricas an<strong>al</strong>izadas resultaron ser Recocido<br />

Simulado Multiobjetivo <strong>de</strong> Ulungu, GRASP + Recocido Simulado Multiobjetivo <strong>de</strong> Ulungu,<br />

GRASP + Búsqueda Tabú Multiobjetivo y Búsqueda Tabú Multiobjetivo. Este último presentó<br />

m<strong>al</strong>os resultados en los dos últimos escenarios <strong>de</strong> prueba no siendo así en los primeros tres<br />

escenarios.<br />

- Los experimentos re<strong>al</strong>izados permiten concluir que se pue<strong>de</strong>n obtener soluciones factibles en<br />

tiempos aceptables con la aplicación <strong>de</strong> las variantes <strong>multiobjetivo</strong> <strong>de</strong> los <strong>al</strong>goritmos <strong>de</strong><br />

<strong>trayectoria</strong> seleccionados, excepto con los <strong>al</strong>goritmos GRASP + Esc<strong>al</strong>ador <strong>de</strong> Colinas<br />

Multiobjetivo <strong>de</strong> mayor distancia y GRASP + Esc<strong>al</strong>ador <strong>de</strong> Colinas Multiobjetivo con Reinicio,<br />

cuyos tiempos <strong>de</strong> ejecución no se consi<strong>de</strong>ran aceptables.<br />

70


Recomendaciones<br />

Para futuros trabajos se recomienda:<br />

- C<strong>al</strong>ibrar los parámetros <strong>de</strong> los <strong>al</strong>goritmos para escenarios <strong>de</strong> organizaciones gran<strong>de</strong>s y muy<br />

gran<strong>de</strong>s y re<strong>al</strong>izar nuevas pruebas experiment<strong>al</strong>es con los <strong>al</strong>goritmos seleccionados en este<br />

trabajo.<br />

- Comparar los resultados obtenidos en esta tesis con los resultados <strong>de</strong> la implementación <strong>de</strong><br />

<strong>al</strong>goritmos poblacion<strong>al</strong>es <strong>multiobjetivo</strong>.<br />

- Implementar otras variantes <strong>multiobjetivo</strong> <strong>de</strong> <strong>al</strong>goritmos <strong>de</strong> <strong>trayectoria</strong> para comparar los<br />

resultados obtenidos.<br />

- Aplicar estrategias <strong>de</strong> par<strong>al</strong>elización para escenarios especi<strong>al</strong>mente gran<strong>de</strong> con el objetivo <strong>de</strong><br />

disminuir el tiempo <strong>de</strong> respuesta <strong>de</strong> los <strong>al</strong>goritmos y/o aumentar la c<strong>al</strong>idad <strong>de</strong> las soluciones<br />

obtenidas.<br />

- Aplicar los <strong>al</strong>goritmos propuestos en la solución <strong>de</strong>l mo<strong>de</strong>lo con datos re<strong>al</strong>es <strong>de</strong> una<br />

organización <strong>de</strong> software cubana para la v<strong>al</strong>idación tot<strong>al</strong> <strong>de</strong>l mo<strong>de</strong>lo y los <strong>al</strong>goritmos.<br />

71


Referencias Bibliográficas<br />

Acuña, S. T. and N. Juristo (2005). Chapter 5: Software Process Mo<strong>de</strong>ling: Socio-Technic<strong>al</strong><br />

Perspectives, in Software Process Mo<strong>de</strong>ling. The Kluwer Internation<strong>al</strong> Series in Software<br />

Engineering, Springer: 111-139.<br />

Ahuja, R. K., J. B. Orlin, et <strong>al</strong>. (2000). "A Greedy Genetic Algorithm for the Quadratic Assignment<br />

Problem." Computers and Operations Research 27: 22.<br />

Aiex, R. M., M. G. C. Resen<strong>de</strong>, et <strong>al</strong>. (2000). "GRASP with path relinking for the three-in<strong>de</strong>x assignment<br />

problem." AT&T Labs Research Technic<strong>al</strong> Report: 43.<br />

Alba, E. and C. Cotta (2002). Optimización en Entornos Geograficamente Distribuido. P. M<strong>al</strong>lba.<br />

Álvarez-V<strong>al</strong>dés, R., E. Crespo, et <strong>al</strong>. (1999). Experiencias <strong>de</strong> utilización <strong>de</strong>l método <strong>de</strong> búsqueda Tabú<br />

en la resolución <strong>de</strong> <strong>problema</strong>s <strong>de</strong> organización universitaria. Docencia <strong>de</strong> Matemáticas en la<br />

Economía y la Empresa: 11.<br />

Álvarez-V<strong>al</strong>dés, R., F. Parreño, et <strong>al</strong>. (2008). "Reactive GRASP for the strip-packing problem."<br />

Computers & Operations Research 35(4): 1065-1083.<br />

André, M. (2009). Un mo<strong>de</strong>lo para la asignación <strong>de</strong> recursos humanos a equipos <strong>de</strong> proyectos <strong>de</strong><br />

software. Centro <strong>de</strong> Estudios <strong>de</strong> Ingeniería y Sistemas. Ciudad <strong>de</strong> La Habana, Cuba, ISPJAE.<br />

Tesis doctor<strong>al</strong>: 159.<br />

André, M., M. G. B<strong>al</strong>doquín, et <strong>al</strong>. (2010). "I<strong>de</strong>ntification of patterns for the formation of software<br />

<strong>de</strong>velopment projects teams." Internation<strong>al</strong> Journ<strong>al</strong> of Human Capit<strong>al</strong> and Information<br />

Technology Profession<strong>al</strong>s (IJHCITP) 1(3): 11.<br />

André, M., M. G. B<strong>al</strong>doquín, et <strong>al</strong>. (2008). A form<strong>al</strong>ized mo<strong>de</strong>l for the assignment of human resources to<br />

software projects. XIV Latin Ibero-American Congress on Operations Research CLAIO 2008,<br />

Colombia.<br />

Ángeles, M. d. l., M. Gómez, et <strong>al</strong>. (2005). "Procedimiento para Determinar las Necesida<strong>de</strong>s <strong>de</strong><br />

Competencias en Organizaciones Desarrolladoras <strong>de</strong> Software." Revista Colombiana <strong>de</strong><br />

Computación 7(2): 28.<br />

Arias, Y. (2006). Mo<strong>de</strong>lo <strong>de</strong> selección <strong>de</strong> person<strong>al</strong> por competencias utilizando lógica difusa. Ingeniería<br />

<strong>de</strong> Software. La Habana, Instituto Superior Politécnico José Antonio Echeverría. Máster en<br />

Informática Aplicada: 85.<br />

Baesler, F., R. Moraga, et <strong>al</strong>. (2008). "Introducción <strong>de</strong> elementos <strong>de</strong> memoria en el método Simulated<br />

Anne<strong>al</strong>ing para resolver <strong>problema</strong>s <strong>de</strong> programación <strong>multiobjetivo</strong> <strong>de</strong> máquinas par<strong>al</strong>elas."<br />

Revista Chilena <strong>de</strong> ingeniería 16(3): 10.<br />

B<strong>al</strong>icki, J. (2007). "Tabu Programming for Multiobjective Optimization Problems." Internation<strong>al</strong> Journ<strong>al</strong> of<br />

Computer Science and Network Security 7(10): 8.<br />

72


Bandyopadhyay, S., S. Saha, et <strong>al</strong>. (2008). "A Simulated Anne<strong>al</strong>ing Based Multi-objective Optimization<br />

Algorithm: AMOSA." IEEE Transactions on Evolutionary Comp 12(3): 15.<br />

Barreto, A. S. (2003). Apoio à Decisão Gerenci<strong>al</strong> na Alocação <strong>de</strong> Recursos Humanos em Projetos <strong>de</strong><br />

Software. COPPE, Rio <strong>de</strong> Janeiro, Universida<strong>de</strong> Fe<strong>de</strong>r<strong>al</strong> do Rio <strong>de</strong> Janeiro Tese para a<br />

obtenção do grau <strong>de</strong> mestre em ciências em engenharia <strong>de</strong> sistemas e computação.<br />

Baykasoglu, A. and N. N. Z. Gindy (1999). Loading flexible cells: Tabu Search based simulation<br />

optimisation approach. 15th Internation<strong>al</strong> Conference on Production Research. M. H. a.<br />

H.L.Lewis. University of Limerick, Ireland, Gemini Int. Limited. 2: 1441-1444.<br />

Baykasoglu, A., L. Ozbaku, et <strong>al</strong>. (2002). Multiple dispatching rule based heuristic for multiobjective<br />

scheduling of job using Tabu Search 5th Internation<strong>al</strong> Conference on Managing Innovations in<br />

Manufacturing, Milwaukee, Wisconsin, USA.<br />

Brandt, C. and R. Lindberg (2006). Competitive IS/IT strategy – A qu<strong>al</strong>itative study about how IS/IT<br />

strategy can influence business strategy in sm<strong>al</strong>l service enterprises, Jönköping University.<br />

Burke, E. K., J. Li, et <strong>al</strong>. (2009). "A Pareto-Based search methodology for multi-objective nurse<br />

scheduling." Ann<strong>al</strong>s of Operations Research.<br />

Cab<strong>al</strong>lero, R. and M. Hernán<strong>de</strong>z (2003). "El método <strong>de</strong> las pon<strong>de</strong>raciones en el <strong>problema</strong> fraccion<strong>al</strong><br />

line<strong>al</strong> <strong>multiobjetivo</strong>." Rect@ 11(1): 1-11.<br />

Cagnina, L., S. Esquivel, et <strong>al</strong>. (2005). "A Particle Swarm Optimizer for Multi-Objective Optimization."<br />

JCS&T 5(4): 204-210.<br />

Chang, W. and C. Chyu (2008). Comparison between SA-based and EA-based Metaheuristics for<br />

Solving a Biobjective Unrelated Par<strong>al</strong>lel Machine Scheduling Problem with Sequence Depen<strong>de</strong>nt<br />

Setup Times. 9th Asia Pacific Industri<strong>al</strong> Engineering & Management Systems Conference.<br />

Chu, P. C. and J. E. Beasley (1997). "A Genetic Algorithm for the Gener<strong>al</strong>ized Assignment Problem."<br />

Computers & Operations Research 24: 17-23.<br />

Coello, C. A. C., D. A. V. Veldhuizen, et <strong>al</strong>. (2002). Evolutionary Algorithms for Solving Multi-Objective<br />

Problems. New York, Kleuwer Aca<strong>de</strong>mic Publishers.<br />

Coello, C. A. C., D. A. V. Veldhuizen, et <strong>al</strong>. (2007). Evolutionary Algorithms for Solving Multi-Objective<br />

Problems. New York, Springer.<br />

Comman<strong>de</strong>r, C. W., S. I. Butenko, et <strong>al</strong>. (2004). Reactive GRASP with path relinking for broadcast<br />

scheduling problem. Proceedings of the 40th Annu<strong>al</strong> Int. Telemetry Conference: 792-800.<br />

Czyzak, P. and A. Jaszkiewicz (1998). "Pareto Simulated Anne<strong>al</strong>ing - a metaheuristic technique for<br />

multiple objective combinatori<strong>al</strong> optimization." Journ<strong>al</strong> of Multi-Criteria Decision An<strong>al</strong>ysis 7: 22.<br />

DeCarv<strong>al</strong>ho, L. R. (2003). Planejamento da <strong>al</strong>ocação <strong>de</strong> recursos humanos em Ambientes <strong>de</strong><br />

<strong>de</strong>senvolvimento <strong>de</strong> software orientados à Organização. COPPE, Rio <strong>de</strong> Janeiro, Universida<strong>de</strong><br />

Fe<strong>de</strong>r<strong>al</strong> do Rio <strong>de</strong> Janeiro.<br />

73


Díaz, J. A. and E. Fernán<strong>de</strong>z (2001). "A Tabu Search Heuristic for the Gener<strong>al</strong>ized Assignment<br />

Problem." European Journ<strong>al</strong> of Operation<strong>al</strong> Research 132: 17.<br />

Díaz, R. (2001). Estudio <strong>de</strong> la capacidad <strong>de</strong>l <strong>al</strong>goritmo Esc<strong>al</strong>ador <strong>de</strong> Colinas Estocástico para enfrentar<br />

<strong>problema</strong>s <strong>multiobjetivo</strong>. Ciudad <strong>de</strong> la Habana, Instituto Superior Politécnico “José Antonio<br />

Echeverría”. Tesis: 89.<br />

Doerner, K. F., M. Gendreau, et <strong>al</strong>. (2007). Metaheuristics. Progress in Complex System Optimization,<br />

Springer.<br />

Donoso, Y., P. Albor, et <strong>al</strong>. (2005). "Optimización con múltiples objetivos utilizando Tabú Search."<br />

Ingeniería & Desarrollo(18): 16.<br />

Dowsland, K. A. and B. A<strong>de</strong>nso (2003). "Diseño <strong>de</strong> heurísticas y fundamentos <strong>de</strong> Recocido Simulado."<br />

Revista Iberoamericana <strong>de</strong> Inteligencia Artifici<strong>al</strong> 20(2001): 34-52.<br />

Drezner, Z. (2002). "A New Heuristic for the Quadratic Assignment Problem." Journ<strong>al</strong> of Applied<br />

Mathematics and Decision Sciences 6(3): 11.<br />

Durillo, J. J., A. J. Nebro, et <strong>al</strong>. (2010). "The jMet<strong>al</strong> Framework for multi-objective optimization: Design<br />

and architecture." Lecture Notes in Computer Sciences 5467: 187.<br />

Ertek, G. l., B. Aksu, et <strong>al</strong>. (2005). Application of Loc<strong>al</strong> Search Methods for solving a Quadratic<br />

Assignment Problem: A case study. 35th Internation<strong>al</strong> Conference on Computers and Industri<strong>al</strong><br />

Engineering. Istanbul, Turkey.<br />

Fajardo, J. and D. Pare<strong>de</strong>s (2009). Biblioteca <strong>de</strong> clases para integrar <strong>Algoritmos</strong> Metaheurísticos<br />

basados en un punto. IV T<strong>al</strong>ler <strong>de</strong> C<strong>al</strong>idad en las Tecnologías <strong>de</strong> la Información y las<br />

Comunicaciones, La Habana, Cuba.<br />

Feo, T. A. and M. G. C. Resen<strong>de</strong> (1995). "Greedy randomized adaptive search procedures." Journ<strong>al</strong> of<br />

Glob<strong>al</strong> Optimization 6(24): 109.<br />

Fleurent, C. and J. A. Ferland (1993). "Genetic Hybrids for the Quadratic Assignment Problem." DIMACS<br />

Series in Discrete Mathematics and Theoretic<strong>al</strong> Computer Science: 15.<br />

Garey, M. R. and D. S. Johnson (1979). Computers and intractability A gui<strong>de</strong> to the theory of NPcompleteness,<br />

Bell Telephone Laboratories, Incorporated.<br />

Glover, F. (1986). "Future Paths for Integer Programming and Links To Artifici<strong>al</strong> Intelligence." Computers<br />

& Operations Research 13(5): 17.<br />

Haidine, A. and R. Lehnert (2008). "Multi-Case Multi-Objective Simulated Anne<strong>al</strong>ing (MC-MOSA): New<br />

Approach to Adapt Simulated Anne<strong>al</strong>ing to Multi-objective Optimization." Internation<strong>al</strong> Journ<strong>al</strong> of<br />

Information Technology 4(3): 9.<br />

Hamm, M., U. Beißert, et <strong>al</strong>. (2009). Simulation-based optimization of construction schedules by using<br />

pareto simulated anne<strong>al</strong>ing. 18th Internation<strong>al</strong> Conference on the Application of Computer<br />

Science and Mathematics in Architecture and Civil Engineering. K. G. a. C. Könke. Weimar,<br />

Germany.<br />

74


Hapke, M., A. Jaszkiewicz, et <strong>al</strong>. (2000). "Pareto simulated anne<strong>al</strong>ing for fuzzy multiobjective<br />

combinatori<strong>al</strong> optimization." Journ<strong>al</strong> of Heuristics 6(3): 16.<br />

Higgins, A. J. (2001). "A dynamic tabu search for large-sc<strong>al</strong>e gener<strong>al</strong>ised assignment problems."<br />

Computers & Operations Research 28: 10.<br />

Hillier, F. S. and G. J. Lieberman (2006). Introducción a la Investigación <strong>de</strong> Operaciones. McGraw-Hill<br />

Science. México.<br />

Ho, S. L., S. Yang, et <strong>al</strong>. (2002). "A Tabu Method to Find the Pareto Solutions of Multiobjective Optim<strong>al</strong><br />

Design Problems in Electromagnetics." IEEE Transactions in Magnetics 38(2): 4.<br />

Jaffrès, K., J. M. Gorce, et <strong>al</strong>. (2008). A Multiobjective Tabu Framework for the Optimization and<br />

Ev<strong>al</strong>uation of Wireless Systems. Loc<strong>al</strong> Search Techniques: Focus on Tabu Search Vienna,<br />

Austria: 278.<br />

Johnsonbaugh, R. (2004). Matemáticas Discretas. La Habana, Félix Varela.<br />

Jones, T. C. (1995). Evolutionary Algorithms, Fitness Landscapes and Search. Alburquerque, University<br />

of New Mexico. Ph. D. Thesis.<br />

Juels, A. and M. Watenberg (1994). Stochastic Hill-Climbing as a Baseline Method for Ev<strong>al</strong>uating<br />

Genetic Algorithms, University of C<strong>al</strong>ifornia at Berkeley.<br />

Kirkpatrick, S., C. D. Gelatt, et <strong>al</strong>. (1983). "Optimization by Simulated Anne<strong>al</strong>ing." Science 220(4598): 10.<br />

Knowles, J. and D. Corne (2001). On Metrics for Comparing Non-Dominated Sets. Proceedings of the<br />

2002 Congress on Evolutionary Computation, Honolulu, HI, USA.<br />

Kochenberger, G., F. Glover, et <strong>al</strong>. (2002). "An effective approach for solving the binary assignment<br />

problem with si<strong>de</strong> contraints." Internation<strong>al</strong> journ<strong>al</strong> of information technology & <strong>de</strong>cision making<br />

1(1): 9.<br />

Kulcsár, G., F. Erdélyi, et <strong>al</strong>. (2007). "Multi-objective optimization and heuristic approaches for solving<br />

scheduling problems." IFAC.<br />

Kulturel-Konak, S., A. E. Smith, et <strong>al</strong>. (2004). "Multi-objective tabu search using a multinomi<strong>al</strong> probability<br />

mass function." European Journ<strong>al</strong> of Operation<strong>al</strong> Research 169(2006): 14.<br />

Li, H. and D. Landa-Silva (2007). "Evolutionary Multi-objective Simulated Anne<strong>al</strong>ing with Adaptive and<br />

Competitive Search Direction."<br />

Lukasiewycz, M., M. Glab, et <strong>al</strong>. (2011). Opt4J - A Modular Framework for Meta-heuristic Optimization.<br />

Dublin, Ireland.<br />

Luke, S. (2010). The ECJ Owner's Manu<strong>al</strong>. San Francisco, C<strong>al</strong>ifornia, A user manu<strong>al</strong> for the ECJ<br />

Evolutionary Computation Library.<br />

M. André, M.G. B<strong>al</strong>doquín, et <strong>al</strong>. (2011). "Form<strong>al</strong> mo<strong>de</strong>l for assigning human resources to teams in<br />

software projects." Information and Software Technology 53(3): 16.<br />

Martí, R. (2003). <strong>Algoritmos</strong> Heurísticos en Optimización Combinatoria Departamento <strong>de</strong> Estadística e<br />

Investigación Operativa, Universidad <strong>de</strong> V<strong>al</strong>encia: 31.<br />

75


Misevicius, A. (2003). "A Modified Simulated Anne<strong>al</strong>ing Algorithm for the Quadratic Assignment<br />

Problem." INFORMATICA 14(4): 18.<br />

Mishmast, H. and S. Gelareh (2007). "A Survey of Meta-Heuristic Solution Methods for the Quadratic<br />

Assignment Problem." Applied Mathematic<strong>al</strong> Sciences 1(46): 20.<br />

MOMHTeam. (2007). "MOMH Multiple-Objective Metaheuristics." Fecha acceso: diciembre, 2011.<br />

Disponible en: http://home.gna.org/momh/in<strong>de</strong>x.html.<br />

Moreno, P., J. Sánchez, et <strong>al</strong>. (2007). "Aplicación <strong>de</strong> técnicas <strong>de</strong> enfriamiento lento <strong>al</strong> <strong>problema</strong> <strong>de</strong><br />

planificación <strong>de</strong> horarios." Revista <strong>de</strong> Ciencia, Tecnología y Medio Ambiente 5: 23.<br />

Nam, D. and C. Park (1999). Pareto-based cost simulated anne<strong>al</strong>ing for multiobjective optimization.<br />

Genetic and Evolutionary Computation Conference. Orlando, Florida: 6.<br />

Neil, D. (2006). "Proyectos Informáticos: Fracasos y Lecciones Aprendidas." Revista <strong>de</strong> Derecho y<br />

Tecnologías <strong>de</strong> la Información(4): 11.<br />

Nelson, R. (2007). IT: Project Management: Infamous failures, classic mistakes, and best practices. Mis<br />

Quarterly Executive. A research journ<strong>al</strong> <strong>de</strong>voted to improving practice, Mis Quarterly. 6.<br />

Ngo-The, A. and G. Ruhe (2008). "A Systematic Approach for Solving the Wicked Problem of Software<br />

Release Planning." Soft Computing 12(1): 95-108.<br />

Ólafsson, S. (2006). Handbook on Simulation: Metaheuristics Iowa State University.<br />

Pentico, D. W. (2005). "Assignment problems: A gol<strong>de</strong>n anniversary survey." European Journ<strong>al</strong> of<br />

Operation<strong>al</strong> Research 176: 20.<br />

Pilegaard, M. (1996). Tabu Search for Multiobjective Optimization: MOTS. MCDM ‘97. Cape Town,<br />

South Africa.<br />

Pitsoulis, L. S. and M. G. C. Resen<strong>de</strong> (2001). "Greedy Randomized Adaptive Search Procedures." AT&T<br />

Labs Research Technic<strong>al</strong> Report: 20.<br />

PMI (2004). Guía <strong>de</strong> Fundamentos <strong>de</strong> la Dirección <strong>de</strong> Proyectos. (Guía <strong>de</strong>l PMBOK®), Project<br />

Managment Institute.<br />

Pra<strong>de</strong>nas, L., S. Hid<strong>al</strong>go, et <strong>al</strong>. (2008). "Asignación <strong>de</strong> supervisores forest<strong>al</strong>es. Resolución mediante un<br />

<strong>al</strong>goritmo Tabu Search." Ingeniare. Revista chilena <strong>de</strong> ingeniería 16(3): 11.<br />

Prais, M. and C. C. Ribeiro (2000). "Reactive GRASP: An application to a matriz <strong>de</strong>scomposition<br />

problem in TDMA Traffic Assignment " Journ<strong>al</strong> on Computing 12(3): 21.<br />

Ram<strong>al</strong>hinho, E. and D. Serra (2004) "Métodos <strong>de</strong> solución <strong>de</strong> <strong>problema</strong>s <strong>de</strong> asignación <strong>de</strong> recursos<br />

sanitarios." Documentos <strong>de</strong> trabajo 1, 39.<br />

Ramkumar, A. S. and S. G. Ponnamb<strong>al</strong>am (2006). "Hybrid Ant colony System for solving Quadratic<br />

Assignment Formulation of Machine Layout Problems " IEEE: 5.<br />

Resen<strong>de</strong>, M. G. C. and J. L. González (2003). GRASP: Procedimientos <strong>de</strong> búsqueda miopes<br />

<strong>al</strong>eatorizados y adaptativos. Revista Iberoamericana <strong>de</strong> Inteligencia Artifici<strong>al</strong>: 61-76.<br />

76


Resen<strong>de</strong>, M. G. C. and C. S. Ribeiro (2003). Chapter 8: Greedy Randomized Adaptive Search<br />

Procedure. Handbook of Metaheuristics. F. Glover and G. A. Kochenberber, Kluwer Aca<strong>de</strong>mics:<br />

221-249.<br />

Reynolds, A. P., D. W. Corne, et <strong>al</strong>. (2009). A Multiobjective GRASP for Rule Selection. GECCO’09,<br />

Montre<strong>al</strong> Quebec, Canadá, ACM.<br />

Reynolds, A. P. and B. d. l. Iglesia (2008). "A Multi-Objective GRASP for Parti<strong>al</strong> Classification." Soft<br />

Computing - A Fusion of Foundations, Methodologies and Applications.<br />

Rich, E. and K. Knight (1994). Inteligencia Artifici<strong>al</strong>, McGraw-Hill.<br />

Rivera, J. C. and L. F. Moreno (2005). Búsqueda Tabú aplicado a la programación <strong>de</strong> proyectos. XI<br />

ELAVIO – Escuela Latino Americana <strong>de</strong> Verano en Investigación <strong>de</strong> Operaciones. Villa <strong>de</strong> Leyva<br />

- Colombia 2.<br />

Rodríguez, J. L. (2008). Mo<strong>de</strong>lación Form<strong>al</strong> <strong>de</strong>l <strong>problema</strong> <strong>de</strong> asignación <strong>de</strong> recursos humanos a<br />

proyectos <strong>de</strong> software. La Habana, Instituto Superior Politécnico “José Antonio Echeverría”.<br />

Rosete, A. (2000). Una Solución Flexible y Eficiente para el Trazado <strong>de</strong> Grafos Basada en el Esc<strong>al</strong>ador<br />

<strong>de</strong> Colinas Estocástico. Faculdad <strong>de</strong> Ingeniería Industri<strong>al</strong>, CEIS. La Habana, Instituto Superior<br />

Politécnico “José Antonio Echeverría”. Doctor en Ciencias Técnicas: 134.<br />

Rotstan, N. (2002). "JGAP Java Genetic Algorithms Package." Fecha acceso: diciembre 2011, 2011,<br />

Disponible en: http://jgap.sourceforge.net/.<br />

Sahu, A. and R. Tapadar (2007). "Solving the Assignment problem using Genetic Algorithm and<br />

Simulated Anne<strong>al</strong>ing." IAENG Internation<strong>al</strong> Journ<strong>al</strong> of Applied Mathematics 36(1): 4.<br />

Schott, J. R. (1995). Fault tolerance <strong>de</strong>sign using single and multicriteria genetic <strong>al</strong>gorithm optimization.<br />

Department of Aeronautics and Astronautics. Cambridge, Massachusetts Institute of Technology.<br />

Master´s thesis.<br />

Serafini, P. (1994). Simulated anne<strong>al</strong>ing for multiple objective optimization problems. Multiple criteria<br />

<strong>de</strong>cision making. Expand and enrich the domains of thinking and application H. F. W. In G. H.<br />

Tzeng, V. P. Wen, & P. L. Yu (Eds.), Springer-Verlag Berlin Hei<strong>de</strong>lberg. 283.<br />

Sierra, Y. G. and A. A. Melo (2009). Biblioteca <strong>de</strong> Clases para la Integracion <strong>de</strong> los <strong>Algoritmos</strong><br />

Metaheurísticos. Centro <strong>de</strong> Estudios <strong>de</strong> Ingeniería y Sistemas (CEIS). La Habana, Instituto<br />

Superior Politécnico “José Antonio Echeverría”. Diploma: 82.<br />

Smith, K. I. (2008). A Study of Simulated Anne<strong>al</strong>ing Techniques for Multi-Objective Optimisation. Doctor<br />

of Philosophy in Computer Science: 137.<br />

Smith, K. I., R. M. Everson, et <strong>al</strong>. (2008). "Dominance-based multi-objective simulated anne<strong>al</strong>ing." IEEE<br />

Transactions on Evolutionary Computation 12(3): 323-342.<br />

Srinivas, N. and K. Deb (1994). "Multiobjective Optimization using Nondominated Sorting in Genetic<br />

Algorithms." Journ<strong>al</strong> of Evolutionary Computation 2(3): 221-248.<br />

77


Suman, B. and P. Kumar (2006). "A survey of simulated anne<strong>al</strong>ing as a tool for single and multiobjective<br />

optimization." Journ<strong>al</strong> of the Operation<strong>al</strong> Research Society 57(10): 18.<br />

Sunar, M. and R. Kahraman (2001). "A Comparative Study of Multiobjective Optimization Methods in<br />

Structur<strong>al</strong> Design." Turk J Engin Environ Sci 25: 10.<br />

Ulungu, E. L. and J. Teghem (1994). "Multi-objective combinatori<strong>al</strong> optimization problems: A survey."<br />

Journ<strong>al</strong> of Multi-Criteria Decision An<strong>al</strong>ysis 3: 22.<br />

Vazquez, M. and L. D. Whitley (2000). A hybrid Genetic Algorithm for the Quadratic Assignment<br />

Problem. GECCO-2000: Proceedings of the Genetic and Evolutionary Computation Conference<br />

8.<br />

Veldhuizen, D. V. (1999). Multiobjective evolutionary <strong>al</strong>gorithm: Classifications, An<strong>al</strong>yses, and New<br />

Innovations. Department of Electric<strong>al</strong> and Computer Engineering. Ohio, Air Force Institute of<br />

Technology Wright Patterson AFB. PhD. Thesis.<br />

Wolpert, D. H. and W. G. Macready (1997). "No free lunch theorems for optimization." IEEE<br />

Transactions on Evolutionary Computation 1(1): 67–82.<br />

Zitzler, E. (1999). Evolutionary Algorithms for Multiobjective Optimization: Methods and Applications.<br />

Computer Engineering and Networks Laboratory. Zurich, Swiss Fe<strong>de</strong>r<strong>al</strong> Institute of Technology<br />

Doctor of Technic<strong>al</strong> Sciences: 132.<br />

78


Glosario <strong>de</strong> términos y siglas<br />

16PF: Test psicológico que mi<strong>de</strong> 16 factores <strong>de</strong> la person<strong>al</strong>idad<br />

BTM: Búsqueda Tabú Multiobjetivo<br />

CITI: Complejo <strong>de</strong> Investigaciones <strong>de</strong> Tecnologías Integradas<br />

Competencias: Son características subyacentes en las personas, asociadas con la experiencia, que<br />

como ten<strong>de</strong>ncia están casu<strong>al</strong>mente relacionadas con actuaciones exitosas en un puesto <strong>de</strong> trabajo<br />

contextu<strong>al</strong>izado en una <strong>de</strong>terminada cultura organizacion<strong>al</strong>.<br />

CRIS: Centro <strong>de</strong> Referencia <strong>de</strong> Ingeniería <strong>de</strong> Software<br />

ECEMO: Esc<strong>al</strong>ador <strong>de</strong> Colinas Estocástico Multiobjetivo<br />

ECEMODist: Esc<strong>al</strong>ador <strong>de</strong> Colinas Estocástico Multiobjetivo por mayor distancia<br />

ECEMOR: Esc<strong>al</strong>ador <strong>de</strong> Colinas Estocástico Multiobjetivo con Reinicio<br />

GRASP: Procedimiento <strong>de</strong> búsqueda adaptativo, <strong>al</strong>eatorizado y avaricioso, por sus siglas en inglés<br />

ISPJAE: Instituto Superior Politécnico José Antonio Echeverría<br />

MBTI: Indicador <strong>de</strong> tipo <strong>de</strong> Myers-Briggs, por sus siglas en inglés<br />

Metaheurísticas: Método <strong>de</strong> solución gener<strong>al</strong> que proporciona tanto una estructura gener<strong>al</strong> como<br />

criterios estratégicos para <strong>de</strong>sarrollar un método heurístico específico que se ajuste a un tipo particular<br />

<strong>de</strong> <strong>problema</strong>.<br />

PMBOK: Guía <strong>de</strong> Fundamentos para la Dirección <strong>de</strong> Proyectos, por sus siglas en inglés<br />

RSMU: Recocido Simulado Multiobjetivo <strong>de</strong> Ulungu<br />

RSMMC: Recocido Simulado Multiobjetivo Multicaso<br />

79


Anexos<br />

Anexo 1 Encuesta a especi<strong>al</strong>ista informáticos<br />

La presente encuesta tiene como objetivo recopilar información re<strong>al</strong> que permita <strong>de</strong>mostrar la<br />

aplicabilidad <strong>de</strong> un mo<strong>de</strong>lo que sirve <strong>de</strong> apoyo <strong>al</strong> proceso <strong>de</strong> asignación <strong>de</strong> recursos humanos a<br />

equipos <strong>de</strong> proyectos <strong>de</strong> software. Necesitamos que nos brin<strong>de</strong> información referida a las competencias<br />

que posee, la experiencia en el <strong>de</strong>sempeño <strong>de</strong> roles, la carga <strong>de</strong> trabajo y la compatibilidad con el resto<br />

<strong>de</strong> la organización.<br />

1. Seleccione el nivel que usted consi<strong>de</strong>ra posee en las siguientes competencias.<br />

Competencias Niveles<br />

Competencias genéricas 1-mínimo 2-regular 3-se comporta bien<br />

Trabajo en equipo y cooperación<br />

Capacidad <strong>de</strong> análisis<br />

Capacidad <strong>de</strong> planificar y organizar<br />

80<br />

4excelente<br />

Compromiso con la organización<br />

Comunicación<br />

Competencias técnicas<br />

Lenguaje <strong>de</strong> programación<br />

1-conoce 2-tiene habilidad 3-conoce y ejecuta bien 4-experto<br />

Java<br />

C++<br />

Delphi<br />

ASP<br />

C#<br />

PHP<br />

Otros (Menciónelos)<br />

Gestor <strong>de</strong> base <strong>de</strong> datos<br />

MySQL<br />

SQLServer<br />

Postgres<br />

Oracle<br />

Otros (Menciónelos)


Tecnología<br />

J2EE<br />

.NET<br />

Otros (Menciónelos)<br />

2. Diga la cantidad <strong>de</strong> proyectos en los que ha <strong>de</strong>sempeñado los siguientes roles y ev<strong>al</strong>ué su<br />

<strong>de</strong>sempeño promedio siguiendo la siguiente esc<strong>al</strong>a: M-M<strong>al</strong>, R-Regular, B-Bien, E-Excelente.<br />

Roles Experiencia (Cantidad <strong>de</strong> proyectos) Ev<strong>al</strong>uación (M, R, B, E)<br />

Jefe <strong>de</strong> Proyecto<br />

Arquitecto<br />

An<strong>al</strong>ista<br />

Diseñador<br />

Programador<br />

Probador<br />

Documentador<br />

Diseñador <strong>de</strong> BD<br />

Gestor <strong>de</strong> configuración<br />

Especi<strong>al</strong>ista <strong>de</strong> c<strong>al</strong>idad<br />

3. Diga cómo consi<strong>de</strong>ra que es su carga <strong>de</strong> trabajo:<br />

__ Muy <strong>al</strong>ta ___ Alta ___ Media ___ Baja<br />

4. Diga la cantidad <strong>de</strong> trabajadores con los que se consi<strong>de</strong>ra incompatible en la organización (Tenga<br />

en cuenta específicamente los trabajadores que puedan formar parte <strong>de</strong> su equipo <strong>de</strong> trabajo):<br />

____<br />

81


Anexo 2. Roles invariantes y competencias requeridas para su <strong>de</strong>sempeño. Nivel <strong>de</strong> importancia <strong>de</strong><br />

cada competencia para el rol (Extraído <strong>de</strong> (André 2009))<br />

82


Anexo 3. Resultados obtenidos en la aplicación <strong>de</strong> las encuestas respecto a las competencias técnicas<br />

y genéricas en el CITI<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

83


Anexo 4. Resultados obtenidos en la aplicación <strong>de</strong> las encuestas respecto a las competencias técnicas<br />

y genéricas en Softel<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

84


Anexo 5. Resultados obtenidos en la aplicación <strong>de</strong> las encuestas respecto a la experiencia en el<br />

<strong>de</strong>sempeño <strong>de</strong> roles en Softel y el CITI<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

85


Anexo 6. Resultados obtenidos en la aplicación <strong>de</strong> las encuestas respecto a la carga <strong>de</strong> trabajo en<br />

Softel y el CITI<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

86


Anexo 7. Resultados obtenidos en la aplicación <strong>de</strong> las encuestas respecto a la cantidad <strong>de</strong><br />

incompatibilida<strong>de</strong>s entre los trabajadores en Softel y el CITI<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

87


Anexo 8. Resultado <strong>de</strong>l procesamiento <strong>de</strong>l Test <strong>de</strong> Belbin (Extraído <strong>de</strong> (2007; André 2009))<br />

Anexo 9. Análisis <strong>de</strong> preferencia y rechazo por cada dimensión (Extraído <strong>de</strong> (André 2009))<br />

88


Anexo 10. V<strong>al</strong>ores <strong>de</strong> cobertura para el escenario 1<br />

Escenario 1 CITI<br />

GRASP<br />

+<br />

<strong>Algoritmos</strong> ECEMO ECEMOR ECEMODist BTM RSMU RSMMC ECEMO<br />

89<br />

GRASP +<br />

ECEMOR<br />

GRASP +<br />

ECEMODist<br />

GRASP<br />

+ BTM<br />

GRASP<br />

+<br />

RSMU<br />

GRASP<br />

+<br />

RSMMC<br />

ECEMO 0.0000 0.1429 0.1429 0.1429 0.0000 0.1429 0.1429 0.1429 0.1429 0.0000 0.0000 0.1429<br />

ECEMOR 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000<br />

ECEMODist 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000<br />

BTM 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000<br />

RSMU 0.2857 0.2857 0.2857 0.2857 0.0000 0.2857 0.2857 0.2857 0.2857 0.1429 0.1429 0.2857<br />

RSMMC 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000<br />

GRASP +<br />

ECEMO 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000<br />

GRASP +<br />

ECEMOR 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000<br />

GRASP +<br />

ECEMODist 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000<br />

GRASP +<br />

BTM 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.0000 0.2000 0.2000<br />

GRASP +<br />

RSMU 0.5714 0.7143 0.7143 0.7143 0.5714 0.7143 0.7143 0.7143 0.7143 0.2857 0.0000 0.7143<br />

GRASP +<br />

RSMMC 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000<br />

Escenario 1 Softel<br />

GRASP<br />

+<br />

<strong>Algoritmos</strong> ECEMO ECEMOR ECEMODist BTM RSMU RSMMC ECEMO<br />

GRASP +<br />

ECEMOR<br />

GRASP +<br />

ECEMODist<br />

GRASP<br />

+ BTM<br />

GRASP<br />

+<br />

RSMU<br />

GRASP<br />

+<br />

RSMMC<br />

ECEMO 0.0000 0.1000 0.1000 0.1000 0.1000 0.1000 0.1000 0.1000 0.1000 0.0000 0.1000 0.1000<br />

ECEMOR 0.2000 0.0000 0.2000 0.2000 0.2000 0.2000 0.0000 0.0000 0.2000 0.0000 0.2000 0.0000<br />

ECEMODist 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000<br />

BTM 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000<br />

RSMU 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000<br />

RSMMC<br />

GRASP +<br />

0.2500 0.2500 0.2500 0.2500 0.2500 0.0000 0.2500 0.2500 0.2500 0.2500 0.2500 0.2500<br />

ECEMO<br />

GRASP +<br />

0.4286 0.1429 0.4286 0.4286 0.4286 0.4286 0.0000 0.0000 0.4286 0.0000 0.4286 0.0000<br />

ECEMOR<br />

GRASP +<br />

0.4286 0.1429 0.4286 0.4286 0.4286 0.4286 0.0000 0.0000 0.4286 0.0000 0.4286 0.0000<br />

ECEMODist<br />

GRASP +<br />

0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000<br />

BTM<br />

GRASP +<br />

0.1538 0.1538 0.1538 0.1538 0.1538 0.1538 0.1538 0.1538 0.1538 0.0000 0.1538 0.1538<br />

RSMU<br />

GRASP +<br />

0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000<br />

RSMMC 0.4286 0.1429 0.4286 0.4286 0.4286 0.4286 0.0000 0.0000 0.4286 0.0000 0.4286 0.0000


Anexo 11. V<strong>al</strong>ores <strong>de</strong> cobertura para el escenario 2<br />

Escenario 2 CITI<br />

GRASP<br />

+<br />

<strong>Algoritmos</strong> ECEMO ECEMOR ECEMODist BTM RSMU RSMMC ECEMO<br />

90<br />

GRASP<br />

+<br />

ECEMOR<br />

GRASP +<br />

ECEMODist<br />

GRASP<br />

+ BTM<br />

GRASP<br />

+<br />

RSMU<br />

GRASP +<br />

RSMMC<br />

ECEMO 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000<br />

ECEMOR 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000<br />

ECEMODist 0.3333 0.3333 0.0000 0.3333 0.3333 0.3333 0.0000 0.0000 0.3333 0.0000 0.3333 0.0000<br />

BTM 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000<br />

RSMU 1.0000 1.0000 0.6667 1.0000 0.0000 1.0000 0.6667 0.6667 1.0000 0.3333 1.0000 0.6667<br />

RSMMC 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000<br />

GRASP +<br />

ECEMO 0.3333 0.3333 0.3333 0.3333 0.3333 0.3333 0.0000 0.0000 0.3333 0.0000 0.3333 0.0000<br />

GRASP +<br />

ECEMOR 0.3333 0.3333 0.3333 0.3333 0.3333 0.3333 0.0000 0.0000 0.3333 0.0000 0.3333 0.0000<br />

GRASP +<br />

ECEMODist 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000<br />

GRASP +<br />

BTM 0.6667 0.6667 0.6667 0.6667 0.6667 0.6667 0.6667 0.6667 0.6667 0.0000 0.6667 0.6667<br />

GRASP +<br />

RSMU 0.3333 0.3333 0.3333 0.3333 0.0000 0.3333 0.3333 0.3333 0.3333 0.3333 0.0000 0.3333<br />

GRASP +<br />

RSMMC 0.3333 0.3333 0.3333 0.3333 0.3333 0.3333 0.0000 0.0000 0.3333 0.0000 0.3333 0.0000<br />

Escenario 2 Softel<br />

GRASP<br />

+<br />

<strong>Algoritmos</strong> ECEMO ECEMOR ECEMODist BTM RSMU RSMMC ECEMO<br />

GRASP<br />

+<br />

ECEMOR<br />

GRASP +<br />

ECEMODist<br />

GRASP<br />

+ BTM<br />

GRASP<br />

+<br />

RSMU<br />

GRASP +<br />

RSMMC<br />

ECEMO 0.0000 0.2000 0.2000 0.2000 0.2000 0.0000 0.2000 0.2000 0.0000 0.2000 0.2000 0.2000<br />

ECEMOR 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000<br />

ECEMODist 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000<br />

BTM 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000<br />

RSMU 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000<br />

RSMMC 0.0000 0.2000 0.2000 0.2000 0.2000 0.0000 0.2000 0.2000 0.0000 0.2000 0.2000 0.2000<br />

GRASP +<br />

ECEMO 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000<br />

GRASP +<br />

ECEMOR 0.7500 0.7500 0.7500 0.7500 0.7500 0.7500 0.7500 0.0000 0.7500 0.0000 0.7500 0.7500<br />

GRASP +<br />

ECEMODist 0.0000 0.2000 0.2000 0.2000 0.2000 0.0000 0.2000 0.2000 0.0000 0.2000 0.2000 0.2000<br />

GRASP +<br />

BTM 0.5714 0.5714 0.5714 0.5714 0.5714 0.5714 0.5714 0.2857 0.5714 0.0000 0.5714 0.5714<br />

GRASP +<br />

RSMU 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000<br />

GRASP +<br />

RSMMC 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000


Anexo 12. V<strong>al</strong>ores <strong>de</strong> cobertura para el escenario 3<br />

Escenario 3 CITI<br />

GRASP<br />

+<br />

<strong>Algoritmos</strong> ECEMO ECEMOR ECEMODist BTM RSMU RSMMC ECEMO<br />

91<br />

GRASP<br />

+<br />

ECEMOR<br />

GRASP +<br />

ECEMODist<br />

GRASP<br />

+ BTM<br />

GRASP<br />

+<br />

RSMU<br />

GRASP +<br />

RSMMC<br />

ECEMO 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000<br />

ECEMOR 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000<br />

ECEMODist 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000<br />

BTM 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000<br />

RSMU 1.0000 1.0000 1.0000 1.0000 0.0000 1.0000 1.0000 1.0000 1.0000 0.0000 0.0000 1.0000<br />

RSMMC 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000<br />

GRASP +<br />

ECEMO 0.2500 0.2500 0.2500 0.2500 0.0000 0.2500 0.0000 0.2500 0.2500 0.0000 0.0000 0.2500<br />

GRASP +<br />

ECEMOR 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000<br />

GRASP +<br />

ECEMODist 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000<br />

GRASP +<br />

BTM 0.8333 0.8333 0.8333 0.8333 0.8333 0.8333 0.8333 0.8333 0.8333 0.0000 0.0000 0.8333<br />

GRASP +<br />

RSMU 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 0.0000 1.0000<br />

GRASP +<br />

RSMMC 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000<br />

Escenario 3 Softel<br />

GRASP GRASP<br />

GRASP<br />

+ + GRASP + GRASP + GRASP +<br />

<strong>Algoritmos</strong> ECEMO ECEMOR ECEMODist BTM RSMU RSMMC ECEMO ECEMOR ECEMODist + BTM RSMU RSMMC<br />

ECEMO 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000<br />

ECEMOR 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000<br />

ECEMODist 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000<br />

BTM 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000<br />

RSMU 1.0000 1.0000 1.0000 1.0000 0.0000 1.0000 1.0000 1.0000 1.0000 0.1429 0.7143 1.0000<br />

RSMMC 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000<br />

GRASP +<br />

ECEMO 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000<br />

GRASP +<br />

ECEMOR 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000<br />

GRASP +<br />

ECEMODist 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000<br />

GRASP +<br />

BTM 1.0000 1.0000 1.0000 1.0000 0.6250 1.0000 1.0000 1.0000 1.0000 0.0000 0.8750 1.0000<br />

GRASP +<br />

RSMU 1.0000 1.0000 1.0000 1.0000 0.1429 1.0000 1.0000 1.0000 1.0000 0.0000 0.0000 1.0000<br />

GRASP +<br />

RSMMC 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000


Anexo 13. V<strong>al</strong>ores <strong>de</strong> cobertura para el escenario 4<br />

Escenario 4 CITI<br />

GRASP<br />

+<br />

<strong>Algoritmos</strong> ECEMO ECEMOR ECEMODist BTM RSMU RSMMC ECEMO<br />

92<br />

GRASP<br />

+<br />

ECEMOR<br />

GRASP +<br />

ECEMODist<br />

GRASP<br />

+ BTM<br />

GRASP<br />

+<br />

RSMU<br />

GRASP +<br />

RSMMC<br />

ECEMO 0.0000 0.3776 0.3787 0.0000 0.0000 0.3776 0.3776 0.3776 0.3787 0.0000 0.0000 0.3776<br />

ECEMOR 0.0000 0.0000 0.0014 0.0000 0.0000 0.0000 0.0000 0.0000 0.0014 0.0000 0.0000 0.0000<br />

ECEMODist 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000<br />

BTM 0.9792 0.9792 0.9792 0.0000 0.0000 0.9792 0.9792 0.9792 0.9792 0.0000 0.0000 0.9792<br />

RSMU 1.0000 1.0000 1.0000 1.0000 0.0000 1.0000 1.0000 1.0000 1.0000 0.5556 0.7778 1.0000<br />

RSMMC 0.0034 0.0034 0.0034 0.0000 0.0000 0.0000 0.0027 0.0034 0.0034 0.0000 0.0000 0.0034<br />

GRASP +<br />

ECEMO 0.0016 0.0016 0.0016 0.0000 0.0000 0.0000 0.0000 0.0016 0.0016 0.0000 0.0000 0.0016<br />

GRASP +<br />

ECEMOR 0.0000 0.0000 0.0008 0.0000 0.0000 0.0000 0.0000 0.0000 0.0008 0.0000 0.0000 0.0000<br />

GRASP +<br />

ECEMODist 0.0000 0.0000 0.0007 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000<br />

GRASP +<br />

BTM 1.0000 1.0000 1.0000 1.0000 0.0000 1.0000 1.0000 1.0000 1.0000 0.0000 0.3333 1.0000<br />

GRASP +<br />

RSMU 1.0000 1.0000 1.0000 1.0000 0.1429 1.0000 1.0000 1.0000 1.0000 0.1429 0.0000 1.0000<br />

GRASP +<br />

RSMMC 0.0102 0.0102 0.0109 0.0000 0.0000 0.0102 0.0102 0.0102 0.0109 0.0000 0.0000 0.0000<br />

Escenario 4 Softel<br />

GRASP GRASP<br />

GRASP<br />

+ + GRASP + GRASP + GRASP +<br />

<strong>Algoritmos</strong> ECEMO ECEMOR ECEMODist BTM RSMU RSMMC ECEMO ECEMOR ECEMODist + BTM RSMU RSMMC<br />

ECEMO 0.0000 0.0256 0.0000 0.0085 0.0000 0.0000 0.0000 1.0000 0.0085 0.0000 0.0000 0.0427<br />

ECEMOR 0.0000 0.0000 0.0000 0.0175 0.0000 0.0000 0.0000 1.0000 0.0175 0.0000 0.0000 0.0351<br />

ECEMODist 0.1500 0.1500 0.0000 0.0143 0.0000 0.0000 0.1500 1.0000 0.0143 0.0000 0.0000 0.1643<br />

BTM 0.7778 0.7778 0.7222 0.0000 0.0000 0.7222 0.7778 1.0000 0.6111 0.0000 0.0000 0.7778<br />

RSMU 1.0000 1.0000 1.0000 1.0000 0.0000 1.0000 1.0000 1.0000 0.7500 0.1250 0.6250 1.0000<br />

RSMMC 0.2574 0.2574 0.0588 0.0588 0.0000 0.0000 0.2574 1.0000 0.0588 0.0000 0.0000 0.2574<br />

GRASP +<br />

ECEMO 0.0000 0.0342 0.0000 0.0256 0.0000 0.0000 0.0000 1.0000 0.0256 0.0000 0.0000 0.0684<br />

GRASP +<br />

ECEMOR 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000<br />

GRASP +<br />

ECEMODist 0.3889 0.3889 0.3333 0.0000 0.0000 0.3333 0.3889 1.0000 0.0000 0.0000 0.0000 0.5556<br />

GRASP +<br />

BTM 1.0000 1.0000 1.0000 1.0000 0.1818 1.0000 1.0000 1.0000 0.8182 0.0000 0.8182 1.0000<br />

GRASP +<br />

RSMU 1.0000 1.0000 1.0000 1.0000 0.4444 1.0000 1.0000 1.0000 0.5556 0.1111 0.0000 1.0000<br />

GRASP +<br />

RSMMC 0.0000 0.0000 0.0000 0.2712 0.0000 0.0000 0.0000 1.0000 0.2712 0.0000 0.0000 0.0000


Anexo 14. V<strong>al</strong>ores <strong>de</strong> cobertura para el escenario 5<br />

Escenario 5 CITI<br />

GRASP<br />

+<br />

<strong>Algoritmos</strong> ECEMO ECEMOR ECEMODist BTM RSMU RSMMC ECEMO<br />

93<br />

GRASP<br />

+<br />

ECEMOR<br />

GRASP +<br />

ECEMODist<br />

GRASP<br />

+ BTM<br />

GRASP<br />

+<br />

RSMU<br />

GRASP +<br />

RSMMC<br />

ECEMO 0.0000 0.0930 0.1395 0.0000 0.0000 0.1628 0.0233 0.1628 0.1628 0.0000 0.0000 0.1395<br />

ECEMOR 0.1026 0.0000 0.1538 0.0000 0.0000 0.2051 0.0000 0.1538 0.1538 0.0000 0.0000 0.1026<br />

ECEMODist 0.2182 0.2000 0.0000 0.0000 0.0000 0.2545 0.1636 0.2364 0.2364 0.0000 0.0000 0.2364<br />

BTM 1.0000 1.0000 1.0000 0.0000 0.7500 1.0000 1.0000 1.0000 1.0000 0.7500 0.7500 1.0000<br />

RSMU 1.0000 1.0000 1.0000 0.3125 0.0000 1.0000 1.0000 1.0000 1.0000 0.7500 0.8750 1.0000<br />

RSMMC 0.0541 0.0811 0.0270 0.0000 0.0000 0.0000 0.0270 0.0811 0.1081 0.0000 0.0000 0.1081<br />

GRASP +<br />

ECEMO 0.2353 0.2941 0.3137 0.0000 0.0000 0.3333 0.0000 0.3725 0.4510 0.0000 0.0000 0.3529<br />

GRASP +<br />

ECEMOR 0.1719 0.0000 0.0938 0.0000 0.0000 0.1719 0.0000 0.0000 0.2969 0.0000 0.0000 0.2344<br />

GRASP +<br />

ECEMODist 0.1000 0.1000 0.1000 0.0000 0.0000 0.1600 0.1000 0.1800 0.0000 0.0000 0.0000 0.0800<br />

GRASP +<br />

BTM 1.0000 1.0000 1.0000 0.4545 0.0000 1.0000 1.0000 1.0000 1.0000 0.0000 0.3636 1.0000<br />

GRASP +<br />

RSMU 1.0000 1.0000 1.0000 0.3846 0.0769 1.0000 1.0000 1.0000 1.0000 0.2308 0.0000 1.0000<br />

GRASP +<br />

RSMMC 0.1842 0.2632 0.3684 0.0000 0.0000 0.4211 0.0789 0.3947 0.3421 0.0000 0.0000 0.0000<br />

Escenario 5 Softel<br />

GRASP GRASP<br />

GRASP<br />

+ + GRASP + GRASP + GRASP +<br />

<strong>Algoritmos</strong> ECEMO ECEMOR ECEMODist BTM RSMU RSMMC ECEMO ECEMOR ECEMODist + BTM RSMU RSMMC<br />

ECEMO 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000<br />

ECEMOR 0.0897 0.0000 0.0897 0.0000 0.0000 0.0897 0.0897 0.0897 0.0897 0.0000 0.0000 0.0000<br />

ECEMODist 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000<br />

BTM 1.0000 1.0000 1.0000 0.0000 0.5000 1.0000 1.0000 1.0000 1.0000 0.8750 0.7500 1.0000<br />

RSMU 1.0000 1.0000 1.0000 0.1667 0.0000 1.0000 1.0000 1.0000 0.9167 0.8333 0.7500 1.0000<br />

RSMMC 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000<br />

GRASP +<br />

ECEMO 0.0233 0.0233 0.0233 0.0000 0.0000 0.0233 0.0000 0.0233 0.0000 0.0000 0.0000 0.0233<br />

GRASP +<br />

ECEMOR 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000<br />

GRASP +<br />

ECEMODist 0.7931 0.7931 0.7931 0.0000 0.0000 0.7931 0.7241 0.7931 0.0000 0.0000 0.0000 0.7931<br />

GRASP +<br />

BTM 1.0000 1.0000 1.0000 0.2500 0.2500 1.0000 1.0000 1.0000 1.0000 0.0000 0.2500 1.0000<br />

GRASP +<br />

RSMU 1.0000 1.0000 1.0000 0.4167 0.2500 1.0000 1.0000 1.0000 0.9167 0.5833 0.0000 1.0000<br />

GRASP +<br />

RSMMC 0.6000 0.6000 0.6000 0.0000 0.0000 0.6000 0.6000 0.6000 0.2833 0.0000 0.0000 0.0000

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!