Inteligência Computacional
Simulated Annealing (SA)
Aplicado ao Problema
de K-Dispersão Discreta (PKD)
Gilmax de Oliveira Araújo
Luciana Batista de Lima
O Problema
K – Dispersão Discreta
“Dado um conjunto de n possíveis candidatos sobre os nós
de um grafo, deve-se em selecionar k facilidades dentre
as n possíveis, de tal modo que a distância mínima entre
qualquer par das k facilidades selecionadas seja
maximizada.”
Aplicações
1.
2.
3.
4.
5.
6.
7.
Localização de reservatórios de combustível;
Alocação de agentes competitivos como franquias etc;
Distribuição de depósitos de lixo;
Localização de silos de mísseis e instalações nucleares;
Prisões e instalações militares;
Tratamento de águas residuais;
Distribuição de freqüências em sistemas de
comunicações;
8. Experimentos estatísticos;
9. Exploração de madeira etc.
Metaheurística Simulated
Annealing (Têmpera Simulada)
•
•
•
Admite soluções de piora para escapar de
ótimos locais;
As soluções de piora são aceitas com uma
certa probabilidade, a qual depende de um
parâmetro, chamado de temperatura;
O final do processo se dá quando a
temperatura se aproxima de zero e nenhuma
solução de piora é mais aceita, situação que
evidencia o encontro de um ótimo local;
Caso:
 No Grafo abaixo, obter 3 cidades entre as 6
cidades possíveis, de tal forma que a menor
distância entre ela seja maior que as menores
distâncias dos possíveis polígonos formados:
6
2
5
4
3
8
5
9
1
4
9
9
10
8
01
5
5
Metodologia Aplicada
 Geração de uma solução aleatória
inicial:
A partir da tabela a seguir,que
representa a matriz distância, obter um
vetor de 6 elemento com valores
booleanos 0 e 1.
Cidade escolhida => “1”
Cidade não escolhida => “0”
Ex: s = [ 1 1 1 0 0 0 ]
Tabela representativa da matriz
distância:
0
1
2
3
4
5
0
0
10
9
5
13
5
1
10
0
5
11
9
9
2
9
5
0
6
12
4
3
5
11
6
0
8
12
4
13
9
12
8
0
8
5
5
9
4
12
8
0
Função objetivo:
 Consiste na obtenção da menor
distância das arestas do polígono
formado:
Ex: dist (0,1) = 10
dist (0,2) = 9
dist (2,3) = 5
Menor distância = 5
Refinando a solução – Simulated
Annealing
 Gera um vizinho qualquer :
– Troca de posição de dois elemento
quaisquer do vetor solução:
Ex:
s = [1 1 1 0 0 0]
s’= [1 0 1 1 0 0]
 Calcula a função objetivo
 Verifica se f(s’) > f(s) se verdadeiro
f(s) <- f(s’)
Refinando...
 Caso contrário o programa aceita a solução
de piora com um probabilidade de:
P = e ( Δ/T)
 Até que a solução ótima seja encontrada ou
o número máximo de interações (SAmax)
seja atingido;
Solução ótima encontrada:
 S = [0 1 0 1 0 1]
 Menor distância entre as arestas do
polígono = 9
Conclusão:
 Solução satisfatória;
 Comparação com o Problema da
k-dispersão resolvido pelo Lingo
Download

Apresentação do PowerPoint - DECOM-UFOP