Inteligência de enxames - Cardume (PSO + AFSA)

77
Inteligência Computacional 2013/2 Prof. José Manoel de Seixas Aluno: Pedro de Vasconcellos

description

Curso: Engenharia de Computação e Informação - UFRJ Disciplina: Inteligência Computacional - 2013 Trabalho sobre inteligência de enxames (Swarm Intelligence), para cardumes. Trata sobre os algoritmos de PSO (Particle Swarm Optimization) e AFSA (Artificial Fish Swarm Algorithm)

Transcript of Inteligência de enxames - Cardume (PSO + AFSA)

Page 1: Inteligência de enxames - Cardume (PSO + AFSA)

Inteligência Computacional – 2013/2

Prof. José Manoel de Seixas

Aluno: Pedro de Vasconcellos

Page 2: Inteligência de enxames - Cardume (PSO + AFSA)

Inteligência de Enxames

- Cardume -

Page 3: Inteligência de enxames - Cardume (PSO + AFSA)

Inteligência de Enxames /

Inteligência Coletiva (Swarm

Intelligence)

“Aprender com a

natureza”

Inteligência de Enxames

Page 4: Inteligência de enxames - Cardume (PSO + AFSA)

Inteligência de Enxames

“Inteligência de enxames é uma propriedade de sistemas de agentes

não-inteligentes de capacidade individual limitada exibir

comportamento coletivo inteligente” [1]

Page 5: Inteligência de enxames - Cardume (PSO + AFSA)

Inteligência de Enxames

Enxames de abelhas

Page 6: Inteligência de enxames - Cardume (PSO + AFSA)

Inteligência de Enxames

Colônia de bactérias

Page 7: Inteligência de enxames - Cardume (PSO + AFSA)

Inteligência de Enxames

Bando de pássaros

Page 8: Inteligência de enxames - Cardume (PSO + AFSA)

Inteligência de Enxames

Cardume de peixes

Page 9: Inteligência de enxames - Cardume (PSO + AFSA)

Inteligência de Enxames

5 Princípios básicos (Millonas, 1994): [3]

• Proximidade – agentes devem ser capazes de interagir;• Qualidade – agentes devem ser capazes de avaliar seus

comportamentos;• Diversidade – permite ao sistema reagir a situações

inesperadas;• Estabilidade – nem todas as variações ambientais devem

afetar o comportamento de um agente;• Adaptabilidade – capacidade de adequação a variações

ambientais

Page 10: Inteligência de enxames - Cardume (PSO + AFSA)

Inteligência de Enxames

Sistema auto organizável

Cada agente preocupa-se com seu próprio papel

Interações locais levam a um padrão global

Page 11: Inteligência de enxames - Cardume (PSO + AFSA)

Otimização de Enxame de Partículas

PSO (Particle Swarm Optimization)

Page 12: Inteligência de enxames - Cardume (PSO + AFSA)

PSO (Particle Swarm Optimization)

Desenvolvido em 1995, por James Kennedy (esq., psicólogo social) e Russel Eberhart (dir.,

engenheiro elétrico)

Page 13: Inteligência de enxames - Cardume (PSO + AFSA)

PSO (Particle Swarm Optimization)

“Pelo menos em teoria, membros individuais de um cardume podem se beneficiar das descobertas e experiências anteriores de outros

membros do cardume na busca por alimentos.

Essa vantagem pode se tornar decisiva, compensando as desvantagens da competição por alimentos”

Edward Osbourne Wilson (entomologista e biólogo americano) [5]

Page 14: Inteligência de enxames - Cardume (PSO + AFSA)

PSO (Particle Swarm Optimization)

Base

Estudos de modelagem de comportamento de enxames (em peixes e aves) e seus fatores

sócio-cognitivos.

Page 15: Inteligência de enxames - Cardume (PSO + AFSA)

PSO (Particle Swarm Optimization)

Cognitivo

Cada indivíduo possui a sua própria experiência e é capaz de avaliá-la

qualitativamente (aprendizagem individual)

Page 16: Inteligência de enxames - Cardume (PSO + AFSA)

PSO (Particle Swarm Optimization)

Social

Cada indivíduo tem conhecimento da experiência de seu vizinho (transmissão

cultural)

Page 17: Inteligência de enxames - Cardume (PSO + AFSA)

PSO (Particle Swarm Optimization)

Decisão a ser tomada

Experiências passadas

Influências sociais

Page 18: Inteligência de enxames - Cardume (PSO + AFSA)

PSO (Particle Swarm Optimization)

Avalia-seCompara com os vizinhos

Imita os vizinhos

superiores

Princípios de Adaptação Cultural

Page 19: Inteligência de enxames - Cardume (PSO + AFSA)

PSO (Particle Swarm Optimization)

Objetivo

Encontrar uma solução no universo de possíveis soluções para um problema de

otimização [6]

Cardume de peixes buscando alimento ou bando de pássaros buscando abrigo

Page 20: Inteligência de enxames - Cardume (PSO + AFSA)

PSO (Particle Swarm Optimization)

Exemplo (1) [5]

Page 21: Inteligência de enxames - Cardume (PSO + AFSA)

PSO (Particle Swarm Optimization)

Exemplo (2) [5]

Page 22: Inteligência de enxames - Cardume (PSO + AFSA)

PSO (Particle Swarm Optimization)

Função Schwefel [5]

Page 23: Inteligência de enxames - Cardume (PSO + AFSA)

PSO (Particle Swarm Optimization)

Função Schwefel [5]

Page 24: Inteligência de enxames - Cardume (PSO + AFSA)

PSO (Particle Swarm Optimization)

Função Schwefel [5]

Page 25: Inteligência de enxames - Cardume (PSO + AFSA)

PSO (Particle Swarm Optimization)

Função Schwefel [5]

Page 26: Inteligência de enxames - Cardume (PSO + AFSA)

PSO (Particle Swarm Optimization)

Conceitos

Aptidão (fitness) = número que representa a optimalidade da solução

Função de Aptidão: G(xi)

Page 27: Inteligência de enxames - Cardume (PSO + AFSA)

PSO (Particle Swarm Optimization)

Conceitos

Sendo 1≤d ≤n, número de dimensões do sistema:• xi = (xi1, xi2,..., xid) = posição da partícula i• vid = (vi1, vi2,..., vid) = velocidade da partícula i• pbest (pi) = melhor posição encontrada até o

momento pela partícula i• lbest (pl) = melhor posição encontrada até o

momento pela vizinhança de i

• Obs.: gbest (pg) modelo de vizinhança global

Page 28: Inteligência de enxames - Cardume (PSO + AFSA)

PSO (Particle Swarm Optimization)

Conceitos

Análogo à fórmula física: xi’ = xi + vit + (1/2) at²

Fórmula da posição no PSO:xi(t+1) = xi(t) + vi(t+1)

Fórmula da velocidade no PSO:vi(t+1) = ω×vi(t) + ϕ1×(pi−xi(t)) + ϕ2×(pl−xi(t))

Page 29: Inteligência de enxames - Cardume (PSO + AFSA)

vi(t+1) = ω×vi(t) + ϕ1 (pi−xi(t)) + ϕ2×(pl−xi(t))

PSO (Particle Swarm Optimization)

Conceitos

Aceleração cognitiva

Aceleração social

ω (<1) = peso de inércia (grande: exploração global; pequeno: exploração local)

Φ1 = c1 * rand(); Φ2 = c2 * Rand()rand() e Rand(): funções randômicas uniformemente

distribuídas entre [0,1]c1 e c2: constantes de aceleração de aprendizado, tal que

c1 + c2 = 4.1 e geralmente c1 = c2 = 2.05

Page 30: Inteligência de enxames - Cardume (PSO + AFSA)

PSO (Particle Swarm Optimization)

Pseudo-código [7]

Page 31: Inteligência de enxames - Cardume (PSO + AFSA)

PSO (Particle Swarm Optimization)

Outros parâmetros

Vmín e vmáx = partículas cujas velocidades em módulo sejam maiores que o definido, têm seus

valores limitados;

Dimensão do espaço de busca: número de parâmetros livres;

Alcance do espaço de busca: ex., xmín=-500, xmáx=500;

Page 32: Inteligência de enxames - Cardume (PSO + AFSA)

PSO (Particle Swarm Optimization)

Outros parâmetros

Número de partículas: geralmente entre 20 e 40, sendo 10 suficiente muitas vezes [8];

Condição de encerramento do algoritmo: número de iterações, solução ótima, margem de

erro mínimo;

Page 33: Inteligência de enxames - Cardume (PSO + AFSA)

PSO (Particle Swarm Optimization)

PSO Local x Global

• Global: todas as partículas estão conectadas entre si maior convergência, pouca

exploração do espaço

• Local: partículas agrupadas em vizinhanças menor convergência, grande exploração

do espaço

Page 34: Inteligência de enxames - Cardume (PSO + AFSA)

PSO (Particle Swarm Optimization)

PSO Local x Global

• Global: todas as partículas estão conectadas entre si maior convergência, pouca

exploração do espaço

• Local: partículas agrupadas em vizinhanças menor convergência, grande exploração

do espaço

Page 35: Inteligência de enxames - Cardume (PSO + AFSA)

PSO (Particle Swarm Optimization)

PSO Local x Global (topologias)

[5]

Exemplo de PSO local e definição das Vizinhanças [9]

Page 36: Inteligência de enxames - Cardume (PSO + AFSA)

PSO (Particle Swarm Optimization)

Conclusões

• Baseado em comportamento social• Algoritmos simples• Operadores matemáticos simples• Não garantem convergência para a melhor

solução• Bons resultados em várias aplicações (redes

neurais, otimização contínua multimodal, etc)

Page 37: Inteligência de enxames - Cardume (PSO + AFSA)

Artificial Fish Swarm Algorithm

Proposto em 2002, por Li et al., inspirado no movimento coletivo

de peixes e seus vários comportamentos sociais.

Page 38: Inteligência de enxames - Cardume (PSO + AFSA)

Artificial Fish Swarm Algorithm

Outros possíveis nomes:

FSA – Fish Swarm AlgorithmFSO – Fish Swarm OptimizationAFSO – Artificial Fish Swarm OptimizationAFSOA – Artificial Fish Swarm Optimization Algorithm

Page 39: Inteligência de enxames - Cardume (PSO + AFSA)

Artificial Fish Swarm Algorithm

Interação com o ambiente

Page 40: Inteligência de enxames - Cardume (PSO + AFSA)

Artificial Fish Swarm Algorithm

X: posição do AF (Artificial Fish)

X = [x1, x2, ...., xn]

Page 41: Inteligência de enxames - Cardume (PSO + AFSA)

Artificial Fish Swarm Algorithm

Visual: campo de visão (percepção) do peixe

Page 42: Inteligência de enxames - Cardume (PSO + AFSA)

Artificial Fish Swarm Algorithm

xv: nova posição preterida, dentro da

visão

xv = [xv1,xv2, ..., xvn]

Page 43: Inteligência de enxames - Cardume (PSO + AFSA)

Artificial Fish Swarm Algorithm

Step: passo máximo que o peixe dará a cada iteração (movimento)

Page 44: Inteligência de enxames - Cardume (PSO + AFSA)

Artificial Fish Swarm Algorithm

Xnext: nova posição do AF rumo a xv

O movimento só ocorrerá caso xv tenha

melhor solução(maior concentração

de comida)

Page 45: Inteligência de enxames - Cardume (PSO + AFSA)

Artificial Fish Swarm Algorithm

Comportamentos (funções)

Page 46: Inteligência de enxames - Cardume (PSO + AFSA)

Artificial Fish Swarm Algorithm

Searching / Prey (devorar) Behavior

Busca por grandes reservatórios de comida

(encontrar solução ótima)

Page 47: Inteligência de enxames - Cardume (PSO + AFSA)

Artificial Fish Swarm Algorithm

Searching / Prey Behavior

1) Escolha de uma potencial nova posição xj:

d = número de dimensões do espaçoVisual = distância visualRand() = número randômico entre -1 e 1

Page 48: Inteligência de enxames - Cardume (PSO + AFSA)

Artificial Fish Swarm Algorithm

2) Sendo Y = f(x) a função objetivo a ser otimizada, caso f(xj) seja melhor que f(xi) movimento rumo a xj

Disi,j = distância euclidiana entre xi e xj

Searching / Prey Behavior

Page 49: Inteligência de enxames - Cardume (PSO + AFSA)

Artificial Fish Swarm Algorithm

3) Caso f(xj) represente uma solução pior que f(xi), o AF continua buscando de acordo com a eq. 1.

Após um número de tentativas (try-number) sem sucesso, o peixe move-se livremente (às vezes classificado como moving behavior)

Searching / Prey Behavior

Page 50: Inteligência de enxames - Cardume (PSO + AFSA)

Artificial Fish Swarm Algorithm

Swarming Behavior

O indivíduo busca movimentar-se em

grupo posição central do cardume

Page 51: Inteligência de enxames - Cardume (PSO + AFSA)

Artificial Fish Swarm Algorithm

1) Posição Central, Xc

nf = número de peixes no campo de visão f

Swarming Behavior

f

i

di

f

dcenter

nX

nX

1

,,1

Page 52: Inteligência de enxames - Cardume (PSO + AFSA)

Artificial Fish Swarm Algorithm

2) Crowd Factor δ (fator de lotação), 0 < δ < 1

N = número de peixes do cardumenf/N = densidade populacional

lotado campo :

lotado-não campo : 0

peixes sem :0

N

n

N

n

N

n

f

f

f

Swarming Behavior

Page 53: Inteligência de enxames - Cardume (PSO + AFSA)

Artificial Fish Swarm Algorithm

3) Caso Yc > Yi (melhor solução) e Xc esteja com uma vizinhança não-lotada (nC/N < δ, nC ≠ 0)

Swarming Behavior

Page 54: Inteligência de enxames - Cardume (PSO + AFSA)

Artificial Fish Swarm Algorithm

Análoga à fórmula de movimentação com sucesso no comportamento de busca (searching/pray

behavior) !

Swarming Behavior

Page 55: Inteligência de enxames - Cardume (PSO + AFSA)

Artificial Fish Swarm Algorithm

Swarming Behavior

Page 56: Inteligência de enxames - Cardume (PSO + AFSA)

Artificial Fish Swarm Algorithm

4) Nos casos contrários: Pior solução em Xc do que XiNão há vizinhos visuais: nC = 0A região está lotada: nC/N ≥ 0

O AF terá um movimento livre de procura (pray behavior)

Swarming Behavior

Page 57: Inteligência de enxames - Cardume (PSO + AFSA)

Artificial Fish Swarm Algorithm

Following (seguir) Behavior

Quando um peixe acha comida, os vizinhos

seguirão este

Page 58: Inteligência de enxames - Cardume (PSO + AFSA)

Artificial Fish Swarm Algorithm

1) Peixes seguirão aquele que representar a melhor solução da vizinhança (xn):

Condições: Yn > Yi (Yn é melhor que Yi)nn/N < δ, nn ≠ 0

Following Behavior

Page 59: Inteligência de enxames - Cardume (PSO + AFSA)

Artificial Fish Swarm Algorithm

2) Nos casos contrários: Pior solução em Xn do que XiNão há vizinhos visuais: nn = 0A região está lotada: nn/N ≥ 0

O AF terá um movimento livre de procura (pray behavior)

Que nem ocorre no following behavior

Following Behavior

Page 60: Inteligência de enxames - Cardume (PSO + AFSA)

Artificial Fish Swarm Algorithm

Workflow e Pseudo-código

Page 61: Inteligência de enxames - Cardume (PSO + AFSA)

Artificial Fish Swarm Algorithm

Pontos Fortes

• Boa robustez• Habilidade de busca global• Tolerância à definição de parâmetros• Insensitivo aos valores iniciais (quando

parâmetros não mudam)

Page 62: Inteligência de enxames - Cardume (PSO + AFSA)

Artificial Fish Swarm Algorithm

Pontos Fracos

• Exploration x Exploitation• Tamanho de Step e Visual

• Estrutura complexa com o ajuste dos parâmetros e falhas nestes• Step > Dis(i,j)• Movimentação em dimensões do espaço com

diferentes tamanhos• Desperdício de carga computacional

• Following ou Swarming é descartado• Custo de cálculo de following

Page 63: Inteligência de enxames - Cardume (PSO + AFSA)

Artificial Fish Swarm Algorithm

Modificações & Resultados

[1] HAP (híbrido de PSO e AFSA), para treinamento de redes neurais feedforward

Função:t = sin(π × p)

Page 64: Inteligência de enxames - Cardume (PSO + AFSA)

Artificial Fish Swarm Algorithm

Modificações & Resultados

Page 65: Inteligência de enxames - Cardume (PSO + AFSA)

Artificial Fish Swarm Algorithm

Modificações & Resultados

[2] Problema do Caixeiro Viajante, comparando os algoritmos:AS – Ant SystemDPSO – Discrete PSOAFSA – AFSA1 (δ fixo) e AFSA2 (δ adaptativo)

δ adaptativo usado: δ diminui 20% a cada 25 iterações sem mudança no melhor fitness

encontrado pelo cardume

Page 66: Inteligência de enxames - Cardume (PSO + AFSA)

Artificial Fish Swarm Algorithm

Modificações & Resultados

Page 67: Inteligência de enxames - Cardume (PSO + AFSA)

Artificial Fish Swarm Algorithm

Modificações & Resultados

Após 100 iterações

Page 68: Inteligência de enxames - Cardume (PSO + AFSA)

Artificial Fish Swarm Algorithm

Modificações & Resultados

[3] Problema de Alocação de Ancoradouro (Berthallocation problem)

Page 69: Inteligência de enxames - Cardume (PSO + AFSA)

Artificial Fish Swarm Algorithm

Modificações & Resultados

Solução ótima:x1=(1,5,7,6;3,4,2) ou x2=(1,5,4;3,2,7,6)Y(x1)=Y(x2)=73

Page 70: Inteligência de enxames - Cardume (PSO + AFSA)

Artificial Fish Swarm Algorithm

Page 71: Inteligência de enxames - Cardume (PSO + AFSA)

Artificial Fish Swarm Algorithm

Page 72: Inteligência de enxames - Cardume (PSO + AFSA)

Artificial Fish Swarm Algorithm

Na figura, visual = 2

Para 10 peixes, de modo geral apenas

convergiu para 3<visual<7

Page 73: Inteligência de enxames - Cardume (PSO + AFSA)

Artificial Fish Swarm Algorithm

Page 74: Inteligência de enxames - Cardume (PSO + AFSA)

Artificial Fish Swarm Algorithm

GA = Genetic Algorithm

GASA = híbrido GA + Simulated Annealing

Número de iterações ACO (Ant Colony Optimization)

= 8

Page 75: Inteligência de enxames - Cardume (PSO + AFSA)

Artificial Fish Swarm Algorithm

Há muitas outras modificações, híbridos, etc.:

• mAFS – Modified AFS [4]

• mAFS-P – Modified AFS Priority-based [4]

• MAFSA – Modified AFSA {5]

• Fuzzy Adaptive Artificial Fish Swarm Algorithm [6]

E até uma abordagem criada na UPE (Universidade de Pernambuco):

• FSS - Fish School Search [7]

Page 76: Inteligência de enxames - Cardume (PSO + AFSA)

[1] http://www.fabriciobreve.com/material/compavancada/CA-Aula8-InteligenciaDeEnxames.pdf

[2] ftp://ftp.dca.fee.unicamp.br/pub/docs/vonzuben/ia013_1s07/topico4_07.pdf

[3] http://www.scielo.br/pdf/ca/v20n3/02.pdf

[4] Eberhart, R. C. & Kennedy, J. (2001). Swarm Intelligence

[5] http://www.dep.uminho.pt/EscolaEAs/palestras/Inteligencia%20de%20enxames%20-%20P2%20PSO%20-%20UFMG%20-%2023_10_2009%20P&B.pdf

[6] http://wiki.icmc.usp.br/images/e/eb/Aula_4_CB_Enxames_PSO.pdf

[7] http://www.fabriciobreve.com/material/compavancada/CA-Aula9-InteligenciaDeEnxamesP2.pdf

[8] http://www.swarmintelligence.org/tutorials.php

[9] http://web.ist.utl.pt/gdgp/VA/pso.htm

Bibliografia e referências

Page 77: Inteligência de enxames - Cardume (PSO + AFSA)

[10] Ben Niu , Li Li, A Hybrid Particle Swarm Optimization for Feed-Forward Neural Network Training, Proceedings of the 4th international conference on Intelligent Computing: Advanced Intelligent Computing Theories and Applications - with Aspects of Artificial Intelligence, September 15-18, 2008, Shanghai, China [2]

[11] http://www.infoteca.inf.br/contecsi/smarty/templates/arquivos_template/upload_arquivos/acervo/docs/PDFs/068.pdf

[12] http://www.mecs-press.org/ijisa/ijisa-v2-n1/IJISA-V2-N1-6.pdf

[13] http://repositorium.sdum.uminho.pt/bitstream/1822/14478/1/AFSmodified_ICCSA.pdf[14] http://www.ijcte.org/papers/003.pdf

[15] http://ceit.aut.ac.ir/~meybodi/paper/yazdani-Springer-Fuzzy-Fish%20Swarm-2010.pdf

[16] http://www.fbln.pro.br/fss/

Bibliografia e referências