Marcelo Apolo E. César Menéndez C. Nelson Ruíz William Sánchez V

Preview:

Citation preview

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ú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úsicaLa 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 ValoresArmonía → Solución de vectores Estética → Función Objetivo Práctica → Iteración Experiencia → Matriz de memoria

Procedimientos de Harmony Search

1. Parámetros de inicialización2. Harmony Memory3. Nueva Armonía4. Actualización de Harmony Memory5. 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 Aleatoria2.Se debe considerar HM3.Se debe hacer un ajuste (Ajuste de Tono)

Vector HarmonySELECCIÓ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 HarmonySELECCIÓN ALEATORIA

Donde

Ajuste de TonoUna 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 objetivo, 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 ModelosDiseño de Estructuras

Aplicaciones y Comparaciones con otros ModelosProblemas de Logística de Transportes

Aplicaciones y Comparaciones con otros ModelosDiseño de Redes de Aguas

Aplicaciones y Comparaciones con otros ModelosDiseño de Redes de Aguas en Gran Escala

Aplicaciones y Comparaciones con otros ModelosOperaciones de Represas

Aplicaciones y Comparaciones con otros ModelosOptimizar parámetros de Calibración

Hidrológicas

Aplicaciones y Comparaciones con otros ModelosConservación Ecológica

ConclusionesEl 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 8Rank3 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