curso heuristicas - 1ª parte

Post on 03-Jul-2015

107 views 0 download

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

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