• Nenhum resultado encontrado

Este capítulo mostrou uma parte da vasta literatura existente sobre os problemas de localização de facilidades no âmbito da Pesquisa Operacional. Como pode ser lido, a quantidade de características trazidas de aplicações reais ao problema gerou um número de variantes imenso de modelos. Tão grande quanto é a quantidade de ferramentas dispo- níveis para resolvê-los. Se por um lado é um desafio encontrar o método de solução ideal para cada característica incorporada ao problema, por outro isto traz diversas oportunida- des de trabalhos futuros a serem realizados sobre o tema.

Modelos que tratam de dimensionamento das capacidades das facilidades num ho- rizonte de planejamento ainda são incomuns. Na série de estudos de Jena, Cordeau e Gendron [Jena et al. 2014, Jena et al. 2015b, Jena et al. 2015a, Jena et al. 2016], eles bus- caram juntar o que já fora trabalhado separadamente sobre estes problemas e unificaram num novo modelo até então inexplorado. O modelo resultante, apresentado em Jena et al. (2015a) como DFLPG, é resolvido apenas usando um método exato. Porém, as pesquisas mostram repetidamente que o desenvolvimento de métodos especializados para proble- mas específicos pode ser mais eficaz que resolvê-los com métodos generalistas. Desta forma, resolvemos experimentar uma abordagem heurística para resolver o DFLPG apre- sentado usando um Algoritmo Genético como metaheurística e um VND iterado com vizinhanças adaptadas ao problema dentre as mostradas neste capítulo. O AG+VNDi será descrito no próximo capítulo deste trabalho.

Capítulo 3

Descrição do algoritmo

No capítulo 2 foi apresentado o problema de localização de facilidades que será abor- dado neste trabalho. O DFLPG possibilita a representação de estruturas de custo mais complexas e consiste em localizar facilidades, dimensionar suas capacidades e alocar as facilidades aos clientes num contexto dinâmico visando minimizar os custos da rede. Apesar destas características não serem novas na literatura dos FLPs, o problema que en- globa todas simultâneamente é relativamente novo. Entretanto, o DFLPG mantém muitas características de seus subproblemas de modo que seja razoável inferir que métodos de resolução eficazes destes subproblemas também possam ser para o DFLPG.

Como o DFLPG é uma generalização de outros problemas combinatórios difíceis de serem resolvidos, uma abordagem exata pode não ser a mais adequada em situações como quando a instância for grande demais. Por mais eficientes que sejam a técnica e o resol- vedor utilizados para resolver o problema, o tempo computacional requerido seria dema- siadamente alto, o que muitas vezes decisores não tem a sua disposição. Uma alternativa a estes casos é resolver o problema utilizando heurísticas que sejam capazes de encontrar boas soluções através de métodos computacionalmente menos complexos.

A escolha do método heurístico mais adequado deve levar em conta as características do problema. Para um problema generalizado como o DFLPG, a exploração de diferentes espaços de busca possibilita uma flexibilidade maior para resolver as diversas aplicações que possam ser tratadas com este modelo. Para reforçar ainda mais o poder destas buscas podemos recorrer a metaheurísticas que possibilitem a exploração de soluções em dife- rentes espaços, diminuindo as chances de que o método fique preso em soluções ótimas locais.

A metaheurística Algoritmo Genético é uma das mais aplicadas em problemas de localização e possui um histórico de sucesso em muitas de suas variantes. Mostraremos a seguir a estrutura básica deste método e, em seguida, uma adaptação híbrida com o VND (AG+VNDi) para resolver o DFLPG.

3.1

Visão geral sobre o Algoritmo Genético

O conceito de Algoritmo Genético foi introduzido por Holland (1975) e posterior- mente descrito por Goldberg & Holland (1988). AGs são técnicas de busca estocásticas baseadas no mecanismo de seleção natural e evolução. Nelas, indivíduos representando

26 CAPÍTULO 3. DESCRIÇÃO DO ALGORITMO soluções do problema formam uma população. A aptidão de cada indivíduo é avaliada de acordo com a qualidade da solução, geralmente medida pelo valor da sua função objetivo. Os indivíduos evoluem através de iterações sucessivas chamadas de gerações. Em cada geração os indivíduos na população geram descendentes. Um descendente (filho) é um novo indivíduo formado a partir do cruzamento entre dois indivíduos (pais) selecionados por um operador de seleção na população. Um filho deve conter características, ou genes, herdadas dos pais. Além disto, um filho pode ter seus genes modificados através de um operador de mutação. Uma nova geração é formada selecionando através de um operador de aceitação indivíduos entre os da geração atual e os formados pelo operador de cruza- mento. Geralmente, indivíduos mais adaptados possuem maior probabilidade de serem selecionados. Após sucessivas gerações, as soluções convergem para resultados melhores. O algoritmo termina quando algum critério de parada é atendido, como uma quantidade máxima de gerações ou de tempo de busca. O Algoritmo 2 mostra o passo-a-passo de um AG básico.

Algoritmo 2 Estrutura básica do AG

1:

P

0- Indivíduos gerados através de uma heurística construtiva;

2: Avaliação- Calcula a aptidão dos indivíduos em

P

0;

3: while Critério de parada não for atendido do

4: Seleção- Seleciona pais na população;

5: Cruzamento- Gera filhos a partir dos pais selecionados em

P

g;

6: if Critério para mutação for aceito then

7: Mutação- Modifica filhos gerados;

8: end if

9: Avaliação- Calcula a aptidão dos filhos gerados;

10: Aceitação- Seleciona indivíduos que irão compor a geração seguinte

P

g+1;

11: g= g + 1;

12: end while

13: return Melhor indivíduo encontrado.

O AG foi utilizado como base para desenvolver o AG+VNDi usado na resolução do DFLPG. A seguir serão descritas as estruturas que compõem o algoritmo.