Descompunerea Danzig-Wolfe

Metoda de descompunere Danzig-Wolfe este o versiune specializată a metodei simplex .

În 1960, George Dantzig și Philip Wolf au dezvoltat o metodă de descompunere pentru rezolvarea problemelor de dimensiuni mari cu o structură matriceală de constrângeri specială [1] .

Această metodă s-a dovedit a fi cea mai eficientă pentru rezolvarea problemelor a căror matrice de constrângeri are o formă bloc-diagonală cu un număr mic de variabile. Cu toate acestea, după cum au arătat studiile ulterioare, metoda este aplicabilă și problemelor de programare liniară cu o matrice generală. Metoda corespunzătoare a fost propusă de D. B. Yudin și E. G. Holstein și se numește programare în bloc .

O caracteristică distinctivă a metodei de descompunere este utilizarea unei probleme de coordonare care, în comparație cu cea inițială, are un număr mic de rânduri și un număr mare de coloane.

Metoda de generare a coloanelor

Este esențial ca soluția problemei de coordonare să nu necesite specificarea explicită a tuturor coloanelor. Ele sunt generate în procesul de utilizare a metodei simplex. Această abordare se numește metoda de generare a coloanei .

Este suficient să poți genera o coloană și să ai o procedură care selectează o coloană pentru a intra în bază.

Adesea o astfel de procedură se reduce la rezolvarea unei anumite subprobleme (nu neapărat programare liniară).

Principiul descompunerii

Lema Fie o mulțime mărginită închisă nevidă în spațiul euclidian și să aibă un număr finit de puncte extreme, care vor fi notate aici . Atunci orice punct al multimii poate fi reprezentat ca o combinatie convexa de puncte extreme ale multimii R, i.e. căci există numere nenegative cu o sumă totală de unu ( ) și astfel încât

(1) .

Lasă sarcina

Maximizați

(2)

sub restricții

(3)

(patru)

(5)

Constrângerile (3) definesc un S simplex, fie punctele sale extreme.

Fie x o soluție admisibilă După lemă

Să substituim ultima expresie în (2) și (3).

Sarcina va lua forma

Maximizați (6)

sub restricții

(7)

(8) .

Această sarcină este echivalentă cu originalul (2)-(5) și se numește sarcina de coordonare .

Are doar rânduri de restricții în comparație cu rândurile problemei inițiale și un număr foarte mare de coloane egal cu numărul de puncte extreme ale mulțimii . Pentru a nu stoca toate aceste coloane în memoria computerului, le vom primi după nevoie, folosind metoda de generare a coloanelor.

Algoritm

Rezolvăm problema (6)-(8) prin metoda simplex folosind metoda generării coloanelor.

Pentru simplitate, presupunem că o soluție de bază admisibilă este deja cunoscută.

Se notează prin constrângere (8), atunci variabilele duale sunt vectorul .

Pentru a intra în bază, este necesar să găsiți , astfel încât

Astfel, este suficient să găsim m pe care se atinge minimul

(9)

ceea ce echivalează cu rezolvarea problemei

minimiza (10)

sub constrângerile (4) și (5).

Dacă minimul găsit nu este mai mare decât , problema este rezolvată.

În caz contrar, în bază se introduce coloana corespunzătoare soluției găsite.

Blocați sarcini

Fie constrângerile (4) să aibă o structură de bloc

Problema (10),(4),(5) este împărțită în subsarcini separate

Găsiți minimul

(unsprezece)

in conditii

(12)

Note

  1. George B. Dantzig; Philip Wolf. Principiul de descompunere pentru programe liniare  (nedefinit)  // Cercetare operațională. - 1960. - T. 8 . - S. 101-111 .

Literatură