Upload
afonsohs
View
1.172
Download
1
Embed Size (px)
DESCRIPTION
Citation preview
1
Introdução às
Metaheurísticas
Profª Laura Bahiense
Prof Dario Aloise
2
Metaheurísticas
! Duas definições retiradas do site: h3p://www.nist.gov/dads/HTML/metaheuristic.html
A high-‐‑level algorithmic framework or approach
that can be specialized to solve optimization problems.
A high-‐‑level strategy that guides other heuristics in a search for feasible solutions.
! Idéia Central:
Uma combinação de diferentes estratégias para percorrer o espaço de busca tentando escapar de ótimos locais
3
Metaheurísticas: componentes básicos comuns
! Heurísticas construtivas;
! Busca local; ! Algoritmos não determinísticos; ! Multiplicidade de vizinhanças; ! Memória; ! Intensificação; ! Diversificação.
4
Metaheurísticas: propriedades desejáveis
! Simplicidade: baseadas em princípios simples e claros; ! Coerência: todos os passos da heurística para problemas particulares
devem seguir naturalmente os princípios da metaheurística; ! Eficiência: devem fornecer boas soluções (ótimas ou quase ótimas) para
todas ou quase todas as instâncias; ! Efetividade: baixo tempo computacional; ! Robustez: performance consistente sobre uma variedade de instâncias; ! Usabilidade: poucos parâmetros; ! Inovação: capacidade de “solucionar” novos tipos de aplicações.
5
Introdução às seguintes metaheurísticas
! Simulated Annealing;
! Busca Tabu (Tabu Search);
! GRASP (Greedy Randomized Adaptive Search Procedure);
! VNS (Variable Neighborhood Search);
! ILS (Variable Neighborhood Descent)
! Algoritmos genéticos (Genetic Algorithms);
! Colônia de Formigas (Ant Colony Optimization);
! Enxame de partículas (Particle Swarm Optimization).
6
Simulated Annealing : motivação
! Princípio: analogia entre um processo de mecânica estatística e a solução de um problema de otimização combinatória.
! Annealing: processo térmico que começa pela liquidificação de um cristal a uma alta temperatura, seguido pela lenta e gradativa diminuição de sua temperatura, até que o ponto de solidificação seja alcançado o sistema atinge um estado de energia mínima. ! Analogias:
! função objetivo f(s) ⇔ nível de energia; ! solução viável ⇔ estado do sistema; ! solução vizinha ⇔ mudança de estado; ! parâmetro de controle ⇔ temperatura; ! melhor solução ⇔ estado de solidificação.
7
Simulated Annealing : idéia do algoritmo
! Baseado em um método de Monte Carlo para a geração de uma seqüência de estados do sólido, da seguinte maneira:
! Dado um estado corrente i do sólido com energia Ei, um estado subseqüente é gerado, pela aplicação de um mecanismo de perturbação, p. ex., pelo deslocamento de uma única partícula. A energia do próximo estágio passa a ser Ej;
! Calcula-‐‑se a diferença de energia Δij = Ej ̶ Ei : ü Se Δij é negativa, o estado j é aceito como estado corrente;
ü Senão, o estado j é aceito com probabilidade exp( ̶ Δij / (β * T) ), onde T representa a temperatura atual do sistema, e β é uma constante física conhecida como constante de Bolimann.
8
Simulated Annealing : algoritmo
KIRKPATRICK et al. (1983) desenvolveram um algoritmo, análogo ao de Metropolis: Simulated Annealing procedure SA(s0,T0,β,SAEqu)
s ← s0; s' ← s; T ← T0; IterT ← 0
enquanto (T > 0) faça enquanto (IterT < SAEqu) faça IterT ← IterT + 1
Gere um vizinho qualquer s’ ∈ N (s) [perturbação] Δ = f(s’) – f(s) se (Δ < 0) então s ← s’ se f(s’) < f(s*) então s* ← s’ senão Gerar u ∈ Uniforme[0,1] se u < e-|Δ| /T então s ← s’ fim-se fim-enquanto T ← βT IterT ← 0
fim-enquanto; Retorne s* end SA
9
Simulated Annealing : considerações sobre a temperatura
! O escalonamento da redução da temperatura T controla a convergência do algoritmo (Tk+1 ← β.Tk onde 0 < β < 1).
! T elevada: e-‐‑|Δ| /T próximo de um → quase todas as soluções vizinhas são aceitas (algoritmo permanece “vagando “ no espaço de busca).
! T próxima de zero: somente são aceitas soluções que melhoram a solução corrente (comportamento análogo ao algoritmo de melhoria iterativa).
! Controle da deterioração da solução corrente:
! No início, uma solução vizinha pior que a corrente é aceita com alta probabilidade (“randomização”);
! Quando a temperatura diminui, a probabilidade de aceitação vai sendo gradativamente reduzida até um valor mínimo (estabilização).
10
Simulated Annealing : características principais
! Existe prova de convergência para a solução ótima: entretanto, a velocidade de redução de temperatura exigida implica em visitar um número exponencial de soluções.
! Implementação simples: como só visita uma solução a cada iteração,
calcular o valor da função objetivo da solução vizinha gerada não degrada demasiadamente a eficiência do algoritmo.
! Tempos de processamento elevados: para se obter soluções competitivas é necessário um processo lento de redução da temperatura.
! Pouco “inteligente”: utiliza como informação do problema somente a
variação do valor da função objetivo.
! Método essencialmente não-‐‑determinístico: depende fundamentalmente de geradores de números pseudo-‐‑aleatórios.
11
Busca tabu: motivação
! Glover e Hansen, independentemente, em 1986: idéias básicas. ! Glover e de Werra & Heri, em 1989: formalização dos conceitos. ! Responder à seguinte questão: o que fazer...
! se na vizinhança não há vizinhos aprimorantes?
! para evitar retornar a um ótimo local já visitado?
12
Busca tabu: conceitos
! Busca tabu é um procedimento adaptativo que guia um algoritmo de busca local na exploração contínua do espaço de busca, evitando: ! ser confundido pela ausência de vizinhos “aprimorantes”, ! retornar a um ótimo local previamente visitado.
! Utiliza estruturas flexíveis de memória para armazenar conhecimento sobre o espaço de busca, contrariamente a algoritmos que: ! não utilizam memória (p.ex. simulated annealing), ! utilizam estruturas rígidas de memória (p.ex. B&B).
s1 s2 s3 s4 s5 s6 s7
f(s1)
f(s3) f(s4) f(s5)
f(s6) f(s7)
f(s2)
13
Busca tabu: metodologia
! Partir de uma solução inicial e, a cada iteração, mover para a melhor solução na vizinhança, respeitando a Lista Tabu:
! estrutura de memória básica que visa a proibição de movimentos que levem a soluções já visitadas;
! determinada por informações históricas da busca;
! uma solução é determinada solução tabu quando a melhor solução na vizinhança não é melhor do que a solução corrente à deterioração do valor da função de custo;
! memória: guardar a lista das últimas |T| soluções visitadas evita ciclos de tamanho máximo T;
! problema: isto é muito custoso! Em vez disto: guardar os movimentos que levaram àquelas soluções: guardar os últimos |T| movimentos (ou os últimos |T| movimentos reversos) associados.
14
Busca tabu: intensificação x diversificação memórias curto x longo prazo
! Intensificação: ! Concentrar a busca em regiões promissoras do espaço, em torno de boas soluções
(soluções de elite), modificando as regras de escolha da próxima solução de modo a combinar bons movimentos com a estrutura destas soluções.
! Diversificação: ! Fazer com que a busca visite regiões ainda inexploradas;
! Pode ser feito penalizando-‐‑se movimentos que voltam a utilizar elementos que estiveram freqüentemente presentes em soluções visitadas anteriormente e/ou incentivando a entrada de elementos pouco utilizados no passado.
! Memória de curto prazo: ! essencialmente a lista de movimentos tabu,
! objetivo básico: evitar ciclagem na busca tabu.
! Memória de longo prazo: ! lista de soluções de elite,
! freqüência ou número de vezes em que um elemento da solução foi utilizado em soluções já visitadas anteriormente.
! Oscilação estratégica
15
GRASP: Idéia básica
! Metaheurística de multi-‐‑partida ou iterativa. GRASP = “Greedy Randomized Adaptive Search Procedure”
! Feo & Resende (1989): set covering; ! Festa & Resende (2002): bibliografia; ! Resende & Ribeiro (2003): survey.
Repetir para MAX_ITER iterações:
ü Construir uma solução gulosa randômica; ü Efetuar busca local para melhorar esta solução; ü Atualizar a melhor solução encontrada;
Retornar a melhor solução encontrada.
16
GRASP: Fase de construção
! Fase de Construção: greedy + random + adaptive
! Construir uma solução viável:
ü a função gulosa representa o custo incremental na função objetivo causado pela incorporação de cada elemento na solução que está sendo construída; ü a avaliação de cada elemento via esta função gulosa leva à criação de uma lista restrita de candidatos (RCL) formada pelos melhores elementos, i.e., aqueles cuja incorporação à solução parcial corrente reflete os menores custos incrementais à greediness (greedy aspect); ü o elemento a ser incorporado à solução parcial é randomicamente selecionado dentro da lista RCL à randomness (probabilistic aspect); ü uma vez que o elemento selecionado é incorporado à solução parcial, a RCL é atualizada e os custos incrementais são reavaliados à adaptiveness (adaptive aspect).
17
GRASP: Construção da RCL
! Procedimento básico de construção da RCL:
! Função gulosa: c(e) = custo incremental associado à incorporação do elemento e na solução parcial sob construção;
! cmin , cmax : menor e maior custo incremental, respectivamente;
! RCL: formada pelos elementos com os menores (problemas de minimização) ou maiores (problemas de maximização) custos incrementais;
! Pode ser limitada:
ü pelo número de elementos: constituída pelos p elementos com melhores custos incrementais à cardinality-‐‑based ;
ü pela qualidade dos elementos à value-‐‑based .
18
GRASP: Qualidade da RCL
! Construção da RCL com qualidade: “adaptiveness”:
! Parâmetro 0 ≤ α ≤ 1: define a qualidade da RCL: ü α determina o nível de “gula” ou de “randomização”;
! RCL contém elementos com custos incrementais: cmin ≤ c(e) ≤ cmin + α (cmax – cmin) : para problemas de minimização; cmax ̶ α (cmax – cmin) ≤ c(e) ≤ cmax : para problemas de maximização;
ü α = 0 : construção puramente gulosa; ü α = 1 : construção puramente randômica;
! Seleção randômica dos elementos da RCL: ! Utilização de uma distribuição probabilística uniforme.
19
GRASP: Fase de busca local
! As soluções geradas pela fase de construção gulosa randômica não são necessariamente ótimas, mesmo com respeito a vizinhanças simples;
! Busca Local: busca por uma solução de melhoria na vizinhança até que
um ótimo local seja encontrado; ! Eficiência depende:
! da estrutura de vizinhança escolhida; ! de uma avaliação rápida da função de custo dos vizinhos; ! da estratégia de busca dentro da vizinhança; ! da fase de construção p.d. (qualidade da solução construída).
20
GRASP: algoritmo
GRASP (α,seed): solução ← ∅; inicializar o conjunto de candidatos: C ← E; calcular os custos incrementais c(e) para todo e C; repetir para max_iter iterações enquanto C ≠ ∅ efetuar:
ü cmin ß min {c(e) | e ∈ C}; ü cmax ß max {c(e) | e ∈ C}; ü Se (Prob_Min) RCL ß {e ∈ C | cmin ≤ c(e) ≤ cmin + α (cmax – cmin)}; Senão RCL ß {e ∈ C | cmax ̶ α (cmax – cmin) ≤ c(e) ≤ cmax }; ü Selecionar s ∈ RCL de forma randômica; ü solução ← solução ∪ {s}; ü C ß C \ {s}; ü Recalcular os custos incrementais c(e) para todo e ∈ C;
fim-‐‑enquanto; fim-‐‑repetir; solução_final = Busca_Local(solução); retornar solução_final;
end
21
GRASP: estratégias de construção melhoradas
! Fleurent & Glover (1999): quadratic assigment ! Introdução de uma memória de longo-‐‑prazo;
! Criação de um conjunto de soluções elite (soluções de alta qualidade) encontradas durante as iterações GRASP ⇒ favorecimento de variáveis especiais:
ü fortemente determinadas: aquelas que não podem ser alteradas sem depreciar a função objetivo ou alterar significativamente outras variáveis;
ü consistentes: aquelas que recebem um valor particular em um grande número de soluções elite.
! Prais & Ribeiro (2000): traffic assignment em satélites TDMA ! A cada iteração GRASP, um valor α de parâmetro para a RCL é escolhido
randomicamente a partir de um conjunto de valores discretos {α1, ..., αm};
! {α1, ..., αm} são associados a um conjunto de probabilidades [p1, ..., pm] que vão sendo alteradas de maneira adaptativa, de modo a favorecer aqueles valores de α que tenham produzido boas soluções durante as iterações GRASP;
! Soluções melhores, ao custo de tempos ligeiramente superiores.
22
GRASP: estratégias de busca local melhoradas
! First Improvement versus Best improvement: ! first improvement é, em geral, mais rápida; ! best improvement em geral leva à convergência prematura para ótimos locais
de baixa qualidade.
! VND (Variable Neighborhood Descent) e VNS (Variable Neighborhood Search): Hansen & Mladenovic (1997): ! acelerar a busca e escapar de ótimos locais; ! “várias” estruturas de vizinhança distintas:
ü VND: ”mais determinística”; ü VNS: “mais aleatória”.
! Hashing: Woodruff & Zemel (1993) ! evitar a ciclagem: voltar, na fase de busca local, a uma mesma solução já
construída anteriormente na fase de construção.
! Filtering: Feo, Resende, & Smith (1994): ! evitar a aplicação da busca local a soluções de baixa qualidade.
23
Variable Neighborhood Search (VNS): motivação
! Proposta por Mladenovic & Hansen (1997); ! Introduz aleatorização à Busca Local à escapar de mínimos locais;
Explorar, sucessivamente, vizinhanças de ordem crescente, na busca por soluções melhores
24
Variable Neighborhood Search (VNS): algoritmo
Sejam s0 = solução inicial e kmax = número de estruturas de vizinhança: . s ← s0 ; [s : solução corrente] . escolher um critério_de_parada; . enquanto (critério_de_parada_não_satisfeito) efetue . . k ← 1; [k : tipo de estrutura de vizinhança] . . enquanto (k ≤ kmax ) efetue . . . gerar um vizinho qualquer s’ ∈ N (k ) (s); [agitação] . . . s ’’ ← busca_local (s ’ ); . . . se ( f (s ’’ ) < f (s ) ) . . . . então s ← s ’’ ; k ← 1; . . . . senão k ← k + 1; . . . fim ̶ se; . . fim ̶ enquanto; . fim ̶ enquanto; . Retornar s; fim VNS.
25
Variable Neighborhood Search (VNS): ilustração
N 1
s
s’ s’’
s’’ aceito se f(s’’) < f(s)
26
Variable Neighborhood Search (VNS): ilustração
N 1
N 2 s
s’
s’’ N 1
27
Variable Neighborhood Search (VNS): ilustração
N 1
N 2
N kmax
s
s’
28
Algoritmos genéticos: motivação
! Algoritmo probabilístico baseado na analogia entre o processo de evolução natural e a seleção de soluções de um problema de otimização combinatória.
! As populações evoluem de acordo com os princípios da seleção natural e de “sobrevivência dos mais adaptados” (evolução das propriedades genéticas da população).
! Indivíduos mais bem sucedidos em adaptar-‐‑se a seu ambiente terão maior chance de sobreviver e de reproduzir. Genes dos indivíduos mais bem adaptados vão espalhar-‐‑se para um maior número de indivíduos em sucessivas gerações.
! Espécies evoluem tornando-‐‑se cada vez mais adaptadas ao seu ambiente.
29
Algoritmos genéticos: cromossomos e operadores genéticos
! A população é representada por seus cromossomos: cromossomo ⇔ indivíduo;
! Novos cromossomos são gerados a partir da população corrente e são incluídos na população, ao mesmo tempo que outros são excluídos. A geração dos novos cromossomos é realizada através dos mecanismos (operadores genéticos) de reprodução (crossover) e de mutação.
! Representação de um cromossomo (em sua versão original): seqüência de bits (0´s e 1´s), equivalente ao vetor de pertinência;
! Reprodução: consiste em selecionar os cromossomos pais e executar uma operação de crossover, que é uma combinação simples das representações de cada cromossomo pai;
! Mutação: consiste na modificação arbitrária de uma parte (pequena) do cromossomo.
30
Algoritmos genéticos: algoritmo básico
! Algoritmo básico: gerar população inicial; enquanto critério-‐‑de-‐‑parada-‐‑não-‐‑satisfeito efetue escolher cromossomos reprodutores; efetuar o crossover dos reprodutores; gerar mutações; avaliar aptidões; atualizar a população; fim-‐‑enquanto.
! Parâmetros: ! tamanho da população; ! critérios de seleção; ! critérios de sobrevivência; ! taxa de mutação; ! critérios de parada: estabilização da população, impossibilidade de melhoria da melhor
solução, número de gerações.
31
Algoritmos genéticos: codificação e função de aptidão
! Cada possível solução de um problema é codificada em uma estrutura chamada de "ʺcromossomo"ʺ, que é composta por uma cadeia de genes.
! Para cada indivíduo atribui-‐‑se um valor de avaliação: sua aptidão, que indica quanto a solução representada por este indivíduo é boa em relação às outras soluções da população.
f = 382
1 5 4 2 3
32
Algoritmos genéticos: aptidão e crossover
! Função de aptidão (fitness): ! avaliar a qualidade genética dos cromossomos, correspondendo à função de
custo em problemas de otimização combinatória. ! selecionar os indivíduos reprodutores. ! decidir se um cromossomo gerado através de uma operação de crossover
substitui ou não um cromossomo reprodutor.
! Crossover: operação probabilística (originalmente), onde os indivíduos mais adaptados têm maior chance de participar. Existem, basicamente, os seguintes métodos: ! troca de toda população; ! troca de toda população com elitismo, onde todos os cromossomos são
substituídos, sendo o cromossomo mais apto da população corrente copiado para população seguinte;
! troca parcial da população (steady state), onde os M melhores indivíduos da população corrente são copiados para população seguinte.
33
Algoritmos genéticos: crossover
! Parâmetros do crossover: ! Ponto de corte aleatório; ! Cortes em um único ponto versus cortes em diversos pontos; ! Taxa de crossover.
34
Algoritmos genéticos: mutação
! Troca aleatória do valor contido nos genes de um cromossomo por outro valor válido do alfabeto:
1 0 1 1 1 0 1 0 1 1 1 0 1 0 1 1 1 0
1 1 1 1 1 0
35
Algoritmos genéticos: tamanho da população
Pequena Grande
Convergência prematura para soluções locais
Convergência não-‐‑prematura
Baixa cobertura do espaço de busca
Melhor cobertura do espaço de busca
Menores esforços computacionais
Maiores esforços computacionais
36
Algoritmos genéticos: taxas de crossover e mutação
! Taxa de crossover : probabilidade de um indivíduo ser recombinado com outro. ! Quanto maior for esta taxa, mais rapidamente novos indivíduos serão introduzidos
na população;
! Pode gerar um efeito indesejável, pois a maior parte da população será substituída, causando assim perda de variedade genética, podendo ocorrer perda de estruturas de alta aptidão e convergência a uma população com indivíduos extremamente parecidos, com características boas ou não;
! Com um valor baixo, o algoritmo pode ficar muito lento. ! Taxa de mutação: probabilidade de um gene do cromossomo ser alterado.
! A taxa de mutação previne que uma dada população fique estagnada em um valor, além de possibilitar que se chegue em qualquer ponto do espaço de busca;
! Deve-‐‑se evitar uma taxa de mutação muito alta, uma vez que esta pode tornar a busca essencialmente aleatória, prejudicando fortemente a convergência para uma solução ótima.
37
Algoritmos genéticos: intervalo e número de gerações
! Intervalo de Geração: controla a porcentagem da população que será substituída durante a próxima geração: ! substituição total;
! substituição com elitismo;
! substituição dos piores indivíduos da população atual.
! Número de gerações: representa o número total de ciclos de evolução de um AG, sendo este um dos critérios de parada do algoritmo:
! um número de gerações muito pequeno causa uma queda no desempenho;
! um valor grande proporciona um tempo maior de processamento, mas fornece uma melhor cobertura do domínio do problema, evitando a convergência para soluções locais.
38
Colônia de Formigas (Ant Colony Optimization): motivação
! Proposta por Dorigo (1992):
! Técnica probabilística para solução de problemas computacionais que podem ser reduzidos em “encontrar bons caminhos ao longo de um grafo”;
! Formigas parecem ser capazes de encontrar seu caminho com relativa facilidade: ü do formigueiro para uma fonte de alimentos e de volta ao formigueiro; ü para contornar um obstáculo;
! Estudos etimológicos constataram em muitos casos que esta capacidade resulta da interação entre a comunicação química entre formigas (através de uma substância chamada feromônio) e um fenômeno emergente causado pela presença de muitas formigas.
39
Colônia de Formigas: ilustração da motivação
40
Colônia de Formigas: feromônio
1 2
3
41
Colônia de formigas: procedimento Ant System
! Combina uma heurística construtiva com uma memória adaptativa baseada nas soluções construídas em iterações anteriores.
Procedimento Ant System Gera_e_ativa_formigas ( ); Evapora_feromônio ( ); Controla_ações( ); { opcional } Fim do Ant System
42
Colônia de formigas: formigas artificiais
! Formigas artificiais assemelham-‐‑se a heurísticas construtivas. ! Elas constroem soluções de forma probabilística utilizando duas
informações:
! A trilha de feromônio (artificial), que muda dinamicamente durante a execução do programa, de modo a refletir a experiência já adquirida durante a busca;
! A informação heurística, específica para o problema a ser resolvido.
43
Colônia de formigas: escolha de um arco
! Uma formiga move-‐‑se do nó i para o nó j com probabilidade:
arestas
44
Colônia de formigas: informação heurística
! representa a atratividade que a formiga “sente” para visitar o arco (i,j).
45
Colônia de formigas: atualização do feromônio (1/3)
ocorrem
46
Colônia de formigas: atualização do feromônio (2/3)
47
Colônia de formigas: atualização do feromônio (3/3)
48
Enxame de partículas: motivação
! Particle Swarm Optimization – PSO :
! metaheurística evolucionária desenvolvida por Kennedy, psicólogo social, e Eberhart, engenheiro elétrico, em 1995, inspirada na graciosidade da
coreografia praticada por um bando de pássaros em seu vôo localmente aleatório mas globalmente determinado.
! Sistema iniciado com população de soluções randômicas. ! Não utiliza operadores de cruzamento e mutação. ! Muito utilizada na resolução de problemas contínuos não lineares, mas
ainda pouco explorada em problemas discretos.
49
Enxame de partículas: ilustração
Nem sempre o mesmo líder.......
Muito Próximos
Atrativos
50
Enxame de partículas: partículas
! Os pássaros são representados por partículas que “voam” em um espaço de busca n ̶ dimensional a procura de uma melhor solução para o problema na qual estejam empregadas.
! Cada partícula representa uma solução potencial para o problema.
51
Enxame de partículas: movimentação das partículas
! As partículas guardam informações sobre suas trajetórias:
! Melhor posição encontrada até então: pbest ;
! Melhor posição encontrada pelo enxame (nuvem / swarm): gbest.
! As partículas se comunicam compartilhando informações sobre os valores da função objetivo (fitness) em suas respectivas posições locais.
! A movimentação das partículas é baseada em três principais parâmetros:
! Velocidade; ! Fator de Individualidade; ! Fator de Sociabilidade (grupo).
52
Enxame de partículas: ilustração da movimentação das partículas
Eu estou aqui! A melhor fitness de meus vizinhos
Minha melhor fitness
x pg
pi
v
Fator de individualidade
Fator de sociabilidade
53
Enxame de partículas: algoritmo clássico PSO
Inicialização da População com os vetores de velocidade (v)
e posição (x) randômicos
Para Cada Partícula
Avaliação do fitness
Se o fitness(x) < fitness (pbest)
pbest:=x
Se o fitness(x) < fitness (gbest) gbest:=x
Próxima Partícula
Atualização da Posição x(t+1) = x(t) + v(t+1)
Atualização da Velocidade
gbest = parâmetros da melhor solução
Atualização da Velocidade
Vid(t+1) = W* Vid
(t) + c1*rand ()*(Pid–Xid(t)) + c2*Rand ()*(Pgd –Xid
(t))
Onde:
W : Fator de Inércia ; c1 : Fator de Individualidade; c2 : Fator de Sociabilidade; Xid : Posição Atual da i-ésima Partícula; Pid : Melhor Posição da i-ésima Partícula Encontrada; Pgd : Melhor Posição Global.