Inrodução à Decompoição de Danzig-Wolfe Manuel Anónio Mao FEUP 994
índice. Inrodução... 2. Noação... 3. Decrição geral... 4. Deenvolvimeno...2 5. Algorimo...5 5.. Noação...5 5.2. Solução báica inicial...5 5.3. Cálculo do vecor de preço...5 5.4. Cálculo do cuo reduzido...6 5.5. Opimalidade (variável a enrar na bae)...6 5.6. Admiibilidade (variável a air da bae)...7 5.7. Pivoação...7 5.8. Nova ieração...8 6. Melhoria da eficiência...8 Exemplo iluraivo...9
. Inrodução Ea noa foram elaborada na equência de oliciaçõe de colaboração em diciplina de merado, a propóio da aplicação da decompoição de Danzig-Wolfe, e reumem, porano, o pono fundamenai focado nea apreenaçõe. O exo em, em conequência, carácer inroduório e pedagógico, recomendando-e ao leior inereado a conula a manuai mai compleo, para complemeno da informação que aqui pode colher. No enano, a decrição do méodo é complea, permiindo a implemenação do algorimo. Aendendo ao carácer do exo, pare-e do princípio que o leior eá familiarizado com o conceio de programação linear, nomeadamene o algorimo revio do Simplex. O exo apreena a moivação e deenvolvimeno do méodo, e decreve o algorimo correpondene, uando uma noação eencialmene maricial. Finalmene, é apreenado um pequeno exemplo numérico, para iluração da aplicação do méodo. 2. Noação Uilizar-e-ão lera maiúcula para deignar marize e conuno (A, B ) e lera minúcula carregada (x, b 3 ) para deignar vecore, correpondendo a lera minúcula imple a variávei, conane e elemeno de vecore ou marize. Há marize que ão ubmarize de oura (p.ex. A = [A A 2... A ]), vecore que ão coluna de marize e vecore que ão ub-vecore de ouro (p.ex. x = [x x 2... x ] ). Normalmene a noação é clara no conexo, nomeadamene devido à dimenõe envolvida e à fore ligação concepual com o algorimo do Simplex. A noação e o equema geral da expreõe eguem de pero Muragh, B.A., Advanced Linear Programming, McGraw-Hill, 98. 3. Decrição geral A decompoição de Danzig-Wolfe aplica-e a problema de programação linear de grande dimenõe, em que a mariz do coeficiene ecnológico em eruura bloco- -angular. O méodo procura aproveiar a eruura epecial da mariz para reduzir a dimenão da bae, criando um problema equivalene com grande redução no número de reriçõe (e porano na dimenão da bae). No enano, a ua caraceríica mai relevane é um equema de geração implícia de coluna não-báica no problema equivalene, indipenável para ornar poível a reolução.
P: Problema original (bloco-angular) [ ]. x max c c 2 " c u: A A 2 " A B B2 # B. x x 2 $ x = b 0 b b 2 $ b!! x 0 Ee problema correpondem a iema (ou organizaçõe) em que enidade relaivamene auónoma (B.x = b ) e relacionam aravé de uma geão comum (max c.x) e reriçõe de ligação (A.x = b 0 ). Se for m a dimenão (número de reriçõe) de cada bloco (=..), e endo m 0 o número de reriçõe da marize A, a dimenão do problema erá m 0 +Σm. Ea dimenão da bae do problema original pode er, porano, muio elevada, o que, conugado com a obervação da eruura da mariz de coeficiene, leva à enaiva de, aproveiando a egunda, diminuir a primeira. 4. Deenvolvimeno A ideia bae do méodo de decompoição aena na conhecida propriedade que permie repreenar oda a oluçõe de um domínio convexo limiado como combinação linear convexa do eu pono exremo. Aim, a reriçõe própria de cada ubproblema vão er ubiuída pela enumeração da ua oluçõe exrema, havendo ó que incluir reriçõe de convexidade no muliplicadore uilizado. Parindo do conuno E do r pono exremo de B.x = b : E! = x r { " x " x } () Se exiirem oluçõe não-limiada, anbém é poível ea repreenação. Ee ópico, no enano, não erá raado nee exo. 2
em-e r x r com λ = e λ 0 (2) = = x = λ Uando a expreão (2), é poível reecrever a função obecivo do problema original: c x = c = = r. λ x = λ c.x (3) = = r = ( ) ou, fazendo u = c. x e noando que e raa de um valor conane, c x = = = r = u λ (4) De modo análogo, podem reecrever-e a reriçõe de ligação, a parir de: A = r x = A. λ x = λ A.x (5) = = = r = ( ) Fazendo p = A.x (conane!), pode enão ecrever-e: = r = p λ = b 0 (6) Apó ea ranformaçõe, verifica-e que, upondo conhecida a oluçõe exrema do ubproblema: - A expreão (4) é equivalene à função obecivo do problema original; - A expreão (6) ubiui a reriçõe de ligação; - A reriçõe B.x = b do ubproblema podem er ignorada, uma vez que a expreão (2) garane a admiibilidade em relação a cada um dele; - É neceário acrecenar a reriçõe (2) obre o λ, em cada um do ubproblema. Com a ranformaçõe indicada, obém-e um problema equivalene ao problema original, ma definido em ermo do λ, que é habiualmene deignado por Problema Mere, por conrapoição à exiência de ubproblema. A formulação do novo problema é apreenada a eguir. 3
P2: Problema Mere max u: = r = u λ = r = p λ = b 0 r λ = =.. = λ 0 =.., =..r Por er eclarecedora quano à forma dee novo problema, apreena-e a eguir a expreão maricial da reriçõe de igualdade de P2: 2 r p p " p " " p 2 p " r p " " λ 2 λ $ r λ 2 r " p p " p $ b 0 λ 2 λ $ $ = " r λ $ " $ λ 2 λ $ r λ No novo problema, vária coia mudaram em relação ao problema original: - A variávei ão o λ. A reolução do problema mere dá o valore ópimo do λ, podendo ober-e o correpondene valore da variávei originai x com recuro à expreão (2) e à oluçõe exrema do ubproblema (recorda-e que e upueram conhecida); - A bae em dimenão m 0 +. Em problema de grande dimenão (o único que ineream a ee méodo), io coniui uma redução dráica. Por 4
exemplo: endo 0 ubproblema com 50 reriçõe, paa-e, no ubproblema, de 500 para 0 reriçõe (manêm-e a reriçõe de ligação); - O problema mere em Σr coluna. Ee número é incomporável, obreudo endo em cona que é neceário gerar previamene oda a oluçõe exrema de odo o ubproblema. O úlimo apeco é definiivo, ou ea, não e uificaria fazer a ranformação para um problema mai rabalhoo que o original. Surge a33qui a ideia fundamenal do méodo de decompoição de Danzig-Wolfe: a coluna do problema mere vão endo gerada ó quando ão neceária (para enrar na bae). É ea mecânica que e decreve na ecção eguine. 5. Algorimo 5.. Noação A decrição do algorimo baeia-e na forma revia do Simplex, recorrendo-e à noação indicada a eguir: B c B c N d N n mariz Bae do Problema Mere vecor de Coeficiene da variávei báica vecor de Coeficiene da variávei não-báica vecor de Cuo reduzido mariz de coeficiene da variávei não báica coluna de N correpondene à variável não-báica λ n! = p 0 $ $ 0 linha 5.2. Solução báica inicial Conrução emelhane à do problema normai, recorrendo a variávei auxiliare e variávei arificiai. 5
5.3. Cálculo do vecor de preço O vecor de preço v calcula-e com a expreão eguine, endo de noar que, para a variávei báica λ, o coeficiene c B ão o u correpondene:!! v = c B.B = [ v 0 v v 2 " v ] (7) 5.4. Cálculo do cuo reduzido Em princípio, er-e-ia que dipor, nee pono, de oda a coluna correpondene a variávei não-báica, o que, como e die, ornaria deinereane a aplicação da decompoição. Na verdade, o cálculo do cuo reduzido eria que er feio com: d = v.n c N (8) endo, para cada elemeno de d d = v 0.p + v u (9) Subiuindo, virá d = v 0.A.x + v c. x (0) ou, finalmene, d = c v ( 0.A ).x + v () 5.5. Opimalidade (variável a enrar na bae) É imporane noar o ignificado da expreão anerior, abendo-e que e procura o menor cuo reduzido, para eleccionar a variável a enrar na bae. Na verdade, em cada ubproblema, procura-e a olução exrema x que minimize o valor da expreão (). Io correponde, em cada ubproblema, a reolver um problema de programação linear em que () é a função obecivo (podendo excluir-e v, que não afeca a minimização): P3: Subproblema min ( c v 0.A ).x u: B.x = b x 0 6
Deignando por x a olução ópima de P3, o cuo reduzido mínimo correpondene ao ubproblema é dado por: d = c ( v 0.A ).x + v (2) Repeindo o proceo para odo o ubproblema, deermina-e enão o cuo reduzido mínimo: d q = min min d { {} } = min { d } (3) No cao de d q 0, a olução é ópima, e pode reconruir-e a olução ópima do problema original, recorrendo à expreão (2) e à oluçõe exrema do ubproblema que eão na bae. No cao conrário, a variável a enrar na bae é λ q, devendo regiar-e a olução exrema correpondene x q = x (olução ópima do ubproblema ). Repare-e que, em odo o proceo, não foi neceário gerar expliciamene mai do que oluçõe exrema do ubproblema (uma por cada um). 5.6. Admiibilidade (variável a air da bae) A coluna não-báica correpondene à variável λ q é dada por: a q = B.n q = B.!! p q 0 $ $ 0 q A.x 0 = B. $ $ 0 (4) Repare-e que ó inervêm no cálculo primeira m 0 coluna de B -, para além da coluna. Uma vez calculado a q, a elecção da variável a air da bae faz-e como no Simplex, ou ea: ( B.b) min i ( a i i q >0 a q = B.b) p p p x B ai da bae (5) a q Claro que, no cao de p não exiir, o problema mere (e, porano, o problema original) não é limiado, erminando o proceo. 7
5.7. Pivoação A aleraçõe de B - e em B -.b ão realizada da mema forma que no algorimo normal do Simplex. O coeficiene da nova variável báica na função obecivo, por ua vez, é calculado aravé de: c p B ( novo)= u q = c q.x (6) 5.8. Nova ieração O proceo recomeça com novo cálculo do vecor de preço (pono 5.3). 6. Melhoria da eficiência A reolução do ubproblema é a pare mai peada do proceo decrio na ecção anerior. No enano, é poível diminuir baane o empo de execução, noando que, em muio cao, a olução ópima de algun ubproblema não muda (ou exige apena mai uma ieração) enre dua ieraçõe uceiva do problema mere. O uo de procedimeno de pó-opimização revela-e aqui baane úil. Uma oura hipóee conie na aleração da eraégia de elecção da variávei a enrar na bae, ecolhendo, não o cuo reduzido mínimo, ma o primeiro cuo reduzido negaivo. O número oal de ieraçõe do problema mere pode aumenar, ma diminui o número médio de ubproblema a reolver por ieração. Finalmene, pode noar-e que a eruura da mariz do coeficiene do problema mere permie a aplicação de écnica de GUB (Generalized Upper Bounding), que exploram o faco de que, em cada ubproblema, pelo meno uma variável λ erá de ear na bae para a olução er admiível (cf. eruura da mariz do coeficiene de P2). Em concluão, orna-e evidene que a uilização da decompoição implica grande cuidado na implemenação compuacional, dada a dimenõe envolvida no problema reai em que ee procedimeno e orna inereane. A eficiência global, nomeadamene em relação ao empo de execução, implica normalmene a ecria de muia linha de código, que permiam aproveiar oda a paricularidade favorávei da eruura do problema. 8
Exemplo iluraivo Ee pequeno problema não neceiaria, obviamene, de reolução por decompoição. Reolve-e apena pelo ineree iluraivo que em a ua dimenão reduzida. Por erem muio imple, não e apreenam a reoluçõe do ubproblema, ma apena a formulação e reulado. max z = 3x + x 2 + 2x 3 + x 4 u: x + 3x 2 + 4x 3 + 2x 4 20 3x + x 2 0 2x 3 + x 4 5 3x 3 + 2x 4 8 x 0 Idenificam-e claramene doi ubproblema e uma rerição de ligação. A rerição de ligação obriga a incluir uma variável auxiliar x 5, que fica na bae inicial. Criam-e ambém dua variávei arificiai a e a 2 para a reriçõe de igualdade do λ de cada ubproblema no problema mere, que ficam ambém na bae inicial, com cuo -M. b = [20 ] x B = [x 5 a a 2 ] c B = [0 -M -M] B = B - = I v = [0 -M -M] Valore iniciai para o arranque do algorimo. No cao do problema mere, apena e expliciam o ermo independene e a bae. Subproblema max [3 0].x u [3 ].x = [0] O primeiro ubproblema foi aumenado com a variável auxiliar x 6, ficando porano x =[x x 2 x 6 ] x = [0/3 0 0] d = -0-M Subproblema 2 max [2 0 0].x 2 20 u 320.x 2 = 5 8 O egundo ubproblema foi aumenado com a variávei auxiliare x 7 e x 8, ficando x 2 =[x 3 x 4 x 7 x 8 ] x 2 = [6 0 3 0] d 2 = -2-M 9
Enra na bae Como d 2, correpondendo a x 2 = [6 0 3 0] λ 2 Sai da bae 24 a q = 0, min { 20 24,, 20 }= 24 Sai a primeira variável báica (x 5 ) <d e d 2 <0, enra na bae a variável correpondene à olução ópima do ubproblema 2 6 0 [ ]. 3 0 Repare-e que 4200 = [ 24] e B=I Nova bae 24 0 0 B = 0 0 0 24 B.b = 5 6 6 x B = [λ 2 a a 2 ] c B = [2 -M -M] v = [(2+M)/24 -M -M] Noe-e que 200 6 0 [ ]. 3 = 2 0 Subproblema max [(60-M)/24 (M-4)/8 0].x u [3 ].x = [0] x = [0 0 0] d = -M Subproblema 2 max [-M/6 -M/2 0 0].x 2 20 u 320.x 2 = 5 8 x 2 = [0 0 5 8] d 2 = -M Enra na bae Como d =d2 <0, pode enrar na bae qualquer λ, correpondendo a x = [0 0 0] da variávei. Opou-e pela do ubproblema. 0
Sai da bae 0 a q =, min {, 0, }= Sai a egunda variável báica (a ) Nova bae B - não e alera x B = [λ 2 λ a 2 ] c B = [2 0 -M] v = [(2+M)/24 0 -M] Subproblema A função obecivo não e alera O ópimo é o memo A variável correpondene á eá na bae Subproblema 2 A função obecivo não e alera O ópimo é o memo x 2 = [0 0 5 8] d 2 = -M Repare-e que, embora o valor da função obecivo do ubproblema ea o memo, é neceário recalcular d 2, poi v2 foi recalculado (embora o valor não e alerae) Enra na bae Como ó d 2 2, correpondendo a x 2 2 = [0 0 5 8] λ 2 <0, enra na bae a variável correpondene à olução ópima do ubproblema 2. Sai da bae 0 a q = 0, min {,, /6 Sai a erceira variável báica (a 2 ) }= /6 Nee pono, a olução á é viável, poi aíram da bae a dua variávei arificiai.
Nova bae B - não e alera x B = [λ 2 c B = [2 0 0] v = [/2 0 0] λ λ 2 2 ] Subproblema max [5/2 -/2 0].x u [3 ].x = [0] x = [0/3 0 0] d = -25/3 Subproblema 2 max [0 0 0 0].x 2 d 2 = 0 Nee cao, não é neceário reolver, poi o reulado é rivial. Enra na bae Como ó d λ 2, correpondendo a x 2 = [0/3 0 0] <0, enra na bae a variável correpondene à olução ópima do ubproblema. Sai da bae 0 72 a q =, min { 5/6 0 0/72,, }= 72 Sai a egunda variável báica (λ ) Nova bae B = 24 5 36 0 0 0 24 5 36 B.b = 25 36 36 x B = [λ 2 λ 2 λ 2 2 ] c B = [2 0 0] v = [/2 25/3 0] 2
Subproblema A função obecivo não e alera O ópimo é o memo A variável correpondene á eá na bae Subproblema 2 max [0 0 0 0].x 2 d 2 = 0 Nee cao, não é neceário reolver, poi o reulado é rivial. Solução ópima! [x x 2 x 6 ] = λ 2.x 2 = [0/3 0 0] [x 3 x 4 x 7 x 8 ] = λ 2.x 2 +λ 2 2 2.x 2 [x 5 ]=[0] = [25/6 0 20/3 /2] Uma vez que d e d2 ão não-negaivo, aingiu- -e o ópimo do Problema Mere e, porano, do problema original. A olução ópima dee é reconruída a parir da oluçõe báica do ubproblema. O valor ópimo da função obecivo pode er obido no problema mere ou no problema original. x * = [0/3 0 25/6 0] z * = 55/3 3