Seminario sma,abms e netlogo

Post on 05-Jun-2015

297 views 6 download

description

Agentes de Software - PUC/PR

Transcript of Seminario sma,abms e netlogo

Plataformas SMA, ABMS e NetLogoDiogo Vinícius Winck, Msc

Diogo Vinícius Winckdiogo.winck@gmail.com

gtalk: diogo.winck@gmail.comskype: 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