Otimização por Colônia de Formigas
Ant Colony Optimization
Cassio Conti
[email protected]
Agenda
• Introdução
– Problemas de otimização
– Ideia da otimização por colônia de formigas
•
•
•
•
Ant Colony Optimization (domínio discreto)
Exemplo de aplicação
Ant Colony Optimization (domínio contínuo)
Aplicação em problema real
Problemas de Otimização
Os problemas de otimização
combinatória
possuem
a
qualidade da solução ligada a
ordem em que os elementos
que compõem a solução
aparecem.
Quanto
mais
elementos, mais combinações
são possíveis e maior é o
tempo de processamento
necessário para encontrar a
solução ótima.
• Sequência desejada:
o 2-3-1
• Combinações possíveis:
o 1-2-3
o 1-3-2
o 2-1-3
o 2-3-1
o 3-1-2
o 3-2-1
Problemas de otimização
3 elementos: 6 combinações
4 elementos: 24 combin.
5 elementos: 120 combin.
6 elementos: 720 combin.
7 elementos: 5040 combin.
8 elementos: 40320 combin.
9 elementos: 362880 comb.
n elementos: n! combinações
Algoritmos de otimização
utilizam técnicas para buscar
a melhor solução de um
problema em situações onde
seria necessário muito tempo
computacional para analisar
todos os possíveis valores.
Ideia do ACO
Baseia-se no comportamento de formigas reais.
• As formigas, tanto as reais quanto as do ACO baseiam seu
"conhecimento" do ambiente nas trilhas de feromônio.
• A tendência é escolher a trilha com mais feromônio.
• Feromônio evapora com o tempo.
Caixeiro Viajante
Traveling Salesman Problem
(TSP)
Se existem 2 cidades, A e B,
considerando que o caixeiro
inicialmente está em A, temse apenas 1 solução possível
que é a distância entre A e
B. Se existem 3 cidades,
têm-se 2 caminhos possíveis,
ABC ACB. 4 cidades indicam
6 caminhos possíveis, ABCD
ABDC ACBD ACDB ADBC
ADCB, ou seja, (n – 1)!
possíveis
caminhos
diferentes.
Ant Colony Optimization (ACO)
Algoritmos inspirados no
comportamento das formigas
na busca por alimentos
foram
introduzidos
por
Marco Dorigo em sua tese de
doutorado. Esse tipo de
algoritmo é conhecido na
literatura como Ant Colony
Optimization (ACO).
Ant System foi o primeiro
exemplo de ACO proposto
por Dorigo.
Explora a característica do
feromônio
depositando
diferentes quantidades de
substância
no
caminho
(dependendo da qualidade do
caminho encontrado).
Ant System
– Gera uma solução
(caminho)
– Avalia essa solução
– Deposita sobre cada
aresta desse caminho,
uma quantidade x de
feromônio.
– Sendo x uma função onde
se o caminho é menor, x
possui maior valor.
Caminho 12345 = 16
Caminho 12354 = 12
Caminho 12435 = 15
Caminho 12453 = 11
Caminho 14235 = 13
....
Ex: x = 1 / f(caminho)
+0.8 (÷2.1 = 38%)
+0.6 (÷2.1 = 29%)
+0.7 (÷2.1 = 33%)
------2.1 (100%)
Gera valor aleatório [0 - 1]
[0 - 0.38]: escolhe 2
(0.38 - 0.67]: escolhe 5
(0.67 - 1]: escolhe 4
Heurística (Visibilidade)
gerar_solucao(f) {
escolher_proximo(f)
}
gerar_solucao(f, dist) {
v <- 1 / dist
escolher_proximo(f + v)
}
1
2
3
4
5
1
2
3
4
5
0 0,8
0 0,4 0,5
0,8
0 0,4 0,4
0
0 0,4
0 0,2 0,6
0,4 0,4 0,2
0 0,2
0,5
0 0,6 0,2
0
Heurística (Visibilidade)
+0.8 (÷2.1 = 38%)
+0.6 (÷2.1 = 29%)
+0.7 (÷2.1 = 33%)
------2.1 (100%)
1÷2=0.5
1÷6=0.2
1÷3=0.3
+1.3 (÷3.1 = 42%)
+0.8 (÷3.1 = 26%)
+1.0 (÷3.1 = 32%)
-----3.1 (100%)
ACO Discreto - Importância da
Visibilidade
Tamanho do percurso do caixeiro
Iteração onde o melhor
percurso foi encontrado
6000
600
5000
500
4000
3000
Sem
400
visibilidade
2000
Com
300
visibilidade
200
1000
100
0
oliver30
eil51
a280
0
oliver30
eil51
a280
12
ACO Contínuo – ACOR – Feromônio
s1
s2
...
sj
...
sk
s11
s12
...
s1i
...
s1n
s21
s22
...
s2i
...
S2n
sj1
sj2
...
sji
...
Sjn
sk1
sk2
...
ski
...
Skn
Arquivo
população
f  X   aX1  bX2    zX n
13
  sli
ACOR - Amostragem
k
 li   
j 1
s ij  sli
k 1
• A função de densidade de probabilidade usada nas
amostragens do algoritmo é a função gaussiana
(distribuição normal), entretanto ela não é capaz de
descrever a situação onde há duas áreas
promissoras disjuntas no domínio.
s1
s2
...
sj
...
sk
s11
s12
...
s1i
...
s1n
s21
s22
...
s2i
...
S2n
sj1
sj2
...
sji
...
Sjn
sk1
sk2
...
ski
...
Skn
14
ACOR – Sequência de passos
Inicialização da
População
• Inicia o arquivo população com k soluções aleatórias.
• Ordena as soluções pela qualidade [f(s1) ≥ f(s2) ≥ ...].
Construção de
novas soluções
• Para cada agente (formiga), faça:
• Escolha uma solução sl dentre as k soluções do arquivo população.
Para cada uma das
n variáveis que
compões uma
solução:
Amostra um
novo valor.
Seta a média
sji.
Calcula o
valor de
desvio
padrão.
Atualização da
população
Verificação
do critério
de parada
X = {X1, X2, ..., Xn}
sl = {sl1, sl2, ..., sln}
• Avalia e adiciona as novas soluções ao arquivo população.
• Ordena as soluções pela qualidade e mantém somente as k melhores.
• Se o critério de parada não for alcançado, voltar ao segundo passo.
• Caso contrário, encerrar o algoritmo.
15
Proposta de Visibilidade para ACO
contínuoQuando todas as soluções
do arquivo estiverem na
mesma região a
visibilidade é desligada.
s1’
s3’
s2’
s3
s1
s2
s1
s2
s3
s1’
s2’
s3’
16
Proposta para Visibilidade
X  X1, X 2 ,, X n 
X '  X1 ' , X 2 ' ,, X n '
s1
s2
...
sj
...
sk
s11
s12
...
s1i
...
s1n
s21
s22
...
s2i
...
S2n
sj1
sj2
...
sji
...
Sj n
sk1
sk2
...
ski
...
17 n
Sk
Experimentos – Testes e Resultados
Problemas
1
B2
2
Branin RCOS
3
Cigar
4
De Jong
5
Eason
6
Ellipsoid
7
Goldstein and Price
8
Martin and Gaddy
9
Sphere model
10
Tablet
11
Zakharov
Os mesmo parâmetros utilizados
por Socha e Dorigo foram
aplicados para que fosse possível a
comparação.
18
Experimentos – Testes e Resultados Iterações
0
Número médio de iterações
500
1000
1500
2000
2500
B2
Branin RCOS
Cigar
De Jong
Eason
Ellipsoid
Sem visibilidade
Com visibilidade
Goldstein and Price
Martin and Gaddy
Sphere model
Tablet
Zakharov
19
Experimentos – Testes e Resultados Avaliações
0
Número médio de avaliações
1000
2000
3000
4000
5000
B2
Branin RCOS
Cigar
De Jong
Eason
Ellipsoid
Sem visibilidade
Com visibilidade
Goldstein and Price
Martin and Gaddy
Sphere model
Tablet
Zakharov
20
Aplicação Real – Exploração de
Petróleo
Aquisição Sísmica
Aquisição Sísmica
Sísmica
Poço
Sísmica e Poço
Impedância
𝑖𝑚𝑝𝑒𝑑â𝑛𝑐𝑖𝑎 = 𝑑𝑒𝑛𝑠𝑖𝑑𝑎𝑑𝑒 × 𝑣𝑒𝑙𝑜𝑐𝑖𝑑𝑎𝑑𝑒
Propriedade dos Dados (rochas)
𝑖𝑚𝑝𝑖+1 − 𝑖𝑚𝑝𝑖
𝑟𝑒𝑓𝑖 =
𝑖𝑚𝑝𝑖+1 + 𝑖𝑚𝑝𝑖
• Não existe um método de inversão sísmica
que dê a solução exata.
• Existem várias soluções possíveis.
• Propício ao uso de heurísticas para adaptar a
técnica ao problema.
ACO (Ant Colony
Optimization)
Estimação do Pulso Sísmico
Estimação do Pulso Sísmico
Inversão Sísmica
Heurísticas para acelerar a busca
Gera diversas configurações
similares ao poço.
Inversão utilizando ACO
• Para os demais traços, usa-se o traço vizinho
(que já foi otimizado) como modelo de
referência.
• Resultados
– Inversão Traço-a-Traço
• 4 replicações - 1000 iterações do algoritmo –
Utiliza-se a média
• Tempo em uma SUN Workstation ULTRA 27:
~3.5min por in-line
R=0.97289
• Resultados
– Inversão pelo Filtro Inverso
• 10 replicações – 100 mil iterações do algoritmo
– Utiliza-se o melhor
• Tempo em uma SUN Workstation ULTRA 27 :
~2min45seg
R=0.95604
Problemas
• Poucos poços
– Pouca informação sobre os tipos de rochas
existentes.
– Pulso sísmico ruim (mal estimada)
• Consequentemente, inversão ruim.
• Sísmica ruidosa
– Podem gerar falsas propriedades de rocha
• Características que podem levar a decisões erradas.
Otimização por Colônia de Formigas
Ant Colony Optimization
Cassio Conti
[email protected]
• Cassio Rodrigo Conti
– [email protected]
– Departamento de Informática e Estatística (INE)
• Ciência da Computação (PPGCC)
– Laboratório de Conexionismo e Ciências
Cognitivas (L3C)
• Orientador: Prof. Dr. Mauro Roisenberg
• Área de Inteligência Artificial / Computacional
Download

Otimização por Colônia de Formigas Ant Colony Optimization