Heurísticas 2 - INF 05010 Otimização combinatória

Preview:

Citation preview

HEURÍSTICAS 2

HEURÍSTICAS 2

Marcus RittINF 05010 – Otimização combinatória — <2020-06-17qua>

1

tikopro

HEURÍSTICAS 2Outline

1. Heurísticas de busca local

2

tikopro
Modificação.

1 HEURÍSTICAS 2

HEURÍSTICAS DE BUSCA LOCAL

Limite de buscas locais

• Desvantagem obvia: podemos parar em mínimos locais.• Exceto: Função objetivo convexa (minimização) ou concava

(maximização).• Técnicas para superar isso baseadas em busca local

• Multi-Start, Busca Tabu, Algoritmos Metropolis e SimulatedAnnealing, Variable neighborhood search

Solucao

Funca

oob

jeti

vo

3

tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
Busca global
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
Busca globalMeta-heurísticas

1 HEURÍSTICAS 2

HEURÍSTICAS DE BUSCA LOCAL

Multi-start

• Gera uma solução aleatória inicial e aplique busca local nestasolução.

• Repita este procedimento por n vezes.• Retorne a melhor solução encontrada.

4

tikopro
tikopro
Multiplos inícios
tikopro
tikopro
tikopro
tikopro
tempo fixo
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
Amostragem

1 HEURÍSTICAS 2

HEURÍSTICAS DE BUSCA LOCAL

Multi-start

Multi_Start(n) :=

{ mantem a melhor soluc~ao s∗ }

repete n vezes

gera soluc~ao aleatoria ss := BuscaLocal(s)

end repeat

return s∗

5

tikopro
tikopro
Tempo fixo
tikopro
tikopro
tikopro
tikopro

1 HEURÍSTICAS 2

HEURÍSTICAS DE BUSCA LOCAL

GRASP

• Problema: soluções aleatoriamente geradas em geral possuembaixa qualidade.

• Greedy randomized adaptive search prodecure: métodomulti-start, em cada iteração• Gera soluções com um procedimento guloso-randomizado.• Otimiza as soluções geradas com busca local.

GRASP(α, ...)=

{ a busca mantem a melhor soluc~ao encontrada s∗ }

do

s := Guloso− Randomizado(α)s := BuscaLocal(s)atualiza s∗ caso f(s) < f(s∗)

until criterio de parada satisfeito

return s∗

6

tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro

1 HEURÍSTICAS 2

HEURÍSTICAS DE BUSCA LOCAL

GRASP: Exemplo PCV

7

tikopro
tikopro
tikopro
VMP/NN
tikopro
tikopro
Alg. guloso randomizado
tikopro
tikopro
tikopro
tikopro
CL: candidate list
tikopro
tikopro
RCL: restricted candidate list
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro

1 HEURÍSTICAS 2

HEURÍSTICAS DE BUSCA LOCAL

Metropolis

• Aceita soluções piores• Critério de Metropolis; aceita com probabilidade

min{1, e−∆(s,s′)/T }

com ∆(s, s′) = f(s′)− f(s).

8

tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
Passa para qualquer vizinho: caminhada aleatória.
tikopro
tikopro
tikopro
tikopro
T: parâmetro (temperatura).
tikopro
Minimização.
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro

1 HEURÍSTICAS 2

HEURÍSTICAS DE BUSCA LOCAL

Distribuição de Boltzmann

1 2 3 4 5 6 7 8 9 10

0

0.2

0.4

0.6

0.8

1

pe−x/0.1 e−x/2 e−x/10 e−x/20 e−x/500

9

tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
Caminhada aleatória.
tikopro
tikopro
tikopro
tikopro
tikopro
Busca local (estocástica)
tikopro

1 HEURÍSTICAS 2

HEURÍSTICAS DE BUSCA LOCAL

Algoritmo de Metropolis

Metropolis(s, T , k)=do

seleciona s′ ∈ N (s) aleatoriamente

seja ∆ := f(s′)− f(s)if ∆ ≤ 0 then

atualiza s := s′

else

atualiza s := s′ com probabilidade e−∆/T

end if

until criterio de parada satisfeito

return s

10

tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
(#iter., tempo)
tikopro
tikopro
tikopro
tikopro

1 HEURÍSTICAS 2

HEURÍSTICAS DE BUSCA LOCAL

Simulated Annealing

• Simula um processo de recozimento.• Recozimento: processo da física que aquece um material a uma

temperatura bem alta e resfria aos poucos, dando tempo parao material alcançar seu estado de equilíbrio

• Recozimento simulado: parte de uma alta temperatura e baixagradualmente. Para cada temperatura, permite um númeromáximo de saltos (dois laços encadeados)

11

tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
Esquema de resfriamento(
tikopro
Dom. caminhada aleatória.
tikopro
tikopro
Dom. busca local
tikopro

1 HEURÍSTICAS 2

HEURÍSTICAS DE BUSCA LOCAL

Simulated Annealing

SimulatedAnnealing(s, T , k, r, I) :=

repeat ate sistema ‘‘esfriado ’’

repeat I vezes

seleciona s′ ∈ N (s) aleatoriamente

seja ∆ := f(s′)− f(s)if ∆ ≤ 0 then

s := s′

else

s := s′ com probabilidade e−∆/T

end fi

end repeat

T := rTend repeat

return s12

tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
(manter a temp. constante por I iterações)
tikopro
tikopro
temperature length
tikopro
tikopro
tikopro
Geometric cooling scheduleEsquema de resfriamento geométrica.
tikopro
tikopro
tikopro
Definir!
tikopro
tikopro

1 HEURÍSTICAS 2

HEURÍSTICAS DE BUSCA LOCAL

(Em branco)

13

1 HEURÍSTICAS 2

HEURÍSTICAS DE BUSCA LOCAL

(Em branco)

14

1 HEURÍSTICAS 2

HEURÍSTICAS DE BUSCA LOCAL

Busca local iterada

15

tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
Perturbação fraca: busca local
tikopro
tikopro
tikopro
tikopro
Perturbação extrema: multistart.
tikopro
tikopro
Tamanho da perturbação (perturbation strength)
tikopro
Basin of attraction.

1 HEURÍSTICAS 2

HEURÍSTICAS DE BUSCA LOCAL

(Em branco)

16

tikopro
Busca local iterada(s) := repete (n vezes, tempo) aplica busca local aplica perturbação
tikopro
tikopro
k passos aleatórios na vizinhança
tikopro
tikopro
tikopro
tikopro
Iterated greedy algorithm (IGA)
tikopro
Remove l elementos aleatóriosInsere os elementos via alg. guloso randomizado novamente.

1 HEURÍSTICAS 2

HEURÍSTICAS DE BUSCA LOCAL

(Em branco)

17

tikopro
Busca gulosa iterada: busca local iterada com um algoritmo guloso randomizado na perturbação.

1 HEURÍSTICAS 2

HEURÍSTICAS DE BUSCA LOCAL

Busca gulosa iterada

BuscaTabu ()=

Inicializac~ao:

s := S0; f∗ := f(s0); s∗ := s0 ; T := ∅while criterio de parada n~ao satisfeito

s′ := seleciona s′ ∈ N (s) com min f(s)if f(s) < f∗ then

f∗ := f(s); s∗ := send if

insira movimento em T (a lista tabu)

end while

18

tikopro

1 HEURÍSTICAS 2

HEURÍSTICAS DE BUSCA LOCAL

Busca Tabu

• Introduz uma memória de curta duração ("lista tabu")• Ideia: "lembrar"soluções visitadas recentemente e evitar

("tabu")•

19

tikopro

1 HEURÍSTICAS 2

HEURÍSTICAS DE BUSCA LOCAL

(Em branco)

20

1 HEURÍSTICAS 2

HEURÍSTICAS DE BUSCA LOCAL

(Em branco)

21

1 HEURÍSTICAS 2

HEURÍSTICAS DE BUSCA LOCAL

Busca Tabu

BuscaTabu ()=

Inicializac~ao:

s := S0; f∗ := f(s0); s∗ := s0 ; T := ∅while criterio de parada n~ao satisfeito

s′ := seleciona s′ ∈ N (s) com min f(s)if f(s) < f∗ then

f∗ := f(s); s∗ := send if

insira movimento em T (a lista tabu)

end while

22

1 HEURÍSTICAS 2

HEURÍSTICAS DE BUSCA LOCAL

Busca em múltiplas vizinhanças

23

tikopro
tikopro
Variable neighborhood search (VNS)
tikopro
tikopro
tikopro
min. loc. diferentes
tikopro

1 HEURÍSTICAS 2

HEURÍSTICAS DE BUSCA LOCAL

(Em branco)

24

1 HEURÍSTICAS 2

HEURÍSTICAS DE BUSCA LOCAL

(Em branco)

25

1 HEURÍSTICAS 2

HEURÍSTICAS DE BUSCA LOCAL

Movimento

Movimento(s,s′,k) :=

if f(s′) < f(s) then

s := s′

k := 1else

k := k + 1end if

return (s, k)

26

tikopro
tikopro

1 HEURÍSTICAS 2

HEURÍSTICAS DE BUSCA LOCAL

Algoritmo completo

VNS(s,{Ni})=until criterio de parada satisfeito

k := 1while k ≤ m do

seleciona vizinho aleatorio s′ ∈ Nk(s) { shake }

s′′ := BuscaLocal(s′)(s, k) := Movimento(s, s′′, k)

end until

return s

27

tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro

Recommended