• Nenhum resultado encontrado

Sistemas do tipo HPP em Três Dimensões usando uma Arquitetura Multi-Agentes

N/A
N/A
Protected

Academic year: 2021

Share "Sistemas do tipo HPP em Três Dimensões usando uma Arquitetura Multi-Agentes"

Copied!
14
0
0

Texto

(1)

Sistemas do tipo HPP em Três Dimensões usando uma

Arquitetura Multi-Agentes

Luís C. da Costa, Gilson A. Giraldi Laboratório Nacional de Computação Científica

Coordenação de Ciência da Computação

Laboratório de Realidade Virtual e Visualização Científica 25.651-075, Petrópolis, Brasil

{lcosta,gilson}@lncc.br

Abstract. Neste artigo apresentamos e analisamos uma implementação 3D do mo-delo HPP, baseada em um sistema multi-agentes. O HPP é um tipo particular de autômato da classe dosLattice Gas Cellular Automata (LGCA). Os LGCA’s cons-tituem uma sub-classe dos autômatos celulares, os quais são sistemas discretos no tempo e no espaço, cuja evolução é baseada em regras simples e locais. A imple-mentação foi desenvolvida no ambiente NetLogo-3D, uma ferramenta computacio-nal para simulação de sistemas multi-agentes em três dimensões. Apresentamos e analisamos os resultados das simulações no ambiente NetLogo, considerando de-sempenho computacional e recursos para implementação, simulação e visualização de resultados oferecidos pelo NetLogo.

Autômatos Celulares, LGCA, HPP, Agentes, NetLogo

In this paper we present a multi-agent implementation of the HPP-3D model. The HPP model is a kind of Lattice Gas Cellular Automaton (LGCA) which is a sub-class of the cellular automata models. The LGCA’s are discrete systems based on point par-ticles that move on a lattice, according to suitable and simple rules in order to mimic a particle dynamics. We have implemented the HPP-3D in the NetLogo-3D, which is a computational environment for development and simulation of multi-agent systems. In the experimental results we focus on computational performance and facilities for imple-mentation, simulation and visualization available in the NetLogo-3D system.

Cellular Automata, Lattice Gas Cellular Automata, HPP, Agents, NetLogo

1. Introdução

O estudo de sistemas do tipo Lattice Gas Cellular Automaton (LGCA) data dos anos 70, e seu potencial vem sendo explorado para a modelagem de sistemas multi-fase (água-gas, por exemplo), meios porosos e computação gráfica, dentre outros [22, 20, 33, 2]. A teoria dos LGCA’s tem sua inspiração em modelos de Autômatos Celulares [33]. Os modelos em questão consistem de um certo número de partículas que interagem entre si em uma malha (lattice). O comportamento de cada partícula é governado por um pequeno con-junto de regras simples e locais e seu movimento está restrito às direções da malha. Desta forma, pode-se executar com eficiência a simulação computacional do sistema, o qual, em

(2)

escala microscópica, representa uma versão simplificada de um sistema de partículas new-toniano [20, 33]. Contudo, em escala macroscópica, podem emergir padrões teoricamente sugestivos [22, 20, 17]. De fato, pode-se mostrar via métodos multi-escala que, apesar das partículas serem individualmente governadas por regras simples, suas interações podem produzir padrões de comportamento de grupo altamente dinâmicos e complexos [26, 20]. O modelo HPP foi o primeiro modelo da classe LGCA proposto para modelar partículas de gas [25]. Contudo, sabe-se que seu potencial para simular sistemas com realismo físico é limitado em função da malha utilizada. Uma vez que o movimento das partículas está restrito às direções das arestas da malha, observa-se que, para malhas re-tangulares os invariantes associados às direções de movimento não apresentam a isotropia necessária para permitir obter comportamentos mais gerais de um sistema de partículas [25, 33]. A mudança para uma malha triangular regular reduz este problema (ao menos para o caso 2D), gerando o modelo FHP [21]. Extensões para 3D são mais eficientes, do ponto de vista teórico, usando-se o modelo das Lattices de Boltzmann [18]. Apesar destas limitações, o HPP é interessante pela sua simplicidade e por conter os ingredientes básicos dos LGCA’s. Estas são as motivações para sua escolha neste trabalho.

Sistemas do tipo LGCA’s são propícios para serem modelados via técnicas de agentes, uma vez que suas entidades básicas (partículas, no caso) podem ser descritas como agentes, cuja representações internas são suas posições e velocidades, e as regras de interação fornecem os meios para modificar estas representações. Esta abordagem, a qual pode ser vista como um caso particular da chamada modelagem baseada em agentes [30, 1, 12, 28], tem como vantagens a simplicidade e o baixo custo computacional, uma vez que comportamentos complexos podem ser obtidos sem a necessidade de resolver intrincados sistemas de equações diferencias parciais [1]. Além da física, técnicas deste tipo vêm sendo aplicadas para modelar sistemas em biologia, economia, sociologia e psicologia [31, 2], bem como no estudo de sistemas complexos [27].

Podemos pensar em agentes como entidades de software autônomas, ou autômatos finitos, que interagem em um ambiente compartilhado, alterando seu estado [28]. Estes agentes possuem representação interna dos dados (memória) e meios para modificar estas representações. Agentes mais gerais podem possuir também meios para modificar seu ambiente bem como algum tipo de inteligência [28]. No caso do HPP tradicional, não há modificação do ambiente externo e os agentes não possuem inteligência.

Neste trabalho, apresentamos uma implementação de um modelo HPP tridimensi-onal usando uma plataforma multi-agentes. Esta implementação está disponível no servi-dor Web do NetLogo, o que é um reconhecimento da originalidade e qualidade da mesma [5]. Analogamente ao caso 2D, no HPP-3D precisamos definir uma malha retangular 3D, cujas arestas definem as direções de movimento das partículas. O sistema de partí-culas evolui de forma discreta, tanto no espaço quanto no tempo. Não existe um controle central, ou seja, uma partícula localizada na posição (i, j, k), no instante de tempo t, se desloca para uma posição vizinha (nó da malha), no instante t+1 em função do seu estado atual (posição e velocidade ) e de suas regras de interação com outras partículas. Den-tre os ambientes de programação especificamente projetados para modelagem baseada em agentes (StarLogo, Microworlds, Swarm, RePast, NetLogo e [13], etc), escolhemos o NetLogo-3D, pela sua simplicidade de programação, suas facilidades para definição de cenários 3D e recursos para visualização [3, 4, 17]. Estas facilidades serão demonstradas

(3)

com especial atenção ao desempenho computacional da aplicação.

O texto que segue está organizado da seguinte forma. A seção 2 apresenta os conceitos básicos do HPP. Em seguida, na seção 3, desenvolvemos uma visão objetiva da modelagem de sistemas multi-agentes. Nas seções 4 e 5 descreveremos as potencialida-des do NetLogo e apresentamos nossa implementação do HPP usando os recursos potencialida-deste software. Em seguida, na seção 6, avaliamos o desempenho computacional da implemen-tação proposta. Finalmente, na seção 7, são apresentadas as conclusões e os trabalhos futuros.

2. Modelo HPP

O modelo HPP foi introduzido por Hardy, Pomeau e De Pazzis [24] e pode ser conside-rado como uma abstração, em escala microscópica, de um sistema de partículas bidimen-sional. Neste modelo, o movimento das partículas está restrito às direções de uma malha retangular, com regras de colisão que procuram imitar a dinâmica de um sistema de partí-culas real, e com um Princípio de Exclusão, segundo o qual pode-se ter no máximo uma partícula incidindo em um nó da malha em uma dada direção da mesma. A Figura 1, mostra um nó da malha e as respectivas direções de incidência na mesma.

A dinâmica no modelo HPP é discreta no tempo e no espaço, podendo ser definida por variáveis Booleanas ni(−→r , t) , i = 0, 1, 2, 3 que descrevem a ocupação das arestas de cada nó−→r da malha a cada instante de tempo t.

Figura 1. Direções incidentes em um nó da malha retangular do HPP: n(0) ’cor verde’, n(1) ’cor marrom’, n(2) ’cor vermelha’ e n(3) ’cor azul’.

Na ausência de colisões, as partículas se movimentam em linha reta ao logo da di-reção e sentido especificado pelo seu vetor velocidade. As Figuras 2.(a),(b) exemplificam esta situação. Nesta figura, representamos uma partícula no instante t, incidente no nó (k, l), na direção n(3), segundo a indexação da Figura 1. Uma vez que não há colisões, no instante seguinte (t + 1), a partícula será incidente no nó (k + 1, l), também na direção n(3). Quando ocorrem colisões, estas seguem as regras representadas nas Figuras 2.(c)-(f). A escolha destas regras é baseada na restrição de conservação do momento linear para sistemas de partículas newtonianos, definido por−→L = P

jmj−→vj, onde mj é a massa da partícula “j” e−→v j sua respectiva velocidade.

Se o sistema é isolado de forças externas e não existe atrito, a segunda Lei de Newton tem como conseqüência a conservação do momento linear [26, 32]. As regras da Figura 2 mantém esta propriedade, uma vez que as configurações antes/após colisão possuem momento linear nulo.

No caso 3D, temos uma malha regular com N × N × N células cúbicas. Assim como no caso 2D as direções de movimento das partículas estão restritas às arestas da

(4)

Figura 2. Regras no modelo HPP. (a) No instante t uma partícula incide sobre o nó (k, l), na direção

i = 3da malha. (b) Configuração no instante t + 1. (c)-(d) Colisão na direção horizontal da malha (antes/depois). (e)-(f) Colisão na direção vertical da malha.

malha (Figura 3). Como no caso 2D na ausência de colisões as partículas se movimentam em linha reta ao logo da direção e sentido especificado pelo seu vetor velocidade. Neste caso também, as todas as partículas são idênticas e usa-se o princípio de exclusão.

Figura 3. Célula do HPP-3D com direções de movimento ni, i = 0, 1, ..., 5, para as partículas.

A fim de conservar o momento linear durante cada interação, somente algumas configurações resultarão em colisões com alteração das direções de movimento das par-tículas. Basicamente, quando apenas duas partículas incidem em um mesmo nó, com velocidades opostas, suas velocidades serão desviadas (espalhadas) para uma das dire-ções normais à direção de incidência. Por exemplo, quando exatamente duas partícu-las incidirem nas direções (ni, n[i+3]mod6), em um mesmo nó, suas velocidades podem ser desviadas para as direções (ni+1mod6,ni+4mod6), ou (ni+2mod6,ni+5mod6), como mostra a Figura 4. Em todos os demais casos, não há alteração na direção do movimento das partículas, ou seja, procedemos como se não houvesse colisão. Com isto, após a co-lisão, teremos uma nova configuração também com momento linear nulo. Por razões de simetria, ambas possibilidades são escolhidas aleatoriamente, com igual probabilidade. Assim, a exemplo de outros modelos do tipo LCGA, incluímos um componente aleató-rio no modelo [21]. Este elemento aleatóaleató-rio implica em perda de reversíbilidade para a evolução do sistema. As conseqüências teóricas deste fato foram exploradas em ou-tros modelos, tais como o FHP, gerando comportamentos macroscópicos que reproduzem efeitos de viscosidade [16].

3. Sistemas Multi-Agentes

Sistemas Multi-Agentes (SMA) são sistemas compostos por elementos computacionais, denominados agentes, e que evoluem no espaço e no tempo, interagindo entre si e com o meio [27, 28]. A evolução do sistema ocorre em função de ações que os agentes executam,

(5)

Figura 4. Regras de colisão no modelo HPP-3D. (a) No instante t duas partículas incidem sobre o nó (k, l, m), nas direções n(1) e n(4) da malha. Possíveis Configurações para o instante t + 1: (b) Espalhamento na direção 5 − 2 após colisão na direção horizontal da malha (antes/depois). (c) Espalhamento na direção 3 − 0 após colisão.

em função da sua interação com o meio externo, ou devido transições espontâneas de seus estados.

Os agentes são classificados em cognitivos e reativos. Os agentes cognitivos são os agentes que incorporam recursos de aprendizagem e inteligência artificial. Por outro lado, um agente reativo simples é aquele que seleciona ações com base em seu estado atual e/ou em regras simples de interação com outros agentes [28]. Uma importante aplicação dos SMA’s é o desenvolvimento de modelos discretos para sistemas físicos e sociais [20, 33, 31].

A modelagem baseada em agentes vem se estabelecendo como um importante re-cursos para a análise de sistemas que podem ser descritos de forma reducionista, com dinâmica discreta no tempo e no espaço [1]. Na modelagem tradicional, considera-se um conjunto de variáveis contínuas (pressão e temperatura, por exemplo) e utiliza-se equações diferenciais parciais (EDP’s) para descrever a evolução do sistema, seguindo a metodologia conhecida como top-down [31]. Na modelagem via agentes, segue-se o caminho inverso (bottom-up), ou seja, a partir da descrição microscópica (dos componen-tes elementares do sistema) procura-se obter o comportamento macroscópico [15]. Desta forma, pode-se obter comportamentos complexos sem resolver explicitamente nenhum sistema de equações diferenciais parciais [14, 23]. Uma vez modelado o sistema, pode-se utilizar simulações computacionais para descobrir propriedades do modelo, tendências para comportamentos assintóticos e médias estatísticas [17, 23].

A modelagem baseada em agentes do tipo reativos tem as seguintes vantagens em relação à modelagem baseada em EDP’s: (a) Baixo custo computacional, uma vez que não se resolvem intrincados sistemas de equações diferenciais parciais; (b) Simplicidade, uma vez que as regras de atualização dos agentes são, em geral, simples e locais; (c) Inexistência de um controle centralizado dos agentes, ou seja, cada agente toma suas de-cisões baseado em seu estado interno e na configuração local do sistema [1]. Contudo, em contraste com as equações diferenciais, esta abordagem tem limitações para a definição de parâmetros de controle, e predição teórica de resultados, como ressaltado em [31, 34]. Os SMA’s são particularmente indicados para a modelagem e simulação de soci-edades (pessoas, bactérias, insetos, nações, organizações, etc.) [31]. Cada individuo da população é então representado por um agente, cujo comportamento é programado atra-vés de regras que levam em conta propriedades quantitativas, qualitativas e distribuições de probabilidade relativas ao comportamento dos indivíduos e do meio [31, 28]. O estudo de sistemas complexos é outra área que vem sendo beneficiada com o desenvolvimento dos SMA’s [27].

(6)

Na modelagem baseada em agentes pode-se distinguir 4 etapas: (a) Determinação e descrição das partes elementares do sistema (os agentes); (b) Descrição do meio; por exemplo, um domínio do espaço 2D/3D onde o sistema evolui; (c) Estabelecimento das regras de interação entre os agentes e entre estes e o meio; (d) Implementação/simulação computacional usando sistemas e estruturas de dados convenientes.

Recentemente, vários sistemas computacionais foram propostos com o objetivo de auxiliar na etapa de implementação/simulação (StarLogo, Microworlds, Swarm, RePast e NetLogo, etc. [10, 7, 11, 9, 3]) De maneira geral, estes sistemas oferecem interfa-ces gráficas e uma API para o desenvolvimento de aplicações usando SMA’s e simula-ção/visualização dos resultados. Na seção 4 descrevemos o NetLogo, o sistema usado neste trabalho.

4. NetLogo: Sistema para Simulação Baseada em Agentes

O software NetLogo é um ambiente programável, livre, com bibliotecas próprias, inter-faces e recursos gráficos adequados para simular sistemas multi-agentes [3]. Os usuários podem criar seus próprios modelos usando as facilidades e a documentação do NetLogo. O ambiente vem também com uma biblioteca de exemplos, os quais podem ser usados e modificados. A figura 5 mostra a interface principal do NetLogo, com uma instância de nossa implementação do HPP-3D [4, 5, 17].

Figura 5. A Interface principal do NetLogo-3D e o modelo HPP.

No ambiente gráfico do NetLogo, temos os seguintes componentes básicos para uma aplicação:

1. Controle da Aplicação: Button, Slider, Switch e Chooser. 2. Plot: Saída Gráfica.

3. Monitor: Textos.

A figura 5 mostra os exemplos de algumas destas ferramentas em nossa imple-mentação do HPP-3D. Os controles básicos de nossa aplicação são os seguintes:

(7)

1. Buttons: (a) SETUP: instância a aplicação; (b) EXECUTE: execução do modelo; (c) MOVE TURTLES: permite movimentar partículas usando mouse.

2. Slider: para ajustar o número das partículas. 3. Plot: Saída gráfica.

NetLogo-3D é escrito em Java (versão 1.4.1), usando-se também o JOGL (versão SR1.0) [6], que faz a interface entre o Java e a biblioteca gráfica OpenGL usada para a visualização 3D. O termo “logo” vem do fato da interface de programação do NetLogo ser um dialeto da linguagem Logo, a qual foi desenvolvida por Wallace Feurzeig em 1967, para desenvolvimento de aplicações na área de inteligência artificial [19]. As principais características do Logo - interatividade, modularidade, extensibilidade e flexibilidade de tipos de dados - foram incorporadas na linguagem em função das necessidades das apli-cações alvo.

Na interface de programação do NetLogo os componentes principais são os agen-tes. Neste software, agentes são componentes que podem receber instruções e executar ações. Existem três tipos de agentes no NetLogo: turtles, patches e observers. Tur-tles são agentes que podem se mover pelo mundo, o qual pode ser uma malha (lattice) 2D ou 3D, formada por uma rede de patches. Cada patch é uma célula da malha, pela qual turtles podem se movimentar. Observers não possuem uma localização especifica, ficando responsáveis pelo conhecimento global da configuração dos turtles e patches da aplicação. Existe também o agentset, o qual permite definir um conjunto de agentes, do tipo turtle ou patch. Neste caso, o comportamento dos agentes é especificado de forma global, ou seja, uma vez definida uma propriedade para o agentset, todos os seus turtles ou patches recebem automaticamente aquela propriedade (cor, por exemplo).

Existem commands para especificar ações para os agentes. O usuário pode definir seus próprios commands, via implementação de Procedures. Existem ainda facilidades para criação e manipulação de listas de dados, estáticas ou dinâmicas, tipos de dados, strings e recursos para I/O, além de outras facilidades [3].

5. HPP-

3D

no NetLogo

Nossa implementação do sistema HPP-3D está fundamentada em turtles do tipo arrow, para a especificação das partículas e patches para a definição da malha. Podemos simular um sistema heterogêneo, com vários tipos de agentes. Neste caso, existe um agentset para cada tipo de turtle e um outro agentset para os patches. As regras de colisão são imple-mentadas via Procedures e as propriedades dos turtles (cor e forma) via variáveis internas dos agentes. Na inicialização, as partículas são distribuídas aleatoriamente pela malha, tomando-se o cuidado para atender o princípio de exclusão. Para tornar eficiente a dis-tribuição dos turtles pela malha, montamos uma lista com as arestas disponíveis, usando estruturas disponíveis na API do NetLogo, e escolhemos, de forma aleatória, elementos desta lista até atingir o número de agentes desejados. Este processo está sumarizando no procedimento Initialization, descrito pelo algoritmo 1.

Uma vez distribuídos os agentes pela malha, é iniciada a evolução do sistema, resolvendo-se as colisões e atualizando-se as posições das partículas. No procedimento 2, a função SolveColisions executa as operações para verificar ocorrências de colisões, utilizando as regras do sistema HPP-3D 4 para gerar as novas configuração dos agentes.

(8)

Algoritmo 1 :Initialization(NA) 1: L=Lista de arestas da malha;

2: enquanto (count-arrows<NA) faça

3: escolher aleatoriamente uma aresta τ ∈ L; 4: remover τ de L;

5: count-arrows= count-arrows +1; 6: fim enquanto

[17] descrevemos uma implementação análoga àquela descrita nesta seção, para o HPP-2D. Foi utilizada a mesma estrutura de programação, com turtles do tipo arrow, para representar as partículas e patches para a geração do ambiente 2D [4]. Na seção 6 faremos referência a esta implementação para comparar desempenho entre os casos 2D e 3D.

6. Resultados Experimentais

Nesta seção apresentamos alguns resultados obtidos para sistemas do tipo HPP, descritos na seção 2. As simulações foram desenvolvidas no sistema NetLogo, usando a implemen-tação descrita na seção 5.

Os resultados apresentados a seguir foram obtidos em um computador com pro-cessador Intel Pentium Dual Core 2.16 GHz, 2 GBytes de memória RAM DDR2 667 MHz, placa gráfica NVIDIA Quadro FX 2500M com 512 MBytes de memória RAM DDR3.

Um ponto importante é a evolução do desempenho computacional do sistema quando aumentamos o número de partículas. Usamos como medida o número de fra-mes por segundo gerado pelo sistema. A Tabela 1 mostra o desempenho computacional do sistema, tanto no caso 2D quanto para o 3D.

No. Partículas F P S para 2D F P S para 3D

500 100 33 1000 53 24 1500 37 18 2000 28 14 2500 22 10 3024 18 9

Tabela 1. Desempenho computacional, em frames por segundo (FPS), para a implementação do HPP-2D e do HPP-3D

Como esperado, o desempenho é muito sensível ao aumento do número de par-tículas. Estas taxas de FPS forma tomadas usando-se tempos de relógio, sendo portanto inferiores aos tempos de CPU.

Um aspecto interessante é o custo computacional da atualização do sistema de partículas, sem visualização, ou seja, apenas o tempo de processamento. A Tabela 2 mos-tra estes tempos, para os mesmos sistemas da Tabela 1. Na Tabela 2 o parâmetro N IS significa número de interações por segundo. Comparando os valores destas tabelas ob-servamos que a razão F P S/N IS para os casos 2D estudados é próxima de 0.59. Para o

(9)

Algoritmo 2 :SolveColisions(t) 1: para (i,j,k) ∈ grid faça

2: set ni(i, j, k, t + 1) = 0 , i = 0, 1, 2, 3, 4, 5 3: se n0(i, j + 1, k, t) = 1 e n3(i, j, k, t) = 1 então 4: se random < 0.5 então 5: n1(i, j + 1, k, t + 1) = n0(i, j, k, t); 6: n4(i, j − 1, k, t + 1) = n3(i, j, k, t); 7: n0(i, j, k, t) = 0; 8: n3(i, j, k, t) = 0; 9: senão 10: n2(i, j + 1, k, t + 1) = n0(i, j, k, t); 11: n5(i, j − 1, k, t + 1) = n3(i, j, k, t); 12: n0(i, j, k, t) = 0; 13: n3(i, j, k, t) = 0; 14: fim se 15: fim se

16: se n2(i, j + 1, k, t) = 1 e n5(i, j, k, t) = 1 então 17: se random < 0.5 então 18: n0(i, j + 1, k, t + 1) = n2(i, j, k, t); 19: n3(i, j − 1, k, t + 1) = n5(i, j, k, t); 20: n2(i, j, k, t) = 0; 21: n5(i, j, k, t) = 0; 22: senão 23: n1(i, j + 1, k, t + 1) = n2(i, j, k, t); 24: n4(i, j − 1, k, t + 1) = n5(i, j, k, t); 25: n2(i, j, k, t) = 0; 26: n5(i, j, k, t) = 0; 27: fim se 28: fim se

29: se n1(i, j + 1, k, t) = 1 e n4(i, j, k, t) = 1 então 30: se random < 0.5 então 31: n0(i, j + 1, k, t + 1) = n1(i, j, k, t); 32: n3(i, j − 1, k, t + 1) = n4(i, j, k, t); 33: n1(i, j, k, t) = 0; 34: n4(i, j, k, t) = 0; 35: senão 36: n2(i, j + 1, k, t + 1) = n1(i, j, k, t); 37: n5(i, j − 1, k, t + 1) = n4(i, j, k, t); 38: n1(i, j, k, t) = 0; 39: n4(i, j, k, t) = 0; 40: fim se 41: fim se 42: fim para

(10)

caso 3D observamos que esta razão é próxima de 0.55, segundo os valores das tabelas 1 e 2. Isto indica um crescimento linear do número de ciclos por segundo do sistema quando comparamos o número de F P S com o N IS, sendo este crescimento pouco sensível ao aumento do número de agentes, o que é um indicativo da eficiência da implementação. Isto é interessante em situações onde não estamos interessados em visualizar toda evolu-ção do sistema, mas apenas o resultado final.

Número de Ativos N IS para 2D N IS para 3D

500 168 58 1000 96 47 1500 79 32 2000 58 29 2500 42 20 3024 28 13

Tabela 2. Desempenho computacional, em número de interações por segundo (NIS), para a imple-mentação do HPP-2D e do HPP-3D

Como esperado, os experimentos mostraram que aumentado o tamanho da malha mas mantendo o número de agentes não ocorrem mudanças no desempenho do sistema. É importante ressaltar que existe uma implementação do HPP 2D, disponível na biblioteca de exemplos do NetLogo, a qual utiliza uma malha de patches, cada um deles funcio-nando como uma variável binária que recebe valor 1, quando vazio, e valor 0 quando está preenchido com uma partícula. Neste caso, o desempenho do sistema é bem melhor que aquele descrito na Tabela 2, observando-se uma taxa de média em torno de 150 F P S para os casos descritos na Tabela 1. Isto acontece porque na implementação usando uma malha de patches tem-se um mesmo conjunto de regras para o sistema todo enquanto que em nossa implementação, cada partícula é tratada individualmente, tendo seu próprio conjunto de regras, definido como parte da estrutura do turtle. Assim, simplificamos o processo de diferenciação dos agentes, pois em nosso caso, este processo é definido in-ternamente em cada agente utilizado, enquanto que na implementação usando-se patches, este processo dependerá de variáveis externas, tais como posição, e cor dos patches, o que traz dificuldades para a implementação dos mesmos. Além da flexibilidade para de-finir o comportamento dos agentes, outra vantagem é a facilidade para explorar efeitos de visualização, uma vez que podemos acompanhar a evolução de um único turtle, como demonstrado na Figura 6.a onde vemos o resultado da técnica de traçado de partículas aplicada ao HPP-3D.

O traçado de partículas é uma técnica conhecida em visualização científica, sendo útil para análise de escoamentos não estacionários [29]. Neste caso, as linhas observadas são geradas acompanhando-se o movimento dos agentes e marcando-se as arestas por onde estes passaram. Este técnica costuma ser usada para acompanhar a trajetória de um pequeno conjunto de partículas apenas, pois, do contrário, obtém-se um emaranhado de linhas com pouco valor para a análise do comportamento do sistema. Quando aplicamos esta funcionalidade para um pequeno número de partículas observamos pouca variação no desempenho do sistema, se comparado com a Tabela 2.

Na Tabela 3, podemos observar o efeito do traçado de partículas sobre o desem-penho do sistema. Neste caso, ligamos a esta funcionalidade um número de 6 partículas

(11)

Figura 6. (a) Traçado de partículas mostrando a trajetória de um conjunto de turtles pelo ambiente

3D. (b) Efeito de difusão para o HPP-2D, usando-se 2000 partículas.

do sistema para permitir comparação com a Tabela 2. Observamos pouca mudança no desempenho do sistema.

No. Partículas F P S para 2D F P S para 3D

500 92 32 1000 56 23 1500 37 18 2000 27 13 2500 22 10 3024 18 8

Tabela 3. Desempenho computacional, em frames por segundo (FPS), quando aplicamos a técnica de traçado partículas para seis agentes do sistema.

Outro efeito disponível no NetLogo é a difusão, ou seja, espalhar a cor de um patchpelos seus vizinhos. O usuário pode escolher o tipo de vizinhança (8-conectada ou 4-conectada), especificar tons de cores, bem como especificar a escala de espalhamento. Na Figura 6.b vemos o resultado deste efeito aplicado ao HPP-2D. A Tabela 4 mostra o desempenho computacional do sistema quando utilizamos esta técnica, para os exemplos já utilizados. Este efeito é gerado via um comando do NetLogo denominado diffuse. Este comando somente sobre patches. Assim, uma vez que nossa implementação está baseada em turtles, nossa abordagem foi identificar os patches a partir das posições dos turtles e utilizar estes patches para gerar o efeito visual. Este procedimento é responsável pela queda considerável de desempenho, observada na Tabela 3.

No. de Partículas F P S para 2D F P S para 3D

500 91 32 1000 61 27 1500 43 19 2000 32 16 2500 26 9 3024 22 7

Tabela 4. Desempenho computacional, em frames por segundo (FPS), para a técnica de difusão.

Por fim, demonstramos a utilização do sistema para uma simulação envolvendo um sistema heterogêneo, onde temos 4 tipos de agentes, definidos pelas seguintes regras:

(12)

(1) Agentes que atuam como partículas do HPP-3D tradicional; (2) Admite colisão apenas nas direções x e y com espalhamento seguindo as regras do HPP-2D; (3) Idêntico ao caso anterior, mas admitindo colisões apenas nas direções x e z; (4) Idêntico ao caso (2), com colisões apenas nas direções y e z.

Este tipo de sistema é útil para a simulação de comportamentos sociais, no caso de uma nação formada por várias etnias, por exemplo, bem como para a simulação de fluidos multifasicos [20]. O desempenho computacional, mantendo-se o mesmo número de agentes dos casos anteriores, segue na Tabela 5, onde os sistemas são formados pelos agentes (1)-(4) descritos acima, em iguais proporções. Observamos uma queda média de 4 F P S para o sistema heterogêneo. Isto ocorre porque o conjunto de regras ficou mais complexo, aumentando o custo computacional para a evolução dos agentes.

No. Partículas F P S para 3D

500 28 1000 17 1500 13 2000 13 2500 6 3024 6

Tabela 5. Desempenho computacional, em frames por segundo (FPS), para sistemas heterogêneos formado por quatro tipos de agentes em proporções iguais (25% para cada tipo).

7. Conclusões e Trabalhos Futuros

Neste trabalho apresentamos uma implementação do modelo HPP-3D, baseada em um sistema multi-agentes. A implementação foi desenvolvida no ambiente NetLogo-3D, uma ferramenta computacional livre com facilidades para implementação e simulação de sistemas multi-agentes em três dimensões. Analisamos os resultados das simulações no ambiente NetLogo, considerando desempenho computacional e recursos para simulação e visualização de resultados. Os resultados obtidos foram satisfatórios, demonstrando o potencial do NetLogo. Como trabalhos futuros, pretendemos explorar as facilidades para programação distribuída do sistema NetLogo [8] na tentativa de melhorar o desempenho do HPP-3D.

8. Agradecimentos

Gostaríamos de agradecer ao CNPq e o PCI-LNCC pelo apoio financeiro para este traba-lho. Agradecer também o apoio do grupo de computação distribuída do LNCC, chefiado pelo Professor Bruno Schulze, além de toda a ajuda prestada pelo Forum do Grupo Ne-tLogo.

Referências

[1] Agent-Based Modeling vs. Equation-Based Modeling: A Case Study and Users’ Guide., volume 1534 of Lecture Notes in Computer Science. Springer, 1998.

[2] A new kind of science. Wolfram Media Inc., Champaign, Ilinois, US, United States, 2002. [3] NetLogo Software, http://ccl.northwestern.edu/netlogo, 2005.

(13)

[4] HPP-2D em NetLogo, http://ccl.northwestern.edu/netlogo/models/community/Example-HPP-mod, 2006.

[5] HPP-3D em NetLogo, http://ccl.northwestern.edu/netlogo/models/community/Example-HPP-3D, 2007.

[6] JOGL - Java bindings for OpenGL, https://jogl.dev.java.net, 2007. [7] MicroWorlds Robotics System, http://www.microworlds.com, 2007.

[8] Participatory Simulations Project, http://ccl.northwestern.edu/partsims.html, 2007. [9] RePast Software, http://repast.sourceforge.net, 2007.

[10] StarLogo on the Web, http://education.mit.edu/starlogo, 2007.

[11] Swarm Dinamics System, http://www.swarm.org/wiki/Main_Page, 2007.

[12] L. Alvares and J. Sichman. Introdução aos sistemas multiagentes. Jornada de Atualização em Informática, 17(16):1–38, 1997.

[13] R. Axelrod. The Complexity of Cooperation. Princeton University Press, 1997.

[14] P. Calvin, D. d’Humières, P. Lallemand, and Y. Pomeau. Cellula automata for hydrody-namics with free boundaries in two and three dimensions. C.R. Acad. Sci. Paris, II, 303:1169, 1986. Reprinted in Lattice Gas Methods for Partial Differential Equati-ons, ed. G. Doolen, p.415, Addison-Wesley, 1990.

[15] B. Chopard and M. Droz. Cellular Automata Modeling of Physical Systems. Cambridge University Press, 1998.

[16] B. Chopard, A. Dupuis, A. Masselot, and P. Luthi. Cellular automata and lattice boltz-mann techniques: An approach to model and simulate complex systems. Advances in complex systems, 5(2):1–144, 2002. special issue on: Applications of Cellular Automata in Complex Systems.

[17] L. C. da Costa, G. A. Giraldi, and P. S. Rodrigues. Aplicação de modelos es-tocásticos para análise de sistemas do tipo hpp. In Revista Eletrônica de Iniciação Científica da Sociedade Brasileira de Computação, pages 32–52. www.sbc.org.br/index.php?language=1&subject=101, 2007.

[18] D. d’Humières and P. Lallemand. Lattice gas models for 3d hydrodynamics. Europhys. Lett., 2:291, 1986.

[19] W. Feurzeig, S. Papert, M. Bloom, R. Grant, and C. Solomon. Programming-languages as a conceptual framework for teaching mathematics. SIGCUE Outlook, 4(2):13–17, 1970.

[20] U. Frisch, D. d’Humières, B. Hasslacher, P. Lallemand, Y. Pomeau, and J.-P. Rivet. Lattice gas hydrodynamics in two and three dimension. Complex Systems, 1:649–707, 1987. Reprinted in Lattice Gas Methods for Partial Differential Equations, ed. G. Doolen, p.77, Addison-Wesley, 1990.

[21] U. Frisch, B. Hasslacher, and Y. Pomeau. Lattice-gas automata for the Navier-Stokes equation. Phys. Rev. Lett., 56:1505, 1986.

(14)

[22] G. Giraldi, A. Xavier, A. A. Jr, and P. Rodrigues. Lattice gas cellular automata for compu-tational fluid animation. Technical report, National Laboratory for Scientific Com-puting, http://arxiv.org/abs/cs.GR/0507012, 2005.

[23] G. A. Giraldi, L. C. da Costa, A. V. Xavier, and P. S. Rodrigues. Methods for analytical understanding of agent-based modeling of complex systems. Technical report, Na-tional Laboratory of Computing Science, http://arxiv.org/abs/cs.GR/0508002, 2005. [24] J. Hardy, Y. Pomeau, and O. de Pazzis. Time evolution of a two-dimensional model system. I. Invariant states and time correlation functions. J. Math. Phys., 14:1746, 1973.

[25] J. Hardy, Y. Pomeau, and O. de Pazzis. Molecular dynamics of a classical lattice gas: Transport properties and time correlation functions. Phys. Rev. A, 13:1949–60, 1976. [26] R. Liboff. Kinetic Theory: Classical, Quantum, and Relativistic Descriptions.

Prentice-Hall International Editions, 1990.

[27] J. Liu. Autonomous agents and multi-agent systems: explorations in learning, self-organization and adaptive computation. World Scientific, 2001.

[28] J. Müller, M. J. Wooldridge, and N. R. Jennings, editors. Intelligent Agents III: Agent Theories, Architectures and Languages. Springer, 1996.

[29] L. Rosenblum, R. Earnshaw, J. Encarnacao, H. Hagen, A. Kaufman, S. Klimenko, G. Ni-elson, F. Post, and D. Thalmann. Scientific Visualization: Advances and Challenges. Academic Press, 1994.

[30] J. S. Sichman, R. Conte, and N. Gilbert, editors. Multi-Agent Systems and Agent-Based Simulation, First International Workshop, MABS ’98, Paris, France, July 4-6, 1998, Proceedings, volume 1534 of Lecture Notes in Computer Science. Springer, 1998. [31] D. Sumpter. From Bee to Society: An Agent-Based Investigation of Honey Bee Colonies.

PhD thesis, University of Manchester, Department of Mathematics, 2000. [32] K. Symon. Mecânica. Editora Campus, 1982.

[33] S. Wolfram. Cellular Automata and Complexity. Addison-Wesley, Reading MA, 1994. [34] A. V. Xavier. Animação de fluidos via autômatos celulares e sistemas de partículas.

Referências

Documentos relacionados

socioeconômicos que expressam desigualdade no acesso aos bens e serviços, desvantagens, fragilidades nas relações de pertença social, relacional, como consequência da crise de

a) Junto do Provedor do Cliente, pois o Viajar Tours é aderente ao Provedor do Cliente das Agências de Viagens e Turismo in www.provedorapavt.com. Para usufruir deste serviço

7.5 A documentação do candidato aprovado (exceto curriculum vitae, no formato da Plataforma Lattes/CNPq), acompanhado de Comunicação Interna (de acordo com o modelo

Os resultados gerais obtidos a partir da simulação da resposta a impulso com parâmetros calibrados para a economia brasileira são que as respostas de curto prazo das variáveis e

Sendo a formação considerada um dos pilares funda- mentais da Gestão de Recursos Humanos e o maior impulsionador do desenvolvimento pessoal e orga- nizacional, neste processo de

Desenvolve de forma autónoma e precisa as actividades relacionadas com a preparação de trabalho, operação, controlo e manutenção de uma ou mais máquinas- ferramenta

As Roçadeiras da São José Industrial tem funcionamento simplificado, que utiliza o sistema de força de tomada do trator, acoplado com um eixo cardan que transmite o

INSCRIÇÕES: (capela da Santíssima Trindade) &#34;ESTA CAPELA HE DE / SALVADOR DE MA / GALHÃES MACHADO / E SEVS ERDEIROS / COM OBRIGACÃO / DE DUAS MISSAS CO / TEDIANAS. Eixo