27
HEURÍSTICAS 2 Marcus Ritt INF 05010 – Otimização combinatória — <2020-06-17 qua> 1

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

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

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

HEURÍSTICAS 2

HEURÍSTICAS 2

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

1

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

HEURÍSTICAS 2Outline

1. Heurísticas de busca local

2

tikopro
Modificação.
Page 3: Heurísticas 2 - INF 05010 Otimização combinatória

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
Page 4: Heurísticas 2 - INF 05010 Otimização combinatória

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
Page 5: Heurísticas 2 - INF 05010 Otimização combinatória

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
Page 6: Heurísticas 2 - INF 05010 Otimização combinatória

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
Page 7: Heurísticas 2 - INF 05010 Otimização combinatória

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
Page 8: Heurísticas 2 - INF 05010 Otimização combinatória

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
Page 9: Heurísticas 2 - INF 05010 Otimização combinatória

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
Page 10: Heurísticas 2 - INF 05010 Otimização combinatória

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
Page 11: Heurísticas 2 - INF 05010 Otimização combinatória

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
Page 12: Heurísticas 2 - INF 05010 Otimização combinatória

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
Page 13: Heurísticas 2 - INF 05010 Otimização combinatória

1 HEURÍSTICAS 2

HEURÍSTICAS DE BUSCA LOCAL

(Em branco)

13

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

1 HEURÍSTICAS 2

HEURÍSTICAS DE BUSCA LOCAL

(Em branco)

14

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

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.
Page 16: Heurísticas 2 - INF 05010 Otimização combinatória

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.
Page 17: Heurísticas 2 - INF 05010 Otimização combinatória

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.
Page 18: Heurísticas 2 - INF 05010 Otimização combinatória

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
Page 19: Heurísticas 2 - INF 05010 Otimização combinatória

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
Page 20: Heurísticas 2 - INF 05010 Otimização combinatória

1 HEURÍSTICAS 2

HEURÍSTICAS DE BUSCA LOCAL

(Em branco)

20

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

1 HEURÍSTICAS 2

HEURÍSTICAS DE BUSCA LOCAL

(Em branco)

21

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

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

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

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
Page 24: Heurísticas 2 - INF 05010 Otimização combinatória

1 HEURÍSTICAS 2

HEURÍSTICAS DE BUSCA LOCAL

(Em branco)

24

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

1 HEURÍSTICAS 2

HEURÍSTICAS DE BUSCA LOCAL

(Em branco)

25

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

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
Page 27: Heurísticas 2 - INF 05010 Otimização combinatória

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