Aplicações
Aplicações
Sistemas Auto-organizáveis
BC0005
Bases Computacionais da Ciência
Bases Computacionais da Ciência
Modelagem e simulação
Solução de problemas reais por modelos
Solução de problemas reais por modelos
computacionais (visto na aula anterior)
Sistemas auto-organizáveis
Solução de problemas computacionais por Solução de problemas computacionais por
Modelo e Simulação
Modelo: Representa conhecimento
sobre a estrutura e comportamento de
sistemas
sobre a estrutura e comportamento de
sistemas
Auxilia na compreensão de um sistema
Simulação: Emula comportamento real
Baixo custo, eliminação de periculosidade, Baixo custo, eliminação de periculosidade,
possibilidade de múltiplos testes (como
seria se...), otimização (acerta de primeira), corrigir o modelo, acesso aos processos
Realidade, Modelagem e
Simulação
Entidade do REALIDADE MODELO Modelo Entidade do mundo real Sistema S Condições experimentais Modelo M Conhecimento a priori Contexto Modelo completo Dados experimentais observáveis Experimento Resultados de simulação Simulação -experimento virtual ValidaçãoSistemas auto-organizáveis
O que é um sistema auto-organizável?
É um sistema que muda sua estrutura como resultado de É um sistema que muda sua estrutura como resultado de
suas “experiências” e meio ambiente (Farley e Clarke, 1954). Características Adaptação (aprendizado) Emergência Características globais Características globais Não há controle central
Surgimento de padrões ou propriedades globais através de
interações locais entre os elementos.
A inteligência do todo é maior que a soma das inteligências das partes
Realizações dos insetos sociais
Formigas têm apenas 250.000 neurônios a
disposição (comparando com 88.000.000.000
disposição (comparando com 88.000.000.000
do humano)
Entretanto, grupos de insetos são capazes de
maravilhas arquiteturais, elaborar sistemas de comunicação e ser resistentes às intempéries da natureza.
Exemplos de insetos sociais:
Exemplos de insetos sociais:
Formigas Cupins
Abelhas Vespas
Formiga nas Bases Computacionais
Problema
•Qual é o menor caminho entre dois pontos, considerando •Um espaço 2D
•Duas barreiras
Coleta de comida
Aparentemente, cada formiga se move
de forma aleatória.
de forma aleatória.
A coleta de comida pode ser explicada em termos
de um conjunto fixo de ações, que incluem
respostas a feromônios, que são substâncias que possuem um tipo de odor que pode ser detectado por outras formigas.
Exemplo clássico de comportamento emergente!Exemplo clássico de comportamento emergente!
Regra simples:
As formigas tendem a seguir o caminho com maior
quantidade de feromônio até a comida.
Ao segui-lo, depositam mais feromônio, que acaba
Coleta de comida
Experiência com a formiga
Linepithema
humile.
humile.
Capaz de achar rapidamente o caminho mais
curto entre dois pontos.
Veja o vídeo de uma simulação
computacional de coleta de comida por
formigas em:
formigas em:
Coleta de comida
Regras de movimentação das formigas (algoritmo):
Início: Avança em uma direção aleatória. Início: Avança em uma direção aleatória. Deposita feromônio o tempo todo.
Avança em uma direção aleatória.
Se encontrou feromônio, avança no sentido dele.
Se encontrou comida, come, carrega um pouco e volta
para trás. para trás.
Se chegou em casa e está faminta, volta para trás.
Feromônio: Substância química liberada por animais e que afeta o comportamento ou desenvolvimento de outros animais. No caso de formigas, desaparece depois de 20 min.
A Menor Distância à Comida
Propriedade emergente (O que uma Formiga não
Sabe):
Sabe):
Mais formigas trilharão o caminho mais curto do
ninho à comida.
Consequências (ou Porque Encontro Formigas na
Cozinha)
Mais comida para as formigas.
Mais comida para as formigas.
A comida seria consumida mais rapidamente por
estas formigas em detrimento de formigas de outros ninhos.
A Menor Distância à Comida
Formigas andam em uma trilha.
Uma folha aparece no meio da trilha.
Formigas podem escolher virar a direta ou esquerda.
direta ou esquerda.
O trânsito no caminho mais curto será mais rápido, e mais feromônio será liberado.
A Menor Distância à Comida
Menor distância significa comer antes dos outros toda a comida...
dos outros toda a comida...
VER VIDEO:
http://video.google.com/videoplay?
docid=-4748362485426843791
docid=-4748362485426843791
A Menor Distância à Comida
Conclusão
Poucas regras simples em nível local
(individual) podem resolver um grande Poucas regras simples em nível local (individual) podem resolver um grande problema global (sistêmico).
Algoritmos de poucas instruções a agentes
locais podem resolver problemas computacionais complexos.
Sistemas biológicos, químicos e físicos Sistemas biológicos, químicos e físicos
podem ter encontrado soluções altamente eficientes para resolver problemas
O problema do caixeiro viajante
Problema do caixeiro viajante (
Traveling
Salesman Problem -
TSP).
Salesman Problem -
TSP).
Um homem de negócios tem que visitar um certo
número de cidades (N) usando o menor caminho possível.
Problema extremamente difícil!
O número de possibilidades é igual ao fatorial de (N-1).
Propostas de técnicas aproximadas para resolver
Propostas de técnicas aproximadas para resolver
esse problema.
Algoritmo baseado na coleta de comida das formigas, sendo chamado de Otimização por colônia de formigas (Ant Colony Optimization - ACO).
Exemplo de TSP
TSP de 13509 cidades dos EUA.
Foram consideradas aquelas com mais de Foram consideradas aquelas com mais de
500 habitantes.
Resolução do TSP por ACO
Imagine que uma colônia de formigas
substitua o homem de negócios.
substitua o homem de negócios.
Uso dos feromônios para determinar a rota
mais curta.
Se cada formiga de uma colônia deposita a
mesma quantidade de feromônio em uma rota, a rota mais curta terá uma maior quantidade de feromônio.
As formigas que vêm após um certo tempo de feromônio.
As formigas que vêm após um certo tempo de
execução do algoritmo vão ser guiadas pela
maior quantidade de feromônio das rotas mais curtas, reforçando ainda mais seus níveis de feromônio.
Divisão do trabalho
Especialização de indivíduos para executar
certas tarefas.
certas tarefas.
Fenômeno observado na natureza:
Exemplo: colméia de abelhas.
Rainha; Enfermeiras; Defensores; Responsáveis pela coleta de comida...
Mas que pode ser flexibilizado de acordo com a
necessidade. necessidade.
Aplicação na indústria.
Linha de pintura de veículos.
Permitir que cada operário tome uma decisão por si só de qual cor ele irá pintar os veículos, de acordo com a demanda.
Divisão do trabalho
Divisão do trabalho
Divisão do trabalho
Divisão do trabalho
De http://www.cs.vu.nl/~zos/lectures/
Divisão do trabalho
De http://www.cs.vu.nl/~zos/lectures/
Duas linhas de pintura decidem, de forma autônoma, de trocar de cor para branco para diminuir a fila.
Divisão do trabalho
Divisão do trabalho
Divisão do trabalho
Agrupamento em formigas
Formiga Messor sancta
1500 cadáveres em 26 horas
Separação das larvas vivas das mortas.
Didabots
Vamos considerar robôs ao invés de
exemplos da biologia?
exemplos da biologia?
Didabots
É mais fácil fazer experiências com robôs!
Possui olhos na parte esquerda e direita do seu
corpo.
Como programar os robôs?
Explicíta.
Explicíta.
É preciso programar todas as situações
possíveis e de forma pormenorizada.
Uso de regras simples
Didabots - agrupamento
De http://www.cs.vu.nl/~zos/lectures/
Os robôs não
possuem memória. Como são capazes de agrupar os objetos?
Didabots – regras e emergência
No slide anterior, duas regras simples foram
usadas para evitar obstáculos:
usadas para evitar obstáculos:
Se algo for visto à direita, então vire à esquerda. Se algo for visto à esquerda, então vire à direita.
Como o agrupamento foi formado?
Como não enxergam à frente, ficam continuamente
empurrando as caixas.
Se um objeto é visto em sua lateral, ele vira, deixando Se um objeto é visto em sua lateral, ele vira, deixando
aquele objeto perto daquele avistado!
Se existe uma agrupamento, isso aumenta a chance de um robô avistá-lo, o que vai aumentando o seu tamanho.
Comportamento simples de um robô resulta em um
Transporte cooperativo
Observado em formigas que transportam
um grande objeto.
De http://en.wikipedia.org/wiki/File:Oecophylla.jpg Oecophylla smaragdina Foto tirada no Gabão por Axel RouvinTransporte cooperativo
Também podem ser empregado robôs para
esse tipo de transporte.
esse tipo de transporte.
http://web.cs.ualberta.ca/~kube/video_source/bo
x-pushing.mpeg
O objetivo é achar a caixa e movê-la para o
canto esquerdo (meta – ponto de luz).
Pelo menos dois robôs são necessários paracarregar a caixa. carregar a caixa.
Regras simples de movimentação do robô (localizar
a caixa e empurrá-la até a meta).
Sumário
Sistemas auto-organizáveis:
Ausência de controle central; Ausência de controle central; Ordem global;
Emergência de um comportamento inteligente.
Redundância;
Se um indivíduo falha, a comunidade é pouco
afetada. afetada.
Adaptação.
Lembre-se que os insetos sociais já existem a
Para saber mais
Artigo da
Scientific American
de março
de 2000, páginas 72-79.
de 2000, páginas 72-79.
http://www.santafe.edu/~vince/press/SciA
Exercícios – Jogo da vida
Publicado na
Scientific American
em
1970, pelo matemático John Conway,
1970, pelo matemático John Conway,
com o nome de Game of Life.
Grade bi-dimensional de elementos
binários, com um conjunto simples de
regras para determinar o estado de
cada elemento (célula).
cada elemento (célula).
Cada célula pertence a uma vizinhança de 8
Exercícios – Jogo da vida
Regras:
Se uma célula tem menos de dois vizinhos Se uma célula tem menos de dois vizinhos
“vivos”, então a célula morre de solidão, ficando “morta” na próxima iteração;
Se há mais de três vizinhos “vivos”, então a
célula morre de superpopulação;
Se a célula estiver “morta” e tiver Se a célula estiver “morta” e tiver
exatamente três vizinhos vivos, ela renasce na próxima iteração.
Exercícios – Jogo da vida
Padrões aparecem da aparente
aleatoriedade do jogo.
aleatoriedade do jogo.
“Blinkers”, “b-heptaminos”, “brains”,
“bookends”, “gliders”, “gliders-guns” e r-”pentaminos”
Exemplos interessantes em:
Exemplos interessantes em:
Exercícios – Jogo da vida
Obtenha o programa do jogo da vida em:
http://www.bitstorm.org/gameoflife/
http://www.bitstorm.org/gameoflife/
Exercícios:
Simule diferentes condições iniciais para o
jogo da vida e faça um breve relatório das situações que ocorreram dados esses
diferentes tipos de partida. diferentes tipos de partida.
Dica: use as condições iniciais mostradas no
Exercícios
Quais são as Instruções?
Agrupar peças
: 20 Peças de LEGO são espalhadasdentro de um círculo. Quatro robôs foram
encarregados de juntar as peças. Os robôs só encarregados de juntar as peças. Os robôs só enxergam a curta distância, não se comunicam
entre si e podem entender até quatro instruções simples. Quais instruções você daria?
Início Final
Exercícios
Quais são as Instruções?
Distribuir igualmente no espaço
:
20 Robôsforam posicionados próximos um do outro no centro de um círculo. Quais instruções você passaria aos foram posicionados próximos um do outro no centro de um círculo. Quais instruções você passaria aos robôs para que estes ficassem espalhados pelo
espaço? As instruções devem ser simples e poucas.
Final Início