curso heuristicas - 1ª parte

28
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

Upload: pauloilser

Post on 03-Jul-2015

107 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: curso heuristicas - 1ª parte

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

Page 2: curso heuristicas - 1ª parte

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

Page 3: curso heuristicas - 1ª parte

• 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

Page 4: curso heuristicas - 1ª parte

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

Page 5: curso heuristicas - 1ª parte

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

Page 6: curso heuristicas - 1ª parte

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

Page 7: curso heuristicas - 1ª parte

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

Page 8: curso heuristicas - 1ª parte

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

Page 9: curso heuristicas - 1ª parte

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

Page 10: curso heuristicas - 1ª parte

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

Page 11: curso heuristicas - 1ª parte

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

Page 12: curso heuristicas - 1ª parte

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

Page 13: curso heuristicas - 1ª parte

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

Page 14: curso heuristicas - 1ª parte

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

Page 15: curso heuristicas - 1ª parte

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

Page 16: curso heuristicas - 1ª parte

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

Page 17: curso heuristicas - 1ª parte

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

Page 18: curso heuristicas - 1ª parte

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

Page 19: curso heuristicas - 1ª parte

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

Page 20: curso heuristicas - 1ª parte

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

Page 21: curso heuristicas - 1ª parte

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

Page 22: curso heuristicas - 1ª parte

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

Page 23: curso heuristicas - 1ª parte

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

Page 24: curso heuristicas - 1ª parte

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

Page 25: curso heuristicas - 1ª parte

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

Page 26: curso heuristicas - 1ª parte

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

Page 27: curso heuristicas - 1ª parte

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

Page 28: curso heuristicas - 1ª parte

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