uma abordagem implÍcita para o mÉtodo m-grande …din.uem.br/sbpo/sbpo2008/pdf/arq0089.pdf ·...

12
UMA ABORDAGEM IMPLÍCITA PARA O MÉTODO M-GRANDE Pedro Augusto Munari Junior, Marcos Nereu Arenales Instituto de Ciências Matemáticas e de Computação Universidade de São Paulo Caixa Postal 668, São Carlos - SP, CEP 13560-970, Brasil [email protected], [email protected] RESUMO Um procedimento bastante conhecido para a obtenção de uma solução básica factível é o método M-grande. Entretanto, a dificuldade na escolha do parâmetro de penalização M é retratada na literatura de otimização linear como uma desvantagem do método. Em geral, um valor muito pequeno para M leva à obtenção de uma solução infactível, enquanto um valor muito grande pode resultar em um elevado número de iterações e na introdução de erros numéricos. Neste trabalho, é proposta uma modificação no método M-grande que considera M implicitamente durante a resolução do problema. Assim, a desvantagem retra- tada na literatura deixa de existir. Os aspectos conceituais dessa abordagem são descritos e os resultados computacionais obtidos na resolução de problemas da biblioteca NETLIB confirmam a eficiência da proposta. PALAVRAS CHAVE: otimização linear, método simplex, M-grande. 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

Upload: hoanglien

Post on 10-Dec-2018

213 views

Category:

Documents


0 download

TRANSCRIPT

UMA ABORDAGEM IMPLÍCITA PARA O MÉTODO M-GRANDE

Pedro Augusto Munari Junior, Marcos Nereu ArenalesInstituto de Ciências Matemáticas e de Computação

Universidade de São PauloCaixa Postal 668, São Carlos - SP, CEP 13560-970, Brasil

[email protected], [email protected]

RESUMO

Um procedimento bastante conhecido para a obtenção de uma solução básica factívelé o método M-grande. Entretanto, a dificuldade na escolha do parâmetro de penalizaçãoM é retratada na literatura de otimização linear como uma desvantagem do método. Emgeral, um valor muito pequeno para M leva à obtenção de uma solução infactível, enquantoum valor muito grande pode resultar em um elevado número de iterações e na introduçãode erros numéricos. Neste trabalho, é proposta uma modificação no método M-grande queconsidera M implicitamente durante a resolução do problema. Assim, a desvantagem retra-tada na literatura deixa de existir. Os aspectos conceituais dessa abordagem são descritose os resultados computacionais obtidos na resolução de problemas da biblioteca NETLIBconfirmam a eficiência da proposta.PALAVRAS CHAVE: otimização linear, método simplex, M-grande.

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 optimizationliterature as a disadvantage of the method. In general, a too small value for M producesan infeasible solution whereas a too high value can result in a large number of iterationsand insert numerical errors. In this paper, we propose a change in the Big-M method whichhandles 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 andcomputational results are given for a set of problems of the NETLIB library that confirmthe efficiency of the method.KEYWORDS: linear optimization, simplex method, Big-M.

2193

1. IntroduçãoA 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 chamoude método simplex. Desde então, um grande número de pesquisadores tem contribuídona área de otimização linear de diferentes maneiras, incluindo desenvolvimentos teóricos ecomputacionais e novas aplicações.

A aplicação do método simplex para a resolução de um problema de otimização linearexige que uma solução básica factível seja conhecida. Desse modo, deve-se definir uma baseinicial factível para a inicialização do método. O número de iterações e o tempo de execuçãodo método simplex para a resolução de um problema são extremamente dependentes da baseinicial 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 é diretaa 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é mesmouma solução ótima equivocada pode ser obtida, fazendo com que a utilização do métodoM-grande seja evitada.

Essas desvantagens envolvendo o método M-grande são retratadas por trabalhos recentesda 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, umvalor muito grande para M pode levar a problemas numéricos e a um número excessivo deiteraçõ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 inicialque tem grandes chances de ser próxima da base ótima. Entretanto, a base obtida pode nãoser factível e, então, os autores sugerem a utilização do método M-grande, porém alertandopara a desvantagem computacional do método. Arsham (2007) cita que o método M-grandepode 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ãonumé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ãogrande deve ser o M-grande? ”. De acordo com o autor, M não pode ser escolhido apenasolhando-se para a magnitude dos coeficientes da função objetivo. Dado que o problema a serresolvido é 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 melhorsolução básica factível que não tenha todas as variáveis artificiais nulas. Porém, essa é umacondição teórica e mesmo quando satisfeita, o método ainda não está livre das dificuldadesnuméricas.

Bertsimas e Tsitsiklis (1997) comentam que não há a necessidade de se fixar um valornumé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 sejarealizada considerando-o suficientemente grande. Entretanto, na descrição dos autores, ostermos que não envolvem M são desprezados na comparação dessas expressões, fazendo comque a função objetivo do problema original seja ignorada nas expressões de custos reduzidoscontendo o parâmetro. Além disso, a abordagem é descrita por meio da resolução de umproblema particular usando o método simplex na forma tableau, sem expor as modificaçõesnecessárias para a implementação computacional da proposta.

2194

Considerando essa revisão da literatura, uma implementação computacional do métodoM-grande é sugerida neste trabalho, tratando o parâmetro M implicitamente durante aresolução do problema. Assim como na abordagem que atribui um valor numérico para M ,os coeficientes da função objetivo do problema são considerados na comparação de custosreduzidos envolvendo o parâmetro. As modificações necessárias no método simplex paraconsiderar M implicitamente são expostas e discutidas e os testes computacionais realizadosilustram a eficiência da abordagem em problemas de otimização linear da biblioteca NETLIB(http://www.netlib.org/lp/data).

Na seção a seguir, é dada uma breve revisão sobre a obtenção de soluções básicas fac-tíveis para problemas de otimização linear, envolvendo o método de duas fases e o métodoM-grande. Na Seção 3, é apresentada uma abordagem implícita para o método M-grande.Os testes realizados para a comparação dessa abordagem com o método M-grande conven-cional são expostos e discutidos na Seção 4. Por fim, as conclusões obtidas são apresentadasjuntamente com a descrição de trabalhos futuros na Seção 5.

2. Inicialização do método simplexOs problemas de otimização linear consistem na minimização ou maximização de uma

função linear sujeita a um número finito de restrições lineares sobre as variáveis envolvidas.Considere o seguinte problema de otimização linear na forma padrão:

minimizar f(x) = ctx (1)sujeito a Ax = b (2)

x ≥ 0 (3)

com A ∈ Rm×n, x ∈ Rn, c ∈ Rn, b ∈ Rm, m < n e posto(A) = m. Em (1) temos a funçãoobjetivo do problema que, nesse caso, será minimizada. As equações do sistema linear (2)recebem o nome de restrições do problema e as desigualdades em (3) são as condições denão-negatividade. Em geral, um problema de otimização linear na forma padrão possuidiversas variáveis de folga, utilizadas para expressar restrições de desigualdade em formade equações. Uma variável de folga é toda aquela cuja coluna correspondente em A é umacoluna da matriz identidade.

O motivo de apresentar o problema na forma padrão é facilitar a descrição do métodosimplex e da teoria envolvida. Existem diversas outras formas equivalentes para se descreverum problema de otimização linear, as quais permitem a exploração de certas particularidadesdurante a resolução e podem levar a abordagens mais eficientes, como apresentado em Sousaet al. (2005) e Maros (2003).

A aplicação do método simplex para a resolução de problemas de otimização linear exigeque uma base inicial factível seja conhecida. Desse modo, o primeiro passo antes da aplicaçãodo método é definir uma base inicial. Se essa base for factível, o método simplex pode seriniciado. Caso contrário, dois caminhos são possíveis:

• utiliza-se uma abordagem de duas fases, caracterizada pela existência de uma faseinicial bem determinada, denominada Fase-I. Nesta fase, um problema auxiliar é re-solvido e uma solução básica factível para o problema original é obtida. Em umasegunda etapa, denominada Fase-II, o método simplex é iniciado com a base factívelobtida na Fase-I; ou

• utiliza-se uma abordagem de fase única, na qual o método simplex pode ser iniciadosem que se conheça uma base factível correspondente e a factibilidade da solução éobtida enquanto se busca, ao mesmo tempo, uma solução ótima do problema. Paraisso, a função objetivo do problema deve ser modificada pela adição de termos queagem como penalizadores de soluções infactíveis.

2195

Aspectos teóricos e computacionais sobre a inicialização do método simplex envolvendo asabordagens citadas acima podem ser encontrados em Arenales et al. (2007) e Maros (2003).

Uma maneira bastante simples de se construir uma base inicial para um problema deotimização linear é por meio da introdução de variáveis artificiais. Dado um problema deotimização linear na forma padrão (1)-(3), uma variável artificial yi > 0 é adicionada a cadarestrição do problema, fazendo com que as restrições do problema sejam redefinidas como:

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−1b ≥0. Sem perda de generalidade, será considerado b ≥ 0, de modo que D = I. Assim, umabase inicial factível B = I com solução inicial (x,y) = (0,b) está sempre disponível paraum 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 doproblema, já que são adicionadas m variáveis. Entretanto, a facilidade conceitual e práticadessa 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 umarestrição se não houver uma variável de folga disponível nessa restrição, ou se a variável defolga existir mas levar a uma solução básica infactível.

Dada uma solução (x, y) das equações descritas em (4) e que satisfaça (5), tem-se Ax = bse, e somente se, y = 0. Em outras palavras, x será uma solução factível para o problemaoriginal quando cada variável artificial for nula. Para se obter um par (x, y) 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 é definidapela soma das variáveis artificiais. Matematicamente, o problema auxiliar é dado por:

minimizar fa(y) =∑m

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 auxiliare caso a solução ótima (x, y) obtida satisfaça y = 0 tem-se x como solução factível doproblema original, podendo ser iniciada a Fase-II. Note que a função objetivo do problemaoriginal não é considerada no problema auxiliar, fazendo com que essa abordagem obtenhauma solução factível x sem considerar sua otimalidade.

A abordagem de fase única utilizando variáveis artificiais é conhecida na literatura comomé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 suficientementegrande para que não seja vantajoso mantê-las em valores positivos. Sendo assim, o problemaoriginal é redefinido como:

minimizar f(x,y) = ctx + M∑m

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 aum problema auxiliar, mas sim à redefinição do problema original. O método M-grandeconsiste em aplicar o método simplex sobre o problema M-grande. A solução ótima obtida

2196

(x∗,y∗) é analisada e, dependendo do resultado obtido, uma solução ótima para o problemaoriginal pode ter sido encontrada. Se y∗ > 0 então o problema original é infactível. Casocontrário, tem-se y∗ = 0 e x∗ é solução ótima do problema original. Se o problema originalfor 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 paraessa 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 fazercom que uma solução do problema M-grande seja infactível para o problema original eum valor grande demais pode levar a um elevado número de iterações e à introdução deerros numéricos durante a resolução do problema. Conforme retratado na literatura, essascaracterísticas fazem com que o método M-grande seja evitado e que uma abordagem deduas 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 diferentesvalores 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.

agg3 lotfi scsd8 ship12lM IT Valor ótimo IT Valor ótimo IT Valor ótimo IT Valor ótimo1 550 -29860149,847 264 -25,345372729 28 45,0000000 107 686,600010 554 -25520859,080 303 -25,264706062 414 441,2499999 107 6865,9995102 555 8528305,923 282 -25,264706062 1034 904,9999999 107 68659,9952103 569 10312115,935 287 -25,264706062 1195 904,9999999 107 686599,9517104 570 10312115,935 287 -25,264706062 1334 904,9999999 1337 1470187,9193105 570 10312115,935 287 -25,264706062 1151 904,9999999 1337 1470187,9193106 569 10312115,935 287 -25,264706062 1151 904,9999999 1330 1470187,9193107 571 10312115,935 324 -25,264706062 1187 904,9999999 1330 1470187,9193108 569 10312115,935 308 -25,264706062 1153 904,9999999 1330 1470187,9193109 571 10312115,935 357 -25,264706062 1311 904,9999999 1330 1470187,91931010 571 10312115,935 343 -25,264706062 1047 904,9999999 1330 1470187,91931050 601 10312115,935 308 -25,264706062 1256 904,9999999 2291 1470187,919310100 597 10312115,935 319 -25,264706062 1440 904,9999999 2240 1470187,9193

Tabela 2. Resultados obtidos pelo método M-grande para diferentes valores de M .

Como pode ser observado na Tabela 2, o número de iterações para a resolução de umproblema pelo método M-grande é extremamente dependente do valor escolhido para M .Além disso, note que é difícil definir um valor único para M que seja adequado para qualquerproblema. Para o problema lotfi, M = 102 é um valor bom pois leva à obtenção dasolução ótima do problema original em relativamente poucas iterações. Entretanto, paraos problemas agg3 e ship12l esse valor de M leva a uma solução infactível. Em geral,valores grandes para M estão associados a um maior o número de iterações, como pode serobservado para os problemas agg3 e ship12l com M igual 1050 e 10100. Entretanto, esse fatonem sempre é verificado, como mostra os problemas lotfi e scsd8. É importante observarque mesmo para um valor exagerado como M = 10100 o valor ótimo desses problemas nãofoi prejudicado por erros numéricos. Esse fato é melhor discutido na Seção 4.

Pelos resultados obtidos, verifica-se que a definição de um valor adequado para o parâ-metro M é determinante para a obtenção de uma solução correta em um número de iteraçõesrelativamente pequeno. Por outro lado, não existe uma regra que permita definir um bomvalor para M a priore. A abordagem proposta na seção a seguir tem o objetivo de evitaressa escolha, considerando M implicitamente durante a resolução do problema.

2197

3. O método M-grande implícitoNesta seção é apresentada uma nova abordagem para o método M-grande, que será

chamada de método M-grande implícito, na qual M é utilizado implicitamente, isto é,nenhum valor numérico é definido para M e o método simplex é modificado de modo aconsiderar M suficientemente grande.

Uma abordagem semelhante foi proposta por Paparrizos et al. (2003) no contexto dométodo simplex de pontos exteriores, uma variação do método simplex que permite a in-factibilidade da solução básica (Paparrizos, 1993). Além disso, os autores consideram queapenas uma variável artificial é adicionada ao problema. A abordagem aqui apresentada émais geral pois é descrita para o método simplex convencional e não se restringe à utilizaçãode apenas uma variável artificial.

Na seção anterior, foi visto que o método M-grande redefine o problema a ser resolvido,adicionando variáveis artificiais e penalizando-as na função objetivo, por meio de um pa-râmetro numérico M . O problema continua sendo um problema de otimização linear naforma padrão com m restrições, porém possui agora m + n variáveis. A fim de facilitar aexposição, o problema M-grande será colocado no formato (1)-(3), de acordo com a seguinteredefinição:

A := [A | I ] , x :=[

xy

], ct :=

[ct | (M, . . . , M)t

]. (6)

A matriz de coeficientes do problema passa a ter a matriz identidade como submatriz,correspondendo às colunas das variáveis artificiais. O vetor de variáveis e o vetor de custostambém são modificados de modo a considerar as variáveis artificiais e seus custos. O método(primal) simplex apresentado no Quadro 1 pode ser utilizado para resolver o problema M-grande, já que uma base factível B = I é conhecida.

Entrada Problema de otimização linear na forma padrão com partição básica primalfactível A = [B | N]. A possui m linhas e m + n colunas.

Passo 1 Calcule a solução básica primal: xB = B−1b, xN = 0.Passo 2 Calcule o vetor multiplicador simplex: πt = ct

BB−1.

Passo 3 Teste de otimalidade:Calcule os custos reduzidos cNj = cNj − πtaNj , j = 1, . . . , n.Se cNj ≥ 0 ∀j então PARE! A solução básica atual é ótima!Caso contrário, obtenha k = arg min{cNj

| j = 1, . . . , n}.Passo 4 Calcule as coordenadas básicas da direção simplex: dB = −B−1aNk

.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 umregistro de quais variáveis são legítimas e quais são artificiais para que ao se obter umasolução ótima, possa ser verificado se esta é factível para o problema original, conformeespecificado pela Tabela 1. Além disso, uma vez que uma variável artificial tenha saído dabase, 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 comxB = y = b e ct

B = (M,M, . . . ,M). Assim, o vetor multiplicador simplex no Passo 2, pode

2198

ser escrito como:πt = ct

BB−1 = (M,M, . . . , M)B−1 = MetB−1

com et = (1, 1, . . . , 1). Definindo o vetor πtA = etB−1, tem-se

πt = MπtA. (7)

Desse modo, os custos reduzidos no Passo 3 podem ser calculados como:

cNj = cNj −MπtAaNj , j = 1, . . . , n. (8)

Pelo método M-grande, M é positivo e suficientemente grande. Assim o segundo termo dadiferença em (8) predomina sobre o primeiro, isto é,∣∣Mπt

AaNj

∣∣ >>∣∣cNj

∣∣ , j = 1, . . . , n,

sempre que πtAaNj 6= 0. Quando esse termo é nulo, o custo reduzido é o próprio custo da

variável não-básica.Sendo assim, observe que não há a necessidade de se atribuir um valor numérico para M

e realizar o cálculo do custo reduzido exatamente como descrito pela expressão (8). Bastaanalisar os termos da expressão separadamente, levando-se em conta que M é positivo esuficientemente grande. De fato, na primeira iteração, o Passo 3 deve obter um índice k talque

cNk−Mπt

AaNk≤ cNj −Mπt

AaNj , j = 1, . . . , n. (9)

Para índices k e j arbitrários, essa desigualdade é verdadeira se, e somente se, um dos doiscasos ocorre:

(i) −πtAaNk

< −πtAaNj ; ou

(ii) πtAaNk

= πtAaNj e cNk

≤ cNj .

Note que esse resultado é válido mesmo quando πtAaNj = 0, para algum j.

As expressões dos demais passos do método não dependem do vetor de custos, seja diretaou indiretamente. Dessa maneira, o parâmetro M não é utilizado em nenhum outro cálculoda iteração e não há necessidade de se analisar os demais passos.

Considere agora uma iteração qualquer na resolução do problema M-grande pelo métodosimplex. Se nenhuma variável artificial se encontra na base, então o vetor de custos básicosnão possui componentes iguais a M e, assim, os cálculos estão livres do parâmetro. Suponha,então, que exista pelo menos uma variável artificial na base. É possível realizar, sem perdade generalidade, uma reordenação das variáveis básicas de modo a particionar a base emB = [BL | BA], sendo BL a matriz contendo as colunas de B correspondentes às variáveislegítimas e BA as colunas correspondentes às variáveis artificiais. Essa partição induz sobreo vetor de custos básicos a partição ct

B =[ctBL | c

tBA

]com

ctBL = ( cB1 . . . cBp 0 . . . 0 ),

ctBA = ( 0 . . . 0 M . . . M )

e p sendo o número de variáveis legítimas na base. Considerando a partição definida, o vetormultiplicador simplex pode ser escrito como:

πt = ctBB

−1 = ctBLB

−1 + ctBAB−1 = ct

BLB−1 + M etB−1

com et = (0, . . . , 0, 1, . . . , 1), um vetor cujas primeiras p posições são nulas e as demais sãoiguais a 1. De maneira semelhante à primeira iteração, define-se πt

L = ctBLB

−1 e πtA = etB−1

e, assim, o vetor multiplicador simplex é dado por:

πt = πtL + Mπt

A (10)

2199

Substituindo esse resultado na expressão do custo reduzido, dada do Passo 3, tem-se:

cNj = cNj − (πtL + Mπt

A)aNj = cNj − πtLaNj −Mπt

AaNj , j = 1, . . . , n. (11)

Para M positivo e suficientemente grande, a seguinte relação é válida sempre que πtAaNj 6= 0:∣∣Mπt

AaNj

∣∣ >>∣∣cNj − πt

LaNj

∣∣ , j = 1, . . . , n.

Para πtAaNj = 0, o custo reduzido cNj 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

cNk− πt

LaNk−Mπt

AaNk≤ cNj − πt

LaNj −MπtAaNj , j = 1, . . . , n, (12)

basta analisar os termos da expressão separadamente, levando-se em conta que M é positivoe suficientemente grande. Para índices k e j arbitrários, a desigualdade acima é verdadeirase, e somente se, um dos dois casos ocorre:

(i) −πtAaNk

< −πtAaNj ; ou

(ii) πtAaNk

= πtAaNj e (cNk

− πtLaNk

) ≤ (cNj − πtLaNj ).

Observe a semelhança entre as expressões (7) e (8) obtidas na primeira iteração e asexpressões (10) e (11). Na realidade, as expressões da primeira iteração são um caso parti-cular destas, em que p = 0, ou seja, nenhuma variável legítima está na base. Por outro lado,se todas as variáveis básicas são legítimas, então p = m com πA = 0. Utilizando a expres-são (11), os custos reduzidos calculados têm componentes artificiais nulas e correspondemao cálculo convencional. Logo, todos os casos se enquadram nos resultados obtidos aqui,fazendo com que a modificação das expressões dos passos 2 e 3 do método simplex seja deâmbito geral.

O método apresentado no Quadro 2 corresponde ao método simplex apresentado noQuadro 1, modificado de modo a considerar M implicitamente nos cálculos, de acordo coma descrição realizada. No Passo 3 do método modificado, a expressão para a obtenção doíndice k pode ser reescrita da seguinte maneira: Calcule o conjunto K = arg min{cANj

| j =1, . . . , n}. Se K possui apenas um elemento então defina-o como k. Caso contrário, obtenhak = arg min{cLNj

| j ∈ K}.A ordenação das variáveis básicas sugerida na obtenção dos resultados, tem o único

intuito de facilitar a compreensão do texto. Em uma implementação computacional dométodo apresentado no Quadro 2, deve-se apenas armazenar quais variáveis são legítimas equais são artificiais e realizar os cálculos de acordo com essa informação. Além disso, umcontador de quantas variáveis artificiais estão presentes na base pode ser utilizado a fim deevitar cálculos desnecessários.

Com essa nova proposta, evita-se a definição de um valor numérico para M e o método M-grande está livre de desvantagens retratadas na literatura. Para atingir esse objetivo, apenasdois passos do método simplex precisam ser modificados, sem aumentar a dificuldade de suaimplementação computacional.

Vale ressaltar que a proposta apresentada por Bertsimas e Tsitsiklis (1997) para o trata-mento implícito de M diferencia-se da abordagem descrita aqui por não realizar o desempatedas expressões utilizando os termos que não dependem de M , conforme definido em (9) e(12). Assim, a proposta dos autores se assemelha ao método de duas fases, já que ignoraos coeficientes da função objetivo do problema original nas expressões de custos reduzidoscontendo M .

2200

Entrada Problema M-grande conforme definido em (6).Inicialize B = I, N = A, cBL = 0, et = (1, . . . , 1).

Passo 1 Calcule a solução básica primal: xB = B−1b, xN = 0.Passo 2 Calcule as componentes legítima e artificial do vetor multiplicador simplex:

πtL = ct

BLB−1 e πt

A = etB−1.Passo 3 Teste de otimalidade:

Calcule as componentes legítima e artificial dos custos reduzidos:cLNj

= cNj − πtLaNj e cANj

= −πtAaNj , j = 1, . . . , n.

Se cLNj≥ 0 e cANj

≥ 0 ∀j então PARE!A solução atual é ótima para o problema M-grande!

Caso contrário, obtenha k tal quek = arg min{cLNq

| cANq≤ cANj

, q = 1, . . . , n e j = 1, . . . , n}.Passo 4 Calcule as coordenadas básicas da direção simplex: dB = −B−1aNk

.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}.Reordene B para obter B = [BL | BA].

Redefina as matrizes B e N e o vetor e de acordo com os índices atualizados.Inicie uma nova iteração a partir do Passo 1.

Quadro 2. Método simplex modificado para o método M-grande implícito.

4. Resultados e discussõesPara 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, osproblemas também foram resolvidos pelo método de duas fases, descrito na Seção 2, com ointuito de se realizar uma melhor comparação dos resultados obtidos.

Para a implementação desses métodos, foi utilizada uma biblioteca desenvolvida emlinguagem C pelo autores, baseada no método primal simplex com características comoestruturas de dados para matrizes esparsas, representação da base pela forma produto dainversa 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. Asegunda coluna da tabela corresponde ao valor ótimo de cada problema, obtidos pelo métodoM-grande implícito e verificados de acordo com Koch (2004). Nas demais colunas está onúmero de iterações para a resolução de cada problema, de acordo com o método e o valorde M utilizado (quando aplicável). Por questão de exposição, são apresentados os resultadosde apenas três valores numéricos para M . O valor 106 foi escolhido por se tratar do menorvalor de M com o qual o método M-grande foi capaz de obter a solução ótima correta detodos 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 problemascorpion foi o único a apresentar erro em seu valor ótimo, que foi da ordem de 10−6. ParaM = 10100, somente o problema scsd1 apresentou erro em seu valor ótimo, sendo da ordemde 10−8. Para esse mesmo valor de M , o método M-grande não foi capaz de resolver osproblemas scorpion e scrs8, pois excedeu o número máximo de iterações sem obter umasoluçã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

Problema Valor ótimo Duas fases M implícito M = 106 M = 1010 M = 10100

adlittle 2,2549496316E+05 167 176 164 170 158afiro -4,6475314286E+02 29 28 28 28 28agg2 -2,0239252356E+07 585 550 548 548 585agg3 1,0312115935E+07 594 570 569 571 597bandm -1,5862801845E+02 1227 1207 1193 1193 1312blend -3,0812149846E+01 140 141 141 127 127bnl1 1,9776295615E+03 4236 4460 5002 4720 4481bnl2 1,8112365404E+03 14946 13907 13630 14080 14422brandy 1,5185098965E+03 559 560 560 559 559e226 -1,8751929066E+01 822 823 822 806 842fffff800 5,5567956482E+05 1861 1669 1589 1680 1630israel -8,9664482186E+05 881 887 890 862 751lotfi -2,5264706062E+01 289 287 287 343 319maros-r7 1,4971851665E+06 4293 4287 4287 4253 4255sc105 -5,2202061212E+01 130 129 129 129 126sc205 -5,2202061212E+01 238 237 237 243 243sc50a -6,4575077059E+01 60 58 58 58 58sc50b -7,0000000000E+01 59 58 58 60 58scagr25 -1,4753433061E+07 1032 942 942 937 924scagr7 -2,3313898243E+06 217 230 230 231 241scfxm1 1,8416759028E+04 728 664 659 662 712scfxm2 3,6660261565E+04 1460 1368 1384 1331 1423scfxm3 5,4901254550E+04 2189 2073 2084 1972 2181scorpion 1,8781248227E+03 406 398 398 398 —scrs8 9,0429695380E+02 1584 1459 1459 1459 —scsd1 8,6666666743E+00 216 216 235 251 238scsd8 9,0499999993E+02 1323 1151 1151 1047 1440sctap1 1,4122500000E+03 697 491 489 489 593sctap2 1,7248071429E+03 2542 2063 2332 2547 2809sctap3 1,4240000000E+03 3139 3233 3062 2994 3069share1b -7,6589318579E+04 453 452 452 452 452share2b -4,1573224074E+02 172 169 169 169 169ship04l 1,7933245380E+06 483 434 434 434 487ship04s 1,7987147004E+06 458 416 416 416 461ship08l 1,9090552114E+06 1149 961 961 960 1191ship08s 1,9200982105E+06 986 856 856 855 986ship12l 1,4701879193E+06 2293 1330 1330 1330 2240ship12s 1,4892361344E+06 1523 1229 1229 1229 1521stocfor1 -4,1131976219E+04 141 140 140 140 140stocfor2 -3,9024408538E+04 2867 2798 2798 2830 2866woodw 1,3044763331E+00 2684 2625 2392 2486 2549Tabela 3. Resultados obtidos na resolução dos problemas por diferentes métodos e parâmetros.

recentemente na literatura (ver Introdução). Provavelmente, essas afirmações se baseiam emresultados computacionais antigos, referentes à utilização de variáveis com precisão simples.

Analisando-se os dados da Tabela 3, é possível verificar que o método M-grande implícitoresultou em um número de iterações menor ou igual que o método M-grande convencionalem 17 problemas (41, 5%). Comparando o método de duas fases com o método M-grandeimplícito, em 33 problemas (80, 5%) esse resultou em um número de iterações menor ou igualao obtido por aquele. Apenas para os problemas adlittle e sctap3 o método M-grandeimplícito obteve maior número de iterações que todos os demais.

Para os testes com M até 105, o método M-grande obteve soluções infactíveis para algunsproblemas. Para M = 106 todos os problemas foram resolvidos corretamente, podendo levarà conclusão equivocada de que essa seria uma boa escolha para M . Entretanto, um valoradequado para M depende do problema a ser resolvido e, assim, para a resolução de outrosproblemas, M = 106 pode levar a soluções infactíveis.

2202

Considerando os testes realizados, é possível verificar que o método M-grande implícitoestá realmente livre das principais desvantagens relatadas na literatura a respeito do métodoM-grande convencional e leva, na maioria dos casos, a menos iterações do que utilizando-seo método de duas fases.

5. Conclusões e trabalhos futurosO método M-grande implícito proposto mostrou-se superior ao método M-grande, como

pôde ser observado nos resultados obtidos pela aplicação do método na resolução de 41problemas de otimização linear da biblioteca NETLIB. Sem a necessidade de se definir umvalor numérico para M , o método não obtém soluções ótimas equivocadas, não sofre aintrodução de erros numéricos e, na maioria dos casos, não leva ao aumento do número deiterações. O método também se mostrou vantajoso com relação ao método de duas fases,devido ao menor número de iterações para a resolução de grande parte dos problemas.

As mudanças propostas não dificultam a implementação computacional do método comrelação ao método M-grande, já que são necessárias pequenas modificações no método sim-plex de modo a considerar o parâmetro M implicitamente na realização de comparaçõesdurante a resolução do problema.

O próximo passo é estender essa abordagem para o método dual simplex, que tambémpode ser inicializado pelo método M-grande (Koberstein, 2007). Nesse caso, busca-se umasolução básica dual factível e, assim, o problema M-grande é definido de outra maneira. Aabordagem também pode ser aplicada na resolução de problemas de otimização linear cana-lizados, quando incorporada ao método dual canalizado proposto por Sousa et al. (2005).

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.

[4] Bertsimas, D; Tsitsiklis, JN (1997) Introduction to Linear Optimization. Athena Scien-tific, Belmont, Massachusetts.

[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 LPproblems: 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

[10] Paparrizos, K; Samaras, N; Stephanides, G (2003) An efficient simplex type algo-rithm for sparse and dense linear programs. European Journal of Operational Research,v.148(2), p.323-334.

[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