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.
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ă).
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.
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.
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)
de optimizare | Metode|
---|---|
Unidimensional |
|
Comanda zero | |
Prima comanda | |
a doua comanda | |
Stochastic | |
Metode de programare liniară | |
Metode de programare neliniară |