Modelação e Simulação
baseada em Agentes usando
NetLogo
NetLogo
• IA e Agentes Inteligentes
• Instalar NetLogo
• Como funciona?
• Exemplos simples
Inteligência Artificial (IA) – o que é?
• “…a ciência e engenharia de produzir máquinas inteligentes” – John
McCarthy 1956
• O principal objetivo: executar funções que, caso um ser humano fosse
executar, seriam consideradas inteligentes (teste de Turing).
• Existem tantas definições como significados diferentes de
“inteligência”.
Inteligência Artificial (IA) – mitos
• A IA poderá substituir o cérebro dos humanos ?
• A IA irá eliminar todos os postos de trabalho ?
• A IA poderá susbtituir e eliminar a raça humana ?
Inteligência Artificial (IA) – mitos
• A IA poderá:
• substituir o cérebro dos humanos (?)
• eliminar todos os postos de trabalho (?)
• substituir e eliminar a raça humana (?)
• Teste de Turing (Alan Turing, 1950): fazer perguntas a uma pessoa e um
computador. Um computador e seus programas passam no TT se, pelas
respostas, for impossível a alguém distinguir qual interlocutor é a
máquina e qual é a pessoa.
• Teste do quarto chinês (John Searle, 1980): um computador e
uma pessoa fechadas num quarto na China, conseguem sobreviver,
desde que tenham um dicionário e outras ferramentas de tradução
para falar chinês - argumento: o computador pode “falar” Chinês mas
não “compreende” o que diz!
Inteligência Artificial (IA) – Aplicações
• Linguística:
• Tradução automática (ex: Google translator)
• Processamento linguagem natural (ex: Siri, Alexa)
• Indexação e classificação dados (ex: “ler” notícias)
• Robótica:
• Robots (humanóides, fábricas, saúde, animais, …)
• Condução autónoma
• Fábricas inteligentes (ex: CIM)
• Matemática:
• demonstradores de teoremas, jogos tipo xadrez, redes
neuronais, redes genéticas
• Visão computacional
• OCR, DAI, análise de exames médicos, visão robótica
• Sistemas Multi-Agente
• Vida artificial (jogos, chatterbots, bots e robots na internet)
Agent-Based Modeling (ABM)
• Na modelação baseada em agentes, um sistema é modelado
como sendo uma coleção de entidades autónomas, capazes de
tomarem decisões, chamadas “agentes”
• Cada agente, individualmente, analisa a situação (com sensores
ou dados de input) e toma decisões com base num conjunto de
regras.
• ABM é mais um conceito que uma tecnologia. (Bonabeau, 2002)
• ABM é adequada para modelar sistemas complexos com atores
ou entidades heterogéneas, autónomas e pró-ativas, como
humanos ou seres vivos em geral.
Agent-Based Modeling (ABM)
• Benefícios da ABM
• ABM: descrição natural, próxima da realidade, de um sistema
• ABM permite capturar fenómenos de grupo emergentes
• “Emergence”
• Resulta das interações entre os vários agentes quando o total é
superior à soma das partes. Exempos: colónias de formigas e
abelhas.
• “An emergent phenomenon” pode ter propriedades que
são intrinsecas e que não existem individualmente.
• Exemplo: dinâmicas de trânsito (”engarrafamentos”) e de
multidões
Agentes: Uma possível definição (Gilbert)
• Agentes devem ter as seguintes caracterísicas:
• Perceção: conseguem aferir o estado da envolvente
(ambiente) incluindo o estado e interações com outros
agentes
• Performance: um conjunto de comportamentos, como:
• Movimento: capacidade de se movimentar no espaço (mundo)
• Comunicação: direta (messagens) ou indireta (no
ambiente)
• Ação: Sensores para ter “inputs” do ambiente e tomar decisões
• Memória: capacidade para reter e memorizar as ações e estados
anteriores (histórico)
• Poliíticas (Regras): conjunto de regras que determinam
as ações a tomar em função do estado, movimento e do
histórico de ações
Agentes: alguns tipos
• Agentes reativos
• Podem desenvolver “inteligência” a partir de interações com o ambiente, não
necessitam de ter um modelo pre-estabelecido.
• Agentes reativos simples
• Respondem a percepções
• Em função do estado e inputs do ambiente, pesquisam uma regra e executam
• Agentes reativos baseado em modelo
• Mantêm o estado interno para aspectos não percebidos
• Estado interno modela mundo
• Pode utilizar percepções passadas para base em decisões
• Agentes cognitivos
• Complexo, com mecanismos de tomada de decisões avançados, interações
sofisticadas e com um objetivo fortemente estabelecido.
• Agentes baseados em objetivos
• Procuram atingir alvos
• Mais flexível que reativos
• Agentes baseados na utilidade
• Tentam maximizar suas expectativas
• Pondera probabilidade de sucesso em relação à importância de objetivos
Agent Based Modeling & Simulation
(ABMS)
• ABMS consiste no processo de conceção (modelação) ou desenho de
um sistema baseado em agentes (agent based model) que represente
um sistema real.
• Permite realizar experiências com esse modelo, com o objetivo de se
compreender melhor o seu funcionamento e comportamento em
diversas situações.
• Também poderá servir para avaliar diversas estratégias na operação
do sistema, realizar simulações do tipo “what-if”, avaliação de
cenários hipotéticos, ou testar possíveis optimizações do sistema.
NetLogo
• Baixar e instalar última versão 6.2.2
[Link]
• Ferramenta de modelação e simulação de agentes (agent-
based M&S tool)
• Particularmente adequada à modelação de sistemas
complexos
• Muito utilizada na Simulação Social (áreas como economia,
saúde, etc.)
• Grande comunidade de utilizadores
• Baseada na linguagem Logo (muito simples e intuitiva)
• Com várias ferramentas e utilitários
Modelagem Climática e terrestre
Modelagem Ciência Política
Abas no NetLogo
• Interface
• Info
• Code
Abas no NetLogo: Info
• What is It?
• How It Works
• How to Use It
• Thing to Notice
• Things to Try
• Extending the Model
• NetLogo Features
• Related Models
• Credits and References
Abas no NetLogo: Elementos da interface
•Button
• Slider
• Chooser
• Switch
• Input
• Monitor
• Plot
• Output
• Note
Executando um Modelo
•Setup
• Go
• Speed Slider
Configurando um Modelo
•World Size
• Wrapping
Turtles: comandos
•create-turtles (crt)
• ask
• forward (fd), backward (bk)
• left (lt), right (rt)
• repeat
• color, size, xcor, ycor
• pen-down (pd), pen-up (pu)
• clear-all (ca)
• monitor
• die
Paches
•Inspector
• Patch Color is pcolor
• Turtles can directly access patches
• Relevant Commands
• setxy, facexy
• random-xcor (pxcor) and random-ycor
(pycor)
Abas NetLogo: Code
•creating a procedure
to and end
• finding procedures
• indentation
• checking code
Agentes
•Built-In Collections
patches, turtles, links
turtles-here, in-link-neighbors
• Agent Breeds (raças)
influentials, imitators
can have their own properties (propriedades próprias)
• Agentsets (conjunto)
with
turtles-on
O código NetLogo
• setup and go
• Other commands:
tick
if, ifelse
repeat
while
Configuração do “mundo”
Setup - procedimentos
turtles-own [ wealth ]
to setup
clear-all
create-turtles 500 [
set wealth 100
set shape "circle"
set color green
set size 2
;; visualiza as turtles da esq p dir em ordem crescent de riqueza
setxy wealth random-ycor
]
reset-ticks
end
Go - procedimentos
to go
;; transact and then update your location
ask turtles with [ wealth > 0 ] [ transact ]
;; prevent wealthy turtles from moving too far to the
right
ask turtles [ if wealth <= max-pxcor [ set xcor wealth ] ]
tick
end
transact
to transact
;; give a dollar to another turtle
set wealth wealth - 1
ask one-of other turtles [ set wealth wealth + 1 ]
end
Criação do Histograma
NetLogo apresentação
• NetLogo consiste num ecossistema de agentes que vivem num
mundo 2-D, num espaço discretizado em células (grid of patches)
1. Existem três tipos de agentes
• Turtles, agentes que se movem no “mundo”
• Patches, células que constituem o ”mundo” (grelha) por onde as “turtles”
podem andar
• Links, agentes que ligam duas “turtles”
• Observer, é um agente especial, sem localização (supervisor).
• Pode questionar agentes e obrigá-los a executar comandos
• Recolhe dados dos modelos
NetLogo exemplo (I) PARTY
1. Abra o NetLogo
2. File > Models library
3. >> Social Science
4. Escolha o modelo PARTY
5. Prima botão SETUP
6. Prima botão GO
7. O que acabou de acontecer??
NetLogo exemplo (I) PARTY
1. Veja o separador “Interface”
2. Veja o separador “Info”
3. Veja o separador “Code”
Desafio: teste com 150 pessoas, 10 grupos. Qual o valor de tolerância
para ter grupos mistos? (pelo menos 1)
NetLogo exemplo (I) PARTY uso
150 pessoas, 10 grupos, % tolerância de aceitação elementos sexo oposto
Tentar encontrar % de forma a que todos os 10 grupos tenham
elementos dos dois sexos
Tente perceber como os grupos funcionam: variando o número de
pessoas e o nível de tolerância
NetLogo exemplo (II) TRAFFIC BASIC
1. Abra o NetLogo
2. File > Models library
3. >> Social Science
4. Escolha o modelo TRAFFIC BASIC
5. Prima botão SETUP
6. Prima botão GO
7. O que faz este modelo?
NetLogo exemplo (III) TRAFFIC 2 Lanes
1. Abra o NetLogo
2. File > Models library
3. >> Social Science
4. Escolha o modelo TRAFFIC 2 LANES
5. Prima botão SETUP
6. Prima botão GO
7. O que faz este modelo?
NetLogo exemplo (IV) TRAFFIC Grid
1. Abra o NetLogo
2. File > Models library
3. >> Social Science
4. Escolha o modelo TRAFFIC GRID
5. Prima botão SETUP
6. Prima botão GO
7. O que faz este modelo?
NetLogo exemplo (V) Wolf Sheep Predation
1. Abra o NetLogo
2. File > Models library
3. >> Biology
4. Escolha o modelo Wolf Sheep Predation
5. Prima botão SETUP
6. Prima botão GO
7. O que faz este modelo?
NetLogo exemplo (V) Wolf Sheep Predation
• Botões: on-off (energy)
• Sliders (nº carneiros, lobos, ganhos energia)
• Modos de funcionamento (botão Chooser):
• Sheep-Wolf - com a relva “desligada”, há relva “infinita” e os
carneiros crescem infinitamente até ocuparem todo o mundo!
• Sheep-Wolf-Grass - com a relva “ligada” os carneiros comem a relva
que só volta a crescer passado algum tempo
• Teste e veja as diferenças!
• Monitores:
NetLogo – projeto exemplo (1)
1. Criar novo modelo
2. Adicionar botão
SETUP
3. Adicionar código
inicialização
4. Check –verifica
NetLogo – projeto exemplo (2)
1. Adicionar botão GO
2. “Forever” check-box
3. “Disable ...” check-box
4. Comands: go
NetLogo – projeto exemplo (3)
• Seguir tutorial no NetLogo....
NetLogo – projeto exemplo (4)
• Senão conseguiu completar todos os passos, não se
preocupe!
• O exemplo completo, pronto a funcionar, está na
biblioteca de exemplos de NetLogo, Code Examples
“Tutorial 3”.
• Na página do NetLogo tem vários tutoriais, sendo este o
Tutorial #3
• [Link]
NetLogo – outros exemplos
• Para além da biblioteca de modelos que são disponibilizados, há muitos
outros modelos e experiências disponíveis na internet em artigos
científicos e académicos.
• Agora... é experimentar! Boa sorte!
Modelação e Simulação baseada
em Agentes usando NetLogo