Download - Seminario sma,abms e netlogo
Plataformas SMA, ABMS e NetLogoDiogo Vinícius Winck, Msc
Diogo Vinícius [email protected]
gtalk: [email protected]: diogo.wincksite: www.winck.biz
Agenda
• Sistemas Multi Agentes• ABMS – Agente Based Models and Simulation• Netlogo
um sistema computacional flexível, situado em um
ambiente e capaz de desempenhar ações
autônomas para alcançar seus objetivos.
Agente é ...
um sistema computacional flexível, situado em um
ambiente e capaz de desempenhar ações
autônomas para alcançar seus objetivos.
Agente é ...
Capaz de atuar em
um ambiente
um sistema computacional flexível, situado em um
ambiente e capaz de desempenhar ações
autônomas para alcançar seus objetivos.
Agente é ...
Conhece
parcialmente o
ambiente
Capaz de atuar em
um ambiente
um sistema computacional flexível, situado em um
ambiente e capaz de desempenhar ações
autônomas para alcançar seus objetivos.
Agente é ...
Capaz de atuar em
um ambiente
Conhece
parcialmente o
ambiente
Percebe mudanças
um sistema computacional flexível, situado em um
ambiente e capaz de desempenhar ações
autônomas para alcançar seus objetivos.
Agente é ...
Capaz de atuar em
um ambiente
Conhece
parcialmente o
ambiente
Percebe mudançasPode Aprender
um sistema computacional flexível, situado em um
ambiente e capaz de desempenhar ações
autônomas para alcançar seus objetivos.
Agente é ...
Capaz de atuar em
um ambiente
Conhece
parcialmente o
ambiente
Percebe mudanças
Pode comunicar-se
com outros agentes
Pode Aprender
um sistema computacional flexível, situado em um
ambiente e capaz de desempenhar ações
autônomas para alcançar seus objetivos.
Agente é ...
Capaz de atuar em
um ambiente
Conhece
parcialmente o
ambiente
Percebe mudanças
Adapta-se
Pode comunicar-se
com outros agentes
Pode Aprender
um sistema computacional flexível, situado em um
ambiente e capaz de desempenhar ações
autônomas para alcançar seus objetivos.
Agente é ...
Capaz de atuar em
um ambiente
Conhece
parcialmente o
ambiente
Percebe mudanças
Adapta-se
Pode comunicar-se
com outros agentes
Pode Aprender
Atua se conveniente
para seu objetivo
Reativo• Responde a
mudanças do ambiente
Pró-ativo• Foco no
objetivo
Necessário
balancear
o comportamento dos agente pode ser:
Agentes caracterizam-se por
• Estado• Comportamento• Relacionamento com outros agentes
Estado
Propriedades/atributos
• Crenças: sobre si, sobre o ambiente e sobre os outros• Objetivos: estados futuros desejados
Comportamento
Métodos / tarefas / operações ações modificam o estadoPlanos: conjunto ordenado de ações que visam os objetivos.
Um agente pode aprender com o seu ambiente e mudar seus comportamentos em resposta a suas experiências.
Dois níveis de regras• Regras de nível básico oferecerem
respostas ao ambiente, • “Regras para alterar as regras"
fornecem adaptação.
Relacionamento
Envio e resposta de mensagens• Respostas não são
obrigatórias
Um sistema pode apresentarcomportamentos complexoscomo resultado da ação conjunta de agentes realizandocomportamentos simples.
TipologiaNwana propôs a seguinte tipologia em 1996:
Sistema Multi AgentesDividir para conquistar:• Responsabilidade• Conhecimento
Possibilita:• Heterogeneidade:
agentes especialistas para cada tarefa
• Concorrência e distribuição• Colaboração, cooperação, negociação e/ou competição
entre os agentes
ambiente organizações
papéis objetos
Agente
Ambiente
Onde o ambiente está situado.
• Acessível vs. Inacessível • Determinístico vs.
Não Determinístico • Estático vs. Dinâmico• Episódico vs. Não episódico• Discreto vs. Contínuo
Organização
• Agregação das relações entre agentes• Papéis e seus relacionamentos
• Agentes do nível N são agrupados em organizações, que no nível N+1 são vistos como indivíduos. N
N+1
Desenvolvendo SMA
Frameworks conceituais – definem e contextualizam conceitos:• KAoS, TAO, ...
Linguagem para Modelagem:• UML estendida: AUML, AORML, MAS-ML, ...
Metodologias para desenvolvimento:• Tropos, Prometheus, MaSE, ...
Framework/plataformas: infraestrutura para desenvolvimento• ASF, Jade, Netlogo, ...
Agent Platform FIPA
JADE Java Agent Development Framework• Framework para o desenvolvimento de SMA compatível
com o modelo FIPA• Composto por
Contêiner Biblioteca
Ferramentas
ABMS Agente Based Models and Simulation
• É uma abordagem para modelar sistemas e sistemas de sistemas como agentes iterativos autônomos.
• ABMS procura modela comportamentos reais e plausíveis de indivíduos, ao invés de normativo, tal como pesquisas operacional.
• Existem vários acrônimos diferentes:• Agent-based modelling (ABM)• Agent-based simulation (ABS)• Individual based modelling (IBM),
Regras simples resultam em organização
• Relacionada com CAS (Complex Adaptative Systems).• Preocupa-se com comportamentos complexos emergem na
natureza a partir de agentes autônomos Simples.
• Exemplo: The Boids simulation• “Bird-like object” - flocking behaviour.• Craig Reynolds in 1986• Separação + alinhamento + coesão
The Boids simulationSeparação:• Orientar para evitar congestionamento flockmates locais
Alinhamento:• orientar ângulo média do flockmates locais
Coesão:• orientar a se mover para a posição média de
flockmates locais
Netlogo
É um ambiente de desenvolvimento multi-agente para modelagem de sistemas.• Utiliza linguagem logo• Criada em 1999• Escrita em Scala e Java• Projeto Open Source sob licença GPLv2
e código disponível no GitHub
Indivíduos no NetLog
• Turtle: agente que se movem no ambiente.
• Patch: um pedaço quadrado do ambiente, onde turtles movem-se e interagem.
• Observador: contempla (point of view) o mundo forado por turtles e patches
The boids algorithm
to flock ;; turtle procedure find-flockmates if any? flockmates [ find-nearest-neighbor ifelse distance nearest-neighbor < minimum-separation [ separate ] [ align cohere ] ]end
simulação
Alguns comandos do NETLOG
• crt - abreviação para create-turtles• Crt 10 – cria 10 turtles
• ask turtles [ comandos ] - executa comandos sobre turtles
• ask patches [ comandos ] - executa comandos sobre patches• ask patches [set pcolor blue]
• ask turtles [fd 10] - cada tartaruga avança 10 passos
Mais comandos...
• ask turtles [ hatch n [ comandos ] ]. Cada turtle gera n novas turtles idênticas à progenitora e na mesma posição desta (xcor,ycor) e cada cria executa os comandos.
• ask patches [ sprout n [ comandos ] ]. De cada patch "brotam" n turtles localizadas nas coordenadas (inteiras) do patch (pxcor,pyxor) e cada turtle executa os comandos.
Simulação 3D
Duvidas
Referências Bibliográficas• As imagens foram pesquisadas junto a banco de imagens da Microsoft.• http://www.asdl.gatech.edu/INIT:AGENT.html• http://www.red3d.com/cwr/boids/• NetLogo itself: Wilensky, U. 1999. NetLogo.http://ccl.northwestern.edu/
netlogo/. Center for Connected Learning and Computer-Based Modeling, Northwestern University. Evanston, IL.
• HubNet: Wilensky, U. & Stroup, W., 1999. HubNet.http://ccl.northwestern.edu/netlogo/hubnet.html. Center for Connected Learning and Computer-Based Modeling, Northwestern University. Evanston, IL.
• http://www.ic.uff.br/~viviane.silva/2012.1/isma• Multiagent Systems, A Modern Approach to Distributed Modern Approach to
Artificial Intelligence - MIT, Weiss, 1999• Software Agents: An Overview. Hyacinth S. Nwana. 1996