You are on page 1of 35

Marcelo Apolo E. Csar Menndez C. Nelson Ruz William Snchez V.

HARMONY SEARCH
Es un algoritmo meta heurstico (tambin conocido como algoritmo de clculo suave o algoritmo evolutivo), el cual imita el proceso de improvisacin musical.

HARMONY SEARCH
La msica (del griego: [] - mousik

[tchn], "el arte de las musas") es, segn la definicin tradicional del trmino, el arte de organizar sensible y lgicamente una combinacin coherente de sonidos y silencios utilizando los principios fundamentales de la meloda, la armona y el ritmo, mediante la intervencin de complejos procesos psico-anmicos.

Elementos de la msica
La organizacin coherente de los sonidos y los silencios

(segn una forma de percepcin) nos da los parmetros fundamentales de la msica, que son la meloda, la armona y el ritmo. La meloda es un conjunto de sonidos. La armona, bajo una concepcin vertical de la sonoridad, y cuya unidad bsica es el acorde, regula la concordancia entre sonidos que suenan simultneamente y su enlace con sonidos vecinos. La mtrica, se refiere a la pauta de repeticin a intervalos regulares, y en ciertas ocasiones irregulares, de sonidos fuertes o dbiles y silencios en una composicin. El ritmo, es el resultado final de los elementos anteriores, a veces con variaciones muy notorias.

FACTORES DE COMPARACION
Conjunto de Msicos Variables de Decisin Rango de Afinacin Rango de Valores Armona Solucin de vectores Esttica Funcin Objetivo Prctica Iteracin Experiencia Matriz de memoria

Procedimientos de Harmony Search


1. 2. 3. 4. 5.

Parmetros de inicializacin Harmony Memory Nueva Armona Actualizacin de Harmony Memory Criterio de Verificacin y Terminacin

Parmetros de Inicializacin
Minimizar o Maximizar F(X) Sujeto ; i=1,2, ,N

N es el nmero de variables de decisin

K es el nmero de candidatos de las variables de

decisin.

HARMONY MEMORY INICIAL

Nueva Armona Vector Harmony


El nuevo vector Harmony x = Dicho vector esta dado por tres reglas: 1. Seleccin Aleatoria 2. Se debe considerar HM 3. Se debe hacer un ajuste (Ajuste de Tono)

Vector Harmony
SELECCIN ALEATORIA Partimos de que el msico puede entonar cualquier nota del pentagrama y que tiene grabada la meloda en su memoria (HM).

Vector Harmony
SELECCIN ALEATORIA

Donde

Ajuste de Tono
Una vez que obtuvimos el nuevo tono (Vector Harmony), el

msico puede ajustar an mas el paso, probando con notas vecinas. Ejemplo: Sol su vecindad es La o Fa En este caso Do puede ajustar a Re

Ajuste de Tono

Donde se obtiene del HM y elemento de .

es el K-simo

m es el ndice de la vecindad Para variables discretas m vara entre 1 y -1

Actualizacin de Harmony Memory


Si x = tiene una mejor respuesta en la funcin objetivo, lo reemplazamos en la Harmony Memory.

Presentacin del Algoritmo


Harmony Search Defina Funcin Objetivo F(x) Defina Harmony Memory (Raccept) Defina Ajuste de Tono (Rap) Generar Harmony Memory con armonas aleatorias While (t <Maximo_Numero_Iteraciones) While (i <=Numero_Variables) If (U [0,1 ] <Raccept) Elegir un valor del Harmony Memory por la variable i If (U [0,1] <Rap) Ajustar el valor mediante la adicin de cierta cantidad End If Else Elegir un valor aleatorio End If End While Aceptar el new Harmony si es mejor End While Buscar la actual mejor solucin End

Aplicaciones y Comparaciones con otros Modelos


Diseo de Estructuras

Aplicaciones y Comparaciones con otros Modelos


Problemas de Logstica de Transportes

Aplicaciones y Comparaciones con otros Modelos


Diseo de Redes de Aguas

Aplicaciones y Comparaciones con otros Modelos


Diseo de Redes de Aguas en Gran Escala

Aplicaciones y Comparaciones con otros Modelos


Operaciones de Represas

Aplicaciones y Comparaciones con otros Modelos


Optimizar parmetros de Calibracin Hidrolgicas

Aplicaciones y Comparaciones con otros Modelos


Conservacin Ecolgica

Conclusiones
El HS no requiere de clculos complejos, por lo tanto

siempre esta libre de divergencia. El HS no requiere ajustes de valor inicial para las variables de decisin. El HS puede manejar variables discretas, as como variables continuas, mientras que las tcnicas basadas en gradiente solo pueden manejar continuas.

EJERCICIO DE APLICACION

OBS:

PASO 1
Generar una Harmony Memory

X1 2 1 5

X2 2 3 3

X3 1 4 3

F(X) 4 13 16

PASO 2 Recordar Bucles y Sentencias de Decisin


Seguir los pasos del algoritmo, lo volvemos a anunciar

While (t <Maximo_Numero_Iteraciones) While (i <=Numero_Variables) If (U [0,1 ] <Raccept) Elegir un valor del Harmony Memory por la variable i If (U [0,1] <Rap) Ajustar el valor mediante la adicin de cierta cantidad End If Else Elegir un valor aleatorio End If End While Aceptar el new Harmony si es mejor

PASO 3
I-sima Iteracin (Para este caso se cumplieron las 2 sentencias
If) Se generaron 2 nmeros aleatorios adicionales de tal manera que el primero escogi la variable X1 y el 3er rank del mismo.

Como expone el algoritmo se cambio el componente del rank prximo por


un valor de 1. Siempre y cuando la funcin se optimice de acuerdo al criterio del problema. X1 X2 X3 F(X) Rank1 Rank2 Rank3 2 2 5 2 3 3 1 4 3 4 12 16

I+K Iteracin (Para este caso se cumplieron las 2 sentencias

If)

Se generaron 2 nmeros aleatorios adicionales de tal manera que el primero escogi la variable X2 y el 3er rank del mismo.
Como expone el algoritmo se debera cambiar el componente del Rank prximo por un valor de 1. Pero en este caso la funcin objetivo no optimiza por lo que no escogemos el vector Harmony en la Harmony Memory.

X1

X2

X3

F(X)

Rank1 Rank2
Rank3

2 2
5

2 3
3

1 4
3

4 12
16

I+k+J Iteracin (Para este caso se cumplieron las 2 sentencias If)


Se generaron 2 nmeros aleatorios adicionales de tal manera que el primero escogi la variable X3 y el 2do rank del mismo. Como expone el algoritmo se cambio el componente del rank prximo por un valor de 1. Siempre y cuando la funcin se optimice de acuerdo al criterio del problema. Podamos tomar el rank1 o el Rank 3. De manera aleatoria se obtuvo el tercero.

X1

X2

X3

F(X)

Rank1
Rank2 Rank3

2
2 5

2
3 3

1
4 2

4
12 13

I+k+J+L Iteracin (Para este caso se cumplieron las 2 sentencias If) Se generaron 2 nmeros aleatorios adicionales de tal manera que el primero escogi la variable X1 y el 2do rank del mismo. Como expone el algoritmo se cambio el componente del rank prximo por un valor de 1. Siempre y cuando la funcin se optimice de acuerdo al criterio del problema. Podamos tomar el Rank1 o el Rank 3. De manera aleatoria se obtuvo el tercero. Para la nueva Harmony Memory se debe ordenar los vectores de la matriz de tal manera que los valores de F(X) sean ascendentes.

X1 Rank1 Rank2 rank3 2 2 4

X2 2 3 3

X3 1 4 2

F(X) 4 12 8

I+k+J+L +H Iteracin (Para este caso se cumplieron las 2 sentencias If) Se generaron 2 nmeros aleatorios adicionales primero escogi la variable X3 y el 2do rank del mismo. de tal manera que el

Como expone el algoritmo se cambio el componente del rank prximo por un valor de 1. Siempre y cuando la funcin se optimice de acuerdo al criterio del problema. Podamos tomar el Rank1 o el Rank 3. De manera aleatoria se obtuvo el tercero. Para la nueva Harmony Memory se debe ordenar los vectores de la matriz de tal manera que los valores de F(X) sean ascendentes.

X1 Rank1 Rank2 Rank3 2 4 2

X2 2 3 3

X3 1 2 3

F(X) 4 8 7

I+k+J+L +H+G Iteracin (Para este caso se cumplieron las 2 sentencias If) Se generaron 2 nmeros aleatorios adicionales de tal manera que el primero escogi la variable X3 y el 3er rank del mismo. Como expone el algoritmo se cambio el componente del rank prximo por un valor de 1. Siempre y cuando la funcin se optimice de acuerdo al criterio del problema.

X1 Rank1 Rank2 Rank3 2 2 4

X2 2 3 3

X3 1 2 2

F(X) 4 4 8

I+k+J+L+H+G+D Iteracin
sentencias If)

(Para este caso se cumplieron las 2

Se generaron 2 nmeros aleatorios adicionales de tal manera que el primero escogi la variable X2 y el 3er rank del mismo. Como expone el algoritmo se debera cambiar el componente del Rank

prximo por un valor de 1. Pero en este caso la funcin objetivo no optimiza por lo que no escogemos el vector Harmony en la Harmony Memory.

X1

X2

X3

F(X)

Rank1
Rank2 Rank3

2
2 4

2
3 3

1
2 2

4
4 8

I+k+J+L+H+G+D+X Iteracin
sentencias If)

(Para este caso se cumplieron las 2

Se generaron 2 nmeros aleatorios adicionales de tal manera que el primero escogi la variable X3 y el 3er rank del mismo.
Como expone el algoritmo se cambio el componente del rank prximo por un valor de 1. Siempre y cuando la funcin se optimice de acuerdo al criterio del problema. Para la nueva Harmony Memory se debe ordenar los vectores de la matriz de tal manera que los valores de F(X) sean ascendentes.

X1 Rank1 Rank2 Rank3 2 2 4

X2 2 3 3

X3 1 1 2

F(X) 4 3 8

Solucin ptima Rank 1= (2,3,1)


F(X)=3

X1 Rank1 Rank2 Rank3 2 2 4

X2 3 2 3

X3 1 1 2

F(X) 3 4 8

T= I+k+J+L+H+G+D+X