Você está na página 1de 120

Computao Evolutiva e Algoritmos

Populacionais

Cleber Zanchettin
Tpicos

Simulated Annealing
Tabu Search
Algoritmos Evolutivos
Algoritmos Genticos
Programao Evolutiva
Estratgia Evolutiva
Programao Gentica
Inteligncia de Enxames
Ant Colony Optimization
Particle Swarm Optimization

2
Simulated Annealing e Tabu Search

Cleber Zanchettin
UFPE - Universidade Federal de Pernambuco
CIn - Centro de Informtica

3
Hill Climbing (Subida da Encosta)

Problema de Otimizao:
Seja S o conjunto de solues possveis, em que cada
soluo tem um custo associado.
Objetivo: Encontrar a soluo com menor custo.
Mtodo Hill Climbing:
1 - Escolhe aleatoriamente uma soluo.
2 - Gera uma nova soluo (vizinha) a partir da atual.
3 - Se custo (soluo nova) < custo (soluo atual),
Aceita soluo nova.
Se no,
No aceita soluo nova (continua com a atual).
4 - Repete 2 e 3 at terminarem as iteraes permitidas.

4
Hill Climbing (Subida da Encosta)

Problema do Mtodo Hill Climbing:


Pode ficar preso em mnimos locais (pode estacionar em
um mnimo local, sendo que todas as novas solues
geradas tm custo maior).
Simulated Annealing:
Procura minimizar este problema, podendo aceitar
vizinhos piores com uma dada probabilidade, que diminui
ao longo da execuo.
Tabu Search:
Procura minimizar este problema, aceitando sempre os
vizinhos, sejam melhores ou piores, guardando a melhor
soluo visitada e evitando ciclos na trajetria de busca.

5
Simulated Annealing

Idia bsica:
Se a nova soluo gerada for melhor que a atual (melhor =
menor custo), esta nova soluo aceita.
Se for pior, a nova soluo pode ser aceita com uma dada
probabilidade.
Esta probabilidade controlada por um parmetro chamado
de temperatura, que diminui ao longo das iteraes.

6
Simulated Annealing

Estrutura bsica:
1 - Escolhe aleatoriamente uma soluo.
2 - Gera uma nova soluo (vizinha) a partir da atual.
3 - Se custo (soluo nova) < custo (soluo atual),
Aceita soluo nova.
Se no,
Aceita soluo nova com probabilidade:
p = exp [ (custo(sol. nova) custo(sol. atual)) / Temperatura]
4 - Repete 2 e 3 at terminarem as iteraes permitidas.
Observao:
O parmetro Temperatura vai diminuindo a cada N
iteraes.

7
Simulated Annealing

Probabilidade de aceitar a nova soluo (se o custo


aumentar):

p = exp [ (custo(soluo nova) custo(soluo atual)) / Temperatura].

Mantendo fixo o aumento no custo, se a temperatura


diminuir, a probabilidade diminui.
Com o aumento das iteraes, fica mais difcil aceitar
solues que pioram o custo.
Mantendo fixa a temperatura, se a variao no custo
aumentar, a probabilidade diminui.
Em uma mesma iterao, quanto maior o aumento no custo,
mais difcil aceitar a nova soluo.

8
Simulated Annealing

Implementao:
Representao das solues:
Como as solues sero consideradas no espao de busca.
Funo de custo (ou avaliao):
Nota atribuda a cada soluo.
Operador (ou mecanismo de gerao de vizinhos):
Como novas solues sero geradas a partir da atual.
Esquema de esfriamento:
Como a temperatura ser reduzida ao longo da execuo.
Mximo nmero de iteraes.

9
Problema do Caixeiro Viajante

Representao das solues:


Seqncia de cidades do percurso.
Ex.: s = [B,D,E,C,A]
Funo de custo (ou avaliao):
A Distncia do percurso.
3 2 Ex.: custo(s) = 6+4+5+4+2 = 21
5 4
4 Operador (gerao de vizinhos):
E B
Permutar 2 cidades consecutivas
5 6 escolhidas aleatoriamente.
4 3 Ex.: s = [B,E,D,C,A]
D C Esquema de esfriamento:
5 Temperatura inicial: T0 = 1
Regra de esfriamento: Ti+1 = 0.9 Ti
Mximo de 4 iteraes.

10
Problema do Caixeiro Viajante

Iterao Temp. Soluo Custo Aleatrio Probabilidade Aceita?


0 1 BDECA 21
1 0.9 BDEAC 20 S
2 0.81 BDAEC 22 0.02 e (22 20)/0.81 = 0.085 S

3 0.73 BADEC 19 S

4 0.66 BADCE 21 0.13 e (21 19)/0.66 = 0.047 N

Soluo final: BADEC Custo: 19

11
Tabu Search

Idia bsica:
A partir da soluo atual, gerar um conjunto de novas
solues.
Aceitar sempre a melhor soluo deste conjunto.
Pode ser melhor ou pior que a soluo atual.
Pode haver ciclos na trajetria (aceitar solues que j foram
visitadas).
Guardar na memria:
A melhor soluo encontrada desde o incio da execuo.
Uma Lista Tabu, contendo as K solues mais recentemente
visitadas. Estas solues so proibidas (para evitar ciclos).
A soluo final dada pelo algoritmo a melhor soluo
encontrada desde o incio da execuo, e no a ltima.

12
Tabu Search

Estrutura bsica:
1 - Escolhe aleatoriamente uma soluo.
2 - Guarda a soluo em melhor soluo e na lista tabu.
3 - Gera um conjunto de N solues vizinhas atual.
4 - Aceita a soluo de menor custo entre os N vizinhos
(que no esteja na lista tabu).
5 - Atualiza melhor soluo e insere a nova soluo na
lista tabu.
6 - Repete 3 a 5 at terminarem as iteraes permitidas.
7 - Retorna melhor soluo.
Observao:
A lista tabu guarda as K solues mais recentemente
visitadas.

13
Busca Tabu
Fred Glover (1986) & Pierre Hansen (1986)

14
1o Princpio: Mover para o melhor vizinho

15
1o Princpio: Mover para o melhor vizinho

16
1o Princpio: Mover para o melhor vizinho

Heurstica de descida: Fica-se preso no primeiro timo local

17
1o Princpio: Mover para o melhor vizinho

O melhor vizinho pode ser de piora!

18
1o Princpio: Mover para o melhor vizinho

Problema: Ciclagem

19
2o Princpio: Criar Lista Tabu

TABU

20
2o Princpio: Criar Lista Tabu

21
Problema do Caixeiro Viajante

Representao das solues:


Seqncia de cidades do percurso.
Ex.: s = [B,D,E,C,A]
Funo de custo (ou avaliao):
A
Distncia do percurso.
3 2
5 4 Ex.: custo(s) = 6+4+5+4+2 = 21
E 4 B Operador (gerao de vizinhos):
5 6 Permutar 2 cidades consecutivas,
gerando 5 vizinhos por iterao.
4 3
Ex.: s1 = [D,B,E,C,A]
D C s2 = [B,E,D,C,A]
5 s3 = [B,D,C,E,A]
s4 = [B,D,E,A,C]
s5 = [A,D,E,C,B]
Mximo de 2 iteraes.

22
Problema do Caixeiro Viajante

Iterao Soluo Lista Melhor Soluo Vizinhos Custo


Custo Tabu Custo
BEDCA EBDCA 22
BDECA 21
0 BEDCA 19 BEDCA 19 BECDA 21
BEDAC 20
AEDCB 17
BEDCA EADCB 20
AEDCB ADECB 19
1 AEDCB 17 AEDCB 17 AECDB 21
AEDBC 20
BEDCA 19 X

23
Problema do Caixeiro Viajante

Iterao Soluo Lista Melhor Soluo Vizinhos Custo


Custo Tabu Custo
BEDCA EADCB 20
AEDCB ADECB 19
1 AEDCB 17 AEDCB 17 AECDB 21
AEDBC 20
BEDCA 19 X
BEDCA DAECB 22
AEDCB AEDCB 17 X
2 ADECB 19 ADECB AEDCB 17 ADCEB 21
ADEBC 20
BDECA 21
Soluo final: AEDCB 17

24
Observaes Finais

Lista Tabu:
Para problemas em que a soluo uma seqncia binria,
comum armazenar na lista tabu apenas a posio do bit que foi
modificado, em vez de guardar toda a soluo.
Esforo computacional por iterao:
Uma iterao de Tabu Search exige mais esforo computacional
do que uma iterao de Simulated Annealing (mais operaes).
Porm, em geral, Tabu Search precisa de menos iteraes para
convergir, pois avalia um conjunto de vizinhos a cada iterao.
Variaes dos algoritmos:
Diversas melhorias foram propostas para Simulated Annealing e
Tabu Search; o que foi visto nesta aula so apenas as noes
bsicas destes algoritmos.

25
Applet

http://natcomp.liacs.nl/NC/applets/SimulatedAnnealingTSPApplet/Simul
atedAnnealingTSPApplet.html

http://siebn.de/other/tabusearch/

26
Bibliografia

D.T. Pham and D. Karaboga, Introduction, Intelligent


Optimisation Techniques (Edited by D.T. Pham and
D. Karaboga), pp. 1-50, Springer-Verlag, 2000.

27
Computao Evolutiva

Baseada na Teoria Evolutiva de Darwin


Uma ou mais populaes de indivduos competindo por recursos
H mudanas na populao
Nascimentos e mortes

Conceito de fitness ou de aptido


Reflete a habilidade de um indivduo sobreviver e reproduzir no
ambiente

Conceito da herana variacional


Filhos so similares aos pais, no entanto, no so idnticos

Prof. Rodrigo Fernandes de Mello


Computao Evolutiva

Podemos propor um algoritmo simples:

Etapas:

Como iremos representar os indivduos?


Algoritmo:

Gerar uma populao inicial com M indivduos

Do forever
Selecione um membro da populao para ser o Pai

Utilize o Pai para produzir um filho

Similar, mas no igual

Selecione um membro da Populao para morrer

Prof. Rodrigo Fernandes de Mello


Computao Evolutiva

Melhorando nosso algoritmo:


Gerar aleatoriamente uma populao inicial de M indivduos
segundo uma distribuio uniforme
Computar a funo de fitness para os M indivduos
Do Forever:
Selecione um Pai de maneira uniforme
Utilize o Pai para produzir um Filho
Faa uma cpia idntica do Pai
Ento probabilisticamente altere (mutao) essa cpia
Calcule o fitness para o Filho
Selecione um indivduo da populao:
Compare seu fitness com o do Filho
Aquele com menor fitness (ou pior aptido) morre
Perceba a estocasticidade do processo!
Prof. Rodrigo Fernandes de Mello
Computao Evolutiva

A Estocasticidade:
Faz com que precisemos executar esse algoritmo por vrias iteraes
Executar para sempre?
No, pois precisamos de uma soluo
Quando chegamos em uma boa soluo
Podemos analisar se esse algoritmo est convergindo em
termos de fitness
Para isso podemos plotar o fitness mdio da populao e
seu desvio a cada iterao
Assim chegamos em um nmero razovel de iteraes
Ou podemos colocar essa variao como critrio de
parada automtico!

Prof. Rodrigo Fernandes de Mello


Computao Evolutiva

Agora que temos uma noo do que se trata:

Sewell Wright (1930s)


Estudou superfcies de fitness e como um sistema evolutivo poderia
explorar tal funo
Essa explorao da superfcie em busca de uma melhor soluo fez com
que a rea de Computao Evolutiva estivesse muito ligada
Otimizao

Friedman (1956)
Podemos ver a Computao Evolutiva como rea que permite modelar
sistemas que evoluem ao longo do tempo (dinmicos)
Assim podemos modelar esses sistemas dinmicos:
Ex: Comportamento do crescimento da populao humana
Ou at mesmo utilizar a rea para controle adaptativo:
Ex: existe um sistema A que observamos, coletamos seus dados e
utilizamos Computao Evolutiva para adaptar parmetros desse
sistema A
Prof. Rodrigo Fernandes de Mello
Computao Evolutiva

Nos anos 1960s:


Cresceu o interesse por modelar aspectos evolutivos de maneira
computacional
Isso se deve ao aumento na produo e acesso a computadores digitais

Rechenberg (1965)
Comea a estudar a soluo de problemas complexos de otimizao
usando Computao Evolutiva

Fogel et al (1966)
Uso de agentes inteligentes
Mquinas de estado finito
Desenvolve a programao evolutiva

Holland (1967)
Estudou o emprego de Computao Evolutiva para modelar sistemas
adaptativos
Desenvolveu conceitos que levaram, mais tarde, aos algoritmos
genticos mais simples
Prof. Rodrigo Fernandes de Mello
Computao Evolutiva

Nos anos 1970s:

Programao Evolutiva:

Considerou essencialmente populaes de tamanho fixo (N)


Em que cada indivduo (Pai) produziria somente um Filho
Os 2N indivduos seriam ordenados pelo fitness:
Somente os N mais aptos sobreviveriam

Fogel et al (1976)
Sugere reproduo:
Assexuada (mutao)
Sexuada (recombinao)

Prof. Rodrigo Fernandes de Mello


Computao Evolutiva

Nos anos 1970s:

Estratgia Evolutiva:

Cada indivduo da populao geraria outros k Filhos


O melhor dos k+1 indivduos seria mantido na prxima populao

Reproduo assexuada (mutao)


Observaram que excesso de mutaes poderia gerar indivduos
muito aleatrios
Levando queda do fitness ao longo das iteraes
Ou fazendo com que fitness varie demais

Prof. Rodrigo Fernandes de Mello


Computao Evolutiva

Nos anos 1970s:


Algoritmos Genticos:
Objetivo foi o de propor um algoritmo independente do problema
abordado (meta-heurstica)
Representao de indivduos por meio de strings
Strings binrias so as mais comuns nesse perodo
Mutao:
Bit-flip
Recombinao (Cruzamento):
1-point crossover
Em primeiros estudos:
N Pais geravam N Filhos
Filhos substituiam, incondicionalmente, Pais
Outros estudos perceberam que se deveria manter parte dos Pais
Pais que apresentam maior fitness seriam mantidos (ou teriam
maior probabilidade de serem mantidos) para repassar suas
caractersticas
Prof. Rodrigo Fernandes de Mello
Computao Evolutiva

Nos anos 1980s para frente:

Melhorias constantes na forma de:

Gerar populaes
Definir funes de fitness mais adequadas para determinados
problemas
Operadores de mutao e recombinao

Prof. Rodrigo Fernandes de Mello


Computao Evolutiva: Nosso Primeiro Algoritmo

Algoritmo Verso 1 ou Modelo Steady State:


Gerar aleatoriamente uma populao inicial de M indivduos
segundo uma distribuio uniforme
Computar a funo de fitness para os M indivduos
Do Forever:
Selecione um Pai de maneira uniforme
Utilize o Pai para produzir um Filho
Faa uma cpia idntica do Pai
Ento probabilisticamente altere (mutao) essa cpia
Calcule o fitness para o Filho
Selecione um indivduo da populao:
Compare seu fitness com o do Filho
Aquele com menor fitness morre

Prof. Rodrigo Fernandes de Mello


Computao Evolutiva: Nosso Primeiro Algoritmo

Algoritmo Verso 2 ou Modelo em Batch ou de Gerao:


Gerar aleatoriamente uma populao inicial de M indivduos segundo
uma distribuio uniforme
Computar a funo de fitness para os M indivduos
Do Forever:
Para k Filhos
Selecione um Pai de maneira uniforme
Utilize o Pai para produzir um Filho
Faa uma cpia idntica do Pai
Ento probabilisticamente altere (mutao) essa cpia
Calcule o fitness para o Filho
Mantenha o Filho em uma Populao Separada
Para i de 1 at k:
Force o Filho i a competir com um indivduo aleatrio da
Populao Pai
Compare seu fitness com o do Filho
Aquele com menor fitness morre
Prof. Rodrigo Fernandes de Mello
Computao Evolutiva: Programao Evolutiva

Uma questo relativa a nosso primeiro algoritmo:


Como um Pai selecionado de maneira aleatria (uniforme) para
reproduo, pode ser que algum desses Pais nunca seja selecionado
Pior, pode ser que esse Pai tenha alto fitness e poderia gerar um
bom filho

De maneira similar, a seleo aleatria de um Pai para competir com


um Filho pode fazer com que um Pai nunca seja selecionado
Pior, pode ser que esse Pai tenha baixo fitness e no seja
removido da prxima populao

Podemos, portanto, deixar nosso primeiro algoritmo mais


determinstico:
Assumir que a populao de Pais e Filhos tem mesmo tamanho

Logo...

Prof. Rodrigo Fernandes de Mello


Computao Evolutiva: Programao Evolutiva

Algoritmo (Primeiro Algoritmo de Programao Evolutiva, Fogel et al 1966):


Gerar aleatoriamente uma populao inicial de M indivduos
segundo uma distribuio uniforme
Computar a funo de fitness para os M indivduos
Do Forever:
Para i de 1 at M
Selecione o Pai i e o utilize para produzir um Filho
Faa uma cpia idntica do Pai
Ento probabilisticamente altere (mutao) essa cpia
Calcule o fitness para o Filho
Mantenha o Filho em uma Populao Separada
Unifique as populaes:
Ordene os 2M indivduos pelo fitness
Mantenha apenas os M indivduos mais aptos

Prof. Rodrigo Fernandes de Mello


Computao Evolutiva: Programao Evolutiva

Qual a diferena entre os algoritmos?


Programao Evolutiva:
Determinstico no sentido de que cada Pai gera, obrigatoriamente,
um filho
Converge mais rapidamente
Pois emprega um conceito mais forte de elitismo
Elitismo o conceito de sobrevivncia do mais apto
Essa tcnica:
Tem menor aleatoriedade
Portanto, para determinados problemas, pode tender a um mnimo
local
Depende do formato da funo de fitness
Logo:
O equilbrio entre o componente de variao populacional (por
exemplo, por mutao) versus o componente de reduo de
variao (seleo de indivduos para uma prxima populao) um
fator importante a ser considerado no projeto de Algoritmos
Evolutivos
Prof. Rodrigo Fernandes de Mello
Computao Evolutiva: Estratgias Evolutivas

Os algoritmos anteriores:
Produzem um pequeno nmero de Filhos
Pode ser que deixemos de explorar possibilidades com isso

Algoritmos de Estratgia Evolutiva:


Produzem maior nmero de Filhos
Podemos simplesmente mudar os algoritmos anteriores
Surgem, no entanto, duas questes:
Quantos Filhos cada Pai deveria produzir?
Dado o fato que os Pais so mais utilizados ou melhor
explorados para produzir Filhos, no poderamos reduzir a
populao de Pais?

Prof. Rodrigo Fernandes de Mello


Computao Evolutiva: Estratgias Evolutivas

Se mutaes esto trazendo bons resultados


Ento deixemos mais mutaes ocorrerem

Rechenberg (1965)
Prope a seguinte tcnica chamada 1:5
Se mais de 20% dos indivduos mutados vencem na competio,
ento o percentual de mutao utilizado muito conservative
Se menos de 20% dos indivduos mutados vencem na
competio, ento a variao causada pela mutao negative
Muito explorative
Taxa de mutao deveria ser reduzida

Prof. Rodrigo Fernandes de Mello


Computao Evolutiva: Algoritmos Genticos

Algoritmo Gentico Verso 1:


Gerar uma populao de M indivduos
Cada indivduo tambm chamado de cromossomo
Os elementos do indivduo so chamados genes
Repetir:
Computar e manter o fitness u(i) para cada indivduo i na populao
Para gerar M Filhos:
Selecionar, aleatoriamente, 2 Pais para a reproduo
Cada Pai tem probabilidade proporcional a seu fitness u(i) de
ser selecionado
Cruzar Pais (usando crossover) e realizar mutao no filho segundo
certa probabilidade
Manter somente os Filhos na populao seguinte

Permite combinar boas caractersticas dos indivduos usando recombinao (do


ingls crossover)

Prof. Rodrigo Fernandes de Mello


Problema 1

Problema: Use um AG 1000


para encontrar o ponto
800
mximo da funo:
600
f ( x) x 2
400
com x sujeito as seguintes 200
restries:
0
0 x 31 0 5 10 15 20 25 30
x inteiro

46
Indivduo
Cromossomo
Estrutura de dados que representa uma possvel
soluo para o problema.
Os parmetros do problema de otimizao so
representados por cadeias de valores.
Exemplos:
Vetores de reais, (2.345, 4.3454, 5.1, 3.4)
Cadeias de bits, (111011011)
Vetores de inteiros, (1,4,2,5,2,8)
ou outra estrutura de dados.

47
Individuo (II)

Aptido
Nota associada ao indviduo que avalia quo boa a
soluo por ele representada.
Aptido pode ser:
Igual a funo objetivo (raramente usado na prtica).
Resultado do escalonamento da funo objetivo.
Baseado no ranking do indviduo da populao.

48
Cromossomo do Problema 1

Cromossomos binrios com 5 bits:


0 = 00000
31 = 11111
Aptido
Neste problema, a aptido pode ser a prpria
funo objetivo.
Exemplo:
aptido(00011) = f(3) = 9

49
Seleo

Seleo
Imitao da seleo natural.
Os melhores indivduos (maior aptido) so
selecionados para gerar filhos atravs de crossover e
mutao.
Dirige o AG para as melhores regies do espao de
busca.
Tipos mais comuns de seleo
Proporcional a aptido.
Torneio.

50
Populao Inicial do Problema 1

aleatria (mas quando possvel, o conhecimento da aplicao


pode ser utilizado para definir a populao inicial)

cromossomos x f (x ) Prob. de seleo


A1= 11001 25 625 54,5%
Pop. A2= 01111 15 225 19,6%
inicial
A3= 01110 14 196 17,1%
A4= 01010 10 100 8,7%

f ( xi )
Probabilidade de seleo pi

N
proporcional a aptido
k 1
f ( xk )

51
Seleo proporcional
a aptido (Roleta)

Pais selecionados
8,7%
A1 = 1 1 0 0 1
A4
17,1% A2 = 0 1 1 1 1
54,5% A3
A1 A2 = 0 1 1 1 1
19,6%
A2 A1 = 1 1 0 0 1

52
Seleo por Torneio

Escolhe-se n (tipicamente 2) indivduos aleatoriamente


da populao e o melhor selecionado.

53
Crossover e Mutao

Combinam pais selecionados para produo de filhos.

Principais mecanismos de busca do AG.

Permite explorar reas desconhecidas do espao de


busca.

54
Crossover de 1 ponto

O Ponto de
corte
O crossover aplicado escolhido
1 1 0 0 1 aleatriamente
com uma dada Pais
probabilidade 01111
denominada taxa de
crossover (60% a 90%) 11011
Filhos
01101

Se o crossover aplicado os pais trocam suas


caldas gerando dois filhos, caso contrrio os dois
filhos sero cpias exatas dos pais.

55
Mutao

Mutao inverte os valores dos bits. Antes da 0 1 1 0 1


mutao
A mutao aplicada com dada Depois 0 0 1 0 1
probabilidade, denominada taxa
de mutao (~1%), em cada um Aqui, apenas o 2o.bit
passou no teste de
dos bits do cromossomo. probabilidade

A taxa de mutao no deve ser nem alta nem baixa,


mas o suficiente para assegurar a diversidade de
cromossomos na populao.

56
A primeira gerao
do Problema 1

Pais Filhos
crossover mutao
A1 = 1 1 0 0 1 11011 11011
A2 = 0 1 1 1 1 01101 00101
Nova
crossover mutao pop.
A2 = 0 1 1 1 1 01111 10111
A1 = 1 1 0 0 1 11001 11001

57
A primeira gerao
do Problema 1 (II)

cromossomos prob. de
x f (x )
seleo
1 11011 27 729 29,1%
2 11001 25 625 24,9%
3 11001 25 625 24,9%
4 10111 23 529 21,1%

58
As demais geraes
do Problema 1

x f (x )
1 110 11 27 729
Segunda Gerao
2 110 00 24 576
3 101 11 23 529
4 101 01 21 441

x f (x )
Terceira Gerao 1 1101 1 27 729
2 1011 1 23 529
3 0111 1 15 225
4 0011 1 7 49

59
As demais geraes
do Problema 1 (II)
x f (x )
1 111 11 31 961
Quarta Gerao
2 110 11 27 729
3 101 11 23 529
4 101 11 23 529

x f (x )
Quinta Gerao 1 111 11 31 961
2 111 11 31 961
3 111 11 31 961
4 101 11 23 529

60
Problema 2 TSP para 30 cidades

Prof. Aluzio Arajo - http://www.cin.ufpe.br/~aluizioa

61
Problema 3 Primeira soluo

Prof. Aluzio Arajo - http://www.cin.ufpe.br/~aluizioa

62
Problema 3 Segunda soluo

Prof. Aluzio Arajo - http://www.cin.ufpe.br/~aluizioa

63
Problema 3 Terceira soluo

Prof. Aluzio Arajo - http://www.cin.ufpe.br/~aluizioa

64
Problema 3 Melhor soluo

Prof. Aluzio Arajo - http://www.cin.ufpe.br/~aluizioa

65
Problema 3 Progresso da evoluo

Prof. Aluzio Arajo - http://www.cin.ufpe.br/~aluizioa

66
Elitismo

O crossover ou mutao podem destruir o melhor


indivduo.
Por que perder a melhor soluo encontrada?
Elitismo transfere a cpia do melhor individuo para a
gerao seguinte.

67
Elitismo no Problema 2

3,0
AG com elitismo
2,8 AG sem elitismo
Funo objetivo

2,6

2,4

2,2

2,0
0 5 10 15 20 25
Gerao

AG com elitismo melhor ?

68
Computao Evolutiva: Algoritmos Genticos

Questes relevantes:
H problemas em que os operadores de mutao e crossover devem ser
adaptados
Pode ser que um indivduo no seja representado por um vetor
binrio, mas sim por um vetor de inteiros ou caracteres, ou at
mesmo por uma matriz
Formas mais complexas de codificao de indivduos tambm tm
sido propostas
Codificar usando rvore, por exemplo
Pode-se propor novos operadores
Isso tem se tornado comum para resolver problemas especficos
H ainda problemas multiobjetivo
Podemos simplificar vrios objetivos em uma nica funo de fitness
Ou podemos utilizar dois ou mais objetivos em conjunto

Prof. Rodrigo Fernandes de Mello


Referncias

Henneth A. de Jong, Evolutionary Computation: A Unified


Approach, MIT, 2006

Prof. Rodrigo Fernandes de Mello


Applet:
http://www.glauserweb.ch/gentore.htm
https://www.ads.tuwien.ac.at/raidl/tspga/TSPGA.html
http://math.hws.edu/eck/jsdemo/jsGeneticAlgorithm.html
http://www.ewh.ieee.org/soc/es/May2001/14/Begin.htm

71
Particle Swarm Optimization (Pso)

72
Exemplo de cooperao

73
Idia principal

Cada partcula busca um ponto de timo


Cada partcula est em movimento e possui
uma velocidade
Cada partcula armazena sua melhor posio
encontrada (best-result-so-far ou personal best)

Porm isso no suficiente, as partculas precisam de


ajuda para identificar os melhores locais de busca
Idia principal II

As partculas no enxame cooperam entre si. Elas


trocam informaes sobre o que descobrirar nos
locais que j visitaram

A cooperao muito simples:


Uma partcula possui uma vizinhana associada
Uma partcula conhece o desempenho (fitnesses) das
partculas na sua vizinhana e usa a posio da partcula
com melhor desempenho
Esta posio utilizada para ajustar a velocidade da
partcula
Inicializao. Posio e velocidade
O que uma partcula faz

Em cada passo (timestep), a partcula se move


para uma nova posio. Ela faz isso ajustando
sua velocidade dado por:
Velocidade atual +

Uma poro ponderada na direo de sua melhor posio +


Uma poro ponderada na direo da melhor posio da vizinhana

Aps definida a nova velocidade, a nova posio definida


pela posio atual + a nova velocidade
Vizinhana

geogrfica
social
Vizinhana

Global
Vizinhana circular

1
3-vizinhana da
8 2
partcula 1

7 3

Crculo virtual 6 4

5
As partculas ajustam sua posio de acordo com
um compromisso psicossocial entre o conforto de
um indivduo e o que a sociedade reconhece

My best
perf.

pi
Here I am! The best perf. of
x my neighbours
pg

v
Pseudocode
http://www.swarmintelligence.org/tutorials.php

Equation (a)
v[] = c0 *v[]
+ c1 * rand() * (pbest[] - present[])
+ c2 * rand() * (gbest[] - present[])
(in the original method, c0=1, but many
researchers now play with this parameter)

Equation (b)
present[] = present[] + v[]
Pseudocode
http://www.swarmintelligence.org/tutorials.php

For each particle


Initialize particle
END

Do
For each particle
Calculate fitness value
If the fitness value is better than its peronal best
set current value as the new pBest
End

Choose the particle with the best fitness value of all as gBest
For each particle
Calculate particle velocity according equation (a)
Update particle position according equation (b)
End
While maximum iterations or minimum error criteria is not attained
Pseudocode
http://www.swarmintelligence.org/tutorials.php

As velocidades das partculas em cada


dimenso esto vinculadas a uma
velocidade mxima Vmax.

Se a soma das aceleraes ultrapassar o


valor de Vmax (definido pelo projetista),
esta velocidade limitada a Vmax.
Ilustrao

timo
global
Parametros

Nmero de partculas
C0 (importncia da posio atual)
C1 (importncia do personal best)
C2 (importncia do neighbourhood best)

2002-04-24
Parmetros

Nmero de partculas (1050)


normalmente so suficientes

Normalmente C1 + C2 = 4. Sem outra razo


seno testes empricos

Vmax
muito baixo, muito lento
muito alto, muito instvel.
Exemplos de aplicao

Griewank Rastrigin

Rosenbrock
... resultados
timo=0, dimenso=30, melhor resultado aps 40.000 iteraes

3 0 D fu n ctio n P S O T yp e 1 " E v o lu tio n ary algo .


(A n g elin e 9 8 )
G riew an k [ 3 0 0 ] 0 .0 0 3 9 4 4 0 .4 0 3 3

R astrigin [ 5 ] 8 2 .9 5 6 1 8 4 6 .4 6 8 9

R o sen b ro ck [ 1 0 ] 5 0 .1 9 3 8 7 7 1 6 1 0 .3 5 9
Applet PSO
http://natcomp.liacs.nl/NC/applets/SwarmApplet/SwarmApplet.html
http://www.projectcomputing.com/resources/psovis/
http://web.ist.utl.pt/gdgp/VA/pso.htm

90
PSO - Referncias

J. Kennedy and R. Eberhart. Swarm Intelligence. Morgan


Kaufmann Publishers, Inc, San Francisco, CA, 2001
F. van den Bergh. An Analysis of Particle Swarm Optimizers.
Phd dissertation, Faculty of Natural and Agricultural Sciences,
Univ. Pretoria, Pretoria, South Africa, 2002.
J. Kennedy and R. Eberhart. Particle Swarm Optimization, in:
Proc. IEEE Intl. Conf. on Neural Networks (Perth, Australia), IEEE
Service Center,Piscataway, NJ, IV:1942-1948.
C.A. Coello Coello, G. Toscano, M.S. Lechuga. Handling Multiple
Objectives with Particle Swarm Optimization. IEEE Transactions
on Evol. Computation, Vol. 8, No. 3, June 2004.
M. Settles, T. Soule. Breeding Swarms: A GA/PSO Hybrid. Proc.
of GECCO'05, Washington DC, USA, 2005.

91
Otimizao por Colnia de
Formigas (ACO)
Inspirao Biolgica
Proposto por Dorigo e Gambardella em 1997
ACO (Ant Colony Optimization)
Principal aplicao no PCV
Programao do algoritmo
Inspirao Biolgica
Metaheurstica baseada em uma populao de formigas
Relao com o comportamento na busca de alimento ou
deslocamento.
Muitas espcies de formigas so quase cegas
A comunicao atravs de feromnios (usado para criar
caminhos trilhas de formigas)
Ao caminhar, as formigas depositam no cho o feromnio,
formando, uma trilha
Atravs do olfato, as formigas escolhem, conforme a
probabilidade, o caminho com maior feromnio
Esta trilha auxilia a formiga a encontrar o alimento e a
volta ao formigueiro, alm de ajudar as outras formigas a
encontrar o alimento
O experimento da ponte binria
Experimento realizado por Denebourg et al., 1990, para
estudar o comportamento forrageiro das formigas
No incio, as formigas so deixadas livres para escolher o
caminho. No h feromnio ainda

As formigas convergem para um dos caminhos com igual


probabilidade
Devido a flutuaes, uma das pontes ter mais feromnio e
atrair as formigas com maior probabilidade

ou
Usando pontes de tamanhos diferentes, as formigas
convergem para a ponte mais curta
A ponte curta percorrida em menos tempo, fazendo com
que mais formigas a atravessem. Logo, mais feromnio
depositado
As formigas escolhem, com maior probabilidade a ponte
mais curta (com mais feromnio)
Mtodo da Colnia de Formigas
Formigas artificiais so heursticas construtivas
Solues contrudas de forma probabilstica utilizando
duas informaes
A trilha de feromnios (artificial) muda dinmicamente
durante a execuo do programa
A informao heurstica especfica do problema a ser
resolvido
Ant System
Proposto por Marco Dorigo e colaboradores (DORIGO et
al., 1991)
O Ant System o primeiro algoritmo que surgiu
inspirado em colnia de formigas.
Peculiaridades do ambiente das formigas utilizadas:
Ao tomar um caminho a formiga deixa no mesmo uma certa
quantidade de feromnio;
Uma formiga escolhe determinado caminho de acordo com uma
funo probabilstica envolvendo a distncia deste caminho e
a quantidade de feromnio presente neste;
As formigas lembram os pontos por onde j passaram e no
retornam a estes pontos at que tenham chegado fonte de
alimento.
ACO aplicado ao PCV

Matriz de distncias
dij 1 2 3 4 5
1 0,0 1,0 2,2 2,0 4,1
2 1,0 0,0 1,4 2,2 4,0
3 2,2 1,4 0,0 2,2 3,2
4 2,0 2,2 2,2 0,0 2,2
5 4,1 4,0 3,2 2,2 0,0

Cidades do PCV
Cada formiga ir construir uma soluo movendo-se de
uma cidade para outra. No incio, cada formiga colocada
em uma cidade diferente (ou colocada aleatoriamente)
Comeando de uma cidade i, a formiga move-se escolhendo
probabilisticamente a cidade vizinha j (entre os vizinhos
factveis)
Probabilidade de Transio
A probabilidade da formiga k que est na cidade i de
escolher a cidade j dada pela regra
ij ij
pijk , quando j N ik
il jl

lN kj
em que:
ij o feromnio associado aresta (i, j)
e so parmetros para determinar a influncia do
feromnio e da informao heurstica
Njk a vizinhana factvel da formiga k (isto , o conjunto
de cidades ainda no visitadas pela formiga k).
Informao heurstica do PCV
Associada a aresta (i, j) existe um valor heurstico ij dado
por
ij = 1/dij
que representa a atratividade da formiga visitar a cidade i
depois de visitar a cidade j
O valor ij inversamente proporcional a distncia dij
entre as cidades i e j
A partir de uma cidade i, a escolha da cidade candidata j
feita de acordo com a probabilidade de transio, com
idia similar escolha por roleta de algoritmos genticos
Exemplo
Considere o PCV dado abaixo pela matriz de distncias,
= = = 0,5, e a matriz de feromnios iniciais:

dij 1 2 3 4 5 ij 1 2 3 4 5
1 0,0 1,0 2,2 2,0 4,1 1 0,30 0,25 0,20 0,30
2 1,0 0,0 1,4 2,2 4,0 2 0,30 0,20 0,20 0,30
3 2,2 1,4 0,0 2,2 3,2 3 0,25 0,20 0,10 0,15
4 2,0 2,2 2,2 0,0 2,2 4 0,20 0,20 0,10 0,45
5 4,1 4,0 3,2 2,2 0,0 5 0,30 0,30 0,15 0,45

Encontre solues para o PCV considerando a matriz de


probabilidades.
ij ij
pijk , quando j N ik
il

jl

lN kj aco
Passo 1
Passo 2
Passo 3
Passo 4
Trmino da Primeira Iterao
Algoritmo
Coloque cada formiga em uma cidade aleatria
Para t = 1 at o nmero de iteraes
Para k = 1 at m (n de formigas)
Enquanto a formiga k no construir a viagem Sk
Selecione a prxima cidade pela regra da probabilidade
Fim
Calcule a distncia Lk da viagem Sk
Se Lk < L* ento
S* = Sk, L* = Lk
Fim
Fim
Atualize os feromnios
Fim
Retornar S*
Atualizao do Feromnio
No feromnio ij associado a aresta (i, j) ocorrem dois eventos:
1. Evaporao
evita que o feromnio acumulado cresa
indefinidamente
permite esquecer pobres decises do passado de busca
permite solues diferentes
2. Depsito de feromnio de todas as formigas que
passaram sobre (i, j)
Depois que todas as formigas construram suas viagens, o
feromnio atualizado
ijk a quantidade de feromnio que a formiga k
deposita sobre a aresta (i, j):

{ ijk = Q/Lk quando a aresta (i, j) pertence Sk


ijk = 0 em caso contrrio
em que Q uma constante evaporao
m
ij (1 ) ij ij k depsito
k 1
em que 0 < 1 a taxa de evaporao de feromnio
Critrios de parada
Nmero mximo de iteraes
Estagnao ou convergncia
Situao na qual todas as formigas seguem sempre o
mesmo percurso
A estagnao causado pelo excessivo crescimento de
feromnio nas arestas de uma viagem sub-tima
Estagnao
Apesar da natureza estocstica do algoritmo, uma forte
concentrao de feromnio nas arestas fora a formiga a
fazer sempre o mesmo percurso

Distribuio de feromnio Distribuio de feromnio


no inicio da busca aps 100 iteraes
As formigas artificiais possuem movimentao discreta,
sendo que seus movimentos consistem em origens e destinos
discretos

Existe, nas formigas artificiais, um estado interno ou


memria, para que no haja sobreposio de movimentos

O depsito de feromnio no mundo artificial ocorre com


base na qualidade da soluo encontrada, diferentemente do
mundo real, no qual formigas depositam feromnio sob
demanda.

Aproximao para o modelo computacional: formigas


deixam o feromnio em cada arco visitado aps chegar ao
destino (na vida real as formigas deixam o feromnio
Resultados parciais em um PCV

Soluo encontrada Soluo tima


Applet:

http://natcomp.liacs.nl/NC/applets/AntsApplet/AntsApplet.html
http://www.openprocessing.org/sketch/15109
http://www.djoh.net/inde/ANTColony/applet.html

120

Você também pode gostar