problemas de otimização

61
Outubro 2007 Metaheurísticas e Aplicações Transparência 1/61 Problemas de otimização Problemas de decisão : “Existe uma solução satisfazendo certa propriedade?” Resultado: “sim” ou “não” Problemas de otimização : “Entre todas as soluções satisfazendo determinada propriedade, obter aquela que otimiza certa função de custo.” Resultado: uma solução viável ótima

Upload: others

Post on 16-Oct-2021

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Problemas de otimização

Outubro 2007 Metaheurísticas e AplicaçõesTransparência 1/61

Problemas de otimização

• Problemas de decisão: “Existe uma soluçãosatisfazendo certa propriedade?”Resultado: “sim” ou “não”

• Problemas de otimização: “Entre todas as soluçõessatisfazendo determinada propriedade, obter aquelaque otimiza certa função de custo.”Resultado: uma solução viável ótima

Page 2: Problemas de otimização

Outubro 2007 Metaheurísticas e AplicaçõesTransparência 2/61

Problemas de otimização

• Exemplo: problema do caixeiro viajanteEntrada: n cidades e distâncias ci,j

Problema de decisão: “dado um inteiro L, existeuma rota que visite cada cidade exatamente umavez e cujo comprimento seja menor ou igual a L?”

Problema de otimização: “obter uma rota que visitecada cidade exatamente uma vez e cujocomprimento seja mínimo.”

Page 3: Problemas de otimização

Outubro 2007 Metaheurísticas e AplicaçõesTransparência 3/61

Problemas de otimização

• Exemplo: problema da mochilaEntrada: n itens, peso máximo b, lucros cj e pesos aj associados a cada item j=1,…,n

Problema de decisão: “dado um inteiro L, existeS ⊆ {1,…,n} tal que ∑j∈S aj ≤ b e ∑j∈S cj ≥ L?”

Problema de otimização: “obter um subconjunto S*maximizando ∑j∈S cj entre todos os conjuntosS ⊆ {1,…,n} tais que ∑j∈S aj ≤ b.”

Page 4: Problemas de otimização

Outubro 2007 Metaheurísticas e AplicaçõesTransparência 4/61

Problemas de otimização

• Estes problemas de decisão pertencem à classe dos problemas NP-completos, para os quais não sãoconhecidos algoritmos determinísticos de complexidade polinomial.

• A versão de otimização destes problemas (e de muitos outros) também são intrinsecamente “intratáveis” do ponto de vista computacional, não se conhecendo algoritmos eficientes (polinomiais) para sua solução exata.

Page 5: Problemas de otimização

Outubro 2007 Metaheurísticas e AplicaçõesTransparência 5/61

Problemas de otimização

• Como tratar e resolver estes problemas?– Algoritmos exatos não-polinomiais– Algoritmos pseudo-polinomiais em alguns casos– Processamento paralelo: aceleração na prática, mas

sem redução da complexidade!– Casos especiais polinomiais– Algoritmos aproximativos: encontram uma solução com

custo a distância máxima garantida do valor ótimo– Algoritmos probabilísticos: convergência em valor

esperado ou em probabilidade

Page 6: Problemas de otimização

Outubro 2007 Metaheurísticas e AplicaçõesTransparência 6/61

Problemas de otimização

• Como tratar e resolver estes problemas? – Heurísticas: métodos aproximados projetados com base

nas propriedades estruturais ou nas características das soluções dos problemas, com complexidade reduzidaem relação à dos algoritmos exatos e fornecendo, em geral, soluções viáveis de boa qualidade

• Algoritmos construtivos• Busca local (algoritmos de melhoria)• Metaheurísticas

Page 7: Problemas de otimização

Outubro 2007 Metaheurísticas e AplicaçõesTransparência 7/61

Problemas de otimização• Avanços no estudo e no desenvolvimento de

heurísticas:– Resolver problemas maiores– Resolver problemas em tempos menores– Obter melhores soluções

• Heurísticas e metaheurísticas permitem resolverproblemas de grande porte em tempos realistas, fornecendo sistematicamente soluções ótimas oumuito próximas da otimalidade:– Exemplo: problema do caixeiro viajante com milhões de

cidades

Page 8: Problemas de otimização

Outubro 2007 Metaheurísticas e AplicaçõesTransparência 8/61

Algoritmos construtivos

• Problema de otimização combinatória: dado um conjunto finito E = {1,2, …,n} e uma função de custo c: 2E → R, encontrar S* ∈ F tal que c(S*) ≤c(S) ∀S ∈ F, onde F ⊆ 2E é o conjunto de soluções viáveis do problema (minimização).

• Construção de uma solução: selecionarseqüencialmente elementos de E, eventualmentedescartando alguns já selecionados, terminandoquando for encontrada uma solução viável

Page 9: Problemas de otimização

Outubro 2007 Metaheurísticas e AplicaçõesTransparência 9/61

Algoritmos construtivos

• Exemplo: problema do caixeiro viajante– E: conjunto de arestas– F: subconjuntos de E que formam um circuito

hamiltoniano, visitando cada cidade exatamente umavez

– c(S) = Σe∈S ce

– ce= ci,j: custo da aresta e=(i,j)

Page 10: Problemas de otimização

Outubro 2007 Metaheurísticas e AplicaçõesTransparência 10/61

Algoritmos construtivos

• Algoritmo do vizinho mais próximo:Escolher o nó inicial i e fazer N ← N-{i}.Enquanto N ≠ ∅ fazer:

Obter j∈N: ci,j = mink∈N {ci,k}N ← N-{j}i ← j

Fim-enquantoCalcular o custo da solução e terminar.

Page 11: Problemas de otimização

Outubro 2007 Metaheurísticas e AplicaçõesTransparência 11/61

5

4 3

2

1

Algoritmos construtivos

127

5

3

4

3

2

3

5

Page 12: Problemas de otimização

Outubro 2007 Metaheurísticas e AplicaçõesTransparência 12/61

5

4 3

2

1i=1

Algoritmos construtivos

Page 13: Problemas de otimização

Outubro 2007 Metaheurísticas e AplicaçõesTransparência 13/61

5

4 3

2

1

Algoritmos construtivos

i=1

1

27

5

Page 14: Problemas de otimização

Outubro 2007 Metaheurísticas e AplicaçõesTransparência 14/61

5

4 3

2

1

Algoritmos construtivos

i=1

1

Page 15: Problemas de otimização

Outubro 2007 Metaheurísticas e AplicaçõesTransparência 15/61

5

4 3

2

1

Algoritmos construtivos

i=2

1

34

3

Page 16: Problemas de otimização

Outubro 2007 Metaheurísticas e AplicaçõesTransparência 16/61

5

4 3

2

1

Algoritmos construtivos

i=2

1

3

Page 17: Problemas de otimização

Outubro 2007 Metaheurísticas e AplicaçõesTransparência 17/61

5

4 3

2

1

Algoritmos construtivos

i=5

1

3

23

Page 18: Problemas de otimização

Outubro 2007 Metaheurísticas e AplicaçõesTransparência 18/61

5

4 3

2

1

Algoritmos construtivos

i=5

1

3

2

Page 19: Problemas de otimização

Outubro 2007 Metaheurísticas e AplicaçõesTransparência 19/61

5

4 3

2

1

Algoritmos construtivos

i=3

1

3

2

5

Page 20: Problemas de otimização

Outubro 2007 Metaheurísticas e AplicaçõesTransparência 20/61

5

4 3

2

1

Algoritmos construtivos

i=3

1

3

2

5

Page 21: Problemas de otimização

Outubro 2007 Metaheurísticas e AplicaçõesTransparência 21/61

5

4 3

2

1

Algoritmos construtivos

i=4

1

3

2

5

7

comprimento=18

Page 22: Problemas de otimização

Outubro 2007 Metaheurísticas e AplicaçõesTransparência 22/61

4

3

2

1

2 2

3 3

1

• Podem falhar mesmo para casos muito simples!

Algoritmos construtivos

Page 23: Problemas de otimização

Outubro 2007 Metaheurísticas e AplicaçõesTransparência 23/61

Algoritmos gulosos

• Algoritmos gulosos:

A construção de uma solução gulosa consiste em selecionar a cada passo o elemento de E ainda nãoutilizado que minimiza o incremento no custo dasolução parcial sem torná-la inviável, terminandoquando se obtém uma solução viável.

O incremento no custo da solução parcial échamado de função gulosa.

Page 24: Problemas de otimização

Outubro 2007 Metaheurísticas e AplicaçõesTransparência 24/61

Algoritmos gulosos

• Algoritmo guloso de Kruskal para o problema da árvore geradora de peso mínimo– Sempre encontra a solução ótima: este problema

pertence a uma classe particular de problemas onde um algoritmo guloso sempre encontra a solução ótima.

• Algoritmo do vizinho mais próximo para o PCV– Cuidado: nem sempre encontra a solução ótima exata,

é portanto uma heurística para este problema!

Page 25: Problemas de otimização

Outubro 2007 Metaheurísticas e AplicaçõesTransparência 25/61

Algoritmos gulosos randomizados

• Um algoritmo guloso encontra sempre a mesmasolução para um dado problema.

• Algoritmo guloso randomizado:– Criar uma lista de candidatos a cada iteração com os

melhores elementos ainda não selecionados e forçaruma escolha aleatória a cada iteração

• Aplicar o algoritmo repetidas vezes, obtendo soluções diferentes a cada iteração.

Page 26: Problemas de otimização

Outubro 2007 Metaheurísticas e AplicaçõesTransparência 26/61

5

4 3

2

1i=1

Algoritmos gulosos randomizados

Page 27: Problemas de otimização

Outubro 2007 Metaheurísticas e AplicaçõesTransparência 27/61

5

4 3

2

1

Algoritmos gulosos randomizados

i=1

1

27

5

Page 28: Problemas de otimização

Outubro 2007 Metaheurísticas e AplicaçõesTransparência 28/61

5

4 3

2

1

Algoritmos gulosos randomizados

i=1

1

2

Page 29: Problemas de otimização

Outubro 2007 Metaheurísticas e AplicaçõesTransparência 29/61

5

4 3

2

1

Algoritmos gulosos randomizados

i=1

1

Page 30: Problemas de otimização

Outubro 2007 Metaheurísticas e AplicaçõesTransparência 30/61

5

4 3

2

1

Algoritmos gulosos randomizados

i=2

1

34

3

Page 31: Problemas de otimização

Outubro 2007 Metaheurísticas e AplicaçõesTransparência 31/61

5

4 3

2

1

Algoritmos gulosos randomizados

i=2

1

3

3

Page 32: Problemas de otimização

Outubro 2007 Metaheurísticas e AplicaçõesTransparência 32/61

5

4 3

2

1

Algoritmos gulosos randomizados

i=2

1

3

Page 33: Problemas de otimização

Outubro 2007 Metaheurísticas e AplicaçõesTransparência 33/61

5

4 3

2

1

Algoritmos gulosos randomizados

i=5

1

3

23

Page 34: Problemas de otimização

Outubro 2007 Metaheurísticas e AplicaçõesTransparência 34/61

5

4 3

2

1

Algoritmos gulosos randomizados

i=5

1

3

3

Page 35: Problemas de otimização

Outubro 2007 Metaheurísticas e AplicaçõesTransparência 35/61

5

4 3

2

1

Algoritmos gulosos randomizados

1

3

5i=4

3

Page 36: Problemas de otimização

Outubro 2007 Metaheurísticas e AplicaçõesTransparência 36/61

5

4 3

2

1

Algoritmos gulosos randomizados

1

3

5i=4

3

Page 37: Problemas de otimização

Outubro 2007 Metaheurísticas e AplicaçõesTransparência 37/61

5

4 3

2

1

Algoritmos gulosos randomizados

1

3

5i=5

3

2

comprimento=14

Page 38: Problemas de otimização

Outubro 2007 Metaheurísticas e AplicaçõesTransparência 38/61

5

4 3

2

1

Algoritmos gulosos randomizados

1

3

5

3

2

comprimento=14

5

4 3

2

1

L=18

Page 39: Problemas de otimização

Outubro 2007 Metaheurísticas e AplicaçõesTransparência 39/61

Algoritmos gulosos randomizados

• A qualidade da solução obtida depende daqualidade dos elementos na lista de candidatos.

• A diversidade das soluções encontradas dependeda cardinalidade da lista de candidatos.

• Casos extremos:– algoritmo guloso puro (o candidato único é o melhor)– solução gerada de forma completamente aleatória

(todos pendentes são candidatos)

Page 40: Problemas de otimização

Outubro 2007 Metaheurísticas e AplicaçõesTransparência 40/61

Vizinhanças

• Conjunto F de soluções viáveis formado porsubconjuntos do conjunto suporte E que satisfazemdeterminadas condições.

• Representação de uma solução: indicar quaiselementos de E estão presentes e quais não estão.

• Problema da mochila:itens j=1,…,n, peso máximo b, lucros cj e pesos ajSolução representada por um vetor 0-1 com n posições: xj = 1 se o item j é selecionado, xj = 0 caso contrário

Page 41: Problemas de otimização

Outubro 2007 Metaheurísticas e AplicaçõesTransparência 41/61

• Problema do caixeiro viajante: representar cadasolução pela ordem em que os vértices sãovisitados, como uma permutação circular dos n vértices (o primeiro vértice é arbitrário) - (a)bcd- (a)bdc- (a)cbd- (a)dcb- (a)cdb- (a)dbc

Vizinhanças

a

cd

b

Page 42: Problemas de otimização

Outubro 2007 Metaheurísticas e AplicaçõesTransparência 42/61

Vizinhanças

• Problema: c(S*) = mínimo { c(S): S ∈ F ⊆ 2E }

• Vizinhança: um conceito que introduz a noção de proximidade entre as soluções em F

• Uma vizinhança é um mapeamento que associacada solução a um conjunto de soluções (vizinhos)N(S) = {S1,S2,…,Sk} soluções vizinhas de S

Page 43: Problemas de otimização

Outubro 2007 Metaheurísticas e AplicaçõesTransparência 43/61

Page 44: Problemas de otimização

Outubro 2007 Metaheurísticas e AplicaçõesTransparência 44/61

Page 45: Problemas de otimização

Outubro 2007 Metaheurísticas e AplicaçõesTransparência 45/61

Page 46: Problemas de otimização

Outubro 2007 Metaheurísticas e AplicaçõesTransparência 46/61

Page 47: Problemas de otimização

Outubro 2007 Metaheurísticas e AplicaçõesTransparência 47/61

Vizinhanças

• Boas representações permitem representar de forma compacta o conjunto de soluções vizinhasde uma solução S qualquer e percorrer de modoeficiente o conjunto de soluções.

Page 48: Problemas de otimização

Outubro 2007 Metaheurísticas e AplicaçõesTransparência 48/61

Vizinhanças

• Exemplo: problema da mochila

Solução S = (x1,…,xi,…,xn) xi ∈ {0,1}, i=1,…,n

N(S) = {(x1,…,1-xi,…,xn): i=1,..,n}

Vizinhos de (1,0,1,1) = {(0,0,1,1), (1,1,1,1), (1,0,0,1), (1,0,1,0)}

Page 49: Problemas de otimização

Outubro 2007 Metaheurísticas e AplicaçõesTransparência 49/61

000

010 011

001

100

110 111

101

Vizinhanças

Page 50: Problemas de otimização

Outubro 2007 Metaheurísticas e AplicaçõesTransparência 50/61

Vizinhanças

• Espaço de busca: grafo cujos vértices são as soluções, com arestas entre pares de vérticesassociados a soluções vizinhas.

• Caminho: seqüência de soluções, onde duassoluções consecutivas são vizinhas.

• Ótimo local: solução melhor ou tão boa quantoqualquer uma das soluções vizinhas

Page 51: Problemas de otimização

Outubro 2007 Metaheurísticas e AplicaçõesTransparência 51/61

Page 52: Problemas de otimização

Outubro 2007 Metaheurísticas e AplicaçõesTransparência 52/61

Busca local

• Algoritmos de busca local: estratégia de exploraçãodo espaço de busca

1. Partida: solução inicial obtida através de um método construtivo

2. Iteração: melhoria da solução corrente através de uma busca na sua vizinhança

3. Parada: primeiro ótimo local encontrado (nãoexiste solução vizinha aprimorante)

Page 53: Problemas de otimização

Outubro 2007 Metaheurísticas e AplicaçõesTransparência 53/61

Busca local

• Melhoria iterativa: a cada iteração, selecionarqualquer (eventualmente a primeira) soluçãoaprimorante na vizinhança

• Descida mais rápida: a cada iteração, selecionar a melhor solução aprimorante na vizinhança

Page 54: Problemas de otimização

Outubro 2007 Metaheurísticas e AplicaçõesTransparência 54/61

Busca local

• Questões fundamentais: – Definição da vizinhança– Estratégia de busca na vizinhança– Complexidade de cada iteração

• Proporcional ao tamanho da vizinhança• Eficiência depende da forma como é calculada a função

objetivo para cada solução vizinha: algoritmos eficientes sãocapazes de atualizar os valores quando a solução corrente se modifica, evitando cálculos repetitivos e desnecessários dafunção objetivo.

Page 55: Problemas de otimização

Outubro 2007 Metaheurísticas e AplicaçõesTransparência 55/61

Busca local

• Vizinhança 2-opt para o problema do caixeiro viajante:

• Um vizinho para cada par de arestas: número de vizinhos é O(n2)

• Custo de cada vizinho pode ser avaliado em O(1): complexidade de cada iteração da busca local é O(n2)

Page 56: Problemas de otimização

Outubro 2007 Metaheurísticas e AplicaçõesTransparência 56/61

5

4 3

2

11

3

23

5

L=14

5

4 3

2

1

L=18 (+)

5

4 3

2

1

L=17 (+)

5

4 3

2

1

L=18 (+)

5

4 3

2

1

L=19 (+)L=12 (-)

5

4 3

2

1melhor vizinho

Page 57: Problemas de otimização

Outubro 2007 Metaheurísticas e AplicaçõesTransparência 57/61

Busca local

• Vizinhança 3-opt parao problema do caixeiro viajante

• Combinar diferentes vizinhanças no mesmo algoritmo de busca local

Page 58: Problemas de otimização

Outubro 2007 Metaheurísticas e AplicaçõesTransparência 58/61

Busca local

• Um vizinho para cada tripla de arestas: número de vizinhos é O(n3)

• Custo de cada vizinho pode ser avaliado em O(1): complexidade de cada iteração da busca local é O(n3)

• Vizinhança (k+1)-opt inclui as soluções de k-opt.• Extensão até n-opt corresponderia a uma busca

exaustiva do espaço de soluções!• A complexidade de cada iteração aumenta com k,

enquanto o ganho possível diminui.

Page 59: Problemas de otimização

Outubro 2007 Metaheurísticas e AplicaçõesTransparência 59/61

Busca local

• Diferentes aspectos do espaço de busca influenciamo desempenho da busca local

• Conexidade: deve existir um caminho entre qualquerpar de soluções no espaço de busca

• Distância entre duas soluções: número de soluçõesvisitadas ao longo do caminho mais curto entre elas

• Diâmetro: distância entre as duas soluções maisafastadas (diâmetros reduzidos)

Page 60: Problemas de otimização

Outubro 2007 Metaheurísticas e AplicaçõesTransparência 60/61

Busca local

• Dificuldades:– Término no primeiro ótimo local encontrado– Sensível à solução de partida– Sensível à vizinhança escolhida– Sensível à estratégia de busca– Pode exigir um número exponencial de iterações!

• Como melhorar seu desempenho?

Page 61: Problemas de otimização

Outubro 2007 Metaheurísticas e AplicaçõesTransparência 61/61

Metaheurísticas

• Simulated annealing• Busca tabu• GRASP• VNS (Variable Neighborhood Search)• Algoritmos genéticos• Scatter search• Colônias de formigas