Você está na página 1de 99

UNIVERSIDADE DE CAXIAS DO SUL

DEPARTAMENTO DE INFORMÁTICA
CURSO DE BACHARELADO EM CIÊNCIA DA COMPUTAÇÃO

JOEL LUIS CARBONERA

Uma abordagem emergente na


composição musical estocástica

Prof. João Luis Tavares da Silva


Orientador

Caxias do Sul, Dezembro de 2006


“Trago dentro do meu coração,
Como num cofre que se não pode fechar de cheio,
Todos os lugares onde estive,
Todos os portos a que cheguei,
Todas as paisagens que vi através de janelas ou vigias,
Ou de tombadilhos, sonhando,
E tudo isso, que é tanto, é pouco para o que eu quero.”
— Álvaro de Campos
AGRADECIMENTOS

Agradeço aos meus pais, José e Maria, pelo seu esforço em garantir a minha
educação, pelo seu apoio, incentivo, dedicação e compreensão durante todos os mo-
mentos da minha vida. Agradeço pela confiança em mim depositada, por confiarem
em meu julgamento e nunca duvidarem de minhas capacidades. Agradeço pela hu-
mildade e pela força de espı́rito demonstradas durante toda a minha vida. Vocês
são minha inspiração cotidiana.
Agradeço à minha irmã, Jocinara, por me compreender. Agradeço pelos momen-
tos felizes que pudemos compartilhar até hoje e pelos que ainda virão.
Agradeço aos meus primos, Mateus e Michele, por representarem constante fonte
de alegria.
Agradeço aos amigos do grupo Sinagoga e os poetas da praça zen, pessoas
incrı́veis, dotadas de almas sensı́veis, com as quais compartilho sonhos. Agradeço
por serem quem são, e por me ensinarem que sonhos são realizáveis. Agradeço
também pela compreensão e pelo apoio em tempos tão turbulentos.
Agradeço aos grandes amigos que encontrei na universidade, Alexandre, Cristian,
Marcos, Tiago e Vinı́cius.
Agradeço a todos os professores que conheci na universidade. Cada qual con-
tribuiu para meu engrandecimento dentro da Ciênca da Computação e para minha
evolução como ser humano. Agradeço, em especial, aos professores que revelaram-se
inestimáveis amigos.
E, finalmente, agradeço ao meu orientador, João, pela dedicação, compreensão,
sabedoria e amizade demonstrados durante a realização deste trabalho.
Obrigado a todos.
SUMÁRIO

LISTA DE ABREVIATURAS E SIGLAS . . . . . . . . . . . . . . . . . . . 6

LISTA DE FIGURAS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

LISTA DE TABELAS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

RESUMO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

RESUMO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

1 INTRODUÇÃO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
1.1 Motivação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
1.2 Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
1.3 Metodologia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
1.4 Organização do documento . . . . . . . . . . . . . . . . . . . . . . . 16

2 COMPUTAÇÃO MUSICAL . . . . . . . . . . . . . . . . . . . . . . . . 17
2.1 Um breve histórico . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
2.2 Computação musical . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.3 Conceitos básicos sobre o som . . . . . . . . . . . . . . . . . . . . . 20
2.3.1 Representação digital de informação sonora - Áudio digital . . . . . . 21
2.3.2 Aspectos básicos do som no contexto musical . . . . . . . . . . . . . . 23
2.4 Composição Algorı́tmica . . . . . . . . . . . . . . . . . . . . . . . . 29
2.4.1 Classificação quanto ao objetivo . . . . . . . . . . . . . . . . . . . . . 30
2.4.2 Classificação quanto ao tipo de informação processada . . . . . . . . . 31
2.4.3 Classificação quanto ao modelo algorı́tmico utilizado . . . . . . . . . . 32

3 SISTEMAS MULTIAGENTES . . . . . . . . . . . . . . . . . . . . . . 45
3.1 Ambiente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
3.2 Agente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
3.2.1 Agentes cognitivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
3.2.2 Agentes reativos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
3.3 Comunicação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
3.4 Coordenação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
3.5 Emergência . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61

4 ARQUITETURA MULTIAGENTES PARA Sı́NTESE MELÓDICA ES-


TOCÁSTICA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
4.1 Camada de geração emergente de matrizes de probabilidades
de transição . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
4.1.1 Ambiente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
4.1.2 Agente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
4.1.3 Geração de matrizes de probabilidades de transição . . . . . . . . . . 70
4.2 Camada de definição de modelos probabilı́sticos para geração
de segmentos melódicos . . . . . . . . . . . . . . . . . . . . . . . . . 74
4.3 Camada de sı́ntese melódica estocástica . . . . . . . . . . . . . . . 76

5 EXPERIMENTOS E TESTES . . . . . . . . . . . . . . . . . . . . . . 81
5.1 Parametrização inicial . . . . . . . . . . . . . . . . . . . . . . . . . . 81
5.2 Geração emergente de matrizes de probabilidades de transição
de estados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
5.3 Definição de MPGSM´s . . . . . . . . . . . . . . . . . . . . . . . . . 85
5.4 Geração melódica estocástica . . . . . . . . . . . . . . . . . . . . . 86

6 CONCLUSÃO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
6.1 Sı́ntese do trabalho . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
6.2 Resultados e contribuições . . . . . . . . . . . . . . . . . . . . . . . 89
6.3 Perspectivas e trabalhos futuros . . . . . . . . . . . . . . . . . . . 91

REFERÊNCIAS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
LISTA DE ABREVIATURAS E SIGLAS

DAT Digital Audio Tape

IA Inteligência Artificial

IAD Inteligência Artificial Distribuı́da

ITI Instituto Nacional de Tecnologia e Informatica de Campinas

MIDI Musical Instrument Digital Interface

MIT Massachusetts Institute of Technology

MPGSM Modelo Probabilı́stico Gerador de Segmentos Musicais

MO Matriz de ocorrências

MT Matriz de Transição

NICS Núcleo Interdisciplinar de Comunicação Sonora

PE Processo Estocástico

RDP Resolução Distribuı́da de Problemas

SBC Sociedade Brasileira de Computação

SMA Sistema Multiagentes

SMP Stochastic Music Program

UFRGS Universidade Federal do Rio Grande do Sul


LISTA DE FIGURAS

Figura 2.1: Representação gráfica, no domı́nio temporal, de uma onda senoidal. 21


Figura 2.2: Representalção gráfica do processo de quantização. . . . . . . . . 23
Figura 2.3: Representação gráfica do cliclo de uma forma de onda senoidal
especı́fica. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
Figura 2.4: Representações gráficas, valores (relativos a um tempo hipotético
R) e nomenclaturas das durações utilizadas pela notação musical
ocidental. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
Figura 2.5: Amplitude, o ponto mais distante da posição média da onda. . . . 26
Figura 2.6: Forma de onda de um som produzido por uma flauta. . . . . . . . 27
Figura 2.7: Forma de onda de um som produzido por um xilofone. . . . . . . 27
Figura 2.8: Formas de onda que apresentam respectivamente os envelopes de
onda de uma tabla (executando três notas), uma trompa (execu-
tando três notas) e uma flauta (executando uma longa nota). . . . 29
Figura 2.9: Sistema composicional baseado puramente em informações ab-
stratas. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
Figura 2.10: Sistema composicional baseado puramente em amostras de áudio
digital (informação sonora pura, com ou sem contextualização
musical). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
Figura 2.11: Sistema composicional que utiliza tanto informações abstratas
quanto informação sonora. . . . . . . . . . . . . . . . . . . . . . . 33
Figura 2.12: Primeiras 100 iterações do processo algorı́tmico proposto por Stan-
ley Gill, no qual as possibilidades musicais são geradas em uma
estrutura de árvore (OLIVEIRA, 2003). . . . . . . . . . . . . . . 35
Figura 2.13: As quatro primeiras iterações do processo de reescrita de sı́mbolos
de um L-System. . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
Figura 2.14: Matriz de ocorrências (M O) gerada a partir da amostra em questão. 41
Figura 2.15: Matriz de transição (M T ) resultante. . . . . . . . . . . . . . . . . 42
Figura 2.16: Diagrama de transição de estados resultante . . . . . . . . . . . . 42
Figura 3.1: Diagrama esquemático que representa uma agente genérico inter-
agindo com o ambiente através de sensores e atuadores . . . . . . 48
Figura 3.2: Diagrama esquemático que representa a arquitetura BDI genérica
(que pode ser vista em (BORDINI; VIEIRA; MOREIRA, 2001)). 51
Figura 3.3: Arquitetura de subsunção que descreve o comportamento de um
robô hipotético. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
Figura 3.4: Exemplo de um campo potencial de atração. . . . . . . . . . . . . 56
Figura 3.5: Exemplo de um campo potencial de repulsão. . . . . . . . . . . . 56
Figura 3.6: Exemplo de um campo potencial tangencial. . . . . . . . . . . . . 57
Figura 3.7: Exemplo de um campo potencial perpendicular. . . . . . . . . . . 57
Figura 3.8: Exemplo de um campo potencial uniforme. . . . . . . . . . . . . . 58
Figura 3.9: Fenômeno emergente em um perspectiva multi-nı́vel organizacional 63

Figura 4.1: Diagrama esquemático do modelo de geração de sequências melódicas


proposto por este trabalho. . . . . . . . . . . . . . . . . . . . . . 66
Figura 4.2: Estrutura lógica na qual é mapeado o ambiente em que os agentes
interagem. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
Figura 4.3: Estrutura hierárquica do agente, baseada na arquitetura de sub-
sunção (BROOKS, 1986). . . . . . . . . . . . . . . . . . . . . . . 69
Figura 4.4: Interface gráfica na qual o usuário informa os parâmetros necessários
para o disparo do processo de geração de matrizes de probabili-
dades de transição. . . . . . . . . . . . . . . . . . . . . . . . . . . 71
Figura 4.5: Interface gráfica na qual é possı́vel definir pontos-alvo, visualizar
a estrutura lógica dos ambientes e visualizar as interações entre
os agentes em cada um dos ambientes. Neste caso, é importante
perceber que ambos os ambientes estão divididos em 4 matrizes
de ocorrências. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
Figura 4.6: Interface gráfica com a qual o usuário pode definir os MPGSM´s . 75
Figura 4.7: Interface gráfica com a qual o usuário pode definir os parâmetros
de entrada do processo de sı́ntese melódica estocástica. . . . . . 76
Figura 4.8: Exemplo de modelo probabilı́stico para geração de segmentos
melódicos (MPGSM) constituı́do pela matriz de probabilidades
de transição de alturas, A e pela matriz de probabilidades de
transição de durações, B. . . . . . . . . . . . . . . . . . . . . . . 77
Figura 4.9: Probabilidades de transição de alturas a partir da altura C. . . . 78
Figura 4.10: Divisão do intervalo [0, 99] em subintervalos proporcionais às prob-
abilidades de transição encontrada no passo anterior. . . . . . . . 78
Figura 4.11: Probabilidades de transição de alturas a partir da duração Semi-
breve. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
Figura 4.12: Divisão do intervalo [0, 99] em subinervalos proporcionais às prob-
abilidades de transição encontrada no passo anterior. . . . . . . . 79

Figura 5.1: Parametros que definem a estrutura dos ambientes multiagentes


e as interações nos mesmos. . . . . . . . . . . . . . . . . . . . . . 82
Figura 5.2: Aspecto geral dos ambientes definidos a partir dos parâmetros
definidos para o cenário de teste. Pode-se ver a distribuição de
pontos-alvo também. . . . . . . . . . . . . . . . . . . . . . . . . . 83
Figura 5.3: Aspecto geral dos ambientes definidos a partir dos parâmetros
definidos para o cenário de teste e as interações que neles ocorrem 84
Figura 5.4: Visualização da distribuição global de ocorrências. Pode-se ver os
pontos mais visitados (em cores claras) e os menos visitados (em
cores escuras) pelos agentes em uma perspectiva global. . . . . . . 84
Figura 5.5: Visualização da distribuição de probabilidades em cada matriz de
probabilidades de transição de estados (cada qual gerada a partir
de uma matriz de ocorrências). . . . . . . . . . . . . . . . . . . . 85
Figura 5.6: Visualização da distribuição de ocorrências em cada matriz, em
particular. Pode-se ver os pontos mais visitados (em cores claras)
e os menos visitados (em cores escuras) pelos agentes em cada
matriz de ocorrências. . . . . . . . . . . . . . . . . . . . . . . . . 86
Figura 5.7: Visualização de uma distribuição homogênea de probabilidades
de transição. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
Figura 5.8: Visualização de uma distribuição heterogênea de probabilidades
de transição. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
Figura 5.9: Melodia final em uma visualização “piano roll”. . . . . . . . . . 87
Figura 5.10: Melodia final em uma visualização “piano roll”, na qual pode-se
identificar regiões melódicas com caracterı́sticas particulares. . . 87

Figura 6.1: Exemplo: objeto gráfico que representaria um MPGSM e , abaixo,


a justaposição desses objetos gráficos (3 distintos) que define (“de-
senha”) a forma global da melodia final. . . . . . . . . . . . . . . 94
LISTA DE TABELAS
RESUMO

Este trabalho apresenta um modelo algorı́tmico de composição musical, baseado


em um método estocástico de composição e em uma abordagem emergente para
geração de matrizes de probabilidades de transição de estados (utilizadas no método
estocástico). O modelo aqui proposto foi concebido e implementado em uma estru-
tura dividida em camadas composta por: camada de geração emergente de matrizes
de probabilidades de transição de estados, camada de definição de modelos proba-
bilı́sticos para geração de segmentos musicais e camada de sı́ntese musical.
Para conceber e implementar o modelo aqui proposto foram realizados estudos
na área da computação musical, com ênfase em composição algorı́tmica. Também
foram estudados os conceitos relacionados aos SMA e a processos estocásticos, com
ênfase nas cadeias de Markov.
Em relação às principais contribuições deste trabalho, podemos citar: a con-
cepção de uma abordagem emergente para geração de matrizes de probabilidades de
transição de estados (baseada em ambientes multiagentes reativos), a introdução do
conceito de modelo probabilı́stico para geração de segmentos melódicos (o qual con-
torna o problema da monotonia musical em métodos composicionais estocásticos),
a criação de um ambiente capaz de instigar a criatividade do compositor, etc.

Palavras-chave: Sistemas Multiagentes, Música Estocástica, Cadeia de Markov,


Música Computacional, Composição Algorı́tmica, Emergência, Computação Musi-
cal.
An emergent approach in the stochastic musical composition

RESUMO

This work presents an algorithmic model of musical composition, based in a


stochastic method of composition and an emergent approach for generation of state
transition probability matrices (used in the stochastic method). The model consid-
ered here was conceived and implemented in a structure splitted in layers composed
to: layer of emergent generation of state transition probability matrices, layer of def-
inition of probabilist models for generation of musical segments and layer of musical
synthesis.
To conceive and implement the model considered here studies in the area of
the musical computation had been carried through, with emphasis in algorithmic
composition. Also the concepts related to the SMA and the stochastic processes
had been studied, with emphasis in the Markov chains.
In relation to the main contributions of this work, we can cite: the conception of
an emergent approach for generation of state transition probability matrices (based
in multiagents reactive environments), the introduction of the concept of probabilist
model for generation of melodic segments (which skirtes the problem of the musi-
cal monotony in stochastic composition methods), the creation of an environment
capable to instigate the creativity of the composer, etc.

Palavras-chave: Multiagent systems, Stochastic Music, Markov Chains, Computa-


cional Music, Algorithmic Composition, Emergence, Musical Computation.
13

1 INTRODUÇÃO

Música Computacional ou Computação Musical é uma área interdisciplinar do


conhecimento que surge da intersecção entre a Música e a Ciência da computação e
cujo interesse é a modelagem computacional de problemas inerentes ao domı́nio mu-
sical. Segundo (MILETTO et al., 2004), a “Computação Musical investiga métodos,
técnicas e algoritmos para processamento e geração de som e música, representações
digitais e armazenamento de informação sônica e musical”. A sı́ntese (ou com-
posição) musical refere-se à produção de sons gerados artificialmente, através da ma-
nipulação direta de ondas (sintetizadores) ou manipulação matemática (simulação
digital) ou ainda manipulação de repesentaçõe de aspectos musicais. Pesquisas
recentes abordam o uso de sistemas inteligentes com capacidades de manipular
e evoluir suas próprias regras para composição musical e habilidade de interação
com músicos e outros instrumentos de maneiras cada vez mais sofisticadas. No-
vas maneiras de geração de conteúdo musical estão surgindo, requerendo modos de
acesso e interação que apontam para técnicas inteligentes, como o uso de Com-
putação Evolutiva (MORONI et al., 2000), Neurociência da música (MIRANDA
et al., 2005) e técnicas emergentes (BURRASTON; EDMONDS, 2005).
Sistemas atuais de composição musical podem usar várias abordagens computa-
cionais: algoritmos abstratos, sistemas baseados em conhecimento, abordagens evo-
lutivas, entre outros. Algoritmos abstratos usam algoritmos usuais que não são
tradicionalmente voltados ao conteúdo musical, tais como algorı́tmos geradores de
estuturas fractais (CRUZ, 2001), autômatos celulares (BURRASTON; EDMONDS,
2005), métodos estocásticos (XENAKIS, 1992), etc. Sistemas baseados em con-
hecimento são construı́dos para gerar música, baseados na teoria musical, freqüente-
mente por meio de regras de aprendizagem. Estes dois tipos de sistema pressupõem a
existência de regras ou amostras musicais a priori, ou seja, programadas ou aprendi-
das manualmente a partir de um usuário externo. Abordagens evolutivas procuram
fazer com que o sistema de composição possa evoluir e construir suas próprias regras
de composição musical. No que diz respeito à utilização de técnicas de computação
evolutiva, destaca-se o software Vox Populi (MORONI et al., 2000), desenvolvido
14

pelo NICS (Núcleo interdisciplinar de comunicação sonora da Unicamp) em parce-


ria com o ITI (Instituto nacional de tecnologia e informática de Campinas). O
funcionamento do Vox Populi compreende, basicamente, um processo iterativo no
qual algoritmos genéticos são aplicados sobre populações de acordes, considerando-
se parâmetros musicais ajustáveis, a fim de gerar novas populações de acordes. O
resultado deste processo é música gerada em tempo real que evolui ao longo do
tempo.
Outras áreas de pesquisa em Música Computacional têm seu foco na repre-
sentação da experiência musical, por meio da análise computacional de sinais fi-
siológicos (MIRANDA et al., 2005); sistemas de aprendizagem musical, que estudam
metodologias de ensino da música utilizando softwares e instrumentos como apoio
(FERNEDA et al., 2004); concepção de sistemas de música interativa (IAZZETTA,
1998) e improvisação musical (BRYAN-KINNS, 2004), etc. Neste trabalho, nosso
foco é a área de Sı́ntese/Composição Musical algorı́tmica.

1.1 Motivação
Observando-se o constante avanço da tecnologia em hardware e software voltados
para o processamento de som e composição musical, e a tendência de renomados
compositores aderirem sistematicamente à utilização de ferramentas computacionais
para composição musical, pode-se perceber que a área tem ganhado ênfase e que
muitas são as pesquisas realizadas nesta linha. Todavia, os sistemas de sı́ntese
musical produzidos pelas iniciativas tradicionais são, geralmente, dependentes do
usuário. Ou seja, as construções musicais não são completamente automáticas.
Amostras iniciais são fornecidas manualmente pelo usuário e o sistema de sı́ntese
musical limita-se ao processamento de amostras ou dados, em geral, estáticos e
pré-definidos.
No que diz respeito ao processo geral de sı́ntese musical automática ou Música
Gerativa, (WOOLLER et al., 2005) aborda quatro perspectivas básicas:

Lingüı́stica/Estrutural: a composição musical é realizada a partir de teorias


analı́ticas de geração estrutural. São construı́das gramáticas gerativas para
música utilizando uma estrutura arbórea recursiva.

Interativa/Comportamental: a música é gerada por componentes que não pos-


suem entradas ou seja, sistemas “não transformacionais”(ROWE, 1991).

Criativa/Procedural: a composição musical é gerada por processos definidos


pelo compositor. Exemplos que ilustram esta categoria de composição são Its
gonna rain de Steve Reich e In C de Terry Riley.
15

Biológica/Emergente: música não-determinı́stica inspirada por algoritmos e mod-


elos da Computação Evolutiva como algoritmos genéticos, autômatos celulares,
etc. Nesta abordagem, em geral, uma população inicial de indivı́duos simples
(modelados como componentes musicais), evoluem, gerando uma composição
complexa.

Os sistemas de sı́ntese musical, geralmente, limitam-se à utilização de apenas


uma das abordagens supracitadas, o que evidencia a carência de uma arquitetura de
sı́ntese musical que motive experimentos usando várias estratégias ou configurações.
Em trabalhos que exploram abordagens evolutivas ou baseadas em conhecimento,
pouco tem se considerado sobre a utilização de abordagens distribuı́das ou colabora-
tivas. Poucos trabalhos usam a abordagem social de sistemas multiagentes (SMA)
para modelar aspectos de colaboração e sı́ntese distribuı́da usando recursos como
auto-organização, emergência ou mesmo a metáfora social envolvida nas interações
entre agentes. Trabalhos que apontam nesta direção são encontrados em (AEKEN;
ALVARES, 2000), (TRAJANO; GUIGUE; FERNEDA, 2000), entre outros.
A motivação para este trabalho parte da constatação da inexistência de sis-
temas de sı́ntese musical automáticos e que agreguem estratégias variadas de sı́ntese
em uma mesma arquitetura. Nas arquiteturas comumente propostas, a produção
musical pode perder em qualidade pela influência da amostra de entrada. Uma
abordagem automática, cujas decisões composicionais sejam delegadas ao modelo
algorı́tmico, poderia enriquecer ou tornar os resultados mais dinâmicos, no sen-
tido de explorar estruturas musicais não pensadas inicialmente pelo compositor.
O uso de sistemas multiagentes, através de agentes autônomos e colaborativos,
seja através de uma abordagem cognitiva ou puramente reativa e emergente, pode
fornecer parâmetros iniciais de forma completamente automática. O uso de SMA
pode ainda prover o sistema com a capacidade de gerar matéria-prima informa-
cional em quantidade suficiente para alimentar a base estocástica de sı́ntese musical
utilizada neste trabalho.
Dada a complexidade da sı́ntese musical, este trabalho será focado na estrutura
melódica, sem levar em conta estruturas musicais mais complexas, como a estrutura
harmônica. Estudos futuros poderão agregar à arquitetura, conhecimentos sobre
estruturas harmônicas e outros aspectos complexos da música, como contraponto,
escalas, etc...

1.2 Objetivos
O objetivo deste trabalho é a realização de um estudo na área da computação
musical e, com os conhecimentos adquiridos, propor uma abordagem emergente
para composição musical estocástica. O modelo proposto neste trabalho almeja a
16

composição de linhas melódicas através de um processo de sı́ntese estocástica, o qual,


por sua vez, é abastecido com informações geradas de forma emergente através da
interação de agentes em ambientes multiagentes. Dois pontos básicos são de interesse
deste estudo:

• Definição de um método de Composição estocástica.

• Construção de ambientes multiagentes para a geração emergente das informações


que abastecerão o processo de sı́ntese estocástica;

1.3 Metodologia
A realização deste trabalho terá como primeira etapa o levantamento de material
bibliográfico e sua posterior leitura e sı́ntese. Em seguida, será definido um modelo
estocástico para geração musical. A partir da análise das entradas do modelo es-
tocástico, será concebido um modelo emergente de geração de tais entradas, baseado
em sistemas multiagentes. A modelagem dos agentes, os modelos de interações e de
ambiente e a estrutura do método estocástico utilizado serão baseados nos modelos
estudados no levantamento bibliográfico.

1.4 Organização do documento


Este trabalho está estrutura conforme é demonstrado a seguir.
No capı́tulo 2 explana-se sobre a Computação Musical. Neste capı́tulo é real-
izado um breve histórico do desenvolvimento das tecnologias musicais e aborda-se a
composição algorı́tmica.
No capı́tulo 3 aborda-se os sistemas multiagentes (SMA), detalhando os seus
componentes, formas de comunicação, interação e coordenação. Neste capı́tulo
também é introduzido o conceito de emergência.
No capı́tulo 4 é apresentado o modelo proposto neste trabalho, discutindo seus
elementos constituintes e as técnicas envolvidas na geração das seqüências melódicas.
No capı́tulo 5 é demonstrado um cenário de teste da implementação do modelo. O
cenário de teste demonstrado é estruturado em um passo-a-passo no qual é disctutida
cada uma das etapas envolvidas no modelo de sı́ntese aqui proposto.
Por fim, o capı́tulo 6 apresenta os resultados e a conclusão do estudo realizado
neste trabalho, bem como as sugestões de trabalhos futuros.
17

2 COMPUTAÇÃO MUSICAL

2.1 Um breve histórico

Realizando uma retrospectiva histórica, é possı́vel perceber que as descobertas


cientı́ficas sempre foram bastante instigadoras para o desenvolvimento da música
em praticamente todos os seus aspectos. Tais descobertas cientı́ficas, além de opor-
tunizarem o desenvolvimento tecnológico dos instrumentos musicais, foram o fator
determinante para o surgimento de novas técnicas e abordagens para produção mu-
sical, o que, por sua vez, possibilitou o desenvolvimento de novas estéticas musicais
(UEDA, 2004).
Durante o final do século XIX e meados do século XX, inovações atreladas à
descobertas cientı́ficas da época revolucionaram a música. Dentre tais inovações,
três foram fundamentalmente significativas.
A primeira delas foi a invenção do telefone, por Alexander Graham Bell, em
1876. O telefone de Graham Bell surge demonstrando a possibilidade da conversão
do som em sinais elétricos e vice-versa. Considerado o marco inicial do desenvolvi-
mento das tecnologias eletrônicas musicais (MILETTO et al., 2004), o telefone abriu
caminhos para uma série de inovações posteriores relacionadas ao armazenamento,
à reprodução e à manipulação de informação sonora. Dentre estas inovações pode-
mos citar o Fonógrafo, um dispositivo inventado por Thomas Edison em 1877, cujo
objetivo era o armazenamento de informação sonora em camadas de metal (GOHN,
2001).
A segunda inovação significativa foi a criação do Telharmonium (ou Dynamo-
phone) por Thaddeus Cahill, em 1897. Considerado o primeiro instrumento musical
eletrônico significativo (MILETTO et al., 2004), o Telharmonium consistia, essen-
cialmente, em 145 dı́namos, rotores e bobinas especiais, que, acionados por um
teclado, produziam diferentes freqüências de áudio que podiam ser combinadas para
a composição de uma gama variada de timbres. Para a geração de material sonoro,
o Telharmonium utilizava uma técnica conhecida como sı́ntese aditiva (RATTON,
2001). Esta técnica, posteriormente, foi utilizada em muitos dispositivos de sı́ntese
18

sonora , como os famosos órgãos Hammond, fabricados nos EUA entre 1935 e 1974.
A invenção de Cahill oportunizou o avanço das pesquisas na área da sı́ntese sonora,
possibilitando o desenvolvimento de uma série de instrumentos eletrônicos, entre os
quais pode-se destacar os modernos sintetizadores sonoros.
A terceira grande inovação foi a utilização efetiva da tecnologia computacional
dentro do contexto musical, a partir de meados do século XX. Segundo (MOORE,
1996), as primeiras utilizações significativas de técnicas computacionais para a produção
de música se deu nos Bell Laboratories por volta da década de 50. Em 1956, Lejaren
Hiller na University of Illinois, daria o próximo passo com a implementação de um
software que gerava partituras musicais através de regras mapeadas em algoritmos.
Em 1957, Max Mathews e John Pierce implementam o Music I, primeiro software
de sı́ntese digital de som (FARIA, 1997). O software apresentava uma única voz,
gerada através de uma forma de onda triangular e só controlava a altura, intensi-
dade e duração do som. Nos anos seguintes, a partir do Music I foi criada uma série
de softwares com o mesmo propósito, entre eles os emblemáticos Music II, Music
III, Music IV e Music V. Tais softwares introduziram conceitos fundamentais para
o desenvolvimento dos sistemas eletrônicos de sı́ntese sonora e tornaram-se paradig-
mas amplamente utilizados até hoje no projeto de sintetizadores e programas para
sı́ntese e sequenciamento de eventos musicais (FARIA, 1997). Durante a década de
60, paralelamente ao desenvolvimento das técnicas de sı́ntese digital de som, John
Chowning articula a primeira instalação universitária de música computacional na
Stanford University. Em 1970, Max Mathews cria o GROOVE, primeiro sistema
computacional para performances em tempo real (MOORE, 1996). Na década de
80, sintetizadores digitais já equipavam os computadores. Neste contexto prolı́fico,
a indústria de instrumentos musicais não tardou em adaptar-se às inovações, o que
resultou na criação do protocolo MIDI em 1983 (LEITE, 2000). Atualmente, o pro-
tocolo MIDI é amplamente utilizado como padrão de comunicação entre dispositivos
musicais eletrônicos em geral. Estas inovações tecnológicas foram rapidamente as-
similadas por uma série de compositores e deram origem ou foram fundamentais
para o desenvolvimento de várias correntes estéticas musicais.
Nos anos 30, utilizando os recursos de gravação e reprodução sonora, compos-
itores adotam uma série de novas abordagens na prática composicional que, entre
outros procedimentos, incluia-se a gravação de sons concretos para a posterior ma-
nipulação eletrônica dos mesmos. O conjunto de tais práticas e a estética musical que
resulta da utilização das mesmas, definiram a corrente musical batizada de música
concreta, pelo músico e pesquisador francês Pierre Schaeffer, no fim da década de
40 (MOTTA, 1992).
Em 1952, na cidade de Köln, na Alemanha, nascia a música eletrônica. Tendo
como principal representante o compositor Karlheinz Stockhausen, esta corrente
19

musical utilizou-se dos avanços tecnológicos na área da sı́ntese sonora para construir
composições musicais inteiramente eletrônicas. Ou seja, contrapondo-se à música
concreta, esta nova abordagem composicional não preocupava-se em transformar
sons naturais, mas em criar música, sintetizando o som a partir de frequências
puras. Também na década de 50, unindo sonoridades concretas e sons eletronica-
mente sintetizados, surge a música eletroacústica, tendo Stockhausen como pioneiro
(MOTTA, 1992).
Na década de 70, as tecnologias musicais, que até então estavam confinadas em
laboratórios cientı́ficos de ponta, tornam-se populares e passam a ser amplamente
utilizadas por uma série de compositores e grupos musicais das mais diferentes cor-
rentes estéticas (MILETTO et al., 2004). Entre os expoentes da popularização das
tecnologias musicais eletrônicas podemos citar os grupos Emerson, Lake & Palmer,
Yes, Genesis e Pink Floyd, representando o rock progressivo e Kraftwerk, Jean-
Michel Jarre e Vangelis, representando a música popular eletrônica (MILETTO
et al., 2004).
Nas últimas décadas, as tecnologias musicais resultantes das inovações e pesquisas
supracitadas foram amplamente difundidas, sendo encontradas em praticamente to-
das as correntes estéticas da música contemporânea. Este panorama instigador
acabou por consolidar uma série de áreas de investigação cientı́fica, entre as quais,
a área da computação musical, contexto no qual encontra-se o presente trabalho.
Atualmente a área da computação musical está consolidada e reconhecida pela
comunidade acadêmica como uma área legı́tima da investigação cientı́fica, recebendo
atenção de inúmeros institutos de pesquisa e universidades ao redor do mundo. Em
nı́vel nacional, a SBC possui uma comissão de computação musical que organiza o
Simpósio Brasileiro de Computação Musical (SBCM) periodicamente (MILETTO
et al., 2004). Além do apoio da SBC, no Brasil já existem universidades que de-
senvolvem uma série de projetos voltados para a área. Entre tais universidades
podemos citar a UNICAMP com o Núcleo Interdisciplinar de Comunicação Sonora
(NICS) e a UFRGS com o Laboratório de Computação & Música.

2.2 Computação musical

A computação musical é uma área inerentemente multidisciplinar que envolve


todas as áreas do conhecimento relacionadas à Ciência da Computação e à Música.
Voltada à aplicação dos computadores à problemas musicais, a computação musical
preocupa-se com assuntos que vão desde a modelagem computacional de aspectos
musicais até o estudo de concepções estéticas da expressão artı́stica musical, pas-
sando pelo estudo de técnicas de geração, processamento e armazenamento de som,
etc. Por ser tão ampla, a Computação musical torna-se uma área de investigação
20

acadêmica bastante instigadora, o que tem resultado em uma série de linhas de


pesquisa que vêm se desenvolvendo na área. Exemplos de estudos e pesquisas na
área são: representação da experiência musical, por meio da análise computacional
de sinais fisiológicos (MIRANDA et al., 2005); pesquisas em sistemas de aprendiza-
gem musical, que estudam metodologias de ensino da música utilizando softwares e
instrumentos como apoio (FERNEDA et al., 2004); concepção de sistemas de música
interativa (IAZZETTA, 1998) e improvisação musical (BRYAN-KINNS, 2004), etc.
Basta analisar os anais do simpósio brasileiro em Computação Musical (TORRES,
2007) para ter idéia da imensa variedade de linhas de pesquisa que estão sendo
desenvolvidas atualmente na área da Computação Musical no Brasil e no mundo.
Entre tais linhas de pesquisa, podemos citar: composição algorı́tmica (composição
automática e composição assistida por computador), sı́ntese sonora, técnicas de es-
pacialização sonora, análise musical (com técnicas de segmentação musical), criação
de instrumentos virtuais,etc. Dentre as linhas de pesquisa citadas, destacamos a
composição algorı́tmica, visto que ela compreende o escopo no qual o presente tra-
balho será desenvolvido.
Como o presente trabalho objetiva propor um modelo computacional para com-
posição musical algorı́tmica, torna-se importante evidenciar os principais conceitos
relacionados à representação de informação sonora e musical, bem como os conceitos
pertinentes à própria sub-área da composição algorı́tmica.

2.3 Conceitos básicos sobre o som

Convivemos cotidianamente com uma série de sons que são produzidos pelas
mais diversas fontes sonoras: automóveis passando nas ruas, pessoas conversando,
música sendo executada, etc. O fenômeno sonoro é tão comum no cotidiano que não
nos damos conta da complexidade envolvida no mesmo.
Em (MILETTO et al., 2004), ilustram-se os processos envolvidos no fenômeno
sonoro (desde a geração do som até sua percepção pelo sistema nervoso humano)
tomando como exemplo o som de uma campainha. Quando bate-se com um martelo
(aplicando energia cinética) em uma campainha de metal hipotética, ocorre uma de-
formação desta. A campainha resiste à deformação, devolvendo a energia cinética,
buscando voltar ao seu estado original. Neste momento inicia-se uma repetição
periódica de deformações e restaurações da campainha. A esta repetição chamamos
de vibração. Estas vibrações então produzem mudanças de pressão do ar em volta
da campainha. Essas mudanças resultam em seções de ar que são mais densas (con-
densações) e outras que são rarefeitas (rarefações), ocorrendo sucessivamente uma
depois da outra e expandindo-se (processo análogo à formação de ondas circulares
na superfı́cie de um lago, após arremessarmos uma pedra neste). Estas ondas de
21

condensações e rarefações são propagadas para dentro do ouvido humano e fazem


o tı́mpano vibrar. As vibrações são captadas por terminações nervosas e decodi-
ficadas, de forma que nós as escutamos como sons. Pode-se compreender o som
como uma vibração que percorre o meio (ar, água,...) e que pode ser percebida
pelo sistema auditivo humano. Se esta vibração oscila de acordo com um padrão
repetitivo, dizemos que o som tem uma forma de onda periódica. Se não há um
padrão perceptı́vel no som, este é chamado de ruı́do (MILETTO et al., 2004).
As variações da pressão do ar (vibração) podem ser representadas através de
formas de onda (MILETTO et al., 2004). A representação gráfica (Figura 2.1) de
um som mostra as mudanças na pressão do ar conforme a passagem do tempo.

Figura 2.1: Representação gráfica, no domı́nio temporal, de uma onda senoidal.

A informação fundamental com a qual a computação musical preocupa-se é o


som. E, dentro deste contexto, o som pode ser processado como uma representação
digital do som analógico (áudio digital) ou como uma representação de aspectos
definidos dentro de um contexto musical.

2.3.1 Representação digital de informação sonora - Áudio digital

Para ilustrar a representação computacional de informação sonora, tomaremos


como exemplo o processo de gravação de um som ambiente em um dispositivo de
armazenamento analógico (fita magnética) e, posteriormente, em um dispositivo de
armazenamento digital (DAT - digital audio tape).
A primeira etapa do processo de gravação de um som ambiente é a captação do
mesmo através de algum dispositivo de captação especı́fico, como o microfone. Ao
instalar o microfone em um determinado ambiente, o som (naturalmente analógico)
propagado através do mesmo (através da variação de pressão do ar), faz com que
uma fina membrana do microfone vibre em função da vibração do ar. Esta vibração
da membrana gera tensões proporcionais (sinais elétricos analógicos). Estes sinais
elétricos, por sua vez, podem ser armazenados de forma analógica ou digital. Para
armazenar o sinal elétrico num dispositivo analógico, como uma fita magnética,
por exemplo, as tensões deste sinal são utilizadas para alinhar magneticamente as
22

partı́culas de metal existentes na superfı́cie da fita. Este processo apresenta alguns


inconvenientes, alguns deles inerentes ao próprio meio usado para o armazenamento
da informação. Por exemplo, quando o sinal elétrico que representa a onda sonora
é convertido em informação magnética ocorre uma perda de fidelidade com a dis-
torção do sinal original e a eliminação de alguns componentes harmônicos de alta
freqüência. Além disso, existe ainda a adição de ruı́do gerado pela própria fita. Já,
para armazenar o sinal elétrico de forma digital, ocorre o processo de digitalização
do sinal, através de um circuito conversor analógico-digital e uma técnica chamada
sampling (amostragem) (MILETTO et al., 2004).

2.3.1.1 Amostragem digital


Chama-se de sampling a técnica que consiste em realizar um determinado número
de tomadas de amostra de uma forma de onda especı́fica em um perı́odo de tempo
determinado (MILETTO et al., 2004). Este processo é realizado pela determinação
de N pontos de amplitude da onda e a representação destes pontos por valores
que sejam proporcionais às amplitudes (MILETTO et al., 2004). Para compreen-
der melhor como ocorre a representação do som analógico (informação contı́nua)
em informação digital (informação discreta), é importante que sejam definidos três
conceitos importantes: taxa de amostragem (samplerate), resolução da amostra (bi-
trate) e quantização.

Taxa de amostragem: Representa o número de tomadas de amostras da forma


de onda de um determinado som em um segundo (LAVRY, 2004);(BARBOSA,
1999). A taxa de amostragem é medida em Hertz (ciclos de amostragem por
segundo) e quanto maior for este número, maior será o detalhamento e a
fidelidade do som digitalizado.
Uma analogia bastante ilustrativa para compreender a importância da amostragem
é relacioná-la à captação de um determinado movimento em vı́deo. Quanto
maior o número de quadros captados pela câmera, com maior fluidez (sem
“quebras”) e mais fiel será a representação do movimento no vı́deo. Com a
captação sonora ocorre o mesmo.
De acordo com o teorema de amostragem de Nyquist (LAVRY, 2004), du-
rante o processo de sampling a taxa de amostragem deve ser no mı́nimo igual
ao dobro da maior frequência do som que está sendo amostrado. Quando
esta condição não se satisfaz ocorrem distorções em determinadas faixas de
frequências.

Resolução da amostra: A resolução da amostra está relacionada à quantidade


de informação com a qual pretendemos representar a amostra(LAVRY, 2004);(BAR-
BOSA, 1999). Quanto maior a resolução, ou seja, quanto mais informação
23

utilizarmos para representar a amostra, mais fiel ao som original será a repre-
sentação. A resolução da amostra é medida em bits. Com N bits, é possı́vel
representar 2N valores. A resolução utilizada para o armazenamento de áudio
em CD´s, por exemplo, é de 16 bits. Ou seja, num CD, o áudio é representado
utilizando-se um conjunto de 216 (65.536) amplitudes possı́veis.
Voltando à analogia da captação de movimento em vı́deo, é possı́vel rela-
cionar a resolução da amostra à resolução de cada quadro do movimento a
ser capturado. Quando mais informação armazena-se de cada quadro, maior
a fidelidade do mesmo à imagem real capturada.

Quantização: Durante o processo de sampling, quando o valor de uma determi-


nada amplitude fica entre dois valores discretos, ocorre uma aproximação deste
valor (arredondamento) para o valor discreto mais próximo disponı́vel (BAR-
BOSA, 1999);(MILETTO et al., 2004). Este arredondamento é chamado de
quantização. O processo de quantização é ilustrado na Figura 2.2.

Figura 2.2: Representalção gráfica do processo de quantização.

2.3.2 Aspectos básicos do som no contexto musical

Dentro do contexto musical costuma-se observar certas propriedades fı́sicas do


som, de forma que estas possam ser controlados pelo compositor e pelo instrumen-
tista a fim de gerar um determinado resultado musical esperado. Estas propriedades
são representadas abstratamente em padrões de notação musical, permitindo, desta
forma, que uma peça musical seja composta sem que o compositor necessite utilizar
sons concretos no processo. Ou seja, conhecendo-se estes aspectos básicos do som
musical e um sistema de notação musical, pode-se descrever de forma totalmente
abstrata a construção de uma determinada peça musical. As propriedades básicas
24

do som musical são: altura, duração, intensidade (ou volume) e timbre. Em geral,
na notação musical ocidental, uma altura e uma duração definem uma nota musical.

Altura: Define-se como altura, a capacidade que o som tem de ser mais baixo
(grave) ou alto (agudo).
Esta caracterı́stica fica evidente quando tocamos as teclas de um piano, por
exemplo. Os sons gerados são mais agudos quando pressionamos uma tecla
mais à direita e mais graves, quando pressionamos teclas mais à esquerda.
Uma oscilação completa de uma onda periódica (incluindo um pico e um vale
completos) é chamada de ciclo. Ao comparar um som mais grave com um
som mais agudo em um osciloscópio, podemos perceber que sons mais agudos
geram mais ciclos por unidade de tempo que sons mais graves. O número de
ciclos dentro do intervalo de um segundo é o que, convencionalmente, chama-se
de freqüência, a qual é expressa em unidades chamadas hertz (Hz) (MILETTO
et al., 2004). A Figura 2.3 representa uma onda senoidal e evidencia um de
seus ciclos. Definindo o tempo total de duração desta onda como sendo um
segundo, terı́amos, neste caso, uma frequência de 3Hz.

Figura 2.3: Representação gráfica do cliclo de uma forma de onda senoidal especı́fica.

Segundo (MILETTO et al., 2004), a faixa de frequências que o ouvido humano


consegue perceber fica, aproximadamente, entre 20Hz e 20000Hz.
Em função da altura, as notas musicais recebem nomes. Segundo a nomen-
clatura utilizada pelo sistema de notação musical ocidental, as notas po-
dem possuir os seguintes nomes: Dó, Ré, M i, F á, Sol, Lá e Si. Também
denotadas, respectivamentem, por: C, D, E, F , G, A, B. Para denotar
um semitom (o menor intervalo possı́vel entre dois sons dentro do sistema
de notação musical ocidental) acima de uma das notas, utiliza-se o sinal #
(sustenido), para denotar um semitom abaixo de uma nota utiliza-se o sinal b
(bemol). Desta forma, o conjunto total de alturas que o sistema de notação
musical utiliza é composto por 12 elementos, os quais são (com intervalos de
um semitom): C, C# ou Db, D, D# ou Eb, E, F , F # ou Gb, G, G# ou
25

Ab, A, A# ou Bb, B. Para entender como funciona a correspondência entre o


nome de uma nota e a freqüência a ela associado, é importante ter em mente
que, no sistema temperado, a sucessão dos 12 semitons é definida por uma
1
progressão geométrica de razão 2 12 . Ou seja, uma determinada nota Y que
está 12 semitons acima de uma nota X, tem exatamente o dobro da freqüência
da nota X. A razão 2 entre uma nota Y e uma nota X é chamada de oitava
(e compreende o intervalo de 12 semitons entre ambas).

Duração: Define-se como duração, a quantidade de tempo durante o qual um de-


terminado fenômeno persiste. Num contexto musical, a duração determina a
quantidade de tempo durante o qual um som é executado ou a quantidade
de tempo de “silêncio” entre a execução de dois sons (pausa). O controle das
durações dos fenômenos sonoros dentro de um contexto musical possibilita
a construção de ritmos. Dentro do sistema de notação musical ocidental,
as durações são representadas por figuras que representam valores de tempo
definidos em relação a um valor referencial (valores não absolutos). Na Figura
2.4 temos a representação gráfica (segundo a notação musical ocidental) e a
nomenclatura das durações (dos sons e das pausas) em relação a um valor de
tempo R.

Das durações representadas pela Figura 2.4, a Longa e a Breve, utilizadas


durante o perı́odo medieval da música, já não são mais utilizadas atualmente,
a Quartifusa é raramente empregada e a Breve é assumida como o referencial
das demais notas.

Para compreender melhor o sistema de valores referenciais das durações, pode-


mos tomar a Semibreve valendo um segundo. A partir da definição do valor
de uma figura, pode-se definir as demais: Mı́nima assume como valor 1/2 de
segundo, a Semı́nima assume como valor 1/4 de Segundo, e assim por diante.

Intensidade (ou volume): Para ilustrar esta caracterı́stica, tomemos como ex-
emplo novamente o piano. Se pressionarmos fortemente uma tecla do piano,
o som resultante será mais forte, já se uma determinada tecla do piano for
pressionada suavemente, o som resultante será fraco. Dito isto, é importante
evidenciar um erro que geralmente ocorre. É comum ouvir pessoas utilizando
os termos alto e baixo fazendo referência ao volume do som, quando na ver-
dade, estes termos dizem respeito a uma caracterı́stica distinta do som: a
altura.

Analisando um determinado som através de um osciloscópio, pode-se perceber


que o volume de um som está relacionado à amplitude da onda que o repre-
senta. Quanto maior for a amplitude de uma onda maior será o volume de um
26

Figura 2.4: Representações gráficas, valores (relativos a um tempo hipotético R) e


nomenclaturas das durações utilizadas pela notação musical ocidental.

determinado som. Na Figura 2.5 pode-se ver representada a amplitudade de


uma onda.

Figura 2.5: Amplitude, o ponto mais distante da posição média da onda.

Timbre: Para ilustrar esta caracterı́stica do som, consideremos dois instrumentos


distintos: um violão e um oboé, por exemplo. Mesmo que esses instrumentos
produzam um determinado som na mesma altura e intensidade, a diferença en-
tre o som de ambos é evidente. Esta caracterı́stica que difere sons distintos, in-
dependentemente da intensidade e da altura dos mesmos é convencionalmente
chamada de timbre (LOUREIRO; PAULA, 2006). Popularmente, costuma-se
27

definir o timbre como a “assinatura” de um som.


Analizando-se o fenômeno sonoro sob uma perspectiva fı́sica, podemos obser-
var que quando um determinado corpo (uma corda de um violão, por exem-
plo) vibra, uma série de ondas senoidais é produzida. Além da frequência
fundamental, que define a altura do som produzido, o corpo também pro-
duz frequências harmônicas. Qualquer corpo em vibração produz dezenas
de freqüências harmônicas que oscilam simultaneamente à frequência funda-
mental. Somando a amplitude da freqüência fundamental às amplitudes das
frequências harmônicas, a forma de onda resultante não será mais senoidal,
mas sim uma onda irregular repleta de cristas e vales. Na Figura 2.6 e na
Figura 2.7, temos, respectivamente as formas de onda de um som produzido
por uma flauta e de um som produzido por um xilofone. Em relação à esta
última forma de onda, é possı́vel perceber que inicialmente a quantidade de
frequências harmônicas é muito maior que no restante do tempo. Isto por que
o inı́cio da onda reflete à batida da baqueta e o restante da onda reflete apenas
a vibração da madeira.

Figura 2.6: Forma de onda de um som produzido por uma flauta.

Figura 2.7: Forma de onda de um som produzido por um xilofone.

Além das irregularidades supracitadas, a forma como o som se comporta du-


rante o espaço de tempo que comprende o inı́cio e o fim do mesmo, também
é determinante na definição do timbre. As caracterı́sticas envolvidas na de-
scrição deste comportamento são quatro: ataque, decaimento, sustentação e
relaxamento. Ao conjunto destas caracterı́sticas dá-se o nome de envelope (ou
envoltória ou envolvente) da onda.

1. Ataque: Diz respeito à forma como o som inicia. Para ilustrar o contexto,
28

pode-se tomar como exemplo o violino. Ao tocar as cordas do violino


com o arco, o som surge e aumenta lentamente de intensidade. Todavia,
se as mesmas cordas do violino forem percutidas, o som surgirá muito
rapidamente e com intensidade alta.
Dependendo da fonte sonora, o ataque pode durar de alguns centésimos
de segundo até mais de um segundo.

2. Decaimento: Diz respeito à queda de intensidade que o som sofre logo


após o ataque e antes de estabilizar-se. Algumas fontes sonoras produzem
decaimentos bruscos, outras produzem decaimentos suaves, em algumas
o decaimento praticamente inexiste.
Em um determinado instrumento de sopro, por exemplo, a força ini-
cial necessária para colocar a palheta em vibração é maior que a força
necessária para para mantê-la vibrando, de forma estável, em uma freqüência
determinada.

3. Sustentação: Corresponde ao tempo em que o som sustenta-se com a


mesma intensidade (estabilidade). Entre os instrumentos musicais, grande
parte permite o controle da sustentação (flauta, oboé, violino,...). To-
davia, em alguns instrumentos este controle não é possı́vel (como os in-
strumentos de percussão em geral). Em alguns casos o som nem chega
a sustentar-se e o decaimento inicial já leva o som diretamente ao seu
desaparecimento.

4. Relaxamento: Diz respeito ao comportamento do som em sua etapa fi-


nal, quando a intensidade sonora diminui até desaparecer completamente.
Pode ser muito brusco, como em um instrumento de sopro, quando o in-
strumentista corta o fluxo de ar, ou muito lento, como em um gongo.

A Figura 2.8 apresenta três formas de onda com envelopes de onda distintos.
A primeira forma de onda mostra três notas executadas a partir de uma tabla
(instrumento de percussão indiano), a segunda mostra três notas executadas
a partir de uma trompa (instrumento de sopro) e a terceira mostra uma longa
nota executada a partir de uma flauta. No caso do som da tabla, nota-se que
o som surge quase instantaneamente após a percussão da pele pelas mãos do
executante, seguido de um decaimento acentuado e relaxamento. Em relação
ao som da trompa, pode-se perceber que a nota se inicia com um aumento
mais gradual de intensidade, sofre um pequeno decaimento após o inı́cio da
nota e dura todo o tempo em que o trompista mantêm o sopro, desaparecendo
de forma bastante rápida ao final das notas. Por fim, em relação ao som da
flauta, pode-se perceber que o som surge muito suavemente (ataque suave),
29

se mantém com amplitude quase constante (perı́odo de sustentação) e depois


desaparece também lentamente (perı́odo de relaxamento).

Figura 2.8: Formas de onda que apresentam respectivamente os envelopes de onda


de uma tabla (executando três notas), uma trompa (executando três notas) e uma
flauta (executando uma longa nota).

2.4 Composição Algorı́tmica


Um algoritmo é definido como uma sequência finita e não ambı́gua de instruções
que é executada até que determinada condição se verifique (SALVETTI; BARBOSA,
1997). Um algoritmo pode ser visto como o conjunto finito de passos necessários para
realizar uma tarefa especı́fica bem definida. Tendo esta definição de algoritmo em
mente, podemos entender composição algorı́tmica como a composição musical, cuja
estrutura, parcial ou total, é formalizada através de uma sequência de procedimentos
bem definidos. Dito de outra forma, a composição algorı́tmica consiste basicamente
no uso de processos formais para a criação de música (ROADS, 1996).
Contrariando o que indica o senso comum, a composição algorı́tmica é um re-
curso utilizado muito antes da idealização dos computadores modernos (UEDA,
2004). Ainda no século XI, (por volta de 1026) o monge italiano e regente do coro
da Catedral de Arezzo, Guido d’Arezzo, idealizou e utilizou um sistema formal que
gerava melodias a partir de textos litúrgicos, relacionando cada sı́laba do texto a uma
nota de altura especı́fica, de acordo com a vogal da sı́laba (ROADS, 1996). Entre os
séculos XIV e XV, vários compositores, entre os quais Guillaume de Machaut, rela-
cionavam melodias a padrões rı́tmicos recorrentes (UEDA, 2004). No século XVII, o
expoente do perı́odo clássico, Wolfgang Amadeus Mozart, utilizava o Musikalisches
Würfelspiel (o jogo de dados musical). Neste algoritmo, o compositor construı́a um
minueto juntando-se pequenos fragmentos musicais pré-definidos, os quais eram se-
lecionados através da jogada de dados e posterior consulta a uma tabela, onde cada
possı́vel resultado do jogo era relacionado a um conjunto de fragmentos (ROADS,
30

1996). Durante o inı́cio do século XX, antes do surgimento dos computadores, diver-
sos compositores utilizavam procedimentos matemáticos e estatı́sticos na composição
musical (UEDA, 2004).
A partir do surgimento do computador, na década de 50, as possibilidades
da composição algorı́tmica aumentaram drasticamente (UEDA, 2004). Sistemas
extremamente complexos de composição algorı́tmica surgiram, acompanhando a
evolução da tecnologia computacional. Não tardou para que surgissem modelos com-
posicionais baseados em técnicas de Inteligência Artificial, estruturas matemáticas
complexas e metáforas relacionando parâmetros musicais a fenômenos fı́sicos.
Neste sentido, o compositor grego Iannis Xenakis tornou-se emblemático. Xe-
nakis ficou conhecido pelo desenvolvimento e utilização de uma série de idéias com-
posicionais que utilizavam modelos algorı́tmicos como base. Entre essas idéias pode-
mos destacar o Stochastic Music Program (SMP), desenvolvido a partir de modelos
estocásticos que descrevem o comportamento de moléculas em gases. O SMP de Xe-
nakis compõe música modelando uma sequência de blocos, onde cada bloco tem uma
duração e uma densidade de notas. O usuário interage com o programa definindo
parâmetros globais da música (como, por exemplo, duração média dos blocos, den-
sidades mı́nima e máxima dos blocos e parâmetros de mudança de timbre) (UEDA,
2004). Esta abordagem reflete a visão de Xenakis sobre a música do século XX,
onde o design global da obra tem uma importância maior que suas formas locais
(UEDA, 2004).
Além de Xenakis, muitos outros compositores e pesquisadores desenvolveram
abordagens algorı́tmicas para a geração de material musical. Podemos classificar
estas abordagens através de três aspectos distintos: objetivo, tipo de informação
que processa e modelo algorı́tmico que utiliza.

2.4.1 Classificação quanto ao objetivo

Em relação ao objetivo dos sistemas composicionais, pode-se classificá-los em


dois grandes grupos distintos. O primeiro grupo busca gerar uma composição com-
pleta ao fim do processo algorı́tmico. Ou seja, o algorı́tmo, mesmo trabalhando sobre
parâmetros fornecidos por um usuário humano, é o compositor (OLIVEIRA, 2003).
Esta abordagem muitas vezes preocupa-se em modelar os processos da criatividade
humana e está bastante ligada às ciências cognitivas e à IA forte (OLIVEIRA, 2003).
Já no segundo grupo, o sistema tem o objetivo de gerar material musical para pos-
terior transformação do mesmo por parte do compositor; ou resolver problemas do
contexto musical (como por exemplo, gerar um acorde que resolva uma determi-
nada harmonia, dadas certas restrições melódicas); ou ainda, fornecer um ambiente
de testes que instigue a inspiração do compositor. Nesta abordagem, o algoritmo
atua como um suporte auxiliar do compositor, e está bastante ligada à IA fraca
31

(OLIVEIRA, 2003).

2.4.2 Classificação quanto ao tipo de informação processada

Os sistemas composicionais podem utilizar dois tipos de informação musical:


amostras de áudio digital (amostras concretas de som digitalizadas) ou informação
abstrata (que pode ser desde informações musicais como alturas e durações de notas
musicais, até equações matemáticas, modelos fı́sicos,...). Evidenciados os tipos de in-
formação utilizados, cabe dizer que os sistemas composicionais, em geral, podem ser
desenhados para utilizar tais tipos de informação das mais diversas formas, as quais,
em geral, podem ser classificadas em três grandes grupos: sistemas que utilizam ape-
nas informações abstratas, sistemas que utilizam somente amostras de áudio digital
e sistemas que utilizam ambos os tipos de informação em uma abordagem hı́brida.
No primeiro caso, por exemplo, um sistema obtém como entrada do processo
composicional, um conjunto de dados abstratos, que pode conter desde abstrações
de informações pertinentes ao contexto musical, como alturas e durações de notas
musicais, até estruturas abstratas diversas, como equações matemáticas que podem
sugerir regras para geração de informação musical. Em seguida, o sistema submete
este conjunto de dados a um determinado modelo algorı́tmico que é responsável
pela geração da composição musical final, que, por sua vez, também é representada
através de um modelo abstrato (como uma partitura padrão, ou alguma repre-
sentação própria). A geração de uma representação abstrata da composição facilita
uma possı́vel intervenção do compositor no material gerado, oferecendo a possibili-
dade de se alterar aspectos da composição, além de deixar a interpretação da obra
livre (a representação da composição musical pode ser executada por intérpretes
humanos e/ou computacionais). Este processo de composição algorı́tmica é repre-
sentado pela Figura 2.9, onde A representa o conjunto de informações abstratas,
neste caso, figuras que representam durações de notas musicais; B, um modelo
algorı́tmico responsável pela geração de C, partindo-se do conjunto A e C, a repre-
sentação abstrata (uma partitura padrão) da composição musical final.
No segundo caso, utilizando unicamente informação sonora, o sistema composi-
cional é abastecido com amostras de som (samples) digital. Sobre estas amostras de
áudio é aplicada alguma abordagem algorı́tmica em especı́fico. Ao fim do processo
algorı́tmico, gera-se uma composição musical em áudio digital, já pronta para ex-
ecução. Este processo é representado pela Figura 2.10, onde A representa o conjunto
de amostras de áudio digital; B, um modelo algorı́tmico responsável pela geração
de C, partindo-se do conjunto A e C, a composição musical final, já pronta para a
execução e/ou reprodução, em formato de áudio digital.
É importante perceber que ao gerar a composição em áudio digital, torna-se
mais complexa a intervenção do compositor na composição gerada. Neste esquema
32

Figura 2.9: Sistema composicional baseado puramente em informações abstratas.

Figura 2.10: Sistema composicional baseado puramente em amostras de áudio digital


(informação sonora pura, com ou sem contextualização musical).

de composição, o foco é a manipulação de informação sonora.


No terceiro caso, o sistema pode ser abastecido com um conjunto de dados ab-
stratos (alturas e durações de notas e informações sobre timbres, por exemplo) e/ou
amostras de áudio digital. Sobre este conjunto de dados, são aplicadas determi-
nadas técnicas algorı́tmicas para, por fim, gerar a composição musical, que, neste
caso, pode tanto ser representada de forma abstrata quanto em formato de áudio
digital (já pronta para a execução). Este processo está representado na Figura 2.11,
onde A representa o conjunto de amostras de sons concretos e/ou dados abstratos
que representam informação musical; B, um modelo algorı́tmico responsável pela
geração de C, partindo-se do conjunto A e C, a composição musical concreta, já
pronta para a execução e/ou reprodução (em formato de áudio digital).

2.4.3 Classificação quanto ao modelo algorı́tmico utilizado

Os sistemas composicionais algorı́tmicos modelam o processo composicional mu-


sical a partir de modelos algorı́tmicos. Em (OLIVEIRA, 2003), são apresentados três
modelos algorı́tmicos clássicos, utilizados em sistemas de composição algorı́tmica:
modelo heurı́stico, modelo gerativo e modelo estocástico.
33

Figura 2.11: Sistema composicional que utiliza tanto informações abstratas quanto
informação sonora.

2.4.3.1 Modelo Heurı́stico

O modelo algorı́tmico heurı́stico, como o próprio nome sugere, baseia-se na uti-


lização de heurı́sticas para guiar a composição musical.
Segundo (PUCHKIN, 1969) o termo heurı́stica está relacionado à abordagens es-
tratégicas especı́ficas que o ser humano utiliza para atingir determinados fins, sendo
que tal abordagem está fortemente relacionada à processos intuitivos e criativos do
pensamento humano.
Pode-se compreender os sistemas que baseiam-se neste modelo como sistemas
que modelam algoritmicamente uma determinada estratégia composicional criada
pelo compositor, na maioria das vezes, gerando resultados a partir de regras que
têm a finalidade de restringir o espaço de busca, guiando o processo sempre em
direção aos resultados mais satisfatórios (definidos pelas regras implementadas pelo
sistema).
Modelos heurı́ticos são muito utilizados em jogos, em geral. Na maioria das
implementações de jogos de xadrez, por exemplo, a análise de todas as possı́veis jo-
gadas a partir de um determinado estado do jogo seria computacionalmente inviável.
Neste contexto, utiliza-se heurı́sticas para diminuir o espaço de buscas por jogadas,
utilizando-se determinadas regras que simulam o conhecimento tácito de um jogador
humano sobre a partida de xadrez. Em uma partida de xadrez, as heurı́sticas são
definidas a partir da observação da sequência de movimentos que o adversário real-
iza e da configuração das próprias peças. Uma certa sequência de movimentos pode
sugerir o objetivo do jogador. Neste contexto, um oponente atento, visualizando a
intenção implı́cita na sequência de movimentos, pode antecipar-se, disparando deter-
minados movimentos de defesa ou contra-ataque que tirem proveito da configuração
das peças. Tendo-se em mente que o conceito de heurı́stica está fortemente rela-
cionado a estratégias de decisão inerentes aos processos criativos do pensamento
humano e que a música é, de forma reducionista, o fruto de um processo criativo
34

do pensamento humano, pode-se inferir o quanto as heurı́sticas são comuns dentro


do processo da composição musical. Em geral, compositores possuem cada qual um
estilo próprio de compor. Este estilo é definido pelo conjunto de decisões que toma
durante o processo de criação da estrutura musical e, na maioria dos casos, pode
ser identificado a partir de uma análise profunda desta estrutura. Estas decisões
podem ser vistas como heurı́sticas e podem ser mapeadas em conjuntos de regras,
que, posteriormente, podem ser implementadas em sistemas computacionais.
Em (OLIVEIRA, 2003) é citado um software para composição musical, desen-
volvido por James A. Moorer, no qual foram utilizadas abordagens heurı́sticas para
a geração de forma 1 e motivo 2 musical. Neste modelo composicional algorı́tmico,
inicialmente a forma musical é definida por relações matemáticas estabelecidas pelo
usuário/compositor. Em função da forma musical estabelecida, é gerado um con-
junto de acordes. E, por último, em função dos acordes gera-se um conjunto de
notas musicais. Este processo gera seqüência melódicas que são armazenadas e re-
utilizadas de uma forma que, segundo Moorer, a coerência motı́vica da peça em
composição era assegurada.
Também em (OLIVEIRA, 2003), cita-se softwares baseados em processos com-
posicionais que utilizam estruturas baseadas em árvore. Desta forma, para cada
questão composicional (“Que acorde utilizar aqui?”, “Que padrão rı́tmico utilizar
aqui?”,...) pode-se gerar mais de uma solução possı́vel. Dentro deste cenário, regras
heurı́sticas são utilizadas para determinar quais das alternativas são mais adequadas
(o “filtro” está relacionado à regra definida). Assim, algumas das alternativas po-
dem ser desenvolvidas até estágios mais avançados, enquanto outras são descartadas
imediatamente, de acordo com as heurı́sticas estabelecidas. É possı́vel perceber que
nesta abordagem, a utilização de regras heurı́sticas diminui o espaço de busca por
soluções. Percebe-se o quanto é importante, dentro desta abordagem, escolher regras
equilibradas, que não restrinjam demais as escolhas, mas que também não permitam
que qualquer alternativa gerada passe pelo “filtro”. Segundo (OLIVEIRA, 2003),
o cientista da computação, Stanley Gill, propôs uma estrutura baseada em árvore
para a geração de música dodecafônica 3 , onde as regras empregadas para a eleição

1
Dentro do contexto musical, a forma exprime o plano geral de uma composição musical, evi-
denciando a organização dos elementos constituintes da mesma (temas, motivos, células rı́tmicas
e/ou melódicas,etc) (BITONDI, 2006). Sob uma perspectiva visual, a forma musical pode ser
compreendida como o desenho da música, no qual evidenciam-se os contrastes entre os elementos
que a compõe.
2
Dentro do contexto musical, chama-se de motivo qualquer pequeno elemento, ou conjunto
destes, que são recorrentes ou, de certa forma, evidentes e que objetivam assegurar a unidade do
todo musical (BITONDI, 2006).
3
Música baseada na utilização de um sistema no qual o compositor dispõe, segundo suas neces-
sidade composicionais, os 12 intervalos de semitons de uma oitava em uma determinada ordem,
chamada de série dodecafônica, que deve ser respeitada ao longo da peça. Tal sistema visa garantir
a unidade dos elementos utilizados dentro da composição atonal. (SCHOENBERG, 1999)
35

da seqüência vencedora eram relacionadas às regras do contraponto dodecafônico


(que estão fora do escopo deste trabalho). A geração de possibilidades musicais do
modelo implementado por Gill é ilustrada na Figura 2.12.

Figura 2.12: Primeiras 100 iterações do processo algorı́tmico proposto por Stanley
Gill, no qual as possibilidades musicais são geradas em uma estrutura de árvore
(OLIVEIRA, 2003).

2.4.3.2 Modelo Gerativo

O modelo algorı́tmico gerativo é baseado na teoria das gramáticas gerativas, que


surgiu a partir dos trabalhos de Noam Chomsky, professor de linguı́stica do MIT
(Instituto de Tecnologia de Massachusetts) (OLIVEIRA, 2003).
As gramáticas gerativas propostas por Chomsky, constituem sistemas de regras
formalizadas que possibilitam a geração de sentenças gramaticais da lı́ngua que de-
screve ou caracteriza e a atribuição de uma descrição estrutural (ou análise gramati-
cal) a cada sentença, sem recorrer a nenhuma informação que não esteja representada
explicitamente dentro deles (GARDNER, 1996). Ou seja, em geral, as gramáticas
gerativas possibilitam a produção de um modelo de competência geral, isto é, um
modelo teórico cognitivo, da habilidade gramatical de um indivı́duo (OLIVEIRA,
2003).
As gramáticas propostas por Chomsky têm potencial gerativo e analı́tico. Uti-
lizando o potencial gerativo de uma gramática pode-se gerar todas as sentenças
36

que pertencem à lı́ngua que ela descreve. Analiticamente, uma gramática pode ser
utilizada para analisar sentenças e verificar se tal sentença pertence à lı́ngua que
a gramática descreve. Quando fala-se em gramática gerativa, na verdade, está-se
fazendo uma alusão à utilização de uma gramática para gerar sentenças.
A geração de sentenças, a partir de uma gramática gerativa, é realizada utilizando-
se um mecanismo de reescrita de sı́mbolos. Neste processo, os sı́mbolos, que podem
ser terminais ou não terminais, são concatenados em cadeias. Os sı́mbolos não termi-
nais podem ser substituı́dos por sub-cadeias (que podem conter sı́mbolos terminais
e não terminais). A substituição de sı́mbolos não terminais ocorre em função de um
conjunto explı́cito de regras de produção que descrevem formalmente como ocorre a
substituição de cada sı́mbolo (MANOUSAKIS, 2006).
Uma gramática formal pode ser representada por uma quádrupla G, em que
G = (N, T, P, S) , onde (MANOUSAKIS, 2006):

1. N é o conjunto de sı́mbolos não terminais (variáveis).

2. T é o alfabeto de sı́mbolos terminais (constantes).

3. N ∩ T = 0.

4. S é o sı́mbolo inicial (axioma) sobre o qual serão aplicadas as regras de


produção (P ), onde S ∈ N .

5. P é o conjunto de regras de produção em que P = α− > β. Onde α ∈ {N ∪T }


e β ∈ {N ∪ T }.

Uma outra abordagem também abarcada no modelo baseado em gramáticas


gerativas utiliza L-Systems para a geração musical.
Por volta de 1968, o botânico e biólogo teórico, Aristid Lindenmayer, introduziu
um novo modelo de reescrita de cadeias de sı́mbolos cuja pretensão inicial era ser
“um framework teórico para o estudo do desenvolvimento de organismos multicelu-
lares simples” (MANOUSAKIS, 2006). Este novo modelo foi chamado de L-System,
ou ainda, Lindenmayer system (sistemas L ou sistemas Lindenmayer), e passou
a ser largamente utilizado pela comunidade cientı́fica devido a sua capacidade de
gerar objetos complexos a partir de um conjunto de sı́mbolos simples. Desde a sua
criação, os L-Systems foram utilizados em contextos diversos: modelagem do pro-
cesso de crescimento de organismos vivos, modelagem gráfica de plantas herbáceas
em ambientes virtuais, etc.
Os L-Systems são constituı́dos, basicamente, por um conjunto de sı́mbolos e re-
gras de substituição inspirados nos modelos desenvolvidos por Chomsky (MANOUSAKIS,
2006). A diferença básica entre ambos os modelos reside na forma como ocorrem
as substituições dos sı́mbolos nas cadeias. Enquanto nos modelos desenvolvidos
37

por Chomsky a substituição dos sı́mbolos ocorre sequencialmente, substituindo-se


um sı́mbolo a cada ciclo iterativo, nos L-Systems todos os sı́mbolos da cadeia são
substituı́dos simultaneamente, o que possibilita a geração de resultados complexos
difı́ceis de prever a priori.
Nas sentenças geradas por um L-System, os sı́mbolos representam elementos
componentes da estrutura que descrevem (MANOUSAKIS, 2006). Ou seja, se o
L-System descreve o crescimento de uma planta, os sı́mbolos representarão ramos
e nós (que ligam um ramo a outro); se a estrutura descrita for um objeto gráfico
qualquer (como um fractal gráfico), os sı́mbolos representarão pontos e linhas; se a
estrutura descrita for uma composição musical, os sı́mbolos estarão, provavelmente,
representando alturas e durações de notas musicais (e/ou ainda outros aspectos),etc.
Para ilustrar a capacidade gerativa dos L-Systems, a seguir, demonstra-se a
construção de uma variação da curva de Koch (curva fractal) a partir de um sistema
Lindenmayer.

Variáveis: F .

Constante: +, −.

Axioma (ou semente): F .

Regras: F → F + F − F − F + F .

Para compreender o sistema definido acima, é importante ter em mente que o


objetivo do mesmo é desenhar um objeto gráfico, portanto, os sı́mbolos definidos no
mesmo representam componentes gráficos, onde:

1. F representa “Desenhe uma reta para frente”.

2. + representa “Vire 90 graus para a esquerda”.

3. − representa “Vire 90 graus para a direita”.

A figura 2.13 mostra as quatro primeiras iterações do processo de reescrita de


cadeias de sı́mbolos disparado a partir do L-System descrito acima. Pode-se notar
que a complexidade das cadeias de sı́mbolos e, consequentemente, do objeto gráfico
resultante (curva de Koch) aumenta rapidamente.
Em (WORTH; STEPNEY, 2005) relaciona-se alguns trabalhos que demonstram
diversas abordagens baseadas em gramáticas gerativas para a composição musical.
Para ilustrar a composição musical algorı́tmica baseada em modelos gerativos, a
seguir será definido um L-System cujo objetivo é gerar sequências de notas musicais,
levando em conta apenas a altura e a duração das notas.
38

Figura 2.13: As quatro primeiras iterações do processo de reescrita de sı́mbolos de


um L-System.

Variáveis: A, B.

Constante: +, −, T .

Axioma (ou semente): A.

Regras: 1. A → −BT − −A.


2. B → AT + +A − BT .

Como o L-System acima descreve uma composição musical, os sı́mbolos estão


relacionados à aspectos musicais.

1. − significa que deve-se diminuir a altura do som em um semitom ou dividir a


duração do som por 2.

2. + significa que deve-se aumentar a altura do som em um semitom ou multi-


plicar a duração do som por 2.

3. A significa que o parâmetro que deve ser alterado (pelos sı́mbolos + e −) é a


altura do som.
39

4. B significa que o parâmetro que deve ser alterado (pelos sı́mbolos + e −) é a


duração do som.

5. T significa que a nota deve ser tocada.

Ou seja, caso a subcadeia “− − AT ” ocorra na cadeia resultante, a altura do som


(indicada pela ocorrência do sı́mbolo A) deve ser decrementada em dois semitons e
em seguida a nota deve ser tocada. No caso de ocorrer uma subcadeia “+ + BT ”, a
duração do som (indicada pela ocorrência do sı́mbolo B) deve ser multiplicada por 4
(22 ). Neste sistema, a ocorrência de subcadeias do tipo “+T ”, “−T ” (ou variantes),
significa que deve-se incrementar/decrementar o parâmetro (altura ou duração do
som) que foi alterado por último e, em seguida tocar a nota.
Pode-se perceber que os sı́mbolos atuam sobre uma altura e uma duração ref-
erenciais. Estes parâmetros iniciais podem ser informados pelo usuário/compositor
antes do processo de parsing da cadeia simbólica.
A seguir, temos as quatro primeiras iterações do processo de reescrita simbólica,
aplicado ao L-System definido acima.

1. A.

2. −BT − −A.

3. −AT + +A − BT T − − − BT − −A.

4. − − BT − −AT + + − BT − −A − AT + +A − BT T T − − − AT + +A −
BT T − − − BT − −A.

Pode-se notar que a quarta iteração do processo produz 11 notas musicais (uma
para cada sı́mbolo T ), cujas alturas e durações são definidas em função das alturas
e durações referenciais informadas antes do parsing da cadeia resultante.

2.4.3.3 Modelo Estocástico


Sistemas baseados em modelos algorı́tmicos estocásticos são aqueles nos quais
a geração de valores ocorre em função de um espaço probabilı́stico uniformemente
distribuido ou não (OLIVEIRA, 2003).
Segundo (ANTENEODO, 2004), modelos algorı́tmicos estocásticos simulam fenômenos
aleatórios. Desta forma, pode-se dizer que modelos algorı́tmicos deste tipo produzem
resultados que não podem ser determinados a priori. Todavia, quando lidamos com
fenômenos aleatórios, em geral, podemos conhecer o conjunto de resultados possı́veis
de serem observados. A partir de um modelo, podemos também atribuir aos resulta-
dos ou conjuntos de resultados possı́veis, números que representem as suas chances
de ocorrência. Estes números, não-negativos que denotam a chance de ocorrência de
40

um determinado resultado em um determinado espaço amostral (total de resultados


observados) são denominados probabilidades. O modelo pode ser construı́do a par-
tir da freqüência de ocorrência observada em um grande número de experimentos
passados (lei dos grandes números) ou, teoricamente, a priori.
Um modelo algorı́tmico estocástico é baseado no conceito de processo estocástico,
o qual, por sua vez, é definido como um conjunto de variáveis aleatórias (X(t)) in-
dexadas por um valor t pertencente a um conjunto T . Em geral, toma-se para T
um subconjunto dos inteiros não-negativos (embora seja possı́vel realizar um ma-
peamento de outros tipos de conjunto para um conjunto de inteiros não-negativos)
e X(t) representa alguma caracterı́stica mensurável de interesse no tempo t, o que,
formalmente é tido como uma realização do processo no tempo t (ANTENEODO,
2004). Exemplificando, X(t) pode representar o número de unidades de um deter-
minado produto no estoque ao fim da semana t.
Os processos estocásticos podem ser classificados da seguinte forma:

Em relação ao estado: PE de estado discreto ou de estado contı́nuo.

1. PE de estado discreto: X(t) é definida sobre um conjunto enumerável


(finito) de valores x.
2. PE de estado contı́nuo: X(t) é definida sobre um conjunto infinito de
valores x.

Em relação ao tempo: PE de tempo discreto ou de tempo contı́nuo.

1. PE de tempo discreto: t é finito/enumerável.


2. PE de tempo contı́nuo: t é infinito.

Existem vários tipos de processos estocásticos, cada qual com suas caracterı́sticas
próprias. Como base de modelos algorı́tmicos para composição musical, o processo
estocástico mais utilizado é a cadeia de Markov, um tipo especı́fico de processo
markoviano (processo de Markov).
Um processo Markoviano é um processo estocástico no qual o estado futuro
depende apenas do estado atual e independe dos estados passados. Devido à de-
sconsideração dos estados passados (“o passado é esquecido”) o processo Markoviano
também é conhecido como processo sem memória (memoryless process).
Em um processo Markoviano, o valor do próximo estado a ser gerado, depende do
estado atual e de um conjunto de valores (probabilidades de transição) associados
a ele, que definem as probabilidades de ocorrência de outros estados a partir do
atual. Uma cadeia de Markov, pode ser considerada como uma sucessão de variáveis
aleatórias X(t) que podem assumir como valor (em cada uma das realizações do
41

processo) uma gama discreta de valores (espaço determinado por um limite inferior e
um superior e que compreende uma gama de valores não contı́nuos)(ANTENEODO,
2004).
Segundo (OLIVEIRA, 2003) as cadeias de Markov apresentam tanto potencial
indutivo quanto dedutivo. O potencial indutivo das cadeias de Markov é explorado
quando gera-se um modelo probabilı́stico (conjunto de estados possı́veis + con-
junto de probabilidades de transição associado a cada estado) a partir de um espaço
amostral, descrevendo as propriedades estatı́sticas deste último (MOORE, 1990). Já
o potencial dedutivo é explorado quando utiliza-se um modelo probabilı́stico para
gerar uma cadeia. Dentro do contexto da composição musical existe a possibilidade
de utilizar-se ambos os potenciais, de forma que, por exemplo, se possa gerar um
seqüência de notas musicas a partir de um modelo probabilı́stico construı́do a partir
da análise estatı́stica de uma seqüência de notas musicais com existência prévia. A
seguir, ilustra-se um caso de uso de ambas as potencialidades das cadeias de Markov
para geração de uma sucessão de alturas de notas musicais, a partir de uma amostra
inicial. Para o exemplo que segue, tomemos como base a seguinte seqüência de
alturas de notas musicais: E − B − B − G − E − B − D − G − D − G − E − D.

1. Analisa-se o espaço amostral considerado a fim de identificar o espaço de esta-


dos sobre os quais a seqüência foi construı́da. Neste caso, o espaço de estados
é o conjunto de alturas CA, onde CA = D, E, G, B.

2. Então, analisa-se a sucessão de alturas, realizando a contagem do número de


vezes que uma determinada altura y ocorre após uma altura x. Para o caso
em questão, esta contagem é ilustrada na Figura 2.14.

Figura 2.14: Matriz de ocorrências (M O) gerada a partir da amostra em questão.

Na matriz de ocorrências M O representada na Figura 2.14,cada célula M Oij


representa o número de vezes em que a altura da coluna j aparece imediata-
mente após a altura da linha i.
42

3. Em seguida, determina-se o percentual de vezes que a altura y ocorre após a


altura x em relação à todas as ocorrências de alturas após a altura x. Este
percentual representará a probabilidade de transição da altura x para a altura
y e é calculado dividindo-se o número de vezes que a altura y ocorre imedi-
atamente após a altura x pelo total de alturas que ocorrem imediatamente
após a altura x. Para o caso em questão, as probabilidades de transição resul-
tantes podem ser vistas na Figura 2.15, representadas através de uma matriz
de probabilidades de transição e na Figura 2.16, através de um diagrama de
transição de estados.

Figura 2.15: Matriz de transição (M T ) resultante.

Figura 2.16: Diagrama de transição de estados resultante

Na matriz de transição M T , representada na Figura 2.15, cada célula M Tij


representa a probabilidade de uma altura j ocorrer imediatamente após uma
altura i. Já no diagrama de transição de estados representado na Figura 2.16,
cada nó (nodo) representa um determinado estado e cada arco representa a
probabilidade de transição entre os estados. Ou seja, se uma aresta rotulada
com um valor p partir de um nó A em direção a um nó B, significa que a
probabilidade do estado B ocorrer imediatamente após o estado A é p.

4. Construı́da a matriz de transição de estados no item anterior, pode-se utilizá-


43

la para gerar uma cadeia de Markov (na prática, uma sucessão de alturas de
notas musicais). Para tanto, realiza-se o seguinte processo:

(a) Define-se um estado inicial a partir do qual os estados seguintes serão


gerados. Este estado deve pertencer ao conjunto discreto de estados sobre
o qual a matriz de transição de estados foi construı́da. Neste exemplo,
tomaremos o estado E (que representa a altura de nota musical E).
(b) Definido o estado inicial, busca-se na matriz de transição de estados a
linha que representa as probabilidades de transições a partir do estado
atual. No nosso exemplo, a linha que representa as probabilidades de
transições a partir do estado atual (E) é a segunda.
(c) A partir da linha encontrada, gera-se uma distribuição de valores em
função das probabilidades definidas na linha em questão. No nosso ex-
emplo, geramos uma escala de 0 a 100, onde o intervalo [0, 33[ representa
o estado D e o intervalo [34, 100[ representa o estado B.
(d) Obtém-se um número aleatório (ou pseudo-aleatório 4 dentro do contexto
computacional) gerado dentro do intervalo estipulado. No nosso exemplo,
o número deve ser gerado dentro do intervalo [0, 100[.
(e) O número aleatório gerado no passo anterior obrigatoriamente pertencerá
a um dos sub-intervalos definidos no penúltimo passo. Sabendo-se qual
o estado o sub-intervalo ao qual o número aleatório pertence, obtém-se o
novo estado atual. No nosso exemplo, se o número aleatório gerado fosse
52, por exemplo, o nosso novo estado atual seria B, porque 52 pertence
ao intervalo [34, 100[ que está relacionado ao estado B. Para gerar um
novo estado, todos os passos devem ser repetidos a partir do primeiro
em função do novo estado atual. Desta forma, torna-se fácil estruturar
um processo iterativo para geração de sucessões de estados a partir desde
conjunto simples de passos.

Segundo (MOORE, 1990), utilizando-se os potenciais indutivo (passos 1 e 2


do caso de uso em questão) e dedutivo (passo 3 do caso de uso em questão) das
cadeias de Markov, o resultado gerado possui as mesmas caracterı́sticas estatı́sticas
da amostra inicialmente analisada.
Observando-se o caso de uso em questão, é importante ter em mente que a cadeia
de Markov construı́da é dita estacionária e de primeira ordem. Segundo (ANTE-
NEODO, 2004), uma cadeia de Markov é dita estacionária se as probabilidades
4
Números pseudo-aleatórios são números aproximadamente independentes um dos outros, ger-
ados através de um algoritmo. A distribuição de valores gerada pelo algorı́tmo simula as pro-
priedades de distribuições realmente aleatórias
44

de transição entre estados são constantes no tempo. Já o conceito de ordem está
ligado à capacidade de memória da mesma (o número de estados anteriores que
são considerados para determinar o próximo estado) (ANTENEODO, 2004). Desta
forma, uma cadeia de Markov é considerada de primeira ordem se para determinar
o próximo estado, apenas o último estado é considerado, seria de segunda ordem
se considerasse os dois últimos estados, de terceira ordem se considerasse os três
últimos e assim por diante.
45

3 SISTEMAS MULTIAGENTES

Os sistemas multiagentes constituem uma área relativamente nova de pesquisas e


fazem parte de uma sub-área da Inteligência Artificial chamada Inteligência Artificial
Distribuı́da (IAD), que dedica-se ao estudo de modelos e técnicas para a resolução de
problemas cuja a distribuição fı́sica ou funcional é inerente (GARCIA; SICHMAN,
2005).
É importante salientar que existem diferenças fundamentais entre a IAD e as
abordagens clássicas de IA. Enquanto estas últimas tomam como modelo de in-
teligência o comportamento individual humano, utilizando metáforas de origem psi-
cológica, a IAD baseia-se em modelos comportamentais sociais, inspirando-se em
metáforas de cunho sociológico e/ou etológico (ALVARES; SICHMAN, 1997).
A IAD assume como premissa fundamental que “a relação do indivı́duo com o
meio, seja por interação ou organização, é determinante na imersão do comporta-
mento inteligente” (PARAISO, 1997). Tomando esta premissa como base, a IAD
buscou estabelecer modelos, arquiteturas e implementações para que conjuntos de
entidades (denominadas agentes) possam executar ações coordenadas dentro de um
contexto social, sempre objetivando um comportamento global coerente (GARCIA;
SICHMAN, 2005). Dentro deste contexto, surgem as duas grandes correntes de
pesquisa dentro da IAD: a resolução distribuı́da de problemas (RDP) e os sistemas
multiagentes (SMA).
Os SMA e a RDP diferem em muitos pontos. A principal diferença entre as
abordagens reside na própria concepção do sistema. Enquanto na RDP, o sistema é
explicitamente concebido para que solucione um problema especı́fico proposto, nos
sistemas multiagentes o foco está na concepção de modelos genéricos de agentes e
nas organizações e interações dos mesmos. Ou seja, os sistemas multiagentes são
concebidos de forma que possam ser instanciados num caso particular qualquer.
Desta forma, a ênfase das pesquisas em sistemas multiagentes é nos meios através
dos quais se possa garantir a interação desejável entre os agentes, de modo que
sociedades de agentes se tornem aptas a resolver problemas propostos a elas, onde a
resolução do problema seja uma conseqüência das interações subjacentes (GARCIA;
46

SICHMAN, 2005).
As pesquisas em SMA e RDP interessam a comunidade cientı́fica principalmente
porque abordagens distribuı́das são mais eficazes quando o objetivo é a resolução de
problemas grandes e complexos que necessitam de tipos distintos de conhecimentos
e que, eventualmente, envolvam a coleta, manipulação e armazenamento de dados
fisicamente distribuı́dos (ALVARES; SICHMAN, 1997).
Como utilizaremos sistemas multiagentes no modelo proposto neste trabalho,
nas próximas seções eles serão abordados em maiores detalhes, focando-se em seus
elementos principais: o ambiente, o agente, a comunicação e a coordenação.

3.1 Ambiente
O ambiente, como o próprio termo sugere, representa o “meio” no qual o agente
existe (percebendo e atuando sobre o mesmo). Em (RUSSELL; NORVIG, 2003) é
dito que o ambiente representa, essencialmente, o problema para o qual os agentes
são a solução.
As caracterı́sticas do ambiente influenciam diretamente o projeto dos agentes
que estarão inseridos no mesmo. Desta forma, (RUSSELL; NORVIG, 2003) sugere
que antes de projetar um agente, deve-se sempre especificar o ambiente no qual o
agente estará inserido, de forma tão completa quanto possı́vel.
A variedade de ambientes possı́veis é, sem dúvida, vasta. Todavia, em (RUS-
SELL; NORVIG, 2003) lista-se um número reduzido de dimensões facilmente ob-
serváveis, em função das quais os ambientes podem ser divididos em categorias.
Tais categorias são:

Completamente observável versus parcialmente observável: Se os sensores


do agente permitem acesso completo ao estado completo do ambiente em cada
instante, é dito que o ambiente é completamente observável. Um ambiente é,
de fato, completamente observável se os sensores do agente detectam todos os
aspectos que são relevantes para a escolha da sua ação neste ambiente. Am-
bientes podem ser parcialmente observáveis devido ao ruı́do no ambiente, a
sensores imprecisos ou porque aspectos do estado do ambiente estão simples-
mente ausentes nos dados do sensor.

Determinı́stico versus estocástico: Um ambiente é dito determinı́stico se o próximo


estado é completamente determinado pelo estado corrente e pelas ações sele-
cionadas pelo agente, caso contrário, o ambiente é considerado estocástico. Em
princı́pio, um agente não precisa se preocupar sobre incerteza em um ambi-
ente determinı́stico e completamente observável. No entanto, se o ambiente for
parcialmente observável, então ele pode parecer ser estocástico. Isto é partic-
47

ularmente verdade em um ambiente complexo, no qual seja difı́cil acompanhar


todos os aspectos inacessı́veis. Então, freqüentemente é preferı́vel classificar
um ambiente como determinı́stico ou estocástico sob a perspectiva do agente.

Episódico versus seqüencial: Em uma ambiente episódico a experiência do agente


é dividida em episódios atômicos. Cada episódio consiste na percepção do
agente e, em seguida, na execução de uma única ação. É crucial que o episódio
seguinte não dependa das ações executadas em episódios anteriores. Em am-
bientes episódicos, a escolha da ação em cada apisódio depende unicamente do
próprio episódio. Por outro lado, em ambientes seqüenciais, a decisão atual
pode afetar todas as decisões futuras. Ou seja, as ações a curto prazo têm
efeito a longo prazo, obrigando o agente a “pensar à frente”.

Estático versus dinâmico: Se o ambiente pode mudar enquanto o agente está


deliberando, então o ambiente é dinâmico para este agente, caso contrário, ele
é estático. Ambientes estáticos são fáceis de serem tratados porque o agente
não precisa ficar observando o mundo enquanto está decidindo as suas ações
nem se preocupar com a passagem do tempo. Se o ambiente não muda com
a passagem do tempo mas a relacão de desempenho (performance score) do
agente sim, então o ambiente é dito semi-dinâmico (semidynamic).

Discreto versus contı́nuo: Um ambiente é discreto se existe um número limitado


distinto e claramente definido de percepções e ações. Por exemplo,o tabuleiro
de xadrez é um ambiente discreto porque existe um número fixo de possı́veis
movimentos a cada rodada. Já para dirigir um táxi, pressupõe-se um ambiente
contı́nuo, pois a velocidade e a localização do taxi e dos outros veı́culos varia
através de um intervalo de valores contı́nuos.

Agente único versus multiagente: A distinção entre ambientes que possuem


um único agente e ambientes que possuem mais de um agente, a princı́pio,
parece simples. Todavia, ao projetar um sistema baseado em agentes, deve-se
ter o cuidado de observar quais as entidades que farão parte deste sistema
devem ser visualizadas como agentes.

3.2 Agente
Analisando a bibliografia disponı́vel sobre o assunto, percebe-se que não existe
um consenso na comunidade acadêmica em relação ao conceito de Agente, sendo que
as definições variam conforme o contexto em que o agente encontra-se e conforme a
visão com que o agente é abordado neste contexto. Segundo (RUSSELL; NORVIG,
2003), um agente é tudo que tem a capacidade de perceber o ambiente em que
48

se encontra através de sensores e atuar sobre este ambiente através de atuadores


(Figura 3.1).

Figura 3.1: Diagrama esquemático que representa uma agente genérico interagindo
com o ambiente através de sensores e atuadores

Analisando sob esta perspectiva, um agente humano percebe o ambiente em


que vive através de seus olhos, ouvidos, entre outros órgãos sensoriais e atua sobre
este ambiente através das mãos, pernas, boca, entre outras partes atuadoras do
corpo, enquanto, de forma análoga, um agente software recebe códigos de teclas
pressionadas e pacotes de dados de rede, entre outras entradas do ambiente e atua
sobre ele exibindo informações na tela, escrevendo em arquivos, etc.
Em (FERBER, 1999), define-se o agente a partir das propriedades de agencia-
mento, como uma entidade fı́sica ou virtual que possui as seguintes propriedades e
habilidades:

1. É capaz de atuar em um ambiente.

2. É capaz de comunicar-se com outros agentes.

3. É dirigido por um conjunto de tendências na forma de objetivos individuais.

4. Possui seus próprios recursos.

5. É capaz de perceber seu ambiente (em uma extensão limitada).

6. Tem somente uma representação parcial do ambiente.

7. Possui habilidades e pode oferecer serviços.

8. Pode estar habilitado a se replicar.


49

9. Possui comportamento dirigido de forma a satisfazer seus objetivos, considerando


a quantidade e recursos e as habilidades que ele tem disponı́vel, e depende da
sua percepção e das mensagens que recebe.

Matematicamente falando, o comportamento do agente é definido pela função


de agente, a qual mapeia qualquer sequência especı́fica de percepções em uma ação.
Dentro do contexto da IA que preocupa-se em construir agentes artificiais, a função
do agente é implementada por um programa de agente.
Em geral, os agentes são construı́dos levando-se em conta o domı́nio do prob-
lema para o qual são instanciados e a forma com a qual abordamos tal problema.
Dependendo do contexto em que o agente está inserido, é desejável que ele perceba
determinados parâmetros e os mapeie para ações especı́ficas, sendo que essas ven-
ham a maximizar uma certa medida de desempenho que define o quanto o agente
contribuiu para que o estado geral do contexto se aproxime mais da solução do
problema.
Em (BORDINI; VIEIRA; MOREIRA, 2001), são sugeridas algumas caracterı́sticas
gerais de um agente. Note que não se espera todas estas caracterı́sticas em todos
os agentes, uma vez que algumas delas não teriam utilidade em certas instâncias de
problemas. Tais caracterı́sticas são:

Percepção: Um agente é capaz de perceber o ambiente em que está.

Ação: As alterações no ambiente são provenientes das ações que os agentes realizam
constantemente no mesmo. Um agente age sempre com o intuito de atingir
seus objetivos. Ou seja, o agente age com o intuito de transformar o ambiente
de seu estado atual em um outro estado desejado pelo agente, ou mais próximo
de sua meta;

Comunicação: Umas das ações possı́veis de um agente é comunicar-se com outros


agentes da sociedade (que compartilham o mesmo ambiente);

Representação: O agente possui uma representação simbólica explı́cita daquilo


que acredita ser verdade em relação ao ambiente e aos outros agentes que
compartilham aquele ambiente;

Motivação: Como em SMA os agentes podem ser autônomos, é essencial que exista
não só uma representação do conhecimento do agente, mas também uma rep-
resentação dos desejos ou objetivos (aspectos motivacionais) daquele agente;
em termos práticos, isto significa ter uma representação de estados do ambi-
ente que o agente almeja alcançar; como consequência, o agente age sobre o
ambiente por iniciativa própria para satisfazer estes objetivos;
50

Deliberação: Dada uma motivação e uma representação do estado atual do ambi-


ente em que se encontra o agente, este tem que ser capaz de decidir, dentre os
estados de ambiente possı́veis de ocorrerem no futuro, quais de fato serão os
objetivos a serem seguidos por ele;

Raciocı́nio e aprendizagem: Técnicas de inteligência artificial clássica para raciocı́nio


e aprendizagem podem ser extendidas para múltiplos agentes, aumentando
significativamente seu desempenho, por exemplo no que diz respeito à delib-
eração;

Em (ALVARES; SICHMAN, 1997) temos a classificação dos agentes em dois


grandes grupos distintos que incorporam os princı́pios subjacentes à maioria dos
sistemas inteligentes: agentes cognitivos e agentes reativos. Em (WOOLDRIDGE,
2002) fala-se também de agentes hı́bridos, os quais mesclam caracterı́sticas dos dois
tipos definidos em (ALVARES; SICHMAN, 1997). Nas subseções a seguir será real-
izada uma breve explanação sobre os agentes cognitivos e reativos.

3.2.1 Agentes cognitivos


Segundo (ALVARES; SICHMAN, 1997) os agentes cognitivos são construı́dos in-
spirados em modelos humanos. Desta forma, ambientes nos quais este tipo de agente
interage são análogos a modelos sociais/organizacionais humanos tais como grupos,
hierarquias, sociedades e mercados. Para compreender melhor os agentes cognitivos,
a seguir são apresentadas suas principais caracterı́sticas (ALVARES; SICHMAN,
1997):

1. Mantêm uma representação explı́cita de seu ambiente e dos outros agentes da


sociedade.

2. Podem manter um histórico das interações e ações passadas, isto é, têm memória
do passado.

3. A comunicação entre os agentes é feita de modo direto, através do envio e


recebimento de mensagens.

4. Seu mecanismo de controle é deliberativo, ou seja, tais agentes raciocinam e


decidem sobre quais objetivos devem alcançar, que planos seguir e quais ações
devem ser executadas num determinado momento.

5. Seu modelo de organização é baseado em modelos sociológicos, como as orga-


nizações humanas.

6. Uma sociedade (coletividade de agentes cognitivos) contém tipicamente poucos


agentes, na ordem de uma dezena.
51

3.2.1.1 Arquitetura BDI

Em (BORDINI; VIEIRA; MOREIRA, 2001) é dito que as mais importantes


arquiteturas de agentes cognitivos são baseadas na arquitetura BDI. Arquitetura,
esta que representa um modelo de cognição fundamentado em três aspectos men-
tais principais: crenças, desejos e intenções (beliefs, desires e intentions) (RAO;
GEORGEFF, 1995).
Nesta arquitetura existem três conceitos básicos (BORDINI; VIEIRA; MOR-
EIRA, 2001):

1. As crenças representam aquilo que o agente sabe sobre o estado do ambiente


e dos agentes naquele ambiente (inclusive sobre si mesmo).

2. Os desejos representam estados do mundo que o agente quer atingir. O agente


deseja que tais estados se “tornem vedadeiros”. Os desejos podem ser con-
traditórios, ou seja, pode-se desejar coisas que são mutuamente exclusivas do
ponto de vista prático.

3. As intenções representam seqüências de ações especı́ficas que um agente se


compromete a fazer para atingir um determinado objetivo.

Na Figura 3.2 ilustra-se a arquitetura BDI genérica (BORDINI; VIEIRA; MOR-


EIRA, 2001).

Figura 3.2: Diagrama esquemático que representa a arquitetura BDI genérica (que
pode ser vista em (BORDINI; VIEIRA; MOREIRA, 2001)).
52

Em (BORDINI; VIEIRA; MOREIRA, 2001) é dito que a ”função de revisão


de crenças´´ (chamada FRC Figura 3.2) recebe a informação sensorial (percebe al-
terações no ambiente) e, consultando as crenças anteriores do agente, atualiza estas
crenças para que elas reflitam o novo estado do ambiente. Com esta nova repre-
sentação do estado do ambiente é possı́vel que novos estados possam ser alcançados
a partir do estado atual. Consultando quais as intenções com as quais o agente já
está comprometido, a ”função gera opções´´ verifica as novas alternativas do agente
(o que o agente pode fazer neste momento) e, em seguida, ocorre uma deliberação
para a escolha de algumas destas opções com as quais o agente se comprometerá (at-
ualizando os desejos do agente). Definido o conhecimento e a motivação do agente,
é preciso, em seguida, decidir que curso de ações especı́fico será usado para alcançar
os objetivos atuais do agente. Para isto é preciso levar em conta os outros cursos
de ações com os quais o agente já se comprometeu, para evitar ações incoerentes.
Finalmente, a ”função filtro´´ atualiza o conjunto de intenções do agente, com base
nas crenças e desejos atualizados e nas intenções já existentes. Dado um conjunto
de intenções, a escolha, pela função ação, de qual ação especı́fica será realizada no
ambiente pelo agente a cada momento, é relativamente simples.

3.2.2 Agentes reativos

Os agentes reativos surgiram como alternativa aos agentes cognitivos para atuar
em contextos nos quais estes últimos não apresentavam uma performance satisfatória
(WOOLDRIDGE, 2002). O principal motivo que levou os pesquisadores a buscar
alternativas à abordagem cognitiva reside na dificuldade que os agentes cognitivos
apresentam em lidar com ambientes dinâmicos ou desconhecidos. Dificuldade esta
que advém das caracterı́sticas fundamentais da abordagem cognitiva: representação
explı́cita de conhecimento sobre o ambiente e tomada de decisão baseada em com-
plexos processamentos simbólicos. Em ambientes dinâmicos ou desconhecidos, tais
caracterı́sticas representam um ônus operacional. Pois representar explicitamente (e
atualizar constantemente) o conhecimento sobre este tipo de ambiente é extrema-
mente difı́cil, além do raciocı́nio simbólico demandar muito tempo, compromentendo
o tempo de reação do agente ao ambiente (que pode mudar de configuração rapida-
mente) (ALVARES; SICHMAN, 1997).
Buscando alternativas à IA simbólica (BROOKS, 1990) surgiram algumas novas
abordagens para a construção de agentes. Algumas premissas são comuns à todas
estas abordagens em questão. Entre tais premissas, destacam-se três principais
(WOOLDRIDGE, 2002):

1. A não utilização de representações simbólicas e nem de processos de tomada


de decisão baseadas nestas representações.
53

2. A idéia de comportamento inteligente vista como fundamentalmente ligada ao


ambiente que o agente ocupa. Ou seja, a inteligência é vista como o resultado
da interação do agente com o ambiente em que o mesmo está.

3. A idéia de que o comportamento inteligente emerge da interação de vários


comportamentos simples.

A abordagem reativa para construção de agentes parte destas premissas e possui


as seguintes caracterı́sticas (ALVARES; SICHMAN, 1997):

1. Não há representação explı́cita de conhecimento. O conhecimento dos agentes


é implı́cito e se manifesta através do seu comportamento.

2. Não há representação do ambiente. O comportamento dos agentes se baseia


no que é percebido a cada instante do ambiente, mas sem uma representação
explı́cita deste.

3. Não há memória das ações. Os agentes reativos não mantém um histórico de
suas ações, de forma que o resultado de uma ação passada não exerce nenhuma
influência sobre as suas ações futuras.

4. Organização etológica. A forma de organização dos agentes reativos é similar


a dos insetos, em oposição à organização dos sistemas cognitivos, baseada em
sociedades humanas.

5. Existência de um grande número de membros. Os sistemas multiagentes


reativos têm, em geral,um grande número de agentes, da ordem de dezenas,
centenas ou mesmo milhões. Cada agente é bastante simples e atividades
complexas demandam um grande número de agentes.

Em (ALVARES; SICHMAN, 1997) é dito que os agentes reativos são muito


simples e não possuem representação de seu ambiente. Desta forma, todas as in-
formações relativas ao seu comportamento estão no ambiente e suas reações depen-
dem unicamente de sua percepção deste ambiente. Eles não mantém históricos de
suas ações passadas nem podem antecipar (planejar) o futuro. Tais agentes apenas
reagem à percepção do ambiente, sem relfetir sobre o mesmo (modelo estı́mulo → resposta).
Todavia, apesar desta simplicidade individual, em grupo são capazes de realizar tare-
fas bastante complexas.
Em geral, os métodos clássicos de resolução de problemas definem um deter-
minado problema em uma perspectiva global com abordagens de resolução que se
aplicam diretamente sobre esta definição. Os modelos baseados em sistemas mul-
tiagentes reativos, ao contrário, abordam o problema como sendo um conjunto de
agentes em interação, cada um deles com os seus próprios objetivos (comportamen-
tos) individuais (ALVARES; SICHMAN, 1997).
54

3.2.2.1 Arquitetura de subsunção

Em (BROOKS, 1986) é apresentada a arquitetura de subsunção. Uma arquite-


tura bastante utilizada atualmente para a construção de agentes reativos que surgiu
a partir da formulação de três teses pelo seu criador Rodney Brooks. As três teses
em questão são (WOOLDRIDGE, 2002):

1. O comportamento inteligente pode ser gerado sem representações explı́citas do


conhecimento.

2. O comportamento inteligente pode ser gerado sem raciocı́nio abstrato explı́cito.

3. Inteligência é uma propriedade que emerge de certos sistemas complexos.

Duas caracterı́sticas básicas identificam a arquitetura proposta por Brooks. A


primeira delas é a modelagem do processo de tomada de decisão de um agente
como um conjunto de comportamentos de realização de tarefas. Nesta abordagem
os agentes ficam continuamente “percebendo o ambiente” e mapeando tais per-
cepções em uma ação a ser realizada posteriormente. Computacionalmente falando,
os módulos de comportamento, que não devem conter representações simbólicas
complexas e tampouco raciocı́nio complexo, podem ser implementados como uma
máquina de estados. Em geral, os comportamentos dos agentes, construı́dos a par-
tir da arquitetura de subsunção, são implementados como mapeamentos diretos de
percepções em ações ( P ercepção → Ação ). A segunda caracterı́stica que identifica
esta arquitetura é existência de uma distribuição hierárquica do conjunto de compor-
tamentos do agente (BROOKS, 1986); (WOOLDRIDGE, 2002). Esta distribuição
hierárquica dos comportamentos objetiva possibilitar a seleção da ação a ser dis-
parada a partir de uma determinada percepção, uma vez que existe a possibilidade
de muitos comportamentos serem disparados ao mesmo tempo (WOOLDRIDGE,
2002). Na hierarquia proposta por (BROOKS, 1986), camadas (comportamentos)
inferiores inibem camadas superiores, ou seja, quanto mais inferior for a camada
do comportamento, maior será sua prioridade (WOOLDRIDGE, 2002). Estas duas
caracterı́sticas fundamentais da arquitetura de subsunção possibilitam a seleção de
um determinado comportamento de acordo com a prioridade do comportamento
para o estado atual do agente.
Na Figura 3.3 ilustra-se uma arquitetura de subsunção para um robô hipotético
cujo comportamento resume-se a andar aleatoriamente pelo ambiente, e evitar obstáculos
que, eventualmente, possam surgir em sua trajetória. Neste caso desviar de obstáculos
é um comportamento mais básico do que andar aleatoriamente, pois ao colidir com
um obstáculo o robô pode ficar inoperante. Desta forma, por possuir prioridade
maior, o módulo de comportamento “evitar obstáculos” reside no nı́vel inferior da
55

hierarquia de subsunção, enquanto o comportamento “andar aleatoriamente” é esta-


belecido no nı́vel superior. Assim, o comportamento mais básico “evitar obstáculos”
pode inibir o comportamento “andar aleatoriamente”.

Figura 3.3: Arquitetura de subsunção que descreve o comportamento de um robô


hipotético.

3.2.2.2 Campos potenciais


O modelo de campos potenciais é bastante utilizado na modelagem de trajetórias
para a navegação de robôs móveis (MEZENCIO, 2002). A idéia básica que norteia
este modelo é a de que a todo instante forças são exercidas sobre o robô (agente),
sendo algumas delas atrativas (os objetivos do robô, por exemplo) e outras repul-
sivas (os obstáculos que o robô encontra, por exemplo) (MEZENCIO, 2002). A
navegação do robô é realizada através de um modelo vetorial. Desta forma, a tra-
jetória do robô é definida em função do vetor resultante das forças que atuam sobre
ele no momento. Os vetores apresentam três caracterı́sticas fundamentais que são:
magnitude (intensidade do vetor), direção e sentido. Dentro do modelo de campos
potenciais os vetores são utilizados tanto para definir intensidade, direção e sentido
das forças atuantes sobre o robô como para modelar a velocidade, direção e o sentido
em que o robô se desloca.
O modelo de campos potenciais abarca cinco tipos fundamentais de campos (o
robô pode sofrer influência de apenas um deles ou de um conjunto deles), os quais
são:

Campo de atração: o robô ”sente”a força atrativa de determinado objeto,desta


forma, o robô é atraı́do para o objeto (Figura 3.4).

Campo de Repulsão: ao contrário da força atrativa, a força repulsiva afasta o


robô do objeto que exerce a força repulsiva (Figura 3.5).

Campo tangencial: esse campo faz com que o robô tangencie um objeto ficando
próximo ao objeto, porém sem poder tocar o mesmo (Figura 3.6 ).
56

Figura 3.4: Exemplo de um campo potencial de atração.

Figura 3.5: Exemplo de um campo potencial de repulsão.

Campo perpendicular: os vetores apontam perpendicularmente para algum ob-


jeto ou limite do campo, podendo ser um campo de atração ou repulsão. É
bastante utilizado para orientar robôs ao longo de uma parede ou borda do
ambiente, por exemplo (Figura 3.7).

Campo uniforme: os vetores apontam para uma única direção. É bastante uti-
lizado para definir comportamentos como “siga a linha” (Figura 3.8).

3.3 Comunicação
A comunicação entre os agentes pode se dar de diversas formas, dependendo
da categoria em que se inserem (cognitivos ou reativos) e do tipo de ambiente em
que se encontram. Em geral, a interação entre agentes cognitivos envolve comu-
nicação explı́tica. Enquanto entre os agentes reativos, quando há comunicação, ela
é implı́cita e realizada através de estigmergia (comunicação através de marcas deix-
adas no ambiente, como a utilização do feromônio por algumas espécies de insetos).
Em (BORDINI; VIEIRA; MOREIRA, 2001) é dito que os agentes comunicam-
se buscando atingir os seus objetivos em um ambiente compartilhado. Em uma
sociedade, as ações de agentes são ações coordenadas, seja para cooperar ou com-
petir (negociar). Desta forma, pode-se perceber que em qualquer modelo de coor-
denação utilizado por agentes cognitivos, a comunicação tem, em geral, importância
fundamental.
A comunicação explı́cita utilizada pelos agentes cognitivos é norteada pela teoria
57

Figura 3.6: Exemplo de um campo potencial tangencial.

Figura 3.7: Exemplo de um campo potencial perpendicular.

dos atos de fala, desenvolvida pelo filósofo inglês John Langshaw Austin. Tal teo-
ria assume como premissa fundamental que todo o enunciado expresso em alguma
linguagem possui dois componentes distintos: o conteúdo semântico e a intenção
do falante. Pois um mesmo conteúdo semântico pode estar presente em diversas
situações comunicativas, expressando intenções completamente diferentes. Desta
forma, a teoria proposta por Austin caracteriza a diferença entre a emissão de uma
expressão (enunciação), a intenção do falante e o efeito no mundo, da seguinte forma:

Locução: é o enunciado emitido pelo falante através de algum meio (por exemplo
fala ou escrita).

Ilocução: é a intenção associada ao enunciado do falante.

Perlocução: é a ação resultante ou efeito da locução.

Para ilustrar essa categorização, tomemos dois indivı́duos hipotéticos A e B. O


indivı́duo A diz para B: “Está muito frio nesta sala”. A afirmação de A pode estar
carregando uma intenção indireta de solicitar a B que ele feche a janela da sala.

Locução: “Está muito frio nesta sala”.

Ilocução: A solicita indiretamente que B feche a janela da sala.

Perlocução: B fecha a janela da sala.


58

Figura 3.8: Exemplo de um campo potencial uniforme.

Esses enunciados que objetivam a realização de uma ação e não apenas a trans-
missão de um conteúdo de sentido são chamados por Austin de enunciados perfor-
mativos.
A força ilocucionária de uma sentença performativa pode ser classificada con-
forme o tipo de ação pretendida. Em (BORDINI; VIEIRA; MOREIRA, 2001) os
performativos são classificados da seguinte forma:

Assertivas ou Representativas: o falante comunica que acredita na veracidade


da expressão (por exemplo, através de asserção ou conclusão).

Diretivas: o falante tem por intenção provocar o ouvinte a realizar uma ação (por
exemplo, requisição, pergunta, ordem, proibição, permissão).

Comissivas: o falante se compromete com a realização de uma ação no futuro


(por exemplo, promessa, ameaça).

Expressivas: o falante expressa um estado psicológico (por exemplo, agradeci-


mento, pedido de desculpas).

Declarativas: têm como efeito imediato uma mudança de estado do mundo (por
exemplo, uma declaração de guerra).

Dentro do contexto da comunicação entre agentes cognitivos, a teoria dos atos de


fala é utilizada como modelo no qual são estruturadas algumas linguagens de comu-
nicação entre agentes. Tais linguagens tem o propósito de padronizar o formato da
mensagem, além de transportar o conteúdo semântico e a força ilocutória associada
(descrita explicitamente). As linguagens de comunicação de agentes mais utilizadas
atualmente são a ACL (Agent Communication Language), a KIF (Knowledge In-
terchange Format) e a KQML (Knowledge Query and Manipulation Language).
Para ilustrar o formato de uma mensagem KQML imaginemos dois agentes
hipotéticos A e B. O agente A envia para B uma mensagem anunciando que pode
processar mensagens do tipo especificado (ask-if). O conteúdo da mensagem é uma
mensagem da linguagem KQML, de acordo com um ontologia sobre esta linguagem
59

(kqml-ontology). Na mensagem é dada uma identificaçãao (id1) para ser utilizada


por mensagens subseqüuentes enviadas como resposta:

(advertise
:sender A
:receiver B
:reply-with id1
:language KQML
:ontology kqml-ontology
:content (ask-if
:sender B
:receiver A
:in-reply-to id1
:language prolog
:ontology SBC
:content ”professor(X,Y)”))

Além da teoria dos atos de fala e das linguagens de comunicação que são estrutu-
radas em função desta teoria, um outro elemento importante na comunicação entre
agentes é a arquitetura de comunicação.
Arquiteturas de comunicação são mecanismos pelos quais as mensagens são trans-
portadas de um emissor para um receptor. Dentro de um ambiente de agentes
cognitivos, as arquiteturas de comunicação mais conhecidas são a arquitetura de
quadro negro (blackboard), a arquitetura de mensagens diretas e a arquitetura de
comunicação assistida (baseada em facilitadores ou interpretadores).

Arquitetura de quadro negro: A arquitetura de quadro negro fornece uma es-


trutura de dados central, única e compartilhada, entre os vários agentes, onde
as informações podem ser lidas e escritas durante o desenvolvimento de tare-
fas (CORKILL, 1991). Todas as interações comunicativas ocorrem através do
quadro negro e, por esta razão, os agentes devem consultar de tempos em
tempos a estrutura para verificar se, por exemplo, existe alguma informação
nova endereçada a eles.

Arquitetura de mensagens diretas: Neste tipo de arquitetura os agentes tratam


de sua própria comunicação sem intervenção alheia. Para tanto, cada agente
deve incorporar todo um mecanismo próprio de emissão e recepção de men-
sagens, além de necessitar armazenar informações detalhadas sobre todos os
outros agentes com os quais deseja comunicar-se (LUCENA, 2003). Além do
elevado nı́vel de complexidade que o agente adquire, por ter que tratar, de
60

forma independente, de toda a sua comunicação, esta arquitetura também


possui o inconveniente de ter que tratar um grande volume de comunicação,
uma vez que todos os agentes podem resolver comunicar ao mesmo tempo.

Arquitetura de comunicação assistida: Neste tipo de arquitetura, para efet-


uar a comunicação com outros agentes, o agente se apóia em entidades especi-
ais chamadas “agentes facilitadores”. O problema do gerenciamento da comu-
nicação é resolvida parcialmente, reduzindo consideravelmente a complexidade
necessária aos agentes individuais na realização da comunicação (LUCENA,
2003). Todavia, apesar das vantagens evidentes em relação à arquitetura de
mensagens diretas, esta arquitetura introduz a centralização da comunicação
e esta centralização, além de representar um possı́vel “gargalo” do sistema,
pode comprometer toda a comunicação do sistema se o “agente facilitador”
falhar.

3.4 Coordenação
Segundo (JUCHEM; BASTOS, 2001), em sistemas multiagentes, fundamental-
mente, está envolvida a busca por uma funcionalidade que permita que os agentes
possam coordenar seus conhecimentos, objetivos, habilidades e planos individuais de
uma forma conjunta, buscando a satisfação de uma necessidade que o sistema mod-
ela. Desta forma, pode-se perceber que a coordenação é um dos elementos centrais
dos SMA, pois sem coordenação, os benefı́cios advindos da resolução distribuı́da de
problemas, desaparecem (JUCHEM; BASTOS, 2001).
Em sistemas multiagentes baseados em agentes cognitivos, a coordenação do
mesmo é fundamentalmente relacionada à comunicação explı́cita entre os agentes
que o compõe. Ou seja, para que os agentes possam se coordenar, devem possuir a
habilidade de se comunicar.
Um mecanismo muito utilizado para implementar a coordenação de SMA basea-
dos em agentes cognitivos é o protocolo de rede contratual (contract net) (JUCHEM;
BASTOS, 2001), o qual é inspirado nos processos de contratação de serviços (re-
alização de tarefas) existentes em organizações humanas. Neste processo, agentes
coordenam suas ações através de contratos que firmam o cumprimento de seus obje-
tivos especı́ficos. Neste cenário existe um agente que atua como gerente, decompondo
seus contratos em subcontratos a serem realizados por outros potenciais agentes em-
preiteiros. Todas esas contratações são realizadas através de trocas de mensagens
entre os agentes envolvidos.
Em sistemas multiagentes baseados em agentes reativos, o problema global a ser
resolvido pelos agentes não é explı́cito, está implı́cito nas interações de baixo nı́vel.
Desta forma, a coordenação de tais agentes ocorre justamente no nı́vel local, visando
61

a satisfação de restrições deste nı́vel. A coordenação global de sistemas deste tipo,


em geral, ocorre através da auto-organização. Na auto-organização, estruturas e
comportamentos globais resultam da interação entre componentes de nı́veis inferi-
ores (PARUNAK; BRUECKNER, 2001). A auto-organização está relacionada ao
conceito de emergência.
No presente trabalho, os conceitos relacionados à emergência são de importância
fundamental. Desta forma, tais conceitos serão detalhados na próxima seção.

3.5 Emergência
A noção de emergência é bastante ampla e possui vários sentidos (DESSALLES;
GALAM; PHAN, 2005). Em geral, é dito que uma propriedade de um sistema com-
plexo é emergente quando esta surge a partir das propriedades e relações inerentes
aos elementos constituintes de nı́veis hierárquicos inferiores a ela, sendo que tal pro-
priedade não é nem previsı́vel a partir e nem redutı́vel à estas caracterı́sticas de nı́vel
inferior (DESSALLES; GALAM; PHAN, 2005); (EMMECHE, 1997). Para ilustrar
o conceito de emergência podemos citar fenômenos cotidianos como a textura de
um bolo e as formas das nuvens, por exemplo. A textura do bolo é vista como o
resultado complexo do processo de cozimento e das reações quı́micas entre os ingredi-
entes constituintes, além de outros inúmeros fatores. Já a forma de uma nuvem pode
ser desencadeada e desenvolvida a partir da interação de centenas de fatores (tem-
peratura ambiente, incidência do sol, ângulo desta incidência, taxa de evaporação
d’água, velocidade dos ventos, natureza das substâncias constituintes,...). Nos dois
casos, o fenômeno não pode ser descrito formalmente a partir das caracterı́sticas,
propriedades e/ou interações dos elementos do nı́vel inferior.
Em (BONABEAU; DESSALES; GRUMBACH, 1995a) e (BONABEAU; DESSALES;
GRUMBACH, 1995b) são apontados alguns fatores fundamentais para que um
fenômeno emergente possa ocorrer:

1. Atores: Agentes interativos que possuem duas habilidades fundamentais: Per-


cepção local e habilidade de atuar localmente

2. Espectadores: uma ou mais entidades que possuem percepção global, sensı́veis


ao fenômeno emergente.

3. Um processo com as seguintes caracterı́sticas:

• Um estado inicial, baseado em um nı́vel organizacional N


• Uma sequência de eventos, que leva o sistema do estado inicial a
• Um estado final, que corresponde a uma organização superior, N’.
62

4. Uma escala de tempo para a ocorrência da evolução descrita pelo processo


acima (3), sendo que tal escala de tempo deve ser compatı́vel com as escalas
de tempo do(s) ator(es) e espectador(es).

Neste contexto, (BONABEAU; DESSALES; GRUMBACH, 1995a) e (BONABEAU;


DESSALES; GRUMBACH, 1995b) identificam as noções de “nı́vel” e “observador”
como fundamentais para a compreensão da emergência.
Segundo (BONABEAU; DESSALES; GRUMBACH, 1995a), o aspecto emer-
gente de um determinado fenômeno está relacionado ao ponto de vista de um de-
terminado observador deste fenômeno, ou seja, a emergência não é intrı́nseca ao
fenômeno, mas relacionada ao sistema global (fenômeno + observador).
Em (BONABEAU; DESSALES; GRUMBACH, 1995b), pode-se perceber que a
ocorrência de um fenômeno emergente está intimamente relacionada à existência de
múltiplos nı́veis (dois ou mais) distintos de organização e de descrição.
Em relação à noção de nı́vel de organização, algumas caracterı́sticas fazem-se
necessárias para caracterizar um fenômeno emergente:

1. Multiplicidade de nı́veis:

2. Uma regra de composição define entidades de nı́vel superior a partir de enti-


dades do nı́vel inferior.

3. Relação entre os nı́veis (analogia, hierarquia,...)

4. Irredutibilidade: Não é possı́vel suprimir um nı́vel. Não pode-se conectar


diretamente o nı́vel n − 1 diretamente ao nı́vel n + 1.

5. Autonomia de um nı́vel: A existência de propriedades, relações, regras com-


portamentais, etc, dizem respeito às entidades de um determinado nı́vel, inde-
pendentemente dos demais nı́veis.

Podemos compreender melhor a emergência como um fenômeno multi-nı́vel or-


ganizacional a partir da Figura 3.9:
Neste esquema, temos E representando o conjunto de elementos e do nı́vel n − 1,
temos C representando as regras externas de composição de elementos do conjunto
E para elementos do conjunto E 0 . Temos R representando relações potenciais em E,
e R0 as relações potenciais em E 0 . Desta forma < E 0 , R0 > é considerado um nı́vel
de organização se existir uma relação R0 em E 0 que não pode ser completamente
descrita a partir das relações R em E.
Em relação à noção de nı́vel de descrição, (BONABEAU; DESSALES; GRUM-
BACH, 1995b) afirma que, num determinado sistema em que ocorre um fenômeno
63

Figura 3.9: Fenômeno emergente em um perspectiva multi-nı́vel organizacional

emergente, as propriedades que são observadas nos elementos constituintes, não po-
dem ser observadas da mesma forma nos conjuntos de tais elementos, são necessários
nı́veis de descrições distintos para abarcar as diferentes propriedades.
Os nı́veis de descrição dependem totalmente do observador, relacionando-se di-
retamente ao que ele está observando no momento e de seu ponto de vista.
Em (CARIANI, 2001) categoriza-se três grandes modelos distintos sobre o con-
ceito de emergência. Os três modelos são: emergência computacional, emergência
termodinâmica e emergência relativa a um modelo. A emergência termodinâmica
é caracterizada pelo surgimento de ordem a partir do ruı́do, onde micro-processos
estocásticos geram macro-estruturas ou macro-comportamentos discretos. Como
exemplo ilustrativo da emergência termodinâmica pode-se citar o comportamento
dos gases. O movimento estocástico dos átomos e moléculas que compõe o gás de-
finem a temperatura, a pressão e o volume do gás, no nı́vel superior de observação.
A emergência relativa a um modelo é definida como um desvio do comportamento
de um determinado sistema fı́sico do modelo que o observador possui do mesmo,
onde, a partir deste desvio, o observador obriga-se a mudar o modelo que possuı́a
deste sistema, para que possa continuar a prever, de forma eficaz, os fenômenos que
ocorrem no mesmo. Neste contexto, pode-se citar a evolução de novos órgãos senso-
riais em organismos vivos a partir de estruturas orgânicas mais simples. Por fim, a
emergência computacional está relacionada à manifestação de novas formas (estru-
turas, comportamentos,...) globais a partir de interações locais. Ou seja, uma macro-
ordem complexa resulta da micro-ordem simples. Um exemplo clássico que ilustra
esta categoria é a simulação do comportamento de bandos (flocking) (SINKOVITS,
2006);(OLFATI-SABER, 2006), na qual agentes obedecem um conjunto de regras
64

simples, que são aplicadas por cada agente a partir da observação de parâmetros
locais (posição e direção dos agentes mais próximos) e que resultam em complexos
comportamentos de bandos que simulam comportamentos coletivos encontrados na
natureza (cardumes de peixes, enxame de abelhas,...)(OLFATI-SABER, 2006).
Dentro do contexto deste trabalho, o conceito de emergência é utilizado na
geração de informação inicial, a partir da qual o algoritmo de sı́ntese estocástica gera
a melodia final. Assim, foi concebido um mecanismo que possibilita a emergência
de distribuições de probabilidades (em matrizes de probabilidades de transição de
estados) a partir da interação entre agentes reativos.
Optou-se pela utilização do conceito de emergência para a geração da informação
inicial porque um dos objetivos deste trabalho era facultar o surgimento de estru-
turas musicais não pensadas inicialmente pelo compositor. Desta forma, buscamos
uma alternativa que proporcionasse uma certa dissociação, em relação aos proces-
sos cognitivos do compositor, entre as configurações iniciais (que, em geral, são
fornecidas pelo compositor) e o resultado melódico final. Essa dissociação objetiva
contornar o “vı́cio” do compositor, que, mesmo de forma não consciente, pode vir a
determinar entradas que visem a geração de determinads saı́das.
65

4 ARQUITETURA MULTIAGENTES PARA SÍNTESE


MELÓDICA ESTOCÁSTICA

O modelo proposto neste trabalho tem como objetivo a geração de sequências


melódicas. É importante salientar que o modelo proposto não tem pretensões
estéticas especı́ficas e preocupa-se basicamente em produzir uma sequência de al-
turas e durações de notas musicais, sem atentar para certos detalhes estruturais da
música, como, por exemplo, a construção de compassos bem definidos.
No modelo proposto, a sequência melódica final é composta a partir de cadeias
de Markov de primeira ordem, as quais, por sua vez, são geradas a partir de matrizes
de probabilidades de transição que são construı́das de forma emergente, através da
interação de agentes reativos em ambientes multiagentes.
O modelo de geração melódica proposto constitui-se de uma estrutura hierárquica
que possui três camadas distintas, onde a camada superior é abastecida com in-
formações geradas pela camada inferior. Sob uma perspectiva de processos, o pro-
cesso de geração melódica que ocorre com base neste modelo pode ser dividido em
três estapas distintas, as quais requerem intervenção do usuário. As três camadas
(e etapas) que constituem o modelo são: geração emergente de matrizes de proba-
bilidades de transição, geração de modelos probabilı́sticos geradores de segmentos
melódicos e sı́ntese melódica estocástica.
A figura 4.1 representa um diagrama esquemático da estrutura do modelo de
geração melódica proposto neste trabalho. Em C1 (camada 1) temos a primeira
camada, a qual encapsula o processo de geração emergente de matrizes de probabil-
idades de transição. Em C2 está representada a segunda camada, a qual, por sua
vez, representa o processo de construção de modelos probabilı́sticos para geração
de segmentos melódicos. Em C3 representa-se a terceira e última camada, na qual
ocorre o processo de composição melódica estocástica, propriamente dita. Também
estão representados na figura em questão os ambientes multiagentes responsáveis
pela geração das matrizes de probabilidades de transição de alturas, em A e pela
geração das matrizes de probabilidades de transição de durações, em B. Além
disso, na figura em questão também estão representados os fluxos de informação
66

Figura 4.1: Diagrama esquemático do modelo de geração de sequências melódicas


proposto por este trabalho.

que trafegam entre as camadas. Em C e D, respectivamente, estão representados os


conjuntos de matrizes de probabilidades de transição de alturas e os conjuntos de
matrizes de probabilidades de transição de durações, gerados em C1 para alimentar
o processo em C2. Em E, representa-se o conjunto de modelos probabilı́sticos para
geração de segmentos melódicos, gerados em C2 para alimentar o processo em C3.
Por fim, em F , representa-se o resultado final, a composição melódica resultante.
Nas próximas seções, será realizada uma explanação mais detalhada a respeito
de cada uma das camadas que compõe a estrutura ilustrada pela figura 4.1.

4.1 Camada de geração emergente de matrizes de probabil-


idades de transição

A camada inferior do modelo proposto por este trabalho é responsável pela


geração de matrizes de probabilidades de transição, as quais posteriormente serão
utilizadas no processo de geração de modelos probabilı́sticos para geração de seg-
mentos melódicos, na camada intermediária.
Esta primeira camada consiste basicamente em dois ambientes multiagentes, um
no qual são gerados conjuntos de matrizes de probabilidades de transição de alturas
de notas musicais e um no qual são gerados conjuntos de matrizes de probabilidades
de transição de durações de notas musicais. Tais ambientes abrigam, cada qual, um
67

conjunto de agentes reativos que interagem, de modo que desta interação emerja o
conjunto de matrizes de probabilidades de transição. Para compreender este pro-
cesso, a seguir serão detalhadas as estruturas do ambiente e do agente utilizadas
nesta camada e, por fim, será descrito o processo de geração emergente de matrizes
de probabilidades de transição.

4.1.1 Ambiente

Nesta camada existem dois ambientes que são basicamente instâncias de uma
mesma estrutura de ambiente. Os ambientes em questão representam planos cujas
dimensões espaciais são definidas pelo usuário e sobre os quais os agentes movimentam-
se e interagem. Estes planos, por sua vez, são discretizados em uma matriz de ma-
trizes de ocorrência. Ou seja, o ambiente é logicamente dividido em grandes células
as quais representam matrizes de ocorrência e possuem, por sua vez N × N células.
Sabendo-se que os ambientes da camada 1 geram matrizes de probabilidades de
transição de estados, que mais tarde serão utilizados no mecanismo de sı́ntese es-
tocástica da camada 3, N representa o número de elementos do espaço de estados
considerado pelo mecanismo de sı́ntese estocástica. No ambiente que gera matrizes
de probabilidades de transição de alturas de notas musicais, N é igual a 12, porque
o conjunto total de alturas de notas musicais possı́veis é 12, compreendendo os 12
semitons (C, C# ou Db, D, D# ou Eb, E, F, F# ou Gb, G, G# ou Ab, A, A#
ou Bb, B) da oitava entre C5 (o Dó que está duas oitavas acima do Dó central do
piano) e C6. De forma análoga, no ambiente que gera matrizes de probabilidades de
transição de durações, N é igual a 7, porque o conjunto total de durações de notas
musicas consideradas neste trabalho é 7 (Semibreve, Mı́nima, Semı́nima, Colcheia,
Semicolcheia, Fusa, Semifusa).
Na Figura 4.2 é ilustrada a estrutura lógica na qual é mapeado o ambiente em que
os agentes interagem. Na figura em questão, pode-se visualizar o ambiente como
um plano euclidiano (cujo ponto de origem está representado por O) delimitado
pelos valores D1 (largura, o valor máximo que uma coordenada X pode assumir
neste plano) e D2 (altura, valor máximo que uma coordenada Y pode assumir neste
plano). Tal plano, neste exemplo em questão, é dividido em 4 regiões distintas.
Cada uma dessas regiões representa uma matriz de ocorrência, onde cada célula
armazena um valor que representa o número de vezes que aquela região discreta
foi visitada por um agente. No detalhe, é possı́vel visualizar uma das matrizes
de ocorrências. Neste caso, o ambiente em questão é responsável pela geração de
matrizes de probabilidades de transição de alturas, visto que cada uma das matrizes
de ocorrência que o constituem possui 12 células.
Tabém fazem parte do ambiente, locais denominados pontos-alvo. Um ponto-
alvo, dentro do contexto deste trabalho, é definido como um ponto (uma coordenada
68

Figura 4.2: Estrutura lógica na qual é mapeado o ambiente em que os agentes


interagem.

x e uma coordenada y) localizado dentro dos limites do plano (ilustrado na Figura


4.2). Tais locais exercem uma força de atração sobre os agentes, de forma que cada
agente que se movimenta pelo ambiente tem sempre como objetivo (alvo) chegar a
um desses locais.

4.1.2 Agente

Os agentes que interagem nos ambientes que constituem a primeira camada do


modelo proposto neste trabalho são baseados no modelo reativo. A estrutura interna
e o comportamento do agente são detalhados a seguir.

4.1.2.1 Comportamento do agente

Os agentes possuem como objetivo alcançar o ponto-alvo pelo qual são atraı́dos,
movimentando-se do ponto em que se encontram no ambiente até o ponto-alvo em
questão, buscando manter sempre uma distância mı́nima D de outros agentes. A
todo o momento, existe sempre um ponto-alvo que exerce força atrativa sobre cada
um dos agentes e quando um ponto-alvo atrai um agente, este percebe tal força
de atração independentemente da distância que existe entre ele e o ponto-alvo em
questão. Todavia, no que diz respeito à capacidade que o agente tem de perceber
outros agentes, esta fica limitada a um raio de percepção de D unidades (o valor
definido como restrição de distância entre os agentes). Quando um agente invade
este raio D de percepção, o reflexo básico do agente é ajustar sua trajetória de modo
que continue satisfazendo a restrição de distância mı́nima. Pode-se perceber que o
agente possui dois comportamentos fundamentais: locomover-se até o objetivo (o
69

ponto-alvo que o atrai) e desviar do perı́metro de percepção de outros agentes, de


modo que a restrição de distância mı́nima entre os agentes seja sempre satisfeita.
A modelagem comportamental do agente foi baseada na arquitetura de subsunção
(BROOKS, 1986) e no modelo de campos potenciais (MEZENCIO, 2002). Os dois
comportamentos distintos do agente são estruturados em uma hierarquia que possui
dois nı́veis. Esses comportamentos, tal como é proposto por (BROOKS, 1986), são
dispostos na estrutura hierárquica de nı́veis conforme a prioridade que possuem.
No caso dos agentes utilizados neste trabalho, o primeiro nı́vel (e com maior pri-
oridade) representa o comportamento “evasivo” do agente (o ajuste de direção e
velocidade para manter a restrição de distância entre outros agentes) enquanto o
segundo nı́vel representa o comportamento “andar em direção ao objetivo” (sendo o
objetivo o ponto-alvo que está atraindo o agente no momento). Esta estrutura está
representada na Figura 4.3.

Figura 4.3: Estrutura hierárquica do agente, baseada na arquitetura de subsunção


(BROOKS, 1986).

No agente aqui proposto, a ação resume-se em ajustar o vetor de direção e “cam-


inhar” nesta direção, a cada ciclo de percepção. O modelo hierárquico representado
na Figura 4.3 não tem a função de facilitar a seleção do comportamento adequado,
conforme a utilização tradicional da arquitetura de subsunção. No modelo compor-
tamental do agente aqui proposto o comportamento final é definido pela colaboração
dos dois comportamentos fundamentais (representados pelas duas camadas). A co-
laboração dos comportamentos fundamentais para a geração do comportamento final
por ser compreendida como a superposição dos campos potenciais que atuam sobre
o agente no momento. Esta superposição, na prática, é definida como a soma dos
vetores de cada uma das forças que atuam sobre o agente. O resultado é um vetor
que define a velocidade, a direção e o sentido do movimento do agente.
Para entender melhor o funcionamento de tal sistema comportamental, deve-se
entender como é calculado o vetor de força para cada um dos comportamentos do
agente:
70

Manter a distância mı́nima de outros agentes: Neste módulo comportamen-


tal, o agente obtém a posição dos agentes que violaram a restrição de distância
mı́nima (os agentes que estão dentro do seu raio de percepção). Tomados os
pontos que representam a localização de cada um desses agentes, calcula-se
o ponto médio, somando-se todos os pontos e dividindo-se o resultado pelo
número de agentes que estão nas condições descritas anteriormente. Obtendo-
se o ponto médio, calcula-se o vetor entre tal ponto e a localização do agente.
O vetor resultante tem sentido oposto ao ponto médio, em relação ao agente e
possui intensidade igual a 1, por ser um vetor unitário. A magnitudade deste
vetor de repulsão é multiplicada por um valor parametrizado.

Andar em direção ao objetivo: Neste módulo comportamental, o agente cal-


cula o vetor entre o ponto em que está localizado e o ponto-alvo que está
exercendo força de atração sobre ele. O vetor resultante aponta em sentido ao
ponto-alvo e possui intensidade igual a 1, independentemente da localização
do agente no ambiente.

Visto que o agente está sempre sob uma força atrativa de um ponto-alvo, mas
nem sempre encontra agentes invadindo o raio de distância mı́nima, os comporta-
mentos resultantes possı́veis são definidos em função da percepção ou não de agentes
invadindo o raio de distância mı́nima. Ou seja:

Se o agente percebe outros agentes invadindo o raio de distância mı́nima:


O agente dispara o comportamento do primeiro nı́vel, calculando o vetor de
respulsão e em seguida dispara o comportamento do segundo nı́vel, calculando
o vetor de atração. O vetor resultante é dado pela soma de ambos os vetores.
Após calculado o vetor, o agente se move em função do mesmo (com direção,
sentido e velocidade definidos pelo vetor).

Se não existem agentes invadindo o raio de distância mı́nima: O agente não


dispara o comportamento do primeiro nı́vel, mas somente o do segundo. ou
seja, neste cenário, o agente só obtém o vetor de atração e, em seguida, se
move em função do mesmo.

4.1.3 Geração de matrizes de probabilidades de transição


O processo de geração de matrizes de probabilidades de transição necessita de
alguns parâmetros fornecidos pelo usuário. Tais parâmetros são obtidos através da
interface gráfica mostrada na Figura 4.4.
Nesta interface gráfica pode-se visualizar os parâmetros necessários para ini-
cializar cada um dos dois ambientes (ambiente Alturas, que gera conjuntos de ma-
trizes de probabilidades de transição de alturas e ambiente Durações, que gera con-
juntos de matrizes de probabilidades de transição de durações) que constituem a
71

Figura 4.4: Interface gráfica na qual o usuário informa os parâmetros necessários


para o disparo do processo de geração de matrizes de probabilidades de transição.

primeira camada do modelo proposto. A seguir são listados tais parâmetros, segui-
dos de um detalhamento de cada um:

Largura do ambiente: Define o valor máximo possı́vel no eixo x de coordenadas


do plano (o ambiente).

Altura do ambiente: Define o valor máximo possı́vel no eixo y de coordenadas


do plano (o ambiente).

Colunas: Define o número de colunas de matrizes de ocorrência em que o ambiente


será dividido.

Linhas: Define o número de linhas de matrizes de ocorrência em que o ambiente


será dividido.

Número de agentes: Define o número de agentes que estará interagindo no am-


biente.

Distância mı́nima: Define a distância mı́nima que os agentes devem buscar man-
ter uns dos outros. Define também o raio de percepção de presença de agentes.

Multiplicador de repulsão: Define o valor que multiplica o vetor de repulsão


gerado pela primeira camada de comportamento do agente. Em outras palavras,
define a intensidade (velocidade) com que o agente recua.

Após a informação de tais parâmetros, os ambientes são estruturados. Em


seguida, deve-se determinar os pontos-alvo que nortearão as interações entre os
agentes em cada um dos ambientes. Os pontos-alvo são determinados através de
72

cliques de mouse diretamente em uma interface gráfica. Esta interface gráfica per-
mite a visualização da estrutura lógica (divisão em matrizes de ocorrência) de cada
um dos ambientes, além de possibilitar a visualização da própria interação entre os
agentes em ambos os ambientes. Tal interface gráfica é mostrada na Figura 4.5.

Figura 4.5: Interface gráfica na qual é possı́vel definir pontos-alvo, visualizar a


estrutura lógica dos ambientes e visualizar as interações entre os agentes em cada
um dos ambientes. Neste caso, é importante perceber que ambos os ambientes estão
divididos em 4 matrizes de ocorrências.

Após a definição dos pontos-alvo, a interação pode ser inicializada. Assim que
a interação inicia, os N agentes de cada ambiente são posicionados aleatoriamente.
Assim que surgem já percebem a força de atração de um dos ponto-alvo definidos.
Ao perceber tal força de atração, cada um dos agentes busca chegar ao ponto-alvo,
ajustando a trajetória para manter a restrição da distância mı́nima entre os agentes.
Quando um agente chega ao objetivo, um outro ponto alvo (definido aleatoriamente)
passa a exercer sua força atrativa sobre o agente.
Ao movimentarem-se pelo ambiente, os agentes incrementam as células das ma-
trizes de ocorrência (que são inicializadas com o valor 0). Incrementar o valor da
célula equivaleria, metaforicamente, a afundar a terra quando o agente dá um passo
em um determinado terreno. Desta forma, valores vão sendo distribuı́dos pelas
células das matrizes de ocorrência que constituem o ambiente.A distribuição desses
73

valores é determinada pela interação entre os agentes no ambiente, a qual, por sua
vez é drasticamente influenciada pelos parâmetros informados pelo usuário na ini-
cialização do ambiente. Como a distribuição de valores não pode ser formalmente
descrita a partir das relações entre os agentes, é possı́vel afirmar que tal distribuição
de valores emerge da interação entre os agentes no ambiente. Sendo este processo
um fenômeno emergente, o papel de observador é interpretado pelo usuário, que
decide quando parar o processo.
Assim que as interações cessam, as matrizes de ocorrência dão origem às matrizes
de probabilidades de transição que são enviadas para a próxima camada do modelo
composicional aqui proposto. Cada matriz de ocorrências origina uma matriz de
probabilidades de transição. Isto ocorre da seguinte forma:

1. Para cada matriz de ocorrências, toma-se cada uma de suas linhas.

2. Para cada linha, calcula-se o somatório de todos o valores contidos nela.

3. A partir do valor do somatório, verifica-se para cada valor da linha, qual a


porcentagem do somatório geral o mesmo representa.

É importante notar que a distribuição de valores em função da interação entre


os agentes, gera, visualmente falando, um intrincado conjunto de “trilhas” (ou cam-
inhos), os quais podem ser visualizados através da interface apresentada na Figura
4.5. No canto inferior esquerdo da interface mencionada é oferecido um conjunto de
opções de visualizações do ambiente e da distribuição dos valores no mesmo. Tais
opções são:

Não mostrar trilhas: Esta opção exibe somente a estrutura lógica do ambiente
(em tons de verde), os pontos-alvo (em azul) e os agentes (em vermelho). Não
permite a visualização das trilhas geradas pela distribuição de valores.

Mostrar trilhas em geral: Nesta opção, além da estrutura lógica do ambiente


(em tons de verde), dos pontos-alvo (em azul) e dos agentes (em vermelho),
são exibidas também as trilhas geradas pela distribuição de valores sob uma
análise global. Ou seja, para gerar a representação das trilhas, encontra-se o
maior e o menor valor global e divide-se o intervalo de valores entre eles em 16
faixas. Cada um das faixas de valores é representado por um nı́vel de cinza.
Cada célula é “pintada” com o nı́vel de cinza que corresponde ao valor que
contém. Quanto maior for o nı́vel de cinza (cores mais claras) de uma célula,
maior o valor que ela contém e vice-versa.

Mostrar trilhas por tabela de ocorrência: Enquanto a opção anterior oferece


uma análise da distribuição global de valores, esta oferece uma análise local,
74

de cada matriz de ocorrências. Ou seja, encontra-se o menor e o maior valor


para cada matriz de ocorrência e divide-se o intervalo de valores entre eles em
16 faixas. Cada um das faixas de valores é representado por um nı́vel de cinza.
Cada célula é “pintada” com o nı́vel de cinza que corresponde ao valor que
contém. Quanto maior for o nı́vel de cinza (cores mais claras) de uma célula,
maior o valor que ela contém e vice-versa.

Mostrar matrizes de probabilidades de transição: Nesta opção, pode-se obter


uma visualização de cada uma das matrizes de probabilidades de transição.
Esta opção possibilita acompanhar a evolução da construção de tais matrizes.
O intervalo [0, 100] é dividido em 16 faixas de porcentagens. Cada faixa é
representada por um nı́vel de cinza. Cada célula é “pintada” com o nı́vel de
cinza que corresponde à porcentagem que contém.

4.2 Camada de definição de modelos probabilı́sticos para


geração de segmentos melódicos
Nesta camada ocorre a definição dos modelos probabilı́sticos para geração de
segmentos melódicos (MPGSM).
Sob uma perspectiva estrutural, um MPGSM é uma estrutura de dados con-
stituı́da por uma matriz de probabilidades de transição de alturas e uma matriz de
probabilidades de transição de durações.
Para compreender a dimensão funcional dos MPGSM´s na abordagem composi-
cional proposta neste trabalho é necessário ter em mente algumas caracterı́sticas
das cadeias de Markov e algumas caracterı́sticas desejáveis em uma composição
musical. Analisando-se uma música qualquer criada por um compositor humano,
percebe-se que, em geral, ela é permeada por uma série de nuances e momentos que,
muitas vezes, contrastam entre si. Se fosse gerada uma matriz de probabilidades
de transição de alturas ou durações a partir de tal música, todas essas nuances
e contrastes seriam reduzidas a uma estatı́stica global, o que acaba mutilando as
caracterı́sticas de nı́vel intermediário da composição. Desta forma, se a matriz de
probabilidades de transição em questão fosse utilizada para gerar uma nova música,
mesmo que esta preservasse as caracterı́sticas estatı́sticas globais da música ini-
cial, é muito improvável que também conservasse as caracerı́sticas de nı́vel inferior.
Além disso, em (OLIVEIRA, 2003) é dito que a música gerada estocasticamente
nos moldes tradicionais, a partir de um único modelo probabilı́stico de transição de
estados, acaba tornando-se monótona. A utilização de MPGSM´s neste trabalho ob-
jetiva contornar os problemas descritos acima. Para tanto, apoiando-se no conceito
de MPGSM, a melodia gerada é abordada como um conjunto de “regiões menores”
75

com caracterı́sticas estatı́sticas próprias. Durante o processo de geração estocástica


musical, as alturas e durações de notas musicais são sempre geradas em função de um
MPGSM. E no decorrer do processo, o MPGSM que descreve a geração estocástica
de alturas e durações é trocado por outro N vezes, possibilitando o surgimento de
N regiões com caracterı́sticas estatı́sticas e musicais particulares.
Os MPGSM´s são construı́dos a partir do conjunto de matrizes de probabilidades
de transição geradas na camada anterior. O usuário define os MPGSM´s (quantos
quiser) a partir da interface gráfica demonstrada na Figura 4.6.

Figura 4.6: Interface gráfica com a qual o usuário pode definir os MPGSM´s

Na interface gráfica demonstrada na Figura 4.6, pode-se identificar três áreas


importantes. A primeira delas é a área de seleção de matrizes de probabilidades
de transição (tanto de alturas quanto de durações), no canto superior esquerdo.
Na área em questão existem duas listas, lista de matrizes de probabilidades de
transição de alturas e de durações, respectivamente. Ao selecionar uma matriz
em qualquer uma das listas, a mesma é mostrada na área chamada “Matriz de
probabilidades de transição selecionada” (a segunda das áreas importantes), no canto
inferior esquerdo. Nesta área, exibe-se a distribuição de probabilidades da matriz
que está selecionada. Esta área revela os valores numéricos das probabilidades com
uma distinção cromática associada, proporcionando maior agilidade na identificação
dos valores por parte do usuário. A distinção cromática em questão resume-se à
associação de um determinado nı́vel de cinza a cada célula da matriz, quanto maior
o nı́vel de cinza (mais claro e próximo da cor branca) maior será a porcentagem
representada pela célula em questão. Por fim, a terceira área importante é a “Lista
de modelos criados”, na qual exibe-se os modelos criados pelo usuário até o momento.
Utilizando a interface representada na Figura 4.6, o usuário pode definir um novo
76

MPGSM selecionando uma matriz de probabilidades de transição de alturas e uma


matriz de probabilidades de transição de durações (após verificar qual o conjunto de
probabilidades mais adequado aos seus objetivos). Após selecionar as duas matrizes
necessárias, o modelo é construı́do ao se clicar no botão “Criar novo modelo”. Após
a criação de um novo MPGSM, o mesmo será exibido na “Lista de modelos criados”.
Um modelo criado pode ser removido da lista, selecionando-o e em seguida clicando
em “Remover modelo”. Após a definição dos MPGSM desejados, os mesmos são
enviados à terceira e última camada do modelo composicional (após o usuário clicar
em “Próximo passo”).

4.3 Camada de sı́ntese melódica estocástica


Nesta camada ocorre a etapa final do processo proposto neste trabalho, a sı́ntese
melódica estocástica propriamente dita.
O processo responsável pela geração da melodia final é semelhante ao processo
descrito no item 2.4.3.3 deste documento (página 39). Neste processo geram-se
duas cadeias de Markov com N estados gerados, uma que define a sucessão de
alturas (CSA) e outra que define a sucessão de durações (CSD). A partir de cada
uma das realizações destas cadeias, pode-se obter uma nota musical com altura e
duração definida. A nota é gerada tomando-se a realização r de CSA (CSA(r)) e a
realização r de CSD (CSD(r)). Ou seja, se as cadeias de Markov geradas possuem
N realizações (estados gerados), podemos obter N notas musicais a partir delas.
Tendo-se em mente que a melodia final é obtida a partir das duas cadeias de
Markov supracitadas, o processo que esta camada realiza, objetiva, fundamental-
mente, gerar essas duas cadeias de Markov. A geração destas duas cadeias é real-
izada através de um processo iterativo que é disparado a partir de alguns parâmetros
de entrada, os quais são definidos pelo usuário em uma interface gráfica. A interface
gráfica em questão pode ser vista na Figura 4.7.

Figura 4.7: Interface gráfica com a qual o usuário pode definir os parâmetros de
entrada do processo de sı́ntese melódica estocástica.
77

Com a interface mostrada na Figura 4.7, os seguintes parâmetros são obtidos.

1. O MPGSM inicial, utilizado para gerar as realizações iniciais das cadeias de


Markov. Lembrando que cada MPGSM possui duas matrizes de probabili-
dades de transição, uma para alturas e outra para durações. O que torna um
MPGSM apto a gerar realizações de ambas as cadeias.

2. A altura e a duração iniciais a partir do MPGSM selecionado.

3. O número N de notas musicais que constituirão a melodia resultante. Onde


N , primeiramente, define o número de realizações das cadeias de Markov a
partir das quais, posteriormente, a melodia final é construı́da.

4. Um instrumento (timbre) com o qual a melodia final pode ser ouvida. Como a
melodia final também é gravada em um arquivo MIDI, o instrumento escolhido
nesta etapa definirá o timbre com o qual a melodia ficará registrada no arquivo.

Com tais parâmetros iniciais, o processo iterativo que gera cada uma das N
realizações das cadeias de Markov é iniciado. Para ilustrar este processo itera-
tivo, tomaremos como parâmetros iniciais de entrada: como MPGSM inicial, aquele
mostrado na Figura 4.8, como altura inicial o C, como duração inicial a Semibreve
e como número de notas (número de realizações das cadeias de Markov), 100.

Figura 4.8: Exemplo de modelo probabilı́stico para geração de segmentos melódicos


(MPGSM) constituı́do pela matriz de probabilidades de transição de alturas, A e
pela matriz de probabilidades de transição de durações, B.
78

Tendo-se tais parâmetros como entrada, o processo assume o MPGSM mostrado


na figura 4.8 como o MPGSM atual, assim como assume o C como a altura atual
e a Semibreve como a duração atual em suas respectivas cadeais de Markov. Ou
seja, a partir dos parâmetros de entrada já definimos uma nota musical cuja altura
é C e dura uma Semibreve. A partir de tais estados, a primeira iteração do processo
iterativo compreende os seguintes passos:

1. Tendo-se o MPGSM (Figura 4.8) e a altura (C ) atuais, identifica-se qual a


linha da matriz de probabilidades de transição de alturas (neste exemplo, a
matriz A do MPGSM atual) está relacionada à altura atual. Esta linha define o
conjunto de probabilidades de transição da altura atual para as demais alturas
possı́veis. No exemplo em questão, as probabilidades de transição de alturas
a partir de C estão representadas na Figura 4.9.

Figura 4.9: Probabilidades de transição de alturas a partir da altura C.

2. Dentro do intervalo [0, 99], define-se subintervalos proporcionais às probabili-


dades encontrada no passo anterior. Tais subintervalos representam cada qual
uma altura possı́vel de ser gerada a partir da altura atual. Na Figura 4.10
ilustra-se uma possı́vel divisão para o exemplo em questão.

Figura 4.10: Divisão do intervalo [0, 99] em subintervalos proporcionais às probabil-
idades de transição encontrada no passo anterior.

3. Gera-se um número aleatório x dentro do intervalo [0, 99]. Analisa-se a qual


subintervalo x pertence. Se, no exemplo em questão, x fosse igual a 92, a
próxima altura seria G, porque 92 ∈ [90, 94].

Tal como é feito pra definir a altura, defini-se a próxima duração, dentro do
mesmo ciclo iterativo do processo:

1. Tendo-se o MPGSM (Figura 4.8) e a duração (Semibreve) atuais, identifica-


se qual a linha da matriz de probabilidades de transição de durações (neste
79

exemplo, a matriz B do MPGSM atual) está relacionada à duração atual.


Esta linha define o conjunto de probabilidades de transição da duração atual
para as demais durações possı́veis. No exemplo em questão, as probabilidades
de transição de durações a partir da Semibreve estão representadas na Figura
4.11.

Figura 4.11: Probabilidades de transição de alturas a partir da duração Semibreve.

2. Dentro do intervalo [0, 99], definem-se subintervalos proporcionais às proba-


bilidades encontrada no passo anterior. Tais subintervalos representam cada
qual uma duração possı́vel de ser gerada a partir da duração atual. Na Figura
4.12 ilustra-se uma possı́vel divisão para o exemplo em questão.

Figura 4.12: Divisão do intervalo [0, 99] em subinervalos proporcionais às probabil-
idades de transição encontrada no passo anterior.

3. Gera-se um número aleatório x dentro do intervalo [0, 100[. Analisa-se a qual


subintervalo x pertence. Se, no exemplo em questão, x fosse igual a 65, a
próxima duração seria uma Semibreve, porque 65 ∈ [0, 79].

Este processo é repetido novamente até N iterações (no exemplo, N = 100),


substituindo, a cada iteração, a altura e a duração atuais pelas últimas geradas pelo
processo.
Para que fosse possı́vel utilizar MPGSM diversos no decorrer da geração es-
tocástica, foi necessário criar um mecanismo de substituição de MPGSM. Desta
forma, antes do processo iterativo descrito aneriormente iniciar, é necessário definir
o “ciclo máximo de utilidade” de cada MPGSM dentro do processo total. O “ciclo
máximo de utilidade” de um MPGSM define o número máximo de iterações em que
é possı́vel utilizá-lo. Dentro do escopo deste trabalho, o “ciclo máximo de utilidade”
N
do MPGSM são definidos por um valor fixo que é obtido por M , onde N é o número
total de notas musicais a serem geradas (informado pelo usuário) e M é o número
total de MPGSM definidos pelo usuário na camada anterior e que serão utilizados na
80

sı́ntese melódica estocástica. Sempre que o processo de sı́ntese melódica estocástica


passa a utilizar um novo MPGSM, é definido um novo “ciclo de utilidade” para o
mesmo. O novo “ciclo de utilidade” é definido por um valor aleatório gerado entre
1 e o valor estabelecido pelo “ciclo máximo de utilidade”. Quando um MPGSM
chega ao fim do seu ciclo de utilidade, é selecionado um novo MPGSM. Esta seleção
é realizada observando-se quais os últimos estados (altura e duração) gerados. O
novo MPGSM deve possuir probabilidades de transição definidas para estes últimos
estados. Desta forma, analisa-se quais os MPGSM que satisfazem essas condições e
define-se, aleatoriamente, um deles para suceder o antigo MPGSM.
81

5 EXPERIMENTOS E TESTES

O objetivo principal do modelo proposto neste trabalho é a geração de seqüências


melódicas. Como este trabalho não tem a pretensão de avaliar esteticamente os
resultado gerados pelo modelo, optou-se por gerar um cenário de teste no qual serão
relacionadas as configurações paramétricas de entrada à forma da melodia resultante.
Na construção de tal cenário será analisado o comportamento global dos ambi-
entes multiagentes. O comportamento global de cada ambiente será relacionado às
distribuições de probabilidades nas matrizes que geram.
Por ser um sistema extremamente flexı́vel, não existe a possibilidade de sistem-
atizar casos de uso que abarquem todas as possibilidades de utilização. Além disto,
dada a natureza emergente da geração de matrizes de probabilidades de transição
e a natureza estocástica do processo de sı́ntese melódica, cada execução da imple-
mentação deste modelo é única e irreproduzı́vel. Desta forma, no cenário de teste
que segue, procuramos realizar um passo-a-passo que explorasse o máximo possı́vel
da implementação desenvolvida, de modo que fosse possı́vel criar um referencial
intuitivo de utilização da mesma. Durante o cenário de teste realizado, são eviden-
ciadas algumas caracterı́sticas da implementação, bem como algumas propriedades
da informação que a mesma gera.

5.1 Parametrização inicial


A parametrização inicial do sistema é utilizada para definir as dimensões dos
ambientes multiagentes, bem como o número de agentes que irão interagir em cada
um dos ambientes e as restrições que atuam sobre essas interações. A parametrização
fornecida para o cenário de teste em questão segue (Figura 5.1):

• Parâmetros para a definição do ambiente de geração de matrizes de probabil-


idades de transição de alturas:

Largura do ambiente: 450.


Altura do ambiente: 450.
82

Colunas: 6.
Linhas: 6.
Número de agentes: 200.
Distância mı́nima: 20.
Multiplicador de repulsão: 3.

• Parâmetros para a definição do ambiente de geração de matrizes de probabil-


idades de transição de durações:

Largura do ambiente: 450.


Altura do ambiente: 450.
Colunas: 6.
Linhas: 6.
Número de agentes: 200.
Distância mı́nima: 5.
Multiplicador de repulsão: 2.

Figura 5.1: Parametros que definem a estrutura dos ambientes multiagentes e as


interações nos mesmos.

A seguir são definidos os pontos-alvo nos ambientes. O aspecto final dos ambi-
entes (com os pontos-alvo definidos) pode ser viso na Figura 5.2.

5.2 Geração emergente de matrizes de probabilidades de


transição de estados
A partir da parametrização evidenciada na seção anterior, inicia-se a interação
em ambos os ambiente. A Figura 5.3 apresenta o aspecto geral dos ambientes e as
83

Figura 5.2: Aspecto geral dos ambientes definidos a partir dos parâmetros definidos
para o cenário de teste. Pode-se ver a distribuição de pontos-alvo também.

interações que neles ocorrem. A partir da observação do aspecto geral dos ambientes
e das interações que neles ocorrem pode-se constatar duas propriedades principais:

• Em torno dos pontos-alvo definidos apresenta-se uma grande densidade de


agentes.

• Uma restrição menor de distância entre os agentes (como no ambiente definido


sobre o contexto das durações musicais, à direita) resulta em uma maior fluidez
da movimentação de cada agente e, consequentemente, da movimentação geral.
Neste constexto, os movimentos em linha reta são mais comuns e os agentes
conseguem chegar aos seus objetivos mais facilmente. Uma restrição maior na
distância entre os agentes (como no ambiente definido sobre o contexto das
alturas musicais, à esquerda) introduz uma certa dificuldade na movimentação
dos agentes, tornando mais difı́cil inclusive alcançar os pontos-alvo. Neste
contexto fica mais evidente o quanto esta restrição influencia a movimentação
geral do ambiente.

Com as interações ocorrendo, pode-se analisar visualmente as distribuições de


valores pelo ambiente. Para tanto basta escolher uma das opções de visualização
disponı́veis. Na Figura 5.4 temos a representação da distribuição global de ocorrências.
Nesta visualização evidencia-se quais são os pontos mais visitados pelos agentes no
ambiente em uma perspectiva global. Na Figura 5.5 é apresentada a distribuição
de ocorrências dentro de cada matriz de ocorrência. Nesta opção são evidenciados
quais os pontos mais visitados dentro de cada matriz de ocorrência. Por fim, na
84

Figura 5.3: Aspecto geral dos ambientes definidos a partir dos parâmetros definidos
para o cenário de teste e as interações que neles ocorrem

Figura 5.6 apresenta-se o estado atual das matrizes de probabilidades de transição


de estados.

Figura 5.4: Visualização da distribuição global de ocorrências. Pode-se ver os pontos


mais visitados (em cores claras) e os menos visitados (em cores escuras) pelos agentes
em uma perspectiva global.

Assim que o usuário (interpretando o papel de observador do fenômeno emergente


que ocorre nos ambientes multiagentes) verifica que o estado geral dos ambientes ap-
resenta as propriedades desejadas, as interações cessam e passa-se à próxima etapa,
a definição dos MPGSM´s.
85

Figura 5.5: Visualização da distribuição de probabilidades em cada matriz de prob-


abilidades de transição de estados (cada qual gerada a partir de uma matriz de
ocorrências).

5.3 Definição de MPGSM´s


Na etapa de definição dos MPGSM que serão utilizados na sı́ntese melódica
estocástica, o usuário pode analisar detalhadamente as matrizes geradas nos am-
bientes multiagentes. No cenário de teste em questão, a análise revelou que no
ambiente em que existia uma restrição maior de distância entre agentes, as regiões
do ambiente que continham pontos-alvo geraram matrizes de probabilidades com
uma distribuição mais homogênea (sem concentrações de probabilidades). Pode-se
perceber, desta forma, que os grandes “cinturões” de agentes que se formam dev-
ido à imobilidade introduzida pelas restrições de movimentação, geram matrizes de
probabilidades mais homogêneas. A Figura 5.7 ilustra este caso, pois representa a
distribuição de probabilidades foi gerada a partir de uma região do ambiente gerador
de matrizes de transição de alturas que abrigava um ponto-alvo (linha 0 e coluna 0
do ambiente) e apresenta a homogeneidade constatada. Já nos pontos onde existe
uma maior fluidez de movimentação, as probabilidades ficam concentradas em certos
pontos. A Figura 5.8 representa a matriz de probabilidades de transição de durações
gerada a partir da matriz de ocorrências que está na linha 2 e coluna 1 do ambi-
ente que gera matrizes de transição de durações. Em tal fragmento do ambiente,
é possı́vel ver que existe um certa fuidez do movimento geral devido à restrição de
distância entre agentes ser reduzida. A matriz de probabilidades de transição gerada
a partir de tal segmento apresenta concentrações de probabilidades em determinados
pontos, como pode ser visto na Figura 5.8..
No cenário de teste em questão temos 36 matrizes de probabilidades de transição
de alturas e 36 de durações. Para alimentar o processo de sı́ntese melódica es-
tocástica, a partir destas matrizes definimos 4 MPGSM. A definição desses MPGSM
86

Figura 5.6: Visualização da distribuição de ocorrências em cada matriz, em partic-


ular. Pode-se ver os pontos mais visitados (em cores claras) e os menos visitados
(em cores escuras) pelos agentes em cada matriz de ocorrências.

Figura 5.7: Visualização de uma distribuição homogênea de probabilidades de


transição.

foi realizada buscando a introdução de nuances evidentes na música. Para tanto,


foram construı́dos MPGSM que constrastassem quanto aos aspectos que valorizam
(definidos pela concentração de probabilidades na tabela). Um dos MPGSM con-
struı́dos, por exemplo, valorizava alturas mais elevadas e durações maiores. Ou
seja, para este MPGSM em questão a concentração de probabilidades na matriz de
transição de alturas estava na região que compreende as alturas mais elevadas, e a
concentração de probabilidades na matriz de transição de durações estava na região
que abarca durações maiores.
Após a escolha dos MPGSM, pode-se informar os parâmetros para executar o
processo de sı́ntese melódica estocástica.

5.4 Geração melódica estocástica


No cenário de teste em questão foi gerada uma melodia com 200 notas musicais
cuja macro-forma pode ser visualizada na Figura 5.9. Nesta figura em questão, a
melodia á apresentada em uma visualização “piano roll” onde as notas são repre-
87

Figura 5.8: Visualização de uma distribuição heterogênea de probabilidades de


transição.

sentadas por objetos retangulares dispostos sequencialmente na horizontal (ao longo


do tempo). A altura da nota é definida pela posição vertical que o retângulo ocupa
e sua duração é definida pelo comprimento do retângulo.

Figura 5.9: Melodia final em uma visualização “piano roll”.

Na Figura 5.10 apresenta-se a melodia resultante em uma visualização “piano


roll ” evidenciando-se algumas regiões da mesma com propriedades particulares.
Pode-se perceber que a utilização de MPGSM introduz as nuances objetivadas na
forma global da música.

Figura 5.10: Melodia final em uma visualização “piano roll”, na qual pode-se iden-
tificar regiões melódicas com caracterı́sticas particulares.
88

6 CONCLUSÃO

6.1 Sı́ntese do trabalho

O objetivo principal deste trabalho foi a concepção e implementação de um


modelo computacional para sı́ntese melódica estocástica apoiado em uma abor-
dagem emergente de geração de matrizes de probabilidades de transição de es-
tados. Para definir e, posteriormente, implementar tal modelo, foram realizados
estudos de técnicas e conceitos envolvidos em computação musical, sistemas multi-
agentes, emergência e processos estocásticos. Tais estudos foram realizados através
de pesquisas bibliográficas.
O capı́tulo 2 deste trabalho aborda a área da computação musical. Neste capı́tulo,
inicialmente é realizado um breve histórico do desenvolvimento das tecnologias den-
tro do contexto da música. A seguir fala-se sobre a área da computação musical
atualmente, definindo as principais linhas de pesquisas na área e citando alguns
trabalhos relacionados. De forma que o leitor possa familiarizar-se com alguns con-
ceitos inerentes aos fenômenos sonoros e à teoria musical (fundamentais para a total
compreensão do trabalho), tais conceitos são indroduzidos neste capı́tulo. Por fim,
aborda-se a composição musical algorı́tmica, introduzindo os principais conceitos
envolvidos e discorrendo sobre os sistemas de composição, os quais são classificados
em relação a três aspectos distintos: objetivo, tipo de material processado e modelo
algorı́tmico utilizado. Sendo que cada uma dessas classificações são detalhadas.
No capı́tulo 3 deste trabalho abordamos os sistemas multiagentes. Nele, procu-
ramos definir os principais conceitos envolvidos na utilização e no desenvolvimento
de SMA. Nas seções que compõe tal capı́tulo são relacionados os principais elemen-
tos constituintes de um SMA: o ambiente, o agente, a comunicação e a coordenação.
Por fim, este capı́tulo aborda conceitos relacionados a fenômenos emergentes.
No capı́tulo 4 deste trabalho, é apresentado ao leitor o modelo algorı́tmico de
composição cujas concepção e implementação são os objetivos deste trabalho. Ini-
cialmente, são introduzidos os aspectos gerais inerentes ao modelo proposto. Em
seguida apresenta-se a estrutura global do modelo, a qual está dividida em três
89

camadas com funções distintas: camada de geração emergente de matrizes de prob-


abilidades de transição, camada de definição de modelos probabilı́sticos para geração
de segmentos melódicos e camada de sı́ntese melódica estocástica. Sendo que, nas
seções que constituem este capı́tulo, as estruturas e os processos inerentes a cada
uma das camadas são detalhados.

6.2 Resultados e contribuições


A implementação do modelo proposto neste trabalho mostrou-se satisfatoria-
mente funcional em relação aos objetivos almejados. Além disso, após alguns testes,
revelou-se uma ferramenta poderosa para auxiliar o compositor em seus processos
composicionais.
Em relação às classificações discutidas na seção 2.4 deste documento (página 29),
o modelo aqui proposto pode ser classificado da seguinte forma:

Quanto ao objetivo: O objetivo deste sistema composicional não é simular os


processos envolvidos na criatividade humana, da mesma forma que não almeja
a composição de melodias finalizadas. O modelo aqui proposto tem como
objetivo atuar como um auxiliar no processo de composição gerando seqüências
melódicas que podem ser posteriormente alteradas.

Quanto ao tipo de material processado: O modelo proposto neste trabalho


processa fundamentalmente informações abstratas. Tais informações incluem:
parâmetros e definições espaciais (utilizadas para gerar os ambientes multi-
agentes da primeira camada), dados estatı́sticos em matrizes de probabili-
dades de transição e representações de aspectos do som musical (alturas e
durações). Todas as entradas, fluxos intermediários e saı́das de informação
são informações não sonoras.

Quanto ao modelo algorı́tmico utilizado: Quanto ao modelo algorı́tmico uti-


lizado, a geração da melodia final é baseada totalmente num modelo algorı́tmico
estocástico. Todavia tal processo é alimentado por matrizes de probabilidades
de transição geradas por uma abordagem emergente em ambientes multia-
gentes. O macro-modelo utiliza dois modelos algorı́tmicos distintos, desta
forma, pode ser considerado hı́brido.

Em relação à classificação proposta po (WOOLLER et al., 2005) e comentada na


introdução deste trabalho (página 14), o modelo aqui proposto reside, conceitual-
mente, na intersecção de mais de uma das categorias definidas. O modelo global
possui caracterı́sticas criativas/procedurais. Todavia, a geração de matrizes de prob-
abilidades de transição de estados (processo fundamental de todo o sistema), possui
caracterı́sticas emergentes e Interativas/Comportamentais.
90

Para com o compositor (e seu processo composicional), a implementação do


modelo proposto neste trabalho oferece três contribuições principais:

• A melodia final é o resultado da organização de elementos musicais (alturas e


durações) em função de espaços probabilı́sticos que são gerados de forma emer-
gente pela interação de agentes. O compositor, inicialmente, define os ambi-
entes nos quais ocorrerão tais interações. Na definição dos ambientes, o com-
positor informa parâmetros espaciais que definirão as dimensões do ambiente.
Além disso, o compositor também define o número de agentes que irão interagir
nos ambientes, bem como as restrições de interação entre tais agentes e a dis-
tribuição de pontos-alvo ao longo dos ambientes. Estas definições paramétricas
influenciarão drasticamente a configuração das matrizes de probabilidades de
transição geradas na interação dos agentes. Assim, transitivamente , o aspecto
geral de cada ambiente definido pelo compositor, influencia o aspecto final da
melodia resultante. Ou seja, o compositor não interage com informações do
contexto musical na primeira estapa do processo de composição, mas sim com
informações relativas a noções espaciais e noções de interação entre agentes
(com objetivos e restrições definidas pelo compositor). Tendo isto em mente,
a ferramenta, além de oferecer material melódico que pode ser aproveitado
pelo compositor das mais diversas formas, representa também um ambiente
lúdico que instiga o processo criativo do compositor. Desta forma a própria
interação do compositor com o ambiente altera sua relação com a obra musical
a ser composta (MANZOLLI, 1996).

• Tendo-se em mente que um mesmo modelo estocástico tem a capacidade de


originar um número muito elevado de composições musicais completamente
diferentes (BEHRENDS, 1999), a partir de uma mesma parametrização da
ferramenta aqui proposta, é possı́vel gerar muitas composições melódicas dis-
tintas.

• A implementação do modelo composicional proposto neste trabalho gera a


melodia final em formato de partitura, armazenada em um arquivo MIDI.
Desta forma, toda a melodia gerada pela ferramente pode ser facilmente anal-
isada e alterada da forma que for conveniente ao compositor. Possibilitando
inclusive, desta forma, que trechos de melodias geradas pela ferramenta sejam
reutilizados em outras composições (não geradas pela ferramenta).

Em relação à contribuições deste trabalho na àrea da Computação Musical e,


conseqüentemente, da Ciência da Computação e da Música, pode-se citar:

• A concepção e a implementação de um modelo de geração emergente de ma-


trizes de probabilidades de transição, baseado na interação entre agentes em
91

ambientes multiagentes.

• A concepção e a implementação dos próprios ambientes multiagentes cita-


dos acima. O que subentende a modelagem da estrutura dos ambientes e a
definição (estrutural e comportamental) dos agentes.

• A introdução do conceito de MPGSM nos processos de sı́ntese musical es-


tocástica, oferecendo, desta forma, um mecanismo simples para contornar o
problema da monotonia (OLIVEIRA, 2003) que acomete as abordagen com-
posicionais estocásticas, em geral.

• A concepção e implementação de um modelo que gera melodias musicais aten-


tando para a forma das mesmas em três nı́veis distintos:

Forma global (macro-forma): No modelo proposto, a forma global da


melodia é definida (“desenhada”) em função da distribuição de MPGSM
ao longo do processo de sı́ntese.
Forma intermediária: A forma intermediária diz respeito às regiões melódicas
definidas por um MPGSM dentro do processo de sı́ntese.
Forma local (micro-forma): A forma local diz respeito à cada uma das
notas geradas no processo de sı́ntese.

No modelo proposto, a forma global tem ascendência sobre a forma intermediária,


e esta, por sua vez, tem ascendência sobre a forma local. Assim, as formas locais são
definidas em função das formas intermediárias, as quais, por sua vez, são definidas
em função da forma global. Devido à priorização do design global da melodia,
este modelo abarca a visão de Xenakis sobre a música contemporânea (OLIVEIRA,
2003).

6.3 Perspectivas e trabalhos futuros


Para os trabalhos futuros que visem o aperfeiçoamento do modelo proposto neste
trabalho, evidenciamos as seguintes sugestões:

• Testar a utilização de outros modelos de interação nos ambientes multiagentes


da primeira camada do modelo (camada de geração emergente de matrizes
de probabilidades de transição de estados). Os modelos alternativos de in-
teração testados devem objetivar um aumento do fator “imprevisibilidade” na
movimentação dos agentes e, conseqüentemente, no comportamento global do
ambiente. Um dos modelos que poderiam ser testados é a abordagem “presa-
predador” utilizando algoritmos de flocking.
92

• Conceber e implementar um agente “observador” para atuar sobre os ambi-


entes de geração emergente de matrizes de probabilidades de transição de esta-
dos. Tal agente teria a função de cessar as interações em tais ambientes assim
que fosse alcançadas certas propriedades desejáveis (a serem definidas). Ou
seja, este agente representaria o papel do observador no contexto do fenômeno
emergente que ocorre em tais ambientes. A introdução de tal agente poderia
eliminar a necessidade de intervenção do usuário na determinação do momento
de parada das interações. A utilização de tal agente poderia ser oferecida como
uma funcionalidade opcional, ou seja, o usuário poderia determinar se quer
decidir quando as interações devem cessar ou delegar tal decisão ao agente
observador.

• Testar a utilização de cadeias de Markov de ordens mais elevadas no processo


de sı́ntese melódica estocástica. A utilização de cadeias de Makov de ordens
mais elevadas pode vir a agregar maior coerência musical (OLIVEIRA, 2003)
na melodia final obtida. Para que seja possı́vel utilizar cadeias de Markov
de ordens mais elevadas, as matrizes de transição de estados utilizadas para
gerá-las precisariam ser reestruturadas em função da quandidade de estados
passados que devem prever. Visto que os ambientes multiagentes que geram
tais matrizes têm sua estrutura lógica definida em função da estrutura de tais
matrizes, a própria estrutura dos ambientes deve ser modificada para atender
aos novos requisitos.

Tomando como exemplo a cadeia de Markov que dá origem à sucessão de


alturas no processo de sı́ntese melódica do modelo proposto neste trabalho,
temos que:

– Tal cadeia de Markov é de primeira ordem, desta forma, as matrizes de


probabilidades de transição de alturas só precisam descrever as proba-
bilidades de transição a partir de uma única altura. Considerando as
transições a partir de cada um dos elementos do espaço de estados que
define o conjunto de alturas considerado, temos matrizes quadradas, cujas
dimensões são 12 × 12.

– Se fosse utilizada uma cadeia de Markov de segunda ordem, por exemplo,


as matrizes de probabilidades de transição de alturas deveriam considerar
as duas últimas alturas geradas. Desta forma, considerando as transições
a partir de cada combinação de dois elementos do espaço de estados
que define o conjunto de alturas considerado, terı́amos matrizes cujas
dimensões seriam 122 × 12, ou seja, 144 × 12. Para gerar tais matrizes
a partir do ambientes multiagente utilizado neste modelo, a estrutura
93

lógica deste ambiente deveria ser reformulada em função destas novas


dimensões da matriz.

• Testar abordagens que automatizem a geração dos MPGSM, de forma que o


usuário não necessite intervir no processo (como é feito atualmente). Esta au-
tomatização pode ser implementada através de abordagens heurı́sticas definidas
em função de métricas qualitativas parametrizadas, por exemplo. Tal autom-
atização poderia ser oferecida como uma funcionalidade opcional, permitindo
que o usuário decida se quer definir tais modelos “manualmente” ou delegar
esta função ao mecanismo implementado.

• Testar abordagens alternativas à utilização do “ciclo de utilidade” do MPGSM


no processo de sı́ntese melódica estocástica. Estas abordagens deveriam preocupar-
se em definir o quanto cada MPGSM pode/deve colaborar na construção da
melodia final.

• Testar abordagens alternativas ao mecanismo, utilizado durante o processo de


sı́ntese melódica estocástica, que regerencia a sucessão de MPGSM. A definição
desta sucessão é importante porque, se cada MPGSM define a forma de um seg-
mento melódico da melodia final (forma intermediária), a sucessão de MPGSM
define o comportamento global (forma global) da melodia. A sucessão de
MPGSM dentro do processo de sı́ntese poderia ser definida através de aborda-
gens heurı́sticas ou ainda evolutivas, por exemplo. Na abordagem heurı́stica,
poderiam ser utilizadas métricas que visem encontrar e melhor distribuição
de MPGSM ao longo do processo de sı́ntese geral. Na abordagem evolutiva,
as diversas distribuições possı́veis de MPGSM poderiam ser modelados como
cromossomos, os quais poderiam ser submetidos a uma função de fitness que
avaliasse tais distribuições.

• Testar a utilização de uma interface gráfica no processo de definição das


sucessões de MPGSM e da própria contribuição dos mesmos na melodia fi-
nal. Esta interface poderia representar os MPGSM como objetos gráficos, os
quais poderiam ser manipulados pelo usuário afim de construir a “provável
forma global” da música. Nesta interface, as dimensões dos objetos gráficos
que representariam os MPGSM poderiam estar relacionadas a contribuição
do MPGSM em questão na melodia final. As dimensões do objeto gráfico
poderiam estar ligadas a um número mı́nimo e/ou máximo de notas com que
o mesmo irá contribuir. A justaposição de tais objetos poderiam definir a
sucessão dos MPGSM no processo de sı́ntese estocástica. Esta interface opor-
tunizaria uma experiência mais intuitiva ao usuário dentro do processo de
construção da forma melódica global.
94

Figura 6.1: Exemplo: objeto gráfico que representaria um MPGSM e , abaixo, a


justaposição desses objetos gráficos (3 distintos) que define (“desenha”) a forma
global da melodia final.

• Conceber e implementar uma camada de “refinamento estético” no modelo


global. Esta camada estaria acima da camada de sı́ntese melódica estocástica
e seria alimentada por um conjunto de melodias geradas por esta última. Em
tal camada, poderia ser utilizada uma abordagem evolutiva na qual o con-
junto de melodias geradas poderiam ser mapeadas em cromossomos. Sobre
tais cromossomos poderia ser aplicada uma função de fitness que avaliaria
a população em função de métricas parametrizadas. Este processo geraria,
a partir das melodias iniciais, a melodia mais adaptada à função de fitness
definida.
95

REFERÊNCIAS

AEKEN, F.; ALVARES, L. Synthesising Applause Using Multi-Agent Systems. 3rd


Ibero-American Workshop on DAI & MAS, p.123–135, 2000.

ALVARES, L. O.; SICHMAN, J. S. Introdução aos Sistemas Multiagentes. XVII


Congresso da SBC, Brası́lia, 2-8 agosto 1997, 1997.

ANTENEODO, C. Processos Estocásticos. V Escola do CBPF Rio de Janeiro,


de 5-16 de julho 2004, 2004.

BARBOSA, l. M. Edição Digital de Som: uma Abordagem aos Fundamentos da


Escultura Sonora Orientada para Criadores. Universidade Católica Portuguesa
- Escola das Artes - Som e imagem, 1999.

BEHRENDS, E. Música: Estrutura e Acaso. Colóquio/Ciencias, n.24, p.17–24,


1999.

BITONDI, M. G. A Estruturação Melódica em Quatro Peças Contem-


porâneas. 2006. Dissertação (Mestrado em Ciência da Computação) — Univer-
sidade estadual paulista Júlio de Mesquita Filho - UNESP.

BONABEAU, E.; DESSALES, J.-L.; GRUMBACH, A. Characterizing Emergent


Phenomena (1): A Critical Review. Revue Internationale de Systéémique,
n.9, p.327–346, 1995.

BONABEAU, E.; DESSALES, J.-L.; GRUMBACH, A. Characterizing Emergent


Phenomena (2): A Critical Review. Revue Internationale de Systéémique,
n.9, p.347–371, 1995.

BORDINI, R. H.; VIEIRA, R.; MOREIRA, l. F. Fundamentos de Sistemas Multia-


gentes. Jornada de Atualização em Informática, v.2, p.3–44, 2001.

BROOKS, R. A. A Robust Layered Control System for a Mobile Robot. IEEE -


Journal of Robotics and Automation, v.2, n.1, p.14–23, 1986.
96

BROOKS, R. A. Elephants Don’t Play Chess. Robotics and Autonomous Sys-


tems, v.6, p.3–15, 1990.

BRYAN-KINNS, N. Daisyphone: the Design and Impact of a Novel Environmentfor


Remote Group Music Improvisation. ACM Symposium onDesigning Interac-
tive Systems, p..135–144, 2004.

BURRASTON, D.; EDMONDS, E. Cellular Automata in Generative Electronic


Music and Sonic Art: a Historical and Technical Review. Digital Creativity,
v.16, p.165–185, 2005.

CARIANI, P. Emergence and Artificial Life. In: ARTIFICIAL LIFE II, 2001.
Anais. . . [S.l.: s.n.], 2001.

CORKILL, D. D. Blackboard Systems. AI Expert, v.6, n.9, 1991.

CRUZ, M. A. S. Técnicas de Computação Sônica Aplicadas ao Design de


Software Musical. 2001. Dissertação (Mestrado em Ciência da Computação) —
Universidade Estadual de Campinas.

DESSALLES, J. L.; GALAM, S.; PHAN, D. Emergence in Multi-agent Systems.


Cognitive Hierarchy, Detection, and Complexity Reduction, part ii : Endogenous
Tags. , p.147–161, 2005.

EMMECHE, C. Defining Life, Explaining Emergence. Princeton History of Sci-


ence Workshop, 1997.

FARIA, R. R. A. Aplicação de Wavelets na Análise de Gestos Musicais


em Timbres de Instrumentos Acústicos Tradicionais. 1997. Dissertação
(Mestrado em Ciência da Computação) — Escola Politécnica da Universidade de
São Paulo.

FERBER, J. Multi-Agent Systems : an Introduction to Distributed Artificial


Intelligence. [S.l.]: Addison-Wesley, 1999.

FERNEDA, E.; COSTA, E. B.; ALMEIDA, H. O. d.; RODRIGUES, D. G.;


ALMEIDA, E. S. d. A Web-based Cooperative E-Learning Environment for Mu-
sical Harmony Domain. IASTED International Conference on Web-Based
Education, n.3, p.43–47, 2004.

GARCIA, A. C. B.; SICHMAN, J. S. Agentes e Sistemas Multiagentes. , 2005.

GARDNER, H. A Nova Ciência de Mente. 2.ed. [S.l.]: EDUSP, 1996.


97

GOHN, D. M. A Tecnologia na Música. XXIV Congresso Brasileiro da Comu-


nicação, 2001.

IAZZETTA, F. Interação, Interfaces e Instrumentos em Música Eletroacústica.


Workshop Brasileiro de Fatores Humanos em Sistemas Computacionais,
Gramado (Brazil), v.1, p.121–130, 1998.

JUCHEM, M.; BASTOS, R. M. Engenharia de Sistemas Multiagentes: Uma


Investigação sobre o Estado da Arte. [S.l.]: Faculdade de Informática - PUCRS,
2001.

LAVRY, D. Sampling Theory For Digital Audio. , 2004.

LEITE, V. D. Musicians and Movements That Initiated Electroacoustics in Brazil.


VII Simpósio Brasileiro de Computação Musical, 2000.

LOUREIRO, M. A.; PAULA, H. B. d. Timbre de um Instrumento Musical: Carac-


terização e Representação. Per Musi - Revista acadêmica de música (UFMG),
n.14, p.57–81, 2006.

LUCENA, P. Semanticagent, Uma Plataforma para Desenvolvimento de


Agentes Inteligentes. 2003. Dissertação (Mestrado em Ciência da Computação)
— Instituto de Ciências Matemáticas e de Computação - ICMC - USP.

MANOUSAKIS, S. Musical L-Systems. 2006. Dissertação (Mestrado em Ciência


da Computação) — The Royal Conservatory, The Hague.

MANZOLLI, J. Auto-Organização e Criatividade Sonora. In: UNESP (Ed.). En-


contros com as Ciências Cognitivas. 1.ed. [S.l.: s.n.], 1996. v.1, p.12–20.

MEZENCIO, R. Implementação do Método de Campos Potenciais para


Navegação de Robôs Móveis Baseada em Computação Reconfiguráve.
2002. Dissertação (Mestrado em Ciência da Computação) — Departamente de
Ciências de computação e estatı́stica - Instituto de Ciências matemáticas e de com-
putação - universidade de São Paulo.

MILETTO, E. M.; COSTALONGA, L. L.; FLORES, L. V.; FRITSCH, E. F.; PI-


MENTA, M. S.; VICARI, R. M. Introdução à Computação Musical. IV Congresso
Brasileiro de Computação, 2004.

MIRANDA, E. R.; BROUSE, A.; BOSKAMP, B.; MULLANEY, H. Plymouth


Brain-Computer Music Interface Project: Intelligent Assistive Technology for Music-
Making. Proceedings of the International Computer Music Conference,
Barcelona (Spain), 2005.
98

MOORE, F. R. Dreams of Computer Music : Then and Now. Computer Music


Journal, v.20, n.1, p.25–41, 1996.

MOORE, F. R. M. Elements of Computer Music. [S.l.]: Prentice Hall, 1990.

MORONI, A.; MANZOLLI, J.; VON ZUBEN, F.; GUDWIN, R. Vox Populi: an
Interactive Evolutionary System for Algorithmic Music Composition. Leonardo
Music Journal, v.10, p.49–54, 2000.

MOTTA, P. As fronteiras Entre o Acaso e o Determinismo na


Estética Composicional da Música Erudita Contemporânea. Disponı́vel em:
<http://www.artnet.com.br/pmotta/0sumintr.htm>.

OLFATI-SABER, R. Flocking for Multi-Agent Dynamic Systems: Algorithms and


Theory. IEEE Transactions on Automatic Control, 2006.

OLIVEIRA, L. F. d. As Contribuições da Ciência Cognitiva à Composição


Musical. 2003. Dissertação (Mestrado em Ciência da Computação) — Faculdade
de Filosofia e Ciências da Universidade Estadual Paulista Júlio de Mesquita Filho.

PARAISO, E. C. Proposta de um Ambiente Multi-agente para Monitoração


e Controle de Processos Industriais. 1997. Dissertação (Mestrado em Ciência
da Computação) — Cefet-PR.

PARUNAK, H. V. D.; BRUECKNER, S. Entropy and Self-Organization in Multi-


Agent Systems. In: INTERNATIONAL CONFERENCE ON AUTONOMOUS
AGENTS, 2001, Montreal, Canada. Proceedings. . . ACM Press, 2001. p.124–130.

PUCHKIN, V. N. Heurı́stica: a Ciência do Pensamento Criador. 2.ed. [S.l.]: Zahar,


1969.

RAO, A. S.; GEORGEFF, M. P. Bdi Agents: From Theory to Practice. Pro-


ceedings of the First International Conference on Multi-Agent Systems
(ICMAS-95), 1995.

RATTON, M. Tecnologia dos Instrumentos Eletrônicos : Sı́ntese Aditiva.


Disponı́vel em: <http://www.music-center.com.br>. Acesso em: Setembro 2007.

ROADS, C. The Computer Music Tutorial. [S.l.]: The MIT Press, 1996.

ROWE, R. Machine Learning and Composing: Making Sense of Music with


Cooperating Real-Time Agents. 1991. Dissertação (Mestrado em Ciência da Com-
putação) — MIT Media Lab.
99

RUSSELL, S.; NORVIG, P. Artificial Intelligence - a Modern Approach. 2.ed.


[S.l.]: Prentice Hall, 2003.

SALVETTI, D. D.; BARBOSA, L. M. Algoritmos. 2.ed. [S.l.]: Pearson - Makron


Books, 1997.

SCHOENBERG, A. Harmonia. [S.l.]: Unesp, 1999.

SINKOVITS, D. Flocking Behavior. , 2006.

TORRES, M. H. C. Proceedings of the 11th Brazilian Symposium on Computer


Music. 11th Brazilian Symposium on Computer Music, 2007.

TRAJANO, E.; GUIGUE, D.; FERNEDA, E. Automatic segmentation of musical


flows: a rational agents approach. Brazilian Symposium on Computer Music,
n.7, 2000.

UEDA, L. K. Composição e Performance Musical Utilizando Agentes


Móveis. 2004. Dissertação (Mestrado em Ciência da Computação) — Instituto de
Matemática e Estatı́stica da Universidade de São Paulo.

WOOLDRIDGE, M. An Introdution to Multiagent Systems. 2.ed. [S.l.]: Wiley,


2002.

WOOLLER, R.; BROWN, A. R.; MIRANDA, E.; BERRY, R.; DIEDERICH, J. A


Framework for Comparison Algorithmic Music Systems. Symposium on Gener-
ative Arts Practice, 2005.

WORTH, P.; STEPNEY, S. Growing Music: Musical Interpretations of L-Systems.


EvoMUSART Workshop, 2005.

XENAKIS, I. Formalized Music: Thought and Mathematics in Music. revised.ed.


[S.l.]: Pendragon, 1992.

Você também pode gostar