H A R M O N Y S E A R C H

Post on 09-Jul-2015

383 views 0 download

Transcript of H A R M O N Y S E A R C H

Marcelo Apolo E.César Menéndez C.Nelson RuízWilliam 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 ú s ic a (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

2. Parámetros de inicialización3. Harmony Memory4. Nueva Armonía5. Actualización de Harmony Memory6. 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:a Selección Aleatoriar Se debe considerar HMa 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 es el K-ésimo elemento de .

m es el índice de la vecindad ;Para variables discretas m varía entre 1 y -1

Actualización de Harmony MemorySi x ́ = tiene una mejor respuesta en la función obje tivo, lo reemplazamos en la Harmony Memory.

Presentación del AlgoritmoHarmony 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ónEnd

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 1Generar 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 3I-é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

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 2 13

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 4Rank2 2 3 4 12rank3 4 3 2 8

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 X2 X3 F(X)Rank1 2 2 1 4Rank2 4 3 2 8

Rank3 2 3 3 7

I+k+J+L +H 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.

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 4Rank2 2 3 2 4Rank3 4 3 2 8

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 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 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 1 3

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 3 1 3

Rank2 2 2 1 4

Rank3 4 3 2 8

Solución ÓptimaRank 1= (2,3,1)F(X)=3

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