Escolar Documentos
Profissional Documentos
Cultura Documentos
heurísticas
margarida pato
apoios
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
bibliografia:
2
AP R E S E N TAÇ Ã O
programa:
• Capítulo 1. Introdução
• Capítulo 3. GRASP
3
C A P Í T U L O 1. I N T R O D U Ç Ã O
motivação:
• problemas difíceis
- optimização de funções não lineares
- optimização combinatória
4
C A P Í T U L O 1. I N T R O D U Ç Ã O
• 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
5
C A P Í T U L O 1. I N T R O D U Ç Ã O
problema de optimização:
sujeito a xS
6
C A P Í T U L O 1. I N T R O D U Ç Ã O
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:
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
7
C A P Í T U L O 1. I N T R O D U Ç Ã O
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
8
C A P Í T U L O 1. I N T R O D U Ç Ã O
exemplo (cont.):
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:
9
C A P Í T U L O 1. I N T R O D U Ç Ã O
complexidade computacional:
Um algoritmo para determinado problema de dimensão n tem complexidade computacional o( (n)) se existe uma constante
positiva c tal que o tempo de execução desse algoritmo é majorado por c (n) para todas as instâncias do referido
problema com dimensão n.
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.
10
C A P Í T U L O 2. C O N S T R U T I V A S E M E LH O RATI VA S
heurísticas construtivas:
pseudocódigo do algoritmo:
algoritmo Construtivo
passo 1. { inicialização}
determinar uma solução parcial, x
passo 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
11
C A P Í T U L O 2. C O N S T R U T I V A S E M E LH O RATI VA S
características gerais:
• simplicidade
• facilidade de programação
• fraca qualidade das soluções geradas, muito dependentes das escolhas iniciais
12
C A P Í T U L O 2. C O N S T R U T I V A S E M E LH O RATI VA S
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 L ou não se consiga seleccionar
stop
13
C A P Í T U L O 2. C O N S T R U T I V A S E M E LH O RATI VAS
exercícios:
• 2.1. Aplicando uma heurística construtiva determine soluções factíveis para as seguintes instâncias de TSP:
a)
A 3 B
5 4
6
7
D
C 50
12
2 4
12 8 11
1 10 3 11
3
10
12 5
9 6
7
6
9
7
14
C A P Í T U L O 2. C O N S T R U T I V A S E M E LH O RATI VA S
heurísticas melhorativas:
(Bock, 1958; Croes, 1958; Flood, 1956)
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.
• V função de vizinhança -
V : S (S ) tal que x S V ( x) S
onde P(S) é o conjunto das partes de S
as soluções de V(x) consideram-se “perto” de x
15
C A P Í T U L O 2. C O N S T R U T I V A S E M E LH O RATI VA S
pseudocódigo do algoritmo:
algoritmo PesquisaMel
passo 1. {inicialização}
optar por uma vizinhança V
determinar uma solução inicial x S
passo 2.
repetir
seleccionar x'V ( x) tal que f(x’) ≤ f(x)
x = x’ {movimento}
até que critério de paragem seja verificado
passo 3. {possivelmente um minimizante local}
xx
f ( x ) f ( x)
stop
16
C A P Í T U L O 2. C O N S T R U T I V A S E M E LH O RATI VA S
observações:
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
• critério de paragem
- pesquisa completa (a solução obtida é minimizante local) f(x) ≤ f(y) para todo o y V (x)
- 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
17
C A P Í T U L O 2. C O N S T R U T I V A S E M E LH O RATI VA S
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
• 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)
18
C A P Í T U L O 2. C O N S T R U T I V A S E M E LH O RATI VA S
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
k
• V (x) - 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)
x V (x)
k
•
• ( x) ... V ( x) S
2 n
V
19
C A P Í T U L O 2. C O N S T R U T I V A S E M E LH O RATI VA S
ilustração:
1
1
4 4
2
2
3
3
4
1 1
2 2
6 6
3 3
5 5
4v 4
20
C A P Í T U L O 2. C O N S T R U T I V A S E M E LH O RATI VA S
heurística melhorativa
observações
21
C A P Í T U L O 2. C O N S T R U T I V A S E M E LH O RATI VAS
exercícios:
5 4
6
7
D
C 50
c) inicializando com um circuito à sua escolha e admitindo conhecida a matriz C das distâncias euclidianas entre pares
de cidades: 38.08 26.93 55.9 50.0
26.93 42.72 55.28
29.15 30.41
C=
25.00
22
C A P Í T U L O 2. C O N S T R U T I V A S E M E LH O RATI VAS
exercícios (cont.):
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.
x
5000000
4500000
4000000
3500000
3000000
2500000
y
2000000
1500000
1000000
500000
0
1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31
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:
24
C A P Í T U L O 3. G R A S P
pseudocódigo do algoritmo:
k = 1 {contador de iterações}
repetir
xk é a solução da iteração k
stop
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
- 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
• critério de paragem
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)
• 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
28