Documente Academic
Documente Profesional
Documente Cultură
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
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
decisin.
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
es el K-simo
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
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.
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
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.
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.
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.
X2 2 3 3
X3 1 2 2
F(X) 4 4 8
I+k+J+L+H+G+D Iteracin
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 4
2
3 3
1
2 2
4
4 8
I+k+J+L+H+G+D+X Iteracin
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. Para la nueva Harmony Memory se debe ordenar los vectores de la matriz de tal manera que los valores de F(X) sean ascendentes.
X2 2 3 3
X3 1 1 2
F(X) 4 3 8
X2 3 2 3
X3 1 1 2
F(X) 3 4 8
T= I+k+J+L+H+G+D+X