• No se han encontrado resultados

Descripci´ on del m´ etodo de composici´ on musical

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