Danzig-Wolfe nedbrytning

Danzig-Wolfe-sönderdelningsmetoden är en specialiserad version av simplexmetoden .

År 1960 utvecklade George Dantzig och Philip Wolf en nedbrytningsmetod för att lösa högdimensionella problem med en speciell restriktionsmatrisstruktur [1] .

Denna metod visade sig vara den mest effektiva för att lösa problem vars begränsningsmatris har en blockdiagonal form med ett litet antal variabler. Men som ytterligare studier visade är metoden även tillämpbar på linjära programmeringsproblem med en generell matris. Motsvarande metod föreslogs av D. B. Yudin och E. G. Holstein och kallas blockprogrammering .

Ett utmärkande drag för nedbrytningsmetoden är användningen av ett koordinerande problem , som jämfört med det ursprungliga har ett litet antal rader och ett stort antal kolumner.

Kolumngenereringsmetod

Det är väsentligt att lösningen av det koordinerande problemet inte kräver explicit specifikation av alla kolumner. De genereras i processen med att använda simplexmetoden. Detta tillvägagångssätt kallas kolumngenereringsmetoden .

Det räcker med att kunna generera en kolumn och ha en procedur som väljer en kolumn att lägga in i underlaget.

Ofta reduceras en sådan procedur till att lösa ett specifikt delproblem (inte nödvändigtvis linjär programmering).

Principen för nedbrytning

Lemma Låta vara en icke-tom sluten avgränsad mängd i det euklidiska rummet och ha ett ändligt antal extrempunkter, som kommer att betecknas här . Då kan vilken punkt som helst i mängden representeras som en konvex kombination av extrempunkter i mängden R, dvs. för det finns icke-negativa tal med en totalsumma av ett ( ) och sådant

(1) .

Låt uppgiften

Maximera

(2)

under restriktioner

(3)

(fyra)

(5)

Restriktioner (3) definierar en simplex S, låt vara dess extrempunkter.

Låt x vara en tillåten lösning Med lemma

Låt oss ersätta det sista uttrycket med (2) och (3).

Uppgiften kommer att ta formen

Maximera (6)

under restriktioner

(7)

(8) .

Denna uppgift är likvärdig med den ursprungliga (2)-(5) och kallas den koordinerande uppgiften .

Den har bara rader med begränsningar jämfört med raderna i det ursprungliga problemet, och ett mycket stort antal kolumner lika med antalet extrempunkter i uppsättningen . För att inte lagra alla dessa kolumner i datorns minne kommer vi att ta emot dem efter behov, med metoden att generera kolumner.

Algoritm

Vi löser problem (6)-(8) med simplexmetoden med kolumngenereringsmetoden.

För enkelhetens skull antar vi att någon tillåten grundlösning redan är känd.

Beteckna med begränsning (8), då är de dubbla variablerna vektorn .

För att komma in i grunden är det nödvändigt att hitta , sådan att

Det räcker alltså att hitta m där miniminivån uppnås

(9)

vilket motsvarar att lösa problemet

minimera (10)

under begränsningar (4) och (5).

Om det hittade minimumet inte är större än , är problemet löst.

Annars läggs kolumnen som motsvarar den hittade lösningen in i basen.

Blockera uppgifter

Låt begränsningar (4) ha en blockstruktur

Uppgift (10),(4),(5) är uppdelad i separata deluppgifter

Hitta minimum

(elva)

under förhållanden

(12)

Anteckningar

  1. George B. Dantzig; Philip Wolf. Nedbrytningsprincip för linjära program  (obestämd)  // Operations Research. - 1960. - T. 8 . - S. 101-111 .

Litteratur