Você está na página 1de 57

O que é Otimização Combinatória

Heurísticas Para Otimização


• Problemas de otimização combinatória
Combinatória
* Dentre um conjunto finito (grande) de soluções,
escolher a melhor.
* Esses problemas são modelados como problemas
de maximizar (ou minimizar) uma função cujas
variáveis devem obedecer certas restrições.

Silvio Alexandre de Araujo

Slide 0 Slide 1

Exemplos Clássicos Desafios Computacionais


• Problema da Mochila • Resolver problemas de otimização combinatória
• Dados n objetos que posso armazenar em uma mochila, pertencentes a classe NP-hard ou NP-completo com
onde cada um tem um peso e uma utilidade, quanto de pouco esforço computacional (tempo de execução).
cada objeto devo escolher de tal modo que o peso total
não seja maior que P e o somatório das utilidades seja o
maior possível? • Encontrar soluções ótimas, ou mesmo aproximadas,
para esses tipos de problemas é um desafio nem
• Problema do Caixeiro Viajante
sempre fácil de ser vencido
• Dadas n cidades, encontrar um caminho passando por
todas elas de maneira que o percurso total seja o menor
possível. • Em muitos problemas práticos não há a necessidade
de encontrar uma solução “teoricamente” ótima

Slide 2 Slide 3
Resolução de Problemas
Heurística
NP-difícil e NP-completo
• Algoritmos exatos não-polinomiais: • Heurística é vem do grego Heurikein (descobrir)
• programação dinâmica , branch-and-bound, • Heurística é uma técnica que melhora a eficiência do
branch-and-cut , planos-de-corte, etc. processo de busca de soluções de um problema;
• As Heurísticas não são capazes de garantir a solução do
• Algoritmos aproximativos: encontram uma solução viável com problema;
um valor a uma distância máxima garantida do ótimo
• Os algoritmos heurísticos são algoritmos que não
garantem encontrar a solução ótima de um problema, mas
• Algoritmos heurísticos: são capazes de retornar uma solução de qualidade em um
tempo adequado para as necessidades da aplicação.
• O objetivo de uma heurística é tentar encontrar uma
solução “boa” de maneira simples e rápida.

Slide 4 Slide 5

Heurística (classificação) Heurística (classificação)

1. Métodos construtivos 4. Manipulação do Modelo


• processo iterativo que inicia com uma solução vazia e adiciona um
novo elemento a cada iteração até a obtenção de uma solução. • modificam o modelo de tal forma que ele fique mais fácil de

2. Métodos de decomposição resolver.


• consistem em dividir o problema em subproblemas menores, de modo • Ex. relaxação linear, relaxação lagrangeana.
que a resolução de todos os subproblemas possam compor uma
solução para o problema maior. 5. Métodos de Busca
3. Métodos de Redução • categoria a qual pertencem a maioria das meta-heurísticas
• identificam algumas características que presumidamente deverá
• inicia em uma solução (podendo ser obtida a partir de outra
possuir a solução ótima e simplifica o problema fixando-se o valor de
tais variáveis
heurística) e caminha sobre as soluções vizinhas.

Slide 6 Slide 7
Heurística - Método Construtivo
• Exemplos de algoritmos construtivos:
1. Problema do Caixeiro Viajante
• Vizinho mais próximo
• Inserção do Mais Distante
Heurística - Métodos Construtivos 2. Problema da Mochila
• (H1) Escolher os itens por ordem decrescente da razão
bi/wi, onde, bi = valor e wi = peso.
• (H2) Escolher os itens por ordem decrescente do valor
(bi).
• (H3) Escolher os itens por ordem crescente do valor
(wi).

Slide 8 Slide 9

Problema do Caixeiro Viajante:


Heurísticas Construtivas para Problema do
Caixeiro Viajante
Definição
A um caixeiro viajante é informado um conjunto de cidades e
(Traveling Salesman Problem) um custo inteiro cij associado a cada cidade i e j deste conjunto,
TSP representando a distância de ir da cidade i à cidade j. O caixeiro
deve partir de uma cidade inicial, passar por todas as demais uma
única vez e retornar à cidade de partida. O problema consiste em
fazer esta trajetória pelo menor caminho possível. No caso
Silvio Alexandre de Araujo simétrico cij = cji ∀ i e j.

http://www.tsp.gatech.edu/index.html

Slide 10 Slide 11
Problema do Caixeiro Viajante: 120 Cidades da Alemanha Ocidental (1977)
Histórico
• 18xx: primeiros relatos sobre o problema;
• 192x: o problema foi definido;
• 194x: o problema foi popularizado e classificado como “difícil”;
• 1954: resolvido na otimalidade um problema de 42 cidades.

Slide 12 Slide 13

Solução Ótima para o pcb3038


532 Cidades dos Estados Unidos (1987): att532

Slide 14 Slide 15
Maior Instância Resolvida na Otimalidade (em 1998) : Problema do Caixeiro Viajante:
usa13509 Aplicações
- Fabricação de placas de circuitos eletrônicos: a
fabricação de placas de circuitos eletrônicos é feita
em diversas etapas:
-Perfuração de placas circuito impresso (Print
Circuits Board)
- Soldagem dos chips na placa
- Conexão entre os pinos
- Teste do circuito

Slide 16 Slide 17

Problema do Caixeiro Viajante: Problema do Caixeiro Viajante:


Aplicações Aplicações
- Seqüenciamento de tarefas
- Suponha que n tarefas devam ser processadas - Controle de robôs
seqüencialmente em uma determinada máquina. - Para fabricar alguma peça, um robô tem que realizar
- O tempo de preparo da máquina para processar a uma seqüência de operações.
tarefa j imediatamente após a tarefa i é designado - Para determinar uma seqüência para realizar as
por cij. operações necessárias, a fim de minimizar o tempo de
- O problema de encontrar uma seqüência de processamento (considerenado que existem
execução para as tarefas, de forma a minimizar o restrições de precedência) temos o problema de
tempo total de processamento, pode ser modelado encontrar o caminho hamiltoniano mais curto
como um TSP

Slide 18 Slide 19
Problema do Caixeiro Viajante:
Aplicações Algoritmos construtivos
- Roteamento de veículos como um problema de m-
caixeiros
- clientes exigem certas quantidades de mercadorias
e um fornecedor tem que satisfazer as demandas
com uma frota de caminhões.
- tem-se o problema de designar clientes a
caminhões e encontrar um escalonamento de
entrega para cada caminhão de forma que a sua
capacidade não seja excedida, bem como minimizar
o custo total da viagem.
- se não há restrição de tempo ou se o número de
caminhões é fixo (m), este problerma pode ser
resolvido como um TSP
Slide 20 Slide 21

Problema do caixeiro viajante Problema do caixeiro viajante


Matrix de distâncias cij
Conjunto de nós N ƒ Algoritmo do vizinho mais próximo:
1
|N|=5 5 1 Escolher o nó inicial i e fazer N ← N-{i}.
7 2
3 Enquanto N ≠ ∅ fazer:
5 2
2 4 Obter j∈N tal que ci,j = mink∈N {ci,k}.
N ← N-{j}
3 3
i←j
4 5 3 Fim-enquanto

Slide 22 Slide 23
Problema do caixeiro viajante Problema do caixeiro viajante

i=1
1 1
5 1
7 2
5 3 2 5 2
2 4
3 3

4 5 3 4 3

Slide 24 Slide 25

Problema do caixeiro viajante Problema do caixeiro viajante

i=1 i=1
1 1
5 1 1

5 2 5 2
2
7

4 3 4 3

Slide 26 Slide 27
Problema do caixeiro viajante Problema do caixeiro viajante

1 1
1 1
3 i=2 3 i=2
5 2 5 2

4 3

4 3 4 3

Slide 28 Slide 29

Problema do caixeiro viajante Problema do caixeiro viajante

1 1
1 1
i=5 3 i=5 3
5 2 5 2

3 2 2

4 3 4 3

Slide 30 Slide 31
Problema do caixeiro viajante Problema do caixeiro viajante

1 1
1 1
3 3
5 2 5 2

2 2

5 i=3 5 i=3
4 3 4 3

Slide 32 Slide 33

Problema do caixeiro viajante Problema do caixeiro viajante


• Algoritmos construtivos simples podem falhar
comprimento=18 1 mesmo para casos muito simples:
1
2
3 2 2
5 2

1 1 4
7 2
3 3
i=4 5
4 3 3

Slide 34 Slide 35
Problema do caixeiro viajante Problema do caixeiro viajante
• Extensões e melhorias simples:
• Podem encontrar soluções arbitrariamente * Repetir a aplicação do algoritmo a partir de cada nó do grafo e
ruins: selecionar a melhor solução obtida.
1 • Melhores soluções, mas tempo de processamento multiplicado por n.
Heurística (1-5-4-3-2-1): M+4 1 M
2 2 * A cada iteração selecionar a aresta mais curta a partir de
2
Ótimo (1-5-2-3-4-1): 7 5 2 alguma das extremidades em aberto do circuito, e não apenas
2 2 a partir da última extremidade inserida: solução de
comprimento 15 (tempos multiplicados por dois).
1 1
* Critérios mais elaborados para (1) seleção do novo nó
4 1 3 incorporado ao circuito a cada iteração e para (2) seleção da
A solução ótima é encontrada posição onde ele entra no circuito: algoritmo baseado no
crescimento de um circuito até completá-lo.
se o algoritmo começa do nó 5. Slide 36 Slide 37

Problema do caixeiro viajante Problema do caixeiro viajante


• Escolha do novo nó a ser incorporado ao • Escolha do novo nó a ser incorporado ao
circuito a cada iteração: circuito a cada iteração pela inserção mais
* Selecionar o nó k fora do circuito parcial corrente, próxima
1
cuja aresta de menor comprimento que o liga a este
circuito parcial corrente é mínima → algoritmo de • Seleção do nó:
inserção mais próxima 5 2
* Selecionar o nó k fora do circuito parcial corrente,
cuja aresta de menor comprimento que o liga a este
circuito parcial corrente é máxima → algoritmo de
inserção mais afastada
4 3

Slide 38 Slide 39
Problema do caixeiro viajante Problema do caixeiro viajante
• Escolha do novo nó a ser incorporado ao • Escolha do novo nó a ser incorporado ao
circuito a cada iteração pela inserção mais circuito a cada iteração pela inserção mais
próxima próxima
1 1
5
7
5 2 5 3 2
• Seleção do nó: 4
• Seleção do nó: 2
* Distância mínima do nó 4: 4 * Distância mínima do nó 4: 4
* Distância mínima do nó 5: 2
4 5 3 4 3

Slide 40 Slide 41

Problema do caixeiro viajante Problema do caixeiro viajante


• Escolha do novo nó a ser incorporado ao • Escolha do novo nó a ser incorporado ao
circuito a cada iteração pela inserção mais circuito a cada iteração pela inserção mais
próxima afastada
1 1

• Seleção do nó:
5 2 5 2
• Seleção do nó:
* Distância mínima do nó 4: 4
* Distância mínima do nó 5: 2
* Nó selecionado: 5 4 3 4 3

Slide 42 Slide 43
Problema do caixeiro viajante Problema do caixeiro viajante
• Escolha do novo nó a ser incorporado ao • Escolha do novo nó a ser incorporado ao
circuito a cada iteração pela inserção mais circuito a cada iteração pela inserção mais
afastada afastada
1 1
5
7
5 2 5 3 2
• Seleção do nó: • Seleção do nó: 2
4
* Distância mínima do nó 4: 4 * Distância mínima do nó 4: 4
* Distância mínima do nó 5: 2
4 5 3 4 3

Slide 44 Slide 45

Problema do caixeiro viajante Problema do caixeiro viajante


• Escolha do novo nó a ser incorporado ao • Escolha da posição onde o nó selecionado
circuito a cada iteração pela inserção mais entra no circuito:
afastada * Suponha a entrada do nó k entre o nó i e o nó j.
1 * Devem ser inseridas as arestas (i,k) e (j,k) no
circuito parcial corrente, substituindo a aresta (i,j).
5 2
* A variação no comprimento do circuito parcial
• Seleção do nó: corrente é dada por ∆ij(k) = cik + cjk – cij.
i
k
* Distância mínima do nó 4: 4
* Distância mínima do nó 5: 2
* Nó selecionado: 4 4 3
j
Slide 46 Slide 47
Problema do caixeiro viajante Problema do caixeiro viajante
• Escolha da posição onde o nó selecionado • Escolha da posição onde o nó selecionado
entra no circuito: entra no circuito:
* Suponha a entrada do nó k entre o nó i e o nó j. * Suponha a entrada do nó k entre o nó i e o nó j.
* Devem ser inseridas as arestas (i,k) e (j,k) no * Devem ser inseridas as arestas (i,k) e (j,k) no
circuito parcial corrente, substituindo a aresta (i,j). circuito parcial corrente, substituindo a aresta (i,j).
* A variação no comprimento do circuito parcial * A variação no comprimento do circuito parcial
corrente é dada por ∆ij(k) = cik + cjk – cij. cik corrente é dada por ∆ij(k) = cik + cjk – cij. cik
i i
k k

cjk cij cjk cij

j j
Slide 48 Slide 49

Problema do caixeiro viajante Problema do caixeiro viajante


• Escolha da posição onde o nó selecionado entra
• Escolha da posição onde o nó selecionado entra
no circuito parcial corrente
no circuito parcial corrente
• Exemplo: nó 4 escolhido para inserção
• Exemplo: nó 4 escolhido para inserção
1 1
1 1
∆12(4) = 7+4-1 = 10 7 ∆12(4) = 7+4-1 = 10 7
2 2
∆13(4) = 7+5-2 = 10 5 2 ∆13(4) = 7+5-2 = 10 5 2
∆23(4) = 5+4-3 = 6 4 ∆23(4) = 5+4-3 = 6 4
3 3

• Inserção mais próxima:


4 3 4 3
5 entre os nós 2 e 3 5
Slide 50 Slide 51
Problema do caixeiro viajante Problema do caixeiro viajante
• Escolha da posição onde o nó selecionado entra
no circuito parcial corrente • Algoritmo de inserção mais próxima:
Escolher o nó inicial i, inicializar um circuito apenas com
• Exemplo: nó 4 escolhido para inserção
o nó i e fazer N ← N-{i}.
1
Enquanto N ≠ ∅ fazer:
1
∆12(4) = 7+4-1 = 10 Encontrar o vértice k fora do circuito corrente cuja aresta de
2
∆13(4) = 7+5-2 = 10 5 2 menor comprimento que o liga a ele é mínima.
∆23(4) = 5+4-3 = 6 4 Encontrar o par de arestas (i,k) e (j,k) que ligam o vértice k ao
ciclo minimizando ∆ij(k) = cik + cjk – cij.
• Inserção mais próxima: Inserir as arestas (i,k) e (j,k) e retirar a aresta (i,j).
Fazer N ← N-{k}.
entre os nós 2 e 3 4 3
5 Fim-enquanto
Slide 52 Slide 53

Problema do caixeiro viajante Problema do caixeiro viajante

1 1
1 1
2 ∆12(5) = 5+3-1 = 7 2
∆23(5) = 2+3-3 = 2 3
5 2 5 2
2 ∆13(5) = 2+5-2 = 5 2

3 3
4
4 3 4 3

Slide 54 Slide 55
Problema do caixeiro viajante Problema do caixeiro viajante

1 1
1 1
2 2
3 3
5 2 5 2
2 2

∆12(4) = 7+4-1 = 10
4 3 ∆13(4) = 7+5-2 = 10 4 3
∆35(4) = 5+3-2 = 6
∆25(4) = 4+3-3 = 4
Slide 56 Slide 57

Problema do caixeiro viajante Problema do caixeiro viajante

1 comprimento = 12 1
1 1
2 2
3
5 2 5 2
2 2

3 3

∆12(4) = 7+4-1 = 10 4 4
∆13(4) = 7+5-2 = 10 4 3 4 3
∆35(4) = 5+3-2 = 6
∆25(4) = 4+3-3 = 4
Slide 58 Slide 59
Problema do caixeiro viajante Problema do caixeiro viajante
• Comparação: na prática, o método de inserção • Algoritmo de inserção mais barata:
mais afastada alcança melhores resultados do
que o de inserção mais próxima. Escolher o nó inicial i, inicializar um circuito
apenas com o nó i e fazer N ← N-{i}.
• Melhoria simples: método de inserção mais
barata Enquanto N ≠ ∅ fazer:
Encontrar o vértice k fora do circuito corrente e o par
* Por que separar em dois passos (1) a seleção do
de arestas (i,k) e (j,k) que ligam o vértice k ao ciclo
novo nó incorporado ao circuito a cada iteração e
minimizando ∆ij(k) = cik + cjk – cij.
(2) a seleção da posição onde ele entra no circuito?
Inserir as arestas (i,k) e (j,k) e retirar a aresta (i,j).
* Fazer a escolha da melhor combinação em
conjunto. Fazer N ← N-{k}.
* Melhores soluções, mas tempos de processamento Fim-enquanto
maiores (cerca de n vezes maiores).
Slide 60 Slide 61

Problema do caixeiro viajante Problema do caixeiro viajante


• Outra idéia diferente: considerar a fusão de • Outra idéia diferente: considerar a fusão de
subcircuitos subcircuitos
• Considerar dois subcircuitos passando pelo nó 1 • Considerar dois subcircuitos passando pelo nó 1
e pelos nós i e j. 1 e pelos nós i e j. 1

• Conectá-los diretamente através • Conectá-los diretamente através


da aresta (i,j). da aresta (i,j).
• Remover as arestas (1,i) e (1,j).

i j i j
Slide 62 Slide 63
Problema do caixeiro viajante Problema do caixeiro viajante
• Outra idéia diferente: considerar a fusão de • Algoritmo das economias:
subcircuitos Escolher um nó inicial i (e.g., i = 1).
• Considerar dois subcircuitos passando pelo nó 1 Construir subcircuitos de comprimento 2 envolvendo o
e pelos nós i e j. nó inicial (e.g., i = 1) e cada um dos demais nós de N.
1
• Conectá-los diretamente através Calcular as economias sij = c1i + c1j - cij obtidas pela fusão
da aresta (i,j). dos subcircuitos contendo i e j e ordená-las em ordem
• Remover as arestas (1,i) e (1,j). decrescente.
• Economia realizada: Percorrer a lista de economias e fundir os subcircuitos
possíveis: a cada iteração, maximizar a distância
sij = c1i + c1j – cij
economizada sobre a solução anterior, combinando-se
dois subcircuitos e substituindo-os por uma nova
i j
aresta.
Slide 64 Slide 65

Problema do caixeiro viajante Problema do caixeiro viajante

1 1

5 2 5 2
s45 = 9 s45 = 9
s35 = 5 s35 = 5
s34 = 4 s34 = 4
s24 = 4 s24 = 4
s25 = 3 4 3 s25 = 3 4 3
s23 = 0 s23 = 0

Slide 66 Slide 67
Problema do caixeiro viajante Problema do caixeiro viajante

1 1

5 2 5 2
s45 = 9 s45 = 9
s35 = 5 s35 = 5
s34 = 4 s34 = 4
s24 = 4 s24 = 4
s25 = 3 4 3 s25 = 3 4 3
s23 = 0 s23 = 0

Slide 68 Slide 69

Problema do caixeiro viajante Exercício

1 • Implementar diferentes herísticas de constução


para resolução do Problema do Caixeiro Viajante
5 2
s45 = 9
s35 = 5
s34 = 4
s24 = 4
s25 = 3 4 3
s23 = 0
comprimento = 12
Slide 70 Slide 71
Comentários Comentários
• Descrição de instâncias e soluções ótimas para o • Referências:
problema do caixeiro viajante: - Lawler, Lenstra, Rinnooy Kan e Shmoys (eds.),
http://www.iwr.uni-heidelberg.de/groups/comopt/software/TSPLIB95/ “The traveling salesman problem”, 1985
• Estudo comparativo de heurísticas para o problema - David S. Johnson, Lyle A. McGeoch, “The
do caixeiro viajante: Traveling Salesman Problem: A Case Study in
http://www.research.att.com/~dsj/chtsp/ Local Optimization” (1995)
• Em particular, página com gráficos comparativos:
http://www.research.att.com/~dsj/chtsp/testform2.html
• Outra Página:
http://www.tsp.gatech.edu/index.html

Slide 72 Slide 73

Bibliografia
• A. Diaz, F. Glover, H. M. Ghaziri, J. L. González, M. Laguna,
P. Moscato e F. T. Tseng, Optimización Heurística Y Redes
Neurolales, Editorial Paraninfo, Espanha, 1996.
• Z. Michalewicz, Genetic Algorithms + Data Structures =
Heurística - Métodos de Busca
Evolution Programs, Springer-verlag, 1992.
• C. R. Reeves, Modern Heuristic Techniques for Combinatorial
Problems, Blackwell, 1993.
• F. Glover e M. Laguna, Tabu Search, Kluwer Academic
Publishers, USA, 1997.
• V. J. Rayward-smith, I. H. Osman, C. R. Reeves e G. D.
Smith, Modern Heuristic Search Methods, Wiley, Inglaterra,
1996.

Slide 74 Slide 75
Conceitos básicos Espaço de busca
• Espaço de soluções • Movimento
100 101
* O conjunto de todas as soluções (viáveis) possíveis * É a transição de uma solução
(satisfazendo as restrições do problema) para outra solução vizinha.
000 001
• Vizinhança
* Dada uma solução x, os elementos da vizinhança N (x ) de x • Espaço de busca
são aquelas soluções y que pode ser obtida aplicando uma * O conjunto das soluções obtidas
perturbação elementar sobre x. por meio de uma vizinhança. 010 011
* Exemplo: Considere x = (0,1,0) e a vizinhança 1-flip de um vetor 0/1.

x = (0,1,0)
110 111

(0,0,0) movimento
(1,1,0) (0,1,1)
N (x )
Slide 76 Slide 77

51 50

48 49
• Ótimo local
49 50 52 50
* é uma solução tão boa ou melhor do qualquer das
soluções vizinhas 47 48
Ótimo
46 48
local
• Ótimo global (solução ótima). 50 51
* É a melhor solução dentre todos os ótimos locais.
49 48
Ótimo
global 50 52 50 49
48 47

48 46
Slide 78 Slide 79
Heurística - Busca Local Representação de soluções
• Algoritmos de busca local são construídos como uma forma de • Os métodos de busca local são dependentes da forma
exploração do espaço de busca. adotada para representar as soluções, pois a
vizinhança de uma solução é obtida a partir da sua
• Partida: solução inicial obtida através de um método representação.
construtivo
• Representação de uma solução: indicar quais
• Iteração: melhoria sucessiva da solução corrente através de elementos estão presentes e quais não estão.
uma busca na sua vizinhança • As formas mais adotadas são:
* Vetores de Pertinência
• Parada: primeiro ótimo local encontrado, ou seja, não existe * Combinações
solução vizinha melhor.
* Permutações

Slide 80 Slide 81

Representação de soluções Representação de soluções


• Vetores de pertinência • Vetor de pertinência para o problema da mochila 0-1:
Vetores onde o mapeamento de cada elemento da solução é feito para cada n itens, vetor 0-1 com n posições, xj = 1 se o item j é
uma das posições (ou dimensões) do vetor. A presença de um determinado selecionado, xj = 0 caso contrário.
elemento na resposta é representada pelo 1 na posição correspondente. Sua
ausência é representada pelo 0 (ou vice-versa)
• Combinações
Conjuntos contendo exatamente os elementos presentes na resposta (ou
exatamente os elementos ausentes).
• Permutações
Conjunto ordinal (contendo todos os elementos) indicando a ordem com que
estes aparecem na solução. (ex.: lista de cidades visitadas para o problema
do caixeiro viajante).
Slide 82 Slide 83
Representação de soluções Representação de soluções
• Combinação para o problema da mochila: Vetor de pertinência para o PCV:
Uma solução S é formada pelo conjunto de itens Solução é um vetor de n = número de arestas posições
selecionados. ve = 1, se a aresta e pertence a solução
0, caso contrário.
1
a b
5
4 2
6
d c
3
Soluções viáveis:
(1,1,1,1,0,0), (1,0,1,0,1,1), (0,1,0,1,1,1)
Slide 84 Slide 85

Representação de soluções Vizinhança


Permutação para o PCV: • Problema combinatório:
Cada solução é representada pela ordem em que os f(s*) = mínimo { f(s): s ∈ S}
vértices são visitados, isto é, como uma S é um conjunto discreto de soluções
permutação circular dos n vértices (já que o
primeiro vértice é arbitrário) • Vizinhança: elemento que introduz a noção de
(a)bcd (b)bdc proximidade entre as soluções em S.
(c)cbd (d)cdb
(e)dbc (f)dcb • Uma vizinhança é um mapeamento que leva as
soluções de S em um subconjunto deste
mesmo conjunto de soluções.

Slide 86 Slide 87
Vizinhança Vizinhança
N(s) = {s1,s2,…,sk} soluções vizinhas de s Exemplo de vizinhanças no espaço de permutações:

Solução π=(π1,…,πi -1,πi,πi +1,…,πj,…,πn)


• Boas vizinhanças permitem representar de forma
compacta e eficiente o conjunto de soluções vizinhas
N1(π)={(π1,…,πi+1,πi ,…,πn): i=1,…, n-1}
de qualquer solução s.
Vizinhos de (1,2,3,4) = {(2,1,3,4),(1,3,2,4), (1,2,4,3)}

• Espaço de busca: definido pelo conjunto de soluções


N2(π)={(π1,…,πj,...,πi,…,πn): i=1,…,n-1; j=i+1,…,n}
S e por uma vizinhança N
Vizinhos de (1,2,3,4)= {(2,1,3,4),(1,3,2,4),
(1,2,4,3),(4,2,3,1),(2,3,1,4),(1,4,3,2)}

Slide 88 Slide 89

Vizinhança Vizinhança/Espaço de Busca


• O espaço de busca pode ser visto como um grafo onde os 1243 1342
Exemplo 1: espaço de
vértices são as soluções e existem arestas entre pares de busca para a 1234 1324
vértices associados a soluções vizinhas. vizinhança N1 sobre
2143 2134 3124 3142
um conjunto solução
de 4 dígitos. 2314 3214
• Este espaço pode ser visto como uma superfície com
vales e cumes definidos pelo valor e pela proximidade 2341 3241
(vizinhança) das soluções. 2431 3421

• Um caminho no espaço de busca consiste numa 4231 4321


seqüência de soluções, onde duas soluções consecutivas 2413 4213 4312 3412
quaisquer são vizinhas. 4123 4132
1423 1432
Slide 90 Slide 91
Vizinhança/Espaço de Busca Vizinhança - mais exemplos
Exemplo 2: vetores de pertinência • K-opt: uma heurística de busca local aplicada no
0-1 com a vizinhança N3 definida 100 101 problema do caixeiro viajante. A vizinhança N(s) é
como: formada por ciclos obtidos pela substituição de k
v=(v1,…,vi,…,vn)
N3(v)={(v1,…,1-vi,…,vn):
000 001 arestas do ciclo corrente S por k arestas que não estão
i=1,..,n} no ciclo.
Vizinhos de (1,0,1)= • Ex: 2-opt
{(0,0,1),(1,1,1),(1,0,0)}

010 011

110 111

Slide 92 Slide 93

Busca local para o PCV Vizinhança - mais exemplos


5 1 1 L=17
5 2 Ex: vizinhança 3-opt
3
para o PCV.
3
L=19 (+) 4 3 L=21 (+)
1 5 1
5 2 5 2

4 3 4 3
1 1
5 2 5 2

4 3 1 4 3
L=14 (-) 5 2 L=16 (-)
Melhor vizinho

L=17 (=) 4 3
Slide 94 Slide 95
Busca Local Busca Local: problema de minimização
Questões fundamentais: inicie com uma solução S
1. Representação da solução faça
2. Definição da vizinhança melhora ← 0
3. Estratégia de busca na vizinhança S’ ← seleciona
4. Complexidade de cada iteração: ∆custo ← custo(S’) -custo(S)
a) Proporcional ao tamanho da vizinhança
se ∆custo < 0 então
b) Eficiência depende da forma como é calculada a variação
da função objetivo para cada solução vizinha: algoritmos S ← S’
eficientes são capazes de recalcular as variações de modo melhora ←1
a atualizá-las quando a solução corrente se modifica,
evitando cálculos repetitivos e desnecessários da função enquanto (melhora)
objetivo.
Slide 96 Slide 97

Busca Local Busca Local


• seleciona pode ser: 100
solução
90
inicial
80
* (H1) - Analise todas as soluções vizinhas e escolha 70
a que leve a menor ∆custo 60
• analisar todas as soluções pode ser computacionalmente 50
ótimo
muito caro 40
global
30
* (H2) - Analise as soluções vizinhas e escolha a
20
primeira que leve a ∆custo < 0. 10
ótimo
local
0
1 2 3 4 5 6 7 8 9 10

Slide 98 Slide 99
Busca Local - Prob. da Mochila Busca Local - Prob. da Mochila
• (H1) • (H2)
* Iniciar com uma solução (aleatória ou com um * Iniciar com uma solução (aleatória ou com um
método de construção). método de construção).
* retirar da mochila o item que possui o menor * colocar na mochila o item com maior custo que
custo.
esteja fora da mochila.
* colocar na mochila o item que possui o maior
custo, tal que * Se infactível, então retire os elementos com
• melhore o valor da função objetivo. menor custo até que a solução fique factível.
• não torne a solução infactível. * Termine quando não houver mais movimentos
* Termine quando não houver mais movimentos ou um determinado número fixo de
ou um determinado número fixo de movimentos tenha sido realizado
movimentos tenha sido realizado
Slide 100 Slide 101

Extensões para contornar algumas


Busca local
dificuldades da busca local
• Dificuldades: Redução da vizinhança: investigar um subconjunto da vizinhança da
solução corrente (e.g. por aleatorização)
* Término prematuro no primeiro ótimo local encontrado Multi-partida: repetir a busca local a partir de diferentes soluções

* Sensível à solução de partida Multi-vizinhança: considera mais de uma vizinhança. Ao atingir um


ótimo local com relação a uma vizinhança, inicia uma outra busca
local empregando outra vizinhança. O algoritmo termina quando a
* Sensível à vizinhança escolhida
solução corrente é um ótimo local em relação a todas as vizinhanças
empregadas.
* Sensível à estratégia de busca
Segmentação da vizinhança: utilizada para aumentar a eficiência
* Pode exigir um número exponencial de iterações! quando vizinhanças muito grandes são utilizadas, pode ser vista
como uma estratégia multi-vizinhança. N(s) = N1(s) ∪ N2(s) ∪…∪
Np(s)
Slide 102 Slide 103
Meta-heurística Algumas Meta-heurísticas
• Meta-heurísticas são modelos gerais que servem • Busca Tabu
como guia para construção de algoritmos • Simulated Annealing
heurísticos. • Algoritmos Genéticos
• Ant System
• Muitos dos modelos são baseados na natureza (
• Variable Neighborhood Search (VNS)
físicos, biológicos, evolutivos)
• Times Assíncronos
• Uma meta-heurística representa uma classe de • GRASP (Greedy Randomized Adaptive Search Procedures)
heurísticas. • Scatter Search http://www.densis.fee.unicamp.br/~franca/tematico/tarefas/tarefa5.html
• As estratégias meta-heurísticas tem como
objetivo superar as falhas da busca local, como
por exemplo, o término prematuro em um ótimo
local.
Slide 104 Slide 105

Tarefas Comentários
• Ler o primeiro capítulo de Reeves (1993) • Representação da Solução?
• Faça uma pesquisa na internet com algum
buscador • Vizinhança? Movimento?
• heuristics, metaheuristics • Funcionamento da Heurística de Busca Local?
• simulated annealing * Solução Inicial?
• tabu search
* Como será realizada a busca?
• genetic algorithms
• memetic algorithms * Critério de parada?
• GRASP • Respostas: Pensar e Realizar Testes
• Implementar uma heurística de busca local Computacionais!!!!
para o PCV
Slide 106 Slide 107
Meta-heurística: Simulated Annealing
SIMULATED ANNEALING
• É uma analogia entre um processo de mecânica
estatística e a solução de um problema de
Bibliografia Básica
otimização combinatória
• O termo annealing:
C. R. Reeves, Modern Heuristic Techniques for
Combinatorial Problems, Blackwell, 1993. * refere-se a um processo térmico que começa pela
liquidificação de um cristal a uma alta temperatura
A. Diaz, F. Glover, H. M. Ghaziri, J. L. González, M. * seguido pela lenta e gradativa diminuição de sua
Laguna, P. Moscato e F. T. Tseng, Optimización Heurística
Y Redes Neurolales, Editorial Paraninfo, Espanha, 1996.
temperatura
* até que o ponto de solidificação seja atingido
* quando o sistema atinge um estado de energia mínima

Slide 109

Simulated Annealing Simulated Annealing


* A maneira pela qual a temperatura irá decrescer é • A heurística simulated annealing surgiu de um
muito importante. algoritmo denominado Metrópolis (1953), bem
* Em um cristal muito grande, por exemplo, se a conhecido pelos pesquisadores da área de
temperatura for reduzida muito rápida, o cristal Física-Química.
conterá inúmeras imperfeições,
• Kirkpatrick (1983) sugeriu que a simulação
* ou seja, não atinge uma configuração de energia
mínima. desse processo poderia ser usada para buscar
soluções factíveis, com o objetivo de encontrar
a solução ótima.

Slide 110 Slide 111


Processo físico x problema de
Simulated Annealing
otimização combinatória
• Na heurística simulated annealing, são
permitidos movimentos que aumentem o valor
uma solução viável ⇔ uma configuração da função objetivo,
função objetivo f(s) ⇔ nível de energia • Mas sua freqüência é governada por uma
solução vizinha ⇔ mudança de estado distribuição de probabilidade que se altera no
parâmetro de controle ⇔ temperatura decorrer da heurística.
melhor solução ⇔ estado de solidificação • Essa função, primeiramente, inspirou-se do
processo físico, onde a probabilidade
solução ótima ⇔ configuração de energia mínima
(Boltzmann) de uma certas configuração ter
sua energia aumentada de um ∆E é de

Slide 112
p ( ∆E ) = e − ∆E / T Slide 113

Probabilidade X Temperatura
Simulated Annealing
• A estratégia que é utilizada no simulated
annealing é: 1,2

* a partir de uma alta temperatura, ser permitido 1

alterações ruins, pois estamos longe do ótimo 0,8

local. 0,6

* posteriormente, a temperatura irá diminuindo e a 0,4

possibilidade de alterações ruins vai se reduzindo, 0,2

pois estamos próximos do ótimo global. 0


1 2 3 4 5 6 7 8 9

T=0.5 T=1 T=5 T=20 ∆custo

Slide 114 Slide 115


Heurística Simulated Annealing Parâmetros Simulated Annealing
Entrada: T0, Tf, L, α (entre 0 e 1) • Parâmetros do simulated annealing
T ← T0 ; S0 ← gera solução inicial; S ← S0; S* ← S0
enquanto T > Tf faça (temperatura alta) * T0 = temperatura inicial.
para cont ← 1 até L(T) faça (iterações para equilíbrio) * Tf = temperatura final.
S’ ← seleciona uma solução vizinha de S * L = número de iterações para atingir o equilíbrio
∆custo ← custo(S’) -custo(S) em uma dada temperatura.
se ∆custo < 0 ou U[0,1] < exp(-∆custo/T)
então S ← S’
* α = proporção de redução da temperatura.
se (S < S*) então S* ←S (incumbente) • Um dos parâmetros pode ser a função de
fim do para aceitação de uma configuração ruim.
T ← αT
fim-enquanto
• Os parâmetros mais adequados para uma dada
aplicação só podem ser estabelecidos por
Slide 116 experimentação Slide 117

Parâmetros Simulated Annealing - Parâmetros Simulated Annealing -


Temperatura Temperatura
• Temperatura Inicial • Processo de redução (alteração) da temperatura
* chute total, mas um valor suficientemente alto para * essa escolha depende de quanto se quer explorar
que soluções ruins sejam aceitas com bastante determinadas regiões.
freqüência no início da heurística. * através do parâmetro α (0.8 a 0.99).
* chute, sendo que o seu valor faça com que por * é atualizada com o valor da variação do custo na
volta de 50% de soluções ruins sejam aceitas. última etapa de busca.
* relacionado ao valor da função objetivo. * atualização
• (Diaz et al., 1996), página 44. T0 = Custo(S1) - Custo(S0)
• baseado na variação do valor da função objetivo na Ti+1 = [Ti + Custo(Si+1) - Custo(Si)]/2
primeira fase da heurística.
(ou ainda a média feita durante o período de equilíbrio)

Slide 118 Slide 119


Parâmetros Simulated Annealing - Parâmetros Simulated Annealing -
Temperatura Temperatura
• Número de iterações para atingir o equilíbrio • temperatura final
em uma dada temperatura. * ≈0
* número fixo de iterações. * limitação por tempo ou iterações.
* depois de um certo tempo/iterações sem alterar o * finalização depois de um certo tempo/iterações
valor da função objetivo. sem que haja atualização da solução corrente.
* o número de iterações/tempo pode estar * esse tempo/iterações fixo pode estar relacionado
relacionado com o tamanho do problema. com o tamanho do problema .
* pode também estar relacionado com a vizinhança * pode também estar relacionado com a vizinhança
escolhida. escolhida.

Slide 120 Slide 121

Parâmetros Simulated Annealing - Vantagens


Função para aceitação de uma
configuração ruim • Existe prova de convergência para a solução
• Função básica ótima
exp(-∆custo/T) • Implementação simples
• Funções determinísticas * só visita uma solução a cada iteração
* bastando calcular o valor da função objetivo da
(1) 1 (2)
1 solução vizinha gerada

-T
• (1) aceita T
soluções T ruins”
ou “muito boas” ou “pouco
• (2) rejeita soluções “muito ruins”.
Slide 122 Slide 123
Desvantagens Comentários
• Apesar de convergir para a solução ótima, a • Pela simplicidade de implementação, pode ser
velocidade de redução de temperatura exigida implica utilizado em conjunto com alguma outra
em visitar um número exponencial de soluções. heurística ou outra meta-heurística.
• Em princípio é necessário um processo lento de
redução da temperatura e isso resulta em tempos de
• Existem implementações, onde apenas a idéia
processamento elevados. de simulated annealing é utilizado para
• Pouco “inteligente”, pois utiliza como informação do melhorar o desempenho de outra
problema somente a variação do valor da função heurística/metaheurística, como por exemplo,
objetivo. embutir a estratégia de aceitar soluções ruins
• Muitos parâmetros para calibrar. com certa probabilidade.

Slide 124 Slide 125

Comentários Exemplo - sequenciamento


Dois importantes aspectos para o sucesso de uma • Seqüenciar 4 tarefas em uma máquina com o
implementação de simulated annealing: objetivo de minimizar o atraso
* Tempos de processamento = (6 4 8 2)
• vizinhança adotada * Datas de entrega = (9 12 15 8)
• estratégia de resfriamento

Slide 126 Slide 127


Exemplo - sequenciamento Vizinhança
• Seqüenciar 4 tarefas em uma máquina com o
objetivo de minimizar o atraso Solução π=(π1,…,πi -1,πi,πi +1,…,πj,…,πn)
* Tempos de processamento = (6 4 8 2)
* Datas de entrega = (9 12 15 8)
N1(π)={(π1,…,πi+1,πi ,…,πn): i=1,…, n-1}
Vizinhos de (1,2,3,4) = {(2,1,3,4),(1,3,2,4),
• Suponha a solução S = (3 2 1 4), construída (1,2,4,3)}
aleatoriamente (poderíamos pensar em uma heurística de
construção mais elaborada) • Ou seja, trocar duas tarefas consecutivas
* término = (8 12 18 20)
* atraso = 0 + 0 + 9 + 12 = 21
Slide 128 Slide 129

Exemplo - sequenciamento Exemplo - sequenciamento


• S = (3 2 1 4), atraso = 21 • Qual movimento realizar?
* Se a cada iteração forem analisados todos os
movimentos possíveis, então será o i=1 e j=4.
i j valor atraso * Se for realizado o primeiro movimento que
movimento melhora (não piora) a função objetivo então será
3 2 0 21 i=3 e j=2.
2 1 +2 23
1 4 -4 17
• Vamos supor que todos os movimentos estão
sendo analisados. Então
* S = (3 2 4 1), atraso = 17

Slide 130 Slide 131


Exemplo - sequenciamento Exemplo - sequenciamento
• S = (3 2 4 1), atraso = 17 • S = (3 4 2 1), atraso = 15
i j valor atraso i j valor atraso
movimento movimento
3 2 0 17 3 4 -6 9
2 4 -2 15 4 2 +2 17
4 1 +4 21 2 1 +2 17

• S = (3 4 2 1), atraso = 15 • S = (4 3 2 1), atraso = 9

Slide 132 Slide 133

Vizinhança/Espaço de Busca
Exemplo - sequenciamento
1243-9 1342-16
• S = (4 3 2 1), atraso = 9
1234-15 1324-18
i j valor atraso 2143-10 2134-16 3124-23 3142-21
movimento 2314-21 3214-21
4 3 +6 15
2341-17 3241-17
3 2 +2 11
2 1 +6 15 2431-11 3421-15

4231-11 4321-9
2413-8 4213-8 4312-15 3412-17
• Ótimo Local!!! 4123-5 4132-9

Slide 134
1423-5 1432-9 Slide 135
Vizinhança/Espaço de Busca
Simulated Annealing
1243-9 1342-16

1234-15 1324-18
• Poderíamos aplicar nessa heurística de busca
2143-10 2134-16 3124-23 3142-21
local, simulated annealing (SA).
2314-21 3214-21
2341-17 3241-17 • Com SA sairíamos do ótimo local, pois
2431-11 3421-15 movimentos que permitem soluções ruins são
aceitos, mas com certa probabilidade.
4231-11 4321-9
2413-8 4213-8 4312-15 3412-17
4123-5 4132-9

1423-5 1432-9 Slide 136 Slide 137

Exemplo - sequenciamento Exemplo - sequenciamento


• S = (4 3 2 1), atraso = 9 • S = (4 2 3 1), atraso =11
i j valor atraso i j valor atraso
movimento movimento
4 3 +6 15 4 2 0 11
3 2 +2 11 2 3 -2 9
2 1 +6 15 3 1 -3 8

• Aceitar a Solução S = (4 2 3 1), atraso =11 • S = (4 2 1 3), atraso= 8

Slide 138 Slide 139


Exemplo - sequenciamento Exemplo - sequenciamento
• S = (4 2 1 3), atraso =8 • S = (4 1 2 3), atraso =5
i j valor atraso i j valor atraso
movimento movimento
4 2 0 8 4 1 0 5
2 1 -3 5 1 2 +3 8
3 1 +3 11 2 3 +4 9

• S = (4 1 2 3), atraso= 5 • S = (1 4 2 3), atraso= 5

Slide 140 Slide 141

Vizinhança/Espaço de Busca
Exemplo - sequenciamento
1243-9 1342-16
• S = (1 4 2 3), atraso =5
1234-15 1324-18
i j valor atraso 2143-10 2134-16 3124-23 3142-21
movimento 2314-21 3214-21
1 4 0 5
2341-17 3241-17
4 2 +4 9
2 3 +4 9 2431-11 3421-15

4231-11 4321-9
• O Algoritmo entra em ciclagem!!
2413-8 4213-8 4312-15 3412-17
• Logo: S = (1 4 2 3) ou S = (4 1 2 3) seria as 4123-5 4132-9
soluções encontradas. Neste caso, soluções
1423-5 1432-9
ótimas Slide 142 Slide 143
Exercício Comentários
• A implementação deve utilizar o procedimento de
• Acrecentar ao programa um procedimento de
busca local acrescido das características da SA…
melhoria da solução utilizando Simulated
isso permite uma comparação mais justa
Annealing
• Implementar mecanismos de comparação entre as
soluções obtidas por diferentes procedimentos
heurísticos

Slide 144 Slide 145

BUSCA TABU

Busca Tabu • M. Laguna, Tabu Search Tutorial, II Escuela


de Verano Latino-Americana de Investigación
Operativa, 1995.

• A. Diaz, F. Glover, H. M. Ghaziri, J. L.


González, M. Laguna, P. Moscato e F. T.
Silvio Alexandre de Araujo Tseng, Optimización Heurística Y Redes
Neurolales, Editorial Paraninfo, Espanha,
1996.

Slide 146 Slide 147


Princípios gerais Princípios gerais
• Proposto por Fred Glover, 1986. • constrasta com métodos que:
• Guia para busca local * não utilizam memória (simulated annealing)
• Seu principal componente é o uso de memória * utilizam estruturas rígidas de memória (branch-
and-bound).
adaptativa para criar uma busca mais flexível.
* memória de atributos de configurações visitadas no
* analogia → montain climbing → precisa lembrar
passado é usado para proibir movimentos que
(memória) elementos chave para ser capaz de
levariam a configurações já visitadas.
tomar decisões ao longo do caminho.
* restrição de atributos de soluções -> restrições de
* busca inteligente
movimentos -> necessidade de estrutura de dados
eficiente de memória.

Slide 148 Slide 149

Uso da memória Uso da memória


• As estruturas de memória tem quatro • O uso de memória pode ser explícito ou
princípios: através de atributos.
* explícito armazena soluções completas, por
* recentidade, freqüência → utilizada em estratégias exemplo, armazenando soluções de elite visitadas
mais “sofisticadas” de tabu. durante a busca
* qualidade → habilidade de diferenciar o mérito de * atributos de soluções que se modificam depois de
uma solução durante a busca. Podendo identificar alguns movimentos
elementos que são comuns entre as melhores • grafo → adição e/ou retirada de uma aresta.
soluções e elementos que fazem parte das ruins. • scheduling → índice das tarefas.
* influência → considera o impacto dessas escolhas
durante a busca.
Slide 150 Slide 151
Uso da memória Busca Local
• As estratégias com o uso da memória estão
divididas em inicie com uma solução S
faça
* memória de curto prazo
melhora ← 0
• recentidade
S’ ← seleciona
* memória de longo prazo ∆custo ← custo(S’) -custo(S)
• intensificação e diversificação se ∆custo < 0 então
• freqüência
S ← S’
melhora ←1
Slide 152
enquanto (melhora) Slide 153

Busca Local Busca Local


• seleciona pode ser: 100
solução
90
inicial
80
* (H1) - Analise todas as soluções vizinhas e escolha 70
a que leve a menor ∆custo 60
• analisar todas pode ser computacional/e muito caro 50
ótimo
40
* (H2) - Analise todas as soluções vizinhas e escolha global
30
a que leve a menor ∆custo, mas com ∆custo < 0. 20
ótimo
10
local
* (H3) - Analise as soluções vizinhas e escolha a 0
primeira que leve a ∆custo < 0. 1 2 3 4 5 6 7 8 9 10

Slide 154 Slide 155


Busca Local - exemplo - Busca Local - exemplo -
sequenciamento sequenciamento
• Seqüenciar 4 tarefas em uma máquina com o • S = (1 2 3 4), atraso = 15
objetivo de minimizar o atraso • vizinhança: trocar a tarefa i com a tarefa j
* Tempos de processamento = (6 4 8 2)
i j v a lo r a tr a s o
* Datas de entrega = (9 12 15 8) m o v im e n to
1 2 +1 16
1 3 +6 21
• Suponha a solução S = (1 2 3 4), construída 1 4 -4 11
aleatoriamente (poderíamos pensar em uma heurística de 2 3 +3 18
2 4 -6 9
construção mais elaborada)
3 4 -6 9
* término = (6 10 18 20)
* atraso = 0 + 0 + 3 + 12 = 15
Slide 156 Slide 157

Busca Local - exemplo - Busca Local - exemplo -


sequenciamento sequenciamento
• Qual movimento realizar? • S = (1 4 3 2), atraso = 9
* Se a cada iteração forem analisados todos os
i j valo r atraso
movimentos possíveis, então será o i=2 e j=4. m o vim e nto
* Se for realizado o primeiro movimento que 1 2 +2 11
melhora a função objetivo então será i=1 e j=4. 1 3 +8 17
1 4 0 9
2 3 -4 5
• Vamos supor que todos os movimentos estão 2 4 +6 15
sendo analisados. Então 3 4 +7 16

* S = (1 4 3 2), atraso = 9
• S = (1 4 2 3), atraso = 5

Slide 158 Slide 159


Busca Local - exemplo - Busca Local - exemplo -
sequenciamento sequenciamento
• S = (1 4 2 3), atraso = 5 • S = (4 1 2 3), atraso = 5
i j v a lo r atraso i j v a lo r atraso
m o v im e n t o m o v im e n t o
1 2 +3 8 1 2 +3 8
1 3 +10 15 1 3 +8 13
1 4 0 5 1 4 0 5
2 3 +4 9 2 3 +4 9
2 4 +4 9 2 4 +5 10
3 4 +13 18 3 4 +18 23

• S = (4 1 2 3), atraso = 5 • Entrou em ciclagem


• Pensando na heurística de busca H1.
Slide 160 Slide 161

Simulated Annealing Simulated Annealing x Busca Tabu

• Poderíamos aplicar nessa heurística de busca • O SA e algumas outras estratégias


local, simulated annealing (SA). metaheurísticas aplicam randomização para
fugir de um ótimo local e da ciclagem.
• Com SA sairíamos da ciclagem, pois
movimentos que permitem soluções ruins são
• Os “usuários” de Busca Tabu argumentam que
aceitas, mas com certa probabilidade.
tais estratégias são pouco inteligentes.
• Poderíamos aplicar em qualquer das
heurísticas de busca (H1, H2 e H3).
Slide 162 Slide 163
Busca Tabu - memória de curto Busca Tabu - memória de curto
prazo prazo
• Elementos
• A estratégia é de classificar como proibido
* O que proibir e como:
certos movimentos ou soluções, através de
• Lista Tabu
atributos, armazenando-os na lista tabu durante
• Atributo
um certo tempo. • Regra de ativação tabu
* Por quanto tempo
• Para tornar a busca mais flexível também • Tempo Tabu
temos como desclassificar um movimento de * Critério de Aspiração
tabu como não tabu por algum critério.

Slide 164 Slide 165

Memória de curto prazo - lista Memória de curto prazo - lista


tabu e atributo tabu e atributo
• Inicialmente é preciso definir como será • Nosso exemplo seqüenciamento
caracterizado o que é tabu, ou seja, a escolha * movimento = sai da solução S1, troca i com j,
de um atributo e como é feita a regra de temos a solução S2.
ativação tabu. * depois de feito esse movimento poderíamos ter
• Essa decisão envolve como proibido o que?
• ir a solução S1.
* escolha de estrutura de dados.
• trocar i com j, ou vice-versa.
* o tipo de vizinhança adotada na heurística de • trocar i com alguém (ou j com alguém).
busca.
* a representação da solução.
* como será feita a verificação se certo movimento é
tabu Slide 166 Slide 167
Memória de curto prazo - lista Memória de curto prazo - lista
tabu e atributo tabu e atributo
• ir a solução S1. • Planejamento da produção de N itens em T
* atributo → uma solução inteira, um vetor. períodos
* lista tabu → lista de soluções * solução → xit = quantidade
• trocar i com j, ou vice-versa. * vizinhança : mover uma quantidade q da produção
do item i do período t para o período t’.
* atributo → (i,j)
* lista tabu → matriz nxn • atributo
• trocar i com alguém (ou j com alguém). * (q,i,t,t’) → proibir q de i de sair de t’ e ir para
t
Atributo
* (i,t,t’) → proibir i de sair de t’ e para ir a t.
* atributo →i
* (i,t) → proibir i de sair (ou ir para) t.
* lista tabu → vetor n
Slide 168 Slide 169

Memória de curto prazo - lista Memória de curto prazo - tempo


tabu e atributo tabu
• Problema da mochila • Tempo tabu
* solução → xi = 0 ou 1 * número fixo
* vizinhança • descoberto experimentalmente.
• tirar o item i da mochila (xi=1 → xi=0) • relacionado com o tamanho do problema
• colocar o item i na mochila (xi=0 → xi=1) • relacionado com a vizinhança adotada
• todas as anteriores
• atributo
* número sorteado aleatoriamente entre
* solução (vetor) → ir a uma solução S.
[Tmin,Tmax]
* (i) → proibir i de sair (ou entrar) na mochila. • Tmin e Tmax escolhidos como o número fixo
* o número fixo ou o Tmin e Tmax podem variar
durante a busca
Slide 170 Slide 171
Memória de curto prazo - critério
Exemplo - sequenciamento
de aspiração
• Esse critério é utilizado para liberar um • Solução inicial: S = (1 4 3 2), atraso = 9
movimento de seu status tabu antes do seu • Busca local
tempo tabu terminar. * movimento: trocar i com j
• Por exemplo, * analise todas as soluções vizinhas e escolha a que
* Se um certo movimento tabu levar a uma solução leve a menor ∆custo
melhor que a incumbente (melhor encontrada até o • Busca Tabu
momento) libere-o.
* atributo (i,j), ou seja, proibido de trocar i com j.
* Se todos os movimentos possíveis de serem (estrutura de dados)
realizados estão tabu, libere um deles segundo
* tempo tabu: ?
algum critério.
* critério: quando for atingida uma solução melhor
Slide 172 que a incumbente. Slide 173

Exemplo - sequenciamento Exemplo - sequenciamento


• S = (1 4 3 2), atraso = 9 • S = (1 4 2 3), atraso = 5
i j valo r atraso i j v a lo r atraso
m o vim e nto m o v im e n t o
1 2 +2 11 1 2 +3 8
1 3 +8 17 1 3 +10 15
1 4 0 9 1 4 0 5
2 3 -4 5 2 3 +4 9
2 4 +6 15 2 4 +4 9
3 4 +13 18
3 4 +7 16

• S = (1 4 2 3), atraso = 5 • S = (4 1 2 3), atraso = 5


• TABU = {(2,3)}, atraso*=5 • TABU = {(2,3), (1,4)}, atraso* = 5
Slide 174 Slide 175
Exemplo - sequenciamento Exemplo - sequenciamento
• S = (4 1 2 3), atraso = 5 • S = (4 2 1 3), atraso = 8
i j v a lo r atraso i j v a lo r a tr a s o
m o v im e n t o m o v im e n to
1 2 +3 8 1 2 -3 5 Tabu
1 3 +8 13 1 3 +3 11
1 4 0 5 Tabu 1 4 +1 9
2 3 +4 9 2 3 +7 15
2 4 +5 10
2 4 0 8
3 4 +18 23
3 4 + 13 21

• S = (4 2 1 3), atraso = 8
• TABU = {(2,3), (1,4),(2,1)}, atraso* = 5 • S = (2 4 1 3), atraso = 8
Slide 176 • TABU = {(2,3), (1,4),(2,1),(2,4)}, atraso* = Slide
5 177

Outros elementos - Lista de


Exemplo - sequenciamento
Candidatos
• E assim continua a busca... • Lista de candidatos → restringir o número de
elementos a serem analisados
• É preciso atualizar a lista, dependendo do tipo * vizinhança número de candidatos muito grande.
de estrutura de dados utilizada. Nesse caso • analisar apenas as trocas de tarefas onde pelo menos
poderíamos usar uma matriz. uma delas tem atraso.
• selecionar aleatoriamente um vizinho.
• Cada movimento que descartávamos, pois era • selecionar o primeiro movimento que passe por certo
tabu, poderia ter sido feito se levasse a uma critério.

solução com atraso menor que 5 (critério de * avaliação “cara” do candidato.


aspiração) • influência alta da estrutura de dados
• Outros elementos existem...
Slide 178 Slide 179
Memória de longo prazo - medida
Memória de longo prazo
de freqüência
• modificação da vizinhança para incluir • Contabilizar informações durante a busca tabu
soluções que nunca apareceram de curto prazo.
* selecionar soluções de elite (ótimos locais de alta
• Razões
qualidade)
* tentar conseguir “ver a cara” das soluções visitadas • Contadores de dois tipos de ocorrência:
até agora. * residência → número de vezes que o atributo
* tentar conseguir “ver a cara” das soluções de boa esteve em um conjunto de soluções
qualidade (soluções de elite) visitadas até agora. • análise de um conjunto de soluções
* transição → número de vezes que um atributo
trocou.
• análise dos passos da heurística
Slide 180 Slide 181

Memória de longo prazo - medida


Exemplo - scheduling
de freqüência
• Suponha os seguintes
residência
• denominador → quantidade movimentos: 2 2 3 3
(4,2) 1432 2 1 4 3
(2,3) 1423 1 2 3 4
* total número de soluções
(4,1) 4123 5 5 0 0
* soma dos numeradores
(2,1) 4213
* maior número no numerador (2,4) 2413 transição
* a média dos numeradores (3,1) 2431 5 6 4 4
(3,2) 3421
(4,3) 4321 apenas os numeradores

(1,2) 4312
Slide 182 (1,3) 4132 Slide 183
Memória de longo prazo - medida
Exemplo - scheduling
de freqüência
• Supondo o denominador • construímos a matriz e o vetor utilizando todas
como sendo o número de as soluções durante a busca.
soluções = 10 • Poderíamos também utilizar um subgrupo de
matriz residência soluções
residência
de todas as soluções
0.2 0.2 0.3 0.3 * soluções de elite
0.2 0.1 0.4 0.3 * em heurísticas composta por diferentes
0.1 0.2 0.3 0.4 procedimentos, poderíamos construir tais matrizes
0.5 0.5 0.0 0.0 utilizando apenas soluções produzidas por
transição específicos procedimentos.
0.5 0.6 0.4 0.4

Slide 184 Slide 185

Estratégia de intensificação Estratégia de diversificação


• a idéia é intensificar a busca em regiões onde • a idéia é tentar explorar regiões ainda
parece ter maiores chances de apresentar inexploradas ou pouco exploradas
soluções de qualidade.
* modificando as regras de escolha de forma a
* modificar regras de escolha de forma a encorajar • desencorajar movimentos e soluções muito freqüentes
• movimentos e soluções com características “boas” no no decorrer da história da busca (penalizações)
decorrer da história da busca. • incentivar movimentos e soluções pouco freqüentes no
• combinar movimentos com a estrutura dessas soluções decorrer da história da busca (penalizações)

* reiniciar a busca de uma solução “boa”. * reiniciar a busca utilizando as informações de


freqüência

Slide 186 Slide 187


medida freqüência x
estratégias de intensificação
intensificação e diversificação
• atributos com • Reiniciar a busca a partir de uma
“boa”solução.
* alta freqüência → a partir das soluções de elite →
atributos atrativos → intensificação • Reiniciar a busca a partir de uma solução que
* baixa freqüência → a partir das soluções de elite possua o maior número de características de
→ atributos atrativos → diversificação medida de residência.
* baixa freqüência → feita a partir de todas as
soluções → atributos atrativos → diversificação • Reiniciar a busca a partir de uma solução
* etc. construída levando-se em conta as
características de medida de residência.
Slide 188 Slide 189

Matriz residência para as soluções


estratégias de diversificação
de elite
• Para a escolha do movimento
• Suponha os seguintes
1 1 2 0
movimentos: 1 1 2 0
valor_movimento’ = valor_movimento + d*penalidade
(4,2) 1432 9 0 0 0 3
2 2 0 0
• Para reiniciar a busca
(2,3) 1423 5
* construção de uma nova solução de partida.
(4,1) 4123 5
(2,1) 4213 8
Na sua heurística de construção mude a prioridade da
residência tarefa utilizando uma penalidade proporcional à medida
(2,4) 2413 8 0.3 0.3 0.5 0.0
(3,1) 2431 11 0.3 0.3 0.5 0.0
de freqüência
(3,2) 3421 15 0.0 0.0 0.0 0.8 prioridade_tarefa’ = prioridade_tarefa + d*penalidade
0.5 0.5 0.0 0.0
(4,3) 4321 13
• O valor da penalidade utilizada nas duas expressões acima tem que
(1,2) 4312 15
dar prioridade às tarefas pouco freqüentes.
(1,3) 4132 9 Slide 190 Slide 191
Oscilação estratégica Path relinking
• alternar a busca entre região factível e região • intensificação da busca no caminho que leva a
infactível soluções de elite
* deixando a solução ser infactível até certo “ponto” * armazenar um conjunto de soluções de elite
e a seguir, através de penalidades, voltar à região * para cada par de soluções de elite:
factível. • identificar as diferenças entre elas
• executar um procedimento de busca local sem parar em
• alternar entre diversificação e intensificação nenhum ótimo local, executando sempre o melhor
movimento dentre aqueles ainda não executados
• verificar a existência nesta trajetória de soluções
melhores do que as extremidades

Slide 192 Slide 193

Tarefa Tarefa
• Implementar Busca Tabu para o problema do • A cada novo elemento implementado façam
caixeiro viajante com pelo menos as seguintes testes para analisar o seu efeito.
estratégias:
• Pensem que vocês vão implementar pelo
* curto prazo
menos 4 tipos de meta-heurísticas onde cada
• atributo (teste pelo menos 2 tipos)
tamanho da lista (testes) uma delas terá várias versões
critério de aspiração.
* longo prazo • Vocês precisarão fazer uma prova e entregar
• pelo menos uma medida de freqüência (por exemplo, um “artigo” com as implementações, testes,
residência das soluções de elite) para implementação de análises e conclusões
pelo menos uma estratégia de intensificação e uma de
diversificação. Slide 194 Slide 195
ALGORITMOS GENÉTICOS
Algoritmos • A. Diaz, F. Glover, H. M. Ghaziri, J. L. González, M.

Genéticos
Laguna, P. Moscato e F. T. Tseng, Optimización
Heurística Y Redes Neurolales, Editorial Paraninfo,
Espanha, 1996.

• C. R. Reeves, Modern Heuristic Techniques for


Combinatorial Problems, Blackwell, 193.

• Z. Michalewicz, Genetic Algorithms + Data


Silvio Alexandre de Araujo
Structures = Evolution Programs, Springer-verlag,
1992.

• M. Gen e R. Cheng, Genetic Algorithms &


Slide 196
Engineering Design, Wiley, 1997. Slide 197

Evolução Evolução
• população → grupo de organismos vivos • características hereditárias são herdadas →
cruzamento entre os cromossomos
• maior capacidade de adaptação → maior
chance de sobreviver • cromossomos contêm informações
denominados genes, que por sua vez são
• os sobreviventes vão se reproduzir → gerando compostos por valores chamados de alelos.
uma nova população
• genes podem se alterar de uma geração para
outra → mutação
Slide 198 Slide 199
Evolução x Problemas de otimização Glossário
• Introduzido por Holland, 1973 • indivíduo (genotype, cromossomo, estrutura, string,
etc.)
• princípio → sobrevivência do mais capaz * cadeia de genes que codifica uma possível
configuração do problema.
• Inicialmente, algoritmos simples, mas * codificação de uma solução (existem várias maneiras
de codificar uma mesma solução).
conseguiam boas soluções para problemas
considerados difíceis naquela época.

Slide 200 Slide 201

Glossário Glossário
• gene (caracter)
* representa uma certa característica da solução- • população
cromossomo * um conjunto de indivíduos (cromossomos)
representando os atuais pontos que fazem parte da
• allele busca no espaço de soluções.
* um particular estado de um gene
• geração
• locus * uma maneira de identificar diferentes populações
no processo de evolução.
* posição de um gene em um cromossomo

Slide 202 Slide 203


Glossário Glossário
• função de fitness (capacidade) • operador de reprodução (crossover)
* função utilizada pelo esquema de seleção * uma função/algoritmo que recebe como input um
* geralmente está ligado ao valor da função objetivo subconjunto da população e cria outro conjunto
* pode incluir outros elementos (penalização pela * geralmente 2 indivíduos para criação de 1 ou 2
violação de restrições) filhos.

• mutação
* pequena perturbação aleatória que modifica um
cromossomo.

Slide 204 Slide 205

Características Características
• os cromossomos que codificam indivíduos • a evolução não tem memória
mais “capazes”, se reproduzem com maior
probabilidade • utiliza um grupo de soluções

• a mutação produz filhos com cromossomos • não partem de uma solução e uma aplicação
diferentes dos pais. posterior de movimentos (simulated annealing
e busca tabu)

Slide 206 Slide 207


Aspectos importantes para um
Um GA simples
bom GA
• boa representação 1) Inicialize a população
2) Para todos os membros da população corrente
• população inicial (aleatória ou construtiva?) avalie a função de fitness
3) Crie uma nova população de cromossomos
• função de fitness
* usando crossover e mutação
• bom/eficiente operador genético 4) Crie uma nova população adicionando os
* crossover e mutação indivíduos criados em 3)
5) Se a condição de parada não for satisfeita,
• parâmetros retorne a 2)
Slide 208 Slide 209

Representação de um indivíduo População inicial


• string de 0 e 1’s (mochila, partição de números) • Aleatória
0101110 • Usando uma heurística de construção
• string de números inteiros (seqüenciamento) * com posterior perturbação para gerar diferentes
245316 indivíduos
* com perturbação anterior aos dados de entrada da
heurística para construção de diferentes soluções

Slide 210 Slide 211


População: tamanho e estrutura Função de fitness
• tamanho • valor da função objetivo
* pequeno x grande f(x)
• valor da função objetivo + penalidade pela
• estrutura violação de um conjunto de restrições
* os indivíduos podem ser independentes entre si. f(x) + a. p(x)
* podem estar conectados, com uma definição mais f(x).p(x)
precisa da escolha dos pais. (ex. árvore)
• valor da função objetivo + medida de
diversidade
f(x)/d(x)
f(x) + d(x)
Slide 212 Slide 213

Operadores de reprodução
Reprodução: escolha dos pais
(crossover)
• aleatória
• one-point crossover
• aleatória relacionada com o valor de fitness
(veremos no exemplo) pai1 (0 1 0 1 1 0 1 0 0) pai2 (1 1 0 0 1 0 0 1 0)

• relacionado com o valor de fitness filho1 (0 1 0 0 1 0 0 1 0) filho2 (1 1 0 1 1 0 1 0 0)

• quando há estrutura, isso já está de uma certa


maneira determinado

Slide 214 Slide 215


Operadores de reprodução Operadores de reprodução
(crossover) (crossover)

• two-point crossover • crossover uniforme

pai1 (0 1 0 1 1 0 1 0 0) pai2 (1 1 0 0 1 0 0 1 0) pai1 (0 1 0 1 1 0 1 0 0) pai2 (1 1 0 0 1 0 0 1 0)


filho (x 1 0 x 1 0 x x 0)
filho1 (0 1 0 0 1 0 1 0 0) filho2 (1 1 0 1 1 0 0 1 0)
pai1 (0 1 0 1 1 0 1 0 0) pai2 (1 1 0 0 1 0 0 1 0)
filho1 (0 1 0 0 1 0 0 0 0) filho2 (1 1 0 1 1 0 1 1 0)

Slide 216 Slide 217

Operador de reprodução
Operador de mutação
(crossover)
• Exemplos para representação não binária • Troque o valor de cada bit com uma
probabilidade de 10%.
(1 2 4 6 3 5) (2 3 4 1 6 5) ( 1 0 1 0 1 1)
(x x 4 x x 5) (1 0 1 0 0 1)

(1 2 4 6 3 5) (2 3 4 1 6 5) • Troque dois elementos de posição com


(2 3 4 6 3 5) probabilidade de 10%
(2 * 4 6 3 5) (2 3 4 1 6 5)
(2 1 4 6 3 5) (1 3 4 2 6 5)

Slide 218 Slide 219


Nova população Critério de parada
• Colocar o filho no lugar do pior pai • tempo de execução
• número de gerações
• “Matar” os indivíduos com menor fitness.
• perda de diversidade
* depois da criação de um novo filho
• convergência
* depois da população atingir um número k de
indivíduos. * nas últimas k iterações não houve melhora da
incumbente.
• Com população usando estrutura, isso já está
definido

Slide 220 Slide 221

Exemplo 1 Exemplo 1
• Problema: max f(x) = x2, x ∈ [0,31] e • População inicial gerada:
inteiro
x f(x)
A1 → 0 1 1 0 1 13 169
• representação → cada inteiro como um A2 → 1 1 0 0 0 24 576 Pai 1
cromossomo de 5 bits
A3 → 0 1 0 0 0 8 64
0 = (0,0,0,0,0)
A4 → 1 0 0 1 1 19 361 Pai 2
31 = (1,1,1,1,1)
• população inicial → aleatória • Escolha dos pais com maior fitness
• população de tamanho 4 • geração de 1 filho, que substituirá o indivíduo com
menor fitness
• função de fitness → f(x)
Slide 222 Slide 223
Exemplo 1 Exemplo 1
x f(x) x f(x)
Pai1 = A2 →11000 24 576 Pai1 = A2 →11000 24 576
Pai2 = A4 →10011 19 361 Pai2 = A3 →11001 25 625
Filho →11011 Filho →11001
mutação → 1 1 0 0 1 25 625 mutação → 1 1 0 1 1 27 729

x f(x) x f(x)
A1 → 0 1 1 0 1 13 169 A1 → 1 1 0 1 1 27 729
A2 → 1 1 0 0 0 24 576 A2 → 1 1 0 0 0 24 576 Pai 1
A3 → 1 1 0 0 1 25 625 Pai 2 A3 → 1 1 0 0 1 25 625 Pai 2
A4 → 1 0 0 1 1 19 361 Pai 1
A4 → 1 0 0 1 1 19 361

Slide 224 Slide 225

Exemplo 1 Aspectos importantes!!!


x f(x)
Pai1 = A1 →11011 27 729
Pai2 = A3 →11000 24 576 Representação
Filho →11000
mutação → 1 1 1 0 0 28 784 População
Crossover
x f(x)
A1 → 1 1 0 1 1 27 729 Mutação
A2 → 1 1 0 0 0 24 576 Fitness
A3 → 1 1 0 0 1 25 625
A4 → 1 1 1 0 0 28 784
e assim continua...

Slide 226 Slide 227

Você também pode gostar