• Nenhum resultado encontrado

ciados aos parâmetros das capacidades são chamados de cortes de cobertura (cover cuts). Por ser uma generalização de diversos modelos de FLP, o GMC pode ser adaptado a outros problemas menos complexos da literatura como os de Van Roy & Erlenkotter (1982), Shulman (1991), Sridharan (1995), Chardaire et al. (1996) e Correia & Captivo (2003).

2.3

Métodos de solução dos FLPs

Até então este capítulo focou em como algumas características dos problemas de lo- calização de facilidades podem ser representadas na Pesquisa Operacional até chegar no problema que foi escolhido na literatura a ser abordado. Nesta parte do trabalho serão mostrados diferentes métodos bem sucedidos de como resolver FLPs.

De maneira geral, métodos de solução de problemas de otimização podem ser dividi- dos em duas classes, a dos métodos exatos e das heurísticas. Métodos exatos são usados para encontrar a solução ótima do problema, i.e. o ponto extremo (mínimo ou máximo) da função objetivo do modelo que seja viável em relação a todas as restrições. Na otimiza- ção combinatória existem problemas que resolvê-los até a otimalidade é inviável, seja por questões de tempo disponível ou de memória da máquina. Mesmo nestes casos, métodos exatos são capazes de prover limitantes do valor da solução ótima. Com isto, é possível ter uma ideia aproximada do valor extremo da função.

Uma das práticas mais comuns para resolver um FLP é modelar matematicamente o problema como um MIP, e, então, recorrer a softwares de otimização genéricos para resolvê-los. Um resolvedor comercial vastamente utilizado na literatura é o IBM CPLEX, como utilizado em Jena et al. (2015a) para resolver o DFLPG. Resolvedores comerciais como o CPLEX usam métodos exatos bem elaborados para resolver os mais variados tipos de problemas de otimização.

Métodos exatos são excelentes ferramentas para resolver modelos de menor escala. Porém, a necessidade de resolver problemas reais cada vez maiores e mais complexos faz com que nem sempre seja possível resolvê-los com esta abordagem. Nestes casos, decisores e pesquisadores recorrem aos métodos heurísticos. O objetivo das heurísticas é encontrar rapidamente soluções de qualidade, sendo especialmente atrativas na resolução de problemas complexos. Por serem rápidas, as heurísticas também são muito utilizadas para simular cenários quando os dados são incertos ou imprecisos no problema.

No âmbito das pesquisas dos FLPs, houve grandes avanços tanto no sentido de melho- rar o desempenho dos resolvedores tradicionais quando usados nesta classe de problemas, quanto no desenvolvimento de métodos heurísticos para cada configuração específica do problema. As próximas subseções serão dedicadas a apresentar algumas classes de méto- dos heurísticos comumente utilizados para resolver problemas de localização na literatura. O leitor interessado em conhecer mais sobre os métodos exatos pode encontrar referências em Arabani & Farahani (2012) e Melo et al. (2009).

20 CAPÍTULO 2. REVISÃO DA LITERATURA

2.3.1

Métodos heurísticos

Um método heurístico deve ser capaz de prover limitantes viáveis ao problema em um tempo razoável. Alguns métodos exploram a estrutura do modelo matemático para obter limitantes da solução ótima, transformando o problema original em subproblemas menores. Na Decomposição de Benders [Wentges 1996], os limitantes são encontrados resolvendo duais e relaxações do problema, técnicas bastante utilizadas na PO. Também é possível encontrar limitantes usando Relaxações Lagrangeanas. Jena et al. (2014) utili- zam este método para resolver uma variante do DFLPG onde múltiplas mercadorias são consideradas. Alguns estudos [Lee & Dong 2008] combinam os dois métodos para criar uma decomposição cruzada.

Uma outra abordagem heurística comum em FLPs é o uso de algoritmos aproxima- tivos. Neles, o objetivo é encontrar métodos capazes de prover soluções que, no pior caso, estejam à menor distância possível da solução ótima. A aproximação da otimali- dade é medida através de um fator constante. Um algoritmo é dito ser de aproximação-ρ se no pior caso é provado que o custo da solução aproximativa f (x) está no intervalo

f(x∗) ≤ f (x) ≤ ρ f (x∗), sendo f (x∗) o custo da solução ótima.

Shmoys et al. (1997) desenvolvem um algoritmo aproximativo para o UFLP baseado na relaxação linear das variáveis binárias y do problema original. Como problemas de programação linear são muito mais rápidos de serem resolvidos que MIPs, estas rela- xações provêem resultados ótimos rápidamente. Entretanto, estes resultados podem ser inviáveis no problema original, servindo apenas como limitantes inferiores (em proble- mas de minimização) para o custo ótimo do problema. Para transformar a solução do problema relaxado em uma solução viável, o método arredonda iterativamente as variá- veis de localização fracionadas aumentando o custo por um fator constante relativamente pequeno a cada iteração.

É importante observar que, no UFLP, se o conjunto de facilidades abertas é conhecido, para encontrar o conjunto ótimo das alocações basta atribuir cada cliente à facilidade aberta mais próxima, resolvendo o problema em tempo linear em relação à quantidade de clientes. No CFLP esta abordagem não é possível. Entretanto, se o problema permitir alocações múltiplas de facilidades a clientes, a parte das alocações é uma instância do problema de Fluxo a Custo Mínimo (FCM).

O objetivo do FCM é encontrar a maneira mais barata de se transportar o fluxo de mercadorias através de uma rede de fluxo. A rede é definida como um grafo direcionado composto pelos nós representando as facilidades abertas e os clientes com demandas. Os arcos direcionados conectam as facilidades aos clientes. Cada arco possui como atributos as quantidades mínima e máxima de mercadorias que podem ser transportadas entre os nós ao qual eles estão ligados, e o custo de transporte unitário. Uma vez montado o grafo, o problema é resolvido utilizando algoritmos combinatórios. Dentre alguns dos algorit- mos utilizados para resolver o FCM estão o Ciclo de Cancelamento, o Custo de Escala e a Rede Simplex. A estrutura destes e de outros algoritmos de FCM são encontrados em Ahuja et al. (1993). Uma observação importante sobre os algoritmos de FCM é que eles são polinomiais, ou seja, encontram a solução ótima do problema em tempo polinomial em relação ao tamanho da rede.

2.3. MÉTODOS DE SOLUÇÃO DOS FLPS 21 moys et al. (1997) também pode ser aplicado ao CFLP. Eles mostram que se a facili- dade parcialmente aberta for escolhida aleatoriamente a cada iteração, a heurística de- senvolvida leva a um algoritmo aproximativo com fator 3,16 no UFLP e 5,69 no CFLP com múltiplas alocações. An et al. (2017) mostram o atual melhor método baseado em relaxação-arredondamento e nas teorias de fluxos de múltiplas mercadorias para o CFLP. Para o UFLP, Guha & Khuller (1999) apresentam uma heurística gulosa que ao ser aplicada com o método de Shmoys et al. (1997) leva a uma solução de custo no máximo 2,41 vezes o ótimo. A heurística consiste em adicionar facilidades não utilizadas a solução original quando sua adição diminuir os custos de alocação em um valor maior que o seu custo de construção. Eles também provam que é impossível existir um algoritmo aproximativo em tempo polinomial com fator menor que 1,463, exceto se P = NP. Até onde sabemos, o melhor fator aproximativo encontrado para o UFLP é de 1,5 [Byrka & Aardal 2010]. Mais informações sobre algoritmos aproximativos e problemas abertos na área podem ser encontradas no livro de Williamson & Shmoys (2011).

Uma outra classe de heurísticas em destaque para resolver FLPs é a das heurísticas de busca local utilizadas para realizar buscas em vizinhança, como apresentadas a seguir.

2.3.2

Busca em vizinhança

Uma busca local consiste em encontrar soluções aprimorantes contidas na vizinhança de uma solução existente. Antes de apresentar heurísticas de busca em vizinhança efetivas que resolveram FLPs na literatura serão apresentadas algumas definições relacionadas às buscas locais.

Seja um problema de otimização combinatória com uma instância S e o conjunto de soluções viáveis

X

para esta instância,

X

(S) é a representação da conexão entre a instância e o conjunto de soluções e f :

X

→ R é a função que obtém o custo da solução. Assumindo que

X

é um conjunto finito, mas extremamente grande, num problema de otimização de minimização o objetivo é encontrar uma solução x∗de modo que f (x∗) ≤ f (x), ∀x ∈

X

.

Uma vizinhança de uma solução x ∈

X

é representada por N(x) ⊂ X , em que N é uma função que mapeia uma solução a um conjunto de soluções. Uma solução x é dita ser um ótimo local em uma vizinhança N se f (x) ≤ f (x0) ∀ x0 ∈ N(x). Uma heurística de busca em vizinhança parte de uma solução inicial x e calcula x0= argminx00∈N(x){ f (x00)},

isto é, encontra a solução mais barata x0 na vizinhança de x. Se f (x0) < f (x) então o algoritmo atualiza x = x0. A vizinhança da nova solução x é varrida em busca de uma nova solução aprimorante repetidamente até não ser mais possível encontrar uma solução melhor na vizinhança. A solução x final encontrada é o ótimo local. O algoritmo des- crito utiliza a estratégia de melhor aprimorante (best descent) pois a cada iteração toma a direção da melhor solução existente, ou seja, o ótimo local, na vizinhança varrida. Uma outra abordagem nas buscas locais seria mover a solução para a primeira solução aprimo- rante encontrada na varredura da vizinhança. Este método é conhecido como método do primeiro aprimorante (first descent) e possui como vantagem sobre o melhor aprimorante movimentar mais rapidamente uma solução para outra melhor na busca.

No contexto dos FLPs, algumas heurísticas de busca local foram desenvolvidas e tes- tadas nos problemas clássicos e posteriormente adaptadas às variantes. As mais estudadas

22 CAPÍTULO 2. REVISÃO DA LITERATURA foram as que definiram as vizinhanças de uma solução das seguintes formas:

• Abrir facilidades; • Fechar facilidades;

• Substituir facilidades abertas por facilidades fechadas.

As primeiras heurísticas de busca local com estas vizinhanças desenvolvidas para um FLP datam de mais de 50 anos atrás [Kuehn & Hamburger 1963]. Recentemente Koru- polu et al. (2000) adaptaram estas heurísticas para uma série de variações do problema das p-medianas, UFLP e CFLP. Apesar destas técnicas obterem fatores aproximativos ra- zoáveis, a ordem de complexidade da execução destes métodos era demasiadamente alto, mesmo sendo polinomial. Outros estudos [Chudak & Williamson 1999, Arya et al. 2004] apresentaram melhorias ao método e as análises de Korupolu et al. (2000), obtendo fa- tores aproximativos melhores que os originais. Charikar & Guha (1999) combinam as buscas locais com algoritmos primal-dual para desenvolver um método de O(n3), melhor que o de Korupolu et al. (2000) de O(n6 log n/ε), sendo ε > 0 uma constante qualquer, para o UFLP.

Estes estudos tratam apenas de substituição de no máximo uma facilidade fechada por uma aberta. Mahdian & Pál (2003) e Zhang et al. (2005) são alguns dos trabalhos que con- sideraram a substituição de mais de uma facilidade simultaneamente obtendo resultados com boa aproximação, porém com alta ordem de complexidade.

Expandir demasiadamente a vizinhança de uma busca levará a resultados melhores, porém a um custo computacional que pode tornar impraticável o seu uso. Mesmo uma troca simples entre m facilidades, requereria um algoritmo de, no mínimo, O(nm) tornando o método custoso demais para resolver instâncias suficientemente grandes de problemas mais complexos, como os problemas dinâmicos. Para lidar com instâncias assim é mais prudente aplicar diversas buscas locais em vizinhanças menores sequencialmente. Feliz- mente, ótimos locais em uma vizinhança não necessariamente são ótimos locais em outra [Hansen & Mladenovi´c 2001], de modo que o uso de várias heurísticas de busca local, mesmo que com vizinhanças simples, podem levar a soluções de alta qualidade.

A Descida em Vizinhança Variável (VND) é um procedimento de exploração de várias vizinhanças diferentes através do uso de diferentes algoritmos de busca local. A sua estrutura básica é mostrada no Algoritmo 1.

A ordem das vizinhanças são definidas previamente, o que significa que o VND é um processo de busca local determinístico. As linhas 5-7 mostram a descida da solução dentro de uma mesma vizinhança conhecida como busca em exaustão. O método de descida utilizado pode ser tanto o do melhor aprimorante quanto o do primeiro aprimorante. Se houve pelo menos uma mudança de solução na vizinhança após a exploração exaustiva, o VND retorna a busca na primeira vizinhança desta nova solução (linha 9). Caso contrário, segue para a vizinhança seguinte (linha 11). A abordagem apresentada foi a escolhida para ser utilizada neste trabalho. Entretanto, esta não é a única e nem necessariamente a mais eficiente para outras variantes do FLP.

Métodos heurísticos tem se mostrado poderosos pela eficiência e simplicidade de im- plementação. Porém, a maioria das heurísticas mais clássicas são determinísticas, sendo incapazes de gerar diferentes soluções ou diferentes ótimos locais. O desenvolvimento da

2.3. MÉTODOS DE SOLUÇÃO DOS FLPS 23 Algoritmo 1 Estrutura básica do VND

1: Solução inicial: x; 2: Conjunto de vizinhanças

N

n(x), n = {1, . . . , N}; 3: for n = 1 to N do 4: xi← x; 5: while Houver um x0∈

N

n(x)| f (x0) < f (x) do 6: x← x0 7: end while 8: if f (x0) < f (xi) then 9: n= 1; 10: else 11: n= n + 1; 12: end if 13: end for

pesquisa de heurísticas levou a criação de algoritmos mais sofisticados. Uma classe po- pular é a das metaheurísticas. A seguir, serão apresentadas algumas das metaheurísticas mais utilizadas na literatura dos FLPs.

2.3.3

Metaheurísticas

O prefixo meta tem aqui um significado de "além"ou "alto nível". Isto porque ge- ralmente metaheurísticas tem desempenho melhor que heurísticas simples [Yang 2010]. As metaheurísticas são procedimentos que utilizam heurísticas iterativamente através da utilização de algum mecanismo estocástico. O procedimento alterna entre fases de diver- sificação e de intensificação da busca. A diversificação permite ao algoritmo buscar novas soluções em vizinhanças não-alcançáveis a partir de soluções criadas pelas heurísticas de intensificação, como as buscas locais, dando maior robustez a qualidade do método em escala global. O objetivo é balancear diversificação com intensificação de modo que a metaheurística seja capaz de fugir de soluções ótimas locais sem perder a característica de rapidez na busca das heurísticas mais simples.

Diversas estruturas para metaheurísticas já foram propostas. Gendreau & Potvin (2005) classificam as metaheurísticas de acordo com a quantidade de soluções trabalha- das por vez. As metaheurísticas de solução única, como Simulated Annealing, Busca Tabu e VNS, são aquelas que partem de uma única solução e tem uma única trajetória de busca. Já as baseadas em uma população, como os Algoritmos Evolucionários (den- tre os quais estão os Algoritmos Genéticos), possuem múltiplas soluções que evoluem concorrentemente. Osman & Laporte (1996), Blum & Roli (2003) e Gendreau & Potvin (2005) apresentam boas revisões da literatura das metaheurísticas usadas em otimização combinatória.

Na área dos FLPs, Arostegui et al. (2006) fazem um levantamento das três metaheu- rísticas mais aplicadas a estes problemas: Busca Tabu, Simulated Annealing e Algoritmo Genético. Uma comparação empírica é mostrada onde as heurísticas foram aplicadas a al- gumas variantes, como os modelos capacitados, dinâmicos e com múltiplas mercadorias.

24 CAPÍTULO 2. REVISÃO DA LITERATURA Um levantamento semelhante foi feito em Basu et al. (2015) incluindo ainda as metaheu- rísticas de Busca Dispersa e de Enxame de Partículas. GRASP [Delmaire et al. 1999] e VNS [Wollenweber 2008] também são encontrados na literatura. A vastidão de métodos publicados é um indício de que o desempenho do algoritmo é situacional, portanto a es- colha do mais adequado depende das características do problema [Arostegui et al. 2006]. Quando um só procedimento não é suficiente para gerar soluções satisfatórias para problemas específicos, podemos recorrer a hibridização de métodos de diferentes áreas da otimização, criando uma estrutura mais complexa que possa se beneficiar das van- tagens dos métodos empregados. As metaheurísticas híbridas combinam metaheurísti- cas clássicas com relaxações do problema original, programação dinâmica ou até outras (meta)heurísticas. Talbi (2002) apresenta uma taxonomia para as metaheurísticas híbri- das baseada nos métodos hibridizados e Blum et al. (2011) mostram diversas categorias de métodos que podem ser hibridizados com metaheurísticas.

Vários métodos híbridos já foram aplicados a FLPs. Wollenweber (2008) mostra uma metaheurística híbrida que parte de uma solução construída a partir da relaxação linear do problema seguida da fase de diversificação num algoritmo VNS e intensificação num VND com buscas locais de abertura, fechamento e substituição de facilidades. Fernandes et al. (2014) utilizam uma estrutura semelhante mas com um AG sendo utilizado como diversificação. Ambos foram aplicados em problemas no contexto de projeto de cadeias de suprimento (múltiplos niveis de facilidades). Os resultados computacionais mostraram que tais estruturas são capazes de melhorar os limitantes encontrados pelo resolvedor do modelo MIP em instâncias de grande porte gastando menos tempo de solução.