comparison between heuristic algorithms for graph otimization

24
Universidade de São Paulo Instituto de Ciências Matemáticas de São Carlos Departamento de Ciências de Computação e Estatística Um Estudo das Técnicas Heurísticas Simulated Annealing e Tabu Search para a resolução de Problemas de Otimização Aluno: Ivan Jeukens Orientador: Prof. Dr. Jóse Francisco F. Ribeiro Monografia apresentada ao Departamento de Ciências de Computação e Estatística do ICMSC-USP, como parte dos requisitos para o Exame final da disciplina SCE-191-Projeto de Graduação

Upload: ijeukens

Post on 23-Jan-2017

210 views

Category:

Science


2 download

TRANSCRIPT

Universidade de São PauloInstituto de Ciências Matemáticas de São Carlos

Departamento de Ciências de Computação e Estatística

Um Estudo das Técnicas Heurísticas SimulatedAnnealing e Tabu Search para a resolução de

Problemas de Otimização

Aluno: Ivan JeukensOrientador: Prof. Dr. Jóse Francisco F. Ribeiro

Monografia apresentada ao Departamento de Ciências de Computação eEstatística do ICMSC­USP, como parte dos requisitos para o Exame final dadisciplina SCE­191­Projeto de Graduação

Junho 1998

1 Introdução

1.1 Considerações iniciais

Este trabalho procura estudar, de forma breve, métodos heurísticos para a soluçãode problemas de otimização combinatorial. Dentre inúmeras técnicas foram escolhidasduas: simulated annealing e tabu search. A primeira foi escolhida por ser uma técnica jábem estudada e importante, e a segunda por ser uma técnica nova e apresentar resultadosacadêmicos favoráveis.

Este item descreve primeiramente alguns conceitos relacionados com otimização.Em seguida são apresentados três problemas utilizados neste trabalho como forma detestar e estudar as duas técnicas de otimização.

1.2 Otimização

Um problema de otimização combinatorial é descrito por um par (Ω, fc), onde Ωrepresenta o conjunto de todas as soluções para o problema e fc é uma função definida doconjunto de soluções para o conjunto de números reais não negativos. O número realassociado a cada solução através de fc é denominado de custo. Para o dado problema,procura­se uma solução com o menor custo entre todas as soluções do conjunto Ω. Essasolução é denominada de ótimo global (não necessariamente único). Qualquer ótimoglobal apresenta a propriedade: fc(og) ≤ fc(s), og ∈ Ω e ∀s ∈ Ω.

Devido a complexidade computacional[] associada à vários problemas deotimização, algoritmos exatos, ou seja, que obtêm um ótimo global para a dada instânciado problema, são geralmente praticáveis apenas para instâncias de tamanho limitado, nãoencontrados na prática. Dessa forma, é necessário pesquisar por algoritmos queencontrem uma solução o mais próximo possível do ótimo com um tempo limitado,denominados de heurísticas.

Muitas heurísticas são baseadas no conceito de vizinhança de uma solução. Dadauma solução s, a vizinhança N(s, σ) dessa solução é constituída por todas as soluções quepoder ser encontradas a partir de s, utilizando σ como função de transformação. Adefinição da função σ irá depender de cada problema, e para um mesmo problema,poderemos ter várias funções σ.

Com base no conceito de vizinhança, podemos definir um algoritmo relativamentesimples, que obtêm uma solução com custo menor ou igual ao custo de uma soluçãoinicial dada. Temos o pseudocódigo:

Dada uma solução inicial s0;

s := s0;Repita Escolha uma sn ∈ N(s, σ) tal que fc(sn) < fc(s);

Substitua s por sn;Até que fc(sn) > fc(s) ∀sn ∈ N(s, σ);

Solução Final := s;

O algoritmo acima sempre seleciona uma solução com custo menor que a atual.Isso faz com que o algoritmo seja facilmente “preso” em um ótimo local. Um ótimo localé a solução com o melhor custo em um porção limitada do conjunto de soluções. No casoacima, a porção é a vizinhança da solução atual. Uma forma de melhorar a qualidade dasolução seria utilizar uma vizinhança maior. Entretanto, isso faria com que o algoritmofosse degradando para uma busca por exaustão, tornando­o impraticável. A figura 1.1apresenta uma ilustração típica do algoritmo acima:

Figura 1.1 ­ Otimização Local

Nota­se que caso a qualidade da solução final é determinada principalmente pelasolução inicial. Se o algoritmo tiver a solução A como ponto inicial, o ótimo local B seráencontrado pelo algoritmo. Se o algoritmo tiver a solução D como ponto inicial, umótimo local de melhor qualidade será encontrado. Esse fato leva a propor que o algoritmofosse executado com diferentes soluções iniciais. Entretanto, na prática isso dificilmenteirá melhorar a qualidade da solução obtida, além de aumentar o tempo computacional.

Um ponto fundamental nas heurísticas a serem estudadas é que ambas apresentammétodos para efetuar hill climbing, ou seja, permitir que uma solução com custo pior que

a da atual seja aceita, com o intuito de escapar de ótimos locais. Isso deve ser feito deforma criteriosa, pois do contrário o algoritmo pode acabar “andando em círculos”.

1.3 Exemplos de problemas

1.3.1 Traveling Salesperson

O problema do Traveling Salesperson (caixeiro viajante) constitui, em um dadografo, encontrar uma seqüência de nós de menor custo. Nessa seqüência, cada nó deveaparecer uma única vez. Nesse trabalho, foi utilizado a versão simétrica do problema, ouseja, a distancia de um nó i para um nó j é igual a distancia do nó j para o nó i. Alémdisso, como modo de testar os algoritmos utiliza­se a biblioteca TSPLIB95[], umconjunto de instancias para o problema TSP.

Para o problema TSP, a estrutura de vizinhança foi definida com base natransformação 2­opt proposta por Lin[]. Através dessa transformação, uma nova solução égerada escolhendo­se aleatoriamente duas cidades da solução atual é invertendo­se aseqüência de cidades entre elas. Como a versão utilizada é a simétrica, podemos efetuar avariação do custo da solução e a transformação da solução de forma eficiente. Temosabaixo os respectivos pseudocódigos:

custo_inversão(dist, sol, n1, n2)início se n1 == número_de_cidades ­1 e n2 == 0 então retorna 0;

se n1 == número_de_cidades ­ 1 então n3 := 0; senão n3 := n1 + 1; se n2 == 0 então n4 := número_de_cidades ­ 1;

custo := dist[sol[n4]][sol[n2]] + dist[sol[n1]][sol[n3]] ­ dist[sol[n4]][sol[n1]] ­ dist[sol[n2]][sol[n3]];

retorna custo;fim

inverte(sol, n1, n2)início i := n1; j := n2;

enquanto i j faça aux := sol[i];

sol[i] := sol[j]; sol[j] := aux; i = i ­ 1; j = j + 1; fimfim

Os números n1 e n2 são gerados de forma aleatória com probabilidade uniformeentre 0 e o número de cidades do problema ­ 1. Assume­se que o valor de n1 é maior quen2.

Outra transformação considerada foi a troca de posição entre duas cidades, semefetuar a inversão da seqüência entre as mesmas. Com base nessa transformação, foicriado um algoritmo greedy. Nessa algoritmo, uma cidade é colocada em cada posição daseqüência atual. A melhor posição para a cidade é registrada, e caso o custo da soluçãoobtida com tal troca for melhor que a melhor solução encontrada até o momento, a troca éconcretizada. Isso se repete para todas as cidades uma única vez. Temos o pseudocódigo:

tsp_greedy(sol, dist)início melhor_custo := custo_atual; para i := 0 até número_de_cidades ­ 1 faça melhor_posição := ­1; para j := 0 até número_de_cidades ­ 1 faça se i = j continue; variação := custo_troca(dist, sol, j, i); se custo_atual + variação < melhor_custo então melhor_custo := custo_atual + variação; melhor_posição := j; j += 1; fim se melhor_posicão ≠ ­1 então troca(sol, melhor_posição, i); custo_atual := melhor_custo; i += 1; fimfim

A figura 1.2 mostra a evolução do custo por iteração do algoritmo greedy para oproblema lin105 (105 cidades). Nota­se que, conforme mencionado no item anterior, ocusto é sempre descendente.

Figura 1.2 ­ Lin105 : solução greedy

A tabela 1.1 Lista alguns resultados do mesmo algoritmo:

Instancia Número de Cidades CustoInicial

Custo Final(Ótimo) Tempo(s)1

dantzig42 42 2977.8 1259.4 0.002lin105 105 124483 44230.4 0.015tsp255 255 40287 14089.8 0.082att532 532 512377.4 144217.8 0.55

pcb1173 1173 1405734.2 421106.2 2.96Tabela 1.1 ­ TSP: Otimização Local

A partir dos dados da tabela 1.1 pode­se perceber que o algoritmo greedy éextremamente veloz, mas produz soluções com qualidade insatisfatória. A principalutilidade do algoritmo é que ele é utilizado por uma técnica que diminui o tempocomputacional gasto pela heurística simulated anneling.

1 Todas as medidas desse trabalho foram feitas em um Pentium 200Mhz com 64Mbtyes utilizando osistema operacional Linux K2.0.0 e o compilador C gcc com opção ­O3.

1.3.2 Quadratic Assignment Problem

O Quadratic Assignment Problem(QAP) constitui em minimizar o custo daseguinte função:

f f =∑i=0

N−1

∑j=0

N−1

aij b f i f j

,onde N é o tamanho do problema. As soluções são todas as possíveispermutações φ do intervalo inteiro [0, N ­ 1]. A entrada para o problema são as matrizesA e B, onde a matriz A representa uma matriz de distância entre duas localidades i e j, e amatriz B representa uma matriz de fluxo entre duas localidades i e j.Dessa forma, oproblema QAP consiste em minimizar o produto de distância por fluxo. A versão doproblema utilizada nesse trabalho foi a simétrica, ou seja, a matriz A é simétrica.

A estrutura de vizinhança é determinada com base na transformação que efetua atroca de dois números da permutação. A variação do custo pode então ser determinadaeficientemente como mostrado no pseudocódigo abaixo:

custo_troca(sol, dimensão, A, B, numero1, m, n)início variação_custo := 0; para k := 0 até k < dimensão faça

se k != m e k != n então variação_custo += (A[n][k] ­ A[m][k])*(B[sol[n]][sol[k]] ­ B[sol[m]][sol[k]]); k += 1; fim

variação_custo = ­2 * variação_custo;fim

Similarmente ao problema TSP, um algoritmo greedy foi definido com base naestrutura de vizinhança descrita. Os resultados para algumas instâncias podem ser vistosna tabela 1.2.

Instancia N Custo Inicial Custo Final(Ótimo) Tempo(s)chr15a 15 54663.2 17726(9869) 0.0006chr25a 25 21367.2 7852(3796) 0.003

tai50 50 5911030 5284871.6([3854359, 4941410]2)

0.03

tai100 100 24099888.8 22140872.8([15824355,21125314])

0.23

2 O ótimo esta no intervalo dado.

Tabela 1.2 ­ QAP: Otimização Local

1.3.3 Placement

A entrada para o problema de placement é um hipergrafo onde cada nódeve ser associado a uma posição em um array bidimensional. Existem dois tipos de nós:os internos(clbs) e os periféricos(input e output). Os nós periféricos só podem serassociados à posições contidas no retângulo que circula o array de posições, enquantoque os nós internos só podem ser associados à posições do array. As dimensões do arraysão limitadas pelo número de nós, dado por:

tmp=⌈ numerodeclbs

aspectratio

⌉ ,

tmp 2=⌈numerodeinputs

numerodeoutputs

2∗ioratio∗1aspectratio ⌉ ,

dy=MAX tmp , tmp 2 ,

dx=⌈dy∗aspectratio⌉

,onde io_rat é uma constante que indica quantos nós periférios podem ocupar umaposição periférica e aspect_ratio é uma constante que determina a relação entre os ladosdo array. O valor 1 é utilizado nesse trabalho, ou seja, o array é um quadrado. A figura1.3 ilustra os conceitos descritos até o momento.

Figura 1.3 ­ Um exemplo de instância do problema de placement

Cada aresta do hipergrafo é denominada de net. O custo de uma solução é a somado custo de cada net. O custo de uma net é calculado com base no semiperímetro doretângulo que contêm todos os nós da dada net.

A estrutura de vizinhança é determinada escolhendo­se aleatoriamente um nó euma posição, com base no tipo de nó. Se um nó já estiver nessa posição, uma troca éefetuada. Do contrário apenas o nó escolhido tem sua posição modificada.

Da mesma forma com que foram definidos algoritmos greedy para os doisproblemas anteriores, foi definido para esse problema. Nele, temos que um nó é escolhidoe testado em todas as posições válidas para ele. Caso a variação do custo obtido com amelhor posição para o tal nó for menor que a melhor solução encontrada até o momento,a troca é concretizada. Isso é repetido para todos os nós do grafo. A tabela 1.3 mostra

alguns resultados e a figura 1.4 mostra o resultado obtido após a execução do algoritmogreedy para a mesma instância da figura 1.3.

Instância Nós Int. Nós Perif. N° Nets Custo Ini. CustoFinal.

Tempo(s)

i1 24 41 49 3.6390 2.0961 0.535alu2a 135 16 145 22.9441 15.3015 1.78

C880a 131 86 191 29.756 17.607 2.0cordic 498 25 521 145.52 82.731 7.0

exp5 1064 71 1072 425 231.1 25.6

Figura 1.4 ­ Instância i1 após a otimização local

O problema descrito aqui é um modelo para o problema de placement de circuitosdo tipo reprogramável por memória ram. Nesse trabalho será utilizado como base umaferramenta disponível ao público chamada de Versatile Place and Route(VPR). Nela,uma das técnicas descritas adiante está implementada.

2 Simulated Annealing

Descreve­se nesse item o algoritmo de otimização simulated annealing.Inicialmente será apresentado a origem do algoritmo e suas características básicas. Emseguida, será descrito de forma sucinta as várias decisões a respeito do algoritmoconhecidas como cooling shecudule e uma técnica para diminuir o tempo computacionaldo algoritmo será apresentada. Finalmente, resultados experimentais referentes aosproblemas propostos no item 1 serão relatados.

2.2 Características básicas

O algoritmo simulated annealing foi desenvolvido independentemente porKirkpatrick et al. [] e Cerny[] no início da década de 80. Na sua forma original, ele ébaseado na analogia entre a simulação do esfriamento de sólidos e a resolução deproblemas de otimização combinatorial.

A palavra annealing denota o processo físico onde um sólido é submetido à umbanho térmico que eleva sua temperatura a um valor máximo, onde já no estado líquido,suas moléculas se dispõem randomicamente no material. A partir desse estado, atemperatura do banho térmico é lentamente diminuída. Dessa forma, todas as partículasse organizam em grupos com mínima energia. Entretanto, para que isso ocorra, adiminuição da temperatura deve ser feita de forma apropriada. A cada temperatura, osólido deve poder alcançar o equilíbrio térmico, que é caracterizado pela probabilidadedele estar em um estado de energia e dado pela distribuição de Boltzmann:

P E=e =1

Z T . exp −

ekb T

,onde Z(T) é um fator de normalização, chamado de função de partição, quedepende da temperatura T, e kb é a constante de Boltzmann. Conforme a temperatura édiminuída, a distribuição de Boltzmann se concentra em estados de menor energia, atéque com a temperatura próxima de zero, apenas os estados de energia mínima possuemuma probabilidade diferente de zero de ocorrer.

Com o intuito de simular o comportamento de um sólido evoluindo para oequilíbrio térmico a uma dada temperatura, Metropolis et al. [] propuseram o método deMonte Carlo. Este método gera uma seqüência de estados que eventualmente irão atingiro equilíbrio térmico. Um novo estado é determinado a partir do estado atual, que écaracterizado pelo posicionamento das partículas do sólido, provocando­se de formaaleatória uma pequena perturbação em uma partícula selecionada aleatoriamente. Adiferença entre a energia do novo estado e do estado atual é determinada. Caso essa sejanegativa, o novo estado é aceito, ou seja, ele passa a ser o estado atual. Caso contrário, aprobabilidade do novo estado ser aceito é dado por:

exp −DEkb T

.

Essa regra de aceitação é denominada de critério de Metropolis.

O algoritmo desenvolvido por Metropolis pode ser utilizado na resoluçãode problemas de otimização combinatorial. Nesse caso, os vários estados do sólidorepresentam soluções factíveis do problema de otimização. A temperatura é denominadade parâmetro de controle, a constante de Boltzmann não é utilizada e a energia do sistemaé representada pela função de custo do problema de otimização. A tabela 2.1 lista aanalogia entre os parâmetros do processo físico e do algoritmo de otimização.

Processo Físico Otimização CombinatorialEstados do sólido Soluções factíveisEnergia CustoMudança de estado Solução vizinhaTemperatura Parâmetro de controleEstado de “congelamento” Solução heurística

Tabela 2.1 : Analogia

O algoritmo simulated annealing pode então ser descrito como uma seqüência deexecuções do algoritmo de Metropolis, com o parâmetro de controle sendo diminuindo acada execução. Temos então, genericamente, o seguinte pseudocódigo para o algoritmo:

PROCEDURE SA início Inicializações; Iter := 0; t := temperatura_inicial; repita repita Perturbe(configuração_atual, ∆C); Se o critério de Metropolis for satisfeito então Aceite a nova configuração;

até estar próximo do equilíbrio; titer + 1 := f(titer); iter := iter + 1;

até criterio_de_parada = verdadeiro;fim.

Primeiramente são executadas uma série de inicializações relacionadas aoproblema a ser resolvido, como a determinação de uma solução inicial aleatória, calculodo seu custo, etc. Em seguida determina­se o valor inicial do parâmetro de controle. Oalgoritmo constitui­se basicamente de dois nested loops. O loop interno corresponde aoalgoritmo de Metropolis onde a solução atual é perturbada, a variação do valor da funçãode custo é calculado, e a solução é aceita ou rejeitada com base no critério de Metropolis.O critério de Metropolis é dado por:

∆C < 0 ou rand 0,1 exp −DC

t

,onde ∆C é o custo da solução perturbada subtraído do custo da solução atual erand(0,1) gera um número real no intervalo (0,1). Como já mencionado anteriormente, aconstante de Boltzmann não é utilizada, pois a temperatura é apenas um parâmetro decontrole, sem conotação física. A justificativa para a utilização desse critério. Uma vezque a solução esteja em equilíbrio térmico, o loop interno é encerrado. Então, atemperatura é atualizada e todo o processo é repetido. Isso se dá até que um dado critériode parada seja alcançado.

É importante notar duas características do pseudocódigo acima. Primeiramente,ele descreve o algoritmo de forma genérica, ou seja, várias decisões como qual será atemperatura inicial, como diminui­la, quando terminar os loops, etc, não foramespecificadas. Essas decisões são denominadas de cooling schedule, e serão descritasposteriormente.

Outra característica do algoritmo é o critério de Metropolis que aceita nãosomente soluções que melhorem o custo da solução atual, mas também soluções quepiorem o custo da solução atual. É dessa forma que o algoritmo pretende escapar deótimos locais, tentando assim alcançar soluções com melhor qualidade. A figura 2.1ilustra a execução do algoritmo para a mesma instância do problema TSP mostrado nafigura 1.2.

Figura 2.1 ­ Evolução do custo para o problema Lin105.

Nota­se que o custo da solução é muito variável nas primeiras iterações, devido aofato da temperatura ser relativamente alta e soluções de pior custo serem aceitas commaior probabilidade. Conforme o algoritmo progride, essa probabilidade diminui,fazendo com que a variação do custo seja menor.

2.3 Cooling schedule

A parte fundamental para o sucesso da heurística simulated annealing é adeterminação dos parâmetros conhecidos como cooling schedule. Os parâmetros a seremdeterminados são:

• valor da temperatura inicial;• função de diminuição da temperatura;• número de perturbações a cada temperatura; e• critério de parada.

Existem dois tipos de cooling schedule: estático e dinâmico. O tipo estáticodetermina os parâmetros de forma imutável durante a execução do algoritmo. O tipo

dinâmico especifica os parâmetros com base em dados coletados durante a execução doalgoritmo.

Abaixo temos a descrição dos parâmetros utilizados nesse trabalho para osproblemas TSP e QAP. O problema de placement utiliza os parâmetros determinados em[].

2.3.1 A temperatura inicial

Uma regra geral para determinação da temperatura inicial é utilizar umatemperatura em que praticamente todas as soluções de uma cadeia sejam aceitas. Algunsestudos determinaram que esse valor é maior ou igual ao desvio padrão dos custos sobretodas as soluções do espaço de soluções (σ∞). Como é impraticável determinar esse valorde forma exata, uma boa aproximação é obtida analisando­se 1000 soluçõesaleatoriamente[]. Para ambos os tipos de schedule a temperatura inicial será igual a σ∞.

2.3.2 A função de diminuição da temperatura

O schedule estático, originário em [], utiliza uma função de diminuição datemperatura cujos parâmetros são determinados de forma fixa. O caso mais comum defunção é dado por:

tk = tini . αk

O parâmetro α é geralmente 0.95. Um valor menor para esse parâmetro faz comque a temperatura final seja mais rapidamente alcançada. Consequentemente o tempo deexecução diminui a custo da qualidade da solução. O contrário ira acontecer com umvalor maior para esse parâmetro, uma vez que a diminuição da temperatura é mais lenta

O schedule dinâmico utiliza a seguinte função:

t k=t k−1 .1t k−1 . ln 1d

3 sk−1

−1

,onde σk­1 é o desvio padrão das soluções geradas na temperatura tk­1, e δ é umaconstante com valor positivo e pequeno, geralmente 0.085[]. A derivação da equaçãoacima pode ser encontrada em [].

2.3.3 O número de perturbações

O número de perturbações, ou soluções a serem geradas em uma dadatemperatura, afeta diretamente a qualidade da solução obtida, bem como o tempo deexecução. Ele também está diretamente relacionado com a função de redução da

temperatura, uma vez que o mais rápido a temperatura é diminuída, maior terá que ser onúmero de soluções geradas para que o equilíbrio seja alcançado.

Um valor que foi determinado como sendo apropriado para o número deperturbações é |N(x, σ)|, ou seja, a cardinalidade do conjunto de soluções vizinhas de umadada solução. Ambos os tipos de schedule utilizam essa regra.

2.3.4 Critério de parada

A critério de parada é baseado no fato de que quando a melhora na qualidade dasolução é sucessivamente pequena, o algoritmo deve ser interrompido. O scheduleestático interrompe a execução do algoritmo quando três soluções sucessivas obtiverem omesmo valor. Já o schedule dinâmico utiliza a seguinte expressão:

s f2

t f .m0−m f q

,onde θ é uma constante pequena e positiva, geralmente 0.00001 e µk a média doscustos das soluções geradas na temperatura k. A derivação da equação acima pode serencontrada em [].

2.4 Acelerando o algoritmo

Um dos principais problemas da heurística simulated annealing é seu alto tempode execução, comparado à outras heurísticas. Em [] e [] foi proposta uma técnica eficientepara reduzir o tempo gasto pela heurística. Em linhas gerais, o método constitui eminicialmente executar uma heurística do tipo otimização local para o problema dado. Emseguida, a partir da solução obtida pela heurística, uma temperatura é calculada com baseno custo desse solução. Essa temperatura tenta aproximar a temperatura que o algoritmoannealing estaria com tal solução. Dessa forma, o algoritmo annealing seria executadocom temperatura inicial e solução inicial dadas pela temperatura calculada e pela soluçãoda primeira heurística. Essa técnica e denominada de two­stage simulated annealing(TSSA).

O principal ponto da técnica TSSA é o cálculo da temperatura relacionado àsolução da primeira heurística. Uma temperatura muito alta faz com que muitas soluçõescom custo pior sejam aceitas, e consequentemente, o trabalho feito pela primeiraheurística seja perdido. Uma temperatura muito baixa faz com que o algoritmo nãoconsiga escapar do ótimo local e a qualidade da solução não é comparável a do algoritmoannealing tradicional.

Descreve­se então o método, proposto por Varanelli em [], para efetuar o cálculoda temperatura da solução heurística de forma eficaz e independente do problema sobestudo.

O Método de Varanelli

Vários autores fizeram estudos a respeito do comportamento típico do algoritmoannealing. Todos os estudos concluíram que o custo esperado (Ek) e o desvio padrão (σk)das soluções geradas na temperatura k podem ser dados por:

E k » E¥−s¥

2

t k

,

σk ≈ σ∞,

,onde E∞ é a média do custo de todas as soluções do espaço de soluções e σ∞ é odesvio padrão dessas soluções. Tais equações são válidas para todas as temperaturasexceto aquelas próximas do valor do ótimo global. Esses mesmos estudos concluíram quea distribuição do custo para todas as soluções pode ser aproximada pela distribuiçãonormal.

As equações acima poderiam ser utilizadas para calcular a temperatura da soluçãoda primeira heurística caso esta correspondesse a uma solução em equilíbrio. Entretantoisso é praticamente impossível de ocorrer na prática, uma vez que a heurística inicial teriaque se comportar como o algoritmo annealing. Assume­se então, que a solução obtidapela primeira heurística é a melhor solução encontrada (bsf) até uma dada temperatura(tk).

Em [], Varanelli observou que a melhor forma para estudar o comportamento dassoluções bsf é normalizar o valor da solução bsf em unidades de desvio padrão (σ∞) comrelação ao custo estimado (E∞) de todas as soluções. Temos então as equações:

bsf norm=E¥−bsf

s¥,

tnorm=t k

t0,

onde t0 é a temperatura inicial do algoritmo annealing. A figura 2.2 mostra ocomportamento do custo bsf normalizado com relação ao custo esperado.

Figura 2.2 ­ Custo Esperado vs. Custo Bsf (lin318)

Pode­se observar que a curva do custo bsf está deslocada à direita da curva docusto esperado. Isso mostra que o custo esperado é algumas unidades de desvio padrãomaior que o custo bsf. Para obtermos um valor correto para a temperatura temos entãoque calcular esse deslocamento(γ∞). A partir desse valor, podemos calcular a temperaturada solução por:

tbsf »s¥

2

E¥−bsf −g¥ s¥

.

Em [], Varanelli demonstra que o desvio γ∞ pode ser calculado de formaprobabilística, utilizando­se a seguinte equação:

P[E∞ ­ γ∞σ∞ < X < E∞ + γ∞σ∞] ≈ 1 ­ |número_de_perturbações|­1.

Temos então, um método eficaz para calcular a temperatura da solução daprimeira heurística, independentemente do problema sendo resolvido.

2.5 Resultados experimentais

Abaixo temos alguns resultados experimentas referentes aos três problemaspropostos no item 1 desse texto.

2.5.1 TSP

Instância Custo Final Tempo(s) Acima do Ótimodantzig42 709.8 0.356 0.015%

brazil58 25411 0.973 0.0006%kroA100 21568.2 3.147 0.01%

lin105 14556.2 3.477 0.01%d198 15939.6 16.68 0.01%

tsp225 4012.4 21.06 0.02%rd400 15633.8 92.83 0.02%

Tabela 2.1 ­ Schedule estático sem a técnica TSSA

Instância Custo Final Tempo(s) Acima do Ótimodantzig42 702.8 1.436 0.005%

brazil58 25492.2 4.055 0.003%kroA100 21460.2 18.48 0.008%

lin105 14444.8 21.77 0.004%d198 15891.4 147.8 0.007%

tsp225 3947.4 188.5 0.009%rd400 15552 1004 0.01%

Tabela 2.2 ­ Schedule dinânmico sem a técnica TSSA

Instância Custo Final Tempo(s) Acima do Ótimodantzig42 701.6 0.2772

brazil58 25502.8 0.7450kroA100 21610 2.193

lin105 14546.2 2.400d198 16021.6 11.08

tsp225 3976.8 12.57rd400 15773.6 54.14

Tabela 2.3 ­ Schedule estático com a técnica TSSA

2.5.2 QAP

Instância Custo Final Tempo(s)15086 0.0463394914.8 0.1453393721.6 0.0126136350.6 0.065133

3248142.8 0.4158245115602.8 0.468601

12160787.2 2.76824421578483.2 7.613026

Instância Custo Final Tempo(s)15243.5 0.1404285141.2 0.315190

3721 0.1055986924.8 0.216762

3239803.2 0.5326015094001.6 1.403622

12184668.4 3.78350821615316 9.243220

2.5.3 Placement

Instância Custo Final Tempo(s)

3 Tabu Search

4 Referências Bibliográficas

[] E. H. L. Aarts e P. J. M. van Laarhoven, “A New Polynomial­Time CoolingSchedule”, Proc. IEEE ICCAD­85, Santa Clara, CA, 206­208, 1985.

[] V. Benz e J. Rose,”VPR: A New Packing, Placement and Routing Tool for FPGAResearch”, International Workshop on Field Programmable Logic, 1997.

[] V. Cerny, “Thermodynamical Approach to the Traveling Salesman Problem: AnEfficient Simulation Algorithm”, J. Optimization Th. and Appl., vol. 45, 41­51, 1985.

[] M. R. Garey e D. S. Johnson, “Computers and Intractability: A Guide to the Theory ofNP­Completeness”, W. H. Freeman and Co., San Francisco, CA, 1979.

[] L. K. Grover, “Standard Cell Placement Using Simulated Sintering”, Proc. 24thACM/IEEE DAC, Miami Beach, Fl, 56­59, 1987.

[] S. Kirkpatrick, C. D. Gelatt, e M. P. Vecchi. “Optimization by Simulated Annealing”.Science, vol. 220, 45­54, 1983.

[] S. Lin, “Computer Solutions of the Traveling Salesman Problem”, Bell System Tech.J., vol. 44, 2245­2269, 1965.

[] C. R. Reeves, “Modern Heuristic Techniques for Combinatorial Problems”, JohnWiley & Sons Inc, 1993.

[] G. Reinelt, “TSPLIB 95”, Universität Heidelberg.

[] F. Romeo e A. Sangiovanni­Vicentelli, “A Theoretical Framework for SimulatedAnnealing”, Algorithmica, vol. 6, 302­345, 1991.

[] J. S. Rose, W. M. Snelgrove, e Z. G. Vranesic, “Parallel Standard Cell Placement withQuality Equivalent to Simulated Annealing”, IEEE Trans. CADICS, vol. 7, 387­396,1988.

[] J. M. Varanelli, “On the Acceleration of Simulated Annealing”, PhD Dissertation,University of Virginia, 1996.