tópicos em métodos heurísticos - dep.ufscar.br - 2010/simulated... · consiste nas regras de...

22
1 Tópicos em Métodos Heurísticos BUSCA LOCAL META-HEURÍSTICAS MÉTODOS HEURÍSTICOS QUE PERMITEM A CONTINUIDADE DAS EXPLORAÇÕES ALÉM DA OTIMALIDADE LOCAL, EM PARTICULAR, SUPERPONDO-SE A HEURÍSTICAS DE BUSCA LOCAL fo* 52 40 30 25 23 ótimo local 19 fo it N

Upload: hoangtu

Post on 01-Dec-2018

214 views

Category:

Documents


0 download

TRANSCRIPT

1

Tópicos em Métodos Heurísticos

BUSCA LOCAL

META-HEURÍSTICAS

MÉTODOS HEURÍSTICOS QUE PERMITEM A CONTINUIDADE DAS

EXPLORAÇÕES ALÉM DA OTIMALIDADE LOCAL, EM PARTICULAR, SUPERPONDO-SE

A HEURÍSTICAS DE BUSCA LOCAL

Fo fo*

Fo 52

F

40

Fo 30

Fo 25

Fo 23 ótimo local

Fo 19

Fo fo

Fo it

Fo N

2

I) SIMULATED ANNEALING (SA)

ANNEALING (recozimento ou cura): processo térmico para obter estados de baixa energia

em um sólido através de um banho térmico. O processo é usado para reduzir a dureza e

estresses internos, refinar a estrutura e melhorar propriedades do material em diferentes

condições de temperatura.

1. Inicialmente o sólido é derretido, aumentando-se a temperatura a níveis muito altos.

2. A temperatura é então diminuída lentamente até que a partículas se encontrem no

“estado fundamental” do sólido. No estado fundamental, as partículas formam

retículas perfeitas e o sistema está em seu mais baixo nível energético.

Se o resfriamento ocorre muito lentamente: o sólido pode alcançar o equilíbrio

térmico para cada temperatura durante o processo.

Se o resfriamento ocorre rapidamente: o sólido pode chegar a estados “meta-

estáveis” onde existem defeitos na forma de estruturas de alta energia.

CONCEITOS FUNDAMENTAIS

Dada uma substância qualquer, nem todas as moléculas têm a mesma energia, dado

que se encontram distribuídas em níveis distintos. O estado de menor energia se

denomina estado fundamental 0.

Se a substância está a 0 K, todas as moléculas estão em seu estado fundamental.

Conforme a temperatura aumenta, as moléculas passam a ocupar níveis superiores.

Cada uma das maneiras em que as moléculas podem estar distribuídas entre os níveis

distintos recebem o nome de microestados = conjunto de todos os possíveis

microestados; ni (número de ocupação) = número de partículas no nível i.

Estados moleculares () para sete moléculas: o número de moléculas nos estados

superiores decresce exponencialmente para uma temperatura fixa.

3

2

1

0

0 K Morno Quente

no=7

n2=1

n1=2

no=4

n3=1

n2=1

n1=2

n0=3

3

L. Boltzmann observou que quando um sistema isolado evolui espontaneamente ocorre,

além do aumento da entropia, maior desordem do ponto de vista mecânico. Um problema de

interesse era o seguinte:

DADO UM NÚMERO N DE MOLÉCULAS e UM VALOR E DE ENERGIA DA SUBSTÂNCIA,

DE QUANTAS MANEIRAS PODEM ESTAR SITUADAS AS PARTÍCULAS NOS

DIFERENTES NÍVEIS? EM OUTRAS PALAVRAS, QUANTOS MICROESTADOS

DIFERENTES (||) PODEM EXISTIR PARA UM DADO N E UMA DADA E?

ESTATÍSTICA DE MAXWELL-BOLTZMANN (considera as partículas totalmente discerníveis, a

temperatura alta o suficiente e a densidade baixa o suficiente para tornar os efeitos quânticos

negligenciáveis):

|| = número de microestados possíveis considerando fixos alguns números de ocupação

<n’0, n’1,... n’i> (os quais representam a complexidade mais provável no equilíbrio, dados N

e E), sendo n’j=P.exp(-j/kT) onde P é o fator de proporcionalidade, e k=1,38054x10-23

J/K.

Ao se introduzir as iterações entre as partículas, as energias j não têm significado físico e os

conceitos do parágrafo anterior deixam de ser aplicáveis conceito de “COLETIVO” (W. Gibbs):

entidade formada por um número suficientemente grande de “configurações”, cada uma delas

constituída por N partículas.

METRÓPOLIS: algoritmo para cálculo de valores médios da energia interna e da pressão dentro

do formalismo dos coletivos de Gibbs, sem a necessidade de recorrer à solução analítica das

integrais correspondentes.

Utiliza o método de Monte Carlo para eleger as n configurações que seriam selecionadas

para calcular os valores médios buscados. A seleção destas configurações leva em conta a

probabilidade exponencial de que se apresente uma configuração determinada com energia

potencial Ei.

4

ALGORITMO DE METRÓPOLIS

1. Gere uma configuração inicial aleatória, com valores aleatórios para todos os graus de

liberdade do sistema, respeitando as suas restrições. Atribua o índice m a essa configuração,

que é aceita para a amostra.

2. Gere uma nova configuração-tentativa de índice n, resultado de pequenas alterações na

configuração m.

3. Calcule a diferença de energia =E(n) – E(m).

4. Se < 0, (a energia da configuração n é menor que a da configuração m), aceite a

configuração n na amostra, e atribua a ela o índice m a partir desse momento. Caso

contrário:

4.1 Gere um número aleatório U entre 0 e 1.

4.2 Se U < p=exp(-/kT), aceite a configuração n na amostra, e atribua a ela o índice

m. Caso contrário, o índice m permanece designando a configuração corrente.

5. Retorne ao passo 2 até que algum critério de parada seja satisfeito. Cada uma dessas

repetições é uma aplicação de Monte Carlo.

Note que:

A probabilidade de aceitação é função da temperatura e da diferença entre os níveis de

energia.

Quanto menor a temperatura, menor será a probabilidade de transformação em um

estado de maior energia.

Quanto maior for a energia do novo estado, menor será a probabilidade de que seja

aceito. Portanto, cada estado tem uma possibilidade de ser alcançado, mas com

diferentes probabilidades a diferentes temperaturas.

KIRKPARTIRCK ET. AL. (1983) (e CERNY (1985), DE FORMA INDEPENDENTE)

INTRODUZIRAM OS CONCEITOS DE ANNEALING DENTRO DO MUNDO DA

OTIMIZAÇÃO COMBINATÓRIA.

Os estados do sistema correspondem às soluções do problema de otimização combinatória; a

energia dos estados à função objetivo; o estado fundamental à solução ótima, e os estados meta-

estáveis aos ótimos locais. A temperatura desempenha o papel de um parâmetro de controle. Ou

seja:

5

TERMODINÂMICA OTIMIZAÇÃO

Configuração Solução factível

Configuração fundamental Solução ótima

Energia da Configuração Custo da solução

Temperatura (?)

Simulated annealing pode ser visto com um processo iterativo de algoritmos de Metrópolis

que vão sendo executados com valores decrescentes do parâmetro de controle (temperatura).

Conceitualmente, é um método de busca em vizinhança no qual o critério de seleção

consiste nas regras de transição do algoritmo de Metrópolis:

o algoritmo seleciona aleatoriamente um candidato dentre os que compõem a vizinhança da

solução atual.

se o candidato é melhor que a solução atual em termos do critério de avaliação, ele será

aceito como solução atual. Caso contrário, será aceito com uma probabilidade que diminui

segundo o crescimento da diferença entre os valores da função objetivo da solução

candidata e da atual (problema de minimização).

quando o candidato é rejeitado, o algoritmo seleciona aleatoriamente outro candidato e o

processo é repetido.

A LÓGICA DE SA PARA EVITAR O APRISIONAMENTO EM ÓTIMOS LOCAIS É ESCOLHER

SOLUÇÕES DA VIZINHANÇA ALEATORIAMENTE E DE PERMITIR COM CERTA

PROBABILIDADE (CADA VEZ MENOR, CONFORME A PROXIMIDADE DO ÓTIMO DIMINUI) O

MOVIMENTO A SOLUÇÕES PIORES.

Analisando o comportamento do fator de Boltzmann em função da temperatura vemos que,

conforme esta diminui, diminuiu rapidamente a probabilidade de que se aceite uma solução pior que

a atual (veja Figura 1, onde é a diferença entre o custo da solução atual e o custo da solução

candidata).

6

Figura 1 – Fator de Boltzmann em função da temperatura e de . Para =2, é 50 vezes menos

provável que um movimento seja aceito com T=0.5 do que com T=20.

Demonstrou-se que simulated annealing é capaz de encontrar (assintoticamente) a solução

ótima com probabilidade 1. Apesar de garantida, a otimalidade somente se alcançará após

um número infinito de passos no pior caso.

O bom funcionamento da meta-heurística depende da definição da estrutura da vizinhança,

do padrão de resfriamento e das estruturas de dados.

A estratégia que será seguida em SA será a de partir de uma “temperatura” alta (com a qual

são permitidos movimentos a soluções piores nas primeiras iterações), e posteriormente a

temperatura será reduzida, diminuindo a possibilidade de movimentos a soluções piores quando se

estiver próximo ao ótimo buscado. O algoritmo de SA para um problema de minimização pode ser

descrito da seguinte forma:

T

exp (-/T)

1

0 2

T = 0.5

T = 20

7

ALGORITMO GERAL DE SA (MINIMIZAÇÃO)

1. INPUT: T0, , L e Tf (respectivamente, a temperatura inicial, a velocidade de

resfriamento, número de iterações em cada temperatura, e a temperatura final)

2. Faça T=T0 e S=solução inicial gerada por algum procedimento e S*=S.

3. Enquanto TTf

3.1 Para i=1 a L(T) faça

3.1.1 Selecione aleatoriamente uma solução candidata S´ de N(S).

3.1.2 Calcule =custo(S) – custo(S´).

3.1.3 Se U(0,1) < exp(-/T) ou <0 então faça S=S´.

3.1.4 Se S < S*, faça S*=S.

3.2 Faça T=(T).

4.OUTPUT: S*.

Por simplificação, consideramos que o algoritmo termina ao se alcançar uma temperatura

mínima Tf. O caso mais geral, entretanto, pode considerar outras condições de parada. No

artigo original de Kirkpatrick(1983), o algoritmo pára quando após três temperaturas

sucessivas não tenha sido produzido um número mínimo aceitável de melhorias na solução.

Exemplo: Problema da Mochila 0-1 – Capacidade: 8

i vi pi

1 30 2

2 50 3

3 25 3

4 12 2

5 40 2

8

Estrutura de vizinhança: Troca de um item dentro da mochila por outro fora dela.

Seja S=<01010> com Fo(S)=62 e T=7

1ª tentativa: Vizinhos de (S)

S’1=<10010> Fo(S’1)=42; S’2=<00110> Fo(S’2)=37

S’3=<00011> Fo(S’3)=52; S’4=<11000> Fo(S’4)=80

S’5=<01100> Fo(S’5)=75; S’6=<01001> Fo(S’6)=90

= lucro(S) – lucro(S’3) = 25

Como > 0, a qualidade da solução deteriorou (maximização) P= exp(-

/T) = exp(-25/7)= 0,03

U(0,1) = 0,2 > 0,03 a solução é rejeitada

2ª tentativa: Vizinhos de (S)

S’1=<10010> Fo(S’1)=42; S’2=<00110> Fo(S’2)=37

S’3=<00011> Fo(S’3)=52; S’4=<11000> Fo(S’4)=80

S’5=<01100> Fo(S’5)=75; S’6=<01001> Fo(S’6)=90

= lucro(S) – lucro(S’3) = 10

Como > 0 P= exp(-/T) = exp(-10/7)= 0,24

U(0,1) = 0,1 < 0,24 a solução é aceita

Solução ótima: <11001> Fo*=120

SELEÇÃO DO PROGRAMA DE RESFRIAMENTO (COOLING SCHEDULING)

Não há regras gerais para eleger o melhor programa de resfriamento apesar da vasta

literatura no assunto. Em geral, é parte do folclore de SA que um bom programa de resfriamento é

aquele em que o equilíbrio é alcançado ou aproximado em cada temperatura, apesar de existirem

bons motivos para crer que o tempo para isso cresce exponencialmente com a inversa da

temperatura. Alguns aspectos relacionados com os diferentes parâmetros que definem o programa

de resfriamento serão agora apresentados.

a)TEMPERATURA INICIAL

É desejável que toda heurística de busca seja independente da solução inicial parte-se de

uma temperatura inicial alta, com a qual a princípio irá erraticamente visitando soluções

longe do ótimo.

Não parece conveniente utilizar valores fixos T0 independentes do problema.

9

Por exemplo, se a solução candidata tem um custo que excede ao da solução inicial S0 em

100 unidades, é aceitável passar a este novo ponto?

Se c(S0)=0.01, o movimento não parece conveniente, enquanto que se c(S0)=106, sim,

mesmo para pequenos valores de T. Poderíamos, portanto, determinar T0 em função da

porcentagem de aceitações desejáveis.

Suponha que fosse aceitável uma solução % pior que a solução inicial com probabilidade

. Então,

c(S´)=(1+)c(S)

c(S´) – c(S)= c(S) e, portanto,

=exp(-/T0)=exp{(-/T0)c(S)} T0=c(S)/-ln()

Se, por exemplo, consideramos como valores razoáveis, aceitar aproximadamente =13%

das vezes (na primeira iteração) uma solução =1% pior que a atual, obtemos:

T0=0,001*c(S)/-ln(0.13) 0,005*c(S)

b) VELOCIDADE DE RESFRIAMENTO

Segundo a analogia, o valor L(T) deveria ser suficientemente grande para que o sistema

consiga alcançar o estado de equilíbrio para esta temperatura, o qual significaria um número de

iterações pelo menos igual a ||2 (Eglese, 1990). Como isso é inviável, ao se desenvolver um

algoritmo de SA, deve-se promover um equilíbrio entre e L:

Caso se realize poucas iterações em cada temperatura, são recomendáveis decrementos

rápidos de temperatura.

Caso se realize poucas variações de temperatura, são recomendáveis um número

grande de iterações.

Lundy e Mees (1986)

o Uma única iteração para cada temperatura (L(T)=1, para todo T).

o (T)=T/ (1 + T) para << U-1

(U=max{c(Sj) – c(S)} para todo Sj, S

o To é selecionado de maneira que a maioria dos movimentos são aceitos.

Connolly (1990)

o Seleciona T mais adequada.

o Realiza todas as iterações para este valor.

10

Prática mais comum: velocidade geométrica de decrescimento (Dowsland, 1993): (T) =

rT, 0 < r <1

o 0.8 r 0.99 (resfriamento lento; Kuik, Salomon, 1990).

Para permitir uma exploração mais intensiva nas temperaturas baixas, pode-se considerar

L(T) (número de iterações em cada T) que cresce conforme o decrescimento de T, o qual é

consistente com um número de aceitações constante para cada temperatura. Se esta prática

não der bons resultados, deve-se experimentar outros programas de resfriamento mais

específicos.

Outros autores sugerem o uso de reaquecimento quando a busca, após o resfriamento, parece

mal sucedida (Dowsland, 1993): Se descermos uma montanha e notarmos que o

caminho adotado termina sem termos chegado ao nosso destino, nossa tendência é de

voltar a subir e tentar um novo caminho.

c)TEMPERATURA FINAL

Teoricamente, a temperatura correspondente ao “sistema frio” deveria ser T=0. Entretanto,

bastante antes de se chegar a esse valor, é praticamente nula a probabilidade de que se aceite um

movimento para uma solução pior. Normalmente, pode-se finalizar a busca com valores Tf > 0,

sem perda de qualidade das soluções.

CRITÉRIO DE SISTEMA FRIO DE LUNDY-MEES

Finaliza o processo quando a temperatura superar um limite mínimo Tf.

Seja a probabilidade de se obter uma solução para a qual seu custo menos o custo do ótimo

global seja no máximo . Demonstrou-se que:

/(1-) > (n-1)exp(-/T)

onde n=|| é o número de elementos do espaço de soluções.

O valor limite de Tf é dado por: Tf < - /(ln(n-1) – ln() + ln(1-)) /ln(n)

Seguindo esta estratégia, consegue-se uma redução polinomial na complexidade do

algoritmo, já que, tomando um valor adequado para , o número de iterações que serão realizadas

será menor que ln(n)/().

11

Outros critérios de sistema frio utilizados consistem em parar a busca quando para uma

determinada T não se tenha conseguido obter uma solução que melhore a melhor solução

obtida até o momento.

Johnson et al. (1989): para o problema de partição de grafos (dividir os n vértices de um

grafo em dois conjuntos de igual cardinalidade, de forma que haja um número mínimo

de arcos unindo os subgrafos), foi utilizado r=0,95, L(T)=16|N(S)|, parando quando

tiverem sido processadas 5 temperaturas para cada uma das quais não tenha havido 2%

de movimentos aceitos, e não tenha havido a melhoria da solução atual.

ALGUNS ASPECTOS DE IMPLEMENTAÇÃO COMPUTACIONAL - REDUÇÃO DO

TEMPO COMPUTACIONAL

a) SELEÇÃO DO CANDIDATO EM N(S)

A seleção aleatória pode produzir ineficiências se a vizinhança de um ponto inclui o

ótimo global, podemos necessitar de incluir mais de || iterações para escolhê-lo

aleatoriamente.

Uma alternativa consiste em fixar de antemão uma ordem de visita dos elementos da

vizinhança na fase final da busca. Deste modo, cada vez que se realiza uma iteração,

simplesmente se escolhe o seguinte da lista, que passa a ser o S´ que se avalia. Esta

estratégia tem dado melhores resultados para o problema de designação (Conolly,

19990) que a seleção aleatória dos pontos da vizinhança, produzindo um efeito similar à

de busca tabu já que deste modo se evita ciclagens.

b) CÁLCULO DO FATOR DE BOLTZMANN

Johnson et al (1989) observou que 1/3 do tempo de computação foi empregado no cálculo

das funções exponenciais e propôs a criação de uma tabela em que são contemplados estes

valores. Fixaram o tamanho da tabela em 1000 posições, após considerar que valores

[T/200, 5T] não são automaticamente rejeitados ou aceitáveis para cada T. Em cada posição

i se armazena se armazena exp(-/T)=exp(-i/200). Obtém-se o índice para consultar esta

tabela calculando *200/T, arredondando e limitando os valores entre 1 e 1000.

c) CÁLCULO DE C(S´)

Realizar um cálculo aproximado do valor , ou definir convenientemente as funções de

custo c(S) de forma que o cálculo de c(S´) possa ser feito em menos tempo a partir do valor

c(S) conhecido.

12

Exemplo: TSP com vizinhança 2opt.

c(S´) = c(S) – comprimento das arestas eliminadas + comprimento das arestas adicionadas.

“PARTIÇÃO DE NÚMEROS” OU A CRÔNICA DE UM FRACASSO PARA SA

SERÁ SA UMA META-HEURÍSTICA BEM SUCEDIDA?

Existem numerosas aplicações reportadas na literatura

Entretanto...

têm sido relativamente escassas as justificativas de utilização deste método de otimização

existem problemas para os quais SA não tem demonstrado nenhum êxito: bin packing,

planejamento da produção, mochila, entre outros.

O PROBLEMA DA PARTIÇÃO DE NÚMEROS (SET PARTITIONING)

Seja uma seqüência A(a1,a2,...,an) de números racionais positivos. Deseja-se encontrar uma

seqüência de S(s1,s2,...,sn) de sinais si {-1,+1}, que resulte no mínimo resíduo u=|siai|.

Exemplo: Se a instância é A(7,15,3,6,10,12,4,1), a solução S(+,-,+,-,-,+,+,+) dá lugar a um resíduo

u=|-4|=4.

Uma solução ótima é S(+,-,+,+,-,+,-,+) que resulta em resíduo 0.

Uma aplicação conhecida deste problema é a busca das soluções perfeitas (resíduo 0) em

criptografia (Shamir, 1979).

Jones e Beltramo (1991) utilizaram um algoritmo genético para uma generalização do

problema de partição de números, denominado o problema de pilhas iguais, cujo

objetivo é dividir um conjunto de números em k partições com a mesma somatória. Este

problema inclui partição de números quando k=2.

7 3 12

4 1

15 6

10

7 3 6

12 1

15 4

10

13

Johnson, Aragon, McGeoch e Schevon (1991) estudaram a eficiência de SA em problemas

de interesse, dentre os quais, o problema de partição de números. Suas conclusões em relação a este

último foram:

“Como se esperava, os resultados para partição de números foram decididamente

negativos, com SA sendo superado largamente em eficiência pelo muito mais rápido

algoritmo de Karmarkar-Karp, e por buscas locais com reínicios múltiplos (MSLO)."

"Realizamos experimentos para valores de n>500, ainda que as tendências eram já óbvias

com nossas experiências: simulated annealing (e otimização local) é superada (melhorada)

por Karmarkar-Karp com o aumento de n. Portanto, ao menos para os tipos de instâncias

aleatórias que consideramos, estes resultados ilustram as limitações de simulated annealing

como uma técnica geral".

Nota: A heurística de Karmarkar e Karp é um método muito simples de se enunciar e possui

baixa complexidade (O(n.log(n)).

MÉTODO DE KARMARKAR-KARP

Esta heurística gera uma árvore onde os elementos de A são os nós. Quando se gera uma

árvore com n nós, forma-se uma partição colorindo a árvores com duas cores, induzindo dois

subconjuntos AiA com i {1,2} e A1A2=A Esta partição é única e se constrói em tempo O(n).

A árvore se constrói da seguinte maneira:

1. Crie um nó para cada um dos elementos de A (isolados) aos quais de designará um peso

w(i) (inicialmente w(i)=ai , para todo i). Declare "vivos" todos os nós.

Repita, então, os seguintes passos até que haja apenas um único nó vivo:

2. Encontre os dois nós vivos u e v com os maiores pesos (empates decididos

arbitrariamente). Assuma que w(u)w(v).

3. Una u e v com uma aresta e declare v como "morto". Faça w(u)=w(u) - w(v).

Esta operação está tomando a decisão relativa de pôr u e v em lados distintos da

partição, adiando, por hora, a determinação absoluta de quais são esses lados.

Continuando desta forma, o valor induzido pela partição final (o resíduo) é o peso do

último nó vivo.

14

Exemplo: A(7,5,3,6,1)

Portanto,

A1={5,6} A2={7,3,1} R= 5 + 6 – 7 – 3 –1 = 0

5

5

5 6 1

3

7

Vivo

Vivo Vivo

Vivo Vivo

5

5

5 0 1

3

1

Vivo

Vivo Vivo

Vivo Morto

-

2

5

5 0 1

0

1

Vivo

Morto Vivo

Vivo Morto

1

5

5 0 1

0

0

Morto

Morto Vivo

Vivo Morto

0

5

5 0 0

0

0

Morto

Morto Vivo

Morto Morto

7 / 6

7 / 6 5 / 3 7 / 6 5 / 3 5 / 7

7 / 6 5 / 3 5 / 7

5 / 1

15

INSTÂNCIAS ESTUDADAS

Seqüência de n números gerados aleatoriamente com probabilidade uniforme no

intervalo [0,1].

Valor esperado da solução ótima (OPT(In))=2-n

n1/2

.

Valor esperado do resíduo do algoritmo KK (KK(In))=n-log(n)

.

Existe uma grande distância entre o ótimo global e uma partição dada pelo algoritmo KK.

IMPLEMENTAÇÃO DE SIMULATED ANNEALING DE JOHNSON et al (1991)

VIZINHANÇA DE UMA PARTIÇÃO

Grafos resultantes da inserção de um elemento aj da partição A1 a A2 equivale a trocar o

sinal de seu sj S correspondente. O grafo vizinho associado se denomina SW1.

Em geral, se define o grafo SWk como aquele que se gera ao trocar k ou mais

elementos.

FATORES DO MAU DESEMPENHO DE SA

No caso geral, o valor esperado da menor diferença de custo entre duas soluções

vizinhas em SWk é 1/nk.

Isto marca uma diferença notável com o fato de que o valor esperado de OPT(In) é

2-n

n1/2

.

Exemplo: Se k=1 e n=25 1/nk = 0.04; 2

-nn

1/2 1.49 x 10

-7

Portanto, é de se esperar que os mínimos locais de grande qualidade se encontrem situados

em vales profundos do espaço de configurações e que estejam rodeados de soluções de maior custo.

Custo

d

Landscape provável de problemas de partição de números

16

Esta situação é desfavorável para SA já que para que haja movimentos na vizinhança,

são necessárias "temperaturas" com ordens de magnitude maiores para "saltar" diferenças

proporcionais a 1/nk que as necessárias para investigar "eficientemente" (utilizando o algoritmo de

Metrópolis) aquelas regiões do espaço de configurações com mínimos de boa qualidade (de ordem

2-n

n1/2

).

Custo

d

Landscape desfavorável para simulated annealing

Cruzar barreiras em tempo razoável demanda T grande, enquanto atingir melhores vales requer

T pequeno, implicando que SA não pode trabalhar rápida e eficientemente simultaneamente !!!

Se o valor esperado do resíduo do algoritmo KK é n-log(n)

que é assintoticamente menor que o valor

esperado da troca de menor custo em SWk, então KK se apresenta como uma estratégia muito

competitiva contra SA nestas circunstâncias.

Para uma instância de 100 elementos, apesar do menor valor encontrado ser melhor que o de

KK, o valor que o procedimento de SA convergiu (usando SW2) foi radicalmente pior que o

valor de KK (resíduos da ordem de 10-4

e 10-6

, respectivamente).

O valor final de SA foi apenas levemente menor que do obtido após 75% do tempo total de

CPU é possível que a busca tenha ficado estagnada em uma região pouco promissora do

espaço de configurações, logo que a temperatura desceu abaixo de um certo nível

relacionado com o valor esperado da troca de menor custo.

Nos experimentos com 200 e 500 elementos, concluiu-se que a solução final dada por SA

não melhora sensivelmente à medida que se aumenta o tempo de CPU utilizado mas que se

converge para umas solução muito acima do custo da solução de KK.

As melhores soluções tendem ao valor de KK, ao custo de utilizar 10.000 vezes mais tempo

de CPU do que o usado por KK (1,1 segundos). Esse mesmo tempo seria obtido ao se

realizar 100.000 buscas locais (MSLO).

Baixas temperaturas para

explorar a região promissora

Altas temperaturas para

superar a barreira

17

Para 200 elementos, utilizando SW1, SA e MSLO obtêm-se aproximadamente os mesmos

resultados enquanto que com SW2, MSLO supera claramente SA, competindo

razoavelmente bem com KK.

Para 500 elementos, KK é um claríssimo vencedor, já que MSLO, utilizando SW2, já não é

mais competitivo devido a sua complexidade quadrática com o tempo, enquanto que

utilizando SW1, MSLO é claramente superior a SA.

CONCLUSÕES

“Portanto, partição de números, ao menos para os tipos de instâncias aleatórias que foram

consideradas, ilustra as limitações de simulated annealing como técnica geral. Quando o espaço de

soluções é suficientemente escarpado, a vantagem de SA sobre MSLO pode ser perdida

completamente. Entretanto, outras aproximações, não unidas aos conceitos de navegação pelo

espaço de soluções, podem ser capazes de melhorá-lo consideravelmente."

EXISTE UMA MELHOR REPRESENTAÇÃO DO PROBLEMA QUE FAÇA A BUSCA

COM SA MAIS EFICIENTE?

Ruml et al (1994): Acoplamento da heurística KK a uma representação que realiza uma “pré-

partição” dos elementos.

Uma solução candidata ou pré-partição é uma seqüência P=(p1,p2,...,pn) de inteiros pi

{1,2,...,n}. O processo consta de duas etapas:

a) os elementos de A=(a1,a2,...,an), especificados pela seqüência P, são somados entre si,

gerando uma nova seqüência A'=(a1',a2',...,an').

b) a heurística KK é então aplicada à seqüência A'.

Exemplo: Seja A=(6,5,4,4,3) e P=(1,1,3,4,5)

a) A'=(11,0,4,4,3) (ou seja, obriga-se que 6 e 5 pertençam à primeira partição, e não

há números na segunda partição).

b) A aplicação de KK a A' gera dois grupos; em um estão os elementos 6 e 5 e em

outro, os dois 4 e o 3. Portanto, o resíduo final é zero.

A permutação P=(1,2,...,n) corresponde ao algoritmo de KK, portanto, no pior dos casos,

será tão boa quanto KK.

Por outro lado, toda seqüência de sinais S pode ser representada a representação é

completa.

18

IMPLEMENTAÇÃO DE SIMULATED ANNEALING (RUML et al, 1994)

1. Gere cada elemento de P com uma distribuição aleatória uniforme, obtendo uma solução

inicial com o algoritmo KK. Faça iter=1, o número da iteração atual e maxiter, o

número máximo de iterações.

Enquanto iter maxiter:

2. Gere uma nova solução ' da seguinte forma: faça pi=j, onde i=U(1, n), j= U (1, n) e j

pi.

3. Seja custo=custo(') - custo().

4. Se custo 0 então faça ='. Caso contrário faça =' com probabilidade

exp(-custo/T(iter)).

O programa de resfriamento utilizado foi dado por T(iter)=0.01*0.8 iter/300.

EXPERIMENTOS COMPUTACIONAIS

100 execuções do algoritmo descrito anteriormente, cada qual com maxiter=30000 iterações.

Em média, SA encontrou soluções com desvio em relação a KK -1.5%%, enquanto que o

melhor resultado obtido foi inferior a -2.

Talvez outra seleção do programa de resfriamento possa melhorar estes valores (SA obteve

valores similares que os obtidos com a estratégia hill climbing, análoga a SA com T=0).

PROCEDIMENTOS HÍBRIDOS (COMBINAÇÃO COM OUTRAS HEURÍSTICAS)

1. SA GERA UMA SOLUÇÃO INICIAL A SER UTILIZADA POR OUTRA HEURÍSTICA.

Garante-se que pelo menos o melhor ótimo local gerado por SA.

2. OUTRA HEURÍSTICA GERA UMA SOLUÇÃO INICIAL A SER UTILIZADA POR SA.

Problema de k-coloração de grafos (dividir os n vértices de um grafo em k conjuntos

desconexos):

Chams, Hertz e de Werra (1987) utilizam um algoritmo específico de coloração (RLF) até

que restem menos que q conjuntos de vértices a serem coloridos, iniciando nesse momento o

uso de SA.

Parâmetros de SA: To=n1/2

, r=0,93, L(T)=exp(2/T).

Vizinhança da solução: considera soluções factíveis e infactíveis (obtidas ao transpor

vértices de um conjunto a outro), penalizando as infactíveis.

19

SA é uma técnica de fácil compreensão e aplicação.

É grande o número de problemas para os quais é possível aplicar SA (a princípio, qualquer

problema combinatório).

Entretanto, aonde SA é bem sucedida, isso se deve geralmente a altos custos computacionais se

a compararmos com algoritmos específicos SA não deve ser visto como um método aplicável

a qualquer tipo de otimização (Eglese, 1990).

ALGUMAS APLICAÇÕES DE SA EM PEQUISA OPERACIONAL

Redes de comunicações (Osborne, Gillet, 1991; Fetteroff, Anandalingam, 1991; Rose,

1992; Fetteroff, Anandalingam, 1992; Atiqullah, Rao, 1993).

Corte de estoque de polígonos convexos ou formas regulares (Lutfiyya et al, 1992).

Problemas de localização (Kao, Liu, Wang, 1994).

Unidirectional flowpath design (Chiang, Kouvelis, 1994).

Roteamento de veículos (Alfa et al, 1993; Osman, 1993).

Controle de estoque de lugares em aeronaves (Krcmar-Nozic et al, 1993).

Seqüenciamento de eventos esportivos (Wills, Terril, 1994).

Flexible labor scheduling (Brusco, Jacobs, 1993).

Programação em sistemas de manufatura celular (Sridhar, Rajendran, 1993).

Seqüenciamento em uma única máquina (Raghavachari, 1993).

Resource-constrained scheduling (Jeffcoat, Bulfin, 1993).

Short term hydrothermal scheduling (Wong, Wong, 1994).

Empacotamento (Dowsland, 1993).

Projeto de redes de equilíbrio multiobjetivo (Suresh, Sahu,1993).

Formação de células em sistemas de manufatura (Venugopal, Narendran, 1992).

Formação de células em tecnologia de grupos (Chen, Srivastava, 1994).

Multi-level lot-sizing (Kuik, Salomon, 1990).

Determinação do número de kanbans (Chang, Yih, 1994).

Grouping of nuclear fuel cans (Pirlot et al, 1994).

Uma compilação mais recente de aplicações em SA pode ser obtida em Suman e Kumar,

2006.

20

COMENTÁRIOS FINAIS E ALGUMAS CRENÇAS

Entende-se que grande parte das aplicações bem sucedidas de SA se deve à seleção de uma

representação matemática adequada do espaço de soluções associada ao problema de interesse.

Uma boa seleção da representação se deve a vários fatores:

SELEÇÃO ADEQUADA DO CONJUNTO DE MOVIMENTOS (VIZINHANÇA)

Uma boa representação será aquela que tenha entre mínimos locais, soluções cujas diferenças de

custo sejam pequenas. Isto evita a existência de barreiras energéticas a baixas temperaturas, que

seriam então impossíveis de serem superadas devido ao uso da função de aceitação exponencial.

Exemplo: Problema de programação de tarefas em uma máquina com custos de setup

dependentes da seqüência.

Heurística API (adjacent pairwise interchange)

P={1, 2, 3, 4, 5, 6, 7, 8, 9, 10} P={1, 3, 2, 4, 5, 6, 7, 8, 9, 10}

Heurística 2-opt

P={1, 2, 3, 4, 5, 6, 7, 8, 9, 10} P={1, 2, 7, 6, 5, 4, 3, 8, 9, 10}

A EXTENSA MODIFICAÇÃO NA SEQÜÊNCIA DE PROCESSAMENTO DAS TAREFAS QUE DECORRE DA

APLICAÇÃO DO 2-OPT (É UM TSP ASSIMÉTRICO E NÃO EUCLIDIANO) GERA SOLUÇÕES CANDIDATAS

CUJOS CUSTOS SÃO MUITO DIFERENTES DO CUSTO DA SOLUÇÃO ATUAL.

CORRELAÇÕES ENTRE ÓTIMOS LOCAIS

Uma estratégia interessante consiste em aplicar a busca heurística a partir de novas soluções.

As novas soluções geradas são função dos mínimos locais e não das soluções que não tenham sido

previamente otimizadas. Com isso, espera-se explorar as possíveis correlações entre os mínimos

de forma a melhorar a eficiência da busca.

Martin e Otto (1994) - TSP : toma-se uma rota que tinha sido otimizada com movimentos 3-

opt e aplica-se um movimento “4-opt desconectado”.

21

Movimento 4-opt desconectado.

Este tipo de movimento gera uma solução estruturalmente muito diferente do ótimo

local (solução anterior) ao mesmo tempo em que mantém a qualidade da rota.

O algoritmo de Lin-Kernigham não é capaz de gerar tais soluções.

APÓS UM MOVIMENTO 4-OPT DESCONECTADO, A ROTA RESULTANTE VOLTA A SER OTIMIZADA COM

A APLICAÇÃO DE MOVIMENTOS 3-OPT. A ACEITAÇÃO DESTA NOVA ROTA PARA UMA NOVA

ITERAÇÃO ESTÁ BASEADA NO ESQUEMA BÁSICO DE SA DEFINE-SE UM SA DE MAIOR NÍVEL,

ONDE AS TRANSIÇÕES SE FAZEM ENTRE MÍNIMOS LOCAIS DO 3-OPT.

Custo

d

Esquemático da busca com o algoritmo de Martin e Otto

Os resultados são considerados bons para o problema de 532 cidades de TSPLIB,

para o qual foi obtida a solução ótima após algumas centenas de horas de CPU em

uma SUN-3.

Johnson (1990) - TSP: Análise dos efeitos de uma estratégia similar quando se utiliza o movimento

de Lin-Kernighan (mais poderosa que 3-opt a um custo computacional maior). A idéia básica do

algoritmo é a de incorporar uma estratégia de busca local dentro de um procedimento aleatório de

busca.

Solução inicial

Ótimos locais

4-opt desconectado

3-opt

3-opt

22

ALGORITMO DE JOHNSON

1. Gere uma rota aleatória T.

2. Repita durante um número pré-fixado de M iterações:

2.1 Faça um movimento aleatório 4-opt desconectado em T, obtendo T’.

2.2 Aplique a heurística Lin-Kernighan sobre T’, obtendo T’’.

2.3 Se comprimento(T’’) comprimento(T) então faça T=T’’.

3. Retorne T como resultado final.

Para a instância de 532 cidades, o algoritmo de Johnson encontrou 6 vezes a solução

ótima em 20 corridas independentes em 45 minutos (VAX-8550), com M=500.