• Nenhum resultado encontrado

3.6 Esquemas para obtenção do limite inferior elementar

3.6.2 Esquemas gradativamente elementar

Os segundo e terceiro esquemas permitem popular o PMR também com colunas inviáveis, que contém ciclos. Para isso os subproblemas utilizados foram o ng-SPPRC e q-routes.

Os Algoritmos 6 e 7 representam o funcionamento dos métodos que permitem ciclos combi- nados com as restrições SSR e SDC, respectivamente. As vizinhanças usadas não tiveram seu tamanho alterado durante a execução, sendo fixadas em |Vi| = 10, ∀i ∈ N , conforme orientado

pelos autores Baldacci, Mingozzi e Roberti (2011). O valor zSP representa o valor da variável

gerada pelo subproblema com custo reduzido mais negativo, sendo esta variável elementar ou não.

Primeiramente, buscando visualizar a melhoria alcançada pelo uso das novas restrições, ne- nhum corte das famílias SSR ou SDC foi adicionado ao PMR. Assim o esquema permite ciclos na solução ótima λ∗ e fica reduzido às linhas 1 a 4 e 6 a 12 no Algoritomo 6, onde somente a

estratégia DSSR é usada e na linha 7 o PMR é resolvido sem as SDC ou SSR.

O segundo esquema é executado da mesma forma que o apresentado pela Figura 3.6. A diferença aqui, é que a solução ótima λ∗ não tem garantida a elementariedade, pois não há

utilização das SDC para eliminar os ciclos da solução final. A condição de parada do laço mais externo é a não existência de restrições SSR violadas pela solução ótima corrente.

O Algoritmo 7 apresenta o último esquema usado, representado na Figura 3.7. Neste caso são adicionadas somente as restrições SDC. Estas restrições, após a finalização do procedimento de Geração de Colunas, visa proibir a participação de colunas não-elementares da solução ótima λ∗.

A cada iteração do laço mais interno (linhas 6 a 12), todas as colunas geradas pelos subproblemas são adicionadas ao PMR, até que o menor custo reduzido dentre as variáveis geradas tenha seu valor igual ou maior do que 0. Durante a segunda parte do algoritmo é iniciada uma varredura na solução atual do problema que procura por variáveis básicas que contenham ciclos. Para cada cliente i ∈ N que tenha um ciclo na solução em alguma das variáveis básicas, ele terá uma SDC gerada e adicionada ao PMR.

Algoritmo 6: Esquema Column-and-Cut não-elementar

1 INICIALIZAÇÃO

2 Considere as vizinhanças Vi, ∀i ∈ N , se o subproblema as utiliza

3 Considere um conjunto inicial E = {∅}, dos clientes que terão a elementariedade

requerida através da DSSR

4 Construa para o PMR uma solução inicial viável 5 repita

6 repita

7 Resolva o PMR com as SSR

8 Resolva o subproblema com as vizinhanças Vi, ∀i ∈ N , caso este as utilize.

9 se zSP < 0 então

10 Adicione as colunas de custo reduzido negativo geradas ao PMR 11 Atualize E ← E ∪ {i}, caso na coluna com menor custo reduzido

negativo exista ciclo para um dado cliente i

12 até que zSP ≥ 0

13 sea solução λ∗ é violada por alguma SSR faça 14 Adicione as restrições SSR violadas ao PMR 15 até quenão existam mais SSR violadas

A contribuição dos cortes SDC são levadas ao subproblema escolhido, conforme mostrado na Seção 3.4.2. Estes cortes ajudarão na formação de rotas mais elementares, já que tornará mais atrativo a visitação uma única vez de um nó que tenha uma SDC.

Algoritmo 7: Esquema Column-and-Cut gradativamente elementar

1 INICIALIZAÇÃO

2 Considere as vizinhanças Vi, ∀i ∈ N , se o subproblema as utiliza

3 Considere um conjunto inicial E = {∅}, dos clientes que terão a elementariedade

requerida através da DSSR

4 Considere um conjunto inicial ℰ = {∅}, dos clientes que terão a elementariedade requerida

através das SDC

5 Construa para o PMR uma solução inicial viável 6 repita

7 repita

8 Resolva o PMR com as SDC para o dado conjunto ℰ

9 Resolva o subproblema com as vizinhanças Vi, ∀i ∈ N , caso este as utilize.

10 se zSP < 0 então

11 Adicione as colunas de custo reduzido negativo geradas ao PMR 12 Atualize E ← E ∪ {i}, caso na coluna com menor custo reduzido

negativo exista ciclo para um dado cliente i

13 até que zSP ≥ 0

14 para todacoluna λ∗

r > 0 do PMR que contenha ciclos em um cliente i faça 15 Atualize o conjunto dos clientes que requerem elementariedade, ℰ ← ℰ ∪ {i} 16 Adicione ao PMR ou atualize as SDC referentes aos clientes i ∈ ℰ

17 fim para todo

A Figura 3.8 ilustra o processo iterativo de adição de colunas (variáveis) e cortes (restrições) ao problema. Para este trabalho, sempre que uma nova coluna era adicionada ao PMR, caso já existisse algum corte no problema, o corte também seria atualizado com as informações das novas colunas.

(a)

(b)

Capítulo 4

Experimentos e resultados

computacionais

Os modelos foram desenvolvidos usando a linguagem C/C++ junto com a tecnologia IBM CPLEX® 12.5 Callable em um notebook com sistema operacional Ubuntu Linux 14.04 LTS,

processador IntelTM Core® i5-4210U e 4GB de RAM. Os testes foram executados em uma má-

quina DellTM PowerEdge® T620 workstation, equipada com dois processadores IntelTMXeon®

E5-2600v2 e 96GB de RAM.

4.1

Instâncias utilizadas e primeiros experimentos

As intâncias utilizadas foram algumas das disponíveis na literatura. As instâncias dos tipos A, B e P são de autoria de Augerat (1995). As E de Christofides e Eilon (1969) e F de Fisher (1994). No nome de cada instância é possível identificar o autor pela primeira letra, o número de nós clientes que é precedido pela letra n e o número mínimo de veículos para atender a demanda, precedido pela letra k. Elas foram escolhidas por terem seu valor ótimo (LS ) conhecido para o PRVC. As instâncias e suas respectivas capacidades são apresentadas na Tabela 4.1. Elas tem diferentes características, o número de nós clientes, total de veículos, a localização do depósito (central, corner ou aleatória) e se os clientes são clusterizados (agrupados) ou randômicos. Quanto mais clusterizada a instância, maior a tendência a formação de ciclos, visto que os clientes estão mais próximos entre si.

Tabela 4.1: Instâncias e respectivas capacidades

Instância A B E-n101-k14 E-n101-k8 E-n22-k4 E-n23-k3 E-n30-k3

Capacidade 100 100 112 200 6000 4500 4500

Instância E-n33-k4 E-n51-k5 E-n76-k10 E-n76-k7 E-n76-k8 F-n45-k4 P-n51-k10

Capacidade 8000 160 140 220 180 2010 80

Nos primeiros testes realizados para instâncias de maior porte, foi a verificada a dificuldade de convergência para o LI pelos algoritmos ng-SPPRC e ESPPRC. Diferente do método das q-routes que tem seu tempo computacional definido, ambos os algoritmos, do Problema do Ca- minho Mínimo com Restrição de Recursos, irão convergir se, e somente se, são gerados todos os rótulos não-dominados para o nó destino n + 1. Isso ocorre mais rápido à medida em que se aumenta a quantidade de recursos usados no critério de dominância, como é comum na litera- tura, janelas de tempo e coleta e entrega. Vale novamente ressaltar que este trabalho utilizou somente a capacidade como recurso que ditava a viabilidade de um novo rótulo. Assim, este algoritmo poderia ser chamado de Problema do Caminho Mínimo (Elementar) com Restrição

de Capacidade. Como meio de compensar essa dificuldade de convergência, definiu-se que o algoritmo é executado por até 60 segundos. Se este limite é atingido são entregues ao PMR os rótulos (colunas) gerados para o nó n + 1.

Em busca de melhorar a política de dominância, uma alternativa proposta por Jepsen et al. (2008) foi cogitada. Quando as restrições SSR são utilizadas pode-se criar um novo recurso 𝒯 = |S ∩ U | mod κ, que representa o número de visitas realizadas a S desde que a última penalidade foi paga por visitar κ nós em S. Isso não foi feito por dois motivos, o primeiro iria alterar a complexidade do subproblema, deixando de ser robusto e com isso, poderia provocar um desequilíbrio quando se fosse comparado aos outros métodos usando as SDC ou ao q-routes e suas combinações, pois este subproblema não trabalha com dominância. Um subproblema robusto é um subproblema que não tem sua complexidade alterada, por exemplo a adição de um recurso na dominância, quando o PMR sofre alguma alteração.

A combinação dos subproblemas que permitem ciclos com as restrições SSR e SDC simulta- neamente não foi possível. A questão é que sem a técnica de branch-and-bound (LAND; DOIG, 1960) para fixar as as variáveis, não foi possível interromper a geração de colunas com a solução ótima elementar e simultaneamente sem nenhuma SSR violada. Isso porque os procedimentos acabavam ficando presos no laço mais interno gerando as mesmas colunas e sem atingir o custo reduzido positivo ou igual a 0.

A quantidade de colunas adicionadas ao PMR se dava da seguinte maneira, para os algoritmos ESPPRC e ng-SPPRC todas as colunas geradas para o nó n + 1 eram adicionadas ao PMR. Já para o método das q-routes, para cada cliente i ∈ N escolhe-se a demanda total d∗ que minimiza

o custo reduzido da q-route correspondente, dado por c0i+ R(d∗,i), para ser inserido no PMR.

As restrições SDC eram adicionadas conforme explicado na Seção 3.4.2. As restrições SSR foram enumeradas usando |S| = 3 e κ = 2, conforme orientado pelos autores Jepsen et al. (2008). Além disso, no máximo ⌊|N |

4 ⌋ SSR violadas pela solução ótima eram adicionadas ao mestre a

cada iteração. Esse número foi definido empiricamente, pois se mostrou mais adequado durante os testes realizados.

Conforme feito por Baldacci, Hadjiconstantinou e Mingozzi (2004), os custos de conexão entre os dois clientes i e j é um valor inteiro dado por cij = ⌊eij + 0,5⌋, onde eij é a distância

euclidiana entre i e j.

Uma ferramenta computacional que se mostrou muito útil e que acelerou boa parte dos testes foram as operações bit-a-bit. Ela foi usada para representar a composição dos conjuntos U e Π dos métodos. Para cada cliente que i ∈ N que participasse ou fosse inviável em um rótulo nos algoritmos SPPRC (elementar ou não) e participasse uma q-route sinalizada numa posição da matriz R, o bit de posição (i − 1) será sinalizado como 1 e caso contrário 0. O redução do tempo computacional foi notável na troca das estruturas de list<int> por bitset<|N|>.

Documentos relacionados