• Nenhum resultado encontrado

Este capítulo apresenta os algoritmos híbridos desenvolvidos para resolver o PCA. Com o objetivo de ter um bom desempenho computacional, e procurando encontrar so- luções mais próximas ou ótimas para as instâncias da biblioteca CaRSLIB, foram sele- cionados na hibridização o ScA, EA, VND, ALSP e o IALSP. O ScA foi escolhido por ser a melhor meta-heurística simples proposta (não híbrida) para o PCA. O EA+ALSP é o algoritmo do estado da arte para o problema, embora tenha apresentado algumas soluções infactíveis. O VND e o IALSP são propostos neste trabalho. As hibridizações investigadas neste experimento foram ScA+ALSP, ScA+IALSP, ScA+VND+IALSP. Os algoritmos mencionados usam o Modelo04. Cada algoritmo híbrido chama um MIP solver, que faz uso da formulação matemática.

5.1

Algoritmos híbridos sequenciais

De acordo com a taxonomia para métodos híbridos entre meta-heurísticas e méto- dos exatos proposta por Jourdan, Basseur e Talbi (2009), os algoritmos híbridos propos- tos, ScA+ALSP e ScA+IALSP podem ser classificados na classe High-level Relay Hybrid (HRH), dado que os diferentes métodos são autocontidos e executados em sequência. Neste contexto, uma meta-heurística dá uma solução inicial para a busca exata que ajuda a definir um espaço de busca reduzido. Assim, a abordagem proposta foi uma execução sequencial de uma meta-heurística que é realizada antes de uma abordagem baseada em programação linear. Note que o ALSP e o IALSP são procedimentos híbridos, dado o fato de que cada algoritmo possui elementos não determinísticos. A Figura 15 apresenta a cooperação HRH em que algumas informações são fornecidas pela meta-heurística para o método exato.

Os algoritmos propostos têm duas fases em sua execução, uma fase de construção seguida por uma fase de melhoria. O algoritmo que compõe a fase de construção é ScA. Enquanto na fase de melhoria pode ser, IALSP ou ALSP.

Figura 15: (JOURDAN; BASSEUR; TALBI, 2009).

O Algoritmo 8 apresenta o pseudocódigo genérico de um algoritmo híbrido sequencial. O algoritmo é composto de três passos. Primeiro, um algoritmo da fase de construção fornece uma solução, sol, que é transformada em uma solução incumbente, solInc, para um modelo matemático do PCA. Solução sol pode ser o conjunto mínimo de variáveis. Um conjunto mínimo de variáveis representa, inequivocamente, uma única solução no modelo. Por exemplo, no caso do Modelo04, isso é conseguido através da atribuição do valor 1 a algumas variáveis xc

i,j (gerando assim um modelo estendido). Esse conjunto de

variáveis representa uma solução inequívoca para o PCA, em que as restantes variáveis só podem ter um único valor (SILVA; OCHI, 2016). Segundo, um algoritmo da fase de melhoria

usa um MIP solver para encontrar uma solução no modelo estendido que melhora solInc. Terceiro, uma vez concluída a execução do algoritmo da fase de melhoria, a melhor solução encontrada é retornada.

Algoritmo 8 Algoritmo híbrido sequencial genérico para o PCA

1. encontrar a solução inicial usando um algoritmo da fase de construção

2. melhorar a solução usando um algoritmo da fase de melhoria 3. informar melhor solução encontrada

A estrutura e o objetivo principal dos algoritmos híbridos propostos são explicados nas seguintes subseções.

5.1.1

ScA+ALSP

O ScA+ALSP é composto por um algoritmo evolutivo e uma busca local realizada por um MIP solver. O algoritmo evolutivo é o ScA e a busca local segue a estrutura do ALSP. A razão da hibridização foi combinar o melhor algoritmo que gera soluções iniciais com o melhor algoritmo de busca local para o PCA. O objetivo foi testar, nas mesmas condições, o ScA+ALSP com os dois melhores algoritmos da literatura (ScA e EA+ALSP).

5.1.2

ScA+IALSP

O ScA+IALSP está composto pelo algoritmo ScA e uma busca local realizada por um procedimento híbrido baseado em um MIP solver (IALSP). Este teste tem dois objetivos. Primeiro, determinar se algoritmo IALSP obtém soluções mais próximas da ótima que o algoritmo ALSP com a mesma solução inicial. Este experimento poderia ter sido feito com uma solução inicial gerada por um algoritmo arbitrário, no entanto, opta-se por usar o ScA. Esta escolha ajuda com o segundo objetivo do teste. O segundo objetivo é verificar que o algoritmo ScA+IALSP é capaz de gerar melhores soluções que o algoritmo ScA+ALSP.

5.2

Algoritmo ScA+VND+IALSP

Nesta seção é apresentada uma hibridização que faz uso do ScA, VND e IALSP. Por- tanto, o método proposto para o PCA combina três fases: construção, melhoria heurística e melhoria exata. Na busca do melhor algoritmo para o PCA, o ScA+IALSP foi comparado com o ScA+VND+IALSP.

Algoritmo 9 ScA+VND+IALSP para o PCA

1. Gerar a solução inicial usando ScA

2. enquanto tempo total não excedido faça

3. Melhorar solução usando VND 4. Melhorar solução usando IALSP

5. fim enquanto

6. Informar melhor solução encontrada

O Algoritmo 9 apresenta o pseudocódigo para o ScA+VND+IALSP (problema de minimização). O algoritmo começa inicializando os parâmetros dos algoritmos em ques- tão ScA, VND, e IALSP. Uma solução inicial é gerada pelo ScA na fase de construção. Seguidamente, o loop principal do algoritmo itera até que o limite de tempo de execução é

excedido. Dentro deste loop, combinam-se as fases de melhoria heurística e exata sequenci- almente. Primeiro, o algoritmo VND é executado (fase de melhoria heurística). Segundo, na fase de melhoria exata, o algoritmo IALSP é aplicado. IALSP utiliza a política de atualizar a solução incumbente, quando existir uma solução melhor (tal solução não é necessariamente a solução ótima de um subproblema). Finalmente, uma vez que o limite de tempo do loop principal foi excedido, a melhor solução encontrada pelo algoritmo é retornada.

A Figura 16 mostra o fluxograma do algoritmo ScA+VND+IALSP com o objetivo de facilitar a visualização dos passos lógicos.

Documentos relacionados