Harmony Search

Anuncio
Marcelo Apolo E.
César Menéndez C.
Nelson Ruíz
William Sánchez V.
HARMONY SEARCH
Es un algoritmo meta heurístico (también conocido
como algoritmo de cálculo suave o algoritmo
evolutivo), el cual imita el proceso de improvisación
musical.
HARMONY SEARCH
 La música (del griego: μουσική [τέχνη] - mousikē
[téchnē], "el arte de las musas") es, según la definición
tradicional del término, el arte de organizar sensible y
lógicamente una combinación coherente de sonidos y
silencios utilizando los principios fundamentales de la
melodía, la armonía y el ritmo, mediante la
intervención de complejos procesos psico-anímicos.
Elementos de la música
 La organización coherente de los sonidos y los silencios




(según una forma de percepción) nos da los parámetros
fundamentales de la música, que son la melodía, la
armonía y el ritmo.
La melodía es un conjunto de sonidos.
La armonía, bajo una concepción vertical de la sonoridad, y
cuya unidad básica es el acorde, regula la concordancia
entre sonidos que suenan simultáneamente y su enlace con
sonidos vecinos.
La métrica, se refiere a la pauta de repetición a intervalos
regulares, y en ciertas ocasiones irregulares, de sonidos
fuertes o débiles y silencios en una composición.
El ritmo, es el resultado final de los elementos anteriores, a
veces con variaciones muy notorias.
FACTORES DE COMPARACION
 Conjunto de Músicos → Variables de Decisión
 Rango de Afinación→ Rango de Valores
 Armonía → Solución de vectores
 Estética → Función Objetivo
 Práctica → Iteración
 Experiencia → Matriz de memoria
Procedimientos de Harmony
Search
1.
2.
3.
4.
5.
Parámetros de inicialización
Harmony Memory
Nueva Armonía
Actualización de Harmony Memory
Criterio de Verificación y Terminación
Parámetros de Inicialización
Minimizar o Maximizar F(X)
Sujeto
; i=1,2, … ,N
 N es el número de variables de decisión
 K es el número de candidatos de las variables de
decisión.
HARMONY MEMORY INICIAL
k
Nueva Armonía “Vector Harmony”
El nuevo vector Harmony x´ =
Dicho vector esta dado por tres reglas:
1. Selección Aleatoria
2. Se debe considerar HM
3. Se debe hacer un ajuste (Ajuste de Tono)
Vector Harmony
SELECCIÓN ALEATORIA
Partimos de que el músico puede entonar cualquier nota
del pentagrama y que tiene grabada la melodía en su
memoria (HM).
Vector Harmony
SELECCIÓN ALEATORIA
Donde
Ajuste de Tono
 Una vez que obtuvimos el nuevo tono (Vector Harmony), el
músico puede ajustar aún 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 varía entre 1 y -1
;
Actualización de Harmony Memory
Si x´ =
tiene una mejor respuesta
en la función objetivo, lo reemplazamos en la
Harmony Memory.
Presentación del Algoritmo
Harmony Search
Defina Función Objetivo F(x)
Defina Harmony Memory (Raccept)
Defina Ajuste de Tono (Rap)
Generar Harmony Memory con armonías 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 adición 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 solución
End
Aplicaciones y Comparaciones con
otros Modelos
 Diseño de Estructuras
Aplicaciones y Comparaciones con
otros Modelos
 Problemas de Logística de Transportes
Aplicaciones y Comparaciones con
otros Modelos
 Diseño de Redes de Aguas
Aplicaciones y Comparaciones con
otros Modelos
 Diseño de Redes de Aguas en Gran Escala
Aplicaciones y Comparaciones con
otros Modelos
 Operaciones de Represas
Aplicaciones y Comparaciones con
otros Modelos
 Optimizar parámetros de Calibración Hidrológicas
Aplicaciones y Comparaciones con
otros Modelos
 Conservación Ecológica
Conclusiones
 El HS no requiere de cálculos complejos, por lo tanto
siempre esta libre de divergencia.
 El HS no requiere ajustes de valor inicial para las
variables de decisión.
 El HS puede manejar variables discretas, así como
variables continuas, mientras que las técnicas basadas
en gradiente solo pueden manejar continuas.
EJERCICIO DE APLICACION
OBS:
PASO 1
Generar una Harmony Memory
X1
X2
X3
F(X)
2
2
1
4
1
3
4
13
5
3
3
16
PASO 2 “Recordar Bucles y Sentencias de Decisión”
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 adición 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 Iteración (Para este caso se cumplieron las 2 sentencias
If)
Se generaron 2 números 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 próximo por
un valor de ± 1. Siempre y cuando la función se optimice de acuerdo al criterio
del problema.
X1
X2
X3
F(X)
Rank1
2
2
1
4
Rank2
2
3
4
12
Rank3
5
3
3
16
I+K Iteración (Para este caso se cumplieron las 2 sentencias
If)
Se generaron 2 números aleatorios adicionales de tal manera
que el primero escogió la variable X2 y el 3er rank del mismo.
Como expone el algoritmo se debería cambiar el componente
del Rank próximo por un valor de ± 1. Pero en este caso la función
objetivo no optimiza por lo que no escogemos el vector Harmony en la
Harmony Memory.
X1
X2
X3
F(X)
Rank1
2
2
1
4
Rank2
2
3
4
12
Rank3
5
3
3
16
I+k+J Iteración (Para este caso se cumplieron las 2 sentencias If)
Se generaron 2 números 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 próximo
por un valor de ± 1. Siempre y cuando la función se optimice de acuerdo al
criterio del problema. Podíamos tomar el rank1 o el Rank 3. De manera
aleatoria se obtuvo el tercero.
X1
X2
X3
F(X)
Rank1
2
2
1
4
Rank2
2
3
4
12
Rank3
5
3
2
13
I+k+J+L Iteración (Para este caso se cumplieron las 2 sentencias If)
Se generaron 2 números 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 próximo por
un valor de ± 1. Siempre y cuando la función se optimice de acuerdo al criterio
del problema. Podíamos 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
X2
2
2
4
X3
2
3
3
F(X)
1
4
2
4
12
8
I+k+J+L +H Iteración (Para este caso se cumplieron las 2 sentencias If)
Se generaron 2 números 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 próximo por un
valor de ± 1. Siempre y cuando la función se optimice de acuerdo al criterio del
problema. Podíamos 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
X2
2
4
2
X3
2
3
3
F(X)
1
2
3
4
8
7
I+k+J+L +H+G Iteración (Para este caso se cumplieron las 2 sentencias If)
Se generaron 2 números 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 próximo por
un valor de ± 1. Siempre y cuando la función se optimice de acuerdo al
criterio del problema.
X1
Rank1
Rank2
Rank3
X2
2
2
4
X3
2
3
3
F(X)
1
2
2
4
4
8
I+k+J+L+H+G+D Iteración
(Para este caso se cumplieron las 2
sentencias If)
Se generaron 2 números aleatorios adicionales de tal manera que el
primero escogió la variable X2 y el 3er rank del mismo.
Como expone el algoritmo se debería cambiar el componente del Rank
próximo por un valor de ± 1. Pero en este caso la función objetivo no
optimiza por lo que no escogemos el vector Harmony en la Harmony Memory.
X1
X2
X3
F(X)
Rank1
2
2
1
4
Rank2
2
3
2
4
Rank3
4
3
2
8
I+k+J+L+H+G+D+X Iteración
(Para este caso se cumplieron las 2
sentencias If)
Se generaron 2 números 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 próximo
por un valor de ± 1. Siempre y cuando la función 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
X2
X3
F(X)
Rank1
2
2
1
4
Rank2
2
3
1
3
Rank3
4
3
2
8
Solución Óptima
Rank 1= (2,3,1)
F(X)=3
X1
X2
X3
F(X)
Rank1
2
3
1
3
Rank2
2
2
1
4
Rank3
4
3
2
8
T= I+k+J+L+H+G+D+X
Documentos relacionados
Descargar