C.1) FANS
4.3. M´ etodo de composici´ on musical
4.3.1. Descripci´ on del m´ etodo de composici´ on musical
Algoritmo 35:AlgoritmoM M C b´asico
1 Crear una sociedad artificial con reglas de interacci´on entre los agentes.
2 for cada uno de los agentes de la sociedad do
3 Generar aleatoriamente una obra musical (Para esta actividad se considera la informaci´on sobre la instancia a resolver)
4 end
5 while No se satisface el criterio de paro do
6 Actualizar los v´ınculos de la red social.
7 Intercambiar informaci´on entre agentes.
8 for cada uno de los agentes de la sociedad do
9 Actualizar la matriz de conocimiento.
10 Generar y evaluar una nueva melod´ıa (x?,new)
11 Actualizar la partitura .
12 end
13 Construir el conjunto de soluciones encontradas con la mejor melod´ıa de cada compositor.
14 end
Tabla 4.2: Caracter´ısticas de los par´ametros del algoritmo MMC
Nombre del Par´ametro S´ımbolo Descripci´on
M´aximo n´umero de arreglos m´ax arrangement m´ax arrangement∈N Factor de genialidad sobre innovaci´on if g if g∈ [0 , 1]
Factor de genialidad sobre cambio cf g cf g∈ [0 , 1]
Factor de cambio entre las relaciones de los agentes
f cla f cla∈ [0 , 1]
N´umero de compositores N c N c ∈ N\ [0 , 2) ya que una so-
ciedad es un grupo de personas que interaccionan entre s´ı, se requiere que existan al menos dos individuos.
N´umero de acordes en las obras de arte N s N s∈N\ [0 , 3) En la m´usica un acorde es una combinaci´on de tres o m´as tonos que suenan simult´aneamen- te; la armon´ıa es la ejecuci´on concu- rrente de acordes; por tanto, se deci- di´o establecer los posibles valores de este par´ametro dentro de 3,4,5, . . . ,∞ .
caracter´ısticas se muestran en la Tabla 4.2
Los factores de genialidad (if g y cf g) son probabilidades, que emulan la espontaneidad del ingenio humano en los procesos creativos. El par´ametro if g es la probabilidad que el i−´esimo compositor genere una nueva melod´ıa completa, sin recurrir a la informaci´on enKM?,?,i. En contraste, el par´ametrocf ges la probabilidad de que eli−´esimo compositor genere algunos de los elementos en la nueva melod´ıa sin utilizar su conocimiento actual. Por otro lado, el par´ametro f claes la probabilidad de que eli−´esimo compositor modifique algunas de sus relaciones con los otros agentes en la sociedad.
Al determinar un valor para los par´ametros m´ax arrangementyN c, se debe considerar que el n´umero de evaluaciones (N e) que realizar´a el algoritmo se relaciona directamente con estos elementos como lo muestra la ecuaci´on 4.3.1.
N e=N c∗m´ax arrangement (4.3.1)
Inicialmente, se genera un conjunto de N c compositores y se definen las normas de comportamiento, tambi´en denominadas reglas de interacci´on, para los agentes en la sociedad.
Se determinan las caractr´ısticas de los arcos (v´ınculos) entre los miembros de la sociedad, estos v´ınculos son los canales de comunicaci´on y por ende, influyen en el flujo de la informaci´on entre los agente. Si el conjunto de arcos en la red son dirigidos, entonces se indica que las relaciones entre los agentes no son sim´etricas entre s´ı. En contraste, si los arcos son no dirigidos las relaciones entre los miembros de la sociedad ser´an sim´etricas.
Se establecen las reglas de an´alisis y selecci´on de informaci´on que ser´an ocupadas por los agentes en la sociedad. La norma de an´alisis le permiten ali−´esimo compositor determinar si la informaci´on que proviene delk−´esimo compositor le es ´util o no. En contraste, el c´odigo de selecci´on le permite elegir ali−´esimo agente informaci´on que adquirir´a delk−´esimo compositor. En la secci´on 4.3.1.2 se exponen con mayor detalle estas reglas.
Se fija la condici´on para que eli−´esimo compositor actualice su partitura. En la secci´on??, se trata con mayor detalle esta condici´on.
Posteriormente, se produce para cada uno de los compositores una partitura inicial; la cual, generalmente, se crea de manera aleratoriaP?,?,i por medio del Algoritmo 36 .
4.3.1.2. Interacci´on entre agentes
En esta fase, se emula el comportamiento din´amico de las redes sociales humanas (en las cuales, cada persona es capaz de estructurar y reestructurar sus v´ınculos, con otros seres humanos, en funci´on de sus deseos o necesidades) y adicionalmente, se imitan las capacidades cognitivas del ser humano para aprender de su entorno. Por ende, esta fase se divide en las siguientes sub-fases: a) actualizaci´on de v´ınculos entre los compositores e b) intercambio de informaci´on.
a)Actualizar v´ınculos entre los compositores.
El objetivo de esta subfase es mimetizar los cambios sociales en el tiempo; para ello, el algortimo utiliza el par´ametrof clay la estrategia mostrada en el Algoritmo 37.
Algoritmo 36:Generaci´on de las partituras iniciales
Input: N´umero de variables de decisi´on (n), rango posible para cada una de las variables de desici´on [xL?, xU?] ,N c,N s
Output: Las partituras asociadas a cada agente en la sociedad
1 fori= 1 :N cdo
2 forj= 1 :N sdo
3 for l= 1 :ndo
4 xl←Valor aleatorio tomado de [xL?, xU?]
5 P?,?,i←xl
6 end
7 end
8 end
En la primera parte del algoritmo 37, se construye la red social inicial, es de hacerse notar que en esta construcci´on se evita la generaci´on de bucles8 en la red social. En la segunda parte del mismo se producen cambios aleatorios en los arcos de la red en el tiempotcon respecto a la red del el tiempot−1 tal y como se muestra en la Figura 4.5.
Figura 4.5: Cambio en la red social fuente [156, 157].
Posterior a la actualizaci´on de los v´ınculos se ejecuta la siguiente subfase.
8Un bucle o lazo en una gr´afica es un arco cuyo nodo destino es el mismo que el nodo origen
Algoritmo 37:Actualizaci´on de arcos en la red social Input:v,N c, f cla, sociedad artificial previa
Output: Actualizaci´on de los v´ınculos en la red social
1 % En esta rutina el valor dev indica arreglo. %if v= 1 then
2 fori= 1 :N cdo
3 fork= 1 :N c do
4 if i6=kthen
5 if rand <0.5 then
6 Creaci´on de un v´ınculo entre el compositoriy el compositork .
7 end
8 end
9 end
10 end
11 else
12 fori= 1 :N cdo
13 if rand < f clathen
14 Elegir aleatoriamente un compositork, tal quei6=k.
15 Cambiar la relaci´on entre ambos compositores.
16 end
17 end
18 end
19 Verificar que cada uno de los agentes tiene por lo menos un v´ınculo .
b)Intercambio de informaci´on.
En esta subfase cada uno de los compositores adquiere informaci´on de su entorno, con base en la pol´ıtica de interacci´on (regla de an´alisis y selecci´on de informaci´on).
En este trabajo la norma de an´alisis es la siguiente: “ si existe un arco con origen en el nodoky destino en el nodoi, eli−´esimo compositor compara la melod´ıa con peor grado de satisfacci´on en su partituraxi−worst
contra la melod´ıa con peor grado de satisfacci´on en la partitura del k−´esimo compositor. Si xk−worst es mejor que xi−worst entonces el agente idecide que la informaci´on del agente k le es ´util ”. La norma de selecci´on es la siguiente: “si el compositoriconsidera conveniente la informaci´on del compositork, entonces, i−´esimo compositor toma aleatoriamente una melod´ıa de laP?,?,kasociada alk−´esimo compositor.
La pol´ıtica anterior se implementa por la metaheur´ıstica MMC a trav´es de la rutina mostrada en el Algoritmo 38.
Algoritmo 38:Intercambio de informaci´on entre agentes
Input:P?,?,i,N c y funci´on de satisfacci´on deli−´esimo compositor
Output: Conjunto de ideas adquiridas de cada uno de los compositores(SC?,?,i)
1 fori= 1 :N cdo
2 ISC?,?,i=∅ xi−worst←melod´ıa con el peor grado de satisfacci´on enP?,?,i.
3 fork= 1 :N c∧k6=ido
4 xk−worst←melod´ıa con el peor grado de satisfacci´on enP?,?,k.
5 if Existe un arco en la red tal que su origen es el nodo k y su destino el nodo k then
6 if f(xi−worst)es menos satisfactoria quef(xk−worst)then
7 El compositor itoma aleatoriamente una melod´ıa deP?,?,kSe a˜nade la melod´ıa seleccionada a ISC?,?,i.
8 end
9 end
10 end
11 end
4.3.1.3. Generaci´on y evaluaci´on de una nueva melod´ıa
En esta fase cada compositor crear´a una nueva melod´ıa basado en su conocimiento previo y considerando los posibles instantes de ingenio. Esta fase se divide en las subfases: a) construcci´on del conocimiento previo y b) la creaci´on y evaluaci´on de una melod´ıa.
a)Construcci´on del conocimiento previo.
En esta subfase cada uno de los compositores conjuntan las ideas adquiridas del medio con su parti- tura (memoria); a fin de generar un conocimientoKM?,?,i =P?,?,iS
ISC?,?,i, adem´as, en esta subfase el i−´esimo compositor asigna la aptitud (f itness(KMj0,?,i)) a cada elemento en suKM?,?,i. Para lo cual el procedimiento MMC utiliza la rutina mostrada en el Algoritmo 40.
Algoritmo 39:Construcci´on y evaluaci´on del conocimiento previo Input:P?,?,i,ISC?,?,i,N cyf(x)
Output: Conocimiento deli−´esimo compositor y ponderaci´on de cada uno de los elementos en el conocimiento (f itness(KMj0,?,i)
1 fori= 1 :N cdo
2 KM?,?,i=P?,?,iSISC?,?,i.
3 r←n´umero de melod´ıas en el conocimiento deli−´esimo compositor.
4 forj0 = 1 :r do
5 f(KMj0,?,i)←Grado de satisfacci´on alcanzado por laj0−´esima melod´ıa deli−´esimo compositor.
6 end
7 ai=Pr
j0=if(KMj0,?,i).
8 forj0 = 1 :r do
9 f itness(KMj0,?,i) =ai−f(KMa j0,?,i)
i∗(N c−1) .
10 end
11 end
b)Creaci´on de una nueva melod´ıa
En esta subfase, cada compositor crear´a una nueva melod´ıa, con base en su KM?,?,i y a sus ideas
innovadoras. Para ello, el procedimiento MMC utiliza la rutina mostrada en el Algoritmo 40.
Algoritmo 40:Creaci´on de una nueva melod´ıa Input:KM?,?,i,if g,n,N c
Output: Una nueva melod´ıa (x?,new)
1 fori= 1 :N cdo
2 if rand <(1−if g)then
3 forl= 1 :ndo
4 if rand <(1−cf g)then
5 Se genera el elementoxl,new de la nueva melod´ıa a partir deKM?,l,i.
6 else
7 Se toma aleatoriamente un elemento de [xUl , xLl] y se asigna axl,new
8 end
9 end
10 else
11 Aleatoriamente se genera toda la melod´ıax?,new
12 end
13 Se determina el grado de satisfacci´on obtenido por la melod´ıax?,new (f(x?,new)).
14 end
4.3.1.4. Actualizar la obra de arte
En esta fase, el i−´esimo compositor decide reemplazar o no una melod´ıa en su partitura por la nueva melod´ıa. En este trabajo la pol´ıtica de reemplazo es la siguiente: “Si el grado de satisfacci´on alcanzado por x?,new es mayor que el alcanzado porxi−worst (melod´ıa con peor grado de satisfacci´on enP?,?,i), entonces eli−´esimo compositor remplaza axi−worst porx?,new en su partitura”. En el Algoritmo 41, se muestra la rutina empleada por el procediemieto MMC.
Algoritmo 41:Actualizar obra deli−´esimo compositor Input:P?,?,i,f(x) yN c
Output: matrizP?,?,i actualizada
1 fori= 1 :N cdo
2 f(xi−worst)←grado de satisfacci´on alcanzado con la peor melod´ıa enP?,?,i 3 f(x?,new)←grado de satisfacci´on alcanzado porx?,new.
4 if f(xi−worst)es peor quef(x?,new)then
5 Reemplazarxi−worst conx?,new enP?,?,i.
6 end
7 end
4.3.1.5. Construcci´on de un conjunto de soluciones
En esta fase se contruye el conjunto de soluciones (Si, ?) a partir de la melod´ıa con mayor grado de satifacci´on de cada uno de los compositores. En el Algoritmo 42 se muestra la rutina utilizada por el procedimiento MMC para dicho prop´osito.
Algoritmo 42:Construcci´on del conjunto de soluciones Input:P?,?,i,f(x) yN c
Output: Conjunto de soluciones (S?, ?)
1 fori= 1 :N cdo
2 Si, ?←melod´ıa con mayor grado de satisfacc´ıon enP?,?,i 3 end