Escolar Documentos
Profissional Documentos
Cultura Documentos
RESUMO
ABSTRACT
A well known procedure to obtain a basic feasible solution is the Big-M method. Howe-
ver, the difficulty in choosing the penalty parameter M is reported in the linear optimization
literature as a disadvantage of the method. In general, a too small value for M produces
an infeasible solution whereas a too high value can result in a large number of iterations
and insert numerical errors. In this paper, we propose a change in the Big-M method which
handles implicitly the parameter M when solving the problem. Hence, the disadvantage re-
ported in the literature ceases to exist. We address conceptual aspects of this approach and
computational results are given for a set of problems of the NETLIB library that confirm
the efficiency of the method.
KEYWORDS: linear optimization, simplex method, Big-M.
2193
XL SBPO
A Pesquisa Operacional e o uso racional de recursos hídricos
02 a 05/09/08 João Pessoa, PB
1. Introdução
A modelagem de problemas por meio da otimização linear foi formalizada por Dantzig em
1947 que, em seguida, desenvolveu também um método prático de solução, o qual chamou
de método simplex. Desde então, um grande número de pesquisadores tem contribuído
na área de otimização linear de diferentes maneiras, incluindo desenvolvimentos teóricos e
computacionais e novas aplicações.
A aplicação do método simplex para a resolução de um problema de otimização linear
exige que uma solução básica factível seja conhecida. Desse modo, deve-se definir uma base
inicial factível para a inicialização do método. O número de iterações e o tempo de execução
do método simplex para a resolução de um problema são extremamente dependentes da base
inicial escolhida. A obtenção de uma boa base inicial é ainda um ramo de investigação na
área de otimização linear, como pode ser constatado nos trabalhos de Vieira Junior e Lins
(2005), Hu (2007) e na literatura citada por esses autores.
Um método bastante conhecido para a obtenção de uma base factível é o método M-
grande. Este método é conceitualmente simples e sua implementação computacional é direta
a partir do método simplex. Entretanto, dependendo da escolha do parâmetro de penaliza-
ção M , dificuldades numéricas podem surgir durante a resolução do problema e até mesmo
uma solução ótima equivocada pode ser obtida, fazendo com que a utilização do método
M-grande seja evitada.
Essas desvantagens envolvendo o método M-grande são retratadas por trabalhos recentes
da literatura. Koberstein e Suhl (2007) relatam que a principal razão para o método M-
grande não ser utilizado na prática é a dificuldade na escolha de M . Segundo os autores, um
valor muito grande para M pode levar a problemas numéricos e a um número excessivo de
iterações, enquanto um valor muito pequeno pode não produzir uma solução básica factível.
Vieira Junior e Lins (2005) propõem uma nova técnica para a construção de uma base inicial
que tem grandes chances de ser próxima da base ótima. Entretanto, a base obtida pode não
ser factível e, então, os autores sugerem a utilização do método M-grande, porém alertando
para a desvantagem computacional do método. Arsham (2007) cita que o método M-grande
pode causar erros graves, fazendo o infactível parecer factível quando M é muito pequeno.
Além disso, erros de arredondamento e overflow computacional podem destruir a precisão
numérica da solução quando M é muito grande.
Livros-texto de otimização linear também abordam esse assunto. Bazaraa (1990) des-
creve detalhadamente o método M-grande e fecha sua descrição com a pergunta: “Quão
grande deve ser o M-grande? ”. De acordo com o autor, M não pode ser escolhido apenas
olhando-se para a magnitude dos coeficientes da função objetivo. Dado que o problema a ser
resolvido é factível, M deve ser grande o bastante para que alguma solução básica factível,
com todas as variáveis artificiais iguais a zero, tenha valor estritamente melhor que a melhor
solução básica factível que não tenha todas as variáveis artificiais nulas. Porém, essa é uma
condição teórica e mesmo quando satisfeita, o método ainda não está livre das dificuldades
numéricas.
Bertsimas e Tsitsiklis (1997) comentam que não há a necessidade de se fixar um valor
numérico para M , basta considerá-lo como um parâmetro indeterminado durante a resolu-
ção do problema. Para isso, sugerem que a comparação entre expressões contendo M seja
realizada considerando-o suficientemente grande. Entretanto, na descrição dos autores, os
termos que não envolvem M são desprezados na comparação dessas expressões, fazendo com
que a função objetivo do problema original seja ignorada nas expressões de custos reduzidos
contendo o parâmetro. Além disso, a abordagem é descrita por meio da resolução de um
problema particular usando o método simplex na forma tableau, sem expor as modificações
necessárias para a implementação computacional da proposta.
2194
XL SBPO
A Pesquisa Operacional e o uso racional de recursos hídricos
02 a 05/09/08 João Pessoa, PB
2195
XL SBPO
A Pesquisa Operacional e o uso racional de recursos hídricos
02 a 05/09/08 João Pessoa, PB
Ax + Dy = b (4)
x ≥ 0, y ≥ 0 (5)
com y = (y1 , y2 , . . . , ym ) e D uma matriz diagonal com valores 1 e −1, satisfazendo D−1 b ≥
0. Sem perda de generalidade, será considerado b ≥ 0, de modo que D = I. Assim, uma
base inicial factível B = I com solução inicial (x, y) = (0, b) está sempre disponível para
um problema com o conjunto de restrições (4) e (5).
A introdução de variáveis artificiais tem o inconveniente de aumentar a dimensão do
problema, já que são adicionadas m variáveis. Entretanto, a facilidade conceitual e prática
dessa técnica é incontestável. Uma maneira de melhorá-la é através da utilização das va-
riáveis de folga do problema original. Assim, uma variável artificial só é adicionada a uma
restrição se não houver uma variável de folga disponível nessa restrição, ou se a variável de
folga existir mas levar a uma solução básica infactível.
Dada uma solução (x̄, ȳ) das equações descritas em (4) e que satisfaça (5), tem-se Ax̄ = b
se, e somente se, ȳ = 0. Em outras palavras, x̄ será uma solução factível para o problema
original quando cada variável artificial for nula. Para se obter um par (x̄, ȳ) com tal carac-
terística, duas abordagens podem ser utilizadas, uma de duas fases e outra de fase única.
A abordagem por duas fases cria um problema auxiliar a partir do conjunto de restrições
(4) e (5), o qual também é um problema de otimização linear, cuja função objetivo é definida
pela soma das variáveis artificiais. Matematicamente, o problema auxiliar é dado por:
minimizar fa (y) = m
P
i=1 yi
sujeito a Ax + Iy = b
x ≥ 0, y ≥ 0,
Utilizando-se a base B = I, o método simplex pode ser aplicado a esse problema auxiliar
e caso a solução ótima (x̄, ȳ) obtida satisfaça ȳ = 0 tem-se x̄ como solução factível do
problema original, podendo ser iniciada a Fase-II. Note que a função objetivo do problema
original não é considerada no problema auxiliar, fazendo com que essa abordagem obtenha
uma solução factível x̄ sem considerar sua otimalidade.
A abordagem de fase única utilizando variáveis artificiais é conhecida na literatura como
método M-grande. Nessa abordagem, as variáveis artificiais são incorporadas à função obje-
tivo do problema original, porém penalizadas de acordo com um valor M > 0 suficientemente
grande para que não seja vantajoso mantê-las em valores positivos. Sendo assim, o problema
original é redefinido como:
minimizar f (x, y) = ct x + M m
P
i=1 yi
sujeito a Ax + Iy = b
x ≥ 0, y ≥ 0,
Esse problema é chamado de problema M-grande e vale ressaltar que não corresponde a
um problema auxiliar, mas sim à redefinição do problema original. O método M-grande
consiste em aplicar o método simplex sobre o problema M-grande. A solução ótima obtida
2196
XL SBPO
A Pesquisa Operacional e o uso racional de recursos hídricos
02 a 05/09/08 João Pessoa, PB
(x∗ , y∗ ) é analisada e, dependendo do resultado obtido, uma solução ótima para o problema
original pode ter sido encontrada. Se y∗ > 0 então o problema original é infactível. Caso
contrário, tem-se y∗ = 0 e x∗ é solução ótima do problema original. Se o problema original
for ilimitado então o problema M-grande também será.
Até o momento, o parâmetro M foi considerado suficientemente grande. Entretanto,
como definir um valor numérico para M ? Infelizmente, não existe uma resposta direta para
essa pergunta. Além de um bom valor para M depender do problema que se está resolvendo,
efeitos numéricos também devem ser levados em conta. Um valor muito pequeno pode fazer
com que uma solução do problema M-grande seja infactível para o problema original e
um valor grande demais pode levar a um elevado número de iterações e à introdução de
erros numéricos durante a resolução do problema. Conforme retratado na literatura, essas
características fazem com que o método M-grande seja evitado e que uma abordagem de
duas fases seja utilizada em implementações computacionais.
Para verificar na prática como o valor escolhido para M pode influenciar o método M-
grande, alguns problemas da biblioteca NETLIB foram resolvidos utilizando-se diferentes
valores de M . Na Tabela 2, são apresentados os resultados obtidos na resolução dos pro-
blemas agg3, lotfi, scsd8 e ship12l pelo método, os quais possuem os respectivos valores
ótimos: 10312115, 935; −25, 264706062; 904, 9999999 e 1470187, 9193. Questões relaciona-
das à implementação computacional do método encontram-se na Seção 4.
2197
XL SBPO
A Pesquisa Operacional e o uso racional de recursos hídricos
02 a 05/09/08 João Pessoa, PB
Entrada Problema de otimização linear na forma padrão com partição básica primal
factível A = [B | N]. A possui m linhas e m + n colunas.
Passo 1 Calcule a solução básica primal: xB = B−1 b, xN = 0.
Passo 2 Calcule o vetor multiplicador simplex: π t = ctB B−1 .
Passo 3 Teste de otimalidade:
Calcule os custos reduzidos c̄Nj = cNj − π t aNj , j = 1, . . . , n.
Se c̄Nj ≥ 0 ∀j então PARE! A solução básica atual é ótima!
Caso contrário, obtenha k = arg min{c̄Nj | j = 1, . . . , n}.
Passo 4 Calcule as coordenadas básicas da direção simplex: dB = −B−1 aNk .
Passo 5 Teste da razão:
Se dBi ≥ 0 ∀i então PARE! O problema é ilimitado!
Caso contrário, obtenha l = arg min{−xBi /dBi | dBi < 0, i = 1, . . . , m}.
Passo 6 Atualização da base:
B = B \ {l} ∪ {k} e N = N \ {k} ∪ {l}.
Redefina as matrizes B e N de acordo com os índices atualizados.
Inicie uma nova iteração a partir do Passo 1.
Quadro 1. Método simplex para problemas na forma padrão.
Durante a resolução do problema M-grande pelo método simplex, deve ser mantido um
registro de quais variáveis são legítimas e quais são artificiais para que ao se obter uma
solução ótima, possa ser verificado se esta é factível para o problema original, conforme
especificado pela Tabela 1. Além disso, uma vez que uma variável artificial tenha saído da
base, ela não deve retornar à base, porém para as variáveis legítimas isso é permitido.
Considere a primeira iteração do método simplex para a resolução do problema M-
grande. A base nessa iteração é composta apenas de variáveis artificiais e tem-se B = I com
xB = y = b e ctB = (M, M, . . . , M ). Assim, o vetor multiplicador simplex no Passo 2, pode
2198
XL SBPO
A Pesquisa Operacional e o uso racional de recursos hídricos
02 a 05/09/08 João Pessoa, PB
2199
XL SBPO
A Pesquisa Operacional e o uso racional de recursos hídricos
02 a 05/09/08 João Pessoa, PB
t
M πA aNj >> cNj − πLt aNj , j = 1, . . . , n.
Para πAt a
Nj = 0, o custo reduzido c̄Nj possui apenas componentes legítimas e o parâmetro
M não é utilizado em seu cálculo.
Assim como na primeira iteração, não há necessidade de se atribuir um valor numérico
para M e realizar o cálculo do custo reduzido exatamente como descrito pela expressão (11).
De fato, para se obter um índice k tal que
t
cNk − πLt aNk − M πA aNk ≤ cNj − πLt aNj − M πA
t
aNj , j = 1, . . . , n, (12)
2200
XL SBPO
A Pesquisa Operacional e o uso racional de recursos hídricos
02 a 05/09/08 João Pessoa, PB
4. Resultados e discussões
Para verificar a eficiência da abordagem proposta na Seção 3 na resolução de proble-
mas de otimização linear reais, 41 problemas da biblioteca NETLIB (http://www.netlib.
org/lp/data) foram resolvidos pelos métodos M-grande implícito e M-grande convencional,
sendo que para esse último utilizou-se M = 100 , 101 , . . . , 1010 e M = 10100 . Além disso, os
problemas também foram resolvidos pelo método de duas fases, descrito na Seção 2, com o
intuito de se realizar uma melhor comparação dos resultados obtidos.
Para a implementação desses métodos, foi utilizada uma biblioteca desenvolvida em
linguagem C pelo autores, baseada no método primal simplex com características como
estruturas de dados para matrizes esparsas, representação da base pela forma produto da
inversa e teste da razão de passagem dupla (Harris’ ratio test).
Na Tabela 3, são apresentados os resultados obtidos na resolução dos problemas. A
segunda coluna da tabela corresponde ao valor ótimo de cada problema, obtidos pelo método
M-grande implícito e verificados de acordo com Koch (2004). Nas demais colunas está o
número de iterações para a resolução de cada problema, de acordo com o método e o valor
de M utilizado (quando aplicável). Por questão de exposição, são apresentados os resultados
de apenas três valores numéricos para M . O valor 106 foi escolhido por se tratar do menor
valor de M com o qual o método M-grande foi capaz de obter a solução ótima correta de
todos os problemas. O valor 1010 representa um M razoavelmente grande enquanto 10100
corresponde a uma valor exagerado, utilizado para verificar a introdução de erros numéricos.
Todos os problemas foram resolvidos corretamente pelos métodos de duas fases, M-
grande implícito e M-grande convencional com M = 106 . Para M = 1010 , o problema
scorpion foi o único a apresentar erro em seu valor ótimo, que foi da ordem de 10−6 . Para
M = 10100 , somente o problema scsd1 apresentou erro em seu valor ótimo, sendo da ordem
de 10−8 . Para esse mesmo valor de M , o método M-grande não foi capaz de resolver os
problemas scorpion e scrs8, pois excedeu o número máximo de iterações sem obter uma
solução ótima. É importante ressaltar que mesmo para um valor exagerado como 10100
apenas 3 problemas foram prejudicados por erros numéricos, ao contrário do que é afirmado
2201
XL SBPO
A Pesquisa Operacional e o uso racional de recursos hídricos
02 a 05/09/08 João Pessoa, PB
2202
XL SBPO
A Pesquisa Operacional e o uso racional de recursos hídricos
02 a 05/09/08 João Pessoa, PB
Referências
[1] Arenales, MN; Armentano, VA; Morabito, R; Yanasse, HH (2007) Pesquisa Operacional.
Editora Campus.
[2] Arsham, H (2007) A computationally stable solution algorithm for linear programs.
Applied Mathematics and Computation. v.188, p.1549-1561.
[3] Bazaraa, MS; Jarvis, JJ; Sherali, HD (1990) Linear Programming and Network Flows.
2a ed. John Wiley & Sons Inc.
[5] Hu, J (2007) A note on “an improved initial basis for the simplex algorithm”. Computers
& Operations Research, v.34, p.3397-3401.
[6] Koberstein, A; Suhl, UH (2007) Progress in the dual simplex method for large scale LP
problems: practical dual phase 1 algorithms. Computational Optimization and Applica-
tions, v.37(1), p.49-65.
[7] Koch, T (2004) The final Netlib-LP results. Operations Research Letters, v.32, p.138-142.
[8] Maros, I (2003) Computational techniques of the simplex method. Kluwer Academic Pu-
blishers.
[9] Paparrizos, K (1993) An exterior point simplex algorithm for general linear problems.
Annals of Operations Research, v.32, p.497-508.
2203
XL SBPO
A Pesquisa Operacional e o uso racional de recursos hídricos
02 a 05/09/08 João Pessoa, PB
[11] Sousa, RS; Silva, CTL; Arenales, MN (2005) Métodos do tipo dual simplex para pro-
blemas de otimização linear canalizados. Pesquisa Operacional. v.25(3), p.349-382.
[12] Vieira Junior, H; Lins, MPE (2005) An improved initial basis for the simplex algorithm.
Computers & Operations Research, v.32, p.1983-1993.
2204