• Nenhum resultado encontrado

3.3 Metaheurísticas

3.3.2 Algoritmos de Busca Local

A busca local (LS - Local Search) é um método heurístico que se move de uma solução para outra, num espaço de candidatos, realizando mudanças locais até atingir um ótimo local ou algum outro critério de parada. Entretanto, este movimento somente é possível se uma relação de vizinhança for definida no espaço de busca das soluções. A geração da vizinhança é feita considerando três importantes aspectos: (i) a ordem de visitação dos genes; (ii) o raio de perturbação, que reflete em quanto cada gene deve ser modificado; (iii) a direção da busca, que indica se o valor de raio deve ser adicionado ou subtraído do valor codificado no indivíduo.

Um exemplo de técnica de LS é o Hill Climbing algorithm (HC) (PAPADIMI- TRIOU; STEIGLITZ, 1998; AARTS; LENSTRA, 1997), também conhecido como me- lhoria iterativa ou de descida, que é uma antiga e simples metaheurística. A técnica con- siste em iniciar a partir de uma dada solução inicial e, a cada iteração, o método troca a solução atual pela melhor solução vizinha encontrada que melhore o valor da função objetivo. O processo de busca se encerra quando todas as soluções vizinhas são piores do que a solução corrente, indicando que um ótimo local foi encontrado.

Alguns problemas têm representações com grandes vizinhanças, então para acele- rar a busca é necessário que se adote uma estratégia para restringir o número de soluções candidatas para um subconjunto do espaço de busca. O algoritmo HC é um tipo de busca local monótona pois permite somente modificações que melhorem o valor da função ob- jetivo. Assim, existem variações do método de acordo com a ordem na qual as soluções vizinhas são geradas (determinística ou estocástica), e a estratégia de seleção da solução. A seguir são descritas três variantes do HC, que também são conhecidas como regras de pivoteamento para selecionar o melhor vizinho:

• Best improvement (BI): é uma estratégia que avalia a vizinhança inteira de forma completa e determinística. Assim, a exploração das soluções candidatas é exaus- tiva porque explora todos os possíveis movimentos a partir da solução atual. Esta abordagem pode consumir bastante tempo computacional para grandes vizinhan- ças, mas garante a seleção do melhor candidato a cada iteração.

• First Improvement (FI): esta estratégia escolhe o primeiro candidato que tenha me- lhor fitness do que a solução atual. Portanto, um candidato melhor avaliado é ime- diatamente selecionado para substituir a melhor solução conhecida. A avaliação da vizinhança é realizada de maneira determinística seguindo uma ordem pré-definida

para geração das soluções, isto é, a ordem de modificação dos genes é sorteada aleatoriamente no início do processo. Assim, apesar do método visitar parte dos candidatos, é uma abordagem mais rápida do que o BI. Somente no pior caso é que uma geração completa da vizinhança é feita, o que consequentemente significa que nenhum candidato melhor existe.

• Stochastic Hill Descent (SHD): esta variante é quase idêntica ao método FI. A es- tratégia de seleção da melhor solução é a mesma, a diferença está na ordem de geração dos vizinhos, que é realizada de forma aleatória a cada iteração do pro- cesso de busca. Assim, a estratégia evita avaliar os candidatos sempre da mesma forma, garantindo que todas as regiões da vizinhança da solução tenham condições iguais de serem exploradas.

Outro algoritmo que comumente é utilizado como busca local é o Simulated An- nealing(SA) (KIRKPATRICK; GELATT; VECCHI, 1983; ˇCERNÝ, 1985), um método estocástico que permite, em algumas condições, aceitar soluções piores do que a atual e se fundamenta numa analogia com a termodinâmica (KIRKPATRICK; GELATT; VEC- CHI, 1983; ˇCERNÝ, 1985). A técnica é uma metáfora do processo térmico conhecido como annealing ou recozimento, utilizado em metalurgia para obtenção de estados de baixa energia em sólidos. Assim, quando o metal é aquecido em altas temperaturas, seus átomos fazem movimentos desordenados de grandes amplitudes. À medida que o metal é resfriado progressivamente, os átomos reduzem seus movimentos e tendem a se estabili- zar em torno de uma região de mínima energia. Esse processo permite aos metalúrgicos modelar e corrigir defeitos dos materiais.

Analogamente, no SA a solução corrente é substituída por outra vizinha de acordo com uma função objetivo e uma variável T , de temperatura. Quanto maior for o valor de T mais aleatória será a geração da solução candidata, e à medida que for diminuindo, o algoritmo tende a convergir para um ótimo local. A ideia é evitar ficar preso em sub- ótimos locais e ter uma convergência mais lenta do processo de busca. A partir de uma dada solução, o SA gera uma solução vizinha aleatória a cada iteração do processo. Esse candidato R é sempre aceito se for melhor avaliado pela função objetivo do que a solução atual S. Caso contrário, se o fitness for pior, existe uma regra que permite aceitar a solução de acordo com uma probabilidade, calculada conforme a Equação 3.3 mostra:

∆E = Qualidade(R)−Qualidade(S)T P (T, R, S) = e∆E

onde T >= 0 e ∆E representam a diferença de qualidade entre as soluções R e S. De acordo com a temperatura atual e a degradação da função objetivo, a solução candidata tem uma probabilidade de ser aceita ou não. Se R apresentar um valor de fitness muito diferente do valor apresentado por S, a fração será maior e então a probabilidade de aceitação é quase nula. Se R for próximo de S, então a probabilidade é quase igual a 1, aumentando as chances de R ser selecionada. O fator de temperatura também tem um importante papel, se T for próximo de 0, então a probabilidade é também quase 0. Por outro lado, se T for um valor alto, a probabilidade de aceitação será próxima de 1. Assim, a ideia é que no início o método funcione como uma caminhada aleatória no espaço de busca, aceitando soluções independentemente de quão boas são. Quando T decresce, a probabilidade também diminui e então o processo age de maneira semelhante ao algoritmo HC.

Documentos relacionados