![]() |
| Soyer Isabelle em nl.wikipedia [CC-BY-2.0-be], de Wikimedia Commons. |
Computação e simulações: o que dizer sobre esse casal tão unido? De fato, no post sobre simulações computacionais, vimos como o desenvolvimento da computação foi impulsionado pela necessidade de simular diversos tipos de situações. Trata-se de um tópico tão abrangente — e interessante — que encontramos diversas abordagens e ferramentas diferentes para atingir os mesmos objetivos. Nesta série de posts em particular, estudaremos a modelagem computacional baseada em agentes.
Índice
Introdução
Fundamentos teóricos
NetLogo
Tudo é número
Você pode até não perceber, mas está constantemente elaborando e utilizando modelos, ou pelo menos já o fez em alguma fase da sua vida. Quando uma questão de física pede para você determinar uma expressão relacionando uma ou mais variáveis a outra(s), dado um certo contexto, todo o processo de abstração, continhas e fórmulas que ocorre até chegar à resposta esperada forma um modelo.
Esse modelo o dará poder de previsão e um compreendimento sobre o fenômeno. Ele indica que, se você alterar um certo parâmetro do sistema, este se comportará de uma maneira diferente, segundo a expressão encontrada.
Mas e quando uma equação não basta?
Imagine que você seja um biólogo interessado em estudar as relações existentes em um ecossistema complexo. E agora, é possível deduzir um conjunto de fórmulas matemáticas? O que é necessário para modelar um sistema em que vários entes autônomos e heterogêneos atuam?
É aí que entra a modelagem baseada em agentes, uma abordagem interdisciplinar englobando inteligência artificial, algoritmos genéticos, teoria dos jogos e outras técnicas de modelagem para captar a essência de sistemas multi-agentes. Mas vamos deixar a discussão sobre agentes e outros tópicos teóricos para depois.
Por hora, vamos nos habituar a pensar em modelagem através da análise de um exemplo.
Que tal mariposas?
![]() |
| Fonte. |
Um fenômeno muito interessante — bem, talvez não tão interessante assim para todos —, e que podemos modelar com certa facilidade, é a atração das mariposas pela luz. Isso é algo aparentemente trivial, mas ainda não totalmente compreendido pelos cientistas.
Tradicionalmente, pensa-se que as mariposas utilizam a luz da lua como guia de navegação, mantendo um ângulo constante em relação a ela para voar em linha reta. Luzes artificiais, portanto, seriam formas de perturbação que confundem a orientação das mariposas e as forçam a voarem ao redor delas.
Mas será que essa hipótese é válida? Vamos testá-la! Confira a simulação a seguir e veja se ela é capaz de modelar o fenômeno satisfatoriamente:
Modelo comportamental de mariposas em relação à luz.
Isso parece corresponder bem à realidade observada, certo? Mas a aceitação desse modelo implica em falhas na linha de raciocínio apresentada anteriormente, sobre a luz como guia das mariposas:
- A mariposa voa em linha reta em direção à luz. Se ela realmente tomasse a luz artificial como um guia de navegação, então sua movimentação deveria descrever uma espiral em torno desta, para manter o ângulo constante em relação a este referencial.
- É fácil ver que o único tipo de movimentação é em linha reta, tanto para ir de encontro à luz como para fugir dela. E mais: a mariposa sempre se distancia um tanto até voltar à luz, e esse tanto é mantido ao longo do movimento. Definitivamente não existe espiral alguma.
Recomendo brincar um pouco com o modelo para testar as hipóteses em relação ao comportamento das mariposas de forma ainda mais profunda.
E o que podemos concluir disso tudo? Uma possibilidade é que a mariposa é atraída instintivamente pela luz intensa — talvez para procurar esconderijo e/ou outras mariposas —, mas percebe o perigo ao aproximar-se o suficiente e, então, tenta fugir. O por que de ela não conseguir fugir deve-se a particularidades da visão e à baixa capacidade de memória e aprendizado da mariposa. Tudo isso pode ser encontrado com mais detalhes aqui e outras fontes citadas ao final do post.
Entra o NetLogo
O modelo apresentado anteriormente foi elaborado na ferramenta NetLogo, que conta com uma biblioteca cheia de outros exemplos muito interessantes e um ambiente de desenvolvimento muito fácil de dominar. Discutiremos o motivo de escolhê-lo em um post no futuro, mas por hora é interessante que você se familiarize com o NetLogo e/ou confira seus exemplos.
Você pode conferir um manual bem completo aqui. Se você for um programador e/ou quiser saber bem como as coisas funcionam, dê uma olhada no FAQ para entender os aspectos técnicos por trás do ambiente, e pode pular para o guia de programação. Do contrário, siga os tutoriais básicos, explore a interface e, principalmente, estude os exemplos.
De qualquer forma, muitos dos tópicos que destaquei com negrito (capacidade de memória/aprendizado, sistema multi-agentes etc.) são características inerentes à modelagem baseada em agentes e vão surgir novamente ao longo desta série, então recomendo que pare para refletir sobre o que eles significam.
Já acabou?
Isso encerra nosso pontapé inicial no mundo da modelagem baseada em agentes, mas ainda vem mais por aí. No próximo post, entraremos em detalhes básicos sobre o assunto, incluindo algumas discussões filosóficas que o acompanham e as decisões por trás da escolha do NetLogo como plataforma de estudo/desenvolvimento.
Fontes e links úteis
Agent-based Modeling
HowStuffWorks "Why are moths attracted to light?"
Intelligent agent - Wikipedia
Multi-agent system - Wikipedia
NetLogo 5.0.2 User Manual
NetLogo Models Library: Moths
The Straight Dope: Why are moths attracted to bright lights?
Why are Moths Attracted to Flame? : NPR





0 comentários:
Postar um comentário