Upload
pauloilser
View
111
Download
0
Embed Size (px)
Citation preview
1
C U R S O
h e u r í s t i c a s
m a r g a r i d a p a t o
C e n t r o d e I O - U n i v e r s i d a d e d e L i s b o a
I S E G - U n i v e r s i d a d e T é c n i c a d e L i s b o a
apoios
B r a s i l F U N D U N E S P 2 0 0 9 / 1 4 9 0 1 – 4 e 2 0 1 0 / 0 7 5 8 5 – 6
P o r t u g a l P O C T I – I S F L – 1 – 1 5 2 e P P C D T / M A T / 5 7 8 9 3 / 2 0 0 4
I n s t i t u t o d e B i o c i ê n c i a s - U N E S P - B o t u c a t u
o u t u b r o 2 0 1 0
objectivos:
• motivar para as vantagens e inconvenientes das técnicas heurísticas quando aplicadas à determinação de soluções para
problemas de optimização de elevada complexidade
• desenhar heurísticas de tipo construtivo e melhorativo para problemas típicos de optimização
• dotar de conhecimentos básicos acerca das metaheurísticas mais divulgadas
bibliografia:
• Hillier e Liebermann (2006), Introdução à Pesquisa Operacional
• Michalewicz e Fogel (2000), How to Solve It: Modern Heuristics
• Reeves, ed. (1992), Modern Heuristic Techniques for Combinatorial Optimization
• Ribeiro e Hansen, eds. (2002), Essays and Surveys on Metaheuristics
A P R E S E N T A Ç Ã O
2
• Capítulo 1. Introdução
• Capítulo 2. Heurísticas Construtivas e Melhorativas
• Capítulo 3. GRASP
• Capítulo 4. Simulated Annealing
• Capítulo 5. Busca Tabu
• Capítulo 6. Heurísticas Genéticas
• Capítulo 7. Análise do Comportamento de Heurísticas
programa:
A P R E S E N T A Ç Ã O
3
motivação:
• problemas difíceis
- optimização de funções não lineares
- optimização combinatória
C A P Í T U L O 1. I N T R O D U Ç Ã O
• métodos de resolução exactos
- branch-and-bound- cortes
- decomposições
• métodos de resolução não-exactos
- heurísticas
- arredondamentos
- outros
4
heurísticas muito divulgadas:
• procedimentos base
- construtivas
- melhorativas
• metaheurísticas
- GRASP
- ILS, VLS, OLS
- simulated annealing
- busca tabu
- colónia de formigas
- evolutiva (por ex, genética, memética)
- rede neuronal
- híbrida
C A P Í T U L O 1. I N T R O D U Ç Ã O
5
problema de optimização:
• minimizar (ou maximizar) f(x)
sujeito a
f – função objectivo ou de avaliação,
k = 1 – problema uni-objectivo [ k > 1 – problema multi-objectivo ]
S – conjunto das soluções factíveis ou admissíveis , , região factível ou admissível
x* – solução óptima ou optimizante global de f em S
• problema de optimização combinatória – S finito ou infinito numerável
Sx
DS
RDfk
:
C A P Í T U L O 1. I N T R O D U Ç Ã O
6
instâncias:
Uma instância de um problema obtém-se quando é dada toda a informação necessária à determinação da solução.
exemplos:
• problema do caixeiro viajante (TSP – travelling salesman problem)
(Lawler, Lenstra, Rinnooy Kan e Shmoys, 1985; Gutin e Punnen, 2002)
Dados n locais e as distâncias entre cada par de locais, cij (i = 1,…, n; j = 1,…, n), dadas por números reais quaisquer,
determinar o percurso de comprimento total mínimo que passa uma e uma só vez por cada local e regressa ao local de
partida.
aplicações
- sequenciamento do genoma
- definição de rotas de distribuição de produtos
- planeamento de operações em sistemas industriais
C A P Í T U L O 1. I N T R O D U Ç Ã O
7
exemplos (cont.):
instância de TSP
(Hillier e Lieberman, 2006)
Pretende-se encontrar o percurso de um caixeiro viajante que deverá visitar 1 e 1 só vez cada uma das cidades C1, …,
C7 e voltar ao ponto de partida minimizando a distância total percorrida. Considere as seguintes ligações e respectivas
distâncias quilométricas:
C2 C3 C4 C5 C6 C7
C1 12 10 - - - 12
C2 8 12 - - -
C3 11 3 - 9
C4 11 10 -
C5 6 7
C6 9
C A P Í T U L O 1. I N T R O D U Ç Ã O
8
exemplo (cont.):
• problema de programação não linear (PNL) univariável
Determinar o máximo de f(x), sendo , variável real.
instância de PNL univariável
(Hillier e Lieberman, 2006)
Pretende-se determinar
max f(x) = 12 x5 – 975 x4 + 28 000 x3 – 345 000 x2 + 1 800 000 x
sujeito a 0≤ x ≤ 31
exercícios:
• 1.1 Determine uma solução factível para o 1º exemplo.
• 1.2 Determine uma solução factível para o 2º exemplo.
C A P Í T U L O 1. I N T R O D U Ç Ã O
Sx
9
complexidade computacional:
Um algoritmo para determinado problema de dimensão n tem complexidade computacional se existe uma constante
positiva tal que o tempo de execução desse algoritmo é majorado por para todas as instâncias do referido
problema com dimensão n.
• algoritmo polinomial – é uma função polinomial ou inferior
• algoritmo exponencial – é função superior a polinomial
Um problema pertence à classe P quando existe um algoritmo polinomial que o resolve (determina uma solução óptima).
Um problema é NP-difícil se ainda não se descobriu um algoritmo polinomial para o resolver (determinar uma solução óptima)
e caso se venha a descobrir todos os problemas de uma vasta classe ficarão a ser resolvidos polinomialmente.
exemplos:• TSP, problema de cobertura (set covering problem), problema da mochila (knapsack problem) - são NP-difíceis
• problema de programação linear - pertence à classe P
observação:Ver uma apresentação rigorosa destes conceitos, por exemplo, em Lawler, Lenstra, Rinnooy Kan e Shmoys, 1985.
c )(nc
(.)
))(( no
)log(),(2
nnoo n
)(),( 2log nn
oo n
(.)
C A P Í T U L O 1. I N T R O D U Ç Ã O
10
heurísticas construtivas:
Constroem uma solução factível, passo a passo, segundo determinadas regras.
pseudocódigo do algoritmo:
algoritmo Construtivo
passo 1. { inicialização}
determinar uma solução parcial, xpasso 2.
repetir
seleccionar um novo componente da solução, segundo um critério de escolha pré-estabelecido
atribuir valor a este elemento e actualizar x
até que x seja solução factível
stop
C A P Í T U L O 2. C O N S T R U T I V A S E M E L H O R A T I V A S
11
características gerais:
• simplicidade
• facilidade de programação
• baixo consumo de recursos computacionais
• fraca qualidade das soluções geradas, muito dependentes das escolhas iniciais
• podem bloquear sem atingir uma solução factível
C A P Í T U L O 2. C O N S T R U T I V A S E M E L H O R A T I V A S
12
construtiva de tipo greedy para o TSP:
heurística do Vizinho Mais Próximo
(Bock, 1958; Croes, 1958)
Começar no local 1 e ir para o local mais perto - vizinho mais próximo - e deste, sucessivamente, para o local mais perto até ter percorrido todos os locais e voltar ao primeiro, com o cuidado de passar exactamente uma vez por cada um deles.
pseudocódigo do algoritmo:
algoritmo TSPvizinho
passo 1. {inicialização}
escolher arbitrariamente um local i
L = {1,2,…,n} - {i} {L é o conjunto dos restantes locais a visitar}
passo 2.
repetir
seleccionar em L o local j mais próximo de i
inserir o local j imediatamente a seguir a i no percurso
i = j
L = L - {j}até que ou não se consiga seleccionar
stop
C A P Í T U L O 2. C O N S T R U T I V A S E M E L H O R A T I V A S
L
13
exercícios:
• 2.1. Aplicando uma heurística construtiva determine soluções factíveis para as seguintes instâncias de TSP:
a)
b) (rede de cidades do exercício 1.1)
A B
CD
50
5
6
3
7
4
C A P Í T U L O 2. C O N S T R U T I V A S E M E L H O R A T I V A S
2 4
1 3
5
6
7
12
12
10
8 11
12
10
9
9
113
76
14
heurísticas melhorativas:(Bock, 1958; Croes, 1958; Flood, 1956)
As mais divulgadas baseiam-se em pesquisa local melhorativa.
Pesquisam, numa vizinhança de uma solução factível inicial, outra solução factível de melhor qualidade.
O processo de pesquisa repete-se, a partir da nova solução, até que não se obtém melhor solução na vizinhança da solução corrente ou que outro critério de paragem se verifique.
Seja um problema de optimização na versão de minimização e ( f, S ) uma sua instância:
• V função de vizinhança -
onde P(S) é o conjunto das partes de S
as soluções de V(x) consideram-se “perto” de x
• a passagem de uma solução para outra da sua vizinhança chama-se movimento
• x - solução óptima local (minimizante local), em relação à vizinhança V -
tal que f(x)≤ f(y) para todo o
C A P Í T U L O 2. C O N S T R U T I V A S E M E L H O R A T I V A S
SxVSxSSV )()(: quetal
Sx )(xVy
15
pseudocódigo do algoritmo:
algoritmo PesquisaMel
passo 1. {inicialização}
optar por uma vizinhança Vdeterminar uma solução inicial
passo 2.
repetir
seleccionar tal que f(x’) ≤ f(x)
x = x’ {movimento}
até que critério de paragem seja verificado
passo 3. {possivelmente um minimizante local}
stop
)()( xfxf
xx
C A P Í T U L O 2. C O N S T R U T I V A S E M E L H O R A T I V A S
)(' xVx
Sx
16
observações:
• A representação das soluções de muitos problemas de optimização faz-se através de
- sequências de números
- árvores
- vectores de
o que permite definir vizinhanças por troca de k elementos – vizinhanças k-troca ou k-exchange ou k-swap.
• solução inicial obtida por um processo aleatório ou por uma heurística construtiva
• estratégia de pesquisa numa vizinhança
- movimento de primeira melhoria ou first improvement
- movimento de melhor melhoria ou best improvement
• critério de paragem
- pesquisa completa (a solução obtida é minimizante local) f(x) ≤ f(y) para todo o
- pesquisa incompleta (não se garante que a solução obtida seja minimizante local)
• definição de vizinhanças e do critério de paragem pode conduzir a minimizantes locais de boa qualidade
C A P Í T U L O 2. C O N S T R U T I V A S E M E L H O R A T I V A S
)(xVy
n
17
características gerais:
• simplicidade
• facilidade de implementação
• baixo consumo de recursos computacionais, para vizinhanças de pequena dimensão (por ex, k-troca com k=1,2,3) e pesquisa incompleta
• qualidade da solução gerada muito dependente da solução inicial e da estrutura de vizinhança
• apenas se pode garantir que a solução gerada é minimizante local - excepto quando se trabalha com vizinhança exacta, neste caso pode obter-se um minimizante (global)
C A P Í T U L O 2. C O N S T R U T I V A S E M E L H O R A T I V A S
18
heurística de pesquisa local melhorativa para o TSP simétrico – cij = cji :
heurística k-Optimal
(Lin, 1965; Lin e Kernighan, 1973)
• x - solução factível, ou seja, circuito que passa uma e uma só vez em cada um dos n locais
• - vizinhança de x dada pelo conjunto de circuitos que se obtêm de x após remoção de k ou menos ligações (arcos)
• esta vizinhança de tipo k-troca é definida para
•
•
C A P Í T U L O 2. C O N S T R U T I V A S E M E L H O R A T I V A S
Sxx VVn
)(...)(2
)(xVk
2k
)(xx Vk
19
2
4
1
32
4
1
3
v5
4
6
1
3
2
54
6
1
3
2
4
C A P Í T U L O 2. C O N S T R U T I V A S E M E L H O R A T I V A S
ilustração:
20
C A P Í T U L O 2. C O N S T R U T I V A S E M E L H O R A T I V A S
problema de PNL univariável:
heurística melhorativa
algoritmo PNLMel {versão de maximização}
passo 1. {inicialização}
considerar uma solução factível inicial xoptar por um valor para δ {passo - real suficientemente pequeno}
passo 2.
se então
x=x+δvoltar ao início do passo 2.
caso contrário continuar
passo 3. {possivelmente um maximizante local}
stop
observações
para tentar escapar de óptimos locais
- tomar várias soluções na região factível e aplicar a partir de cada uma delas uma heurística (de pesquisa local ) melhorativa.
)()( xfxf
xx
)()( xfxf
21
A B
CD
50
5
6
3
7
4
exercícios:
• 2.2. Aplique a heurística 2-Optimal às seguintes instâncias de TSP :
a) inicializando com A-B-D-C-A (exercício 2.1 a))
C A P Í T U L O 2. C O N S T R U T I V A S E M E L H O R A T I V A S
b) inicializando com 1-2-4-3-5-6-7-1 (exercício 2.1 b) ou 1.1)
2 4
1 3
5
6
7
1212
108 11
1210
9
9
113
76
c) inicializando com um circuito à sua escolha e admitindo conhecida a matriz C das distâncias euclidianas entre pares
de cidades:
C =
00.25
41.3015.29
28.5572.4293.26
0.509.5593.2608.38
22
C A P Í T U L O 2. C O N S T R U T I V A S E M E L H O R A T I V A S
exercícios (cont.):
• 2.3. Considere a instância do exercício 1.2:
a) aplique-lhe o algoritmo PNLMel
b) tome vários pontos na região factível, intervalo [0,31], e repita o algoritmo PNLMel a partir de cada um.
23
C A P Í T U L O 3. G R A S P
Metaheurísticas são estratégias de resolução não exacta que organizam e dirigem a pesquisa de métodos
subordinados, por exemplo a pesquisa local, de forma a alcançar melhores soluções.
0
500000
1000000
1500000
2000000
2500000
3000000
3500000
4000000
4500000
5000000
1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31
x
y
heurística GRASP (Greedy Randomized Adaptative Search Procedure):(Feo e Resende, 1989)
A GRASP é caracterizada por explorar vizinhanças de várias soluções factíveis segundo um procedimento em que
cada iteração se compõe de duas fases:
• 1ª Fase – construtiva – heurística construtiva greedy aleatorizada
• 2ª Fase – melhorativa – pesquisa local na vizinhança da solução encontrada na 1ª Fase
24
C A P Í T U L O 3. G R A S P
pseudocódigo do algoritmo:
algoritmo GRASP {versão de minimização}
k = 1 {contador de iterações}
seja x* uma solução factível inicial qualquer
repetir
passo 1. {1ª Fase da heurística}
chamar procedimento ConstrutivaAleat
xk é a solução da iteração k
passo 2. {2ª Fase da heurística}
chamar procedimento PesquisaMel {partindo de xk efectua uma pesquisa local}
é o minimizante local
se então {movimento}
k = k+1
até que critério de paragem seja verificado
stop
)(*)(* xxkk
fxfx
e
xk
*)()( xff xk
25
C A P Í T U L O 3. G R A S P
observações:
• 1ª Fase – ConstrutivaAleat
- ordenar os elementos do conjunto de candidatos a componentes de uma solução de acordo com uma função greedy
- colocar os elementos em melhor posição numa lista restrita de candidatos (LRC) seleccionados por
cardinalidade – os p candidatos melhor posicionados na ordenação
p = número total de candidatos – processo aleatório
p = 1 – processo puramente greedy
qualidade – os candidatos com valor da função melhor que determinado limite
- seleccionar aleatoriamente um elemento da LRC, incluí-lo na solução
- repetir o procedimento até ter uma solução factível ou não conseguir obter uma
26
C A P Í T U L O 3. G R A S P
observações (cont.):
• 2ª Fase – PesquisaMel
- especificar a estrutura de vizinhança V
- definir a estratégia de pesquisa em V
- fazer pesquisa local a partir de solução determinada pela ConstrutivaAleat
• critério de paragem
- limite máximo no número de iterações
- limite máximo no número de iterações sem melhoria
- limite máximo no tempo de execução
27
C A P Í T U L O 3. G R A S P
características gerais:
• simplicidade
• facilidade de implementação
• poucos parâmetros/processos requerem tomada de decisão (critério greedy; regra de construção da LRC;
vizinhança e pesquisa; critério de paragem)
• facilidade de controlar o consumo de recursos computacionais
• pode garantir-se que a solução gerada é um minimizante local
• a GRASP não aprende com a experiência, uma vez que não guarda informação sobre soluções intermédias
aperfeiçoamentos possíveis:
• incorporar memória que guarde todas as soluções iniciais – impedir pesquisa local a partir de soluções já pesquisadas
• intensificar a pesquisa em torno de soluções de boa qualidade
• diversificar a pesquisa fazendo variar as vizinhanças ao longo do processo
28