Você está na página 1de 5

Enxames de partculas (PSO)

Inspirao vem de um conjunto de conceitos bem diferentes dos de insetos sociais:

Enxames de Partculas
Computao Natural Gisele L. Pappa

Psicologia social Interaes entre indivduos Inteligncia resultado de interaes entre os indivduos (e adaptao)

Enxames de partculas consistem em um conjunto de algoritmos inspirados no comportamento natural de grupos

Idias Bsicas - PSO


Em PSO, partculas no tem autonomia ou especializao Assim, uma metfora em alto nvel (pessoas so todas diferentes) Com pessoas, interaes levam a mudanas Comportamento social ajuda os indivduos de uma espcie a se adaptarem ao ambiente

Idias Bsicas - PSO


Criados para simular sociedades de indivduos Esses indivduos esto trabalhando em um problemas... ... e sendo influenciados por seus vizinhos Altamente influenciados por interaes entre humanos e entre animais Idias so transmitidas, modificadas, afetam as pessoas e podem ser modificadas

Princpios bsicos de adaptao cultural (de acordo com a psicologia)


Avaliar todo organismo precisa avaliar estmulos
Pre-requisito para a aprendizagem detectar estmulos positivos ou negativos

Idia bsicas - PSO


Partcula representa um indivduo com 2 tipos de informao:
Experincia prpria (ele sabe que escolhas foram as melhores no passado) Conhecimento de outros indivduos, suas escolhas e sucesso associado

Comparar as pessoas se comparam umas com as outras


Essas comparaes nos levam a melhorar

Imitar as pessoas tendem a imitar o comportamento de outras (especialmente das bem sucedidas)
Poucos animais so capazes de imitar uns aos outros

Utiliza o conceito de uma partcula com uma velocidade se movendo num hiperespao de busca (velocidade e posio)

Como funciona o algoritmo?


Inicialmente, partculas so colocadas aleatoriamente nesse hiperespao (com velocidades tambm aleatrias) A cada interao: Velocidade aumenta em direo a melhor posio anterior (onde a partcula possua altos valores de fitness) E em direo a melhor posio de seus vizinhos (posio da maior fitness das partculas vizinhas)

O algoritmo PSO
Indivduos interagem com um nmero k de vizinhos Uma partcula possui Uma coordenada no espao de busca (xi) Uma velocidade (vi) Conceito de melhor posio (fitness) Altera a velocidade para nos levar a essa posio Esquecer ou aprender so vistos como aumentar ou diminuir o valor da posio da partcula

O Algoritmo PSO
1. Inicializao: cria uma populao inicial aleatoriamente 2. Loop para populao: para cada partcula:
a) Avalia o quo boa ela (Se ela for melhor que a melhor partcula at o momento, ele se torna a melhor) b) Avaliao da vizinhana c) Determina a velocidade Vi d) Atualiza a partcula (aplica regra de atualizao)

O algoritmo PSO
Atualizando a posio da partcula: xi(t) = f(xi(t-1), vi(t-1), pi, pg) Onde: Pi = local onde a melhor fitness do indivduo foi encontrada Pg= local onde a melhor fitness do melhor vizinho foi encontrada

3. Ciclo: repete o loop acima at convergir ou alcanar um critrio de parada

A Velocidade
vi(t) = vi(t-1) + c11(pi-xi(t-1)) + c22(pg-xi(t-1)) : constante de inrcia (mantm partculas em movimento) C1,2 : constantes que afetam o quanto cada uma das melhores partculas afetam a partcula atual 1 escalar aleatrio (taxa de aprendizagem)

Inicializao

Vizinhana

Tipos de PSO
Existem dois tipos de algoritmos bsicos
Um para dados contnuos
Mais utilizado e, consequentemente, mais estudado

Outro para dados binrios

Geogrfica

Social

PSO para dados contnuos


Uma partcula consiste em um vetor de nmeros reais (valores das variveis) Notao para a partcula i: xi = < xi1, , xij, , xiD> onde xij = o valor da cordenada j da partcula i e j = 1,, nmero de variveis (nmero de dimenses: D) x2 Um exemplo simples de 3 partculas x12 x1 x3 em um espao 2D x11

PSO para dados contnuos


A velocidade de uma partcula um vetor de nmeros reais adicionado a posio da partcula em um espao de tempo (uma interao) Velocidade = mudana de posio (Velocidade = distncia/tempo, onde a cada interao o tempo acrescido de 1) A velocidade de uma partcula influenciada pela melhor posio da partcula anteriormente, e a posio de seu melhor vizinho

PSO para dados contnuos


Ajuste de posio: xi(t) = xi(t 1) + vi(t), onde xi(t), xi(t 1) so as posies da partcula i nos tempos t e t 1 vi(t) a velocidade da partcula i no tempo t xi e vi so vetores de nmeros reais, ento a equao acima pode ser reescrita como: para cada dimenso (varivel) j, j = 1,,D: xij(t) = xij(t 1) + vij(t)

PSO para dados contnuos


Para evitar que a partcula exploda, devemos limitar a velocidade Para cada dimenso (varivel) j, j = 1,, D: se vij(t) > Vmax ento vij(t) = Vmax seno se vij(t) < Vmax ento vij(t) = Vmax

Pseudocdigo do PSO para Dados Contnuos (verso sem frmulas)


FOR i = 1 to nmero de partculas
Crie aleatorimanete a partcula i Calcule a fitness de i (Fiti) Faa pi = xi

Parmetros do PSO
Nmero de partculas na populao e nmero de interaes
Em geral, quanto mais partculas e quanto mais interaes, maior a chance de encontrar uma soluo (quase)-tima, mas mais lento o PSO vai ser

// inicializao

LOOP (at o critrio de parada ser satisfeito ex. Nmero mximo de interaes) FOR i = 1 to nmero de partculas // adaptao IF Fit(xi) > Fit(pi) THEN pi = xi // salva a melhor posio anterior de i em pi END IF pg = vizinho com a melhor fitness entre todos os vizinhos de i FOR j = 1 to nmero de dimenses Calcule a velocidade da partcula i na dimenso j, fazendo com que a partcula seja atrada para a sua melhor posio at o momento e a posio de seu melhor vizinho IF velocidade no estiver no intervalo [Vmax, Vmax] THEN modifique a velocidade de forma que ela esteja no intervalo END IF Atualiza a posio na dimensio j, adicionando velocidade a posio

Fator de inrcia w: menor que 1, mas no muito pequeno O que acontece se: w maior que 1?
Velocidade aumenta rapidamente com o tempo

w muito pequeno?
Partcula pra rpido, levando a convergncia prematura

w pode ser fixo ou variado durante a busca. Podemos comear com w = 0.7 e diminuir esse valor linearmente ao longo das interaes

PSO para Dados binrios


Uma soluo candidata representada por um string binrio prob(xij = 1) representa a probabilidade da partcula i, varivel (dimenso) j ter valor 1.
Isso tambm significa que prob(xij = 0) = 1 prob(xij = 1), uma vez que a soma das probabilidades de um 1 e um 0 ocorrerem devem somar 1 por definio

PSO para Dados binrios


Em dados binrios, a velocidade vij utilizada para atualizar o valor de xij (estado do bit j na partcula i) de maneira probabilstica: prob(xij = 1)(t) calculada atravs de um mapeamento do valor da velocidade no intervalo [01], chamada funo de squashing: 1 prob(xij = 1)(t) = , onde e = 2.718 1 + e(Vij(t)) Para converter a probabilidade em um estado de bit, para cada bit j da partcula i, gere um nmero aleatrio rij(t), e: IF rij(t) < prob(xij = 1)(t) THEN xij(t) = 1; ELSE xij(t) = 0

As noes de posio e velocidade de uma partcula para dados contnuos so re-definidas posio representa o estado da string de bits
xij= valor do bit da partcula i na dimenso j

velocidade a tendncia de se escolher o estado 1


vij = tendncia da partcula i, dimenso j receber o valor 1

Aplicaes
Anlise de dados
Agrupamento e classificao

Swarm bots Swarm music

Otimizando os parmetros de um Jogo de Corrida

Objetivo
Encontrar

Parmetros
Cada partcula representa um conjunto de 10 parmetros que representam o caminho a ser percorrido 20 partculas so distribudas no espao O algoritmo roda 100 iteraes A fitness dada pelo tempo que o carro leva para completar uma volta

o melhor caminho a ser seguido pelos carros controlados pelo computador em um jogo de corrida

Resultados
Jogador humano leva em mdia 70s para completar uma volta Na primeira iterao do algoritmo, a melhor partcula tinha um tempo de 80s, e a mdia de todas as partculas era de 115 s Ao final da execuo, a melhor partcula completava a volta em 63s, tornando o computador imbatvel por um usurio humano

Agradecimentos
Alguns desses slides foram retirados das aulas de computao natural de Alex A. Freitas e Jon Timmis

Bibliografia
http://www.swarmintelligence.org/ http://www.swarmintelligence.org/tutorials.php Kennedy, J. and Eberhart, R. C. Particle swarm optimization. Proceedings of IEEE International Conference on Neural Networks, Piscataway, NJ. pp. 1942-1948, 1995 http://www.gamasutra.com/features/20051213/ villiers_01.shtml

Você também pode gostar