métodos de composição algorítmica - alandefreitas.com · composição algorítmicas podem ser...

60
Métodos de Composição Algorítmica Dr. Alan R. R. Freitas

Upload: dodan

Post on 18-Aug-2018

219 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Métodos de Composição Algorítmica - alandefreitas.com · composição algorítmicas podem ser também ... que os resultados sejam comparáveis com resultados humanos através

Métodos deComposiçãoAlgorítmica

Dr. Alan R. R. Freitas

Page 2: Métodos de Composição Algorítmica - alandefreitas.com · composição algorítmicas podem ser também ... que os resultados sejam comparáveis com resultados humanos através

Copyright c© 2015 Alan R. R. de Freitas

alandefreitas.com

Licenciado sob Creative Commons Attribution-NonCommercial 3.0 Unported License (a “Li-cença”). Não se pode utilizar este arquivo exceto em acordo com a Licença. Pode-se obter umacópia da Licença em http://creativecommons.org/licenses/by-nc/3.0. A não ser queseja requerido por lei ou de acordo com o autor por escrito, material distribuído sob a Licençaé distribuído em uma base “como está”, sem garantias ou condições de qualquertipo, sejam expressas ou implícitas. Veja a Licença para as permissões específicas e limitações.

Em caso de erros na apostila, favor contactar em [email protected].

Edição: 18 de Fevereiro de 2015

Page 3: Métodos de Composição Algorítmica - alandefreitas.com · composição algorítmicas podem ser também ... que os resultados sejam comparáveis com resultados humanos através

Conteúdo

1 Inteligência Artificial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

1.1 O que é Inteligência Artificial 5

1.2 Teste de Turing 5

1.3 Inteligência como sistemas adaptáveis 6

2 Modelos de Markov . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

2.1 Fundamentos 7

2.2 Modelos Ocultos de Markov 9

2.3 Considerações 10

3 Gramáticas Gerativas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

3.1 Modelo de Teoria da Sintaxe 11

3.2 Hierarquia de Chomsky 123.2.1 Gramática Irrestrita Tipo 0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133.2.2 Gramática Sensível a Contexto Tipo 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143.2.3 Gramática Livre de Contexto Tipo 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153.2.4 Gramática Regular Tipo 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

3.3 Transformação Gramatical 16

3.4 Inferência Gramatical 17

3.5 Considerações 17

4 Redes de Transição . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

4.1 Redes Petri 19

4.2 Considerações 20

Page 4: Métodos de Composição Algorítmica - alandefreitas.com · composição algorítmicas podem ser também ... que os resultados sejam comparáveis com resultados humanos através

5 Caos e Autossimilaridade . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

5.1 Teoria do Caos 23

5.2 Fractais 24

5.3 Sistemas de Lindenmayer 25

5.4 Considerações 26

6 Autômatos Celulares . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

6.1 Tipos de Autômatos Celulares 296.1.1 Autômatos Celulares Unidimensionais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 296.1.2 Autômatos Celulares Bidimensionais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 306.1.3 Autômatos Celulares Tridimensionais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 306.1.4 Autômatos Celulares Especiais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30

6.2 Considerações 31

7 Redes Neurais Artificiais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

7.1 Redes Perceptron 34

7.2 Outros Tipos de Redes Neurais 347.2.1 Redes Recorrentes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 347.2.2 Mapas de Kohonen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 347.2.3 Redes Hopfield . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34

7.3 Considerações 34

8 Algoritmos Genéticos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37

8.1 Biologia 38

8.2 Representação 40

8.3 Inicialização e Estrutura da População 42

8.4 Seleção 43

8.5 Operadores Genéticos 458.5.1 Cruzamento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 458.5.2 Mutação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 478.5.3 Operadores Musicais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47

8.6 Função de Avaliação e Definição da Aptidão 488.6.1 Avaliação Automática . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 498.6.2 Avaliação Interativa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 508.6.3 Avaliação sem aptidão . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50

8.7 Substituição dos Pais 51

8.8 Considerações 52

Índice Remissivo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59

Page 5: Métodos de Composição Algorítmica - alandefreitas.com · composição algorítmicas podem ser também ... que os resultados sejam comparáveis com resultados humanos através

O que é Inteligência ArtificialTeste de TuringInteligência como sistemas adaptáveis

1. Inteligência Artificial

Quando ouço música, a minha imaginação compraz-se muitas vezes com o pen-samento de que a vida de todos os homens e a minha própria vida não são maisdo que sonhos de um espírito eterno, bons e maus sonhos, de que cada morte é odespertar. Arthur Schopenhauer, 1788–1860

Este livro descreve a abordagens utilizadas na literatura para o desenvolvimento de umsistemas de Composição Algorítmica (CA).

1.1 O que é Inteligência ArtificialInteligência artificial são procedimentos para automatização de comportamentos inteligentesem tarefas diferentes. Neste capítulo, citamos procedimentos de inteligência artificial que têmrelevância em composição algorítmica. Uma categorização destes algoritmos é difícil pois estesalgoritmos são usualmente desenvolvidos para aplicações específicas [Nie10].

Independentemente das abordagens únicas como sistemas baseados em regras, formasalternativas de aplicação de lógica ou variantes de aprendizado de máquina são formas de serepresentar conhecimento de máxima importância para sistemas de composição algorítmica.Estes algoritmos são tão diversos quanto as possíveis interpretações de “inteligência".

1.2 Teste de TuringEm um teste de Turing [Tur50] para avaliar comportamentos inteligentes de máquinas, umapessoa deve adivinhar o sexo de outros dois companheiros de conversa. Um homem, uma mulhere a pessoa participante do teste vão para quartos separados e se comunicam por cartas. A tarefada pessoa é descobrir o sexo dos parceiros sendo que o homem e a mulher tentam convencer oparticipante de que têm o sexo oposto, dando repostas falsas ou verdadeiras à questões. Se umcomputador toma parte no jogo, a pergunta do teste passa a ser: Quem é a máquina e quem é ohumano?

Pode-se perceber que uma máquina pode ter bons resultados em um teste desta sorte semque tenha estratégias boas para resolver problemas e nem mesmo se utilizar de algoritmosespecíficos de inteligência artificial. Em sentido estrito, as estratégias até então apresentadas de

Page 6: Métodos de Composição Algorítmica - alandefreitas.com · composição algorítmicas podem ser também ... que os resultados sejam comparáveis com resultados humanos através

6 Capítulo 1. Inteligência Artificial

composição algorítmicas podem ser também considerados de inteligência artificial, na medidaque os resultados sejam comparáveis com resultados humanos através do teste de Turing musical[Cop04].

Os vários significados de inteligência podem também causar confusão ao se tentar responderà questão: Máquinas são capazes de pensar? Tomar as definições mais comuns de máquina e depensar pode ser uma estratégia perigosa pois pode indicar que a resposta da questão deve serprocurada em pesquisas estatísticas, o que seria absurdo [Tur50].

1.3 Inteligência como sistemas adaptáveisInteligência pode ser vista como a capacidade individual de ajustar seu pensamento a novasdemandas, como uma adaptabilidade a novas tarefas e condições de vida. Já outra forma de verinteligência é a capacidade do indivíduo agir com propósito, racionalmente e tratar efetivamentecom seu ambiente [Wec56]. Com base nestas definições, [CF82] definem inteligência artificialcomo parte da ciência da computação focada em sistemas que exibem as características queassociamos com inteligência no comportamento humano.

Estas características de métodos de inteligência artificial incluem tarefas como linguagens,aprendizado, raciocínio, resolver problemas. Assim, estes algoritmos resolvem problemas querequerem comportamento inteligente de uma maneira que chamaríamos de inteligente se umhumano estivesse se comportando da mesma maneira.

Page 7: Métodos de Composição Algorítmica - alandefreitas.com · composição algorítmicas podem ser também ... que os resultados sejam comparáveis com resultados humanos através

FundamentosModelos Ocultos de MarkovConsiderações

2. Modelos de Markov

Modelos de Markov são um paradigma proposto por Andrey Andreyevich Markov (1856-1922) [BLN04] hoje muito bem estabelecido de composição algorítmica. Foram desenvolvidosoriginalmente no contexto de processamento de linguagens e utilizam uma análise de dadospara geração de uma sequência de estados e probabilidades de transição. Markov estudou umasequência de 20000 letras, descobrindo que a probabilidade de uma vogal é p = 0,432 ou queuma vogal seguida de outra vogal é p = 0,128 enquanto uma vogal seguida de uma consoante ép = 0,663.

O número de estados analisados para o cálculo de um novo estado é determinado pela ordemdo modelo. Quanto maior a ordem do modelo, mais similares os dados são aos resultadosproduzidos e menor a capacidade generalização. Uma variação interessante são os modelosocultos de Markov, onde eventos observáveis habilitam interferências em mudanças de estadoocultas.

Usualmente, modelos de Markov são utilizados para cópia de estilo, mas também podem serusados para aplicações de composição genuína.

2.1 FundamentosModelos de Markov se relacionam com probabilidades e estatísticas. Processos estocásticosdescrevem uma sequência de eventos aleatórios dependentes de tempo. O conjunto de even-tos possíveis é chamado de espaço de estados, enquanto os parâmetros ficam no espaço deparâmetros.

Se o processo estocástico tem um número contável de estados, este pode ser uma cadeiaestocástica. Em uma cadeia destas, cada posição discreta t no tempo tem uma variável X . Emuma cadeia de Markov, tipo especial de cadeia estocástica, a probabilidade de um estado futuroXt+1 depende do estado Xt . Temos então a probabilidade de transição.

Uma maneira de se representar uma cadeia de Markov é através de um grafo ou matriz detransição. A Tabela 2.1 mostra uma matriz de transição para um exemplo de previsão do tempo.

O mesmo exemplo pode ser representado na forma de grafo, como é feito na Figura 2.1.Partindo de um determinado estado, temos então a probabilidade de um estado futuro. A

soma de todas as transições em cada estado deve ser 1.Quando mais de um evento passado é utilizado para determinar a probabilidade de um evento

futuro, têm-se cadeias de Markov de ordens mais altas, onde a ordem indica o número de eventos

Page 8: Métodos de Composição Algorítmica - alandefreitas.com · composição algorítmicas podem ser também ... que os resultados sejam comparáveis com resultados humanos através

8 Capítulo 2. Modelos de Markov

Tabela 2.1: Matriz de Transição de um Modelo de Markov para Previsão do Tempo[Nie10]

Chuva Neve NuvemChuva 0.3 0.5 0.2Neve 0.4 0.4 0.2Nuvem 0.3 0.1 0.6

Chuva Neve

Nuvem

0,3

0,3

0,2

0,4

0,5

0,4

0,6

0,2

0,1

Figura 2.1: Grafo de Transição de um Modelo de Markov para Previsão do Tempo[Nie10]

passados considerados. Assim, em um modelo baseado nas notas de uma base de melodias,quanto maior a ordem do modelo, mais nos aproximamos de estrutura original das melodias nabase.

Se uma dada sequência de tamanho n não ocorre na base, esta sequência não ocorrerá nomaterial produzido por uma cadeia de Markov de ordem n. Uma solução para este “problema"éusar transições de ordens mais baixas para gerar a probabilidade de transições de ordens maisaltas [PWM99]. Nesta abordagem, probabilidades para sequências insuficientes de ordem n sãoatingidas através da interpolação de probabilidades de ordem mais baixa n−1, n−2, . . . . Assim,para um símbolo em um dado ponto no tempo, as probabilidades no banco de dados levam pesosdiferentes para sequências anteriores de diferentes tamanhos.

Em geral, os modelos de Markov podem ser representados por autômatos finitos em formade grafo e têm um número finito de estados. Essa possibilidade é interessante quando nem todosos campos da matriz de transição são utilizados [Jon81].

Page 9: Métodos de Composição Algorítmica - alandefreitas.com · composição algorítmicas podem ser também ... que os resultados sejam comparáveis com resultados humanos através

2.2 Modelos Ocultos de Markov 9

2.2 Modelos Ocultos de Markov

Nos modelos ocultos de Markov, as sequências da saída de símbolos observáveis são visíveismas seus estados internos e transições de estado não. Neste caso, os estados dos modelos ocultosde Markov produzem probabilidades de emissão que geram segmentos musicais como saídasobserváveis.

Um exemplo envolvendo previsão do tempo seria uma agência de notícias que recebeinformação de um correspondente de outro país [Nie10]. Quando há sol, o correspondente envianotícias logo na manhã. Se está chovendo, ele dorme mais e demora mais a começar o dia.Assim, de acordo com o horário das notícias enviadas, a agência pode fazer previsões sobre otempo no país. Como este não é o único fator que determina o comportamento do correspondente,os horários podem apenas sugerir a situação do tempo. Em um modelo oculto de Markov, oshorários de chegada das notícias podem ser as saídas observáveis enquanto os estados ocultossão as situações do tempo.

Os modelos ocultos podem emitir distribuições discretas ou contínuas. Porém, em composi-ção algorítmica, modelos contínuos não são tão importantes pois na maior parte dos casos asemissões são notas com parâmetros discretos. Um modelo oculto de Markov então representa umprocesso estocástico duplo: nas transições de estados no modelo de Markov e nas probabilidadesde emissão, dependentes do estado.

Em um modelo oculto de Markov [RJ86] temos os estados Si, símbolos de saída Vj comcertas probabilidades dependentes do estado corrente, e probabilidades iniciais de cada estado πi.Este conceito é representado na Figure 2.2.

S1 S2

S3

π1 = 0,4 π2 = 0,2 π3 = 0,4

V1 = 0,2V2 = 0,4V3 = 0,4

V1 = 0,3V2 = 0,2V3 = 0,5

V1 = 0,2V2 = 0,6V3 = 0,2

Figura 2.2: Grafo de Transição de um Modelo Oculto de Markov[Nie10]

Quando os parâmetros de transição, probabilidades de observação e distribuição dos estados

Page 10: Métodos de Composição Algorítmica - alandefreitas.com · composição algorítmicas podem ser também ... que os resultados sejam comparáveis com resultados humanos através

10 Capítulo 2. Modelos de Markov

iniciais são conhecidos, um algoritmo forward é utilizado para calcular a probabilidade deocorrência de uma sequência observável. A sequência mais provável de estados ocultos, chamadade Viterbi path, é calculada pelo Viterbi algorithm com base em uma sequência observável. Dadauma sequência observável, é possível calcular os parâmetros mais prováveis com o Baum-Welchalgorithm.

2.3 ConsideraçõesDevido a sua estrutura, modelos de Markov permitem apenas descrever dependências através deprobabilidades de transição em símbolos que são sucedidos diretamente [Nie10]. Isto faz comque seja mais adequado para modelos onde sequências de apenas ordens diretas sejam relevantes.

A informação musical muito frequentemente tem uma segunda dimensão vertical através decamadas, como ocorre com vozes conectadas ou mesmo a relação entre alturas tonais e ritmo.Isto pode ser resolvido com um modelo que define todas as combinações verticais como estadosúnicos, porém as soluções geradas não seriam muito convenientes pelo excesso de estados e pelalimitação de transições de altas ordens.

Mais um processo estocástico pode ser combinado em um modelo oculto para resolver esteproblema. Obtêm-se assim resultados que só seriam possíveis com vários modelos de Markovem uma estrutura hierárquica.

Como as tabelas de transição são muito grandes para modelos de altas ordens, estas tabelassão usualmente geradas através da análise de um banco de melodias. Assim, modelos de Markovsão na maior parte dos casos utilizados para a geração de composições com um estilo comoreferência. Há, porém, algumas limitações que são principalmente a aleatoriedade de modelosde ordem mais baixa ou a simples regeneração de pedaços de melodias por modelos de níveismais altos.

Se a consistência da base de dados restringe modelos de ordens mais altas, n-gramas su-avizados podem ser aplicados para usar transições de ordens mais baixas para a geração deprobabilidades de transição de ordem mais alta.

Uma deficiência dos modelos de ordem mais alta são a falta de habilidade para indicarinformação que estaria presente em ordens mais baixas. Por exemplo [Nie10; TL91], a sequênciaAFGBBFGCFGDFGDFG#EFG pode ser descrita e generada por uma cadeia de terceira ordempois não há grupos iguais compostos de três símbolos sucessivos. Porém, o fato de que um F ésempre seguido de um G não pode ser descrito e só seria detectado em um modelo de primeiraordem.

Apesar destas desvantagens, os modelos são adequados para várias tarefas, sendo que aqualidade da saída dependerá da qualidade do banco de dados, que pode ser previsto muito bemem comparação com outros métodos como redes neurais. Além de imitação de estilo, as cadeiaspodem ser usadas de modos criativos, como feito por [Xen92], que mostra como os modelospodem ser bem aplicados no campo de composição assistida por computador.

Page 11: Métodos de Composição Algorítmica - alandefreitas.com · composição algorítmicas podem ser também ... que os resultados sejam comparáveis com resultados humanos através

Modelo de Teoria da SintaxeHierarquia de ChomskyTransformação GramaticalInferência GramaticalConsiderações

3. Gramáticas Gerativas

Gramáticas gerativas são um modelo básico de linguística proposto por [Cho02]. O modelo foiinicialmente proposto em 1957 e provê uma estrutura que é capaz de gerar estruturas musicais.Gramáticas gerativas são métodos que podem ser usados tanto para composição quanto paraanálise musical pois permitem a produção de estruturas sensíveis a contexto ao longo de umapeça.

Este paradigma é muito utilizado em Composição Algorítmica com a hierarquia criada porNoam Chomsky. Distingue-se então os tipos de gramática por sua expressividade e facilidade dese gerenciar. A área de etnologia musical, tanto quanto jazz e música européia podem se utilizardestas gramáticas [Nie10]. A inferência gramatical permite a geração automática de regras dereescrita a partir de uma base de dados. Diferentemente dos modelos de Markov, profundidadescontextuais diferentes de um material podem ser consideradas ao mesmo tempo.

3.1 Modelo de Teoria da SintaxeA teoria da sintaxe é relacionada com os princípios e estruturas possíveis para a formação defrases em uma linguagem, seja ela natural ou artificial. Uma expressão em uma dada linguagemé feita pela combinação de unidades e a sintaxe permite checar se a expressão respeita as regras.Diz-se no caso em que as regras são respeitadas que a expressão é sintaticamente correta. Poroutro lado, as regras podem ser utilizadas para gerar expressões que são sintaticamente corretas.

Frases sintaticamente corretas não necessariamente são semanticamente acuradas. Dado umalfabeto, todas as expressões combinadas podem formar um monoide livre ou fecho de Kleeneda linguagem. Se o alfabeto é dividido hierarquicamente, regras podem definir estruturas quedependem de contexto. Em linguagens, um constituinte sintático é um conjunto de uma ou maispalavras que funcionam como uma unidade única em uma estrutura hierárquica.

Pela análise de constituintes, as frases podem ser divididas em constituintes por segmentaçãocontínua, até que cada constituinte seja apenas uma palavra. Por esta teoria, as classes constituin-tes dão informação sobre os contextos estruturais e sequências com mesmo conteúdo semânticoporém diferente ordem das palavras não podem ser definidas como expressões equivalentes.Chomsky ataca este problema através de transformações gramaticais e distinções entre estruturasprofundas ou superficiais de frases.

Se em contraste com a abordagem analítica dos constituintes, é dado um sistema recursivopara definição de uma linguagem capaz de gerar expressões corretas, tem-se uma gramática

Page 12: Métodos de Composição Algorítmica - alandefreitas.com · composição algorítmicas podem ser também ... que os resultados sejam comparáveis com resultados humanos através

12 Capítulo 3. Gramáticas Gerativas

gerativa. O processo de geração ocorre pela reescrita das regras, onde símbolos no lado esquerdode uma expressão são reescritos por símbolos do lado direito. Os símbolos não-terminais podemser reescritos enquanto os símbolos terminais não. Categorias léxicas como frases nominais ouverbais e suas unidades como substantivos e verbos são utilizados como símbolos não terminais,onde palavras concretas formam o conjunto dos símbolos terminais.

Uma forma especial de formalismo de reescrita em contexto linguístico é a estrutura gramati-cal da frase, onde apenas símbolos não terminais únicos à esquerda são substituídos por um oumais símbolos não terminais ao lado direito. Por regras de inserção, os símbolos não terminaissão substituídos por símbolos terminais adequados ao léxico da linguagem.

Desta maneira, o processo geral começa com apenas um símbolo ao lado direito e continuacom reescritas de todos os símbolos não terminais até que tenham-se apenas símbolos terminais.No exemplo da Figura 3.1 [Nie10], temos as abreviações para F (frase), FN (frase nominal), FV(frase verbal), V (verbo), FP (frase preposicional), FA (frase adverbial), Adv (advérbio), Adj(Adjetivo), P (preposição), DET (artigo ou determinante), S (substantivo).

F → FN FVFV → V (FN) (FP)FA → (Adv) Adj (FP)FP → P FNFN → (DET) (FA) S (FP)

Figura 3.1: Abreviações de uma Gramática Gerativa[Nie10]

Como exemplo, alguns símbolos terminais são indicados na Figure 3.2 para as categoriasdescritas.

S → homem professor JoãoDET → um oV → encontrou viuAdj → simpático bom rápidoAdv → muito extremamenteP → no para a

Figura 3.2: Símbolos Terminais de uma Gramática Gerativa[Nie10]

Em um diagrama de árvore para esta gramática, uma das possíveis derivações produz a fraseda Figura 3.3.

Uma notação possível para a estrutura gramatical de uma frase é uma quádrupla da forma(V,Vt,S,P), onde as entradas são identificadas como na Figura 3.4.

3.2 Hierarquia de Chomsky

Há quatro tipos de gramáticas gerativas com diferentes níveis de restrição. As gramáticas tipo0 são irrestritas e as de ordem mais alta são mais restritas na aplicação das regras. O tipode gramática é então relacionado a sua capacidade gerativa para produzir várias expressões eprevenir produções incorretas ao mesmo tempo.

A capacidade gerativa de uma gramática é baixa quando há pouco controle sobre as expres-sões geradas. Por isto, uma gramática de baixa ordem tem alta capacidade gerativa por ter menoslimitações em relação à regras de produção. A capacidade gerativa é diretamente relacionada asua complexidade de análise das expressões.

A Figura 3.5 mostra os tipos de gramáticas da hierarquia de Chomsky.

Page 13: Métodos de Composição Algorítmica - alandefreitas.com · composição algorítmicas podem ser também ... que os resultados sejam comparáveis com resultados humanos através

3.2 Hierarquia de Chomsky 13

F

João encontrou um bom professor

PV PN S

PNVS

PN PV

Figura 3.3: Derivação de uma Gramática Gerativa[Nie10]

V Um conjunto finito de símbolos não terminaisVt Um conjunto finito de símbolos terminaisS Símbolo inicial de V sem VtP Um conjunto de regras de reescrita e produção da forma:

α → β , onde α ∈V+ e β ∈V ∗

V ∗ Fecho de Kleene da linguagem sobre VV+ Fecho positivo ou: V ∗ sem o elemento neutro e (a palavra vazia)

Figura 3.4: Notação da Estrutura Gramatical de uma Frase[Nie10]

3.2.1 Gramática Irrestrita Tipo 0

Estas gramáticas têm as seguintes propriedades [Nie10]:Restrições: Sem restrições. Nos dois lados das regras de produção, um número arbitrário de

sequências de símbolos terminais e não terminais é possível.Linguagem formal respectiva: Linguagem recursivamente enumerável ou linguagem parcial-

mente decidível.Autômato respectivo: Máquina de Turing não determinística. Em uma máquina de Turing

não determinística, as mesmas entradas podem produzir diferentes possibilidades paratransições de estado resultantes.

Capacidade gerativa: Muito alta. (Em termos de comparação entre as gramáticas na hierarquiade Chomsky)

Complexidade: Indecidível. Até infinito.

Page 14: Métodos de Composição Algorítmica - alandefreitas.com · composição algorítmicas podem ser também ... que os resultados sejam comparáveis com resultados humanos através

14 Capítulo 3. Gramáticas Gerativas

Gramáticas com estrutura de frase

Gramáticas sensíveis a contexto

Gramáticas livres de contexto

Gramáticas regulares

Tipo 3

Tipo 2

Tipo 1

Tipo 0

Figura 3.5: Hierarquia de Chomsky

A investigação algorítmica de se uma expressão w é parte da linguagem (L) gerada por umagramática (G), isto pode ser determinado conclusivamente ou não em tempo finito ou em umnúmero finito de passos computacionais. Neste caso, semi-decidibilidade significa que para umacombinação de uma entrada w, uma linguagem L e uma gramática G, o teste do fato de que wpode ser determinado de antemão, mas em alguns outros casos, o cálculo pode continuar portempo indeterminado sem um resultado.

No caso de uma máquina de Turing, isto pode significar que nenhum estado final é alcançadono processo do cálculo. Neste pior caso, a complexidade pode ser infinitamente alta.

3.2.2 Gramática Sensível a Contexto Tipo 1

Estas gramáticas têm as seguintes propriedades [Nie10]:Restrições: Nos dois lados das regras de produção, um número arbitrário de sequências de

símbolos terminais e não terminais é possível, mas o número de símbolos no lado direitonão pode ser menor que o número no lado esquerdo.

Linguagem formal respectiva: Linguagem sensível a contexto.Autômato respectivo: Autômato linearmente limitado.Capacidade gerativa: Alta.Complexidade: Exponencial.

Para operações de escrita e leitura, um autômato linearmente limitado, como uma máquinade Turing limitada, nunca deixa a parte da fita limitada pela entrada inicial. Sensibilidade acontexto, em geral, se refere à compreensão possível de um contexto durante a reescrita. Porexemplo, AsT → ArT , significando que o símbolo terminal s é reescrito pelo símbolo r quando

Page 15: Métodos de Composição Algorítmica - alandefreitas.com · composição algorítmicas podem ser também ... que os resultados sejam comparáveis com resultados humanos através

3.2 Hierarquia de Chomsky 15

está entre os símbolos não terminais A e T .Todas as linguagens do tipo 1 são decidíveis, ou seja, para uma expressão w, pode-se

determinar em um número finito de passos se a expressão pertence a L(G). Estas linguagens sãotambém chamadas de linguagens decidíveis.

3.2.3 Gramática Livre de Contexto Tipo 2Estas gramáticas têm as seguintes propriedades [Nie10]:Restrições: O lado esquerdo das regras de produção consiste de apenas uma variável não

terminal e o lado direito de um número arbitrário de símbolos terminais e não terminais.Linguagem formal respectiva: Linguagem livre de contexto.Autômato respectivo: Autômato com pilha.Capacidade gerativa: Média.Complexidade: Polinomial.

Um autômato com pilha é um autômato finito que pode usar uma pilha ao escolher o caminhode transição. Dado um símbolo de entrada, o estado atual e um símbolo da pilha, estes autômatospodem seguir uma transição para outro estado. Adicionalmente, a pilha pode opcionalmente sermanipulada no topo.

No começo, a pilha consiste apenas de um símbolo indicando o fim dos cálculos. Se, porexemplo, um palíndrome será reconhecido, os símbolos de entrada são escritos na pilha até queum símbolo seja repetido. Então, quando a entrada e a pilha corrente são idênticas, os símboloscorrentes da pilha são excluídos até que o símbolo para o fim do cálculo seja alcançado.

Através deste princípio, estruturas dependentes de contexto podem ser processadas. Istonão é possível com autômatos mais simples por sua falta de “conhecimento"sobre os símbolospassados.

3.2.4 Gramática Regular Tipo 3Estas gramáticas têm as seguintes propriedades [Nie10]:Restrições: O lado esquerdo das regras de produção consistem apenas de uma variável (não

terminal de V ). No lado direito há um terminal, seguido de um não terminal, no máximo.Esta forma de regras de produção é chamada de linear à direita. Se há um terminal nolado direito que é precedido de um símbolo não terminal, estas regras de produção sãochamadas de linear à esquerda.

Linguagem formal respectiva: Linguagem regular.Autômato respectivo: Autômato Finito Determinístico (AFD) ou Autômato Finito Não-Determinístico

(AFN).Capacidade gerativa: Baixa.Complexidade: Linear.

Um AFD é uma quíntupla (S,∑,δ ,z0,F) que consiste de:S um conjunto finito de todos os estados∑ um conjunto finito chamado de alfabeto de entradaz0 um estado inicialF conjunto de estados finais (F ∈ S)δ funções de transição (S×S→ S)

Assim, dadas então as seguintes condiçõesS = {z0,z1,z2,z3}∑ = {a,b} δ (z0,a) = z1 δ (z0,b) = z3 δ (z1,a) = z2 δ (z1,b) = z0F = z3 δ (z2,a) = z3 δ (z2,b) = z1 δ (z3,a) = z0 δ (z3,b) = z2

temos um autômato que investiga em expressões de símbolos se estes são elementos de umfecho de Kleene e então corrigir constituintes da linguagem respectiva. No reconhecimento de

Page 16: Métodos de Composição Algorítmica - alandefreitas.com · composição algorítmicas podem ser também ... que os resultados sejam comparáveis com resultados humanos através

16 Capítulo 3. Gramáticas Gerativas

símbolos únicos, o autômato passa nas funções de transição uma sequência de diferentes estadosz0,z1, . . .zn (os símbolos de ∑), onde z0 é o estado inicial, até que ele atinja um estado finalzn ∈ F .

Assim, o AFD reconhecerá uma entrada aaa como um símbolo correto da linguagemrespectiva. As transições de estado resultantes serão δ (z0,a) = z1,δ (z1,a) = z2,δ (z2,a) = z3,onde o estado final é alcançado. Como outro exemplo, o símbolo bb, contudo, leva a z0→ z3→ z0.Como apenas z3 é o estado final, bb não será reconhecido como um membro da linguagem.

O grafo da Figura 3.6 representa o comportamento deste AFD. Os estados são representadospelos círculos, as arestas representam os símbolos de entrada. Por exemplo, as arestas indicamque em z0, o autômato transfere para z1 em para a entrada a.

Z0 Z2

Z1

Z3

a

a a

a

b b

bb

Figura 3.6: Exemplo de Autômato Finito Determinístico (AFD)[Nie10]

Dado o mesmo símbolo de entrada, um autômato não-determinístico pode transferir paraestados diferentes. No reconhecimento de sequências de símbolos, a sequência é consideradaparte da linguagem apenas se um dos possíveis estados finais é alcançado. Para uma definiçãocorreta de um autômato, é necessário existir pelo menos uma sequência válida terminando emum estado final. Além disto, um conjunto de estados iniciais é possível. Na notação como umaquintupla, z0 é substituído por um conjunto de estados iniciais. Gramáticas Tipo 3 tambémpodem ser representadas por modelos de Markov.

3.3 Transformação GramaticalChomsky casa expressões idênticas com diferentes ordens de palavras através de transformaçõesgramáticas que usam árvores de estruturas de frases como entradas e as retornam como árvoresde estrutura de frase transformadas. Para indicar o conteúdo semântico da frases que pode ser

Page 17: Métodos de Composição Algorítmica - alandefreitas.com · composição algorítmicas podem ser também ... que os resultados sejam comparáveis com resultados humanos através

3.4 Inferência Gramatical 17

representado em ordens diferentes de palavras, usa-se a estrutura profunda. Assim, a estruturaprofunda é a base semântica de todas as expressões que podem ser produzidas por transformaçõesgramaticais e resultam em várias representações mentais de expressões linguísticas chamadas deestruturas de superfície [Nie10].

Apesar da utilização ampla de gramáticas gerativas em composição, o conceito de estruturasprofundas e de superfície não podem ser aplicados de forma espontânea e simples em música.Isto ocorre porque uma transformação na ordens das palavras que pode ter o mesmo sentido, maslevará a uma nova composição no caso de estruturas musicais.

Um correspondente a estruturas linguísticas podem ser encontradas no exame de relaçõesmusicais nos métodos de análises de Heinrich Schenker e abordagens semelhantes. Aqui, porexemplo, um arcabouço harmônico pode servir de base para diferentes formas de estruturasmusicais.

Se um modelo generativo de uma estrutura musical pode ser criado por análise de um bancode dados, ele pode ser utilizado para posterior geração. Em algumas abordagens visando ageração de imitação de estilo, a análise de material correspondente ao estilo é uma condiçãoessencial. Em alguns outros trabalhos mencionados, o aspecto generativo não é analisadoexplicitamente mas é dado implicitamente pelo modelo.

3.4 Inferência GramaticalO método de [Pac99] gera todas as regras de reescrita e as classifica como comuns ou não. Istopermite inferir substituições de acordes dado um conjunto de dados de tamanho suficiente. Parafazer esta inferência, grupos de três acordes são analisados, sendo o segundo acorde o primeiroda próxima sequência para que o contexto do acorde seja sempre compreendido. Uma sequênciade acordes é considerada boa quando o novo acorde, antes da aplicação de uma substituição, estáno mesmo contexto do acorde novo.

[NW97] descreveram um método para geração de regras de reescrita baseando-se em sím-bolos de entrada. Um símbolo de entrada é examinado para várias combinações repetidas desímbolos para quais há um símbolo sempre terminal. Para a produção de um símbolo, a sequênciaprecisa ser utilizada pelo menos mais de uma vez. Um exemplo de aplicação do algoritmo sobrealgumas sequências está na Figura 3.7. Com a entrada sequencial de novos símbolos, o sistemaentra em um processo de vários estágios. O algoritmo é capaz de identificar corretamente frasesmelódicas repetidas e cadências finais para corais de Bach [NW97].

Uma gramática musical com auto-aprendizado foi proposta por [Koh89], onde são reconhe-cidos contextos de tamanhos diversos. Para haver habilidade de regenerar um banco de dados, onível de contexto pode ser diferente para cada símbolo, o que faz com que a mesma informaçãonão possa ser modelada por cadeias de Markov. As regras para cada nível de contexto podem serrepresentadas em forma de árvore, com cada nível da árvore representando o procedimento maiscoerente naquele contexto e um parâmetro pode determinar em qual profundidade a árvore seráanalisada para a formação de novas sequências.

3.5 ConsideraçõesAs gramáticas gerativas permitem uma análise hierárquica dos contextos musicais. Porém, é ummodelo sequencial que apenas considera um contexto em termos que símbolos que precedemou sucedem diretamente o símbolo sendo analisado. O modelo, assim, não tem capacidadede analisar com facilidade informação ocorrendo simultaneamente, como no caso de músicapolifônica.

Para diferentes camadas de contexto, estratégias precisam ser aplicadas, assim como nascadeias de Markov. Isso faz com que sua utilização seja mais acessível apenas nos casos de

Page 18: Métodos de Composição Algorítmica - alandefreitas.com · composição algorítmicas podem ser também ... que os resultados sejam comparáveis com resultados humanos através

18 Capítulo 3. Gramáticas Gerativas

Sequência Gramática Comentários1 a S→ a2 ab S→ ab3 abc S→ abc4 abcd S→ abcd5 abcdb S→ abcdb6 abcdbc S→ abcdbc bc aparece duas vezes

S→ aAdA unicidade da gramática é enforçadaA→ bc

7 abcdbca S→ aAdAaA→ bc

8 abcdbcab S→ aAdAabA→ bc

9 abcdbcabc S→ aAdAabc bc aparece duas vezesA→ bcS→ aAdAaA unicidade da gramática é enforçadaA→ bc aA aparece duas vezesS→ BdAB unicidade da gramática é enforçadaA→ bcB→ aA

10 abcdbcabcd S→ BdABd Bd aparece duas vezesA→ bcB→ aAS→ CAC unicidade da gramática é enforçadaA→ bc B é apenas utilizado uma vezB→ aAC→ BdS→ CAC utilidade da regra é aplicadaA→ bcC→ aAd

Figura 3.7: Inferência Gramatical[NW97]

informação intrinsecamente hierárquica, como no caso de harmonias.As transformações gramaticais de Chomsky, que levariam a outras ordens com mesmo

sentido, têm pouco sentido para aplicações musicais. A reorganização dos sons que poderiamlevar ao mesmo sentido em linguística levam a resultados diferentes em termos musicais.

Um aspecto interessante das gramáticas é que elas podem ter capacidade de gerar novassequências com um número relativamente pequeno de regras de escrita. Para a cópia de estilosmusicais, estas possibilidades podem ser muito vantajosas. É claro, porém, que uma sequência“bem formada"não significa necessariamente uma estrutura satisfatória e vários fatores musicaissão frequentemente ignorados ou simplificados, podendo levar a soluções arbitrárias.

Em geral, gramáticas gerativas podem ser algoritmos muito úteis para composições novas ouanálises de estilos. Quando um caminho pela rede encontra um símbolo terminal, o sistema seabre na rede correspondente até que todos os símbolos terminais tenham sido substituídos.

Page 19: Métodos de Composição Algorítmica - alandefreitas.com · composição algorítmicas podem ser também ... que os resultados sejam comparáveis com resultados humanos através

Redes PetriConsiderações

4. Redes de Transição

Redes de Transição são usualmente representadas por grafos. Este paradigma pode ser aplicadopara representar e processar informação musical. Inspiração em estilos pode ser inferida comuma análise complexa de várias composições e boas estratégias de recombinação de segmentosmusicais. Redes de transição existem em várias formas e podem ser adaptadas para diferentestarefas musicais.

A rede é formada por vários autômatos finitos onde cada uma das arestas são transições enós representam os estados dos autômatos. As arestas de cada rede são símbolos terminais ounão, que levam a outras redes. Por exemplo, a Figura 4.1 representa uma rede de transição paraexpressões de linguagem natural.

Se uma estrutura de nível mais alto, como frases verbais, podem substituir objetos de nívelmais baixo, como verbos, temos uma rede de transição recursiva. Já em uma rede de transiçãoaumentada, a rede é estendida para atender a instruções específicas, pulos condicionais ousubredes são atribuídas às arestas. Estas redes aumentadas podem ter capacidade gerativa degramáticas tipo 0.

Um sistema muito conhecido para geração de composições em um dado estilo é o EMI(abreviação de Experiments in Musical Intelligence), criado em 1981 por David Cope e mantidopelo autor desde então [Cop87; Cop91; Cop92; Cop00; Cop04; CM96]. Todos os experimentosde Cope incluem diferentes abordagens para estruturas musicais dentro do contexto do testemusical de Turing [Cop04].

4.1 Redes PetriRedes Petri [Cop04], redes condicionais ou redes de eventos utilizam grafos partidos parasimular processos controlados por eventos específicos. Os nós podem representar dados a seremprocessados. Arestas indicam o fluxo de informação em uma direção através das transições. Oestado do sistema é indicado por tokens distribuídos em diferentes locais e transições somentepassam a atuar quando necessário. Quando uma transição começa a atuar, ela pega os tokens desuas entradas e coloca novos tokens na saída. A Figura 4.2 mostra uma rede Petri simples parasimulação de operações aritméticas. Cronologicamente, as marcações dos tokens ficam nos nósa, b, c, d, e, f no instante 1; x e y no instante 2; e z no instante 3.

Um sistema de processamento de informação musical baseado neste tipo de rede é o Sco-reSynth [HS91], onde objetos musicais com sequências de notas representados por lugares e

Page 20: Métodos de Composição Algorítmica - alandefreitas.com · composição algorítmicas podem ser também ... que os resultados sejam comparáveis com resultados humanos através

20 Capítulo 4. Redes de Transição

Início Fim Início Fim

Início Fim Início Fim

Início Fim Início Fim

Frase Nominal

Frase

Frase verbal

Verbo

Substantivo

Artigo

FraseNominal

FraseVerbal

Artigo Subs-tantivo

Verbo FraseNominal

Substantivo

Verbo

motorista

cantor

olha

odeia

o

são

Figura 4.1: Exemplo de uma Rede de Transição[Nie10]

funções de transformação manipulam informação musical. Uma sintaxe especial é desenvolvidapara o ScoreSynth e subredes e rede recursivas estendem as possibilidades da aplicação.

O formalismo das Redes Petri também foram utilizadas de maneira interessante para modelarcadeias de Markov de diferentes ordens por [Lyo95]. A matriz de transição do modelo de Markové então representada por uma rede Petri por diferentes probabilidades em arestas com pesos. Istodá a vantagem de que apenas transições com probabilidade maior que zero sejam processadas.

4.2 ConsideraçõesRedes de transição podem ser utilizadas em uma grande área de estrutura musical e este aspectogeral as fazem apropriadas para sistemas com diferentes estratégias de composição do pontode vista de sistemas complexos de programação. Uma diferença importante entre as redes detransição e as gramáticas gerativas é a representação da informação em forma de grafo.

A representação em forma de grafo pode ser utilizada diretamente em interfaces gráficaspara os usuários. Esta forma de representação pode ser encontrada em várias aplicações musicaiscomo PureData e MAX [Puc+96].

Page 21: Métodos de Composição Algorítmica - alandefreitas.com · composição algorítmicas podem ser também ... que os resultados sejam comparáveis com resultados humanos através

4.2 Considerações 21

a b c d e f

x=a+b+c y=d*e*f

x y

z=x+y

z

Figura 4.2: Exemplo de uma rede Petri para operações aritméticas[Nie10]

Page 22: Métodos de Composição Algorítmica - alandefreitas.com · composição algorítmicas podem ser também ... que os resultados sejam comparáveis com resultados humanos através
Page 23: Métodos de Composição Algorítmica - alandefreitas.com · composição algorítmicas podem ser também ... que os resultados sejam comparáveis com resultados humanos através

Teoria do CaosFractaisSistemas de LindenmayerConsiderações

5. Caos e Autossimilaridade

Inovações em caos e autossimilaridade abrem possibilidades para geração de estruturas musicaiscomplexas baseadas na teoria do caos que em alguns casos é um modelo de explicação paraprocessos naturais, como a forma de distribuição de veias [Gli87]. O desenvolvimento destesprocessos varia muito em relação a modificações relativamente pequenas nas configuraçõesiniciais.

O comportamento de sistemas complexos e formas de estruturas autossimilares são concei-tos centrais nestes modelos. Estruturas autossimilares podem ser modeladas e simuladas porsistemas de Lindenmayer, que foram desenvolvidos originalmente para simulação do processode crescimento em plantas. Em composição algorítmica, variantes destes sistemas permitem aimplementação de conceitos de composição e estrutura musical.

5.1 Teoria do Caos

O termo “caótico"é aplicado ao que se é difícil de prever, ou em um sentido mais estritoàs dinâmicas não lineares. Em geral, pequenas modificações nas condições iniciais levam aresultados imprevisíveis pelo sistema.

Um exemplo de comportamento caótico é a equação de logística de Pierre-François Verhulst,onde um modelo demográfico representa o desenvolvimento temporal de uma população soba influência de alguns fatores [Nie10]. Se há comida suficiente, a população cresce até que acomida acabe e parte da população morra de fome. Para a população sobrevivente, há comidasuficiente novamente e a população aumenta. O tamanho da população x no momento t +1 édependente do tamanho da população x no momento t. O valor limiar para o limite de x porcomida é definido como 1 e r é uma constante como apresentado na Equação 5.1.

xn+1 = rxn(1− xn) (5.1)

Este é um modelo recorrente simples de um ecosistema. Se a população é baixa, (1−xn) ficaperto de 1, permitindo crescimento quase exponencial. Do mesmo modo, com uma populaçãomaior, (1− xn) se aproxima de 0 e a população passa a cair. O diagrama de Feigenbaum naFigura 5.1 mostra os diferentes valores limitantes de população de acordo com r. Para r > 3pontos de atratores passam a aparecer e para 3,57 < r < 4, o comportamento caótico se inicia.

Page 24: Métodos de Composição Algorítmica - alandefreitas.com · composição algorítmicas podem ser também ... que os resultados sejam comparáveis com resultados humanos através

24 Capítulo 5. Caos e Autossimilaridade

2.4 2.6 2.8 3 3.2 3.4 3.6 3.8 40

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

1

r

x

Figura 5.1: Diagrama de Feigenbaum da equação de logística

Talvez o mais conhecido exemplo de comportamento complexo é o sistema de três equaçõesdiferenciais não-lineares para modelagem simplificada de fluxo atmosférico de Lorenz. Aalta sensitividade destes sistemas em relação às condições iniciais são capturadas pelo “efeitoborboleta", onde uma batida de asas da borboleta causa uma turbulência mínima que, porém, nofluxo do sistema caótico determinístico, pode levar a consequências metereológicas imprevisíveisem locais distantes.

Quando se observa o comportamento a longo prazo destes sistemas dinâmicos, os estadosdo sistema convergem para uma região relativamente pequena, chamada de atrator. Geome-tricamente, estes atratores podem ser pontos fixos, como em pêndulos que levam o sistemaa um estado de descanso, ou um ciclo de limites no qual uma sequência de valores apareceperiodicamente. Este atratores simples, podem ser descritos geometricamente.

Alguns atratores, porém, não podem ser descritos por uma forma geométrica fechada e sãofrequentemente descritos em termos de fractais. Um exemplo de atrator estranho é o atrator deLorenz, representado na Figura 5.2, cuja forma lembra uma borboleta.

5.2 Fractais

Fractais são formas onde padrões gráficos reocorrem com alto grau de autossimilaridade. Éum conceito que pode ser encontrado em artes plásticas contemporâneas ou na matemática.O conjunto de Cantor é um conjunto fechado de números reais que forma um fractal em suarepresentação gráfica com a instrução de se remover o terço intermediário de um segmento delinha a cada passo, como na Figura 5.3.

Um aspecto comum aos fractais é uma nova dimensão onde além dos graus de liberdade demovimento no espaço, há a dimensão do fractal que ocorre ao longo das iterações [Man83]. Istoocorre no caso do conjunto de Cantor, por exemplo, onde uma linha de apenas uma dimensãotoma uma segunda dimensão dependente de suas iterações.

O conjunto de Mandelbrot é um que se destaca por sua complexidade e número de resultadosestéticos intrigantes. A regra iterativa deste conjunto com condição inicial z0 = 0 e c sendo um

Page 25: Métodos de Composição Algorítmica - alandefreitas.com · composição algorítmicas podem ser também ... que os resultados sejam comparáveis com resultados humanos através

5.3 Sistemas de Lindenmayer 25

−20 −15 −10 −5 0 5 10 15 20

−50

0

50

0

5

10

15

20

25

30

35

40

45

50

Figura 5.2: Atrator de Lorenz

número complexo está na Equação 5.2.

zn+1 = z2n + c (5.2)

Isto representa um cálculo dinâmico baseado na iteração de números complexos. Na Figura5.4, todas as posições onde os valores continuam finitos após várias iterações, ficam no conjuntode Mandelbrot e podem ser representadas por pontos pretos. Dependendo do número de iteraçõesque levaram a um valor zn maior que um valor delimitado, as posições podem ser representadaspor diferentes escalas de cinza. De acordo com o segmento, diferentes regiões podem ser vistas,formando novas estruturas autossimilares.

5.3 Sistemas de Lindenmayer

Os sistemas de Lindenmayer ou sistemas-L foram inicialmente desenvolvidos para representaro crescimento de algas [Lin68] e foram então estendidos com representações gráficas [HH74].Similarmente às gramáticas gerativas, estes sistemas funcionam com regras de reescrita, porém,não há distinção entre símbolos terminais e não-terminais e além disto, todas as regras sãoaplicadas simultaneamente.

Símbolos são então substituídos por símbolos que podem conter mais símbolos, levando auma quantidade enorme de símbolos a serem processados. Estas características básicas o fazemapropriados para representação de estruturas autossimilares. As definições para uma sistema-Lestão na Tabela 5.1. Os sistema pode ser representado por um conjunto (v,ω,P).

Page 26: Métodos de Composição Algorítmica - alandefreitas.com · composição algorítmicas podem ser também ... que os resultados sejam comparáveis com resultados humanos através

26 Capítulo 5. Caos e Autossimilaridade

Figura 5.3: 4 iterações sob o conjunto de Cantor

5.4 Considerações

As trajetórias nos espaço de fases de estruturas caóticas são usualmente mapeadas em termosde parâmetros musicais. Como o comportamento destes sistemas são difíceis de se prever emrelação a mudanças nas condições iniciais, os resultados musicais são os mais variados.

O maior problema nestes sistemas é a dificuldade de intervenção no sistema, devido àdiversidade de resultados possíveis para condições iniciais similares. A ideia de dificuldadede intervenção pode ser encontrada em vários paradigmas de composição onde há sistemasde regras. A formulação de regras, que podem deixar os sistemas previsíveis, podem levar adificuldade de realização de conceitos musicais em sistemas caóticos.

Este comportamento não linearmente complexo, porém, pode ser um incentivo para usaro sistema em alguns casos por causa de sua relação com a complexidade do mundo real e aeficiência de sistemas computacionais.

Tabela 5.1: Definições de um Sistema de Lindenmayer

v alfabeto com conjunto finito de símbolosv∗ conjunto de todos os símbolos possíveis a partir de vv+ conjunto de todos os símbolos sem o conjunto vazioω o axioma ou iniciador, aplicado quando ω ∈ v+

P conjunto finito de regras de produção

Page 27: Métodos de Composição Algorítmica - alandefreitas.com · composição algorítmicas podem ser também ... que os resultados sejam comparáveis com resultados humanos através

5.4 Considerações 27

Figura 5.4: Conjunto Mandelbrot

Já os sistemas de Lindenmayer são sistemas de reescrita como gramáticas gerativas eutilizam regras de produção. A diferença é que os terminais de um sistema de Lindenmayersão substituídos por outros terminais. Assim, sempre há símbolos disponíveis para substituição.Porém, o número de símbolos produzidos pode crescer consideravelmente a cada iteração. Estessistemas, assim, podem representar conceitos fractais em parâmetros musicais.

A interpretação musical dos resultados é sempre importante e as mais variadas estratégiasdevem ser sempre consideradas. Esta diversidade abre o ramo de possibilidades para aplicaçãodeste paradigma.

Page 28: Métodos de Composição Algorítmica - alandefreitas.com · composição algorítmicas podem ser também ... que os resultados sejam comparáveis com resultados humanos através
Page 29: Métodos de Composição Algorítmica - alandefreitas.com · composição algorítmicas podem ser também ... que os resultados sejam comparáveis com resultados humanos através

Tipos de Autômatos CelularesConsiderações

6. Autômatos Celulares

Autômatos celulares foram criados nos anos 1940 para originalmente modelar sistemas dinâmicosdiscretos e podem exibir comportamento complexo baseado em regras iniciais relativamentesimples. Em um espaço n-dimensional de células, um número de estados são assumidos pelascélulas.

Estes estados dependem do estado da própria célula e também de células vizinhas. O novoestado do autômato depende da aplicação de transições em todas as células. Autômatos celularessão menos adequados para tarefas em que a inspiração de um estilo específico seja necessária.Contudo, eles podem levar a resultados interessantes do ponto de vista de composições genuínas.

As primeiras teorias com autômatos celulares formais se iniciam com modelos de física,até então chamados pode [Zus70] de espaço de cálculos. Neste espaço, há troca de informaçãoentre as células adjacentes, que trocam de estado. Os mesmos autores criam também um sistemapara produção de padrões gráficos através de objetos que interagem entre si como células de umautômato celular.

Como extensão destes trabalhos, este princípio seria mais tarde desenvolvido por von Neu-mann para um computador com a capacidade de se reproduzir [VB66]. Com tempo, o comporta-mento de autômatos celulares passou a ser um assunto científico mais debatido, principalmentepor sua utilidade para a simulação de processos físicos, como os estudados por [TM87].

[Wol02] descreve em seu livro que com autômatos celulares, surge uma nova ideia dedescrição do mundo natural através de equações matemáticas.

6.1 Tipos de Autômatos Celulares

6.1.1 Autômatos Celulares Unidimensionais

Quando células assumem um de dois estados possíveis dependentemente das células vizinhas,tem-se o tipo mais simples de autômato celular. O estado da célula adjacente e da própriacélula formam a vizinhança, que pode ter 23 configurações possíveis. De acordo com os raiosde vizinhança, claro, aumentamos as configurações possíveis. No caso de um raio R = 2, porexemplo, temos 25 configurações possíveis, resultado das quatros células vizinhas e da própriacélula.

Nestes autômatos, usualmente, os estados das células são notados por símbolos bináriose cada linha representa uma transição. De acordo com [Wol02], há quatro tipos básicos de

Page 30: Métodos de Composição Algorítmica - alandefreitas.com · composição algorítmicas podem ser também ... que os resultados sejam comparáveis com resultados humanos através

30 Capítulo 6. Autômatos Celulares

autômatos celulares unidimensionais:1. De comportamento simples em direção a um estado final homogêneo2. Que leva a estados finais diferentes de acordo com estruturas que se repetem3. De comportamento aparentemente aleatório ou caótico4. Com padrões complexos que podem incluir auto-similaridade

Estes quatro tipos de autômatos estão representados na Figura 6.1, onde em cada autômato,uma linha representa um estado e a evolução se dá de baixo para cima no tempo. Autômatos ondeas grades são consideradas toroidais sempre terão comportamento periódico pois se o autômatogera mais de uma vez um mesmo conjunto de estados, o padrão recorrerá em algum ponto. Emuma grade infinita, porém, um autômato poderia continuar gerando seus padrões sem nuncachegar em um ciclo.

190 8 Cellular Automata

tomaton are also sometimes represented by K(m)R(n), K(m) indicating the numberof cell states and R(n) representing the radius of the neighborhood. The states of aneighborhood are usually noted as binary symbol strings in a row. In the next row,the resulting successive states of the given cells are also represented as binary val-ues. The value of the second row specifies the number of the transition descriptionor the rule of the CA, always assuming the same order of the state groups in the firstrow (configurations of three, arranged as binary values, ascending from right to left(see figures 8.4 and 8.5). Wolfram classifies 1-dimensional cellular automata intofour basic types:

• Class 1: The CA shows simple behavior and evolves to a homogeneous finalstate.

• Class 2: The CA leads to different final states consisting of simple stable or peri-odically repeating structures.

• Class 3: The CA shows apparently chaotic and random behavior.• Class 4: The CA produces complex patterns that may also repeat self-similarly.

A graphic representation of the behavior of these classes is indicated in figure 8.3.In all images, one single state is shown as one line; evolution in time begins at thetop line and moves downward. The depiction of the behavior of the automata withinthese classes is simplified here to a large extent. Moreover, it must be consideredthat a CA on a finite toroidal (see below) grid will always display periodic behaviordue to the fact that the possibilities with regards to placing cells on this grid arefinite. So, if a CA perpetually generates new settings of cells (patterns) on a grid,a pattern must inevitably recur at some point. Because a traditional CA is based ondeterministic rules, from now on, the patterns on the grid will constantly be repeatedwithin this period. Given an infinite grid and a correspondingly infinite memory in acomputer, a particular CA could naturally and continually generate its patterns anewwithout ever lapsing into a cycle.1

Fig. 8.3 The four classes (from left to right) of 1-dimensional cellular automata [33, p. 231]. c!2002 Stephen Wolfram, LLC. All rights reserved. Used with permission.

Figure 8.4 shows a cellular automaton of class 3 of rule 30. The representationdepicts the changes of the CA in a cycle from top to bottom.2

1 But due to the fact that even space is curved, this innovative CA will, unfortunately, also fall intoa periodical cycle.2 The graphic representations were produced with the software program Mcel [32], unless other-wise noted.

Figura 6.1: Quatro classes de autômatos celulares[Wol02]

Para as 28 = 256 regras de geração possíveis com R = 1, temos os resultados apresentadosna Figura 6.2.

6.1.2 Autômatos Celulares BidimensionaisO exemplo mais conhecido de autômato celular bidimensional é o descrito por [Gar70] onde:• Se uma célula vazia tem exatamente três vizinhos adjacentes, um contador é colocado sobre

ele• Todo contador com dois ou três contadores vizinhos sobrevive• Em qualquer outro caso, nenhum contador é colocado na célulaEstas regras simples podem levar a um autômato complexo onde alguns padrões têm a

capacidade de andar sobre a grade sem mudança de estrutura. Outros padrões, mudam suaconfiguração com o tempo.

6.1.3 Autômatos Celulares TridimensionaisO desenvolvimento temporal de um autômato tridimensional pode ser representado dentro de umcubo onde 26 células são consideradas para determinar a mudança de cada célula.

6.1.4 Autômatos Celulares EspeciaisQuando as mudanças de estados não são discretas, temos autômatos celulares contínuos [Wol02],com estados sendo representados usualmente por valores entre 0 e 1.

Uma outra extensão simples de autômatos celulares é a inclusão de chance e variação deregras de acordo com probabilidades definidas. Uma alternativa também ocorre quando aspróprias regras podem ser utilizadas para alterar as probabilidades.

Uma terceira variação nos autômatos celulares pode ser em relação ao formato da grade, quepode não ser retangular e pode até ter mais que 3 dimensões.

Em suma, os formalismos mais básicos dos autômatos podem ser alterados ou estendidos.Pode-se alterar, regras estruturais, como a estrutura espacial de disposição das células com suasdimensões, ou regras funcionais, como o número de estados e regras de transição.

Page 31: Métodos de Composição Algorítmica - alandefreitas.com · composição algorítmicas podem ser também ... que os resultados sejam comparáveis com resultados humanos através

6.2 Considerações 31

Figura 6.2: 256 regras de geração possíveis com R = 1

6.2 Considerações

Autômatos celulares podem ser comparados a sistemas de substituição como sistemas de Linden-mayer que produzem símbolos de mesmo tamanho a cada geração [DuB03]. A diferença entre osdois sistemas é que os sistemas de Lindenmayer produzem um número crescente de símbolos etêm resultados razoavelmente previsíveis devido à auto-similaridade, que não acontece na maior

Page 32: Métodos de Composição Algorítmica - alandefreitas.com · composição algorítmicas podem ser também ... que os resultados sejam comparáveis com resultados humanos através

32 Capítulo 6. Autômatos Celulares

parte dos casos de autômatos celulares. Apesar da simplicidade das regras em um autômatocelular, o comportamento destes sistemas é complexo e difícil de prever.

Quando posições de células representam parâmetros musicais, ocorre saída de som quandoas mesmas são ativadas. Assim, a posição relativa das células deixa de ser irrelevante com omapeamento musical pois a grade representa um espaço de eventos musicais diversos. Isso levaa uma diferença com a estrutura toroidal comum em vários autômatos celulares pois se posiçõesde coluna, por exemplo, representam notas, uma passagem de um lado para o outro da grade levaa um intervalo máximo, mesmo que isso seja apenas um passo em uma estrutura toroidal.

Assim, precisa-se também determinar se o comportamento de algoritmo vai ser refletidoapenas em termos de mapeamento musical [Nie10]. Isso depende então das intenções docompositor ao escolher um certo algoritmo. Se a seleção do algoritmo não é feita com cuidado,o conteúdo gerado será arbitrário. Em qualquer caso, contudo, as características mais básicas dequalquer algoritmo deverão ser modificadas para atender às ideias do compositor.

Assim como nos sistemas de Lindenmayer, autômatos celulares são um paradigma utilizadopara ideias de composição novas e pessoais. A composição de novas peças em que há imitação deestilo é não pouco factível com este tipo de paradigma pois não há onde haver uma incorporaçãoexplícita de um banco de dados na estrutura dos autômatos. Uma implementação de cópia deestilo só é teoricamente possível implicitamente com regras de algum modo representem algumconceito de composição em algum estilo.

Page 33: Métodos de Composição Algorítmica - alandefreitas.com · composição algorítmicas podem ser também ... que os resultados sejam comparáveis com resultados humanos através

Redes PerceptronOutros Tipos de Redes NeuraisConsiderações

7. Redes Neurais Artificiais

Uma das razões da popularidade Redes Neurais Artificiais é a relação com o modo comoa informação é processada biologicamente. Componentes, chamados de neurônios, formamunidades de informação cuja estrutura se adapta para resolver problemas. Elas foram criadaspara reconhecimento de imagens mas em composição algorítmica podem ser úteis por gerarcomo saídas sequências de notas que não precisam ocorrer necessariamente na base de dadosestudada.

Impulsos são conduzidos entre os neurônios, que reagem a estes impulsos de diferentes ma-neiras. Usualmente, os neurônios transmitem a informação baseando-se em um limiar que ativaa transmissão de informação. Estas redes neurais podem ser úteis em diversas aplicações, depen-dendo da organização dos neurônios. Tarefas comuns para redes neurais são reconhecimento depadrões, classificação e predição.

Os problemas com Redes Neurais ocorrem quando passagens longas sensíveis a contextosão consideradas. Estas podem ser melhor tratadas com gramática gerativas. Em aplicações decomposição, as Redes Neurais podem fazer parte de sistemas híbridos.

O neurônio é o elemento mais básico das redes neurais. Cada neurônio pode receberinformação de outro neurônio ou do próprio ambiente. Este mesmo neurônio tem uma função deativação que determina a resposta do neurônio de acordo com um certo limiar. Estas funções deativação são usualmente sigmóides.

O modo como os neurônios são organizados definem a topologia da rede e são tambémcaracterística decisiva da rede. Quando neurônios só se conectam a outros neurônios, semcontato direto com as entradas ou saídas, este são ditos estar na camada escondida. Modelosconhecidos de redes neurais são os perceptron, adaline, mapas organizáveis de Kohonen eperceptron multicamadas [Yeg04].

As redes sem realimentação (feedforward) são aquelas onde há uma camada apenas deentrada e outra de saída, sendo as outras possíveis camadas chamadas de camadas ocultas. Nestasredes, as conexões seguem apenas uma direção da entrada à saída.

O algoritmo de treinamento destas redes deve ser mais complexo se há camadas ocultas,onde a rede é chamada de perceptron multicamadas. As redes podem também ser recorrentes outer conexões que ignoram camadas ocultas. Assim, há várias distinções que podem ser feitas emrelação à estrutura da rede e mesmo seus algoritmos de treinamento.

Page 34: Métodos de Composição Algorítmica - alandefreitas.com · composição algorítmicas podem ser também ... que os resultados sejam comparáveis com resultados humanos através

34 Capítulo 7. Redes Neurais Artificiais

7.1 Redes Perceptron

Redes percepton em sua forma mais simple não têm camadas internas e a informação de entradaé diretamente enviados pelos neurônios para a saída. Uma função de limiar e pesos são aplicadosaos neurônios.

Um algoritmo baseado em regra delta faz o treinamento supervisionado da rede. Nestealgoritmo, os pesos dos neurônios são atualizados em relação ao erro corrente da rede [Yeg04].

Um problema destas redes perceptron de uma camada é que não é possível resolver problemasde funções não lineares separáveis. Um modelo estendido de perceptron tem mais camadas deneurônios e requer um algoritmo mais complexo de treinamento.

Uma rede perceptron de retropropagação (Backpropagation net) ou perceptron multicamadas(Multilayer Perceptron) inclui mais camadas ocultas ao modelo do perceptron. O método deaprendizado supervisionado para estas redes é o algoritmo de retropropagação, onde os pesostambém são alterados de acordo com os erros da rede em relação aos valores ideais de saída.

O algoritmo é chamado de retropropagação pois os pesos são alterados inicialmente dosneurônios da saída aos neurônios da entrada. Em uma rede percetron de três camadas, qualquernúmero de conjuntos de classificação podem ser gerados pelo superposição de polígonos gerados.Camadas adicionais não levam a nenhuma diferença de potencial.

7.2 Outros Tipos de Redes Neurais

7.2.1 Redes RecorrentesEste tipo de rede neural é utilizado quando a informação em iterações passadas é importante paraa saída corrente. Nestas redes, a saída de um neurônio pode ser conectada à mesma camada ou auma camada anterior.

7.2.2 Mapas de KohonenEstas redes são utilizadas para tarefas de classificação sem treinamento supervisionado. Nestasredes, há uma camada de entrada, cujo cada neurônio é conectado a cada neurônio em umasegunda camada do mapa. Já os neurônios do mapa são completamente ligados entre si.

A apresentação de dados à rede pode treiná-la para classificação de dados através de ajustede pesos, que são inicialmente aleatórios. Em cada etapa de treinamento, um neurônio vencedoré decidido para influenciar o pesos de neurônios relacionados.

7.2.3 Redes HopfieldAs redes Hopfield são usadas para alocar as entradas em categorias dadas. Nestas redes, há umaúnica camada camada de neurônios todos conectados entre si. Os pesos iniciais são dados porum padrão a ser reconhecido e um processo iterativo define se a entrada corresponde aos padrõesreconhecidos.

7.3 Considerações

Apesar da capacidade de processamento de uma rede neural artificial é muito baixa comparadaàs redes neurais naturais, estas redes podem resolver vários problemas complexos se bemprojetadas. Para a aplicação em tarefas musicais, arquiteturas de rede novas usualmente precisamser projetadas.

Frequentemente as redes também são utilizadas para subproblemas musicais em estruturashíbridas. As redes podem ser utilizadas para a geração de valor de fitness de soluções emalgoritmos genéticos.

Page 35: Métodos de Composição Algorítmica - alandefreitas.com · composição algorítmicas podem ser também ... que os resultados sejam comparáveis com resultados humanos através

7.3 Considerações 35

Talvez o aspecto estrutural mais essencial da utilização de redes neurais para tarefas musi-cais é o modo como a informação é representada. As possibilidades de representação locais,distribuídas, absolutas ou relativas têm efeito significante nos resultados da rede de acordo como tipo de informação sendo processada.

Em todos os trabalhos, porém, a saída das redes neurais mostram fraqueza em relação àcapacidade de generalização e contextualização em peças longas. De certo modo, isto decorre doalgoritmo de retropropagação, que pode não ter a capacidade de processar contextos complexos.Porém, este é um problema comum à maior parte dos métodos de composição algorítmica semprocessamento hierárquico de informação [Nie10].

Assim, para a geração de material onde há relação de contexto em passagens longas, gra-máticas gerativas podem ser mais recomendadas. Se há conhecimento suficiente sobre o estilo,sistemas baseados em regras podem ser preferíveis. Além destes problemas, as saídas de re-des neurais frequentemente chegam a um estado estacionário em relação aos eventos musicaispassados considerados como entrada.

Para a produção de passagens curtas, as redes podem ter vantagens sobre outros métodosde composição que só geram transições que eram existentes no banco de dados. Nestes casos,as redes podem gerar soluções inesperadas que ao mesmo tempo atendam a características dobanco de dados original.

Page 36: Métodos de Composição Algorítmica - alandefreitas.com · composição algorítmicas podem ser também ... que os resultados sejam comparáveis com resultados humanos através
Page 37: Métodos de Composição Algorítmica - alandefreitas.com · composição algorítmicas podem ser também ... que os resultados sejam comparáveis com resultados humanos através

BiologiaRepresentaçãoInicialização e Estrutura da PopulaçãoSeleçãoOperadores GenéticosFunção de Avaliação e Definição da Apti-dãoSubstituição dos PaisConsiderações

8. Algoritmos Genéticos

A CE envolve os métodos baseados na evolução natural [Dar03]. Soluções para problemaspodem se juntar para formar potenciais novas soluções que serão provavelmente melhores que aprimeira em decorrência de uma pressão seletiva. Estes métodos foram inicialmente propostospara resolver problemas de otimização [Ree10] pois é uma técnica útil para difíceis problemas debusca onde há uma maneira de avaliar soluções mas não se conhece algoritmo capaz de encontrara solução ótima em tempo polinomial.

O que estas soluções podem representar é uma questão muito ampla e inclui especificaçõesde motores, programações de horários com restrições, músicas ou controle de parâmetros de umprocesso qualquer. Em consequência, estes algoritmos se tornaram um arcabouço flexível paravários tipo de aplicações, incluindo trabalhos criativos.

Os principais componentes de um AG são:• Cromossomos com conhecimento sobre a estrutura da solução. A informação no cromos-

somo mapeia a um fenótipo que passa por um processo de seleção natural. Os cromossomospodem representar informação musical na forma de notas, frequências ou eventos.• Um processo de seleção que julga as soluções de acordo com uma função de avaliação.

Este operador seleciona quais cromossomos devem ter a oportunidade de se reproduzir epassar parte de seus valores para as gerações seguintes. Assim, espera-se que geraçõesmais avançadas tenham melhores indivíduos. O cálculo do fitness para tarefas musicais énormalmente heurístico, interativo ou baseado em regras [MB07]. Cada um deles tem suasvantagens e desvantagens.• Operadores Genéticos que são estruturados considerando informação e premissas sobre

como a busca de novas soluções deve ser conduzida. Neste nível, estes operadores devemser capazes de combinar informação previamente selecionada contida em soluções correntesde maneira efetiva e ter potencial para explorar todas as soluções possíveis. Além disso, emsistemas musicais, estes operadores podem ser guiados para não gerar soluções consideradasfora de contexto, ou inviáveis.

Estes sistemas podem, por exemplo, encontrar resultados para a tarefa de harmonizar me-lodias [PTW99], porém existem algumas dificuldades. A primeira delas é que não há garantiade se encontrar a solução ótima, o que é compreensível para programas dos quais se esperamque resolvam tais problemas. A segunda complicação é que AG podem se tornar sistemas comalto custo computacional quando muito conhecimento é adicionado ao sistema. Este tipo de

Page 38: Métodos de Composição Algorítmica - alandefreitas.com · composição algorítmicas podem ser também ... que os resultados sejam comparáveis com resultados humanos através

38 Capítulo 8. Algoritmos Genéticos

conhecimento é indispensável para qualquer sistema que produz bons resultados.É fundamental que pelo menos uma mínima base de conhecimento sobre a área seja modelada

para o AG para que este possa ao menos distinguir entre soluções boas e ruins. Para sistemasde CA, informação deve ser embutida em todo o sistema para que ocorram soluções aceitáveisem termos de alturas tonais, durações e harmonia. É importante considerar como embutir estetipo de informação não apenas na função de fitness mas também em outras feições do algoritmocomo a representação das soluções, pois um algoritmo não pode gerar nenhuma solução nãocodificável em seu formato de representação.

Há muita discussão sobre o papel de sistemas adaptativos em música, principalmente pelanatureza do problema, que pode não ser tão bem definido como outros problemas de otimização1.De qualquer maneira, a CE oferece um arcabouço que pode ser extremamente útil para trabalhoscriativos e nesta seção será feita uma discussão sobre o papel destes sistemas para aplicaçõesmusicais.

8.1 Biologia

Os AG são heurísticas de busca que copiam de certo modo o comportamento da evolução naturalassim como definida por [Dar03]. É um método muito utilizado para a procura de soluções paraproblemas de otimização por sua grande flexibilidade.

Assim como na biologia, várias soluções podem ter um genótipo (sua representação) comvários traços herdáveis. Estes traços são transmitidos de geração a geração. Quando um traço éherdado várias vezes, tem-se um sinal de que este seja um traço positivo para o problema emquestão. Com o passar do tempo alguns indivíduos não sobrevivem e outros dão origem à novageração, com alguns traços que estarão provavelmente repetidamente presentes, a qual espera-seter maior aptidão.

Em seus estudos iniciais, Darwin não sabia exatamente como as variações ocorriam entreas gerações. Este problema foi resolvido pela genética moderna, que criou a base teóricapara explicar os processos genéticos, como mutações e recombinação, que levam a variarmais substancialmente o genótipo dos novos indivíduos. As mutações podem gerar opções deexploração da solução, que não seriam exploradas apenas pelo cruzamento.

Como o genótipo leva sempre a um fenótipo, e uma seleção natural atua sobre este, espera-seque os melhores indivíduos tenham maior chance de sobreviver para as próximas gerações. Arepresentação esquemática de um AG está na Figura 8.1.

No algoritmo, uma população que é representada por cadeias de caracteres, chamadas decromossomos, formam os indivíduos, que não são nada mais do que possíveis soluções para umproblema. Com o processo evolutivo, melhores soluções passam a ser geradas com o tempo. Umpseudocódigo simplificado de um AG pode ser descrito como no Algoritmo 8.1.

Algoritmo 8.1: AGEntrada: População de indivíduos, Função ObjetivoResultado: Indivíduoenquanto critério de parada não é satisfeito faça1

Lista dos Pais← Seleção(População de Indivíduos, Função Objetivo);2

População← Reprodução(Lista de Pais);3

População←Mutação(População);4

fim5

retorna O melhor indivíduo analisado durante o processo;6

1Assim como todas as aplicações destes métodos para criação de arte

Page 39: Métodos de Composição Algorítmica - alandefreitas.com · composição algorítmicas podem ser também ... que os resultados sejam comparáveis com resultados humanos através

8.1 Biologia 39

Pais

Avaliar a População

AvaliarDescendentes

Substituição

SeleçãoRecombinação

Mutação

Inicializar

Figura 8.1: Representação Esquemática de um Algoritmo Evolutivo

A função-objetivo contém uma função capaz de analisar a qualidade de um indivíduo e porisso é necessária para que a lista dos pais seja gerada levando em consideração a qualidade destesindivíduos. Assim, esses indivíduos que provavelmente são de boa qualidade geram uma novapopulação que passará pelo mesmo processo.

Estes tipos de algoritmos têm várias funções musicais, área normalmente denominada MúsicaEvolutiva (ME). As áreas de maior atenção em ME são composição e design de som. Naquela, afunção-objetivo pode ser a similaridade com um determinado compositor ou estilo, podendo-seassim evoluir peças à maneira de um compositor ou estilo específico, como feito por [Bil94].Quando o trabalho é desenvolvido no sentido de um estilo particular de composição, é maisfácil definir critérios que levarão ao objetivo proposto. Já em trabalhos com a necessidade decomposições mais criativas ou inovadoras, a criação de um algoritmo é mais desafiadora.

Na área de design de som, a técnica já tem a sua eficácia comprovada para sintetizar sons apartir de sons alvos ou desenvolver novos sons [Joh03]. O genótipo dos indivíduos pode ser feitopelos parâmetros que definem os sons. Nos casos em que se precisa achar sons parecidos com umcerto instrumento tradicional, a proximidade com o dado instrumento pode ser a função-objetivo.Já para a procura de novos sons, é mais difícil a relação com funções objetivo e a avaliaçãohumana é a norma [Woo99].

A melhor escolha dos operadores genéticos, da forma de representação, função de avalia-ções, assim como outros pontos da implementação dependem muito do ramo de aplicação doalgoritmo e uma análise dos experimentos realizados presentes na literatura é fundamental parao desenvolvimento de um algoritmo deste tipo.

Talvez uma das mais intrigantes perguntas a serem respondidas antes de determinar comocriar um AE para CA é como determinar a qualidade de uma solução e, caso esta determinaçãoseja feita por um mentor humano, como evitar um gargalo de fitness, ou seja, o tempo gastopara avaliar várias soluções que pode atrapalhar ou até impedir o mentor de fazer uma avaliaçãojusta das soluções. Além disso, é importante definir quais serão as soluções iniciais, que podemser diversas porém não musicais, ou musicais e não criativas. Em muitos casos a definiçãodo problema não é coerente, o que faz o algoritmo convergir para soluções “corretas"que nãoatendem ao objetivo inicial.

Page 40: Métodos de Composição Algorítmica - alandefreitas.com · composição algorítmicas podem ser também ... que os resultados sejam comparáveis com resultados humanos através

40 Capítulo 8. Algoritmos Genéticos

AG são sistemas muito complexos e difíceis de analisar. Vários resultados puramenteempíricos são encontrados na literatura, sendo às vezes inconsistentes para a comparaçãoentre métodos para a mesma aplicação. Porém o entendimento de como os AE funcionamsempre pode ser obtido por análise de alguns estudos prévios que são úteis para poupar tempoconsideravelmente no desenvolvimento de novos sistemas.

Nas próximas subseções serão analisadas quais questões precisam de resposta para o desen-volvimento de sistemas de CA baseados em AG.

8.2 Representação

A representação de um indivíduo é usualmente feita por uma cadeia de caracteres que representaa solução de alguma maneira. Nos AG mais tradicionais, essas cadeias eram representadasapenas com 0s e 1s.

A representação da solução é denominada genótipo e dependendo da aplicação específica,genótipos simples podem levar a fenótipos mais complexos. Estes genótipos podem ter tamanhofixo, como na representação de uma rota que passe sempre por n cidades, ou variável, como narepresentação de uma melodia que pode ter um número indefinido de notas com suas respectivasdurações.

De qualquer maneira, é sobre o fenótipo que o processo evolutivo atua. Diferentes genótiposterão o mesmo valor de função-objetivo se estes levam a fenótipos iguais. Assim, pode-se inferirque diferentes representações podem existir para o mesmo problema. Estas representações,porém, não são sempre igualmente boas.

Por exemplo, uma lista de tarefas pode ser representada por um vetor com os números dastarefas possíveis em sua ordem de execução ou por uma tabela na qual é marcado 1 quando a tarefaé executada em um certo horário e 0 quando nada acontece. A primeira opção provavelmenteserá mais maleável na maioria dos casos.

Em alguns casos a representação de uma solução é óbvia, isto acontece quando a soluçãorepresenta os parâmetros de processos. Neste caso, basta guardar os próprios parâmetros doprocesso como genótipo da solução. Em alguns casos uma representação boa pode não ser tãoóbvia, como na codificação de um compasso de uma música.

O conjunto de todas as soluções possíveis é denominado espaço de busca ou espaço desoluções. Representações ruins levam a uma difícil exploração deste espaço de busca e o AE setorna inútil. Em ME, por exemplo, uma representação mal feita pode gerar soluções que sejamaté boas de fato mas que utilizam notas que não podem ser executadas por instrumentos reais.

Assim, convém analisar como a representação genética dos componentes mais importantespara sistemas de CA pode ser feita. A representação depende muito da expectativa do compor-tamento do gerador musical, que pode respeitar apenas escalas previamente definidas, utilizarcromatismos entre as notas ou ser totalmente livre. Existem basicamente 3 abordagens utilizadaspara representar a altura tonal de cada nota em sistemas de CA.Absoluta Existem códigos MIDI que se referem a notas específicas. Assim, pode-se usar

um número para representar cada nota de maneira absoluta. A grande vantagem destaabordagem é sua simplicidade.

Relativa As notas podem também ser especificadas em relação a outra nota de referência. Assim,apenas a diferença entre a nota em questão e a nota de referência precisa ser especificada.Exemplos de notas que podem ser usadas como notas de referências são a última notade uma determinada frase, verso ou compasso; a primeira nota de uma frase; a base daharmonia, ou seja, a nota fundamental da harmonia no momento em que a nota é executada;ou qualquer outra nota que sirva como base para a melodia. Nesta abordagem, quandoocorrem mudanças genéticas no genótipo, o fenótipo continua sempre a corresponder à nota

Page 41: Métodos de Composição Algorítmica - alandefreitas.com · composição algorítmicas podem ser também ... que os resultados sejam comparáveis com resultados humanos através

8.2 Representação 41

Tabela 8.1: Escalas que podem auxiliar o mapeamento do genótipo de uma melodia em fenótipo[Bil07]

Acorde Escala NotasCmaj7 Maior (sem 4a) C D E G A B

C7 Mixolidiana (sem 4a) C D E G A B[Cm7 Menor (sem 6a) C D E[ F G B[

Cm7[5 Lócria (sem 2a) C E[ F G[ A[ B[Cdim Diminuta W/H (Whole/Half ) C D E[ F F# G# A BC+ Lidiana Aumentada C D E F# G# A BC7+ Whole Tone C D E F# G# A#

C7#11 Lidiana Dominante C D E F# G A B[C7#9 Alterada C D[ E[ E F# G# B[C7[9 Diminuta H/W (Half /Whole) C D[ E[ E F# G A B[

Cm7[9 Frígia C D[ E[ F G A B[Cmaj7#11 Lidiana C D E F# G A B

de referência. O genótipo pode ser mapeado em um fenótipo de acordo com a progressãoharmônica de dado compasso e a referência de escalas como as da Tabela 8.1 [Bil94].

Deslocamento de Escala A harmonia pode ser utilizada para determinar um código para cadanota. Deste modo, se se define que escalas serão sempre respeitadas as notas poderão seras notas em relação à escala dada. Pode-se inclusive descartar notas não pertencentes àsescalas em questão.

Outra abordagem possível para representação das notas seria, é claro, o código da frequênciaabsoluta de cada nota. Esta abordagem é raramente utilizada em sistemas de composição, já quea intenção final é trabalhar com alturas tonais e não com frequências.

Além das notas, é usualmente importante definir como será representado o ritmo, o tempo deinício e duração de cada nota. A representação mais comum é a orientada por ritmo, ou seja, como tempo definido em relação às pulsações da música. É necessário lembrar de definir a duraçãode cada nota quando projetar um modo de representação da solução. Esse tipo de representaçãoé muito útil para músicas que são orientadas pela pulsação.

Outra abordagem é a absoluta, que é a utilização de medidas de tempo reais, como milisse-gundos. Estas representações fogem ao contexto de músicas orientadas a pulsação e são maisapropriadas para composições onde eventos acontecem em tempos específicos.

Em alguns casos também é necessário codificar sequências de eventos que podem representarlinhas melódicas com seu ritmo e notas. Para isto, as abordagens normalmente são:Baseadas em posição para a representação de compassos ou frases. Nesta abordagem, existe

uma posição de memória disponível para cada pulso ou subdivisão de pulso e a nota a serexecutada fica salva nesta posição. Assim, os genes representam notas e ritmos ao mesmotempo, enquanto o tamanho do cromossomo pode ser fixo e ser definido pela granularidadeda divisão tomada como necessária [Bil94]. Por exemplo, com uma codificação de 4 bits, osímbolo 0 pode representar uma pausa na melodia, 15 a continuidade da nota anterior e ossímbolos de 1 a 14 notas específicas, assim como na Tabela 8.2 e 8.3.

Baseadas em ordem para resolver também o problema de duração. Nesta abordagem, as notassão salvas de acordo com a ordem em que aparecem na música. Cada nota é representadapor sua altura, tempo e duração.

Baseadas em árvores para abordagens que definam a música como uma estrutura hierárquica.

Page 42: Métodos de Composição Algorítmica - alandefreitas.com · composição algorítmicas podem ser também ... que os resultados sejam comparáveis com resultados humanos através

42 Capítulo 8. Algoritmos Genéticos

Tabela 8.2: Mapeamento possível para uma representação baseada em posição

Código Binário Valor Decimal Representação0000 0 Pausa0001 1 C0010 2 C#0011 3 D0100 4 D#0101 5 E0110 6 F0111 7 F#1000 8 G1001 9 G#1010 10 A1011 11 A#1100 12 B1101 13 C1110 14 C#1111 15 Sustentação

Tabela 8.3: Um indivíduo formado com o mapeamento da Tabela 8.2

Genótipo Binário 0010 | 1111 | 1111 | 0111 | 1100 | 0010 | 1111 | 1111Genótipo Decimal 2 | 15 | 15 | 7 | 12 | 2 | 15 | 15

Fenótipoþ� þ� � �þ�� � � ��

Esta abordagem vem da programação genética [JP98]. Os nós interiores podem mapearfunções musicais como sequências, repetições e acordes. Já as folhas podem mapear notas,descansos ou melodias. Assim existe a vantagem de se estender a estruturas de níveis maisaltos.

8.3 Inicialização e Estrutura da População

Após decidir a abordagem utilizada para representar o conteúdo musical, é importante definircomo será a população inicial do processo evolutivo.

Do ponto de vista tradicional dos AG, o mais comum seria gerar a população inicial demaneira totalmente aleatória. Isso dá mais probabilidade ao AG de convergir para soluçõesboas pois mais opções do espaço de busca estão sendo exploradas. Este modo de inicializar apopulação, apesar de ser natural na perspectiva de AG é normalmente muito pouco musical eartístico. Isso se deve principalmente ao fato desta abordagem gerar intervalos horizontais muitolargos na composição. Além disto, desta maneira, compassos teriam uma distribuição aleatóriade notas, o que pode não ser considerado muito musical.

Quando a população inicial é criada aleatoriamente e um mentor avalia a população paradefinir sua função objetivo, esta avaliação fica muito difícil. Isso ocorre pois é extremamente

Page 43: Métodos de Composição Algorítmica - alandefreitas.com · composição algorítmicas podem ser também ... que os resultados sejam comparáveis com resultados humanos através

8.4 Seleção 43

complicado distinguir qual melodia é mais musical em uma população de melodias criadasaleatoriamente. Nesta população, provavelmente todas as melodias serão igualmente ruins, oque impede o processo evolucionário. O importante é que haja como definir pelo menos quaiselementos da população são bons ou ruins. Um exemplo de uma aplicação destas foi feita por[BV97].

Para a criação de um material inicial mais discernível, pode-se usar uma população inicialsemi-aleatória. Neste caso, usa-se normalmente material “real"como população inicial. Estematerial terá assim relação com material real antes de partir para o processo evolutivo. Assim, oprocesso evolutivo pode iniciar-se a partir deste material melódico até alcançar novas composi-ções. Para a geração deste material inicial semi-aleatório, existem aplicações utilizando desdegeradores fractais [Gar78] até cadeias de Markov [HI58]. A ideia é criar inicializadores aleatóriosinteligentes, que pelo menos se assemelhem com música, e assim possibilitar a avaliação por ummentor.

Uma terceira possibilidade para inicializar a população é a utilização de um banco de dadosde músicas de qualidade. Neste caso, é garantida a inicialização da população com indivíduosaceitáveis, o que torna o processo evolutivo um pouco mais fácil com o que pode ser consideradouma trapaça do ponto de vista dos AG onde a população inicial é totalmente aleatória parafacilitar a exploração do espaço de busca. Esta população inicial pode vir tanto do usuário[Ral95] quanto do estudo de um estilo específico [Pre01].

Mesmo com indivíduos que não sejam criados de forma aleatória, é possível desenvolveroutros indivíduos muito pouco relacionados com os iniciais, diversos e muito musicais se existemoperadores genéticos musicalmente cientes, como será analisado na seção 8.5. É importanteque, caso possível, a origem de cada um destes compassos seja sempre marcada como modo demanter a diversidade na população.

Após a criação destes indivíduos iniciais, a população terá os genótipos de seus indivíduose suas informações associadas, como o fitness. A população é normalmente de tamanho fixo emuda a cada geração.

8.4 Seleção

Quando os indivíduos são selecionados para reproduzir ou para sobreviver, isto não ocorre deforma totalmente aleatória: os indivíduos mais aptos têm maior chance de seleção. Isto é o quefaz crer que após algumas gerações existirão indivíduos melhores que seus ascendentes.

O modo mais simples para resolver este problema é o método da roleta. Neste método, éutilizada uma roleta onde os indivíduos mais aptos têm uma maior parte da roleta. Assim, aroleta gira e os indivíduos mais aptos normalmente sobrevivem, deixando também uma chancepara os indivíduos menos aptos, assim como demonstrado na Figura 8.2.

Neste esquema, sendo o fitness de um indivíduo denominado fi, a porcentagem P(x) referenteao indivíduo x na roleta é expressa pela Equação 8.1, sendo n o tamanho da população.

P(x) =fx

∑ni=1 fi

(8.1)

Um problema deste método é que no início do processo as disparidades entre os bons eruins indivíduos são muito grandes. Assim, este método pode favorecer os indivíduos que sãorelativamente aptos no início mas não seriam bons indivíduos finais para o problema. Isto édenominado convergência prematura.

Uma maneira simples de resolver este problema é utilizar uma seleção baseada em posições,onde a possibilidade de seleção de um indivíduo não fosse dependente de seu fitness mas sim de

Page 44: Métodos de Composição Algorítmica - alandefreitas.com · composição algorítmicas podem ser também ... que os resultados sejam comparáveis com resultados humanos através

44 Capítulo 8. Algoritmos Genéticos

A roleta é rodadaescolhendo-se um ponto aleatório

Melhor indivíduo temmaior quota da roleta

Pior indivíduo temmenor quota da Roleta

Figura 8.2: Método da Roleta

sua posição entre os melhores e piores indivíduos, de acordo com uma fórmula específica, assimcomo na Figura 8.3.

PosiçãoProbabilidade de Seleção

Método 1Método 2

Figura 8.3: Duas Maneiras Possíveis de Fazer uma Seleção baseada em Posições

Na Figura 8.3, duas funções possíveis para fazer uma seleção baseada em posições sãorepresentadas. Com esta abordagem, os indivíduos são ordenados do melhor para o pior, sendo xa posição do indivíduo nesta ordenação. O valor de fx que define a porção deste indivíduo naroleta, passa a ser f (x), de acordo com uma função como uma das duas representadas na Figura8.3. Deste modo, pode-se evitar a diferença de valores na roleta entre as primeiras e as últimasgerações.

O processo de seleção será dependente do modo como os indivíduos são avaliados. A seleção

Page 45: Métodos de Composição Algorítmica - alandefreitas.com · composição algorítmicas podem ser também ... que os resultados sejam comparáveis com resultados humanos através

8.5 Operadores Genéticos 45

pode ser totalmente baseada em aptidão, o que é o mais puro do ponto de vista dos AG. Este é ummodo bom de fazer o processo em esquemas de otimização porém pode ser ruim para processosem que se usa a CE para gerar arte. Isso ocorre pois às vezes, em arte, não é importante encontraro melhor indivíduo possível de acordo com um critério e sim achar uma população de frases boase coerentes entre si. Esta característica destaca bem a diferença entre otimização e exploração doespaço de busca.

A seleção também pode ser musicalmente ciente, onde os indivíduos selecionados dependemda compatibilidade entre si ou existe um mentor humano que avalia os indivíduos. A utilizaçãode um mentor pode ser boa para sistemas colaborativos mas tem várias desvantagens sendo amaior delas o gargalo de fitness, onde o longo tempo levado para a avaliação atrasa muito oprocesso evolutivo.

Uma outra saída possível, é fazer esta seleção aleatoriamente, o que tira a pressão seletiva,fator fundamental dos AG. Estas abordagens podem ser apropriadas quando existe uma medidade fitness porém deve-se estudar como a população pode melhorar na falta desta medida. Estasespecificidades serão melhor discutidas na seção 8.6.

Em sistemas evolutivos que trabalham com arte, é ainda mais importante que nem sempreapenas os melhores indivíduos passem para as próximas gerações, já que a manutenção dadiversidade pode ser tão importante quanto a geração de bons indivíduos. Assim como nanatureza, nem sempre os melhores indivíduos são os que procriam mais. Na natureza, “errar"podeser um modo importante de testar novas possibilidades. Na definição de um sistema destes, énecessário definir o quanto é possível explorar soluções que podem talvez ser vistas no momentocomo insuficientemente boas para explorar algo diferente do que pode dominar a população.

8.5 Operadores Genéticos

A criação de novos indivíduos através das gerações é feita pelos operadores genéticos, quepossibilitam que não só os indivíduos iniciais sejam testados mas que também ocorra de fatoum processo evolutivo. Os operadores mais comuns são os de cruzamento e mutação, porémdiferentes operadores mais complexos podem surgir dependendo da área de aplicação.

Estes operadores podem ser cegos ou guiados, ou seja, podem não ocorrer de forma total-mente aleatória. Isto pode ajudar em aplicações musicais já que nem sempre transformaçõestotalmente aleatórias são bem vindas. Se o gene é uma nota, por exemplo, as mutações podemser guiadas para que certas regras harmônicas ou melódicas não sejam quebradas no processo.

O processo de cruzamento, via de regra, se baseia em criar um ponto de corte que possa unirum elemento ao outro para criar um novo indivíduo enquanto a mutação, normalmente é feitaatravés da troca de valor de um gene qualquer2. Exemplos básicos destes operadores estão naFigura 8.4.

8.5.1 CruzamentoNo operador de cruzamento tradicional é escolhido um ponto de corte aleatório para a divisãodos pais e formação dos filhos. Deste modo, o potencial da população pode ser muito bemexplorado já que mais combinações entre os pais podem ser formadas e os filhos podem terfenótipos bem diferentes dos pais. Esta é uma boa abordagem para problemas de otimização eproblemas musicais que se reduzem a otimização, como combinação de sons e harmonia.

Quando se trata de ME, o operador de cruzamento quase nunca poderá ser usado plenamentena sua forma tradicional3 pois muitas vezes a intenção é gerar uma população boa e não um bom

2Nos casos mais simples, de 1 para 0, ou de 0 para 1.3Como forma tradicional, denota-se a forma antiga de utilização do operador: a nível de bits. Grande parte das

aplicações atuais não utiliza esta forma de cruzamento.

Page 46: Métodos de Composição Algorítmica - alandefreitas.com · composição algorítmicas podem ser também ... que os resultados sejam comparáveis com resultados humanos através

46 Capítulo 8. Algoritmos Genéticos

Cruzamento

Mutação

Figura 8.4: Operadores de Cruzamento e Mutação

indivíduo apenas. Com a análise do fenótipo dos indivíduos, é possível assim escolher pontos decorte que sejam vantajosos para a geração de material melódico como, por exemplo, os pulsos deuma música. Além do ponto de corte, a maneira como o material é trocado entre os pais tambémpode ser usada para fazer o operador mais musicalmente ciente.

Via de regra, em ME, os pontos de corte operam a nível de notas mais do que a nível de bits.Isso ocorre pois a nível de bits novas notas poderiam ser geradas no cruzamento e estas novasnotas provavelmente levariam a soluções que ou não valem a pena ser consideradas ou não criammudança substancial no indivíduo. Essas mudanças seriam provavelmente intervalos verticaisabsurdos, como o exemplo da Figura 8.5, onde é usado como exemplo o mesmo mapeamento daTabela 8.2 e o cruzamento a nível de bits cria eventos que são inexistentes em ambos os pais efazem pouco sentido musical.

á

� �

á� �

á

��

��

� �

� �á�

��á �

Filhos 2

Filhos 1

Pais

��á

á

�áFilho 2

áFilho 1

Filho 1

Pai 1

Filho 2

� á

�� á

��á�

�Pai 2

á

á

��

Indivíduo Corte à esquerda Corte à direita Em decimalPai 1 0110 1100 1010 1101 111 1 1011 1010 1011 6 12 10 13 15 11 10 11Pai 2 1110 1111 0000 1110 100 0 0110 0010 0000 14 15 0 14 8 6 2 0

Filho 1 0110 1100 1010 1101 111 0 0110 0010 0000 6 12 10 13 14 6 2 0Filho 2 1110 1111 0000 1110 100 1 1011 1010 1011 14 15 0 14 9 11 10 11Filho 1 0110 1100 1010 1101 1111 0110 0010 0000 6 12 10 13 15 6 2 0Filho 2 1110 1111 0000 1110 1000 1011 1010 1011 14 15 0 14 8 11 10 11

Figura 8.5: Exemplo de Cruzamento a nível de bits e a nível de notas

Page 47: Métodos de Composição Algorítmica - alandefreitas.com · composição algorítmicas podem ser também ... que os resultados sejam comparáveis com resultados humanos através

8.5 Operadores Genéticos 47

8.5.2 MutaçãoO operador de mutação é utilizado para que mais soluções do espaço de busca possam serexploradas e é normalmente feito com uma simples mudança do valor de um gene qualquerdo indivíduo (bit-flop). Esta abordagem raramente funciona em ME, principalmente por gerardeslocamentos horizontais muito grandes na melodia, além de não ter relação estética qualquercom a arte em questão. Além disto, no caso da utilização de um mentor, este não pode ouvirum excesso de opções absurdas de melodias geradas por processos que apenas as mudam masprovavelmente não as melhoram. Em sistemas que funcionam em tempo real, também existe aexpectativa que as gerações futuras soem bem logo após a mutação.

Em sistemas para criação de arte é normalmente desejável que os indivíduos mutados sejammelhores do que seus ancestrais - ou pelo menos não piores. Assim, em ME os operadores nãopodem ser “burros"e baseados em baixas probabilidades. As mutações devem ser musicalmentesignificativas.

Uma alternativa muito simples é que os usuários possam mutar estes indivíduos a mão[US02]. Isso pode também ser considerado trapaça em relação a abordagens mais convencionaisde CE porém pode gerar bons resultados para usuários interessados em gerar sons agradáveismais do que mostrar do que a CE é capaz. Um problema deste tipo de mutação é o mesmo dautilização de um mentor para avaliação musical: o gargalo de fitness.

8.5.3 Operadores MusicaisPodem também entrar na fase de mutação, outros operadores que façam mudanças no indivíduoe que podem funcionar em paralelo. Operadores específicos sempre ocorrem em problemas decodificação mais complexa. Alguns exemplos do que operadores musicais podem fazer são:• Inverter as posições das notas de uma sessão aleatoriamente determinada de um genótipo• Levar uma sessão de um lugar para outro ou fazer uma troca entre duas partes.• Adicionar cópias extras de genes em outra parte da composição• Apagar partes da melodia ou trocá-las por pausas• Mudar a altura tonal de algumas ou todas as notas• Deslizar a posição das notas em um compasso• Ordenar uma sessão de notas por suas alturas tonais• Inverter os intervalos horizontais de uma melodia, considerando a média das alturas tonais

ou não• Uma mistura das opções descritasDependendo da maneira como a representação é feita, estes operadores podem ter efeitos

diferentes sobre as músicas. No caso de representação das notas por sua posição, onde é comumdefinir códigos para pausas ou para sustentação de uma nota, a estrutura rítmica de uma frasepode mudar completamente com a utilização de alguns destes operadores. No caso de umarepresentação das alturas tonais relativas, heurísticas podem definir que notas repetidas serãosubstituídas por cromatismos, o que muda a forma como uma ordenação de uma sessão pelaaltura tonal pode atuar em um indivíduo.

Operadores também podem ser utilizados levando em consideração condições da populaçãocorrente. Em alguns casos, em que cada indivíduo representa um compasso, dois compassospodem funcionar como um compasso longo que pode sofrer a ação de operadores específicos.

Operadores especialmente projetados para a aplicação específica podem fazer com que ogenótipo cresça ou encolha. Assim, estes devem ser utilizados com cuidados, podendo serdefinidas taxas de utilização destes operadores, que podem inclusive ser modificadas em relaçãoà situação da população. Por exemplo, cruzamento 100%, Inversão 50%, Mutação 5% e aprobabilidade de duplicar sessões depender da quantidade de apagamento de sessões utilizada.Em alguns casos, estas próprias taxas podem ser controladas por um outro AE.

Page 48: Métodos de Composição Algorítmica - alandefreitas.com · composição algorítmicas podem ser também ... que os resultados sejam comparáveis com resultados humanos através

48 Capítulo 8. Algoritmos Genéticos

8.6 Função de Avaliação e Definição da Aptidão

A avaliação dos indivíduos é talvez a área que gera mais questionamentos em sistemas de CA.Em qualquer sistema de produção artística automática é muito difícil decidir como medir ofitness e quais as necessidades de uma boa solução. É necessário responder estas perguntas paraque se defina quem produzirá a próxima geração. No fim do processo, de uma maneira ou deoutra, a qualidade de uma solução deverá ser medida por escalas numéricas.

Um ponto que não pode ser esquecido é que de qualquer maneira a função de avaliação deuma solução deve pelo menos distinguir entre bons e ruins indivíduos, pois é isto que levaráo processo adiante. Avaliação pode ser uma simples função matemática ou resultado de umasimulação mais complexa. A avaliação também depende muito da aplicação específica de umproblema, cuja intenção de avaliação pode ser a similaridade com uma música alvo, o respeito ateorias musicais ou técnicas musicais específicas.

A avaliação de uma melodia, por exemplo, pode incluir vários aspectos estéticos. Assim, aquestão será como codificá-los em escalas numéricas que estejam bem formalizadas. É difícilcriar definições matemáticas para aspectos puramente estéticos e por estas razões, medidastotalmente automáticas de fitness costumam gerar vários problemas. Como alternativa a estasmedidas automáticas, pode-se fazer o processo sem fitness, com fitness mínimo ou aleatório, comoserá descrito nas próximas subseções. Cada modo de avaliar os indivíduos possui problemasespecíficos. As principais maneiras de se medir o fitness de indivíduos são as seguintes:• Automático

– Heurísticas, incluindo percepções do compositor, que podem ser estocásticas– Baseados em regras, incluindo percepções da literatura sobre regras implicadas sobre

o estilo– Aprendidos, baseado em treinamento computacional sobre uma base de dados

• Interativo• Sem aptidãoApostilas de formas musicais podem ser consideradas para definir aspectos a serem avaliados

em composições e demonstram ser naturalmente algorítmicas. Isso ocorre principalmente comaquelas baseadas em modelos já existentes de estilos musicais. Um problema de se basear demaisneste método de criação de regras é que pode se perder a essência artística dos resultados. Oobjetivo da ME é sempre criar composições próximas ao que compositores humanos realmentecompõem e os métodos podem se tornar ineficazes quando um excesso de regras é aplicado.O processo criativo não se baseia puramente em apostilas e composições boas normalmentequebram estas regras de algum modo.

É importante lembrar que um AE sempre será naturalmente limitado por seu projeto (genó-tipo, operadores, funções) e não criará aspectos novos para os quais não foi programado. Osmaiores problemas de avaliação das soluções é que nos casos em que a aptidão é medida de formaautomática, a saída deve ser formalmente codificada e esta codificação de aspectos estéticos émuito difícil. Já na aptidão humana, o problema é que as soluções devem ser comprimidas paraque o mentor possa escutar pelo menos um pouco de cada indivíduo antes de analisá-los.

Assim deve ser definido inicialmente no que será baseada a avaliação, em regras ou emmodelos de composição reais. Mesmo músicas que podem ter de algum modo um modeloespecífico podem mudar este modelo com o passar do tempo. Pode ocorrer inclusive uma junçãodestes diferentes modelos para a criação de novas composições mas não se sabe se isto poderiaser considerada uma composição, de fato, livre.

Independente de como as regras do sistema serão definidas, é necessário ter a base do sistemano que os compositores realmente fazem. A criação de música não é simplesmente baseada emregras simples de composição, pois estas regras são definidas apenas quando um certo períodomusical passado é analisado. Não se pode então basear a música fortemente em modelos que são

Page 49: Métodos de Composição Algorítmica - alandefreitas.com · composição algorítmicas podem ser também ... que os resultados sejam comparáveis com resultados humanos através

8.6 Função de Avaliação e Definição da Aptidão 49

normalmente descritos com fins pedagógicos e têm uma forte tendência a simplificar ou distorcerem demasia pensamentos que são complexos em sua raiz.

Existe um dilema claro na definição destes parâmetros já que um sistema essencialmentebaseado em regras provavelmente terá resultados que se assemelharão com exercícios ou réplicasde músicas conhecidas. Enquanto isso, para a criação de material mais criativo, poder-se-iaimaginar um sistema com poucas regras, do qual sairiam várias ideias criativas. Porém, nestecaso a abordagem seria mais uma vez problemática pois uma quantidade enorme de materialinadequado seria gerada sem aproveitamento.

De qualquer maneira, é necessário fornecer opções de que algumas regras sejam quebradasem qualquer sistema em que exista a intenção de criar material mais criativo. Senão, os sistemasserão mais criadores de réplicas do que compositores. Tudo que o computador avalia pode serfeito apenas de maneira algorítmica.

8.6.1 Avaliação Automática

Várias funções de avaliações heurísticas foram desenvolvidas e normalmente levam em conside-ração avaliações e percepções do autor do algoritmo [Ame92]. É um método muito usado emmelodias e normalmente definem considerações sobre intervalos, densidade das notas sobre aquantidade de pausas, variedade rítmica entre outras.

Percepções musicais do autor podem levar a conclusões que ocorrem via de regra sobreo processo de composição. Estas percepções podem também, claro, vir de apostilas de teoriamusical. Usualmente, o autor do algoritmo desenvolve algum conceito e soma a ele algunsvalores. Os conceitos utilizados nestes algoritmos, deste modo, tendem a ser fracos e ter validadequestionável.

Já os sistemas de avaliação automática baseados em regras têm como fundamento teoriasmusicais que têm regras constantes. Esses sistemas tenderão deste modo a gerar músicas que sãomuito similares entre si e terão dificuldades para perceber e avaliar positivamente quando algocom alguma especificidade boa aparecer em alguma geração. Isso ocorre porque, por se tratar dearte, uma música pode ser teoricamente correta porém ruim.

O sistema pode ignorar músicas boas pois algumas composições são boas justamente porquebrar as regras propositalmente. Em alguns casos, pode ser até suficiente encerrar o algoritmoapós encontrar ótimos locais em vez de continuar uma busca por um ótimo global. Estes sistemasbaseados em regras tendem a funcionar melhor quando utilizados para geração de música de umgênero e contexto específicos [PDB97].

Uma última possibilidade é utilizar esquemas de aptidão aprendidos, nos quais são utilizadastécnicas mais robustas de avaliação, como RNA [BAL96]. Com a aplicação destas técnicas,espera-se obter funções de avaliação mais robustas, sendo as próprias RNA a técnica dominante.Estas técnicas não incluem por si só feições musicais que são facilmente computáveis.

As RNA podem utilizar como entrada características observadas pelo autor, como nasavaliações heurísticas, ou a melodia em si. A escolha desta entrada é crucial. Apesar de pareceruma ótima escolha para desenvolver avaliadores de sistemas de CA, as experiências com RNAmostram que elas não conseguem desenvolver capacidade de generalização além do conjunto deexemplos com o qual é treinada [BAL96]. Isso provavelmente ocorre pela falta de característicascomputáveis e falta de informação, no caso das RNA que utilizam o próprio material melódicopara treinamento.

Page 50: Métodos de Composição Algorítmica - alandefreitas.com · composição algorítmicas podem ser também ... que os resultados sejam comparáveis com resultados humanos através

50 Capítulo 8. Algoritmos Genéticos

8.6.2 Avaliação InterativaPara todos os sistemas evolutivos para criação de arte, sempre ocorre a discussão de um modo deavaliação das soluções óbvio: a avaliação humana4. Teoricamente, a avaliação poderia resolvertodos os problemas existentes nos modos de avaliação automática. Sem embargo, existemtambém vários problemas envolvidos na aplicação deste modo de avaliação.

O primeiro deles, e talvez o mais óbvio e simples, é que deve-se desenvolver um sistemacoerentemente funcional e robusto de IHC. A interface da aplicação deve ser simples para queo mentor possa focar em sua tarefa. Profissionais com interesse nesta área precisam dar suacontribuição para que usuários com experiência em música possam ter assistência adequada parafazer seus julgamentos de forma simples e intuitiva.

Outro problema, e talvez mais complexo, é o tamanho da população. Este tamanho dapopulação normalmente vai de dúzias a centenas de indivíduos e como a música é uma artetemporal, o usuário precisará de tempo para ouvir todos estes indivíduos por todas as gerações.Em sistemas de domínio temporais com avaliação humana, existe este problema denominadogargalo de fitness.

Uma maneira de resolver o problema do tempo necessário de uma maneira relativamentesimples é mostrar apenas alguns trechos da música ao usuário. Por outro lado, como a avaliaçãode apenas um pedaço de uma composição pode levar a conclusões precipitadas, isto gera umoutro inconveniente que é uma decisão a ser tomada entre o tamanho da amostra e a validade daavaliação. Um ouvinte também pode dar uma avaliação insensata para a música por ter escutadouma parte que não gostou pois pessoas diferentes têm diferentes gostos em partes diferentes.Este problema é denominado problema de granularidade.

Além disto, a questão vai além de o usuário ter ou não tempo para fazer todas as avaliações,já que tarefas de avaliação exigem concentração do usuário, o que em música se diz quando omúsico está com ouvidos “frescos"para analisar e avaliar uma certa música. O usuário não deveapenas avaliar as músicas individualmente mas compará-las e dar notas boas a indivíduos quemesmo ruins sejam melhores do que os outros. Assim, com o passar de pouco tempo, a avaliaçãodo mentor pode estar tão prejudicada que leve a medidas de fitness piores do que as automáticas,enquanto deveriam apenas solucionar seus problemas.

8.6.3 Avaliação sem aptidãoEm alguns casos, uma abordagem mais minimalista pode ser aplicada tanto ao problema dogargalo de fitness quanto ao das dificuldades de codificação de medidas automáticas de estética:fazer um AG sem pressão seletiva. Com esta abordagem os problemas principais desaparecemenquanto novas questões devem ser resolvidas.

A principal questão usando esta abordagem é como se pode obter controle da peça se oprocesso de seleção se dará de forma aleatória, o que tira a pressão seletiva que faz com que apopulação evolua. A resposta desta questão deve estar fundamentalmente nos processos quegeram a população inicial, que devem ser robustos o suficiente para gerar soluções já inicialmenterobustas, e nos operadores genéticos, que devem manter a musicalidade dos indivíduos com osquais estão trabalhando.

Nestes sistemas, o principal modo de controle sobre o estilo da peça é através da populaçãoinicial, como mostram os experimentos de [Was07], que utilizou o segundo movimento daSinfonia no7 de Beethoven como população inicial para criar sua obra, Empty Frames. As obrascriadas por esta abordagem tiveram indicações de sucesso como execuções em vários países,

4Este tipo de avaliação pode ser utilizado para evoluir uma música ou estilo específico quando a intenção édesenvolver um músico virtual que funcionará em tempo real mais tarde. Neste caso, o melhor é que esta evoluçãoseja direcionada a um estilo específico, para que o músico virtual não perca a capacidade de generalização, além denão cansar o mentor.

Page 51: Métodos de Composição Algorítmica - alandefreitas.com · composição algorítmicas podem ser também ... que os resultados sejam comparáveis com resultados humanos através

8.7 Substituição dos Pais 51

gravações e críticas positivas.A vantagem desta abordagem pode ser criar novas melodias baseadas em melodias já

existentes mesmo quando não são conhecidas as regras específicas do estilo de composição damelodia de entrada. Assim, não é necessário se apoiar apenas em regras musicais antigas deestilos muito bem estudados, que podem levar o algoritmo a soluções pouco criativas, nem empercepções do autor que podem variar consideravelmente e ser pouco confiáveis.

Um mentor pode ser utilizado na composição mas desta vez não para avaliar os indivíduose sim para controlar o processo de mutação, fazendo assim uma trapaça para embelezar osindivíduos para a próxima geração. Estes artifícios podem ser muito bons em sistemas emque não se procura bons indivíduos em relação a uma codificação determinada mas sim umapopulação de indivíduos musicalmente bons que podem ser utilizados em situações práticas.

Outro ponto é que pode haver certa discussão sobre a utilização de CE nestas condições.Na verdade, a utilização de métodos biologicamente inspirados ainda se justifica pois todoo arcabouço evolutivo ainda está presente e útil no processo, mesmo que a pressão seletivaseja convenientemente fraca para convergir para soluções que satisfaçam uma função objetivopreviamente definida.

Estas medidas aleatórias de aptidão podem funcionar com regras mínimas, que pelo menosdêem menos preferência a indivíduos que não atendem a algumas expectativas. Estas regraspodem estar incluídas no processo de avaliação, como usual, ou embutidas no próprio processoevolutivo, na escolha dos indivíduos. Um exemplo de regra possível é que pedaços musicaisque tenham frequências muito altas não possam reproduzir muitas vezes, o que pode deixar amelodia mais natural.

Esta abordagem será frequentemente usada quando a população inicial é gerada por músicos,que podem criar um banco de dados. Uma população criada por músicos dificilmente será piordo que uma criada sem interferência humana, já que os métodos para fazê-lo são baseados emcodificação da estética humana. Em muitos casos de aplicações artísticas, apenas mutaçõespodem criar indivíduos tão bons quanto os pais, sem ajuda de um mentor, com mudançaspuramente artísticas.

Apesar deste modo de avaliação não refletir completamente o paradigma mais purista dofuncionamento de AE, pode levar a resultados que agradem ouvintes desinteressados no modocomo a peça foi produzida e sim em sua qualidade. De certo ponto de vista, algoritmos com estetipo de avaliação podem não ser considerados CE. Por outro lado, podem existir medidas defitness implícitas quando ocorre a utilização de heurísticas na seleção dos compassos que farãocruzamento ou no modo como os operadores genéticos serão aplicados em relação à configuraçãoda população. De qualquer maneira, algoritmos deste tipo são pelo menos inspirados em CE.

Eliminando-se o gargalo de fitness desta maneira alguns algoritmos podem não ser maisconsiderados CE, mesmo com o fitness implícito dos operadores. Já sendo inspirado em CE etendo operadores genéticos robustos, da perspectiva de algoritmos que geram e testam soluçõesaté certo critério de parada ser atingido, estes algoritmos podem ser algoritmos tão bons que nãoprecisam nem testar as soluções [Bil02]. Isso cria um paradoxo entre sistemas de arte evolutiva,com operadores genéticos inteligentes e medidas de fitness burras, e a CE convencional, comoperadores burros e medidas de avaliação inteligentes.

Finalmente, é importante tirar o foco desta questão na medida em que não é muito relevantese tais sistemas são considerados CE ou não, desde que funcionem bem.

8.7 Substituição dos Pais

O processo de substituição é usualmente emparelhado com o de seleção. Via de regra, apenasindivíduos indicados pelo processo de seleção substituem os pais, porém, em alguns casos,

Page 52: Métodos de Composição Algorítmica - alandefreitas.com · composição algorítmicas podem ser também ... que os resultados sejam comparáveis com resultados humanos através

52 Capítulo 8. Algoritmos Genéticos

elitismo pode ser utilizado e uma certa quantidade dos melhores pais pode ficar na próximageração de modo não aleatório.

A substituição também pode ser de maneira contínua, à medida que os filhos são gerados,um a um, ou em estilo geracional, ou seja, a população inteira é substituída após a geração detodos os filhos.

Como em música, muitas vezes, a busca por uma população boa que pode ser usada emconjunto pode ser mais importante do que a descoberta de uma única solução ótima, algumaspeculiaridades podem ocorrer no processo de substituição dos indivíduos.

Quando é desejável que haja, além de várias soluções de qualidade, soluções que sejamdiversas entre si para serem usadas em um contexto mais amplo, a diversidade entre os elementospode ser levada em consideração para a escolha dos elementos a serem substituídos. Essaabordagem deve ser considerada em sistemas onde toda a população será usada para a geraçãode um conteúdo musical mais amplo, como no estudo de [Bil94].

O modo como a substituição ocorrerá também deve ser bem analisado quando existe aintenção de se criar algoritmos de CA que funcionem em tempo real, em que o tempo de esperaentre uma geração e a outra não pode ser muito longo. Nestes sistemas, uma característicapresente tanto na música quanto na evolução pode ser aproveitada de maneira tácita: ambos sãoprocessos temporais [Lis91]. Estudos deste tipo foram feitos por [Mor+00].

As criações dos algoritmos realizadas em tempo real devem considerar uma base harmônicaque mudará em tempo real e pode ser uma repetição da música, uma progressão harmônica base-ada no improviso ou uma modificação de uma progressão já presente na música. A consideraçãode que o improviso pode ocorrer isoladamente, desenvolvendo ideias com ajuda de um mentorou com uma base de dados de referência, ou em resposta ao improviso de outra pessoa complicasubstancialmente o problema.

Quando aproveitando a característica temporal da evolução para geração de composições éimportante notar o fato de que após várias gerações um processo ocorre em algoritmos evolutivos:o takeover. Isto quer dizer que após algumas gerações os indivíduos começam a ficar semelhantesentre si, o que no caso de uma analogia com o processo temporal representará uma repetiçãode material musical. Nestes casos, alguma solução deve ser tomada. Se esta repetição dematerial musical leva a um fim coerente do material musical, o algoritmo provavelmente pode serencerrado. Se o takeover ocorre muito prematuramente, uma opção é reinicializar a população,aumentar o tamanho da população inicial ou ambas.

Outra última opção para o takeover pode ser manter alguns indivíduos de gerações passadasainda como candidatos à reprodução (holdover). Assim como na biologia, indivíduos podemreproduzir em tempos diferentes e talvez possam esperar mais de uma geração e ainda ter umachance para reproduzir.

Além disto, caso a população inicial não seja gerada aleatoriamente, a população podereceber indivíduos de um banco de dados externo de acordo com necessidades específicas doproblema. Isso pode ocorrer trocando um indivíduo ruim por outro que seja de alguma maneiraconsiderado bom e que pode levar diversidade para a população antes da convergência paraum takeover, esse indivíduo pode vir de outras partes da música quando uma representaçãohierárquica da música é utilizada.

8.8 ConsideraçõesOs paradigmas de composição algorítmica têm diferentes características e motivações. Aspropriedades de cada paradigma devem ser conhecidas antes mesmo de se decidir qual o melhormodelo de representação, que deve obedecer limites do paradigma.

Talvez o principal fato a ser notado no desenvolvimento de sistemas evolutivos para CA éque é uma tarefa na qual a discussão no domínio relevante é indispensável. Qualquer tentativa de

Page 53: Métodos de Composição Algorítmica - alandefreitas.com · composição algorítmicas podem ser também ... que os resultados sejam comparáveis com resultados humanos através

8.8 Considerações 53

criação de sistemas de CA sem estudo sobre teoria musical não será frutífera.Quando o projeto passa a se concretizar e a interação com músicos se torna real, outra

vertente pouco abordada também vem à tona: a transformação do algoritmo bruto em um sistemarobusto com uma interface amigável ao usuário. Isso faz com que o sistema seja efetivamenteutilizado por músicos e esta interação real com o pessoal da área aumenta as possibilidadesde descoberta de novas potencialidades do algoritmo em questão. Estas ferramentas para quecompositores possam explorar as possibilidades do programa de maneira mais simpática sãoainda mais fundamentais para aplicações direcionadas a execuções ao vivo, uma área bastantepromissora.

É clara a diversidade de opções que se abrem com a CE, como timbres impossíveis de seatingir com instrumentos reais, que podem ser criados através de sistemas de síntese de som.Com a CE, um novo paradigma também surge para sistemas de composição, já que podemser criados sistemas que não são simplesmente baseados em regras simples e podem mudar aabordagem na maneira de criar músicas mais criativas e elaboradas de maneira automática.

Algoritmos têm grande potencial para geração de músicas, pois, assim como já citado, oprocesso de composição é, de fato, em grande parte algorítmico. O comportamento de váriosmodelos são de tal maneira em que se pode perfeitamente estabelecer analogias com o quemúsicos realmente fazem. As possibilidades criativas de como a estética pode ser codificada emAE podem acrescentar muito às praticas tradicionais dos músicos.

Assim, mesmo sendo cedo para fazer conclusões gerais sobre a área de ME, é perceptívelque existe muito potencial para o desenvolvimento de novas aplicações e que a exploração destaárea evolutiva e adaptativa é frutífera sem dúvida alguma.

Page 54: Métodos de Composição Algorítmica - alandefreitas.com · composição algorítmicas podem ser também ... que os resultados sejam comparáveis com resultados humanos através
Page 55: Métodos de Composição Algorítmica - alandefreitas.com · composição algorítmicas podem ser também ... que os resultados sejam comparáveis com resultados humanos através

Bibliografia

Livros[Cho02] N. Chomsky. Syntactic structures. Walter de Gruyter, 2002 (ver página 11).

[Cop91] D. Cope. Computers and musical style. AR Editions, Inc., 1991 (ver página 19).

[Cop00] D. Cope. The algorithmic composer. Volume 16. AR Editions, Inc., 2000 (verpágina 19).

[Cop04] D. Cope. Virtual music: computer synthesis of musical style. MIT press, 2004 (verpáginas 6, 19).

[CM96] D. Cope e M.J. Mayer. Experiments in musical intelligence. Volume 12. AR EditionsMadison, WI, 1996 (ver página 19).

[Dar03] C. Darwin. The origin of species. Signet Classic, 2003 (ver páginas 37, 38).

[MB07] Eduardo Reck Miranda e John Al Biles. Evolutionary computer music. SpringerVerlag, 2007. ISBN: 1846285992 (ver página 37).

[Nie10] Gerhard Nierhaus. Algorithmic Composition: Paradigms of Automated Music Gene-ration. Springer, 2010 (ver páginas 5, 8–17, 20, 21, 23, 32, 35).

[TL91] P.M. Todd e D.G. Loy. Music and connectionism. The MIT Press, 1991 (ver pá-gina 10).

[TM87] T. Toffoli e N. Margolus. Cellular automata machines: a new environment formodeling. MIT press, 1987 (ver página 29).

[Xen92] I. Xenakis. Formalized Music: Thought and mathematics in composition. PendragonPr, 1992 (ver página 10).

[Yeg04] B. Yegnanarayana. Artificial neural networks. PHI Learning Pvt. Ltd., 2004 (verpáginas 33, 34).

[Zus70] K. Zuse. Calculating space. Massachusetts Institute of Technology, Project MAC,1970 (ver página 29).

Page 56: Métodos de Composição Algorítmica - alandefreitas.com · composição algorítmicas podem ser também ... que os resultados sejam comparáveis com resultados humanos através

56 Capítulo 8. Algoritmos Genéticos

Artigos[Ame92] C. Ames. “Quantifying musical merit”. Em: Journal of New Music Research 21.1

(1992), páginas 53–93 (ver página 49).

[BLN04] G.P. Basharin, A.N. Langville e V.A. Naumov. “The life and work of AA Markov”.Em: Linear Algebra and its Applications 386 (2004), páginas 3–26 (ver página 7).

[Bil07] J. Biles. “Improvizing with Genetic Algorithms: GenJam”. Em: Evolutionary Com-puter Music (2007), páginas 137–169 (ver página 41).

[BV97] A. R. Burton e T. Vladimirova. “Genetic algorithm utilizing neural network evalu-ation for musical composition”. Em: Proceedings of the 1997 International Con-ference on Artificial Neural Networks and Genetic Algorithms. Springer-Verlag,Berlin. (1997) (ver página 43).

[CF82] P.R. Cohen e E.A. Feigenbaum. “The handbook of artificial intelligence”. Em:(1982) (ver página 6).

[Cop87] D. Cope. “An expert system for computer-assisted composition”. Em: ComputerMusic Journal (1987), páginas 30–46 (ver página 19).

[Gar70] M. Gardner. “Mathematical games: The fantastic combinations of John Conway’snew solitaire game “life””. Em: Scientific American 223.4 (1970), páginas 120–123(ver página 30).

[Gar78] M. Gardner. “White and brown music, fractal curves and 1/f fluctuations”. Em:Scientific American 238.4 (1978), páginas 16–32 (ver página 43).

[Gli87] J. Glieck. “Chaos: Making a new science”. Em: New York: Viking (1987) (verpágina 23).

[HS91] Goffredo Haus e Alberto Sametti. “Scoresynth: a system for the synthesis of musicscores based on Petri nets and a music algebra”. Em: Computer 24.7 (jul. de1991), páginas 56–60. ISSN: 0018-9162. DOI: 10.1109/2.84837. URL: http://dx.doi.org/10.1109/2.84837 (ver página 19).

[HI58] L. Hiller e L. Isaacson. “Musical composition with a high-speed digital computer”.Em: Machine models of music (1958), páginas 9–21 (ver página 43).

[HH74] P. Hogeweg e B. Hesper. “A model study on biomorphological description”. Em:Pattern Recognition 6.3 (1974), páginas 165–179 (ver página 25).

[JP98] B. Johanson e R. Poli. “Gp-music: An interactive genetic programming system formusic generation with automated fitness raters”. Em: Genetic Programming (1998),páginas 181–186 (ver página 42).

[Joh03] C.G. Johnson. “Exploring sound-space with interactive genetic algorithms”. Em:Leonardo 36.1 (2003), páginas 51–54 (ver página 39).

[Jon81] K. Jones. “Compositional applications of stochastic processes”. Em: ComputerMusic Journal 5.2 (1981), páginas 45–61 (ver página 8).

[Lin68] A. Lindenmayer. “Mathematical models for cellular interactions in development I.Filaments with one-sided inputs”. Em: Journal of theoretical biology 18.3 (1968),páginas 280–299 (ver página 25).

[Lyo95] D. Lyon. “Using stochastic petri nets for real-time nth-order stochastic composition”.Em: Computer Music Journal 19.4 (1995), páginas 13–22 (ver página 20).

[Man83] B.B. Mandelbrot. “The fractal geometry of nature”. Em: New York, WH Freemanand Co., 1983, 495 p. 1 (1983) (ver página 24).

Page 57: Métodos de Composição Algorítmica - alandefreitas.com · composição algorítmicas podem ser também ... que os resultados sejam comparáveis com resultados humanos através

8.8 Considerações 57

[Mor+00] A. Moroni et al. “Vox populi: An interactive evolutionary system for algorithmicmusic composition”. Em: Leonardo Music Journal (2000), páginas 49–54 (verpágina 52).

[NW97] C.G. Nevill-Manning e I.H. Witten. “Identifying hierarchical structure in sequences:A linear-time algorithm”. Em: arXiv preprint cs/9709102 (1997) (ver páginas 17,18).

[Pac99] F. Pachet. “Surprising harmonies”. Em: International Journal of Computing Antici-patory Systems 4 (1999), páginas 139–161 (ver página 17).

[PWM99] D. Ponsford, G. Wiggins e C. Mellish. “Statistical learning of harmonic movement”.Em: Journal of New Music Research 28.2 (1999), páginas 150–177 (ver página 8).

[Puc+96] M. Puckette et al. “Pure Data: another integrated computer music environment”.Em: Proceedings of the Second Intercollege Computer Music Concerts (1996),páginas 37–41 (ver página 20).

[RJ86] L. Rabiner e B. Juang. “An introduction to hidden Markov models”. Em: ASSPMagazine, IEEE 3.1 (1986), páginas 4–16 (ver página 9).

[Ral95] D. Ralley. “Genetic algorithms as a tool for melodic development”. Em: Urbana101 (1995), página 61801 (ver página 43).

[Ree10] C.R. Reeves. “Genetic algorithms”. Em: Handbook of Metaheuristics (2010), pági-nas 109–139 (ver página 37).

[Tur50] A.M. Turing. “Computing machinery and intelligence”. Em: Mind 59.236 (1950),páginas 433–460 (ver páginas 5, 6).

[US02] T. Unemi e M. Senda. “A Study on Building a Support System for Music Compo-sition by Simulated Breeding Method. Extension to Multi-part.” Em: Joho ShoriGakkai Kenkyu Hokoku 2002.40 (2002), páginas 133–138 (ver página 47).

[VB66] J. Von Neumann e A.W. Burks. “Theory of self-reproducing automata”. Em: (1966)(ver página 29).

[Was07] R. Waschka II. “Composing with Genetic Algorithms: GenDash”. Em: EvolutionaryComputer Music (2007), páginas 117–136 (ver página 50).

[Wec56] D. Wechsler. “Die Messung der Intelligenz Erwachsener. Textband zum Hamburg-Wechsler-Intelligenztest für Erwachsene (HAWIE); Deutsche Bearbeitung Annevon Hardesty, und Hans Lauber.” Em: (1956) (ver página 6).

[Wol02] S. Wolfram. “A new kind of science”. Em: (2002) (ver páginas 29, 30).

Page 58: Métodos de Composição Algorítmica - alandefreitas.com · composição algorítmicas podem ser também ... que os resultados sejam comparáveis com resultados humanos através
Page 59: Métodos de Composição Algorítmica - alandefreitas.com · composição algorítmicas podem ser também ... que os resultados sejam comparáveis com resultados humanos através

Índice

A

Algoritmos Genéticos . . . . . . . . . . . . . . . . . . 37Autômatos Celulares . . . . . . . . . . . . . . . . . . . 29Autômatos Celulares Bidimensionais . . . . 30Autômatos Celulares Especiais . . . . . . . . . . 30Autômatos Celulares Tridimensionais . . . . 30Autômatos Celulares Unidimensionais . . . 29Avaliação Automática . . . . . . . . . . . . . . . . . . 49Avaliação Interativa . . . . . . . . . . . . . . . . . . . . 50Avaliação sem aptidão . . . . . . . . . . . . . . . . . . 50

B

Biologia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38

C

Caos e Autossimilaridade . . . . . . . . . . . . . . . 23Considerações sobre Algoritmos Genéticos52Considerações sobre Autômatos Celulares 31Considerações sobre Caos e Auto-Similaridade

26Considerações sobre Gramáticas Gerativas17Considerações sobre Modelos de Markov 10Considerações sobre Redes de Transição . 20Considerações sobre Redes Neurais . . . . . . 34Cruzamento . . . . . . . . . . . . . . . . . . . . . . . . . . . 45

F

Função de Avaliação e Definição da Aptidão48

Fundamentos dos Modelos de Markov . . . . 7

G

Gramática Irrestrita Tipo 0 . . . . . . . . . . . . . . 13Gramática Livre de Contexto Tipo 2 . . . . . 15Gramática Regular Tipo 3 . . . . . . . . . . . . . . 15Gramática Sensível a Contexto Tipo 1 . . . 14Gramáticas Gerativas . . . . . . . . . . . . . . . . . . . 11

H

Hierarquia de Chomsky . . . . . . . . . . . . . . . . 12

I

Inferência Gramatical . . . . . . . . . . . . . . . . . . 17Inicialização e Estrutura da População . . . 42Inteligência Artificial . . . . . . . . . . . . . . . . . . . . 5

O que é . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5Sistemas Adaptáveis . . . . . . . . . . . . . . . . 6

Page 60: Métodos de Composição Algorítmica - alandefreitas.com · composição algorítmicas podem ser também ... que os resultados sejam comparáveis com resultados humanos através

60 ÍNDICE

L

Linguagem Livre de Contexto . . . . . . . . . . . 15Linguagem Parcialmente Decidível . . . . . . 13Linguagem Recursivamente Enumerável . 13Linguagem Regular . . . . . . . . . . . . . . . . . . . . 15Linguagem Sensível a Contexto . . . . . . . . . 14Linguagens Decidíveis . . . . . . . . . . . . . . . . . 14

M

Mapas de Kohonen. . . . . . . . . . . . . . . . . . . . .34Modelo de Teoria da Sintaxe . . . . . . . . . . . . 11Modelos de Markov . . . . . . . . . . . . . . . . . . . . . 7Modelos Ocultos de Markov . . . . . . . . . . . . . 9Mutação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47

O

Operadores Genéticos . . . . . . . . . . . . . . . . . . 45Operadores Musicais . . . . . . . . . . . . . . . . . . . 47Outros Tipos de Redes Neurais . . . . . . . . . . 34

P

Paradigmas de Composição Algorítmica . . 5

R

Redes de Transição . . . . . . . . . . . . . . . . . . . . 19Redes de Transição Aumentadas . . . . . . . . 19Redes de Transição Recursivas . . . . . . . . . . 19Redes Hopfield . . . . . . . . . . . . . . . . . . . . . . . . 34Redes Neurais Artificiais . . . . . . . . . . . . . . . 33Redes Neurais Recorrentes. . . . . . . . . . . . . .34Redes Perceptron . . . . . . . . . . . . . . . . . . . . . . 34Redes Petri . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19Representação . . . . . . . . . . . . . . . . . . . . . . . . . 40

S

ScoreSynth . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19Seleção . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43

Sistemas de Lindenmayer . . . . . . . . . . . . . . . 25Sistemas-L . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25Substituição dos Pais . . . . . . . . . . . . . . . . . . . 51

T

Teste de Turing . . . . . . . . . . . . . . . . . . . . . . . . . 5Tipos de Autômatos Celulares . . . . . . . . . . . 29Transformação Gramatical . . . . . . . . . . . . . . 16