Escolar Documentos
Profissional Documentos
Cultura Documentos
OTIMIZACAO
MULTI-OBJETIVO
Aula 03 - Busca Local e Metodos Construtivos
25 de outubro de 2016
1 / 57
Apresentacao
Meta-heursticas
Metodos Construtivos
Busca Local
ILS, VNS e GRASP
2 / 57
Meta-heursticas
3 / 57
Heursticas
Qualquer metodo aproximado projetado com base nas propriedades
estruturais ou nas caractersticas das solucoes dos problemas, com
complexidade reduzida em relacao a dos algoritmos exatos e
fornecendo, em geral, solucoes viaveis de boa qualidade.
4 / 57
Heursticas
Qualquer metodo aproximado projetado com base nas propriedades
estruturais ou nas caractersticas das solucoes dos problemas, com
complexidade reduzida em relacao a dos algoritmos exatos e
fornecendo, em geral, solucoes viaveis de boa qualidade.
I metodos construtivos
4 / 57
Heursticas
Qualquer metodo aproximado projetado com base nas propriedades
estruturais ou nas caractersticas das solucoes dos problemas, com
complexidade reduzida em relacao a dos algoritmos exatos e
fornecendo, em geral, solucoes viaveis de boa qualidade.
I metodos construtivos
I busca local
4 / 57
Heursticas
Qualquer metodo aproximado projetado com base nas propriedades
estruturais ou nas caractersticas das solucoes dos problemas, com
complexidade reduzida em relacao a dos algoritmos exatos e
fornecendo, em geral, solucoes viaveis de boa qualidade.
I metodos construtivos
I busca local
Meta-heurstica
Uma meta-heurstica e um procedimento de alto nvel ou heurstica
concebido para encontrar, gerar, ou selecionar um procedimento de
nvel inferior ou heurstica (algoritmo de busca parcial), que pode
fornecer uma solucao suficientemente boa para um problema de
otimizacao.
4 / 57
Metodos Construtivos
5 / 57
Metodos Construtivos
I Consiste em construir uma solucao de um problema de forma
incremental.
5 / 57
Metodos Construtivos
I Consiste em construir uma solucao de um problema de forma
incremental.
I Passo a passo, um componente e escolhido e depois inserido na
solucao ate gerar uma solucao completa.
5 / 57
Metodos Construtivos
I Consiste em construir uma solucao de um problema de forma
incremental.
I Passo a passo, um componente e escolhido e depois inserido na
solucao ate gerar uma solucao completa.
I O componente escolhido em cada passo e, em geral, o melhor
candidato de acordo com algum criterio.
5 / 57
Algoritmo Guloso
I Inicialize a solucao parcial sp
6 / 57
Algoritmo Guloso
I Inicialize a solucao parcial sp
I Inicialize o conjunto C de componentes candidatos
6 / 57
Algoritmo Guloso
I Inicialize a solucao parcial sp
I Inicialize o conjunto C de componentes candidatos
I enquanto (sp nao for uma solucao completa)
6 / 57
Algoritmo Guloso
I Inicialize a solucao parcial sp
I Inicialize o conjunto C de componentes candidatos
I enquanto (sp nao for uma solucao completa)
I c = o melhor componente guloso de C
6 / 57
Algoritmo Guloso
I Inicialize a solucao parcial sp
I Inicialize o conjunto C de componentes candidatos
I enquanto (sp nao for uma solucao completa)
I c = o melhor componente guloso de C
I sp = sp + c
6 / 57
Algoritmo Guloso
I Inicialize a solucao parcial sp
I Inicialize o conjunto C de componentes candidatos
I enquanto (sp nao for uma solucao completa)
I c = o melhor componente guloso de C
I sp = sp + c
I atualize C
6 / 57
Algoritmo Guloso
I Inicialize a solucao parcial sp
I Inicialize o conjunto C de componentes candidatos
I enquanto (sp nao for uma solucao completa)
I c = o melhor componente guloso de C
I sp = sp + c
I atualize C
I fim
6 / 57
Algoritmo Guloso
I Inicialize a solucao parcial sp
I Inicialize o conjunto C de componentes candidatos
I enquanto (sp nao for uma solucao completa)
I c = o melhor componente guloso de C
I sp = sp + c
I atualize C
I fim
I s = sp
6 / 57
Algoritmo Guloso
I Inicialize a solucao parcial sp
I Inicialize o conjunto C de componentes candidatos
I enquanto (sp nao for uma solucao completa)
I c = o melhor componente guloso de C
I sp = sp + c
I atualize C
I fim
I s = sp
I retorne s
6 / 57
Algoritmo Guloso
I Inicialize a solucao parcial sp
I Inicialize o conjunto C de componentes candidatos
I enquanto (sp nao for uma solucao completa)
I c = o melhor componente guloso de C
I sp = sp + c
I atualize C
I fim
I s = sp
I retorne s
OBS: S nao e necessariamente uma solucao otima do problema.
6 / 57
Algoritmo Guloso - O problema da mochila
7 / 57
Algoritmo Guloso - O problema da mochila
Ideia:
Adicionar, em cada passo, o objeto mais valioso por unidade de
peso ate atingir a capacidade da mochila.
7 / 57
Algoritmo Guloso - O problema da mochila
Ideia:
Adicionar, em cada passo, o objeto mais valioso por unidade de
peso ate atingir a capacidade da mochila.
max f (x) = 3x1 + 3x2 + 2x3 + 4x4 + 2x5 + 3x6 + 5x7 + 2x8
sujeito a :
5x1 + 4x2 + 7x3 + 8x4 + 4x5 + 4x6 + 6x7 + 8x8 25
xj {0, 1}
7 / 57
Algoritmo Guloso - O problema da mochila
objeto(j) 1 2 3 4 5 6 7 8
valor (cj ) 3 3 2 4 2 3 5 2
peso(wj ) 5 4 7 8 4 4 6 8
Capacidade da mochila b = 25
8 / 57
Algoritmo Guloso - O problema da mochila
objeto(j) 1 2 3 4 5 6 7 8
valor (cj ) 3 3 2 4 2 3 5 2
peso(wj ) 5 4 7 8 4 4 6 8
Capacidade da mochila b = 25
cj
Funcao Gulosa (prioridade):
wj
8 / 57
Algoritmo Guloso - O problema da mochila
objeto(j) 1 2 3 4 5 6 7 8
valor (cj ) 3 3 2 4 2 3 5 2
peso(wj ) 5 4 7 8 4 4 6 8
cj
0,6 0,75 0,29 0,5 0,5 0,75 0,83 0,25
wj
9 / 57
Algoritmo Guloso - O problema da mochila
objeto(j) 1 2 3 4 5 6 7 8
valor (cj ) 3 3 2 4 2 3 5 2
peso(wj ) 5 4 7 8 4 4 6 8
cj
0,6 0,75 0,29 0,5 0,5 0,75 0,83 0,25
wj
Passo 1
I Quem possui o melhor beneficio por unidade de peso e o objeto
7. Logo ele e adicionado na mochila:
9 / 57
Algoritmo Guloso - O problema da mochila
objeto(j) 1 2 3 4 5 6 7 8
valor (cj ) 3 3 2 4 2 3 5 2
peso(wj ) 5 4 7 8 4 4 6 8
cj
0,6 0,75 0,29 0,5 0,5 0,75 0,83 0,25
wj
Passo 1
I Quem possui o melhor beneficio por unidade de peso e o objeto
7. Logo ele e adicionado na mochila:
I sp = (0, 0, 0, 0, 0, 0, 1, 0) solucao parcial
9 / 57
Algoritmo Guloso - O problema da mochila
objeto(j) 1 2 3 4 5 6 7 8
valor (cj ) 3 3 2 4 2 3 5 2
peso(wj ) 5 4 7 8 4 4 6 8
cj
0,6 0,75 0,29 0,5 0,5 0,75 0,83 0,25
wj
Passo 1
I Quem possui o melhor beneficio por unidade de peso e o objeto
7. Logo ele e adicionado na mochila:
I sp = (0, 0, 0, 0, 0, 0, 1, 0) solucao parcial
I peso corrente = 6 25
9 / 57
Algoritmo Guloso - O problema da mochila
objeto(j) 1 2 3 4 5 6 7 8
valor (cj ) 3 3 2 4 2 3 5 2
peso(wj ) 5 4 7 8 4 4 6 8
cj
0,6 0,75 0,29 0,5 0,5 0,75 0,83 0,25
wj
10 / 57
Algoritmo Guloso - O problema da mochila
objeto(j) 1 2 3 4 5 6 7 8
valor (cj ) 3 3 2 4 2 3 5 2
peso(wj ) 5 4 7 8 4 4 6 8
cj
0,6 0,75 0,29 0,5 0,5 0,75 0,83 0,25
wj
Passo 2
I A segunda melhor escolha e o objeto 2. Logo ele e adicionado
na mochila:
10 / 57
Algoritmo Guloso - O problema da mochila
objeto(j) 1 2 3 4 5 6 7 8
valor (cj ) 3 3 2 4 2 3 5 2
peso(wj ) 5 4 7 8 4 4 6 8
cj
0,6 0,75 0,29 0,5 0,5 0,75 0,83 0,25
wj
Passo 2
I A segunda melhor escolha e o objeto 2. Logo ele e adicionado
na mochila:
I sp = (0, 1, 0, 0, 0, 0, 1, 0) solucao parcial
10 / 57
Algoritmo Guloso - O problema da mochila
objeto(j) 1 2 3 4 5 6 7 8
valor (cj ) 3 3 2 4 2 3 5 2
peso(wj ) 5 4 7 8 4 4 6 8
cj
0,6 0,75 0,29 0,5 0,5 0,75 0,83 0,25
wj
Passo 2
I A segunda melhor escolha e o objeto 2. Logo ele e adicionado
na mochila:
I sp = (0, 1, 0, 0, 0, 0, 1, 0) solucao parcial
I peso corrente = 10 25
10 / 57
Algoritmo Guloso - O problema da mochila
objeto(j) 1 2 3 4 5 6 7 8
valor (cj ) 3 3 2 4 2 3 5 2
peso(wj ) 5 4 7 8 4 4 6 8
cj
0,6 0,75 0,29 0,5 0,5 0,75 0,83 0,25
wj
11 / 57
Algoritmo Guloso - O problema da mochila
objeto(j) 1 2 3 4 5 6 7 8
valor (cj ) 3 3 2 4 2 3 5 2
peso(wj ) 5 4 7 8 4 4 6 8
cj
0,6 0,75 0,29 0,5 0,5 0,75 0,83 0,25
wj
Passo 3
I A terceira melhor escolha e o objeto 6. Logo ele e adicionado
na mochila:
11 / 57
Algoritmo Guloso - O problema da mochila
objeto(j) 1 2 3 4 5 6 7 8
valor (cj ) 3 3 2 4 2 3 5 2
peso(wj ) 5 4 7 8 4 4 6 8
cj
0,6 0,75 0,29 0,5 0,5 0,75 0,83 0,25
wj
Passo 3
I A terceira melhor escolha e o objeto 6. Logo ele e adicionado
na mochila:
I sp = (0, 1, 0, 0, 0, 1, 1, 0) solucao parcial
11 / 57
Algoritmo Guloso - O problema da mochila
objeto(j) 1 2 3 4 5 6 7 8
valor (cj ) 3 3 2 4 2 3 5 2
peso(wj ) 5 4 7 8 4 4 6 8
cj
0,6 0,75 0,29 0,5 0,5 0,75 0,83 0,25
wj
Passo 3
I A terceira melhor escolha e o objeto 6. Logo ele e adicionado
na mochila:
I sp = (0, 1, 0, 0, 0, 1, 1, 0) solucao parcial
I peso corrente = 14 25
11 / 57
Algoritmo Guloso - O problema da mochila
objeto(j) 1 2 3 4 5 6 7 8
valor (cj ) 3 3 2 4 2 3 5 2
peso(wj ) 5 4 7 8 4 4 6 8
cj
0,6 0,75 0,29 0,5 0,5 0,75 0,83 0,25
wj
12 / 57
Algoritmo Guloso - O problema da mochila
objeto(j) 1 2 3 4 5 6 7 8
valor (cj ) 3 3 2 4 2 3 5 2
peso(wj ) 5 4 7 8 4 4 6 8
cj
0,6 0,75 0,29 0,5 0,5 0,75 0,83 0,25
wj
Passo 4
I A quarta melhor escolha e o objeto 1. Logo ele e adicionado na
mochila:
12 / 57
Algoritmo Guloso - O problema da mochila
objeto(j) 1 2 3 4 5 6 7 8
valor (cj ) 3 3 2 4 2 3 5 2
peso(wj ) 5 4 7 8 4 4 6 8
cj
0,6 0,75 0,29 0,5 0,5 0,75 0,83 0,25
wj
Passo 4
I A quarta melhor escolha e o objeto 1. Logo ele e adicionado na
mochila:
I sp = (1, 1, 0, 0, 0, 1, 1, 0) solucao parcial
12 / 57
Algoritmo Guloso - O problema da mochila
objeto(j) 1 2 3 4 5 6 7 8
valor (cj ) 3 3 2 4 2 3 5 2
peso(wj ) 5 4 7 8 4 4 6 8
cj
0,6 0,75 0,29 0,5 0,5 0,75 0,83 0,25
wj
Passo 4
I A quarta melhor escolha e o objeto 1. Logo ele e adicionado na
mochila:
I sp = (1, 1, 0, 0, 0, 1, 1, 0) solucao parcial
I peso corrente = 19 25
12 / 57
Algoritmo Guloso - O problema da mochila
objeto(j) 1 2 3 4 5 6 7 8
valor (cj ) 3 3 2 4 2 3 5 2
peso(wj ) 5 4 7 8 4 4 6 8
cj
0,6 0,75 0,29 0,5 0,5 0,75 0,83 0,25
wj
13 / 57
Algoritmo Guloso - O problema da mochila
objeto(j) 1 2 3 4 5 6 7 8
valor (cj ) 3 3 2 4 2 3 5 2
peso(wj ) 5 4 7 8 4 4 6 8
cj
0,6 0,75 0,29 0,5 0,5 0,75 0,83 0,25
wj
Passo 5
I Como nao e possvel adicionar o objeto 4, adicionamos o objeto
5. Logo ele e adicionado na mochila:
13 / 57
Algoritmo Guloso - O problema da mochila
objeto(j) 1 2 3 4 5 6 7 8
valor (cj ) 3 3 2 4 2 3 5 2
peso(wj ) 5 4 7 8 4 4 6 8
cj
0,6 0,75 0,29 0,5 0,5 0,75 0,83 0,25
wj
Passo 5
I Como nao e possvel adicionar o objeto 4, adicionamos o objeto
5. Logo ele e adicionado na mochila:
I sp = (1, 1, 0, 0, 1, 1, 1, 0) solucao parcial
13 / 57
Algoritmo Guloso - O problema da mochila
objeto(j) 1 2 3 4 5 6 7 8
valor (cj ) 3 3 2 4 2 3 5 2
peso(wj ) 5 4 7 8 4 4 6 8
cj
0,6 0,75 0,29 0,5 0,5 0,75 0,83 0,25
wj
Passo 5
I Como nao e possvel adicionar o objeto 4, adicionamos o objeto
5. Logo ele e adicionado na mochila:
I sp = (1, 1, 0, 0, 1, 1, 1, 0) solucao parcial
I peso corrente = 23 25
13 / 57
Algoritmo Guloso - O problema da mochila
objeto(j) 1 2 3 4 5 6 7 8
valor (cj ) 3 3 2 4 2 3 5 2
peso(wj ) 5 4 7 8 4 4 6 8
cj
0,6 0,75 0,29 0,5 0,5 0,75 0,83 0,25
wj
Passo 5
I Como nao e possvel adicionar o objeto 4, adicionamos o objeto
5. Logo ele e adicionado na mochila:
I sp = (1, 1, 0, 0, 1, 1, 1, 0) solucao parcial
I peso corrente = 23 25
I Nao e possvel mais adicionar objetos!
13 / 57
Algoritmo Guloso - O problema da mochila
objeto(j) 1 2 3 4 5 6 7 8
valor (cj ) 3 3 2 4 2 3 5 2
peso(wj ) 5 4 7 8 4 4 6 8
cj
0,6 0,75 0,29 0,5 0,5 0,75 0,83 0,25
wj
Passo 5
I Como nao e possvel adicionar o objeto 4, adicionamos o objeto
5. Logo ele e adicionado na mochila:
I sp = (1, 1, 0, 0, 1, 1, 1, 0) solucao parcial
I peso corrente = 23 25
I Nao e possvel mais adicionar objetos!
I Solucao final s = (1, 1, 0, 0, 1, 1, 1, 0) valor = 16.
13 / 57
O problema do caixeiro viajante
Definicao
Dada uma lista de cidades e as distancias entre cada par de
cidades, qual e a rota mais curta que visita cada cidade
exatamente uma vez e retorna para a cidade de origem?
14 / 57
O problema do caixeiro viajante
Definicao
Dada uma lista de cidades e as distancias entre cada par de
cidades, qual e a rota mais curta que visita cada cidade
exatamente uma vez e retorna para a cidade de origem?
Formulcao
Sejam
I n = numero de cidades
14 / 57
O problema do caixeiro viajante
Definicao
Dada uma lista de cidades e as distancias entre cada par de
cidades, qual e a rota mais curta que visita cada cidade
exatamente uma vez e retorna para a cidade de origem?
Formulcao
Sejam
I n = numero de cidades
I cij = o custo de se viajar da cidade i para a cidade j
14 / 57
O problema do caixeiro viajante
Definicao
Dada uma lista de cidades e as distancias entre cada par de
cidades, qual e a rota mais curta que visita cada cidade
exatamente uma vez e retorna para a cidade de origem?
Formulcao
Sejam
I n = numero de cidades
I cij = o custo de se viajar da cidade i para a cidade j
(
1, se existe o caminho de ipara j
I xij =
0, caso contrario
14 / 57
Modelo - PCV
n X
X n
min cij xij
i=1 j=1
Pn
sujeito a : i=1 xij = 1 j = 1, . . . , n
Pn
j=1 xij = 1 i = 1, . . . , n
xij {0, 1} i, j = 1, . . . , n
15 / 57
Modelo - PCV
n X
X n
min cij xij
i=1 j=1
Pn
sujeito a : i=1 xij = 1 j = 1, . . . , n
Pn
j=1 xij = 1 i = 1, . . . , n
xij {0, 1} i, j = 1, . . . , n
15 / 57
Modelo - PCV
n X
X n
min cij xij
i=1 j=1
Pn
sujeito a : i=1 xij = 1 j = 1, . . . , n
Pn
j=1 xij = 1 i = 1, . . . , n
xij {0, 1} i, j = 1, . . . , n
15 / 57
Modelo - PCV
n X
X n
min cij xij
i=1 j=1
Pn
sujeito a : i=1 xij = 1 j = 1, . . . , n
Pn
j=1 xij = 1 i = 1, . . . , n
xij {0, 1} i, j = 1, . . . , n
15 / 57
O problema do Caixeiro Viajante
16 / 57
O problema do Caixeiro Viajante
I Influencia do no inicial.
16 / 57
O problema do Caixeiro Viajante
I Influencia do no inicial.
I Possibilidade de nao encontrar uma solucao viavel
16 / 57
O problema do Caixeiro Viajante
I Influencia do no inicial.
I Possibilidade de nao encontrar uma solucao viavel
I Possibilidade de obter solucoes arbitrariamente ruins
16 / 57
Algoritmo Guloso - PCV - vizinhos mais proximos
Considere o PCV
Com matriz de distancias entre 5
cidades:
1 2 3 4 5
1 0 1 2,2 2 4,1
2 1 0 1,4 2,2 4
3 2,2 1,4 0 2,2 3,2
4 2 2,2 2,2 0 2,2
5 4,1 4 3,2 2,2 0
17 / 57
Algoritmo Guloso - PCV - vizinhos mais proximos
Considere o PCV
Com matriz de distancias entre 5
cidades:
1 2 3 4 5
1 0 1 2,2 2 4,1
2 1 0 1,4 2,2 4
3 2,2 1,4 0 2,2 3,2 I Neste caso, existem
4 2 2,2 2,2 0 2,2 (4)! = 24 rotas possveis.
5 4,1 4 3,2 2,2 0
17 / 57
Algoritmo Guloso - PCV - vizinhos mais proximos
Considere o PCV
Com matriz de distancias entre 5
cidades:
1 2 3 4 5
1 0 1 2,2 2 4,1
2 1 0 1,4 2,2 4
3 2,2 1,4 0 2,2 3,2 I Neste caso, existem
4 2 2,2 2,2 0 2,2 (4)! = 24 rotas possveis.
5 4,1 4 3,2 2,2 0 I Escolhe a cidade 1, para
construir a solucao gulosa.
17 / 57
Algoritmo Guloso - PCV - vizinhos mais proximos
Considere o PCV
Com matriz de distancias entre 5
cidades:
1 2 3 4 5
1 0 1 2,2 2 4,1
2 1 0 1,4 2,2 4
3 2,2 1,4 0 2,2 3,2
4 2 2,2 2,2 0 2,2
5 4,1 4 3,2 2,2 0
18 / 57
Algoritmo Guloso - PCV - vizinhos mais proximos
Considere o PCV
Com matriz de distancias entre 5
cidades:
1 2 3 4 5
1 0 1 2,2 2 4,1
2 1 0 1,4 2,2 4
3 2,2 1,4 0 2,2 3,2
4 2 2,2 2,2 0 2,2
5 4,1 4 3,2 2,2 0
18 / 57
O problema do Caixeiro Viajante
19 / 57
O problema do Caixeiro Viajante
19 / 57
O problema do Caixeiro Viajante
19 / 57
O problema do Caixeiro Viajante
19 / 57
Algoritmo Guloso - PCV - insercao mais barata
Considere o PCV
Com matriz de distancias entre 5
cidades:
1 2 3 4 5
1 0 1 2,2 2 4,1
2 1 0 1,4 2,2 4
3 2,2 1,4 0 2,2 3,2
4 2 2,2 2,2 0 2,2
5 4,1 4 3,2 2,2 0
20 / 57
Algoritmo Guloso - PCV - insercao mais barata
Considere o PCV
Com matriz de distancias entre 5
cidades:
I Ciclo inicial: pode ser
1 2 3 4 5 escolhido, por exemplo,
1 0 1 2,2 2 4,1 pela heurstica dos vizinhos
2 1 0 1,4 2,2 4 mais proximos.
3 2,2 1,4 0 2,2 3,2
4 2 2,2 2,2 0 2,2
5 4,1 4 3,2 2,2 0
20 / 57
Algoritmo Guloso - PCV - insercao mais barata
Considere o PCV
Com matriz de distancias entre 5
cidades:
I Ciclo inicial: pode ser
1 2 3 4 5 escolhido, por exemplo,
1 0 1 2,2 2 4,1 pela heurstica dos vizinhos
2 1 0 1,4 2,2 4 mais proximos.
3 2,2 1,4 0 2,2 3,2
4 2 2,2 2,2 0 2,2
5 4,1 4 3,2 2,2 0
20 / 57
Algoritmo Guloso - PCV - insercao mais barata
21 / 57
Algoritmo Guloso - PCV - insercao mais barata
21 / 57
Algoritmo Guloso - PCV - insercao mais barata
22 / 57
Algoritmo Guloso - PCV - insercao mais barata
Solucao final
Com matriz de distancias entre 5
cidades:
1 2 3 4 5
1 0 1 2,2 2 4,1
2 1 0 1,4 2,2 4
3 2,2 1,4 0 2,2 3,2
4 2 2,2 2,2 0 2,2
5 4,1 4 3,2 2,2 0
23 / 57
Algoritmo Guloso - PCV - insercao mais barata
Solucao final
Com matriz de distancias entre 5
cidades:
1 2 3 4 5
1 0 1 2,2 2 4,1
2 1 0 1,4 2,2 4
3 2,2 1,4 0 2,2 3,2
4 2 2,2 2,2 0 2,2
5 4,1 4 3,2 2,2 0
23 / 57
Objetivo
Melhorar as solucoes construdas: explorando de maneira interativa
o espaco de busca em cada passo, de uma solucao para uma
solucao vizinha.
Metodos
I Metodo da Descida/Subida
I Metodo de Descida/Subida com Primeira Melhora
I Metodo de Descida/Subida Randomica
I Metodo de Descida em Vizinhanca Variavel- VND
I Metodo da Pesquisa Interativa - ILS
24 / 57
Nocao de Vizinhanca
I Seja S o espaco de busca do problema.
I s S uma solucao construda.
I Seja N uma funcao que associa a cada solucao s S, um
subconjunto N(s) S, denominado a vizinhanca de s.
I Cada solucao s 0 N(s) e chamada vizinho de s.
I Denomina-se movimento uma modificacao que transforma uma
solucao s em outra solucao, s 0 , tal que s 0 N(s). Exemplo:
N(s) = {a, b, c, d}
25 / 57
Exemplos
26 / 57
Exemplos
Problema da mochila
Uma vizinhanca N(s) de uma solucao s, e definida pelo movimento
de mudar a variavel de s de 0 para 1 ou vice-versa.
27 / 57
Metodo da descida - (hill climbing)
I Seleciona uma solucao inicial s S.
I A cada passo analisa todos os possveis vizinhos
I Move para o vizinho que apresenta uma melhora no valor atual
da funcao de avaliacao (objetivo)
I O metodo para quando um otimo local e encontrado, ou seja,
nenhum vizinho for melhor do que a solucao corrente (segundo
aquele movimento).
28 / 57
Metodo da Descida
s Gera()
k1
while k do
s 0 EscolheMelhorVizinho(s, N)
if f (s 0 ) < f (s) then
s s0
else
k 0
end-if
end-while
return s
29 / 57
Busca Local - O problema da mochila
objeto(j) 1 2 3 4 5 6 7 8
valor (cj ) 3 3 2 4 2 3 5 2
peso(wj ) 5 4 7 8 4 4 6 8
Capacidade da mochila b = 25
30 / 57
Busca Local - O problema da mochila
objeto(j) 1 2 3 4 5 6 7 8
valor (cj ) 3 3 2 4 2 3 5 2
peso(wj ) 5 4 7 8 4 4 6 8
Capacidade da mochila b = 25
Busca Local
I Solucao inicial aleatoria.
I Uma vizinhanca N(s) de uma solucao s, e definida pelo
movimento de mudar a variavel de s de 0 para 1 ou vice-versa.
30 / 57
Busca Local - O problema da mochila
31 / 57
Busca Local - O problema da mochila
32 / 57
Busca Local - O problema da mochila
33 / 57
Busca Local - PCV
Considere o PCV
Com matriz de distancias entre 5
cidades:
1 2 3 4 5
1 0 1 2,2 2 4,1
2 1 0 1,4 2,2 4
3 2,2 1,4 0 2,2 3,2
4 2 2,2 2,2 0 2,2
5 4,1 4 3,2 2,2 0
34 / 57
Busca Local - PCV
1 2 3 4 5
1 0 1 2,2 2 4,1
2 1 0 1,4 2,2 4
3 2,2 1,4 0 2,2 3,2
4 2 2,2 2,2 0 2,2
5 4,1 4 3,2 2,2 0
34 / 57
Busca Local - PCV
1 2 3 4 5
1 0 1 2,2 2 4,1
2 1 0 1,4 2,2 4
3 2,2 1,4 0 2,2 3,2
4 2 2,2 2,2 0 2,2
5 4,1 4 3,2 2,2 0
34 / 57
Busca Local - PCV (2-opt)
35 / 57
Variantes da Busca Local
I Ha casos onde a vizinhanca e grande ou o custo de avaliacao de
cada solucao e muito caro.
I Alternativas para evitar a avaliacao de toda vizinhanca:
I Metodo de Primeira Melhora
I Metodo de Descida Aleatoria
36 / 57
Metodo da Descida de Primeira Melhora
I Interrompe a exploracao da vizinhanca quando um primeiro
vizinho melhor e encontrado
I Desta forma, apenas no pior caso, toda a vizinhanca sera
explorada
I A solucao final e um otimo local com respeito a vizinhanca
considerada
I Evita a pesquisa exaustiva pelo melhor vizinho
37 / 57
Metodo da Descida de Primeira Melhora
s Gera()
k1
while k do
s 0 EscolheVizinho(s, N)
if f (s 0 ) < f (s) then
s s0
k 0
else
k |(s, N)|
end-if
end-while
return s
38 / 57
Metodo da Descida Aleatoria
I Consiste em escolher um vizinho aleatorio e o aceitar somente se
ele for melhor do que a melhor solucao conhecida ate o momento
I Se o vizinho escolhido nao for melhor, a solucao corrente
(melhor) permanece inalterada e outro vizinho e gerado
I O procedimento e interrompido apos um certo numero fixo de
iteracoes sem melhora no valor da funcao objetivo
I A solucao final nao e necessariamente um otimo local
I Por outro lado, e possvel controlar melhor o tempo de
processamento
39 / 57
Metodo da Descida Aleatotia
s Gera()
k1
repeat
s 0 EscolheVizinhoAleatorio(s, N)
if f (s 0 ) < f (s) then
s s0
k 1
else
k k +1
end-if
until k = max
return s
40 / 57
Algoritmos de ILS e VNS
41 / 57
Algoritmos de ILS e VNS
41 / 57
Algoritmos de ILS e VNS
41 / 57
Algoritmos de ILS e VNS
42 / 57
Algoritmos de ILS e VNS
42 / 57
Algoritmos de ILS e VNS
42 / 57
Algoritmos de ILS e VNS
43 / 57
Algoritmos de ILS e VNS
43 / 57
Algoritmos de ILS e VNS
43 / 57
Algoritmos de ILS e VNS
43 / 57
Algoritmos de ILS e VNS
43 / 57
Algoritmos de ILS e VNS
44 / 57
Algoritmos de ILS e VNS
s Gera()
s PesquisaLocal(s)
repeat
s 0 Perturba(s , memoria)
0
s PesquisaLocal(s 0 )
0
s Aceita(s , s )
until condicao de parada ser verdadeira
return s
45 / 57
Algoritmos de ILS e VNS
46 / 57
Algoritmos de ILS e VNS
46 / 57
Algoritmos de ILS e VNS
46 / 57
Algoritmos de ILS e VNS
46 / 57
Algoritmos de ILS e VNS
46 / 57
Algoritmos de ILS e VNS
46 / 57
Algoritmos de ILS e VNS
46 / 57
Algoritmos de ILS e VNS
47 / 57
Algoritmos de ILS e VNS
47 / 57
Algoritmos de ILS e VNS
47 / 57
Algoritmos de ILS e VNS
47 / 57
Algoritmos de ILS e VNS
47 / 57
Algoritmos de ILS e VNS
48 / 57
Algoritmos de ILS e VNS
48 / 57
Algoritmos de ILS e VNS
48 / 57
Algoritmos de ILS e VNS
48 / 57
Algoritmos de ILS e VNS
48 / 57
Algoritmos de ILS e VNS
49 / 57
Algoritmos de ILS e VNS
49 / 57
Algoritmos de ILS e VNS
50 / 57
Algoritmos de ILS e VNS
50 / 57
Algoritmos de ILS e VNS
50 / 57
Algoritmos de ILS e VNS
50 / 57
Algoritmos de ILS e VNS
50 / 57
Algoritmos de ILS e VNS
50 / 57
Algoritmos de ILS e VNS
50 / 57
Pesquisa de Vizinhanca Variavel (VNS)
51 / 57
Pesquisa de Vizinhanca Variavel (VNS)
Reduced VNS
s Gera()
k1
repeat
s 0 EscolheQualquerVizinho(s, N k )
if f (s 0 ) < f (s) then
s s0
k 1
else
k k +1
end-if
until k = m (ou criterio de parada satisfeito)
return s
52 / 57
Pesquisa de Vizinhanca Variavel (VNS)
Basic VNS
s Gera()
k1
repeat
s 0 EscolheQualquerVizinho(s, N k )
s PesquisaLocal(s 0 )
if f (s ) < f (s) then
s s
k 1
else
k k +1
end-if
until k = m (ou criterio de parada satisfeito)
return s
53 / 57
GRASP - Greedy Randomized Adaptive Search Procedure
I E uma metaheurstica constituda por heursticas construtivas e
busca local. Consiste de multiplas aplicacoes de busca local,
cada uma iniciando de uma solucao diferente. As solucoes
iniciais sao geradas por algum tipo de construcao randomica
gulosa ou algum esquema de perturbacao.
54 / 57
GRASP - Greedy Randomized Adaptive Search Procedure
I E uma metaheurstica constituda por heursticas construtivas e
busca local. Consiste de multiplas aplicacoes de busca local,
cada uma iniciando de uma solucao diferente. As solucoes
iniciais sao geradas por algum tipo de construcao randomica
gulosa ou algum esquema de perturbacao.
I Varias aplicacoes para encontrar solucoes aproximadas para
problemas de otimizacao combinatoria.
54 / 57
GRASP - Greedy Randomized Adaptive Search Procedure
k1
repeat
s Construcao(solucao)
s 0 PesquisaLocal(s)
s Aceita(s, s 0 )
until k=max (condicao de parada ser verdadeira)
return s
55 / 57
GRASP - Greedy Randomized Adaptive Search Procedure
k1
repeat
s Construcao(solucao)
s 0 PesquisaLocal(s)
s Aceita(s, s 0 )
until k=max (condicao de parada ser verdadeira)
return s
Princpio:
Combinacao de um metodo construtivo com busca local, em um
procedimento iterativo com iteracoes completamente
independentes
55 / 57
GRASP - Greedy Randomized Adaptive Search Procedure
Construcao (GRASP)
56 / 57
GRASP - Greedy Randomized Adaptive Search Procedure
Construcao (GRASP)
I Cada iteracao da fase de construcao:
56 / 57
GRASP - Greedy Randomized Adaptive Search Procedure
Construcao (GRASP)
I Cada iteracao da fase de construcao:
I usando uma funcao gulosa, avaliar o benefcio de cada elemento
56 / 57
GRASP - Greedy Randomized Adaptive Search Procedure
Construcao (GRASP)
I Cada iteracao da fase de construcao:
I usando uma funcao gulosa, avaliar o benefcio de cada elemento
I criar uma lista restrita de candidatos (LRC), formada pelos
elementos de melhor avaliacao
56 / 57
GRASP - Greedy Randomized Adaptive Search Procedure
Construcao (GRASP)
I Cada iteracao da fase de construcao:
I usando uma funcao gulosa, avaliar o benefcio de cada elemento
I criar uma lista restrita de candidatos (LRC), formada pelos
elementos de melhor avaliacao
I selecionar aleatoriamente um elemento da lista restrita de
candidatos
56 / 57
GRASP - Greedy Randomized Adaptive Search Procedure
Construcao (GRASP)
I Cada iteracao da fase de construcao:
I usando uma funcao gulosa, avaliar o benefcio de cada elemento
I criar uma lista restrita de candidatos (LRC), formada pelos
elementos de melhor avaliacao
I selecionar aleatoriamente um elemento da lista restrita de
candidatos
I adaptar a funcao gulosa com base na decisao do elemento que foi
includo
56 / 57
GRASP - Greedy Randomized Adaptive Search Procedure
Construcao (GRASP)
I Cada iteracao da fase de construcao:
I usando uma funcao gulosa, avaliar o benefcio de cada elemento
I criar uma lista restrita de candidatos (LRC), formada pelos
elementos de melhor avaliacao
I selecionar aleatoriamente um elemento da lista restrita de
candidatos
I adaptar a funcao gulosa com base na decisao do elemento que foi
includo
I Selecao aleatoria e feita entre os melhores elementos da lista de
candidatos (nao necessariamente o melhor, como na escolha
puramente gulosa).
56 / 57
GRASP - Greedy Randomized Adaptive Search Procedure
Construcao (GRASP)
I Cada iteracao da fase de construcao:
I usando uma funcao gulosa, avaliar o benefcio de cada elemento
I criar uma lista restrita de candidatos (LRC), formada pelos
elementos de melhor avaliacao
I selecionar aleatoriamente um elemento da lista restrita de
candidatos
I adaptar a funcao gulosa com base na decisao do elemento que foi
includo
I Selecao aleatoria e feita entre os melhores elementos da lista de
candidatos (nao necessariamente o melhor, como na escolha
puramente gulosa).
I Diversificacao baseada em aleatorizacao controlada: diferentes
solucoes construdas em diferentes iteracoes GRASP
56 / 57
GRASP - Greedy Randomized Adaptive Search Procedure
Construcao (GRASP)
57 / 57
GRASP - Greedy Randomized Adaptive Search Procedure
Construcao (GRASP)
s
repeat
C ProduzirLRC ()
c SelecionarElementoAleat orio(C )
s s c
until (solucao nao construda)
return s
57 / 57
GRASP - Greedy Randomized Adaptive Search Procedure
Construcao (GRASP)
s
repeat
C ProduzirLRC ()
c SelecionarElementoAleat orio(C )
s s c
until (solucao nao construda)
return s
Princpio:
A tecnica de escolha permite que diferentes solucoes sejam geradas
em cada iteracao GRASP.
57 / 57