La meta-heurística de optimización Harmony Search

16
La meta-heur´ ıstica de optimizaci´on Harmony Search Germ´ an Ricardo H¨ uttemann Arza [email protected] Juan Gabriel Ricart Debernardi [email protected] Abril, 2010 Resumen La meta-heur´ ıstica Harmony Search fue desarrollada por Geem et al. [7] en el 2001. A pesar de que es una meta-heur´ ıstica relativamente nueva, su efectividad y ventajas han sido demostrados en varias aplicaciones. Desde su aparici´ on, ha sido aplicada a varios problemas de optimizaci´ on en dis- tintas ´ areas de la ciencia e ingenier´ ıa. Los objetivos de este documento son presentar a esta meta-heur´ ıstica como una inspiraci´ on en la improvisaci´ on musical, analizar la estructura b´ asica del algoritmo detallando cada una de sus partes, resaltar las principales caracter´ ısticas que lo aventajan fren- te a otras meta-heur´ ısticas y, ofrecer un breve repaso al amplio espectro de aplicaciones al que fue sometido en tan poco tiempo. Palabras clave: Harmony search, optimizaci´ on, meta-heur´ ıstica, m´ usica, improvisaci´ on musical 1. Introducci´ on Los cient´ ıficos de la computaci´ on pueden inspirarse en cosas bastante ex- tra˜ nas para ayudar a solucionar algunos de los problemas matem´ aticos m´ as dif´ ıciles. Uno de esos problemas es la optimizaci´ on, y lo hacemos d´ ıa a d´ ıa, cuando intentamos ordenar las actividades de nuestra agenda o cuando busca- mos el camino m´ as corto al trabajo. La optimizaci´ on trata de encontrar la mejor soluci´ on: decidirse por la mejor opci´ on de entre una variedad de opciones. La optimizaci´ on es importante tambi´ en a nivel comercial. Por ejemplo, ¿c´ omo conectar´ ıamos todas las casas en una nueva ciudad con la m´ ınima cantidad de cableado el´ ectrico o la menor cantidad de tuber´ ıas de alcantarillado? ¿Cu´ al es la mejor ruta que los camiones de entrega de una empresa deber´ ıan tomar para recorrer todos los puntos de entrega con la m´ ınima distancia recorrida (tratando de evitar la autopista en horas pico)? Resolver estos problemas no es sencillo, particularmente cuando se tienen un enorme n´ umero de opciones para elegir. Ser´ ıa muy extra˜ no buscar resolver el problema de la optimizaci´ on con la usica, y en particular con la improvisaci´ on del jazz, pero es exactamente en este fen´ omeno en el que la meta-heur´ ıstica llamada “Harmony Search” se inspira. 1

Transcript of La meta-heurística de optimización Harmony Search

La meta-heurıstica de optimizacion

Harmony Search

German Ricardo Huttemann [email protected]

Juan Gabriel Ricart [email protected]

Abril, 2010

Resumen

La meta-heurıstica Harmony Search fue desarrollada por Geem et al. [7]en el 2001. A pesar de que es una meta-heurıstica relativamente nueva, suefectividad y ventajas han sido demostrados en varias aplicaciones. Desdesu aparicion, ha sido aplicada a varios problemas de optimizacion en dis-tintas areas de la ciencia e ingenierıa. Los objetivos de este documento sonpresentar a esta meta-heurıstica como una inspiracion en la improvisacionmusical, analizar la estructura basica del algoritmo detallando cada unade sus partes, resaltar las principales caracterısticas que lo aventajan fren-te a otras meta-heurısticas y, ofrecer un breve repaso al amplio espectrode aplicaciones al que fue sometido en tan poco tiempo.

Palabras clave: Harmony search, optimizacion, meta-heurıstica, musica,improvisacion musical

1. Introduccion

Los cientıficos de la computacion pueden inspirarse en cosas bastante ex-tranas para ayudar a solucionar algunos de los problemas matematicos masdifıciles. Uno de esos problemas es la optimizacion, y lo hacemos dıa a dıa,cuando intentamos ordenar las actividades de nuestra agenda o cuando busca-mos el camino mas corto al trabajo. La optimizacion trata de encontrar la mejorsolucion: decidirse por la mejor opcion de entre una variedad de opciones.

La optimizacion es importante tambien a nivel comercial. Por ejemplo, ¿comoconectarıamos todas las casas en una nueva ciudad con la mınima cantidad decableado electrico o la menor cantidad de tuberıas de alcantarillado? ¿Cual esla mejor ruta que los camiones de entrega de una empresa deberıan tomar pararecorrer todos los puntos de entrega con la mınima distancia recorrida (tratandode evitar la autopista en horas pico)? Resolver estos problemas no es sencillo,particularmente cuando se tienen un enorme numero de opciones para elegir.

Serıa muy extrano buscar resolver el problema de la optimizacion con lamusica, y en particular con la improvisacion del jazz, pero es exactamente eneste fenomeno en el que la meta-heurıstica llamada “Harmony Search” se inspira.

1

Figura 1: Analogıa entre improvisacion musical y optimizacion

Cuando varios musicos de jazz tocan juntos, cada uno elige las notas musicalesen sus instrumentos intentando alcanzar la mejor armonıa conjuntamente con elresto del grupo. A medida que trascurre el tiempo, y recordando la musica quehan tocado anteriormente, los musicos mudan de nota en nota para ir haciendomejor y mejor musica. En efecto, los musicos estan haciendo una optimizacion.Cada uno de ellos debe elegir las notas mas adecuadas para sus instrumentosen el orden adecuado para hacer que la armonıa del grupo sea la mejor posible.

El resto del documento esta organizado como sigue. En la seccion 2, se explicadetalladamente el algoritmo de la meta-heurıstica, haciendo primero un contras-te con la improvisacion musical y, luego, describiendo cada parte del algoritmo.La seccion 3, realiza una descripcion de los componentes meta-heurısticos pre-sentes en Harmony Search (HS), se destacan las ventajas de esta meta-heurısticay se realiza una comparacion de la misma con otras meta-heurısticas amplia-mente conocidas, resaltando diferencias y similitudes. La seccion 4, describe dosejemplos de aplicaciones de HS en el campo de la ingenierıa. Finalmente, en laseccion 5, se presenta una discusion del documento y sus principales aportes.

2. El algoritmo de Harmony Search

Antes de introducir el algoritmo de HS y cada una de sus partes, haremos,en la seccion 2.1 un breve contraste entre los procesos de improvisacion musicaly optimizacion. Recien luego, en la subseccion 2.2, discutiremos la estructuradel algoritmo junto a cada una de sus partes.

2.1. Improvisacion musical y optimizacion

El algoritmo de HS es una tecnica de optimizacion inspirada originalmenteen el fenomeno musical del jazz. La figura 1 muestra la analogıa entre la im-provisacion musical del jazz y la optimizacion. En vez de tener musicos con susrespectivos instrumentos ejecutando notas musicales (Do, Mi, Sol) como en laimprovisacion, en la optimizacion se tienen variables de decision de una funcionobjetivo a optimizar. Cada una de estas variables de decision tiene un rangode valores, tal como cada instrumento tiene un rango de tonos a ejecutar. Enla improvisacion, cada musico ejecuta un tono dentro del rango posible, cons-truyendo juntos un vector de armonıas (solucion). Si todos los tonos hacen unabuena armonıa, esa experiencia es almacenada en la memoria de cada uno de

2

Cuadro 1: Comparacion entre improvisacion musical y optimizacionFactor de Comparacion Improvisacion Musical Optimizacion

Mejor estado Armonıa perfecta Optimo globalEstimado por Estandar estetico Funcion objetivoEstimado con Tonos de instrumentos Valores de variablesUnidad de procesamiento Cada practica Cada Iteracion

Figura 2: Estructura de la memoria de armonıas

los musicos, y la posibilidad de obtener una buena armonıa aumenta la proximavez. Similarmente, en la optimizacion, cada variable de decision toma un valordentro del rango posible, construyendo juntas un vector solucion. Si todos losvalores de las variables de decision hacen una buena solucion, esa experienciaes almacenada en la memoria de cada variable, y la posibilidad de obtener unabuena solucion aumenta la proxima vez. Una armonıa musical alcanzada por elgrupo de musicos en un determinado momento de la improvisacion corresponde,en el contexto de la optimizacion, a una solucion en una determinada iteraciondel proceso de optimizacion.

Una armonıa musical es una combinacion de sonidos considerados agradablesdesde el punto de vista estetico (estandar estetico [12,21]). Los musicos buscanun mejor estado (armonıa perfecta) para sus armonıas musicales basandose en laestimacion estetica, tal como el proceso de optimizacion busca un mejor estado(optimo global—mınimo costo o error, maximo beneficio o eficiencia) basandoseen la evaluacion de la funcion objetivo. Los sonidos para una mejor estimacionestetica pueden ir siendo mejorados practica tras practica a lo largo del tiempo,tal como los valores para una mejor evaluacion de la funcion objetivo puedenir siendo mejorados iteracion tras iteracion. Una breve presentacion de estasobservaciones es mostrada en el cuadro 1.

La figura 2 muestra la estructura de la memoria de armonıas (HarmonyMemory, HM), que es el nucleo del algoritmo de HS. Consideremos un trıode jazz compuesto por saxofon, doble bajo y guitarra. Existe cierta cantidad detonos preferidos en la memoria de cada uno de los musicos: saxofonista, {Do, Mi,Sol}; doble bajista, {Si, Sol, Re}; y guitarrista, {La, Fa, Do}. Si el saxofonistaelige aleatoriamente {Sol} de su memoria {Do, Mi, Sol}, el doble bajista elige{Si} de {Si, Sol, Re}, y el guitarrista elige {Do} de {La, Fa, Do}, se forma lanueva armonıa {Sol, Si, Do}. Si esta armonıa es mejor que la peor existente en

3

HM, entonces la nueva armonıa reemplaza a la peor. Este proceso es repetidohasta que la armonıa perfecta es alcanzada.

En una optimizacion real, cada musico es reemplazado por cada variable dedecision, y los tonos preferidos por valores preferidos de las variables. Si cadavariable representa el diametro de una canerıa entre dos nodos, en una red dedistribucion de agua, cada una tiene un cierto numero de diametros preferidos.Si la primera variable elige {100mm} de {100mm, 300mm, 500mm}, la segun-da elige {500mm} de {700mm, 500mm, 200mm}, y la tercera elige {400mm}de {600mm, 400mm, 100mm}, esos valores hacen un nuevo vector solucion,{100mm, 500mm, 400mm}. Si este vector solucion es mejor que el peor vectoren HM, entonces el nuevo vector reemplaza al peor. Este proceso se repite hastaque se cumpla el criterio de terminacion del algoritmo.

2.2. Estructura del algoritmo

Para explicar el algoritmo de HS con mayor detalle, primero vamos a idealizarel proceso de improvisacion realizado por un musico experto. Cuando un musicoesta improvisando, puede elegir entre tres opciones: (1) ejecutar cualquier tonode su memoria; (2) ejecutar un tono adyacente a cualquier tono de su memoria;(3) ejecutar un tono aleatorio de todo el rango posible de tonos. Similarmente,cuando cada variable de decision elige un valor, tambien tiene tres opciones: (1)elegir cualquier valor de la memoria; (2) elegir un valor adyacente a cualquiervalor de la memoria; (3) elegir un valor aleatorio de todo el rango posible devalores. Geem et al. formalizaron estas tres opciones para crear esta nueva meta-heurıstica en el 2001, y los tres correspondientes componentes fueron: uso oconsideracion de la memoria, ajuste de tono y aleatoriedad [7]. Las tres opcionesmencionadas anteriormente son aplicadas en el algoritmo de HS utilizando dosparametros: grado de consideracion o uso de la memoria (HM Considering Rate,HMCR) y grado de ajuste de tono (Pitch Adjusting Rate, PAR).

Habiendo explicado los tres componentes principales del algoritmo HS: lamemoria (HM), el grado de consideracion de la memoria (HMCR) y el gradode ajuste de tono (PAR), en las siguientes subsecciones pasaremos a explicar endetalle cada uno de los pasos que componen el algoritmo HS. El pseudo-codigodel algoritmo puede ser visto en el algoritmo 1.

2.2.1. Formulacion del problema

El algoritmo HS fue ideado para resolver problemas de optimizacion. Portanto, de manera a aplicar HS, el problema debe ser formulado como un pro-blema de optimizacion, teniendo una funcion objetivo y restricciones:

f(x) = f(x1, x2, . . . , xn) (1)

Sujeto a

hi(x) = 0; i = 1, . . . , p; (2)

gi(x) ≥ 0; i = 1, . . . , q. (3)

xi ∈ Xi = {xi(1), xi(2), . . . , xi(Ki)} o xLi ≤ xi ≤ xU

i (4)

4

Algorithm 1 Pseudo-codigo del Algoritmo Harmony Search

Definir funcion objetivo f(x) = f(x1, x2, . . . , xn)Definir parametros HMCR,PAR,HMS,MI, FWInicializar HMwhile no se cumpla criterio de terminacion do

for cada variable xi doif U(0, 1) < HMCR then

xnuevoi ← xj

i donde j ← int(U(0, 1) ∗HMS) + 1if U(0, 1) < PAR then

Actualizar xnuevoi con xi(k + m) o (xnuevo

i + ∆)end if

elsexnuevoi ← valor aleatorio

end ifend forif xnuevo es mejor que xpeor then

Reemplazar en HM a xpeor por xnuevo

end ifend whileEncontrar la mejor armonıa de HM

El algoritmo HS busca en todo el area de solucion de manera a encontrar elvector de solucion optimo x = (x1, x2, . . . , xn), que optimiza (minimiza o maxi-miza) la funcion objetivo de la ecuacion 1. Si el problema tiene condiciones deigualdad o desigualdad, estas pueden ser consideradas como restricciones en lasecuaciones 2 y 3. Si las variables de decision tienen valores discretos, el conjuntode valores posibles esta dado por xi ∈ Xi = {xi(1), xi(2), . . . , xi(Ki)}, dondeKi es la cantidad de valores en el rango de la variable i; y si las variables tienenvalores continuos, el conjunto de valores posibles esta dado por xL

i ≤ xi ≤ xUi .

El algoritmo HS basicamente considera solo la funcion objetivo. Sin embargo,si el vector solucion generado viola alguna restriccion: (1) el algoritmo descartala solucion; o (2) el algoritmo considera la solucion agregando una determinadapenalizacion al valor de la funcion objetivo. Tambien, HS puede ser aplicado aproblemas multi-objetivo, considerando el conjunto Pareto.

2.2.2. Configuracion de parametros

Una vez que la formulacion del problema esta listo, los parametros del algo-ritmo deben ser configurados con ciertos valores. Ademas de los dos parametrosya mencionados, HMCR y PAR, HS contiene otros parametros tales como: ta-mano de la memoria (HM size, HMS), cantidad maxima de improvisaciones oiteraciones (Maximum Improvisation, MI) y rango de variabilidad de tonos (FretWidth, FW [6]) que actuan conjuntamente con PAR en el ajuste de tonos.

El uso o consideracion de la memoria es importante porque asegura quebuenas soluciones sean consideradas como elementos de nuevas soluciones. Sieste parametro es muy bajo, solo algunas soluciones buenas son seleccionadas yla convergencia podrıa ser muy lenta. Si este parametro es extremadamente alto(cercano a 1), los valores de la memoria son mayormente usados, y los demasno son bien explorados, resultando en soluciones no muy buenas. Por tanto, de

5

manera a usar la memoria efectivamente, HMCR = 0,7 ∼ 0,95 [21].El ajuste de tonos es similar al operador de mutacion en los algoritmos

geneticos. Un valor bajo para PAR conjuntamente con un valor estrecho paraFW puede hacer que la convergencia de HS sea lenta debido a la limitacion en laexploracion a solo una pequena porcion de todo el espacio de busqueda. Por elotro lado, un valor muy alto para PAR conjuntamente con un ancho FW puedecausar que las soluciones se dispersen alrededor de algunos optimos potencialescomo en la busqueda aleatoria. Debido a estas razones, usualmente, se utilizaPAR = 0,1 ∼ 0,5 [21].

A pesar de que, originalmente, son usados valores fijos para todos los parame-tros, algunos investigadores han propuesto valores variables. Mahdavi et al. [13]sugirieron que PAR crezca linealmente y que FW decrezca exponencialmente encada iteracion. Mukhopadhyay et al. [14] sugirieron que FW sea la desviacionestandar de la poblacion actual cuando HMCR es cercano a 1. Ademas, otrosinvestigadores han propuesto teorıas de parametros adaptativos que permiten aHS tener automaticamente los mejores valores en cada iteracion [5, 16].

2.2.3. Inicializacion de la memoria

Despues de que el problema fue formulado y los parametros fueron confi-gurados apropiadamente, se realiza un proceso de configuracion aleatorio de lamemoria.

En una orquesta, luego de que el oboe ejecuta la nota A (usualmente A440),otros instrumentos aleatoriamente ejecutan cualquier tono del rango de tonosejecutables. De la misma manera, el algoritmo HS inicialmente improvisa variasarmonıas aleatoriamente. El numero de armonıas debe ser por lo menos iguala HMS. Sin embargo, puede ser mayor, como el doble o el triple [2]. Luego, lasHMS mejores armonıas son seleccionadas. HM puede ser considerada como unamatriz:

HM =

x11 x1

2 · · · x1n f(x1)

x21 x2

2 · · · x2n f(x2)

......

. . ....

...xHMS1 xHMS

2 · · · xHMSn f(xHMS)

(5)

2.2.4. Improvisacion

Como habıamos mencionado en la subseccion 2.2 existen tres opciones entrelas que un musico o el algoritmo HS pueden elegir a la hora de realizar unaimprovisacion:

1. Seleccion aleatoria: Cuando HS determina el valor xnuevoi para la nue-

va armonıa xnuevo = (xnuevo1 , xnuevo

2 , . . . , xnuevon ), elige aleatoriamente

un valor de todo el rango posible de valores {xi(1), xi(2), . . . , xi(Ki)} oxLi ≤ xi ≤ xU

i con una probabilidad igual a (1 - HMCR).

2. Consideracion de la memoria: Cuando HS determina el valor xnuevoi ,

elige aleatoriamente el valor xji de HM (j = 1, 2, . . . ,HMS) con una pro-

babilidad igual a HMCR. El ındice j puede ser calculado utilizando unadistribucion uniforme U(0, 1):

j ← int(U(0, 1) ∗HMS) + 1 (6)

6

3. Ajuste de tono: Despues de que el valor xnuevoi fue elegido aleatoriamente

de HM en el proceso explicado anteriormente, puede ser ajustado a valoresvecinos sumando o restando cierta cantidad, con probabilidad PAR. Paravariables discretas, si xi(k) = xnuevo

i , el ajuste de tono es xi(k+m), dondem ∈ {−1, 1}. Para variables continuas, el ajuste de tono es xnuevo

i + ∆donde ∆ = U(−1, 1) ∗ FW (i).

Las tres operaciones basicas mencionadas anteriormente pueden ser expre-sadas como sigue:

xnuevoi ←

{xi ∈ {xi(1), xi(2), . . . , xi(Ki)}xi ∈ [xL

i , xUi ]

c.p. (1−HMCR)

xi ∈ HM = {x1i , x

2i , . . . , x

HMSi } c.p. HMCR ∗ (1− PAR){

xi(k + m) si xi(k) ∈ HMxi + ∆ si xi ∈ HM

c.p. HMCR ∗ PAR

(7)Especialmente para variables discretas, el algoritmo HS tiene la siguiente

derivada parcial estocastica que consiste en tres terminos tales como seleccionaleatoria, consideracion de la memoria y ajuste de tono [4]:

∂f

∂xi=

1

Ki(1−HMCR)+

n(xi(k))

HMSHMCR(1−PAR)+

n(xi(k + m))

HMSHMCR·PAR

(8)donde n(x) indica la cantidad de veces que x aparece en HM.

Ademas, el algoritmo HS puede considerar la existencia de relacion entrevariables (musicos) especıficas, pudiendo determinar el nuevo valor basandoseen la relacion existente [3].

2.2.5. Actualizacion de la memoria

Si la nueva armonıa xnuevo es mejor, en terminos del valor de la funcionobjetivo, que la peor armonıa en HM, la nueva armonıa es incluıda en HM y lapeor es excluıda:

(xnuevo ∈ HM) ∧ (xpeor /∈ HM) (9)

Sin embargo, para aportar a la diversidad de armonıas en HM, otras ar-monıas (en terminos de menor similitud) pueden ser consideradas. Tambienpuede tenerse en consideracion el numero maximo de armonıas identicas en HMpara prevenir una convergencia temprana.

Si la nueva armonıa xnuevo es mejor que todas las armonıas de HM, sepuede considerar un proceso adicional llamado alteracion musical. En musica,una alteracion permite a una nota cambiar a un tono que no es miembro deuna escala, pudiendo la nota subir o bajar de su tono normal [18]. De la mismamanera, HS puede volver a ajustar el tono de cada nota de la nueva armonıa siesta es la mejor de todas, lo que puede resultar en una solucion aun mejor:

xnuevoi ←

{xi(k ±m) para variables discretasxi ±∆ para variables continuas

, i = 1, . . . , n (10)

7

2.2.6. Terminacion

Si HS satisface el criterio de terminacion (por ejemplo, ha alcanzado MIiteraciones), el proceso es terminado. En otro caso, HS improvisa de nuevo otranueva armonıa.

2.2.7. Cadenza

La cadenza, normalmente, se refiere a una parte del concierto en la cual laorquesta deja de tocar, dejando que el solista toque solo, pudiendo ser escrito oimprovisado, dependiendo de lo que el compositor especifique. Esto normalmenteocurre al final del primer movimiento, aunque puede ser en cualquier punto delconcierto [19].

En el contexto del algoritmo HS, cadenza puede implicar el proceso queocurre al final del computo. En este proceso, HS retorna la mejor armonıa quehaya sido encontrada, disponible en HM.

3. Caracterısticas meta-heurısticas de HarmonySearch

Si analizamos el algoritmo Harmony Search dentro del contexto de los com-ponentes principales de las meta-heurısticas e intentamos compararlo con otrosalgoritmos meta-heurısticos, podemos identificar su forma particular de mane-jar la intensificacion y diversificacion, y, probablemente entender por que es unalgoritmo meta-heurıstico muy exitoso.

En el algoritmo HS, la diversificacion esta esencialmente controlada por elajuste de tono y la aleatoriedad —aquı tenemos dos sub-componentes de ladiversificacion que pueden constituirse en un factor importante de la alta efi-ciencia del algoritmo HS. El primer sub-componente consistente en tocar unnuevo tono (o generar un nuevo valor) a traves de la aleatoriedad, lo dejarıacomo mınimo en el mismo nivel de eficiencia que los otros algoritmos que mane-jan la aleatoriedad. Sin embargo, un componente adicional de la diversificacionen HS consiste en la operacion de ajuste de tono, realizada con probabilidadPAR. El ajuste de tono se lleva a cabo variando el tono dentro de un rango detonos dado. Una cantidad aleatoria pequena se agrega o se substrae de un tonoexistente (o solucion) almacenado en HM. Esencialmente, el ajuste de tono esun proceso de refinamiento de soluciones locales. Tanto la consideracion de lamemoria como el ajuste de tono aseguran que se retengan las buenas solucioneslocales mientras que la aleatoriedad hace que el algoritmo explore el espacio debusqueda global eficientemente. La sutileza se encuentra en el hecho de contro-lar mediante parametros el grado de intensificacion y diversificacion alrededorde las buenas soluciones. La aleatoriedad explora el espacio de busquedas masamplia y eficientemente mientras que el ajuste de tono asegura que la solucionrecien generada sea lo suficientemente buena o no muy distante de solucionesbuenas existentes.

La intensificacion del algoritmo HS esta representado por la razon de acep-tacion de memoria armonica HMCR. Una razon de aceptacion armonica altasignifica que las buenas soluciones de la historia/memoria son mas probablesde ser seleccionadas o heredadas. Esto es equivalente a un cierto grado de eli-

8

tismo. Obviamente, si la razon de aceptacion es muy baja, las soluciones van aconverger mas lentamente. Como se menciono antes, la intensificacion se mejoramediante el ajuste de tono controlado. Tales interacciones entre varios compo-nentes pueden ser otro factor importante del exito del algoritmo HS sobre otrosalgoritmos.

Ademas, la estructura del algoritmo HS es relativamente mas sencilla. Estaventaja hace que sea muy versatil combinar el algoritmo HS con otros algoritmosmeta-heurısticos [15]. En lo que respecta a los parametros del algoritmo, existeevidencia que sugiere que HS es menos sensible a los parametros elegidos, lo quesignifica que no tendrıamos que hacer un ajuste fino de estos parametros paraobtener soluciones de calidad.

Mas aun, el algoritmo HS es una meta-heurıstica basada en poblacion, loque significa que un grupo de armonıas pueden ser usadas en paralelo. La para-lelizacion apropiada aporta mejor rendimiento y eficiencia mas alta. La buenacombinacion del paralelismo con el elitismo, ası como un balance cuidadoso dela intensificacion y la diversificacion son la clave para el exito del algoritmo HS.

3.1. Ventajas de Harmony Search

El algoritmo de Harmony Search tiene los siguientes meritos [20]:

HS no requiere gradientes diferenciales, por lo tanto puede considerar tantofunciones discontinuas como continuas.

HS puede manejar tanto variables discretas como continuas.

HS no requiere configuracion especial de valores iniciales para las variables.

HS esta libre de divergencias.

HS puede escaparse de los optimos locales.

HS puede superar la desventaja de la teorıa del ladrillo de GA, que fun-ciona bien unicamente si se considera cuidadosamente la relacion entre lasvariables del cromosoma. Si las variables vecinas en un cromosoma tienenuna relacion mas debil que las variables remotas, la teorıa de los ladrillospuede no funcionar bien debido a la operacion de cruce. Sin embargo, HSconsidera explıcitamente el relacionamiento entre variables usando opera-ciones de conjunto [3].

HS tiene una derivada estocastica novedosa aplicada a variables discretas,que usa las experiencias del musico como direccion de busqueda.

Ciertos HS no requieren parametros del algoritmo, tales como HMCR yPAR, ası los usuarios novatos pueden correr el algoritmo facilmente.

3.2. Similitudes de HS y otras meta-heurısticas

Harmony Search incorpora, por su naturaleza, la estructura de los metodosheurısticos:

Preserva el historial de vectores pasados de forma similar al Tabu Search [7].

9

Es capaz de ir cambiando la razon de variacion (Harmony Memory Con-sidering Rate) desde que empieza hasta cuando termina asemejandose alSimulated Annealing [7].

Maneja varios vectores simultaneamente de forma similar al AlgoritmoGenetico [7].

Cuando HS calcula el valor de xnuevoi , elige aleatoriamente cualquier valor

xji de HM = {x1

i , . . . , xHMSi } con probabilidad HMCR. El ındice j puede

ser calculado usando una distribucion uniforme U(0, 1):

j ← int(U(0, 1) ·HMS) + 1

Sin embargo, podemos usar otras distribuciones. Por ejemplo, si usamos[U(0, 1)]2 HS elige con mas frecuencia valores menores de j. Si los valo-res de la funcion objetivo se ordenan por j, HS se comportara de formaparecida al algoritmo de enjambre de partıculas [6].

3.3. Diferencias entre HS y otras meta-heurısticas

La principal diferencia entre GA y HS consiste en que HS genera un nuevovector a partir de vectores existentes (todas las armonıas en HarmonyMemory), mientras que GA genera un nuevo vector solamente a partir dedos vectores existentes (los padres) [7].

HS no requiere la configuracion especial de valores iniciales para las varia-bles de decision, lo que lo ayuda a tener mayor flexibilidad y a encontrarmejores soluciones.

HS puede, independientemente, considerar a cada variable componente enun vector a medida que genera un nuevo vector, pero GA no puede porquedebe mantener la estructura de un gen [7].

4. Aplicaciones de Harmony Search

El algoritmo HS ha sido aplicado a varios problemas de optimizacion e in-genierıa que incluyen [5, 8]:

Problemas del mundo real:

• Composicion de musicas.

• El acertijo Sudoku.

• Tablas de tiempo.

• Planeamiento de tours.

• Logıstica.

Problemas de la ciencia de la computacion:

• Clustering de paginas web.

• Resumenes de texto.

10

• Enrutamiento en Internet.

• Seguimiento visual.

• Robotica.

Problemas de ingenierıa electrica:

• Transmision de energıa electrica.

• Deteccion foto-electrica.

• Diseno de sistemas de energıa.

• Optimizacion de inversores multi-nivel.

• Red de telefonıa celular.

Problemas de ingenierıa civil:

• Diseno estructurado.

• Diseno de de redes de agua.

• Calendarizacion de represas.

• Calibracion de modelos de inundacion.

• Administracion de aguas termales.

• Analisis de estabilidad de suelos.

• Conservacion ecologica.

• Enrutamiento de vehıculos.

Problemas de ingenierıa mecanica:

• Diseno de intercambio de calor.

• Diseno de tuberıas de calor para satelites.

• Amarres para estructuras alejadas de la costa.

Aplicaciones biologicas y medicas:

• Prediccion de estructuras RNA.

• Asistencia para audicion.

• Fısica medica.

En las secciones siguientes damos un breve repaso a dos problemas selectosy a como fueron planteados usando HS.

4.1. Problema de enrutamiento de vehıculos con ventanasde tiempo

El problema de enrutamiento de vehıculos (Vehicle Routing Problem, VRP)es un problema de optimizacion combinatorio que busca recoger, o simplementedar un servicio a clientes dispersos en un area, con una flota de vehıculos. Cadavehıculo tiene cierta capacidad de carga y cada cliente tiene cierta demanda.Ademas, existe uno o mas depositos y una matriz de distancia (longitud, costo,tiempo) entre clientes. En VRP, buscamos rutas optimas para vehıculos (dis-tancia mınima o cantidad de vehıculos mınima). El problema de enrutamiento

11

Figura 3: Diagrama de la red de enrutamiento para los autobuses escolares

de autobuses escolares (School Bus Routing Problem, SBRP) es un caso espe-cial del VRP. Desde la perspectiva de una escuela, SBRP intenta proveer a losestudiantes con un servicio de transporte eficiente y equitativo.

Un ejemplo de red a ser optimizada consiste en una parada de autobuses,una escuela, y diez autobuses como se muestra en la figura 3. Cada paradade autobus es requerida por una cierta cantidad de estudiantes pasajeros y eltiempo de viaje (en minutos) entre dos paradas se especifica en el enlace.

El objetivo del problema consiste en minimizar tanto la cantidad total deautobuses en operacion y el tiempo total de viaje. Ası, la formulacion de lafuncion objetivo para cumplir estas dos metas se basa en el calculo del costototal de operacion de los autobuses (en dolares), que esta determinado por:

Costo fijo de operacion por cada autobus (para minimizar la cantidad totalde autobuses en operacion).

Costo de enrutamiento (combustible, pago de salario al conductor, etc.)proporcional al tiempo que tarda cada autobus en llegar a la escuela (paraminimizar el tiempo de operacion de los autobuses).

Ademas, en el problema existen dos restricciones que tienen que mantenersesiempre:

Cantidad de estudiantes maxima que pueden abordar un autobus.

Una ventana de tiempo que establece el tiempo maximo que puede tardarun autobus en llevar a los estudiantes hasta la escuela.

A ambas restricciones se les asocia un costo (tambien en dolares) determi-nado de manera que cuando el algoritmo genera soluciones que no cumplan concualquiera de las dos restricciones, al costo total calculado por la funcion objeti-vo se le adiciona un valor proporcional al costo de no cumplir con la restriccionque se transgrede.

El algoritmo HS pudo encontrar el optimo global ($307980) con tan solo 1000improvisaciones (o evaluaciones de la funcion objetivo) examinando el espaciode busqueda del problema de 410(≈ 1,05 ∗ 106) [9]. Le llevo 6,6 segundos en unaCPU Intel de 233 MHz buscar en el 0,1 % del espacio total de soluciones.

Los resultados de HS tambien fueron examinados comparandolos con losde GA. De manera a comparar de forma justa a HS y GA, la cantidad de

12

evaluaciones de la funcion objetivo y la cantidad de corridas fueron las mismasen ambos algoritmos. En HS, la cantidad de evaluaciones de la funcion fuede 1000 y la cantidad de corridas fue de 20, para distintos HMS, HMCR yPAR. En GA, la cantidad de evaluaciones de la funcion fue de 1000 (= tamanode la poblacion × cantidad de generaciones) y la cantidad de corridas fue de20 con tamanos de poblacion, razon de cruce y razon de mutacion distintos,recomendados por Koumousis y Greorgiou [11].

Ambos algoritmos pudieron encontrar la solucion optima. Sin embargo, HS loencontro dos veces mientras que GA lo hizo una vez de las 20 corridas distintas.El costo promedio fue de $399870 en HS y $409597 en GA.

4.2. Problema de orientacion generalizado

El problema de orientacion (Orienteering Problem, OP) es una version deseleccion de subconjuntos del popular problema del vendedor ambulante (TravelSalesman Problem). El objetivo de OP es construir un camino que comienza enun origen y termina en un destino de manera que maximice la ganancia totalsin violar los lımites de distancia de viaje prescritos. Debido al hecho de quela distancia esta limitada, puede que los tours no incluyan todos los lugares.Es de notar que el OP es equivalente al TSP cuando se relaja la distancia losuficiente para que abarque a todos los nodos y no se especifique los puntos deinicio y fin. El OP se utiliza para modelar muchos problemas practicos como elenrutamiento de inventarios, asignacion de clientes o vehıculos y calendarizadode produccion. Ademas, una variacion del OP con ventanas de tiempo tieneaplicaciones en problemas que incluyen la entrega postal y el enrutamiento deautobuses escolares.

El GOP propuesto por Wang et al. [17], es una generalizacion del problemade orientacion. La diferencia principal entre los dos consiste en que cada ciudaden GOP tiene multiples puntos mientras que cada ciudad en OP tiene un solopuntaje. Entonces, el objetivo de GOP consiste en encontrar el tour optimobajo la restriccion del lımite de distancia total al mismo tiempo que satisfacemultiples metas en vez de una unica meta, como en el caso de OP [1].

4.2.1. Formulacion del problema para OP y GOP

El objetivo del problema OP consiste en encontrar un camino acıclico quevaya desde un punto de partida a un punto de llegada de manera que el puntajetotal acumulado de los puntos visitados sea maximizado sin violar la restriccionde distancia dada (esto es, la longitud total de los arcos que forman un caminotiene que ser menor al lımite especificado). El problema OP es un conocidoproblema NP-difıcil.

El GOP difiere del OP debido a que cada punto en GOP tiene mas de unpuntaje. El vector de puntajes se expresa como S(i) = (S1(i), S2(i), . . . , Sm(i))T

donde m es la cantidad de metas individuales. Una funcion objetivo diferencia-ble, que define el puntaje total del camino P puede formularse como sigue:

Z =

m∑g=1

Wg

{∑i∈P

[Sg(i)]k

}1/k

13

Figura 4: Mapa de 27 ciudades en China oriental

donde Wg es el peso de la meta g, y el exponente k es una constante contro-ladora que se asigna a 5 en el caso particular presentado en la seccion 4.2.2.

4.2.2. Ejemplo del Tour de China Oriental

El ejemplo de GOP usando a China oriental, con 27 ciudades y 4 metas fuepor primera vez propuesto en [17]. Si un viajero visita la parte oriental de China,como se muestra en la figura 4, y la persona quiere viajar a tantas ciudades comole sea posible con el proposito de cumplir con multiples metas como:

1. Belleza natural.

2. Interes historico.

3. Eventos culturales.

4. Oportunidades de negocio.

bajo la distancia total permitida, el viaje puede convertirse en un problemade orientacion generalizado donde cada ciudad tiene ciertas metas cuantificadaspara todas las metas. El tour es evaluado basado en suma de todos estos puntajesobtenidos de todos los lugares que conforman el tour.

El modelo HS [10] ha sido desarrollado para tratar este problema y compa-rarlo con el modelo de red de neuronas artificiales [17]. Aquı, la distancia lımitees de 5000 km. Comparado con los resultados de ANN, HS pudo encontrarmejores soluciones en tres de los cinco casos en total.

5. Conclusion

Este documento presenta una compilacion de informacion de una vasta canti-dad de publicaciones sobre la meta-heurıstica Harmony Search. Se ha intentadorealizar un contraste lo suficientemente completo entre esta tecnica de optimiza-cion y la improvisacion musical, de manera a que la analogıa entre ambas puedaser bien comprendida.

14

El documento presento la estructura basica del algoritmo de Harmony Search,mencionando, ademas, las alteraciones que podrıan realizarse en cada parte delmismo. Esto permite, a los interesados en aplicar el algoritmo, tener un enten-dimiento del funcionamiento basico del mismo y, a la vez, disponer de ideas oreferencias a estrategias que pueden ser aplicadas para mejorar su rendimiento.

Se proporciono una caracterizacion del funcionamiento del Harmony Searchhaciendo especial enfasis en las caracterısticas meta-heurısticas que lo distinguende los demas algoritmos y que, posiblemente, se constituyen en factores de sualto rendimiento. Se resalto el rol del ajuste de tono controlado, que juega unpapel importante tanto en la diversificacion como en la intensificacion.

Fueron expuestos varias particularidades del algoritmo que se constituyen enmeritos y aquellas que lo asemejan y lo diferencian de las otras meta-heurısticas.

Se describio como pueden ser resolvidos dos problemas combinatorios (Ge-neral Orienteering Problem y Vehicle Routing Problem with Time Windows),incluso superando el rendimiento de otros algoritmos meta-heurısticos y de re-des neuronales. Ademas de estos problemas, Harmony Search ha sido aplicadoa otros problemas combinatorios y contınuos de diversas ramas de la ciencia eingenierıa con resultados prometedores.

Referencias

[1] I. Chao et al. A fast and effective heuristic for the orienteering problem.European journal of operational research, 88(3):475–489, 1996.

[2] S.O. Degertekin. Optimum Design of Steel Frames using Harmony SearchAlgorithm. Structural and multidisciplinary optimization, 36(4):393–401,2008.

[3] Z. W. Geem. Improved Harmony Search from Ensemble of Music Players.In Knowledge-Based Intelligent Information and Engineering Systems, vo-lume 4251 of Lecture Notes in Computer Science, pages 86–93. Springer,2006.

[4] Z. W. Geem. Novel Derivative of Harmony Search Algorithm for DiscreteDesign Variables. Applied Mathematics and Computation, 199(1):223–230,2008.

[5] Z. W. Geem. Harmony Search Algorithms for Structural Design Optimiza-tion. Springer, 2009.

[6] Z. W. Geem. State-of-the-Art in the Structure of Harmony Search Algo-rithm. In Zong Woo Geem, editor, Recent Advances in Harmony SearchAlgorithm, volume 270 of Studies in Computational Intelligence, pages 1–10. Springer, 2010.

[7] Z. W. Geem, J. H. Kim, and G.V. Loganathan. A New Heuristic Optimi-zation Algorithm: Harmony Search. Simulation, 76(2):60–68, 2001.

[8] Z.W. Geem. Music-inspired harmony search algorithm: theory and appli-cations. Springer, 2009.

15

[9] Z.W. Geem, K.S. Lee, and Y. Park. Application of harmony search tovehicle routing. American Journal of Applied Sciences, 2(12):1552–1557,2005.

[10] Z.W. Geem, C.L. Tseng, and Y. Park. Harmony search for generalizedorienteering problem: best touring in China. Advances in Natural Compu-tation, pages 741–750, 2005.

[11] V.K. Koumousis and P.G. Georgiou. Genetic algorithms in discrete opti-mization of steel truss roofs. Journal of Computing in Civil Engineering,8(3):309–325, 1994.

[12] K. S. Lee and Z. W. Geem. A New Meta-heuristic Algorithm for ContinuousEngineering Optimization: Harmony Search Theory and Practice. Compu-ter Methods in Applied Mechanics and Engineering, 194(36-38):3902–3933,2005.

[13] M. Mahdavi, M. Fesanghary, and E. Damangir. An Improved HarmonySearch Algorithm for Solving Optimization Problems. Applied Mathematicsand Computation, In Press, Corrected Proof, 2007.

[14] A. Mukhopadhyay, A. Roy, S. Das, S. Das, and A. Abraham. Population-variance and explorative power of Harmony Search: An analysis. In P. Pi-chappan and A. Abraham, editors, ICDIM, pages 775–781. IEEE, 2008.

[15] M.G.H. Omran and M. Mahdavi. Global-best harmony search. AppliedMathematics and Computation, 198(2):643–656, 2008.

[16] CM Wang and YF Huang. Self-adaptive Harmony Search Algorithm forOptimization. Expert Syst. Appl., 37(4):2826–2837, 2010.

[17] Q. Wang, X. Sun, B.L. Golden, and J. Jia. Using artificial neural net-works to solve the orienteering problem. Annals of Operations Research,61(1):111–120, 1995.

[18] Wikipedia. Accidental (music) — Wikipedia, The Free Encyclopedia, 2010.[Online; accessed 12-April-2010].

[19] Wikipedia. Cadenza — Wikipedia, The Free Encyclopedia, 2010. [Online;accessed 12-April-2010].

[20] Wikipedia. Harmony Search — Wikipedia, The Free Encyclopedia, 2010.[Online; accessed 10-April-2010].

[21] X.-S. Yang. Harmony Search as a Metaheuristic Algorithm. In Zong WooGeem, editor, Music-Inspired Harmony Search Algorithm, volume 191 ofStudies in Computational Intelligence, pages 1–14. Springer, 2009.

16