3.3 Gerador Harmˆonico
3.3.3 Harmoniza¸c˜ao Multiobjetivo
Duas fun¸c˜oes de avalia¸c˜ao s˜ao definidas para resolver o compromisso entre dissonˆancia ou simplicidade das harmonias. Isto ´e feito considerando que harmonias contendo acordes com apenas a tr´ıade simples (fundamental, terceira e quinta) ou a tr´ıade simples mais a s´etima em alguns casos s˜ao boas harmonias de acordo com o crit´erio de simplicidade. Nestas harmonias, uma s´etima n˜ao ´e considerada uma nota desej´avel a n˜ao ser em um
Tabela 3.10: Operadores Gen´eticos do Gerador Harmˆonico Operadores Gen´eticos Probabilidade
Fase de Cruzamento 90%
1: Cruzamento musical 100%
Fase de Muta¸c˜ao 20%
1: Muta¸c˜ao de altura tonal 30%
2: Troca entre notas 50%
3: Reinicializa¸c˜ao do acorde 15%
4: C´opia de acorde 5%
contexto no qual ela resulta em uma nota apropriada do acorde seguinte. A maximiza¸c˜ao de uma fun¸c˜ao de fitness definida pela fun¸c˜ao simplicidade f1 representar´a a avalia¸c˜ao deste tipo de harmonias.
Uma segunda fun¸c˜ao de avalia¸c˜ao a ser maximizada, chamada fun¸c˜ao dissonˆancia f2, valoriza mais harmonias com dissonˆancia em seus acordes, e compassos com mais notas do que a tr´ıade s˜ao normalmente recompensados. Apesar desta considera¸c˜ao, notas al´em da tr´ıade que n˜ao se encaixam `a melodia s˜ao penalizados da mesma maneira que seriam na primeira fun¸c˜ao de avalia¸c˜ao.
Talvez poderia ser poss´ıvel conciliar ambos os objetivos se se soubesse previamente as preferˆencias do usu´ario ou se o projetista do algoritmo se tornasse o pr´oprio usu´ario e usasse suas pr´oprias preferˆencias para pesar op¸c˜oes contradit´orias. Enquanto alguns objetivos s˜ao normalmente comuns a todas as harmonias, tal com definir tr´ıades es- pec´ıficas para guiar a progress˜ao de acordes, alguns objetivos s˜ao muito contradit´orios de acordo com as preferˆencias do usu´ario. Por exemplo, a inclus˜ao de notas dissonantes necessariamente dar´a diferentes recompensas e penalidades em fun¸c˜oes diferentes.
Uma outra ideia poderia ser permitir alguns compassos a atender objetivos diferen- tes. No caso deste trabalho, isso resultaria em uma harmonia que ´e dissonante em alguns compassos e simples em outros. Mesmo com harmonias dissonantes podendo tamb´em ter acordes simples em alguns casos, provavelmente esta abordagem teria resultados que desagradariam a maior parte dos usu´arios j´a que nenhuma preferˆencia seria aten- dida. Fazendo isto, as possibilidades entre harmonias complexas e simples n˜ao seriam exploradas.
Figura 3.12: M´etodo de Classifica¸c˜ao do NSGA-II
Assim, a defini¸c˜ao de uma ´unica fun¸c˜ao objetivo envolveria um est´agio de defini¸c˜ao de preferˆencias do usu´ario. Mesmo com esta defini¸c˜ao pr´evia de preferˆencias, cada melodia tem um conjunto poss´ıvel de harmonias que n˜ao ´e poss´ıvel conhecer qual fun¸c˜ao este conjunto atende mais. Isso significa que a n˜ao ser que a preferˆencia do usu´ario seja ter harmonias que atendam apenas uma fun¸c˜ao o m´aximo poss´ıvel, a harmonia resultante de uma execu¸c˜ao mono-objetivo pode ter v´arios resultados simples e dissonantes para um mesmo conjunto de parˆametros. Por outro lado, a abordagem multiobjetivo permite que o usu´ario conhe¸ca as possibilidades do espa¸co de busca em vez de fazer uma escolha cega de parˆametros.
Por estes motivos, uma abordagem multiobjetivo foi aplicada neste trabalho. Com esta abordagem, o usu´ario pode obter um conjunto de harmonias que se encaixam `a melodia e representam o equil´ıbrio entre as regras contidas nas duas fun¸c˜oes objetivos. Depois o usu´ario pode escolher uma harmonia do conjunto de resultados e definir as preferˆencias enquanto escuta as possibilidades de solu¸c˜oes.
Para aplicar a abordagem multiobjetivo para o problema de harmoniza¸c˜ao, emprega- se neste trabalho o Non-dominated Sorting Genetic Algorithm - II (NSGA-II) (Deb, Agrawal, Pratap & Meyarivan 2000). Neste m´etodo, as solu¸c˜oes s˜ao agrupadas em conjuntos de solu¸c˜oes candidatas pertencentes `a mesma frente de Pareto e s˜ao ordenadas de acordo com seus grupos antes de passar pelos processos reprodutivos do AG. Este m´etodo de ordena¸c˜ao das solu¸c˜oes est´a representado na Figura 3.12.
Neste m´etodo, o fitness de um indiv´ıduo ´e definido pelo n´umero da fronteira n˜ao dominada ao qual ele pertence, e o problema artificialmente se torna de minimiza¸c˜ao, tendendo a selecionar os indiv´ıduos que tem o menor n´umero de fronteira n˜ao dominada. A estimativa da densidade das solu¸c˜oes em volta de um indiv´ıduo tamb´em ´e con- siderada no m´etodo para classificar os indiv´ıduos da mesma fronteira (Deb, Agrawal, Pratap & Meyarivan 2000). A quantidade idistˆancia ´e a estimativa da densidade no ponto de um indiv´ıduo e dar mais valor a indiv´ıduos em locais menos densos do fronteira ajuda a explora¸c˜ao de diversidade das solu¸c˜oes. Este conceito ´e definido por Deb, Agrawal, Pratap & Meyarivan (2000) como crowding distance. O c´alculo deste valores para cada indiv´ıduo est´a detalhado no Algoritmo 3.2.
Algoritmo 3.2: C´alculo do Crowding Distance dos indiv´ıduos (Deb, Agrawal, Pratap & Meyarivan 2000)
Entrada: Conjunto de solu¸c˜oes I
l ← |I|; /* n´umero de solu¸c~oes em I */
1
para todoi fa¸ca 2
I[i]distˆancia= 0; /* inicializa as dist^ancias */
3
fim 4
para cadaobjetivo m fa¸ca 5
I ← ordenar(I, m); /* ordena pelo valor da fun¸c~ao objetivo */ 6
I[1]distˆancia ←I[l]distˆancia = ∞; /* ajuda os pontos extremos */
7
para i ← 2 at´e (l − 1) fa¸ca /* para os outros pontos */
8
I[i]distˆancia= I[i]distˆancia+ (I[i + 1].m − I[i − 1].m);
9
fim 10
fim 11
Neste m´etodo, I[i].m ´e o valor do indiv´ıduo de acordo com a fun¸c˜ao objetivo m. A ordena¸c˜ao das solu¸c˜oes domina a complexidade do algoritmo, que ´e O(mN log N ) no pior caso.