You are on page 1of 15

verso impressa ISSN 0101-7438 / verso online ISSN 1678-5142

REORDENAMENTO EFICIENTE DAS COLUNAS BSICAS NA PROGRAMAO DE LOTES E CORTES Glaucia Maria Bressan * Departamento de Engenharia Eltrica / EESC Universidade de So Paulo (USP) So Carlos SP glauciab@sel.eesc.usp.br Aurelio Ribeiro Leite de Oliveira Inst. de Matemtica, Estatstica e Computao Cientfica Universidade Estadual de Campinas (UNICAMP) Campinas SP aurelio@ime.unicamp.br
* Corresponding author /autor para quem as correspondncias devem ser encaminhadas

Recebido em 06/2003; aceito em 07/2004 aps 1 reviso Received June 2003; accepted July 2004 after one revision

Resumo
Neste trabalho consideramos o problema combinado, que acopla os problemas de dimensionamento de lotes e de corte de estoque, incluindo uma formulao matemtica deste problema. Consideramos algumas propriedades da matriz de restries deste modelo e como construir uma base esparsa para ela, utilizando um reordenamento esttico das colunas. Resultados numricos de uma implementao que realiza trocas de colunas bsicas e verifica sua esparsidade, simulando o mtodo simplex so apresentados. Experimentos numricos tambm comprovam a robustez desta abordagem. Conclumos que a proposta de construo da base esttica esparsa leva a bons resultados computacionais com relao velocidade e robustez em comparao com abordagens que no consideram a estrutura esparsa da matriz.

Palavras-chave: programao linear; corte de estoque; dimensionamento de lotes.

Abstract
In this work the combined problem is considered, which solves simultaneously the lot sizing and the cutting stock problems. We study some properties of the matrix of constraints and how to factorize the base without losing sparsity in the simplex method context, by a static reordering of the basic columns. Numerical results simulating simplex iterations and verify the sparsity of the factorizations are presented. Numerical experiments had also proven the robustness of this strategy. We conclude that the approach of constructing of the static sparse base reordering leads to very good computational results for both: speed and robustness, in comparison with approaches which do not consider the sparse structure of the matrix of constraints.

Keywords: linear programming; cutting stock; lot sizing.

Pesquisa Operacional, v.24, n.2, p.323-337, Maio a Agosto de 2004

323

Bressan & Oliveira Reordenamento eficiente das colunas bsicas na programao de lotes e cortes

1. Introduo As indstrias de manufatura tm sido estimuladas a tornar seus processos mais eficientes devido a aspectos econmicos e avanos computacionais. Isto incentiva o crescimento de modelos de otimizao para o controle e planejamento de sistemas produtivos, motivando pesquisas acadmicas. O gerenciamento da produo dentro de uma indstria responsvel pelo planejamento e controle da transformao de matrias-primas em produtos finais. O sistema responsvel por este gerenciamento denomina-se Planejamento e Controle da Produo, que coordena as atividades, desde a aquisio de matrias-primas at a entrega dos produtos finais. Este problema bem conhecido na literatura e tem motivado pesquisas acadmicas (Nonas et al., 2000). O objetivo deste trabalho consiste na resoluo dos sistemas lineares provenientes do mtodo simplex, explorando a estrutura matricial inerente ao problema de programao de lotes e cortes. Este um modelo cuja matriz de restries possui uma estrutura bloco angular que acoplada por restries adicionais. Os blocos matriciais tm alto grau de esparsidade e pouco acoplamento, indicando que esta abordagem deve produzir bons resultados em termos de eficincia computacional. A soluo eficiente de sistemas lineares de grande porte de fundamental importncia na resoluo de problemas de otimizao. A soluo pode ser obtida atravs de mtodos genricos, via decomposio LU das matrizes que formam as bases no mtodo simplex, ou atravs da explorao da estrutura da classe de problemas a ser resolvida (Luenberger, 1984). Este artigo est organizado do seguinte modo, na Seo 2 so introduzidos o problema de corte de estoque e o mtodo de gerao de colunas. Na Seo 3 definido o problema combinado e formulado seu modelo matemtico, de onde extramos a matriz de restries. Na Seo 4 exibida uma base inicial desta matriz com suas propriedades mais relevantes. A Seo 5 contm os experimentos numricos realizados em MATLAB e a decomposio LU proposta, que considera a esparsidade da matriz.

2. Problema de Corte de Estoque e Gerao de Colunas Suponha que vrias barras estejam disponveis para serem cortadas na produo dos diversos itens. Temos ento que escolher quantas barras devem ser cortadas e como cort-las. Os objetos em estoque de mesmo tipo esto disponveis em grande quantidade e podem ser de um nico ou de vrios tipos, havendo ou no limitao de estoque. A soluo deste problema ter muitas peas em estoque igualmente cortadas para a produo dos diferentes tipos de itens. Chamamos de padro de corte a maneira que um objeto em estoque cortado para produzir peas menores. As possveis combinaes entre as peas que devem ser produzidas so muitas. Desta forma, teremos um nmero muito elevado de padres de corte. Geralmente, este problema formulado como um problema de otimizao inteira, que muito difcil de ser resolvido computacionalmente de forma exata. Para lidar com essas dificuldades, Gilmore & Gomory (1961) relaxaram a condio de integralidade e propuseram um mtodo eficiente de gerao de colunas para resolver o problema de otimizao linear contnua.

324

Pesquisa Operacional, v.24, n.2, p.323-337, Maio a Agosto de 2004

Bressan & Oliveira Reordenamento eficiente das colunas bsicas na programao de lotes e cortes

Cada padro de corte corresponde a uma coluna. Assim, o mtodo simplex com gerao de colunas consiste em, a cada iterao, substituir uma coluna (um padro de corte) bsica por uma nova coluna (um novo padro de corte) que melhora a soluo corrente. Determinar a melhor coluna para entrar na base consiste em resolver um subproblema conhecido na literatura como Problema da Mochila, no qual um padro de corte deve satisfazer:
* l11 + l22 + + lP P L, p Z + com p = 1, , P,

onde P o nmero de peas, L o comprimento total do objeto, lp o comprimento da pea tipo p e p a quantidade de peas no padro de corte (1 , 2 , , P). Ou seja, a soma total do comprimento das peas que esto contidas no padro de corte deve ser menor ou igual ao comprimento do objeto a ser cortado. Portanto, no problema de corte de estoque unidimensional, a cada iterao do mtodo simplex ser necessrio resolver o problema da mochila para determinar a coluna com o menor custo relativo (Chvtal, 1983; Marques, 2000; Martello & Toth, 1989).

3. Problema Combinado O processo de programar a produo pode ser dividido em trs etapas: a primeira define uma carteira de pedidos para um horizonte de planejamento finito, especificando as quantidades dos produtos finais demandados e suas respectivas datas de entrega. A segunda etapa converte a demanda de produtos finais em demanda de peas. Deste modo, um tipo de pea pode ser utilizado por vrios produtos finais diferentes. Finalmente, a terceira etapa decide a quantidade de produtos finais que devem ser produzidos em cada perodo, minimizando os custos e as perdas ocorridas no processo de corte das placas em peas. Freqentemente existem perdas de material no corte de peas. Esta perda tende a ser relativamente menor conforme a demanda de peas aumenta, devido a um melhor rearranjo dos padres de corte nas placas. Portanto surge uma presso econmica para fabricar alguns produtos antecipadamente de modo a minimizar as perdas. Por outro lado, os custos de estoque exercem presso oposta no sentido de retardar a produo. Baseado nesta deciso de antecipar ou no a produo de certos produtos finais surge o Problema Combinado, que acopla dois importantes problemas de otimizao, o dimensionamento de lotes e o corte de estoque (Gramani, 2001). 3.1 Problema de Dimensionamento de Lotes e Problema de Corte de Estoque Vejamos os problemas de corte de estoque e de dimensionamento de lotes descrevendo separadamente cada um deles. Problema de Dimensionamento de Lotes (PDL): Consiste em planejar a quantidade dos itens a ser produzida em vrios estgios, em cada perodo ao longo de um horizonte de tempo finito, de modo a atender a demanda e otimizar uma funo objetivo, como minimizar os custos de produo e de estocagem. Um PDL pode ser classificado como monoestgio, onde os itens so produzidos independentemente, e multiestgio, quando as produes dos itens so dependentes. Para resolvermos este problema, podemos decomp-lo em M subproblemas com apenas um produto final, que podem ser resolvidos, por exemplo, por programao dinmica (Wagner & Whitin, 1958).

Pesquisa Operacional, v.24, n.2, p.323-337, Maio a Agosto de 2004

325

Bressan & Oliveira Reordenamento eficiente das colunas bsicas na programao de lotes e cortes

Problema de Corte de Estoque (PCE): Consiste em cortar um conjunto de objetos disponveis em estoque em peas menores otimizando uma certa funo objetivo, por exemplo, minimizar a perda total ou o nmero de objetos a serem cortados. Algumas regras so necessrias para definir o processo de corte, como cortes do tipo guilhotinado (por exemplo, onde cada corte sobre uma placa retangular produz duas novas peas retangulares), limitao de peas (cortes restritos ou irrestritos), nmero de estgios ( dito ser 2-estgios quando apenas uma mudana no sentido dos cortes guilhotinados permitida: horizontal/ vertical ou vertical/horizontal). Alm disto, o problema ser bidimensional quando duas dimenses so relevantes para o corte. Para resolver este problema, podemos aplicar o mtodo simplex em conjunto com a tcnica de gerao de colunas (Gilmore & Gomory, 1965). 3.2 Resoluo Prtica do Problema Combinado Em situaes reais, a maioria das indstrias aborda esses dois problemas de forma separada, devido alta complexidade do Problema Combinado. Entretanto, trat-los de forma separada pode elevar os custos globais, principalmente se uma parcela significativa do custo do produto final formada pelo material a ser cortado. Para resolvermos os problemas de Corte de Estoque e de Dimensionamento de Lotes separadamente, podemos aplicar uma Heurstica da Decomposio (Gramani, 2001), que consiste em: 1. Resolver o PDL, em que realizamos o planejamento da produo, decidindo a quantidade de cada tipo de produto final a ser produzido em cada perodo do horizonte de planejamento, minimizando os custos de produo e estoque; 2. Para cada perodo, resolvemos um problema de corte de estoque com restries de capacidade, e assim determinamos a quantidade de placas cortadas conforme um certo padro; 3. A funo objetivo do problema combinado dada pela soma das funes objetivos dos problemas PDL e PCE. Apesar das dificuldades do modelo combinado quanto integralidade das variveis que representam a quantidade de placas cortadas num certo padro e a grande quantidade de padres de corte que podem ser gerados, esta abordagem fornece um ganho significativo nos custos globais, incentivando estudos nesta linha. 3.3 Formulao Matemtica do Problema Combinado O Problema Combinado consiste em decidir a quantidade de produtos finais a serem produzidos em cada perodo do horizonte de planejamento tal que minimize os custos da produo e estocagem (PDL) e a quantidade de placas a serem cortadas para compor produtos finais (PCE). Uma considerao importante nos modelos reais a disponibilidade da serra em cada perodo. Temos de assegurar que o tempo gasto para cortar as placas no excede o tempo disponvel. 3.3.1 O Modelo Uma forma de resolver o Modelo Combinado desconsidera a ocorrncia de custos de preparao e relaxa a integralidade das variveis que representam a quantidade de placas cortadas, o que pressupe grandes quantidades de demanda. O modelo pode ser aplicado na

326

Pesquisa Operacional, v.24, n.2, p.323-337, Maio a Agosto de 2004

Bressan & Oliveira Reordenamento eficiente das colunas bsicas na programao de lotes e cortes

indstria de mveis, onde placas de madeira devem ser cortadas na produo de itens. Consideramos que haja apenas um tipo de placa em estoque, LW, suficiente para atender a demanda. Definimos ento o modelo da seguinte forma (Gramani, 2001; Nonas, 2000): Conjuntos: t = 1, ..., T p = 1, ..., P j = 1, ..., N i = 1, ... , M nmero de perodos. nmero de diferentes tipos de peas a serem cortadas. nmero de diferentes padres de corte. nmero de diferentes produtos finais demandados.

Parmetros: cit : custo de produo do produto final i no perodo t. hpt : custo de estocagem da pea tipo p no perodo t. hfit : custo de estocagem do produto final i no perodo t. dit : demanda do produto final i no perodo t. rpi : nmero de peas tipo p necessrias para formar um produto i. vj : tempo gasto para cortar uma placa no padro de corte j. apj : nmero de peas tipo p no padro j. ut : tempo mximo de operao da serra. cp : custo da placa a ser cortada. Variveis: xit : quantidade do produto final i produzido no perodo t. ept : quantidade da pea tipo p em estoque no fim do perodo t. fit : quantidade do produto final i em estoque no fim do perodo t. yjt : quantidade de placas cortadas usando o padro j no perodo t. min s.a:

(cit .xit + hfit .fit) + cp.yjt + hpt .ept


i=1 t =1

(1) (2) (3)

j=1 t =1

p=1 t =1

xit + fi,t-1 fit = dit

t = 1,,T, i = 1,,M

apj .yjt + epp,t-1 eppt =

j=1

i=1

rpi .xit

t = 1T t = 1,,T, j = 1,...,N t = 1,,T

vj .yjt ut
j=1

(4) (5)

xit , fit , yjt , ept 0

A funo objetivo (1) minimiza o custo dos produtos finais e o custo do processo de corte. As restries (2) se referem s equaes de balano de estoque com relao aos produtos finais, o que garante que a demanda de itens de cada perodo ser atendida. As restries (3) se referem s equaes de balano de estoque com relao s peas, o que asseguram que a demanda de peas ser satisfeita. Estas restries so as que acoplam os problemas de dimensionamento de lotes e de corte de estoque, pois ambas incluem as variveis xit , que definem o tamanho dos lotes e yjt , que definem a quantidade de placas cortadas num certo padro de corte. As restries (4) se referem capacidade da serra, o que garante que o tempo gasto no processo de corte das placas nos diversos padres de corte no ultrapassa a capacidade disponvel da serra, ou seja, seu tempo mximo de operao.

Pesquisa Operacional, v.24, n.2, p.323-337, Maio a Agosto de 2004

327

Bressan & Oliveira Reordenamento eficiente das colunas bsicas na programao de lotes e cortes

Este um modelo linear contnuo, uma vez que a integralidade das variveis no considerada. Porm permanece a dificuldade referente grande quantidade de padres de corte que podem ser gerados. Neste trabalho, caso a integralidade fosse considerada, esta discusso continuaria vlida, pois estamos interessados somente na decomposio LU da base do mtodo simplex. Por simplicidade de notao reescrevemos o modelo da seguinte forma: min s.a:

(ct .xt + hft .ft) + cp.yt + ht .et


t =1 t =1 t =1

(1) (2) (3) (4) (5)

xt + ft-1 ft = dt R . xt + A . yt + et-1 et = 0 vT .yt ut xt , ft , yt , et 0 so definidos de forma similar,

t = 1,,T t = 1T t = 1,,T t = 1,,T, onde e0 , f0 so conhecidos,


,

; e os demais parmetros e variveis hft , ft , ht , et , dt , xt e yt

e A uma matriz P N tal que cada coluna corresponde a um padro de corte.

3.3.2 A Matriz de Restries para o Modelo Combinado Reordenamos a matriz de restries de modo que adquira formato bloco diagonal, invertendo as posies das variveis ft e xt evitando assim, o preenchimento da matriz. Alm disso, acrescentamos as variveis de folga st = ut vT yt para t = 1T, relacionadas s restries de tempo mximo de operao da serra. Pelo reordenamento das colunas, possvel obter uma decomposio esparsa para qualquer base, sem nenhum esforo computacional de modo a obter a ordem das colunas, pois o reordenamento da matriz de restries esttico, e o das colunas da base obedece esta ordem. Desta forma, o reordenamento no tem custo de inicializao, nem de atualizao, pois vlido para todas as iteraes do mtodo simplex. As colunas da matriz de padres de corte no so reordenadas entre si a priori, mesmo porque elas so geradas durante a execuo do mtodo, e portanto, no so conhecidas. Mas se torna fcil a tarefa de encontrar a posio de tais colunas quando entrarem na base com respeito s outras colunas de padro no mesmo estgio de tempo. O critrio mais prtico seria coloc-las em ordem crescente do nmero de elementos no nulos. A matriz R, que representa a demanda de peas, pode conter esparsidade, pois, como cada uma de suas colunas representa um produto final, este pode no ser constitudo de algumas peas que sero utilizadas para compor um outro produto. Desta forma, as variveis xit , que

328

Pesquisa Operacional, v.24, n.2, p.323-337, Maio a Agosto de 2004

Bressan & Oliveira Reordenamento eficiente das colunas bsicas na programao de lotes e cortes

definem o tamanho do lote, podem ser reordenadas de acordo com a matriz R, reordenada tambm em ordem crescente do nmero de elementos no nulos. Isto equivale a numerar os itens finais em uma ordem conveniente.
Tabela 1 Matriz de Restries para o Problema Combinado.

f1
-I I 0 0 0 0 0 0 0 0 0

f2
0 -I ... 0 0 0

... ... ... ... ... ... ... ... ... ... ... ... ... ...

fT
0 0 0 0 -I 0 0 0 0 0 0

x1 ... xT y1 ... yT e1 e2 ... eT s1


I 0 0 0 ... 0 -R 0 0 0 0 ... ... ... ... ... ... ... ... ... ... ... ... 0 0 0 0 I 0 0 0 0 0 0 0 0 A 0 0 0 0 0 0 0 0 0 A 0 0 0 0 0 0 0 -I I 0 0 0 ... ... ... ... ... ... ... 0 -I 0 0 0 0 0 0 0 0 0 0 0 -I 0 0 0 0 0 0 0 0 0 0 1 ... 0

-R 0 0 vT 0 0

... ... ... ... ... ... ...

vT

... ... ... ... ... ... ...

... ... ... ... ... ... ... ... ... ... ... ... ... ... ...

sT
0 0 0 0 0 0 0 0 0 1

dt d1-I0 d2 ... dt-1 dt


...

dT 0 0 0 0 u1
...

uT

vantajoso que as colunas bsicas respeitem este ordenamento, pois a matriz de restries possuir formato bloco diagonal, de modo que causar o menor preenchimento da base ao realizarmos sua decomposio LU.

4. Base Inicial para a Matriz de Restries Uma base inicial pode ser tomada considerando vazios os estoques de peas e de produtos finais e considerando a matriz dos padres de corte diagonal, atravs da escolha dos padres homogneos. Assim, obtemos a base inicial mostrada na Figura 1: ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... s 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0

0 0 0 0 0

0 0 0 0 0 0 0

0 0 0 0 0

0 0 0

0 0

Figura 1 Base Inicial para a Matriz de Restries.

Pesquisa Operacional, v.24, n.2, p.323-337, Maio a Agosto de 2004

329

Bressan & Oliveira Reordenamento eficiente das colunas bsicas na programao de lotes e cortes

4.1 Propriedades da Matriz de Restries A seguir, podemos apontar algumas propriedades relevantes da matriz de restries especialmente quanto sua decomposio e, observando a forma geral da matriz de restries, podemos apontar algumas propriedades para a construo da base. 1. Cada yi pode ter no mximo P +1 colunas na base. Isto nos sugere o seguinte teorema: Teorema 4.1. Um subconjunto de colunas das matrizes

tem no mximo T(P+1) colunas na base. Prova: Cada matriz A possui dimenso P N e cada vetor v T possui dimenso 1N. Ento cada yi possui P +1 linhas e N colunas, e todo o conjunto possui T(P +1) linhas e NT colunas. Assim, se cada yi tiver P +1 colunas, este bloco ser quadrado. Caso tenha menos de P +1 colunas, podemos tomar o bloco de folga como piv, e o conjunto de matrizes acima retangular em p, ou seja, possui mais linhas que colunas. Se cada yi tiver mais que P +1 colunas, a base seria singular. Portanto, cada yi tem no mximo P +1 colunas na base. Logo, todo o conjunto acima deve ter no mximo T(P +1) colunas na base. 2. As matrizes formadas pelas colunas ep so sempre triangulares inferiores pela restrio R .xt + A.yt + et-1 et = 0, e no reordenamento de colunas proposto nunca so decompostas, por conterem apenas dois blocos matrizes identidades. 3. O bloco folga tambm no afetado pela decomposio, pois possui apenas colunas unitrias e o elemento no nulo de cada coluna bsica ser tomado como piv pela decomposio. 4. Conseqentemente, o esforo computacional da decomposio LU para o reordenamento proposto existe de fato apenas em e em R.

5. Entre ft e xt deve haver pelo menos M colunas na base. Caso contrrio, teramos uma linha de zeros na matriz, e ento ela seria linearmente dependente. Esta afirmao sugere o seguinte teorema: Teorema 4.2 Se ft(i) no est na base ento xt(i) est na base e podemos tomar xt(i) como prximo piv, onde i a coluna desta matriz, onde existem estoque e produo simultaneamente, caso xt(i) pertena base, para i = 1, , j, sendo j o primeiro estgio de tempo. Para os estgios de tempo seguintes, se xt(k) no est na base, podemos tomar o estoque deste mesmo produto no tempo anterior ft ( k 1), para k = j+1, , M Prova: Se nenhuma das colunas ft(i) e xt(i) estiver na base, teremos uma linha de zeros na matriz. Se ambas estiverem, tomamos o primeiro elemento de -R como piv. E se apenas a coluna xt(i) estiver na base, e no a coluna ft(i), o prximo piv ser xt(i). Quanto aos estgios de tempo seguintes, se xt(k) no est na base, podemos tomar a

330

Pesquisa Operacional, v.24, n.2, p.323-337, Maio a Agosto de 2004

Bressan & Oliveira Reordenamento eficiente das colunas bsicas na programao de lotes e cortes

coluna de estoque deste produto final correspondente ao perodo anterior, pois esta conter uma matriz identidade, devido restrio xt + ft-1 ft = dt , para t = 1, , T, o que evitar que a base seja singular. 6. Como conseqncia do teorema acima, podemos escrever o seguinte corolrio: Corolrio 4.2.1. A base deve conter pelo menos TM colunas entre os blocos item e produo. 4.2 Identificao do Tipo das Colunas Dadas a coluna que sai da base e a que entra, podemos identificar a qual bloco pertencem estas colunas, utilizando a posio do primeiro e do ltimo elemento no nulo, pelo algoritmo descrito abaixo. Portanto, so necessrias poucas alteraes em uma implementao pr-existente que no considera a estrutura particular da matriz de restries. Dada uma coluna c, obtemos a posio do seu primeiro e ltimo elemento no nulo K1 e K2: se ento se ento c produo seno c estoque de item seno se ento c folga seno se ento c padro de corte seno c estoque de pea. Pode-se incluir a atualizao da decomposio LU proposta em uma implementao, bastando que as colunas que entram e saem da base sejam fornecidas.

5. Experimentos Numricos O objetivo destes experimentos verificar a viabilidade das idias apresentadas neste trabalho. No experimento numrico descrito a seguir consideramos: 6 perodos de tempo, 2 produtos finais, 5 peas diferentes e 60 padres de corte. Com esses parmetros, a matriz de restries possui dimenso 48 x 420, sendo 360 colunas correspondentes a padres de corte. Para desenvolvermos o experimento, definimos as matrizes B1, B2 e B3. Inicialmente todas elas correspondem base inicial. Vamos simular iteraes do mtodo simplex escolhendo aleatoriamente uma coluna para sair da base e uma para entrar na base. A cada iterao estas trs matrizes contm as mesmas colunas bsicas, embora em ordem diferente. As colunas em B1 respeitam o ordenamento descrito na Tabela 1. Na matriz B2 sempre colocamos a coluna que entra na base na posio da coluna que sai e na matriz B3 a coluna que entra na base ocupa a ltima posio da matriz. Os experimentos foram realizados no MATLAB 5.3, em um microcomputador Pentium 4 com processador INTEL 1.8GHz e 512MB de memria RAM.

Pesquisa Operacional, v.24, n.2, p.323-337, Maio a Agosto de 2004

331

Bressan & Oliveira Reordenamento eficiente das colunas bsicas na programao de lotes e cortes

5.1 Critrio para Trocas de Colunas Realizamos trocas das colunas bsicas por colunas no bsicas, testando a singularidade e verificando a esparsidade. Sorteamos uma coluna que sair da base e uma que ser inserida. Se a nova base for no singular, atualizamos as posies das colunas bsicas em B1, B2 e B3, da forma descrita anteriormente; caso contrrio, sorteamos outra coluna para entrar na base at que encontremos uma matriz no singular. Efetuamos a seguir a decomposio LU de B1, B2 e B3, e calculamos o nmero de elementos no nulos dessas decomposies. Esperamos que B1 seja mais esparsa que B2 e B3, porque ela ordenada de forma que sua decomposio cause menor preenchimento na matriz. 5.2 Resultados Observados Apresentamos nas Tabelas 2, 3 e 4 os resultados obtidos pelos experimentos numricos. Os valores min, max e mdia nas Tabelas 2 e 3 representam, respectivamente, o mnimo, o mximo e a mdia do nmero de elementos no nulos das matrizes L e U (nnz (L+U)) da decomposio das bases correspondentes. A singularidade da matriz verificada pela funo rcond( ) do MATLAB, e o clculo da decomposio LU foi realizado usando o comando interno lu( ), que reordena as linhas para a seleo do piv. Antes da primeira troca de colunas, as matrizes B1, B2 e B3 so iguais. Os resultados apresentados consideram diversos nmeros de iteraes. Os resultados obtidos para as 500 primeiras iteraes foram os seguintes:
Tabela 2 Nmero de elementos no nulos da decomposio LU das bases para as 500 primeiras iteraes.

nnz(L+U) min max mdia

B1 310 393 351,4

B2 301 556 377,6

B3 389 389 341,6

Os resultados obtidos para as 10000 primeiras iteraes foram os seguintes:


Tabela 3 Nmero de elementos no nulos da decomposio LU das bases para as 10000 primeiras iteraes.

nnz(L+U) min max mdia

B1 293 416 349,5

B2 293 648 382,6

B3 140 491 354,1

Finalmente a Tabela 4 compara os nmeros de elementos no nulos da decomposio de B1 para as 500 primeiras iteraes utilizando diversos valores de threshold para pivoteamento.

332

Pesquisa Operacional, v.24, n.2, p.323-337, Maio a Agosto de 2004

Bressan & Oliveira Reordenamento eficiente das colunas bsicas na programao de lotes e cortes

Tabela 4 Nmero de elementos no nulos da decomposio LU de B1 para 500 iteraes.

Nnz(L+U) min max mdia

B1;1 304 429 388,2

B1; 0,1 310 393 351,4

B1; 0,01 257 415 356,9

Para este nosso exemplo, relativamente pequeno, o valor de threshold (B1; 0,1) apresentou melhores resultados que os demais, por ter se mostrado mais esparso. 5.3 Decomposio LU com Troca de Colunas Implementamos em MATLAB uma decomposio LU que considera a estrutura esparsa da matriz de restries, e comparamos nossos resultados com o clculo da decomposio LU completa, realizada atravs do comando interno do MATLAB lu( ), que no explora a esparsidade da matriz. Como a base B1 havia se mostrado mais esparsa que as bases B2 e B3 nos experimentos anteriores, comparamos ento o nmero de operaes necessrias para decompormos esta base, atravs da contagem de flops, ou seja, contagem de operaes de ponto flutuante, das formas de decomposio. A comparao foi feita usando trs formas de decomposio diferentes. A primeira a decomposio LU completa, que no explora a estrutura matricial, ou seja, a esparsidade da matriz, que chamamos de lu(B). Na segunda forma de decomposio, a base da matriz de restries redecomposta a partir da posio da primeira coluna que entrar ou sair da base. Para tanto, tomamos a posio na base da coluna que sai ( s ) e da que entra ( e ), e escolhemos a menor delas ( j ). Na Tabela 5 , esta decomposio est indicada como min(e, s). A terceira e ltima forma, que chamamos dec.esparsa(B), redecompe apenas as colunas necessrias, pois a sada de uma coluna pode no alterar as demais colunas pela sua estrutura esparsa. Nesta nova decomposio, se s < e, estamos interessados em saber quantas colunas a partir de s+1 no so afetadas pela sada desta coluna s. A decomposio feita apenas nas colunas afetadas, isso porque a sada de uma coluna pode no afetar colunas posicionadas depois dela pela sua estrutura esparsa. Ou seja, as posies dos elementos no nulos da coluna s podem no coincidir com os elementos no nulos de alguma coluna seguinte, e ento, essa coluna no sofrer qualquer alterao de s, e ento no ser decomposta. As operaes que foram causadas pela coluna que saiu so desfeitas. Para tanto, efetuamos as operaes na ordem inversa da decomposio de k, sendo , sempre considerando a esparsidade. Tambm decompomos e, a coluna que entra na base, e contamos o nmero de flops desta operao. Agora, se e < s, isto , se a coluna a entrar na base for inserida em alguma posio anterior posio da coluna a sair da base, se necessrio, decompomos novamente k, neste caso, para , e calculamos o nmero de operaes. Finalmente, resta-nos decompor as ltimas colunas da base, ou seja, devemos decompor a partir de max(e, s) at a ltima coluna da base, m. Ento, se necessrio, fazemos a decomposio da coluna k, neste caso, para , e calculamos o nmero de flops desta atualizao.

Pesquisa Operacional, v.24, n.2, p.323-337, Maio a Agosto de 2004

333

Bressan & Oliveira Reordenamento eficiente das colunas bsicas na programao de lotes e cortes

5.3.1 Comparao dos Resultados A Tabela 5 abaixo exibe a comparao do nmero de flops (contagem de operaes de ponto flutuante) entre a decomposio proposta neste trabalho (dec.esparsa(B)), a decomposio a partir da primeira coluna afetada por j, e a decomposio completa, utilizando o comando do MATLAB. Os resultados a seguir mostram o mnimo, a mdia e o mximo de flops entre as duas decomposies, para 500 iteraes.
Tabela 5 Contagem de operaes entre as decomposies de B1.

flops min max mdia

lu(B) 1241 1477 1352,9

min(e, s) 37 391 185,1

dec.esparsa(B) 7 71 33,7

Podemos concluir que a decomposio LU proposta neste trabalho reduz o nmero de operaes em aproximadamente 97% se comparada verso que no explora a decomposio da base anterior, podendo realiz-la de maneira mais rpida e eficiente. Mesmo explorando parcialmente a esparsidade, como acontece na decomposio indicada por min(e, s), onde a base redecomposta a partir da posio da primeira coluna que entrar ou sair da base, j temos um ganho significativo de em mdia 86% se comparada decomposio completa. Como vimos, podemos obter um resultado ainda melhor quando exploramos totalmente a esparsidade, como mostrado na Tabela 5 com a dec.esparsa(B). Por estarmos utilizando o MATLAB nas implementaes, mais relevante ser exibida a contagem de flops do que o tempo de processamento das operaes, que reflete melhor quais seriam os tempos relativos em outra linguagem de programao como C ou Fortran. 5.3.2 Estimativa do Erro da Atualizao Testes computacionais adicionais foram realizados com o objetivo de verificar a robustez do mtodo proposto. Para isso, todas as operaes da decomposio foram desfeitas em todas as iteraes do mtodo simplex. Ao efetuarmos as operaes na ordem inversa da decomposio LU obtemos uma matriz que aps a troca das colunas que entra e sai, simular a atualizao da decomposio da base ao ser decomposta desde a primeira coluna. Optamos por desfazer toda a decomposio, com o objetivo de ilustrar a robustez do mtodo de atualizao proposto, pois estamos simulando o pior caso em termos do nmero de operaes realizadas, aps cada iterao. Como medida do erro introduzido por estas operaes, calculamos a norma entre a matriz, obtida a partir da funo que desfaz as operaes da decomposio, e a base reordenada, obtida diretamente da matriz de restries, para vrias iteraes do simplex. Outra maneira de recuperar a matriz base inicial efetuar a operao L*U, onde L a matriz triangular inferior com elementos da base, e U a matriz triangular superior. Os erros mximo e mdio obtidos para 100, 1000, 2000 e 10000 iteraes so apresentados na Tabela 6. As duas primeiras linhas exibem o erro acumulado para a operao que desfaz toda a decomposio, e as duas ltimas linhas exibem do erro da recuperao da base atravs da multiplicao de L por U.

334

Pesquisa Operacional, v.24, n.2, p.323-337, Maio a Agosto de 2004

Bressan & Oliveira Reordenamento eficiente das colunas bsicas na programao de lotes e cortes

Tabela 6 Estimativa do erro de aproximao da atualizao da base.

Erro max (desfaz) mdia (desfaz) max (L*U) media (L*U)

100 6,8 e-13 1,6 e-13 1,1398 e-12 4,2917 e-13

1000 1,3 e-12 6,1 e-13 2,2397 e-12 1,1003 e-12

2000 1,8 e-12 5,8 e-13 2,8235 e-12 9,9500 e-13

10000 4,0 e-12 7,0 e-13 3,6005 e-12 1,1265 e-12

Podemos verificar que o mtodo de atualizao da base se mostrou bastante robusto, pois mesmo realizando 10000 iteraes o erro absoluto acumulado na matriz da base no pior caso da ordem de 10-12 em relao s colunas originais. Estes resultados so ainda mais significativos ao verificarmos que o erro ao recuperarmos as matrizes utilizando o produto L*U na mdia ligeiramente superior que a operao de desfazer as decomposies. Isto significa que no necessrio calcular periodicamente uma decomposio da base, para esta aplicao, como em outros mtodos de atualizao, pois a abordagem proposta se mostrou extremamente robusta para este experimento.

6. Concluses Construmos uma base esparsa para esta matriz de restries atravs de um reordenamento esttico das colunas bsicas, o que nos proporcionou uma decomposio esparsa para qualquer base, e por ser esttico, no requer esforo computacional para obter a ordem das colunas. Pelo reordenamento, a matriz adquire um formato bloco diagonal, que facilita a decomposio das bases futuras e evita, desta forma, o preenchimento (fill-in) da matriz. Atravs dos experimentos numricos descritos na Seo 5, conclumos que a estratgia B1 apresentou melhores resultados em comparao com as estratgias B2 e B3, pois, por exemplo, para 10000 iteraes, uma das respostas obtidas foi que o mximo de elementos no nulos na decomposio de B1 foi 416, enquanto que para B2 foi 648 e para B3 foi 491. Como a base possui 2304 elementos, esses valores correspondem, respectivamente, a 82%, 72% e 79% de esparsidade. Podemos observar que a estratgia B3 assume uma posio intermediria entre as estratgias B1 e B2. Alm disso, a utilizao de lu(B1; 0,1) geralmente apresenta melhores resultados se comparados com lu(B1; 1) e com lu(B1; 0,01), obtendo uma diferena maior entre os nmeros de elementos no nulos da decomposio da matriz reordenada B1 e a no reordenada. Desta forma, B1 contribui para a reduo de tempo computacional, podendo resolver problemas de otimizao linear de maneira mais eficiente. Conclumos que o reordenamento esttico das colunas da matriz de restries apresenta vrias vantagens computacionais: A base inicial, descrita na Seo 4 triangular para a soluo inicial proposta. Desta forma, as decomposies se tornam baratas, em termos computacionais, inclusive a primeira decomposio, que no requer nenhuma operao de ponto flutuante. Assim, a matriz reordenada se torna bloco diagonal, o que evita seu preenchimento durante a decomposio. O reordenamento esttico leva a decomposies mais esparsas, conforme indicam as tabelas dos experimentos, e a atualizao de decomposies extremamente baratas.

Pesquisa Operacional, v.24, n.2, p.323-337, Maio a Agosto de 2004

335

Bressan & Oliveira Reordenamento eficiente das colunas bsicas na programao de lotes e cortes

O reordenamento inicial tambm no tem custo de inicializao e tampouco de atualizao, pois como esttico, podemos obter uma decomposio esparsa para qualquer base, sem esforo computacional para ordenar as colunas. Por este reordenamento, a decomposio LU esparsa pode ser facilmente integrada a outros cdigos j existentes, que no estejam explorando a estrutura especfica da matriz. O software GLPK Gnu Linear Programming Kit, por exemplo, consiste em uma biblioteca de programao linear com cdigo fonte aberto, portanto, se torna mais simples a tarefa de integr-lo idia proposta de reordenamento esttico neste trabalho (este software pode ser encontrado em www.gnu.org/software/glpk/glpk.html). A Tabela 6 apresenta resultados estveis, onde o erro absoluto entre a matriz obtida desfazendo-se repetidamente toda a decomposio LU e a base reordenada resultante das iteraes do mtodo simplex totalmente aceitvel, indicando desta forma a robustez do mtodo proposto, o que pode dispensar decomposies peridicas da base como nos mtodos tradicionais (Bartels, 1969). Esta ltima concluso implicaria que por este mtodo de atualizao nenhuma decomposio LU necessita ser calculada durante toda a execuo do mtodo simplex se partimos da base inicial da Seo 4. Pode ser proposta uma extenso deste problema para um modelo mais completo, como por exemplo, considerar o problema setup time (Trigeiro et al., 1989), que consiste em encontrar uma soluo factvel para problemas de dimensionamento de lotes com capacidade limitada que considere tempo de preparao.

Agradecimentos Este trabalho foi parcialmente financiado pela FAPESP Fundao de Amparo Pesquisa do Estado de So Paulo e pelo CNPq Conselho Nacional de Desenvolvimento Cientfico e Tecnolgico.

Referncias Bibliogrficas (1) Arenales, M.N.; Morbito, R. & Yanasse, H. (1997). O problema de Corte e Empacotamento e Aplicaes Industriais. XX Congresso Nacional de Matemtica Aplicada e Computacional, Gramado RS, 8 a 12 de setembro. (2) Bartels R.H. (1969). A Stabilization of the Simplex Method. Numerical Mathematics, 16, 414-434. (3) Chvtal, V. (1983). Linear Programming. San Francisco. W.H. Freeman and Company. (4) Gilmore, P.C. & Gomory, R.E. (1961). A linear programming approach to the cutting stock problem. Operations Research, 9, 848-859. (5) Gilmore, P. & Gomory, R. (1965). Multistage cutting stock problems of two and more dimensions. Operation Research, 14, 1045-1074. (6) Gramani, M.C.N. (2001). Otimizao do Processo de Cortagem acoplado ao planejamento da produo. Tese de Doutorado, Densis-Unicamp.

336

Pesquisa Operacional, v.24, n.2, p.323-337, Maio a Agosto de 2004

Bressan & Oliveira Reordenamento eficiente das colunas bsicas na programao de lotes e cortes

(7) Luenberger, D.G. (1984). Linear and Nonlinear Programming. Addison-Wesley. (8) Marques, F.P. (2000). O Problema da Mochila Compartimentada. Dissertao de Mestrado, ICMC-USP. (9) Martello, S. & Toth, P. (1989). Knapsack Problems: Algorithms and Computer Implementations. Wiley. (10) Nonas, S.L. & Thorstenson, A. (2000). A combined cutting-stock and lot-sizing problem. Operation Research, 120(2), 327-342. (11) Trigeiro, W.; Thomas, L.J. & Mcclain, J.O. (1989). Capacited lot sizing with setup times. Management Science, 35(3), 353-366. (12) Wagner, H.M. & Whitin, T.M. (1958). Dynamic version of the Economic Lot size Model. Management Science, 5(1), 89-96.

Pesquisa Operacional, v.24, n.2, p.323-337, Maio a Agosto de 2004

337

You might also like