Universidade Federal da Bahia Instituto de Matem´atica
Curso de P´os-graduac¸˜ao em Matem´atica Dissertac¸˜ao de Mestrado
M´
etodo de Decomposic
¸˜
ao de Dantzig-Wolfe aplicado ao
problema combinat´
orio de Job-Shop
Azly Santos Amorim de Santana
M´
etodo de Decomposic
¸˜
ao de Dantzig-Wolfe aplicado ao
problema combinat´
orio de Job-Shop.
Disserta¸c˜ao apresentada ao colegiado do curso de P´os-Gradua¸c˜ao em Matem´atica da Universidade Federal da Bahia, como requisito parcial para obten¸c˜ao do T´ıtulo de Mestre em Matem´atica Pura.
Banca examinadora
Profa. Dra Isamara Carvalho Alves (Orientadora).
Prof. Dr. Isaac Costa L´azaro
Santana, A.
“M´etodo de Decomposic¸˜ao de Dantzig-Wolfe aplicado ao
prob-lema combinat´orio de Job-shop” / Azly Santos Amorim de Santana. Salvador-Ba, 2003.
Orientadora: Dra. Isamara Carvalho Alves (Universidade Federal da Bahia).
Disserta¸c˜ao de Mestrado apresentada ao curso de P´os-graduac˜ao em
Matem´atica da UFBA, 91 p´aginas.
Palavras-Chave:M´etodos de Decomposi¸c˜ao, Decomposi¸c˜ao de Problemas Combinat´orios, M´etodo de Decomposi¸c˜ao de Dantzig-Wolfe, Problemas de
“Vocˆe ´e do tamanho do seus sonhos.”
Agradecimentos
Nesta etapa da vida, algumas pessoas contribu´ıram para o meu crescimento profissional e
espiritual. Agrade¸co com carinho aos meus pais pela incondicional credibilidade e apoio em todas
as minhas decis˜oes. A “Mˆo” pela confian¸ca, paciˆencia e amor. A Ana Rita e Simone por me fazer
entender o verdadeiro conceito de amizade. Aos meus primeiros e eternos amigos acadˆemicos Adriana
(Di), Ana Paula (Paulinha), Ab´ılio (Bilol˜ao), Gilson (Ligeirinho), Luciano (Neg˜ao), Moema (M´o),
Osvaldo (Junico) e Rog´erio (Mancha). Agrade¸co com muitas saudades os momentos de apoio e divers˜ao
aos queridos companheiros, Adriano (Didi), Alex (Pig), Andr´ea (D´ea), Ariadne, Calit´eia (Baixinha),
Concei¸c˜ao (Cei¸ca), Cla´udio (Mano), ´erica (Kinha), Gilmar (Tchˆe), Ivana (Moc´o), Ismar (Dindo),
Jorge (Gump), Jos´e Joaquim, Juceli (J´u), Laura (Gospel), Maur´ıcio (Tio Mau), Odete (Amanda),
Paulo (Nasci), Reinaldo (Amigo), Rosely (Rosy), Stela (Pr´o), Rui. Aos professores Bahiano, Enaldo,
Elinalva, Isaac, Marco Antonio, pelo profissionalismo e car´ater, ao professor J´es pela disponibilidade e
sugest˜oes e, em especial, a Isamara pela credibilidade e dedicada orienta¸c˜ao. Finalmente, `a secret´aria
Tˆania por ter sido sempre t˜ao prestativa e a grande amiga C´ıntia L´e que tanto torceu por este t´ıtulo
de mestre.
Resumo
Neste trabalho, ´e abordado o m´etodo de decomposi¸c˜ao de Dantzig-Wolfe aplicado ao
prob-lema de seq¨uenciamento do tipo job-shop. Este problema tem como caracter´ıstica principal sua
com-plexidade computacional na categoria de um problema NP-dif´ıcil(Jonhson[16] e Zwaneveld[35]). Tais
problemas est˜ao sujeitos a um conjunto de restri¸c˜oes envolvendo as opera¸c˜oes nos produtos e nas
m´aquinas, cujo objetivo ´e diminuir o custo de produ¸c˜ao. A metodologia aplicada consiste em
decom-por o problema de job-shop em blocos (i ´e, subproblemas), reduzindo um grande volume de c´alculo
central por c´alculos locais. Estes subproblemas s˜ao resolvidos separadamente e as suas solu¸c˜oes s˜ao
supervisionadas por um n´ıvel coordenador denominado Problema Mestre. Desta forma, o Problema
Mestre gerencia as solu¸c˜oes fazendo com que as combina¸c˜oes convexas destas gerem a solu¸c˜ao do
problema global.
Sendo assim, a partir do problema de job-shop, podemos formular o Problema Mestre e os
sub-problemas correspondentes. Cada subproblema ´e associado ao conjunto de restri¸c˜oes de uma m´aquina
e ao Problema Mestre est´a associado as restri¸c˜oes de acoplamento representadas pelas restri¸c˜oes de
precedˆencia nos produtos. Contudo, ocorre que o conjunto de solu¸c˜oes vi´aveis de cada subproblema
´e ilimitado e pode acontecer infactibilidade. Conseq¨uentemente, propomos algumas modifica¸c˜oes que
permitem a aplicabilidade do m´etodo aos problemas de seq¨uenciamento do tipo job-shop. Os
resul-tados encontrados por meio de testes num´ericos em problemas de pequeno porte mostraram que a
convergˆencia do m´etodo ´e poss´ıvel, desde que sejam adotados limites adequados para as vari´aveis do
problema.
Abstract
This work, address the Dantzig-Wolfe decomposition method applied in job-shop
schedul-ing problems. These problems are well known as NP-hard in the strong sense (Johnson [16] and
Zwaneveld [35]) constrained by capacity and precedence constraints, whose objective is decreasing
the manufacturing cost. The use of this method is justified by the block angular structure of the
technological coefficients matrices. Hence, the applied methodology decomposes the original problem
into blocks (subproblems) supervisioned by a coordinator level (master problem) decreasing a large
volume of central calculus by several local calculus. These subproblems receive a set of parameters
from the master problem and their solutions are sent to the master problem, which combines these
with previous solutions in the optimal way and computes new prices.
From the job-shop problem, the master problem can be modelled considering link constraints
the precedence constraints and the each subproblem is associated with one machine. However, the
viable solution set of each subproblem is unbounded and the method may converge to an unfeasible
solution. Consequently, we propose an modification which will allow us the applicability of this method
in the job-shop problem. The results obtained from numeric tests of lower dimensions showed us that
the convergence of the method is possible since adequate limit are adopted is possible since adequate
limits are adopted.
Sum´
ario
Resumo vii
Abstract viii
Lista de Figuras xi
Lista de Tabelas xiii
Introdu¸c˜ao 1
1 M´etodo de Decomposi¸c˜ao de Dantizg-Wolfe 3
1.1 Princ´ıpio da Decomposi¸c˜ao de Dantzig-Wolfe . . . 5
1.2 Algumas considera¸c˜oes sobre o algoritmo de Dantzig-Wolfe . . . 11
1.3 Problema Mestre Restrito . . . 12
1.4 Estrat´egia alternativa para decompor o primal . . . 12
1.5 Regi˜ao Xi ilimitada . . . 14
1.6 Limite inferior para o custo m´ınimo . . . 17
1.7 Interpreta¸c˜ao econˆomica do m´etodo . . . 19
1.8 Exemplo num´erico . . . 19
2 Os Problemas de Job-Shop 27 2.1 Os problemas de f´abrica . . . 28
2.1.1 Os produtos e os crit´erios . . . 28
2.1.2 As m´aquinas . . . 29
2.2 O Problema de Job-Shop . . . 29
2.2.1 Formula¸c˜ao Matem´atica . . . 33
2.2.2 M´etodos de Resolu¸c˜ao . . . 34
3 M´etodo de Dantzig-Wolfe e o Problema de Job-Shop 37 3.1 Decomposi¸c˜ao do Job-Shop . . . 37
Sum´ario x
3.1.1 Modelagem Matem´atica . . . 37
3.1.2 M´etodo de Dantizg-Wolfe . . . 38
3.1.3 Aplica¸c˜ao do m´etodo de Dantzig-Wolfe ao Job-Shop . . . 40
3.1.4 Regi˜aoXk ilimitada . . . 44
3.2 Problemas Testes . . . 46
3.2.1 Problema Teste 1 . . . 46
3.2.2 Problema Teste 2 . . . 65
Conclus˜ao 81
Apˆendice 83
Referˆencias Bibliogr´aficas 86
Lista de Figuras
1.1 Comportamento dos m´etodos de decomposi¸c˜ao. . . 3
1.2 Estrutura bloco-angular com restri¸c˜oes de acoplamento. . . 5
1.3 Estrutura bloco-angular com vari´aveis de acoplamento. . . 5
1.4 Estrutura bloco-angular com restri¸c˜oes e vari´aveis de acoplamento. . . 5
1.5 Regi˜ao fact´ıvel do conjunto X1. . . 20
1.6 Regi˜ao fact´ıvel do conjunto X2. . . 20
2.1 Grafo potencial-tarefa representando o exemplo do job-shop. . . 32
2.2 Diagrama de Gantt representando duas solu¸c˜oes para o exemplo do job-shop. . . 32
2.3 Grafo conjuntivo da solu¸c˜aoS2 para o exemplo do job-shop. . . 33
3.1 Convergˆencia do m´etodo do problema teste 1. . . 64
3.2 Diagrama de Gantt representando as solu¸c˜oes encontradas do problema teste 1. . . 64
3.3 Convergˆencia do m´etodo do problema teste 2. . . 79
3.4 Diagrama de Gantt representando as solu¸c˜oes encontradas do problema teste 2. . . 79
A.5 Dire¸c˜oes e dire¸c˜oes extremas . . . 85
Lista de Tabelas
1.1 Tabela do M´etodo Simplex Revisado referente ao problema mestre. . . 15
1.2 Tabela inicial do simplex revisado do problema mestre. . . 21
1.3 Entra na base a vari´avel λ22,sai λ12. . . 23
1.4 Entra na base a vari´avel λ21,sai s. . . 23
1.5 Solu¸c˜ao ´otima do exemplo 1. . . 23
1.6 Entraλ31 e sai λ11. . . 24
1.7 Solu¸c˜ao ´otima do exemplo 2. . . 25
2.1 Dados do problema-exemplo de job-shop. . . 31
3.1 Tabela do simplex revisado do problema mestre. . . 45
3.2 Dados do problema teste 1. . . 47
3.3 Tabela inicial do simplex revisado do P.M do problema teste 1. . . 52
3.4 Entra na base a vari´avel λ22, sais4. . . 54
3.5 Entra na base a vari´avel λ32, sais2. . . 54
3.6 Tabela final na itera¸c˜ao 1 do problema teste 1. . . 55
3.7 Entra na base a vari´avel λ33,saiλ32. . . 58
3.8 Tabela final na itera¸c˜ao 2 do problema teste 1. . . 58
3.9 Entra na base a vari´avel λ34,saiλ33. . . 60
3.10 Tabela final da itera¸c˜ao 3 do problema teste 1. . . 61
3.11 Limites por itera¸c˜ao do problema teste 1. . . 63
3.12 Compara¸c˜ao das solu¸c˜oes do problema teste 1. . . 63
3.13 Dados do problema teste 2. . . 65
3.14 Tabela inicial do simplex revisado do P.M do problema teste 2. . . 71
3.15 Entra λ32, sai s2. . . 74
3.16 Entra λ12,saiλ11. . . 74
Lista de tabelas xiii
3.17 Entra λ22, sai s1. . . 74
3.18 Tabela final na itera¸c˜ao 1 do problema teste 2. . . 75
3.19 Entra λ23,saiλ22. . . 76
3.20 Tabela final na itera¸c˜ao 2 do problema teste 2. . . 76
3.21 Limites por itera¸c˜ao do problema teste 2. . . 78
Introdu¸
c˜
ao
Em geral os m´etodos de decomposi¸c˜ao consistem em decompor um problema inicial de grande
porte em problemas com dimens˜oes menores, denominadossubproblemas (ou problemas escravos). Tais
subproblemas s˜ao supervisionados por um n´ıvel de coordena¸c˜ao denominado Problema Mestre (ou
problema coordenador). O procedimento consiste de um conjunto de subproblemasindependentes cuja
fun¸c˜ao objetivo e/ou vetor dos recursos (composta dos multiplicadores simplex do problema mestre)
s˜ao atualizados a cada ITERAC¸ ˜AO de acordo com os parˆametros recebidos do problema coordenador.
Assim, a cada ITERAC¸ ˜AO, os subproblemas s˜ao resolvidos separadamente e, em seguida, enviam suas
solu¸c˜oes ao Problema Mestre.Esta troca de informa¸c˜oes entre o Problema Mestre e os subproblemas
´e realizada em um n´umero finito de itera¸c˜oes, garantindo a convergˆencia para o valor ´otimo, ou
um sub-´otimo, do problema global. Dentre os principais m´etodos de decomposi¸c˜ao podemos citar:
as t´ecnicas da Relaxa¸c˜ao Lagrangeana[17][19][27]; o m´etodo de Dantzig-Wolfe [10][27]; o m´etodo de
Benders[5][18][27]; e o m´etodo de Rosen[27]. A aplica¸c˜ao desses m´etodos depender´a da estrutura
matricial dos coeficientes que envolvem o problema.
Este trabalho aborda, em particular, o m´etodo de decomposi¸c˜ao de Dantzig-Wolfe. Este
m´etodo ´e aplicado em problemas lineares de grandes dimens˜oes onde a matriz de coeficientes possui
uma estrutura especial do tipo bloco angular, isto ´e, um ou mais blocos independentes s˜ao acoplados
por um conjunto de restri¸c˜oes. As restri¸c˜oes de acoplamento, juntamente com a propriedade que
permite reescrever elementos de um conjunto convexo como combina¸c˜ao linear convexa dos seus pontos
extremos, possibilita a forma¸c˜ao de um problema equivalente com um n´umero menor de restri¸c˜oes
denominado Problema Mestre. Este problema ´e resolvido por meio do m´etodo simplex revisado ([4]).
O procedimento de resolu¸c˜ao tem uma interpreta¸c˜ao econˆomica a qual diz que o problema mestre
coordena as a¸c˜oes dos subproblemas enviando os valores dos multiplicadores do simplex associados
aos recursos usados no problema.
Introdu¸c˜ao 2
por sua complexidade na categoria de um problema NP-dif´ıcil (Johnson[16] e Zwaneveld [35]). Al´em
disso, os coeficientes das suas restri¸c˜oes apresentam uma estrutura matricial bloco angular. Tais
caracter´ısticas justificam a aplica¸c˜ao de um m´etodo de decomposi¸c˜ao. Podemos ent˜ao a partir do
problema de job-shop, formular um problema equivalente em dois n´ıveis conforme apresentado no
m´etodo de Dantzig-Wolfe. Para isso, construiremos o problema mestre considerando como restri¸c˜oes
de acoplamento as restri¸c˜oes de precedˆencia (restri¸c˜oes nos produtos), e a cada conjunto de restri¸c˜oes
de m´aquina associaremos um subproblema. No entanto, o conjunto de solu¸c˜oes vi´aveis ´e ilimitado e
pode acontecer subproblemas infact´ıveis. Conseq¨uentemente, s˜ao necess´arias algumas modifica¸c˜oes nos
espa¸cos de solu¸c˜oes para garantir a aplicabilidade do m´etodo ao problema de job-shop. Primeiramente,
propomos a cria¸c˜ao de limites relacionadas `as vari´aveis envolvidas nas restri¸c˜oes de acoplamento a fim
de limitar os conjuntos de solu¸c˜oes. Em seguida, efetuamos o ajuste das solu¸c˜oes obtidas para garantir
a converg encia ao valor ´otimo do problema global. O texto est´a organizado da seguinte forma:
O Cap´ıtulo 1 come¸ca descrevendo brevemente os m´etodos de decomposi¸c˜ao e em quais
ca-sos podem ser utilizados. Em seguida, enfatizamos o m´etodo de decomposi¸c˜ao de Dantzig-Wolfe,
mostrando de que forma o mesmo ´e estruturado e quais as altera¸c˜oes necess´arias para o caso no qual o
conjunto de solu¸c˜oes ´e ilimitado. Al´em disso, mostramos como podemos determinar um limite inferior
para a solu¸c˜ao ´otima do problema original bem como a interpreta¸c˜ao econˆomica do m´etodo.
O Cap´ıtulo 2 tem como objetivo definir o problema de job-shop e apresentar a formula¸c˜ao
matem´atica adotada. apresentamos as restri¸c˜oes adotada para o job-shop e as suas principais
carac-ter´ısticas, assim como a sua representa¸c˜ao pelo grafo potencial-tarefa e pelo Diagrama de Gantt.
Finalmente, no Cap´ıtulo 3, reescrevemos o m´etodo de Dantzig-Wolfe adaptando-o `a nota¸c˜ao
adotada ao problema de job-shop e aplicando ajustes ao conjunto das solu¸c˜oes vi´aveis de forma tal
que garanta a factibilidade do problema mestre e dos subproblemas. Conclu´ımos apresentando testes
num´ericos e as respectivas an´alises que validam a aplicabilidade do m´etodo em problemas de pequenas
Cap´ıtulo 1
M´
etodo de Decomposi¸
c˜
ao de
Dantizg-Wolfe
Em geral, os m´etodos de decomposi¸c˜ao consistem em decompor um problema inicial de grande
porte em problemas com dimens˜oes menores, denominados subproblemas ( ou problemas escravos )
permitindo substituir um grande volume de c´alculo central por c´alculos locais. Tais subproblemas
trabalham de forma paralela, seq¨uencial ou interativa, supervisionados por um n´ıvel de coordena¸c˜ao,
denominado problema mestre (ou problema coordenador). O problema mestre recebe informa¸c˜oes dos
subproblemas e altera, a cada itera¸c˜ao, os parˆametros que atualiza a fun¸c˜ao custo e/ou o vetor de
recursos de cada subproblema, permitindo atrav´es de suas solu¸c˜oes uma aproxima¸c˜ao para a solu¸c˜ao
´
otima global, se esta existir. Na Figura 1.1, este processo ´e representado considerando o problema
original particionado empsubproblemas, ondet1, t2,· · · , tp s˜ao as solu¸c˜oes locais dos correspondentes
subproblemas e os λ′s´e o vetor-solu¸c˜ao do problema mestre.
SUBPROBLEMA
N p p
λ λ
1
t t
N 1 SUBPROBLEMA
o o
PROBLEMA MESTRE
Princ´ıpio da Decomposi¸c˜ao de Dantizg-Wolfe 4
Os m´etodos de decomposi¸c˜ao s˜ao utilizados quando temos um/ou mais dos seguintes
obje-tivos:
• Reduzira dimens˜ao do problema quando o n´umero de vari´aveis e/ou de restri¸c˜oes ´e muito elevado
a fim de efetuar a resolu¸c˜ao dos subproblemas de dimens˜oes menores;
• Hierarquizarum processo de decis˜ao em v´arios n´ıveis, onde cada unidade econˆomica possui uma
unidade de controle que garante a coordena¸c˜ao entre os subsistemas dos n´ıveis inferiores;
• Descentralizarum problema de decis˜ao decompondo-o em subproblemas com suficiente
autono-mia para tomar suas pr´oprias decis˜oes;
• Particionar um problema com dados heterogˆeneos em subproblemas homogˆeneos;
• Paralelizarde acordo com a evolu¸c˜ao do material para o c´alculo paralelo (multitarefa,
multipro-cessador).
O Princ´ıpio da decomposi¸c˜ao, consiste inicialmente em analisar a estrutura do problema e,
a partir desta informa¸c˜ao, fazer a escolha do m´etodo de decomposi¸c˜ao mais adequado. Dentre os
princi-pais m´etodos cl´assicos de decomposi¸c˜ao podemos citar: as t´ecnicas da Relaxa¸c˜ao Lagrangeana[17][19][27];
o m´etodo de Dantzig-Wolfe [10][27]; o m´etodo de Benders[5][18][27] e o m´etodo de Rosen[27]:
(i) O m´etodo da Relaxa¸c˜ao Lagrangeana e o de Dantzig-Wolfe s˜ao aplicados aos problemas que
apresentam a matriz de coeficientes com aestrutura bloco-diagonal com restri¸c˜oes de acoplamento
conforme apresentada na Figura 1.2;
(ii) O m´etodo de Benders ´e aplicado aos problemas que apresentam a matriz de coeficientes com a
estrutura bloco-angular com vari´aveis de acoplamento conforme a Figura 1.3;
(iii) O m´etodo de Rosen ´e aplicados aos problemas que apresentam a matriz de coeficientes com a
estrutura bloco-angular com restri¸c˜oes e vari´aveis de acoplamento conforme a Figura 1.4.
Este trabalho enfatiza o m´etodo de Dantzig-Wolfe. Sendo assim, este cap´ıtulo aborda o
Princ´ıpio da Decomposi¸c˜ao de Dantizg-Wolfe 5
{
RESTRIÇÕES DE 2 A 1 A B P A P ACOPLAMENTO 1 B 2 BFigura 1.2: Estrutura bloco-angular com restri¸c˜oes de acoplamento.
{
VARIA´VEIS DE BP ACOPLAMENTO 1 B 2 B b 1 b 2 b PFigura 1.3: Estrutura bloco-angular com vari´aveis de acoplamento.
{
{
VARIA´VEIS DE RESTRIÇÕES DE B P A P ACOPLAMENTO ACOPLAMENTO A11 B 2 A 2 B 0 b1 b2 b P b
Figura 1.4: Estrutura bloco-angular com restri¸c˜oes e vari´aveis de acoplamento.
1.1
Princ´ıpio da Decomposi¸
c˜
ao de Dantzig-Wolfe
Consideremos o Programa Linear:
(P L)
minz=cx
Sujeito a :
Ax=b x≥0
(1.1)
cuja matriz dos coeficientes das restri¸c˜oes tem estruturap-bloco angular, com p≥1,na forma:
A=
A1 A2 · · · Ap
Princ´ıpio da Decomposi¸c˜ao de Dantizg-Wolfe 6
Notemos que qualquer programa linear pode ser visto nesta forma se for considerado p=1.
Assim, particionando o conjunto de restri¸c˜oes em dois subconjuntos, de acordo com a matrizA,temos o (P L) (1.1) como segue
minz=cx (1.2)
Sujeito a:
ˆ
A1x = b1 (r1 restri¸c˜oes) (1.3)
A2x = b2 (r2 restri¸c˜oes) (1.4)
x ≥ 0 (1.5)
Assumiremos que o poliedro convexo (Ver defini¸c˜ao no Apˆendice)
S2={x|A2x=b2,x≥0}
´e limitado, e chamaremos o conjuntoE ={x1,· · ·,xj,· · · ,xr}dosrpontos extremos deS2. Portanto,
qualquerx∈S2 pode ser escrito como combina¸c˜ao convexa destes pontos extremos:
x=
r X
j=1
λjxj (1.6)
onde
r X
j=1
λj = 1, (1.7)
λj ≥0; j= 1,· · · , r. (1.8)
O problema original (1.2) - (1.5) dever´a ser visto como segue: selecionemos, de todas as
solu¸c˜oes de (1.4) e (1.5), aquelas que satisfazem (1.3) e minimize z. Substituindo (1.2) em (1.6) e (1.3), obtemos
r X
j=1
( ˆA1xj)λj =b1, (1.9)
e
z=
r X
j=1
(cxj)λj. (1.10)
Definindo,
pj = Aˆ1xj, (1.11)
e
Princ´ıpio da Decomposi¸c˜ao de Dantizg-Wolfe 7
teremos o Programa Linear (1.2)-(1.5) na vari´avelλj:
minz =
r X
j=1
fjλj (1.13)
Sujeito a:
r X
j=1
pjλj = b1 (1.14)
r X
j=1
λj = 1 (1.15)
λj ≥ 0; j= 1,· · · , r. (1.16)
Este novo problema (1.13)-(1.16), denominado Problema Mestre (PM), ´e equivalente ao
problema original (1.2) - (1.5). O PM cont´em apenas (r1+ 1) restri¸c˜oes, enquanto que o problema
original possu´ıa (r1+r2), significando assim uma consider´avel redu¸c˜ao no n´umero de restri¸c˜oes para
r2 muito grande.
Particularmente, a t´ecnica do M´etodo Simplex Revisado [4] ´e usado para resolver o PM.
Veremos ent˜ao como isto ´e feito considerando o coeficiente docusto relativof¯j para a vari´avelλj do
seguinte modo:
¯
fj =fj−π pj − − − 1 ; (1.17)
onde o vetor π=fBB−1, para fB=cBxB,ou seja, π ´e o vetor dos multiplicadores do simplex.
Agora, vamos particionarπ: π = (π1, π0) ondeπ1´e ovetor das vari´aveis duais correspondentes `
as restri¸c˜oes(1.14) e π0 ´e a vari´avel dual correspondente `a ´unica restri¸c˜ao (1.15). Ent˜ao, usando as
defini¸c˜oes (1.11) e (1.12) de fj e pj em ¯fj podemos reescrevˆe-lo na forma,
¯
fj = (c−π1Aˆ1)xj−π0. (1.18)
O crit´erio usual do m´etodo simplex considera
min
j
¯
fj = ¯fs= (c−π1Aˆ1)xs−π0; (1.19)
indicando desta forma a vari´avel λs para entrar na base. Relembremos quexj ´e um ponto extremo
de S2, e notemos que ¯fj ´e linear em xj. Sabendo-se que uma solu¸c˜ao ´otima de um programa linear
convexo, cujo conjunto de restri¸c˜oes ´e limitado, sempre ocorre em um ponto extremo deste conjunto,
Princ´ıpio da Decomposi¸c˜ao de Dantizg-Wolfe 8
min (c−π1Aˆ1)x (1.20)
Sujeito a :
A2x=b2, (1.21)
x≥0. (1.22)
Seja xs o ponto ´otimo do subproblema (1.20) - (1.22) com valor objetivo ¯f
s. Se ¯fs ≥ 0
significa que todos os custos relativos `a baseλj s˜ao n˜ao positivos, logo n˜ao podemos mais melhorar a
solu¸c˜ao do PM. Em decorrˆencia, assumiremos que a solu¸c˜ao ´otima do problema original PL(1.1) ´e
x0=
r X
j=1
λjxj (1.23)
onde osxj’s s˜ao pontos extremos deS
2 correspondentes `a base λj.
Caso contr´ario, se ¯fs <0 ainda podemos melhorar a solu¸c˜ao do PM. Da´ı, λs entra na base
e a coluna correspondente
ˆ A1xs
1
´e atualizada, pr´e-multiplicando-a pelo inverso da base de λj,ou
sejaB−1, originando a nova colunays=B−1
ˆ A1xs
1
. Notemos queys ≤0 n˜ao pode ocorrer visto
queS2 foi assumido como limitado produzindo um problema mestre limitado.
A vari´avelλB a sair da base ´e determinada pela raz˜ao m´ınima usual, ou seja, deixa a base a
vari´avelλr onde o ´ındicer ´e determinado como segue:
¯br yrs
= min
1≤i≤(m+1){
¯bi yis
, yis >0}; (1.24)
onde yrs ´e denominado elemento pivˆo. Com o pivoteamento, a base inversa,(B−1), as vari´aveis
duais,(π), e o valor objetivo (z) s˜ao atualizados.
Princ´ıpio da Decomposi¸c˜ao de Dantizg-Wolfe 9
minz=c1x1+c2x2+· · ·+cpxp (1.25)
Sujeito a:
A1x1 + A2x2 + · · · + Apxp = b0
B1x1 = b1
B2x2 = b2
. .. = ...
Bpxp = bp
(1.26)
x1≥0, x2 ≥0,· · · ,xp ≤0. (1.27)
com o subproblema (1.20) - (1.22)
min p X i=1
(ci−π1Aˆ1)xi (1.28)
Sujeito a:
Bixi=bi, i= 1,· · ·, p
(1.29)
xi ≥0, i= 1,· · · , p. (1.30)
O objetivo (1.28) ´e uma soma separ´avel emxie as restri¸c˜oes (1.29) s˜ao independentes. Desta
forma, este problema pode ser reduzido a p-subproblemas independentes, onde o i-´esimo subproblema
pode ser representado como segue:
min (ci−π1Ai)xi. (1.31)
Sujeito a :
Bixi =bi,
(1.32)
xi ≥0. (1.33)
Adotando-se
Xi={xi|Bixi=bi;xi≥0}, (1.34)
o i-´esimo subproblema apresenta-se:
min
xi∈Xi
(ci−π1Ai)xi. (1.35)
Um algoritmo de dois n´ıveis para resolver o problema de (1.25) - (1.27) dever´a agora ser
Algoritmo de Dantzig-Wolfe 10
no segundo. Assumiremos que uma solu¸c˜ao inicial do problema mestre ´e conhecida com a matriz base
correspondente,B, e as vari´aveis duaisπ1, π0.
Neste caso, o algoritmo de decomposi¸c˜ao de Dantzig-Wolfe pode ser visto como segue:
Algoritmo 1.1. Algoritmo de Decomposi¸c˜ao de Dantzig-Wolfe
1. Usando as vari´aveis duaisπ1, resolvemos cada subproblemai(1.31) - (1.33) obtendo
as suas respectivas solu¸c˜oesxi(π1), e o valor ´otimo objetivo,zi0. Seja
x(π1) = (x1(π1),· · · ,xp(π1))t.
2. Calculamos os valores dos custos relativos das vari´aveisλ′js,f¯j (1.18), e escolhemos
o m´ınimo entre eles:
min
j
¯ fj =
p X
i=1
zi0−π0; (1.36)
onde
zi0 = min (ci−π1Ai)xi.
(1.37)
Se este valor m´ınimo for um valor n˜ao negativo, ou seja ,
min ¯fj ≥0, (1.38)
significa que podemos parar o algoritmo, pois n˜ao existem mais candidatas a entrar na
base. Assim, a solu¸c˜ao ´otima para (1.25) - (1.27) ´e
x0 =
r X
j=1
λjxj, (1.39)
onde xj s˜ao pontos extremos deS
2 correspondentes `a vari´avel b´asicaλj.
3. Se minf¯j <0, constru´ımos a coluna
p X
i=1
Aixi(π1)
1
(1.40)
atualizada atrav´es da multiplica¸c˜ao pela inversa da antiga base,B−1, e usando a opera¸c˜ao
pivˆo do simplex usual, obtemos uma nova base inversa e um novo vetor dos multiplicadores
Observa¸c˜oes 11
Se o problema mestre ´e n˜ao degenerado[4], ent˜ao cada itera¸c˜ao decrescezpara um valor n˜ao
nulo. Isto se deve ao fato que existe um n´umero finito de bases poss´ıveis e nenhuma se repete. Sendo
assim, o princ´ıpio da decomposi¸c˜ao de Dantzig-Wolfe encontrar´a a solu¸c˜ao ´otima em um n´umero finito
de itera¸c˜oes.
Observe que a solu¸c˜ao ´otima do problema original,x0, n˜ao ´e necessariamente qualquer uma
das solu¸c˜oes dos subproblemas. Por (1.39) temos quex0´e alguma combina¸c˜ao convexa de tais solu¸c˜oes. Portanto, o problema mestre n˜ao pode obter o ´otimo do problema original simplesmente enviando os
correspondentes custosπ1 aos subproblemas. O problema mestre dever´a combinar estas solu¸c˜oes para
obter a solu¸c˜ao global.
1.2
Algumas considera¸
c˜
oes sobre o algoritmo de Dantzig-Wolfe
1. Observamos que o seguinte algoritmo ´e uma implementa¸c˜ao direta do m´etodo simplex revisado.
Exceto o c´alculo dos custos relativos ¯fij que ´e obtido resolvendo o subproblemai. Entretanto, o
algoritmo converge em um n´umero finito de itera¸c˜oes.
2. Em cada itera¸c˜ao, uma melhor solu¸c˜ao b´asica fact´ıvel para o problema mestre, (1.47)-(1.53),
´e obtida ao introduzir a vari´avel n˜ao b´asica λsj, gerada pela solu¸c˜ao do subproblema, (1.55)
- (1.57). Sendo assim, o subproblema fornece um ponto extremo xjs, que corresponde a uma
coluna atualizada
¯ fsj
ysj
.
3. Em cada itera¸c˜ao um novo vetor dual ´e passado do problema mestre para o subproblema. A base
´otima da ´ultima itera¸c˜ao ´e utilizada, a fim de atualizar a sua fun¸c˜ao, modificando seus custos.
4. Em cada itera¸c˜ao, o subproblema n˜ao precisa ser otimizado completamente. ´e necess´ario apenas
que o corrente ponto extremoxjs satisfa¸ca ¯fsj ≤0. Neste caso λsj ´e candidato a entrar na base. 5. Se as restri¸c˜oes do problema mestre s˜ao desigualdades, ent˜ao n´os devemos verificar os custos das
vari´aveis de folga que foram adicionadas resolvendo os subproblemas. Para as restri¸c˜oes i do
problema mestre do tipo≤ associada `a vari´avel de folgasi,n´os temos,
fsi−zsi = (π1, π0)
e1
0
−0 =π1. (1.41)
Assim, para um problema de minimiza¸c˜ao uma vari´avel de folga associada com a restri¸c˜ao do
tipo ≤ ´e eleita a entrar na base se π1 > 0. ( Note que o crit´erio de entrada ´e π1 < 0 para
Problema Mestre Restrito 12
6. Para darmos in´ıcio ao m´etodo, deveremos partir de uma solu¸c˜ao b´asica fact´ıvel inicial. Caso,
esta solu¸c˜ao n˜ao seja poss´ıvel ao ser acrescentado as vari´aveis de folga, devemos usar algum
m´etodo para obter tal solu¸c˜ao; como por exemplo o M´etodo das Duas Fases ou do Big-M[4].
1.3
Problema Mestre Restrito
Como previamente formulado, o princ´ıpio da decomposi¸c˜ao de Dantzig-Wolfe, resolve
proble-ma de otimiza¸c˜ao em dois n´ıveis. Ao n´ıvel chamadoProblema Mestre (1.13) - (1.16), ´e poss´ıvel
apre-sentar uma nova formula¸c˜ao denominada de Problema Mestre Restrito. Tal problema apresenta al´em das colunas referente `a vari´avel de entrada, as colunas das vari´aveis que foram retiradas. Ent˜ao
o problema mestre restrito pode ser escrito na forma
minf1λ1+· · ·+fmλm+f λ (1.42)
Sujeito a:
p1λ1+· · ·+pmλm+pλ=b0
(1.43)
λ1+· · ·+λm+λ= 1 (1.44)
λi ≥0, i= 1,· · · , m, λ≥0 (1.45)
ondem=m1+ 1,osλ′iss˜ao as vari´aveis b´asicas corrente eλ´e a vari´avel que est´a entrando na base.
Assumindo que a vari´avel λ tem um custo relativo ¯f < 0, se a base corrente ´e n˜ao degenerada, a vari´avel que deixar a base ter´a um ¯f positivo, e portanto, a nova solu¸c˜ao ser´a ´otima. O ´unico caso no
qual mais de uma itera¸c˜ao ´e necess´aria para passar o teste de otimalidade ´e quando a base corrente
´e degenerada e o elemento pivˆo, (1.24), na coluna de entrada ´e negativo. Neste caso, n˜ao ´e muito
vantajoso resolver o problema na forma (1.42) - (1.45).
1.4
Estrat´
egia alternativa para decompor o primal
Uma outra forma de decompor o problema primal (1.25) - (1.27), alterando a forma do
problema mestre (1.13) - (1.16), ´e considerar as solu¸c˜oes para o conjunto de restri¸c˜oes do subproblema
iescritas como:
xi= r X
j=1
λijxji (1.46)
com o xji ponto extremo de Xi(1.34); i= 1,2,· · ·, p. Ent˜ao, ´e f´acil verificar que o problema mestre
Estrat´egia alternativa para decompor o primal 13 min p X i=1 r X j=1
fijλij (1.47)
Sujeito a: p X i=1 r X j=1
pijλij =b0
(1.48)
r X
j=1
λij = 1, i= 1,2,· · ·, p, (1.49)
λij ≥0 (1.50)
(1.51)
onde
fij = cixji
(1.52)
pij = Aixji (1.53)
Este novo problema apresenta algumas vantagens computacionais que podem ser vistas
quando consideramos as solu¸c˜oes de (1.47) - (1.53) pelo m´etodo simplex revisado. Al´em disso, difere
do problema mestre (1.13) - (1.16) obtido inicialmente, em dois aspectos: (1) particularmente, ele
tem p linhas convexas;(2) cada subsistema Bixi =bi,xi ≥0, ´e representado separadamente por um
conjunto de vari´aveisλij.
SejamB uma matriz b´asica fact´ıvel (m1+p)×(m1+p) eπ1, π01,· · ·, π0p as vari´aveis duais
para esta base, comπ1 associado `a restri¸c˜ao (1.48) e osπ0i associados `a restri¸c˜ao (1.49). Atualizando
a coluna associada `aλij, produzimos
¯
fij = (ci−πAi)xji −π0i. (1.54)
O problema encontrado para ifixo, min
j
¯
fij, ´e equivalente a resolver o i-´esimo subproblema
min (ci−π1Ai)xi (1.55)
Sujeito a:
Bixi =bi,
(1.56)
xi ≥0. (1.57)
O caso da regi˜ao Xi ilimitada 14
Sejaz0i o valor objetivo minimal do subproblema (1.55) - (1.57) acima. Se
¯
fsj = min i minj
¯
fij = min i (z
0
i −π0i)≥0 (1.58)
a solu¸c˜ao corrente ´e ´otima. Caso contr´ario, a coluna a entrar na base ´e aquela com
min
i (z
0
i −π0i). (1.59)
Se o m´ınimo acima ocorre parai=sexjs(π1) ´e solu¸c˜ao do subproblemas, a coluna
correspon-dente `a vari´avel a entrar na base ´e dada por
Asxjs(π1) − − − − − us
,ondeus ´e um vetor p-componente com
um na posi¸c˜aose zeros nas outras. Esta nova coluna entra na base produzindo novos multiplicadores (π1, π0). Colunas similares poderiam ter sido gerados das solu¸c˜oes de outros subproblemas.
Sejam=m1+p, definimos{pij}como as colunas da base corrente, e sejap∗1,· · · , p∗pas colunas
geradas das ´ultimas solu¸c˜oes dos subproblemas correspondentes a λ∗1, λ∗2,· · · , λ∗p. O novo problema
mestre restrito ser´a
min p X i=1 X j b´asico
fijλij + p X
i=1
fi∗λ∗i =b0 (1.60)
p X
i=1
X
j b´asico
pijλij + p X
i=1
p∗iλ∗i =b0 (1.61)
X
j b´asico
λij +λ∗i = 1; i= 1,2,· · · , p (1.62)
λij ≥0, i= 1,2,· · · , p j= 1,2,· · ·, r (1.63)
λ∗i ≥0, i= 1,2,· · · , p (1.64)
1.5
Regi˜
ao
X
iilimitada
Para um conjunto Xi = {xi|Bixi = bi;xi ≥ 0} ilimitado o algoritmo de decomposi¸c˜ao
de Dantzig-Wolfe deve ser modificado. Neste caso, os pontos de Xi ser˜ao representados como uma
combina¸c˜ao linear convexa dos pontos extremos deXi mais uma combina¸c˜ao linear n˜ao negativa das
O caso da regi˜ao Xi ilimitada 15
xi = r X
j=1
λijxji + l X
k=1
µikdki (1.65)
r X
j=1
λij = 1 (1.66)
λij ≥0, j= 1,2,· · · , r; i= 1,2,· · · , p (1.67)
µik ≥0, k= 1,2,· · ·, l; i= 1,2,· · · , p (1.68)
onde x1
i,x
2 i,· · · ,x
r
i s˜ao pontos extremos de Xi e d
1
i,d
2 i,· · · ,d
l
i s˜ao dire¸c˜oes extremas de Xi. O
problema original dever´a ser transformado no chamado problema mestre nas vari´aveis λij e µik como
segue: min p X i=1 r X j=1
(cixji)λij+ p X i=1 l X k=1
(cidki)µik (1.69)
Sujeito a: p X i=1 r X j=1
(Aixji)λij+ p X i=1 l X k=1
(Aidki)µik =b0
(1.70)
r X
j=1
λij = 1; i= 1,2,· · · , p (1.71)
λij ≥0, j= 1,2,· · · , r; i= 1,2,· · · , p (1.72)
µik ≥0, k= 1,2,· · · , l; i= 1,2,· · ·, p. (1.73)
Para resolver este problema (1.69)-(1.73) optamos por utilizar o m´etodo simplex revisado visto
que o n´umero de vari´aveis poder´a ser muito grande dependendo da quantidade de pontos extremos
e dire¸c˜oes extremas. A fim de iniciarmos tal m´etodo, devemos ter uma solu¸c˜ao b´asica fact´ıvel com
a sua matriz base correspondente, B, as vari´aveis duais π1 correspondentes `a restri¸c˜ao (1.70) e π0i
correspondente `a restri¸c˜ao (1.71). Lembremos que π = (π1, π01,· · · , π0i,· · ·, π0p) = fBB−1, fB ´e o
custo das vari´aveis b´asicas e ¯b=B−1
b0
1
, mostrado na Tabela 1.1.
(π1, π01,· · · , π0i,· · · , π0p) fB¯b
B−1 ¯b
Tabela 1.1: Tabela do M´etodo Simplex Revisado referente ao problema mestre.
Relembremos que a solu¸c˜ao ´e ´otima para o problema original se os custos relativos das
O caso da regi˜ao Xi ilimitada 16
de otimalidade devem satisfazer `as seguintes condi¸c˜oes:
(i) λij n˜ao b´asica⇒0≤f¯ij = cixji −π
Aixji
1
= (ci−π1Ai)xji −π0i (1.74)
(ii) µik n˜ao b´asica⇒0≤f¯ik = cidki −π
Aidki
0
= (ci−π1Ai)dki (1.75)
Devido ao elevado n´umero de vari´aveis n˜ao-b´asicas, verificar as condi¸c˜oes de otimalidade
(1.74) - (1.75) ´e computacionalmente invi´avel. Portanto devemos determinar se as condi¸c˜oes s˜ao
v´alidas ou n˜ao resolvendo os subproblemas. Determinamos inicialmente o conjunto solu¸c˜ao e o valor
objetivo minimal zi0, de cada subproblema i (1.31) - (1.33) e, em seguida, aplicamos o crit´erio usual do m´etodo simplex (1.58)
Suponhamos primeiramente que o valor da solu¸c˜ao ´otima do subproblema ´e ilimitada. Isto ´e
poss´ıvel se somente se, uma dire¸c˜ao extremadk
s ´e encontrada tal que (cs−π1As)dks <0. Isto significa
que a condi¸c˜ao (1.75) foi violada. Portanto, a vari´avel µsk ´e eleita a entrar na base. Neste caso,
Asdks
0
´e atualizada pr´e-multiplicando-a por B−1 e a coluna resultante ´e inserida na Tabela 1.1.
Assim, o m´etodo simplex revisado continua com uma pr´oxima itera¸c˜ao.
Consideremos agora a solu¸c˜ao ´otima limitada. Neste caso, (ci −π1Ai)dki ≥ 0 ocorre para
todas as dire¸c˜oes extremas, ent˜ao a condi¸c˜ao necess´aria e suficiente (1.75) para que a solu¸c˜ao seja
limitada, ´e v´alida. Por outro lado observemos tamb´em a validade da equa¸c˜ao (1.74). Sejam xjs um
ponto extremo ´otimo e ¯fsj o objetivo ´otimo para o subproblemas(1.31)-(1.33). Se ¯fsj ≥0, a condi¸c˜ao
(1.74) ´e v´alida para o subproblema s, ou seja, pela otimalidade dexjs, para cada ponto extremoxji,
temos
¯
fij = (ci−π1Ai)xji −π0i≥(cs−π1As)xsj −π0s= ¯fsj (1.76)
e portanto, temos uma solu¸c˜ao ´otima do problema original.
Caso contr´ario, se ¯fsj <0 ent˜ao λsj ´e eleita a entrar na base. Isto ´e feito inserindo a coluna
¯ fsj
ysj
na Tabela 1.1, onde ysj =B−1
Asxjs
− − − − −
us
ondeus ´e um vetor p-componente com um
na posi¸c˜ao s e zeros nas outras. ´e importante salientar que se o problema mestre apresentar outras vari´aveis expl´ıcitas incluindo as vari´aveis de folga, ent˜ao deveremos verificar os custos reduzidos destas
Limite inferior para o custo m´ınimo 17
Em resumo, cada subproblemai´e resolvido separadamente. Se o subproblemasproduz uma
solu¸c˜ao ilimitada, ent˜ao uma dire¸c˜ao extremadks encontrada, ´e candidata a entrar na base do problema
mestre. Se o subproblema s produz um ponto ´otimo limitado e ¯fsj < 0, ent˜ao a vari´avel associada
ao ponto extremo ´e candidato a entrar na base mestre. Se nenhuma dessas condi¸c˜oes ocorre, ent˜ao
n˜ao existem candidatas a entrar na base do problema mestre, ou seja, temos o ´otimo. Caso contr´ario,
podemos aplicar a regra do ¯fsj mais negativo dentre as vari´aveis candidatas a entrar na base mestre.
Selecionando a candidata, atualizamos a coluna correspondente, fazemos os devidos pivoteamentos na
tabela mestre e repetimos o processo com as outras candidatas.
1.6
Limite inferior para o custo m´ınimo
Relembrando o Algoritmo de Dantzig-Wolfe(Se¸c˜ao 1.1) vimos que para satisfazermos o seu
crit´erio de parada t´ınhamos que efetuar muitos c´alculos nas itera¸c˜oes. Este fato nos levaria a consumir
muito tempo computacional quando o problema fosse de grande porte.
Por esta raz˜ao, desenvolveremos um limite inferior para o valor objetivo da solu¸c˜ao fact´ıvel do
problema original, e portanto, um limite inferior do objetivo ´otimo. Por outro lado, como o algoritmo
de Dantzig-Wolfe gera pontos fact´ıveis que n˜ao pioram o valor objetivo pelo problema mestre, n´os
temos uma seq¨uencia de limites superiores n˜ao crescente. Ent˜ao, devemos parar quando a diferen¸ca
entre o objetivo do ponto fact´ıvel corrente e o limite inferior estiver dentro de uma tolerˆancia aceit´avel.
Isto n˜ao dever´a fornecer o ponto ´otimo verdadeiro, mas garantir´a boas solu¸c˜oes fact´ıveis dentro de
qualquer precis˜ao desej´avel ao ´otimo.
Considere o problema mestre (1.47)-(1.53), reescrito abaixo;
minz=
p X i=1 r X j=1
fijλij (1.77)
Sujeito a: p X i=1 r X j=1
pijλij =b0
(1.78)
r X
j=1
λij = 1, i= 1,2,· · ·, p, (1.79)
λij ≥0 (1.80)
Limite inferior para o custo m´ınimo 18
onde
fij = cixji
(1.82)
pij = Aixji (1.83)
Multiplicando (1.78) pelos multiplicadores simplexπ1e (1.79) pelos multiplicadoresπ0i,somando
e subtraindo da equa¸c˜ao (1.77), produzimos
z−π1b0−X
i
π0i = X
i X
j
λij(fij−π1pij −π0i) (1.84)
O valor da express˜ao (fij −π1pij −π0i) na equa¸c˜ao (1.84) ´e o custo relativo para λij, f¯ij.
Resolvendo os subproblemas (1.55)- (1.57), calculamos min
j
¯
fij para cadai. Comoλij ´e n˜ao negativo,
¯
fij, poder´a ser substitu´ıdo por este valor minimal e portanto a equa¸c˜ao (1.84) pode ser vista como a
desigualdade (1.85) abaixo:
z−π1b0−
X
i
π0i ≥ X
i X
j
λijmin j
¯
fij (1.85)
z−π1b0−X
i
π0i ≥ X
i
(min
j
¯ fij)
X
j
λij (1.86)
Substituindo (1.79) a desigualdade (1.86) torna-se:
z ≥ X
i
(min
j
¯
fij) +π1b0+
X
i
π0i (1.87)
Sabendo que (1.87) ´e v´alida para todos os valores de z obtido do problema mestre (1.77)-(1.83), ent˜ao valer´a para o valor m´ınimo. Assim,
minz ≥ X
i
(min
j
¯
fij) +π1b0+π0ep (1.88)
ondeep ´e o vetor p-dimensional com componentes iguais ao valor um. A express˜ao (1.88) poder´a ser
escrito na forma mais compacta fazendo,
(π1, π0)
b0
ep
=cBB−1
b0
ep
=cBxB=zB (1.89)
ondezB ´e o valor dezassociado ´a base corrente, B. Portanto (1.88) torna-se:
minz ≥ zB+ p X
i=1
(min
j fij) (1.90)
Interpreta¸c˜ao econˆomica do m´etodo 19
1.7
Interpreta¸
c˜
ao econˆ
omica do m´
etodo
Considere um n´ıvel central e um subn´ıvel de uma organiza¸c˜ao descentralizada. O n´ıvel
central opera em um primeiro conjunto de restri¸c˜oes
p X
i=1
Aixi=b0, e o subn´ıvel no segundo conjunto
de restri¸c˜oesBixi=bi, i= 1,2,· · · , p.Temos queb0ebi dever´a ser interpretado como recursos para o
n´ıvel central e subn´ıvel, respectivamente. Durante o curso do algoritmo, informa¸c˜oes s˜ao comunicadas
de um n´ıvel para o outro. O n´ıvel central resolve o Problema mestre e como resultado, valores marginais
π ou recursos centrais, s˜ao comunicados para os subn´ıveis. O subn´ıvel resolve os subproblemas nos quais a fun¸c˜ao objetivo incorpora os custos para utiliza¸c˜ao dos recursos centrais. O subn´ıvel ent˜ao
sugere atividadesxipara incorporar ao n´ıvel central. Durante as itera¸c˜oes, nenhuma informa¸c˜ao direta
correspondente aos coeficientes nas restri¸c˜oes ´e comunicada entre o n´ıvel central e o subn´ıvel. Al´em
disso, a informa¸c˜ao do custo ´e comunicado do n´ıvel central para o subn´ıvel.
Na maioria das aplica¸c˜oes, as restri¸c˜oes que n˜ao s˜ao de acoplamento formam a estrutura
diago-nal, nas quais as vari´aveis s˜ao agrupadas em blocos independentes. Isto significa que os subproblemas
s˜ao separados em v´arios problemas independentes. Em um contexto econˆomico, a estrutura bloco
angular reflete a divis˜ao em m´ultiplos subn´ıveis independentes, onde cada um comunica diretamente
com o n´ıvel central.
1.8
Exemplo num´
erico
Para ilustrar o princ´ıpio da decomposi¸c˜ao de Dantzig-Wolfe, consideremos o problema
min−x1−x2−2x3−x4
Sujeito a:
(1.91)
x1 + 2x2 + 2x3 + x4 ≤ 40
(1.92)
x1 + 3x2 ≤ 30
(1.93)
2x1 + x2 ≤ 20
Exemplo 20
x3 ≤ 10
(1.95)
x4 ≤ 10
(1.96)
x3 + x4 ≤ 15
(1.97)
xj ≥ 0 j= 1,· · ·,4
(1.98)
Este problema tem a primeira restri¸c˜ao, (1.92), identificada como de acoplamento e dois
blocos independentes, sendo o primeiro bloco formado pela segunda e terceira restri¸c˜ao (1.93) - (1.94)
e o segundo bloco formado pela quarta, quinta e sexta restri¸c˜ao, (1.95), (1.96) e (1.97) respectivamente,
cujas as regi˜oes fact´ıveis s˜ao mostradas nas Figuras 1.5 e 1.6, respectivamente.
x 1 2 x 10 10 20 30 (6,8)
Figura 1.5: Regi˜ao fact´ıvel do conjuntoX1.
10 15 (5,10) (10,5) 15 10 x 4 3 x
Figura 1.6: Regi˜ao fact´ıvel do conjuntoX2.
Al´em disso, o problema pode ser decomposto em dois problemas menores, incluindo ao
pro-blema mestre as restri¸c˜oes de convexidade
p X i=1 r X j=1
λij = 1. Seja x1 e x2 solu¸c˜oes fact´ıveis para os
blocos 1 e 2, respectivamente, escrevemosx=
p X
i=1
xi = p X i=1 r X j=1
λijxji,ondex j
i s˜ao pontos extremos do
subproblemai. A fun¸c˜ao objetivo e as restri¸c˜oes de acoplamento s˜ao escritas como
z=c1x1+c2x2
A1x1+A2x2+s=b
ondec1 = (−1,−1), c2 = (−2,−1), A1 =
h
1 2
i
,A2 =
h
2 1
i
,x1 = (x1, x2),x2 = (x3, x4), b= 40
e s= (s1, s2) tal que s≥0.O problema mestre ´e transformado em
minz=X
j
(c1xj1)λ1j + X
j
Exemplo 21
Sujeito a:
2
X
i=1
X
j
(Aixji)λij+s=b
(1.100)
2
X
i=1
X
j
λij = 1 (1.101)
λij ≥0, i= 1,2 (1.102)
Escolhendox1
1 =x12 = (0,0) e substituindo no problema mestre (1.99)-(1.102), devemos obter
como solu¸c˜ao b´asica inicial
λ11=λ21= 1, s= 40.
Assim, a tabela do simplex revisado ´e como segue:
Vari´avel b´asica Colunas do problema mestre
s λ11 λ12 −z Constantes
s 1 40
λ11 1 1
λ12 1 1
−z 1 0
Tabela 1.2: Tabela inicial do simplex revisado do problema mestre.
ITERAC¸ ˜AO 1
Os multiplicadores do simplex (vari´aveis duais) para o problema mestre est˜ao contidos no
topo da Tabela 1.2, os quais s˜ao todos nulos. Logo o primeiro conjunto de subproblemas ´e
minz1 =−x1−x2
Sujeito a:
B1x1 ≤b1
onde
B1 =
1 3
2 1
Exemplo 22
e
minz2 =−2x3+x4
Sujeito a:
B2x2 ≤b2
onde
B2 =
1 0 0 1 1 1
com solu¸c˜oes ´otimas:
x21 = (6,8) z10=−14, x22 = (10,5) z20=−25. Os custos m´ınimos relativos s˜ao:
min ˆfx1 =z 0
1 −π01=−14≤0,
min ˆfx2 =z 0
2 −π02=−25≤0.
Assim, temos associado a cada solu¸c˜ao dos subproblemas uma coluna do problema mestre.
As colunas correspondentes `a solu¸c˜ao corrente s˜ao:
c1x21
A1x21
1 0 = −14 22 1 0 e
c2x22
A2x22
0 1 = −25 25 0 1
O problema mestre restrito decorrente do problema mestre corrente mais as novas colunas ´e
como segue;
min−14λ21−25λ22 (1.103)
Sujeito a:
22λ2
1 + 25λ22 + s = 40
λ11 + λ21 = 1
λ12 + + λ22 = 1
(1.104)
com todas vari´aveis n˜ao negativas. O problema (1.103)-(1.104) ´e resolvido pelo M´etodo Simplex
Exemplo 23
Vari´avel b´asica Colunas do problema mestre Coluna de entrada
s λ11 λ12 −z Constantes λ22
s 1 40 25
λ11 1 1 0
λ12 1 1 1
−z 1 0 -25
Tabela 1.3: Entra na base a vari´avelλ22,sai λ12.
Vari´avel b´asica Colunas do problema mestre Coluna de entrada
s λ11 λ12 −z Constantes λ21
s 1 -25 15 22
λ11 1 1 1
λ22 1 1 1
−z 25 1 25 -14
Tabela 1.4: Entra na base a vari´avelλ21,sais.
Vari´avel b´asica Colunas do problema mestre
s λ11 λ12 −z Constantes
λ21 221 −2522 1522
λ11 −221 1 2522 227
λ22 1 1
−z 1422 20022 1 34116
Tabela 1.5: Solu¸c˜ao ´otima do exemplo 1.
a nova solu¸c˜ao para o problema original ´e:
x1 = λ11x11+λ21x21=
7
22(0,0) + 15
22(6,8) (1.105)
x2 = λ22x22 = (10,5) (1.106)
z = −368
11 . (1.107)
ITERAC¸ ˜AO 2
Novos multiplicadores simplex s˜ao encontrados na Tabela 1.5
(π, π01, π02) =
µ
−14
22,0,− 200
22
¶
Exemplo 24
Esses s˜ao usados para formar novos custos para os subproblemas
z1 = (c1−πA1)x1 = [(−1,−1) +
14
22(1,2)]x1 =− 8 22x1+
6
22x2 (1.108)
z2 = (c2−πA2)x2 = [(−2,−1) +
14
22(2,1)]x2=− 16
22x3+− 8
22x4 (1.109)
Minimizandoz1 ez2sobre o conjunto de restri¸c˜oes dos subsistemas obtemos a solu¸c˜ao ´otima:
x31 = (10,0) (1.110)
z10 =−80
22 (1.111)
x22 = (10,5) (1.112)
z20=−200
22 (1.113)
O novo problema mestre restrito ficar´a da forma
min−14λ21−25λ22−10λ31−25λ32 (1.114)
Sujeito a:
22λ21 + 25λ22 + 10λ31 + 25λ32 = 40
λ11 + λ21 + λ31 = 1 λ22 + λ32 = 1
(1.115)
A solu¸c˜ao ´otima para o problema restrito ´e uma solu¸c˜ao b´asica fact´ıvel para este problema,
com base inversa dada no final da Tabela 1.5 da Itera¸c˜ao 1. A solu¸c˜ao do problema (1.114) - (1.115)
´e apresentado nas Tabelas1.6 e 1.7.
Vari´avel b´asica Colunas do problema mestre Coluna de entrada
s λ11 λ12 −z Constantes λ31
λ21 221 −2522 1522 1022
λ11 −221 1 2522 227 1222
λ22 1 1 0
−z 1422 20022 1 34116 −8022
Exemplo 25
Vari´avel b´asica Colunas do problema mestre
s λ11 λ12 −z Constantes
λ21 121 −1012 −2512 125
λ31 −121 2212 2512 127
λ22 1 1
−z 124 8012 20012 1 −1103
Tabela 1.7: Solu¸c˜ao ´otima do exemplo 2.
A solu¸c˜ao fact´ıvel corrente para o problema original (1.91)-(1.98) ´e
x1 = λ21x12+λ31x31 =
5
12(6,8) + 7
12(10,0) =
µ
25 3 ,
10 3
¶
(1.116)
x2 = λ22x22 = (10,5) (1.117)
z = −110
3 . (1.118)
ITERAC¸ ˜AO 3
Os novos multiplicadores do simplex (ver Tabela 1.7) e as fun¸c˜oes objetivos dos subproblemas
s˜ao
(π, π01, π02) =−
µ
4 12,
80 12,
200 12
¶
(1.119)
z1 = (c1−πA1)x1 = [(−1,−1) +124(1,2)]x1=−23x1+−13x2
z2 = (c2−πA2)x2 = [(−2,−1) +2214(2,1)]x2=−43x3+−23x4
A solu¸c˜ao ´otima dos subproblemas ´e
x41 = (6,8) (1.120)
ou
x51 = (10,0) (1.121)
z10 =−20
3 (1.122)
x42 = (10,5); (1.123)
z20=−50
3 (1.124)
min ˆfx1 =z 0
1−π01= 0 (1.125)
min ˆfx2 =z 0
2−π02= 0 (1.126)
min ˆcs=−π01=
80
Exemplo 26
Visto que o valor de (1.125), (1.126) e (1.127) s˜ao n˜ao negativos, a solu¸c˜ao corrente do problema
mestre ´e ´otima, e a solu¸c˜ao ´otima do problema original conforme (1.116) - (1.118), ´e dada por:
x1 = (x1, x2) = (
25 3 ,
10
3 ) (1.128)
x2 = (x3, x4) = (10,5) (1.129)
z = −110
Cap´ıtulo 2
Os Problemas de Job-Shop
Os problemas de seq¨uenciamento do tipo job-shop s˜ao problemas combinat´orios classificados
NP-dif´ıcil[16]. Este problema de job-shop tem como dados: tarefas, restri¸c˜oes de potencialidade,
recursos e fun¸c˜ao econˆomica.
As tarefas podem ser ligadas porrestri¸c˜oes de potencialidade. Estas englobam: (i) as
restri-¸c˜oes de sucess˜ao, as quais significam, uma tarefa deve ser executada posteriormente a uma outra tarefa;
(ii) as restri¸c˜oes de localiza¸c˜ao no tempo , as quais significam,uma tarefa deve ser conclu´ıda em uma
determinada data ou sua execu¸c˜ao n˜ao deve come¸car antes e nem finalizar ap´os uma determinada data.
Estas tarefas requerem certosrecursospara a sua exe cu¸c˜ao. Estes recursos, por sua vez, introduzem
restri¸c˜oesdisjuntivasno problema. Uma restri¸c˜ao disjuntiva aparecer´a quando duas tarefas, utilizando
um mesmo recurso, n˜ao puderem ser executadas simultaneamente. Enfim, deve-se programar as tarefas
de forma a otimizar um determinado crit´erio que ser´a a minimiza¸c˜ao de uma determinada fun¸c˜ao
econˆomica.
De um ponto de vista industrial, num problema de f´abrica, as tarefas (chamadas opera¸c˜oes
elementares) s˜ao reagrupadas em entidades chamadas trabalhos (ou jobs). Um problema de f´abrica,
em geral, cont´em um conjunto de m´aquinas distintas e cada trabalho ´e um conjunto de opera¸c˜oes
elementares, onde cada uma delas deve ser executada numa m´aquina diferente.
Podemos distinguir trˆes tipos de problemas de f´abrica , segundo a natureza das restri¸c˜oes de
precedˆencia entre as opera¸c˜oes de um mesmo trabalho[3]: (1) se as opera¸c˜oes s˜ao independentes,
trata-se de um problema deopen-shop; (2) se as opera¸c˜oes s˜ao ligadas por uma ordem, n˜ao necessariamente
Os problemas de f´abrica 28
por uma mesma ordem para todos os trabalhos, trata-se de um problema deflow-shop.
Em particular, trataremos o problema de job-shop cujas caracter´ısticas ser˜ao mostradas nas se¸c˜oes
seguintes.
2.1
Os problemas de f´
abrica
Nos problemas de f´abrica, as tarefas s˜ao asopera¸c˜oes elementaresrelativas `a fabrica¸c˜ao de um
produto; elas necessitam para sua realiza¸c˜ao de um recurso principal chamadom´aquina. A fabrica¸c˜ao
de um produto ´e sempre denominadotrabalho(job). Geralmente, as opera¸c˜oes de um mesmo trabalho
s˜ao organizadas em uma seq¨uˆencia denominadas gama operat´oria , enquanto que as opera¸c˜oes de
trabalhos diferentes s˜ao independentes.
Consideramos o caso no qual uma f´abrica cont´emm m´aquinas distintas enprodutos. Cada
produto Pi ´e um conjunto de ni opera¸c˜oes elementares. Assim, existem n0 =
n X
i=1
ni opera¸c˜oes na
f´abrica, cada uma delas tendo que ser executada, numa m´aquina diferente: a utiliza¸c˜ao de uma
m´aquinakpor uma opera¸c˜ao j ´e denotadaMk(Oj) =Mk; N´os utilizamos as seguintes nota¸c˜oes:
• P = o conjunto denprodutos (trabalhos) Pi.
• M= o conjunto dem m´aquinas Mk.
• O = o conjunto de todas as opera¸c˜oes(tarefas)Oj.
• O′
= O ∪ {O0, Of im} = o conjunto de todas as opera¸c˜oes (tarefas), incluindo as opera¸c˜oes
fict´ıcias,O0 e Of im, que n˜ao s˜ao executadas em m´aquinas e n˜ao aparecem nos produtos. Estas
opera¸c˜oes devem ser executadas respectivamente, antes e ap´os todas as opera¸c˜oes Oj ∈ O. O
conjuntoO cont´em n0 opera¸c˜oes enquanto que O′ cont´em (n0+ 2) opera¸c˜oes.
2.1.1 Os produtos e os crit´erios
Os produtos podem chegar na f´abrica numa mesma data ou de forma seq¨uenciada.
Esta-mos falando respectivamente dos problemas est´aticose dinˆamicos. Quando as datas de chegada dos
produtos s˜ao conhecidas de forma determinada podemos impor ao produtoPi,
O problema de Job-Shop 29
• uma “data mais tarde (di)” que representa o instante limite de fim de sua execu¸c˜ao.
A data de fim de execu¸c˜ao para cada produtoi´e comumente denotada por
Ci = max
1≤j≤ni
{Cj},
ondeCj representa a data de fim de execu¸c˜ao da opera¸c˜aoj na gama operat´oria do produto i.
2.1.2 As m´aquinas
As m´aquinas s˜ao recursos disjuntivos e assim, a execu¸c˜ao das opera¸c˜oes que utilizam a mesma
m´aquina deve ser planejada de tal sorte que as m´aquinas tenham uma opera¸c˜ao por vez para tratar. O
seq¨uenciamento dos problemas de f´abrica resulta freq¨uentemente na procura de seq¨uencias de opera¸c˜oes
sobre as m´aquinas.
Consideramos o caso onde uma opera¸c˜ao s´o pode ser executada numa ´unica m´aquina (f´abricas
com m´aquinas especializadas ), e os casos particulares onde todas as opera¸c˜oes s˜ao executadas numa
´
unica m´aquina existente na f´abrica (f´abricas com uma ´unica m´aquina).
Nas f´abricas com m´aquinas especializadas, podemos distinguir trˆes tipos de problemas de
f´abrica segundo a natureza das restri¸c˜oes de precedˆencia entre as opera¸c˜oes elementares de um mesmo
trabalho denominados[31]: (1) open-shop,(2) job-shop e(3) flow-shop.
O caso particular onde uma s´o m´aquina existe na f´abrica problemas com uma m´aquina foi
muito estudado na literatura [3]; a fabrica¸c˜ao de cada produto ´e ent˜ao reduzida a uma ´unica opera¸c˜ao
denominada simplesmente tarefa.
2.2
O Problema de Job-Shop
Consideremos os problemas de seq¨uenciamento do tipo job-shop constitu´ıdos por umconjunto
Mde m m´aquinas, umconjunto P de n produtos, um conjunto O de n0 opera¸c˜oes:
M={Mk|k= 1, . . . , m} ; P ={Pi|i= 1, . . . , n} ; e O={Oj|j= 1, . . . , n0}.
A utiliza¸c˜ao de uma m´aquina Mk por uma opera¸c˜ao Oj ´e denotado por M(Oj) = Mk. O
n´umero total de opera¸c˜oes executado por uma m´aquinaMk´e denotado pormk. A dura¸c˜ao de execu¸c˜ao
O problema de Job-Shop 30
ocupada e todas as outras opera¸c˜oes sobre a mesma m´aquina aguardar˜ao a sua vez de processamento.
Dessa forma, toda opera¸c˜ao numa m´aquina ter´a uma data de in´ıcio de execu¸c˜ao denotada por tj.
Esta data, calculada para cada opera¸c˜ao numa mesma m´aquina, depende do instante de finaliza¸c˜ao da
opera¸c˜ao precedente. O instante de t´ermino para uma opera¸c˜aoOj ´e denotadoCj, ondeCj =tj+pj.
Uma opera¸c˜ao pode ser ent˜ao caracterizada por seu produto, sua posi¸c˜ao na gama operat´oria,
sua m´aquina e sua dura¸c˜ao de execu¸c˜ao. A m´aquina deve ser ocupada durante um per´ıodo de tempo
conhecido a fim de processar a opera¸c˜ao.
A seguir apresentamos as principais caracter´ısticas de um produtoPi:
• ni = n´umero de opera¸c˜oes.
• Pi ={O1;O2;. . .;Oni} = seq¨uˆencia de opera¸c˜oes (gama operat´oria).
• pi = ni X
j=1
pj = dura¸c˜ao total de fabrica¸c˜ao dePi.
• ri = instante mais cedo de lan¸camento para toda opera¸c˜ao dePi.
• di = instante mais tarde do fim de execu¸c˜ao para todas as opera¸c˜oes dePi.
• Ci = instante para finalizar o processamento completo dePi, ondeCi= max
1≤j≤ni
{Cj}.
Nos limitamos aos problemas de job-shopest´aticos e determin´ısticos com m´aquinas
especia-lizadas. Dizemos que um problema ´e est´atico quando todos os seus dados s˜ao conhecidos a priori, e
determin´ıstico quando os tempos associados a cada opera¸c˜ao s˜ao perfeitamente determinados. Dizemos
que o problema ´e com m´aquinas especializadas quando possui uma lista de opera¸c˜oes, para cada
produto, e uma ordem de passagem nas m´aquinas, imposta inicialmente.
As restri¸c˜oes do problema de job-shop est˜ao relacionadas `as possibilidades de utiliza¸c˜ao das
m´aquinas e `as liga¸c˜oes que podem existir entre as opera¸c˜oes. As restri¸c˜oes que n´os adotamos s˜ao as
seguintes:
• referentes `as m´aquinas
– As m´aquinas s˜ao independentes umas das outras, e est˜ao dispon´ıveis durante todo o per´ıodo
do seq¨uenciamento.
– Uma m´aquina n˜ao pode executar mais de uma opera¸c˜ao em um determinado instante. A
O problema de Job-Shop 31
– N˜ao pode existir apreemp¸c˜ao, isto ´e, uma opera¸c˜ao em execu¸c˜ao n˜ao pode ser interrompida
pois todas possuem a mesma prioridade.
• referentes aos produtos
– Os produtos s˜ao independentes entre si e n˜ao existe uma ordem de prioridade entre eles.
– Um produto deve passar por uma ´unica m´aquina a cada vez, ou seja, cada opera¸c˜ao de sua
gama operat´oria deve passar por uma m´aquina diferente.
– Na gama operat´oria de um produto, cada opera¸c˜ao deve respeitar uma ordem de execu¸c˜ao:
a opera¸c˜ao Oj+1 n˜ao pode ser iniciada antes do t´ermino deOj.
A fim de tornar mais compreensiva todas as defini¸c˜oes vistas, apresentamos um exemplo de um
proble-ma de job-shop cujos dados s˜ao mostrados na Tabela 2.1. O crit´erio de otimiza¸c˜ao deste problema ´e a
n= 4 m= 3
n1=n2=n3= 3 m1=m2=m3= 4
produto opera¸c˜ao dura¸c˜ao m´aquina
1 1 3 2
1 2 3 3
1 3 1 1
2 4 3 3
2 5 2 2
2 6 3 1
3 7 1 2
3 8 4 1
3 9 4 3
4 10 4 1
4 11 3 2
4 12 2 3
Tabela 2.1: Dados do problema-exemplo de job-shop.
minimiza¸c˜ao do tempo total de seq¨uenciamento (makespan): min{max
i Ci}.Devemos ent˜ao determinar
a seq¨uˆencia das opera¸c˜oes em cada m´aquina, de tal sorte que ela seja a menor poss´ıvel respeitando
todas as restri¸c˜oes do problema.
Podemos tamb´em representar este problema de job-shop utilizando grafo potencial-tarefas
G = (X,C ∪ D) onde X ´e o conjunto de n´os do grafo associado a cada opera¸c˜ao de um determinado
produto, C representa o conjunto relativo aos arcos associados `as restri¸c˜oes de precedˆencia e D
rep-resenta o conjunto dos arcos associados `as restri¸c˜oes disjuntivas[31]. Desta forma, o problema acima,
ficar´a ilustrado pelo grafoG como mostra a Figura 2.1.
Na Figura 2.1, mostramos o grafo com o conjunto de arcos conjuntivosC representados pelas
O problema de Job-Shop 32 MAQUINA 1 1 3 4 2 O12
O 9
O 6
O 3
0 0 3 3 1 4
O 4
O 7
O10
3
2
4
3
O 2
5
O 8
O11
O 0
O 1
Ofin
O
MAQUINA 2 MAQUINA 3
´ ´ ´
Figura 2.1: Grafo potencial-tarefa representando o exemplo do job-shop.
arcos disjuntivos representam as m´aquinas. Cada opera¸c˜ao ´e representada por um n´o. Os arcos que
partem de cada n´o s˜ao ponderados pela dura¸c˜ao da opera¸c˜ao correspondente. Os arcos que est˜ao `a
origem do n´oO0 s˜ao ponderados pelo instante do lan¸camento da primeira opera¸c˜ao de cada produto.
Os arcos que chegam ao n´oOf im s˜ao ponderados pelo instante do t´ermino da ´ultima opera¸c˜ao de cada
produto. Neste exemplo, todos os produtos s˜ao lan¸cados inicialmente ao instante 0[31].
Para representar a solu¸c˜ao deste problema de job-shop utilizamos o diagrama de Gantt, que
nos permite visualizar um seq¨uenciamento representando a ocupa¸c˜ao das m´aquinas pelas opera¸c˜oes
em fun¸c˜ao do tempo[31]. Apresentamos, na Figura 2.2, duas solu¸c˜oes poss´ıveis para este problema
num diagrama de Gantt. Observamos que todas as restri¸c˜oes do problema s˜ao respeitadas; n˜ao existe
superposi¸c˜ao entre as opera¸c˜oes. Notemos que a solu¸c˜ao S1 forneceu um comprimento do seq¨
uencia-mento maior que a solu¸c˜aoS2: Cmax1 ≫Cmax2. Isto foi devido ao fato que, emS1, encontramos muito
mais tempo morto1 nas m´aquinas que em S
2. Estes tempos mortos s˜ao representados pelos espa¸cos
vazios de uma faixa antes do in´ıcio da execu¸c˜ao de alguma opera¸c˜ao numa mesma m´aquina.
tempo tempo M1 M2 M3 Cmax C max Solucao S 1
0 0 33 13 M3 M2 M1 P2 P3 P4 P1 P2 P3 P4 P1
: = 33
1
: = 13
2
Solucao S 2 ´ ´
~ ~
Figura 2.2: Diagrama de Gantt representando duas solu¸c˜oes para o exemplo do job-shop.