• Nenhum resultado encontrado

2  Revisão da literatura e conceitos básicos 9 

2.4  Métodos heurísticos 27 

2.4.1  Relaxação Lagrangiana 27 

A relaxação lagrangiana introduzida por Held e Karp (1971) (veja também os trabalhos clássicos de Geofrion (1974) e Fisher (1981)) tem sido utilizada com sucesso em diversos problemas de otimização combinatória, inclusive em problemas de dimensionamento de lotes. Em Trigeiro et al. (1989), a relaxação lagrangiana é aplicada em um problema de dimensionamento de lotes capacitado. Neste, os autores relaxam a restrição de capacidade e aplicam rotinas de factibilização na solução da relaxação para obter uma solução viável para o problema inicial. Os autores utilizam o método de otimização do subgradiente para atualizar os multiplicadores lagrangianos.

Diaby et al. (1992) aplicam a relaxação lagrangiana em um problema de dimensionamento de lotes. Os autores desenvolvem um modelo de programação inteira mista e resolvem o problema com relaxação lagrangiana e mostram, por testes computacionais, que o uso da relaxação lagrangiana é eficiente para problemas grandes, obtendo soluções próximas do valor ótimo. Toledo e Armentano (2006) desenvolvem uma heurística baseada em relaxação lagrangiana para resolver um problema de dimensionamento de lotes com restrição de capacidade, considerando múltiplas

máquinas em paralelo e minimizando os custos de produção e estoque. No mesmo trabalho, a heurística desenvolvida obteve a solução ótima do problema para alguns exemplares. Jans e Degraeve (2004) aplicam relaxação lagrangiana às restrições de demanda de um modelo reformulado de dimensionamento de lotes com o objetivo de obter limitantes inferiores de boa qualidade. Em Brahimi et al. (2010), os autores utilizam a relaxação lagrangiana para resolver um problema de dimensionamento de lotes com janela de tempo para produção e tempos de preparo de máquina. Buschkühl et al. (2010) apresentam uma revisão de trabalhos que aplicam a relaxação lagrangiana em problemas de dimensionamento de lotes.

A seguir, é apresentada resumidamente a relaxação lagrangiana, o método do subgradiente e o algoritmo de volume para facilitar a compreensão das heurísticas aplicadas mais adiante. A apresentação da relaxação lagrangiana e sua motivação são dadas, por exemplo, em Fisher (1981, 2004), no qual foi baseado o texto a seguir. Considere o seguinte problema de programação inteira.

S.a.

(P)

Suponha que o problema de programação linear inteira (P) seja de difícil resolução e que seja conhecido que, se o conjunto de restrições não fosse considerado no problema (P), então este seria mais fácil de ser resolvido. O método de relaxação lagrangiana consiste na relaxação da restrição que dificulta o problema, e sua adição à função objetivo de forma penalizada. A relaxação é descrita a seguir.

Considerando um vetor com elementos não negativos (será denotado por 0) e o sistema . Cada elemento , do vetor λ, está associado a uma restrição ( ) do sistema

. Com isso, a relaxação lagrangiana do problema (P) é dada pelo seguinte problema:

min S.a.

(RLP( ))

Observe que o problema não possui o conjunto de restrições que dificultam a resolução do problema (P), porém, no problema RLP( ), esta restrição é adicionada com um multiplicador na função objetivo. Em Guignard (2003), encontra-se uma demonstração de que, para cada multiplicador, 0, a solução ótima da relaxação é um limitante inferior para o problema (P) e

que este limitante tem no mínimo a mesma qualidade que o valor ótimo da relaxação linear do mesmo problema.

Ou seja, temos a seguinte propriedade para a solução da relaxação lagrangiana: dados 0 e uma solução ótima para , se é uma solução ótima para o problema P, então

. Além disso, se a solução da relaxação lagrangiana ( ) for, também, uma solução viável para o problema (P), temos que a solução ótima do problema (P) satisfaz a seguinte

propriedade: . Observe que o fato da solução da relaxação

lagrangiana ser viável para o problema (P) não garante que é uma solução ótima para o problema (P).

Para garantir que a solução da relaxação lagrangiana é uma solução ótima para o problema (P), além da solução ser viável para o problema (P), temos que a solução tem que satisfazer as condições das folgas complementares (Guignard, 2003), ou seja, é uma solução ótima para o problema se esta for uma solução viável para o problema (P) e se satisfaz a condição

0.

2.4.1.1 Método de otimização por subgradiente

O resumo descrito nesta seção é baseado em Geoffrion (1974), Fisher (1981) e Guignard (2003). Sabendo que, para cada valor de , a solução ótima do problema RLP( ) fornece um limitante inferior para o problema (P), é definido como próximo passo obter o multiplicador que forneça o melhor limitante inferior para o problema (P). O problema de determinar o multiplicador é denominado de problema dual lagrangiano e pode ser descrito da seguinte forma:

min S.a.

(DRLP)

O método do subgradiente é um método aplicado a funções diferenciáveis por partes. Em Fisher (1981), é demonstrada a construção do método e prova-se que o valor de (DRLP) converge para uma solução ótima de (P) quando é aplicado um número suficientemente grande de iterações.

Em resumo, o método do subgradiente funciona da seguinte forma: dada a função , queremos obter o valor do multiplicador que maximiza a função. Iniciamos o método com um dado e então obtém-se uma solução ótima do problema RLP( ). Seja esta solução ótima associada ao multiplicador . Calculando o gradiente da função , obtemos o vetor gradiente . Sabendo que a função cresce na direção do gradiente, atualizamos o multiplicador lagrangiano . A atualização do multiplicador é feita “caminhando” na direção do subgradiente para

obter um novo vetor . O tamanho do passo para obter o novo valor do multiplicador não pode ser muito grande, pois, como a função é diferenciável por partes, não temos garantia que a função irá sempre melhorar no sentido do grandiente (ver Figura 2-1), mas sim apenas em uma vizinhança do ponto estudado. Existem fórmulas específicas para obter o tamanho do passo. Uma destas fórmulas é detalhada na construção do método heurístico. Com o novo vetor , é aplicado o mesmo procedimento descrito anteriormente, e é obtido o vetor . O processo é repetido até que o critério de parada seja satisfeito. Mais detalhes sobre o método do subgradiente são encontrados, por exemplo, em Held et al. (1974), Geoffrion (1974), Fisher (1981) e Camerini et al (2005).

Figura 2-1 Método do subgradiente

O esquema a seguir resume o método de otimização do subgradiente. O mesmo método será mais detalhado em capítulos adiante, na construção dos métodos heurísticos de resolução dos problemas discutidos neste trabalho.

Passo 1. Inicialização

Definindo os valores iniciais:

: valor inicial do multiplicador lagrangiano ρ : tamanho inicial do passo do subgradiente.

LB : limitante inferior inicial.

LS : limitante superior do problema (P) k=0 : contador de iterações

Critérios de parada

Passo 2. Enquanto os critérios de parada não forem satisfeitos

Resolva RLP( ) e obtenha a solução

Se então (atualização do limitante

               

inferior) Faça :

k=k+1.

ρ

Se a solução obtida for viável,

então atualize o limitante superior (LS); se a solução obtida foi ótima, então PARE.

Senão, aplique heurística de factibilização (Seções 4.4 e 4.5) obtendo um limitante superior (LS)

Fim

No esquema acima, | | é dado pela soma dos quadrados dos elementos

. Uma crítica deste método, feita em Barahona e Anbil (2000), é que o método do subgradiente obtém aproximações para a solução dual do problema (P), “não se importando” com as soluções primais do problema. Observe que o método descrito utiliza um limitante superior para o problema, mas este não é atualizado a cada iteração do subgradiente. Barahona e Anbil (2000) apresentam uma extensão do método do subgradiente para produzir aproximações de uma solução do problema primal, utilizando as soluções obtidas a cada iteração do método do subgradiente. Este método é denominado de algoritmo de volume e é descrito na seção a seguir.

2.4.1.2 Algoritmo de volume

O algoritmo de volume apresentado por Barahoma e Anbil (2000), como mencionado, é uma extensão do método do subgradiente, com o objetivo de obter uma solução primal para o problema (P). Para isso, os autores descrevem um método que utiliza as soluções duais obtidas pelo método do subgradiente para tentar obter uma solução viável primal, que é dada por uma combinação linear convexa das soluções duais. Para desenvolver o método, os autores relacionam a decomposição de Dantzig-Wolfe (1960) com a relaxação lagrangiana, e mencionam que o algoritmo pode ser visto como uma maneira rápida de aproximar a solução obtida pela decomposição de Dantzig-Wolfe.

A forma como desenvolveremos o algoritmo de volume neste trabalho é baseado no algoritmo apresentado em Barahoma e Anbil (2000). No entanto, existem outros trabalhos que interpretam este algoritmo de forma diferente, como, por exemplo, em Bahiense et al. (2002), que apresentam um algoritmo de volume revisado, relacionam tal algoritmo com o método de feixes e

mostram que o algoritmo de volume trata-se de um método de extragradientes, e não de subgradientes como originalmente proposto por Barahoma e Anbil (2000). Além disso, o método proposto por Bahiense et al. (2002) tem garantia de convergência. Outro estudo sobre algoritmo de volume é encontrado em Fukuda (2007).

Antes de apresentarmos o algoritmo de volume, segundo Barahoma e Anbil (2000) é necessário compreender a decomposição de Dantzig-Wolfe e a relação entre a decomposição e a relaxação lagrangiana. A ideia básica do método de decomposição de Dantzig-Wolfe consiste na resolução de um elevado número de problemas de pequena dimensão, tipicamente bem estruturados, em oposição à resolução do problema original, caracterizado por uma complexidade e tamanho que o tornam de difícil resolução.

Segundo Pimentel (2005), na decomposição Dantzig-Wolfe as restrições que dificultam a resolução do problema inicial ficam num problema, designado problema mestre, e define-se um ou mais subproblemas a partir de subsistemas, com interação de informação entre o problema mestre e os subproblemas, até que a solução para o problema original seja encontrada. A cada subsistema, está habitualmente associado o mesmo tipo de problema, que exibe uma estrutura especial e para o qual são conhecidos algoritmos de resolução eficientes. A solução para o problema original é obtida com a resolução de uma seqüência de problemas de menor dimensão, resolvidos geralmente pelo método de geração de colunas.

Segundo Araujo (2011), considere o problema (P), ao qual chamamos de formulação compacta, definido por:

Formulação Compacta:

S.a.

(P)

Seja o conjunto | . Tem-se que S é um poliedro e, de acordo com o teorema de Minkowski (ver, por exemplo, Nemhauser e Wolsey, 1988), pode ser definido a partir de um número finito de pontos extremos pk, k C={k=1,...,K} e um número finito de raios extremos. Neste texto, será considerada apenas a aplicação da decomposição de Dantzig-Wolfe ao caso em que o conjunto S é um poliedro limitado. Conseqüentemente, com esta consideração,

qualquer ponto x pertencente ao conjunto S pode ser representado como uma combinação convexa dos pontos extremos de S, ou seja, x pode ser escrito da seguinte forma

∑ = = K k k k p x 1 λ 1 1 = ∑ = K k k λ C k k∈{0,1} ∀ ∈ λ

Substituindo a variável x, pela representação acima, na formulação compacta, obtemos um problema de otimização em termos dos pontos extremos de S. A formulação a seguir é denominada de formulação estendida. Denotamos este problema por PM (problema mestre).

Formulação Estendida: ∑ = = K k k k PM cp z 1 ) ( min λ Sujeito a: (PM) b Ap K k k k

=1 ) ( λ Complicadas 1 1 = ∑ = K k k λ C k k∈{0,1} ∀ ∈ λ

O peso de cada ponto extremo pk (k=1,...,K) é representado pelas variáveis de decisão do problema mestre λk (k=1,...,K). As restrições complicadas definem as restrições de ligação, agora representadas em termos de pontos extremos, e tem-se ainda a restrição de convexidade (∑

1), que garante a escolha de uma combinação convexa dos pontos extremos. Qualquer solução válida para o problema PM é também válida para o problema original P e ambas as formulações têm um valor idêntico em termos de função objetivo na solução ótima. A partir de uma solução factível qualquer do problema PM, pode-se utilizar a combinação convexa para obter a solução correspondente no problema P.

Entretanto, o problema original P e o problema mestre PM diferem no que diz respeito às suas relaxações lineares, pois, os valores ótimos das relaxações lineares são obtidos com a resolução dos seguintes e respectivos problemas:

Relaxação Linear da Formulação Compacta: x c zP T L =min Sujeito a: (PL) Axb Complicadas e DxSimples 0 ≥ x

Relaxação linear da Formulação Estendida:

∑ = = K k k k PM cp z L 1 ) ( min λ Sujeito a: (PML) b Ap K k k k

=1 ) ( λ Complicadas 1 1 = ∑ = K k k λ C k k ∈[0,1] ∀ ∈ λ

De acordo com Vanderbeck (2000) e Vanderbeck e Savelsbergh (2006), a relaxação linear da formulação estendida pode ser escrita equivalentemente por:

x c zPM T L =min Sujeito a: (PML) Axb Complicadas }) / ({x Z Dx e conv x∈ ∈ +n ≤ em que: conv({xZn/Dxe})

+ representa o envoltório convexo do conjunto {xZ+n/Dxe}, ou

seja, representa o conjunto de todos os pontos que podem ser escritos como combinação convexa dos pontos do conjunto {xZ+n/Dxe}. Ainda de acordo com os mesmos autores, ao comparar os valores das funções objetivo dos modelos anteriores, pode-se estabelecer que zP zPM zP

L

≤ .

Segundo Pimentel (2005), ao se analisar os problemas PM e P, geralmente verifica-se que o primeiro tem um grande número de variáveis (igual ao número de pontos extremos do conjunto C), mas substancialmente menos restrições que o segundo, pois o conjunto de restrições definidas pelo conjunto S foi substituído pela restrição de convexidade. Para lidar com o número exponencialmente grande de variáveis, pode-se recorrer ao método de geração de colunas para resolver o problema mestre PMRL. A ideia básica da geração de colunas consiste em: em vez de considerar todos os pontos extremos do conjunto S na relaxação linear do problema mestre PML, considera-se apenas um conjunto restrito desses pontos extremos, definindo assim um problema mestre restrito PMRL, e avalia-se se existem pontos extremos que não estão presentes no problema

PMRL que, caso fossem incluídos no problema, poderiam melhorar o valor da sua função objetivo. Os pontos que se revelarem atrativos devem então ser adicionados ao problema mestre.

Na geração de colunas, o PMRL é otimizado iterativamente, até que exista a garantia de que a solução ótima do PMRL é também a solução ótima do PML. Em cada iteração do método, faz-se a otimização do PMRL, obtendo-se uma solução que é ótima em termos das variáveis que nele estão incluídas. Contudo poderão existir variáveis, ou pontos extremos do conjunto S, que não façam parte atualmente do PMRL que sejam atrativos. Para avaliar a atratividade destes pontos extremos recorre-se à solução ótima dual do PMRL e à resolução de um subproblema. Seja π o vetor de variáveis duais associado ao conjunto de restrições ∑ e μ a variável dual associada à restrição ∑ 1. Tais variáveis duais são obtidas com a resolução do problema PMRL. O custo reduzido de uma variável λk é dado por: cpk +πApk -μ. Se cpk +πApk -μ≥0 , para ∀ k ∈ C , a solução ótima de PMRL, é também a solução ótima para a relaxação linear do problema mestre

PML. Se do conjunto de todas as variáveis que não pertencem ao PMRL existir pelo menos uma com custo reduzido negativo, então esta coluna deve ser adicionada ao PMRL, e todo o processo deve ser repetido. Para se encontrar a variável λk que tem o menor custo reduzido, pode resolver-se o seguinte problema: μ π − + = c A x zSUB min( ) Sujeito a: (SUB) Dxe Simples n Z x+

Este problema é habitualmente designado por subproblema (SUB). Observe que as variáveis do subproblema são inteiras. Se zSUB≥0, então a solução ótima do PML foi encontrada. Se zSUB < 0, então uma nova coluna deve ser adicionada ao PMRL e o procedimento apresentado deverá ser repetido, até que não existam mais colunas atrativas.

Mostramos a seguir a relação entre a decomposição de Dantzig-Wolfe e o problema dual lagrangiano. Considerando o problema (P), podemos escrever a seguinte relaxação lagrangiana:

min

S.a.

Como mencionado, para cada multiplicador , a solução ótima de é um limitante inferior para o problema (P). Assim, definimos como problema dual lagrangiano o problema de obter o valor de que forneça o melhor limitante inferior para o problema (P). Podemos descrever o problema dual lagrangiano da seguinte forma:

max min S.a.

Em Barahoma e Anbil (2000), o problema dual lagrangiano é descrito, de maneira equivalente, da seguinte forma:

max S.a.

Como mencionado, estamos supondo que o conjunto S pode ser descrito como uma combinação convexa de um número finito de pontos extremos de S. Assim, resolver o problema considerando apenas os pontos extremos do conjunto S é equivalente a resolver o problema quando consideramos todo o conjunto S. Considerando pk (k=1,...,K) os pontos extremos do conjunto S, podemos descrever o problema da seguinte forma:

max S.a.

Escrevendo o problema dual de , obtemos o seguinte problema:

Sujeito a:

(DDL)

0 1 0

Logo, a solução ótima do problema dual lagrangiano é igual à solução ótima do problema mestre obtido pela decomposição de Dantzig-Wolfe.

O termo volume é devido ao teorema do volume apresentado a seguir que consiste num teorema baseado em dualidade e mostra que as variáveis primais do problema mestre da decomposição de Dantzing-Wolfe são proporcionais aos volumes definidos pelas faces que estão ativas em uma vizinhança de uma solução ótima do problema dual associado.

Teorema (Barahoma e Anbil (2000)). Considere novamente o seguinte problema de programação linear:

S.a.

em que é um vetor com n-1 componentes. Seja ̂, uma solução ótima e suponha que as primeiras restrições sejam ativas no ponto ótimo. Seja ̂ e assumimos que as condições

para 1, … , e definem um poliedro limitado (veja Figura 2.2).

Figura 2-2: Volume do poliedro limitado

Para 1 , 1, … , 1, , seja o volume entre a face defina por e o hiperplano definido por . Então, uma solução ótima dual é dada por

∑ .

Uma interpretação geométrica para o teorema é apresentada em Bahiense (2000). Como o somatório das variáveis primais na decomposição de Dantzig-Wolfe é igual a um, cada valor λk

(k=1,...,K), pode ser interpretado como a probabilidade de que, em uma vizinhança da solução

ótima dual, o subproblema (SUB) gere um ponto extremo, o que pode ser interpretado também como a probabilidade de gerar a face k.

O resumo do algoritmo de volume, dado a seguir, é baseado nos trabalhos de Barahoma e Anbil (2000), Bahiense et al. (2002) e Fukuda (2007). Considere as seguintes definições para as variáveis utilizadas no resumo a seguir:

: Solução da relaxação lagrangiana, com o multiplicador , obtida na k-ésima iteração;

: Subgrandiente associado a .

: solução obtida na k-ésima iteração do algoritmo de volume (extragradiente associado a , e o multiplicador .

Passo 1. Inicialização

Definir os critérios de parada  Definindo os valores iniciais:

: valor inicial do multiplicador lagrangiano

ρ : tamanho inicial do passo do subgradiente.

LB : limitante inferior inicial.

LS : limitante superior do problema (P) k=0 : contador de iterações

0 1: um escalar

Resolva RLP( ) e obtenha a solução e o limitante

Inicialize as variáveis

, , , ,

Passo 2. Enquanto os critérios de parada não forem satisfeitos

Atualize o multiplicador Lagrangiano

ρ LS

| |

Resolver RLP( ) e obtenha a solução e

Faça:

Passo 3. Atualizar a aproximação primal

1  

  Passo 4 Teste da solução dual e atualização das variáveis

Se declare uma iteração vermelha

Caso contrário 

Se 0 declare uma iteração verde e faça  

  1

Passo 5 Verifique os critérios de para e caso não sejam satisfeitos volte ao Passo 2

Uma interpretação para diferenciar as iterações em vermelho, amarelo e verde é indicar a qualidade das soluções obtidas em cada iteração. Neste caso, vermelho indica que não conseguimos melhorar a solução, amarelo indica que é possível encontrar uma solução melhor, e verde indica que foi obtida uma boa solução e que os parâmetros devem ser atualizados. Observe que uma das principais diferenças entre o algoritmo de volume e o algoritmo de otimização do subgradiente está no uso das soluções , obtida como combinação linear dos pontos extremos e na atualização dos multiplicadores lagrangianos. De acordo com Barahona e Anbil (2000), a escolha dos valores de pode ser definida como fixa inicialmente e após algumas iterações esta decresce, dependendo dos números de iterações vermelhas. Com o objetivo de aumentar a precisão primal, Barahona e Anbil (2000) sugerem ainda os seguintes cálculos para determinar os valores de a cada iteração do algoritmo de volume. Defina um valor como um limitante superior para os valores de . Determine de tal modo que:

|| 1 ||

Se 0, então , caso contrário, min , . Observe que é dado por um valor real que minimiza a norma do vetor 1 . Mais detalhes de como se obter o valor de são fornecidos no Capítulo 4. Até aqui, finalizamos a breve revisão de relaxação lagrangiana. Na próxima seção é apresentada uma metaheurística baseada no comportamento de formigas em busca de alimentos.