Você está na página 1de 28

CURSO

heurísticas

margarida pato

Centro de IO - Universidade de Lisboa


ISEG - Universidade Técnica de Lisboa

apoios

Brasil FUNDUNESP 2009/14901–4 e 2010/07585–6


Po rt u g al PO CTI – I S F L–1 –15 2 e PPC DT/ MAT/ 578 93/ 200 4

Instituto de Biociências - UNESP - Botucatu


1 outubro 2010
AP R E S E N TAÇ Ã O

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

2
AP R E S E N TAÇ Ã O

programa:

• 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

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

• 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
C A P Í T U L O 1. I N T R O D U Ç Ã O

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

5
C A P Í T U L O 1. I N T R O D U Ç Ã O

problema de optimização:

• minimizar (ou maximizar) f(x)

sujeito a xS

f – função objectivo ou de avaliação, f : D  R


k

k = 1 – problema uni-objectivo [ k > 1 – problema multi-objectivo ]

S – conjunto das soluções factíveis ou admissíveis , S  D , 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

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:

• 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

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.):

• problema de programação não linear (PNL) univariável

Determinar o máximo de f(x), sendo x  S , 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.

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.

• algoritmo polinomial – (.) é uma função polinomial ou inferior


2
n
o( ), o(n log n)

• algoritmo exponencial –  (.) é função superior a polinomial


logn n
o(n ), o(2 )

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:

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, 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

• 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

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

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 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

b) (rede de cidades do exercício 1.1)

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)

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 -
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

• 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 -


x  S tal que f(x)≤ f(y) para todo o y V (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}

xx

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:

• 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 
n

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 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

• 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)

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 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
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)

• esta vizinhança de tipo k-troca é definida para k  2

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

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 x
optar por um valor para δ {passo - real suficientemente pequeno}
passo 2.
se f ( x   )  f ( x) então
x=x+δ
voltar ao início do passo 2.
caso contrário continuar
passo 3. {possivelmente um maximizante local}

xx

f ( x )  f ( x)
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.

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:

• 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))
A 3 B

5 4

6
7
D
C 50

b) inicializando com 1-2-4-3-5-6-7-1 (exercício 2.1 b) ou 1.1)


2 12 4
12
8 11
1 10 3 11
3
5 10
12 9
6
7
6
7 9

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.):

• 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.

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

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}


 k
x é o minimizante local

f ( x )  f ( x*) então x*  k e
k
k
se
x f ( x*)  f ( x ) {movimento}
k = k+1

até que critério de paragem seja verificado

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

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

Você também pode gostar