• Nenhum resultado encontrado

Algoritmos Metaheurísticos na Solução do PCV e suas

2 O CONTEXTO DA PESQUISA

2.5 Algoritmos Metaheurísticos na Solução do PCV e suas

expressa pela quantidade de operações que são necessárias executar para que uma dada instância do problema seja solucionada pelo algoritmo. Uma das formas de se resolver um PCV seria simplesmente enumerar todas as soluções possíveis e encontrar aquela de menor custo. Entretanto esta idéia é ingênua, uma vez que, para um caso geral sobre um grafo completo, essa estratégia poderia requerer o exame de até (n 1)! possíveis rotas.

A teoria NP completude demonstra que o PCV é NP difícil (GAREY & JOHNSON, 1979), sendo um dos problemas de otimização combinatória mais intensamente pesquisados.

Os problemas de otimização combinatória têm sido utilizados como modelos para diversas situações reais. Grande parte destes problemas pertence à classe dos problemas NP árduos, o que significa que dificilmente serão apresentados algoritmos polinomiais que os solucionem.

Até o presente nenhum algoritmo eficiente (de complexidade polinomial) foi desenvolvido para a solução de qualquer um dos problemas pertencentes à classe NP difíceis. Como não se demonstrou até hoje que P=NP, o caminho de solução dos problemas NP difíceis de grande porte tem sido a abordagem heurística (aproximativa, não determinística).

Goldbarg e Luna (2005) definem heurística (do grego heuriskein = descobrir, achar) como uma técnica que busca alcançar uma boa solução utilizando um esforço computacional considerado aceitável, sendo capaz de garantir a viabilidade ou a otimalidade da solução encontrada ou, ainda, em muitos casos, ambas, especialmente nas ocasiões em que essa busca parte de uma solução viável próxima do ótimo.

De acordo com a ANSI/IEEE STD 100 1984, heurística computacional trata de métodos ou algoritmos exploratórios para solução de problemas. As soluções são buscadas por aproximações sucessivas, avaliando se os progressos alcançados, até que o problema seja resolvido.

Existem diversas abordagens para a construção de algoritmos heurísticos. Uma das primeiras técnicas heurísticas propostas foi a programação gulosas ou míope. Nessa técnica a decisão sobre a variável é tomada em cada etapa do cálculo independentemente das demais etapas de cálculo. O valor atribuído à variável é aquele que otimiza a função objetivo, independentemente da consideração do impacto dessa decisão sobre as demais variáveis e outras etapas de cálculo. Com o passar dos anos, técnicas mais gerais, conhecidas como metaheurísticas foram apresentadas. Estas técnicas, por meio de adaptações, podem ser usadas para a solução de diferentes problemas (MICHALEWICZ & FOGEL, 2000).

De acordo com Knowles (2002), quando não se tem uma visão consolidada de como um determinado problema pode ser resolvido ou quando as estratégias disponíveis para a solução são complicadas de implementar, é melhor utilizar heurísticas mais gerais, denominadas metaheurísticas.

Várias abordagens metaheurísticas têm sido utilizadas na solução do PCV proporcionando resultados aproximados de boa qualidade, entre elas pode se citar:

1. GRASP (RESENDE, 1998)

2. VNS (MLADNOVIC & HANSEN, 1997)

3. Busca Tabu (GLOVER, 1989ab; GLOVER & LAGUNA, 1997) 4. Simulated Annealing (KIRKPATRICK et al., 1983)

5. Colônia de Formigas (DORIGO et al., 1992)

6. Algoritmos Genéticos (HOLLAND, 1975; GOLDBERG, 1985) 7. Algoritmos Meméticos (MOSCATO, 1989)

8. Nuvem de Partículas – PSO (KENNEDY & EBERHART, 1995) 9. Transgenética (GOLDBARG & GOLDBARG, 2009)

A Busca Tabu (Tabu Search) é uma metaheurística de busca local que permite aceitar soluções sem melhoria para fugir de ótimos locais. O método guia a busca local utilizando uma estrutura de memória com aceitação de movimentos que não são de melhora. A Busca Tabu pode ser baseada em busca local ou busca populacional e as idéias básicas de sua forma atual foram desenvolvidas em 1986 por Glover (1989a; 1989b) e aperfeiçoadas em 1997 por Glover & Laguna (1997).

Outro exemplo de abordagem heurística aplicada ao PCV é o Simulated Annealing que foi desenvolvido por Kirkpatrick et al. (1983) com base no trabalho de Metropolis et al. (1953). O algoritmo computacional simula o processo de resfriamento de materiais em um banho térmico, onde inicialmente são submetidos a altas temperaturas e de modo gradual a temperatura é reduzida até atingir o equilíbrio térmico. Nesse processo os materiais adquirem diferentes propriedades físicas, na medida em que as moléculas do material possuem mais ou menos tempo para se auto organizarem dentro de um dado nível de energia do material. No modelo computacional, a alta temperatura está associada a um alto nível de diversificação da busca, o que permite a exploração de um grande número de diferentes soluções do problema. À medida que a temperatura baixa, a aceitação de soluções com valores que piorem a solução corrente vai se reduzindo, aumentando a intensificação da busca e direcionando o processo para mínimos locais.

Outra classe de abordagem heurística aplicada ao PCV são os chamados Algoritmos Evolucionários. Este termo engloba várias metodologias baseadas no paradigma da evolução natural, ou seja, é uma família (super classe) de solucionadores de problemas estocásticos baseada em princípios

pautados na evolução biológica (EIBEN & RUDOLPH, 1998), entre os quais se encontram os Algoritmos Genéticos (HOLLAND, 1975; GOLDBERG, 1985), os Algoritmos Meméticos (MOSCATO, 1989) e os Algoritmos Transgenéticos (GOLDBARG & GOLDBARG, 2009).

Os Algoritmos Genéticos (AG) foram apresentados por Holland em 1975 e aperfeiçoados por Goldberg em 1989 e são baseados na teoria da seleção natural de Charles Darwin. Segundo esta teoria os seres vivos mais adaptados ao meio ambiente possuem maior chance de sobreviver que os menos adaptados. Sobrevivendo em maior número, os mais adaptados são então capazes de se reproduzir em maior quantidade e espalhar seu código genético com mais eficiência. Ao longo do tempo somente as características genéticas dos mais bem adaptados tenderiam a predominar no meio ambiente. Em termos computacionais, Tomassini (1996) explica que cada indivíduo da espécie é associado a uma solução do problema. A população dos indivíduos pode ser gerada através de um procedimento aleatório ou heurístico. Busca se, de modo geral, que as soluções sejam viáveis para o problema. O valor de adequação do indivíduo é então associado ao valor da solução. Nos passos do algoritmo evolucionário, muitas vezes denominados de gerações, os indivíduos são avaliados conforme sua adequação. Aqueles com maior adequação possuem maior chance de se reproduzir e são selecionados para passarem por um processo de reprodução produzindo novas soluções. O processo de reprodução é realizado computacionalmente através de operadores. Os mais conhecidos são os denominados de recombinação e a mutação.

As operações de recombinações entre dois indivíduos fazem com que o processo de evolução explore as regiões do espaço de busca relativamente próximas aos indivíduos misturados. As operações de mutação são utilizadas para diversificar as regiões de busca de forma a prevenir convergências precoces para um ótimo local.

Exaustivas experiências computacionais demonstram que os algoritmos genéticos clássicos podem encontrar severas dificuldades para convergir para boas soluções em alguns espaços de busca complexos. Em virtude do fato anterior a literatura registra diferentes classes de algoritmos genéticos híbridos. Dentre os mais promissores destacam se os que mesclam as técnicas evolucionárias clássicas como técnicas de busca local e outros procedimentos heurísticos de intensificação (KRASNOGOR & SMITH, 2000). Em outras ocasiões os AGs também são reforçados com técnicas de criação da população inicial, por operadores específicos e diferentes estratégias de seleção e renovação (FREISLEBEN & MERZ, 1996).

A combinação dos algoritmos genéticos com estratégias de busca local foi inicialmente chamada de Algoritmo Memético por Moscato (1989). O termo se deve ao uso de memes que simboliza uma informação cultural cuja

transmissão e reprodução se dá de pai para filho através do paradigma Lamarckiano. Nesse paradigma uma informação cultural que resulte em uma melhoria na adequação do indivíduo é imediatamente herdada por seu filho. Na metáfora computacional dos Algoritmos Meméticos a dimensão cultural é representada por procedimentos de busca local nos indivíduos, ou também denominados cromossomos (RADCLIFF & SURRY, 1994).

Na analogia computacional, a transmissão cultural corresponde ao fluxo de informação num processo evolucionário e os genes correspondem a partes de um cromossomo que servem como uma unidade viável de seleção natural. No caso dos algoritmos meméticos, os memes referem se a estratégias para melhoria dos indivíduos, tais como, refinamento local, perturbação ou métodos construtivos.