• Nenhum resultado encontrado

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.

Documentos relacionados