Programare convexă

Versiunea actuală a paginii nu a fost încă examinată de colaboratori experimentați și poate diferi semnificativ de versiunea revizuită pe 21 noiembrie 2021; verificările necesită 2 modificări .

Programarea convexă  este un subdomeniu al optimizării matematice care studiază problema minimizării funcțiilor convexe pe mulțimi convexe . În timp ce multe clase de probleme de programare convexe admit algoritmi de timp polinomial [1] , optimizarea matematică este în general NP-hard [2] [3] [4] .

Programarea convexă are aplicații într-o gamă largă de discipline, cum ar fi sistemele de control automat , evaluarea și procesarea semnalului , comunicații și rețele, circuite [5] , analiza și modelarea datelor, finanțe , statistici ( proiectare optimă a experimentelor ) [6] și optimizare structurală [7] . Dezvoltarea tehnologiei informatice și a algoritmilor de optimizare a făcut programarea convexă aproape la fel de simplă ca programarea liniară [8] .

Definiție

O problemă de programare convexă este o problemă de optimizare în care funcția obiectiv este o funcție convexă și domeniul soluțiilor fezabile este convex . O funcție care mapează o anumită submulțime este convexă dacă domeniul este convex atât pentru toate cât și pentru toate în domeniul lor de . O mulțime este convexă dacă pentru toate elementele sale și oricare dintre ele aparține de asemenea mulțimii.

În special, problema programării convexe este problema găsirii unor , pe care

,

unde funcția obiectiv este convexă, la fel ca și mulțimea soluțiilor fezabile [9] [10] . Dacă un astfel de punct există, se numește punct optim . Mulțimea tuturor punctelor optime se numește mulțime optimă . Dacă este nemărginită de sau infimumul nu este atins, se spune că optimizarea este nemărginită . Dacă este gol, se vorbește de o sarcină inacceptabilă [11] .

Forma standard

Se spune că o problemă de programare convexă este în formă standard dacă este scrisă ca

Minimizați În condiții

unde este variabila de optimizare, funcțiile sunt convexe, iar funcțiile sunt afine [11] .

În acești termeni, funcția este funcția obiectiv a problemei, iar funcțiile și sunt numite funcții de constrângere. Mulțimea admisibilă de soluții la problema de optimizare este mulțimea formată din toate punctele care îndeplinesc condițiile și . Această mulțime este convexă deoarece mulțimile de subnivel ale unei funcții convexe sunt convexe, mulțimile afine sunt de asemenea convexe, iar intersecția mulțimilor convexe este o mulțime convexă [12] .

Multe probleme de optimizare pot fi reduse la această formă standard. De exemplu, problema maximizării unei funcții concave poate fi reformulată în mod echivalent ca problema minimizării unei funcții convexe , astfel încât problema maximizării unei funcții concave pe o mulțime convexă este adesea denumită problemă de programare convexă.

Proprietăți

Proprietăți utile ale problemelor de programare convexă [13] [11] :

Aceste rezultate sunt folosite în teoria minimizării convexe, împreună cu concepte geometrice din analiza funcțională (pe spații Hilbert ), cum ar fi teorema de proiecție a lui Hilbert , teorema hiperplanului suport și lema lui Farkas .

Exemple

Următoarele clase de probleme sunt probleme de programare convexe sau pot fi reduse la probleme de programare convexe prin transformări simple [11] [14] :

Metoda multiplicatorilor Lagrange

Luați în considerare o problemă de minimizare convexă dată în formă standard cu o funcție de cost și constrângeri de inegalitate pentru . Atunci domeniul de definiție este:

Funcția Lagrange pentru problemă

Pentru orice punct de la care se minimizează la , există numere reale , numite multiplicatori Lagrange , pentru care următoarele condiții sunt îndeplinite simultan:

  1. minimizează peste toate
  2. cu cel putin unul
  3. (non-rigiditate complementară).

Dacă există un „punct puternic admisibil”, adică un punct satisfăcător

atunci afirmația de mai sus poate fi întărită pentru a solicita .

În schimb, dacă unele dintre ele îndeplinesc condițiile (1)-(3) pentru scalarii cu , atunci cu siguranță se minimizează pe .

Algoritmi

Problemele de programare convexă sunt rezolvate prin următoarele metode moderne: [15]

Metodele sub-gradient pot fi implementate pur și simplu pentru că sunt utilizate pe scară largă [18] [19] . Metodele cu subgradient dublu sunt metode subgradiente aplicate unei probleme duale . Metoda drift+penalty este similară cu metoda dual subgradient, dar folosește media de timp a principalelor variabile.

Extensii

Extensiile pentru programarea convexă includ optimizări pentru funcții biconvexe , pseudoconvexe și cvasiconvexe . Extensii ale teoriei analizei convexe și metodelor iterative pentru rezolvarea aproximativă a problemelor de optimizare neconvexe apar în domeniul convexității generalizate , cunoscut sub numele de analiză abstractă convexă.

Vezi și

Note

  1. 1 2 Nesterov și Nemirovskii, 1994 .
  2. Murty și Kabadi 1987 , p. 117–129.
  3. Sahni, 1974 , p. 262-279.
  4. Pardalos și Vavasis, 1991 , p. 15-22.
  5. Boyd și Vandenberghe 2004 , p. 17.
  6. Christensen, Klarbring, 2008 , p. cap. patru.
  7. Boyd, Vandenberghe, 2004 .
  8. Boyd și Vandenberghe 2004 , p. opt.
  9. Hiriart-Urruty, Lemaréchal, 1996 , p. 291.
  10. Ben-Tal, Nemirovskiĭ, 2001 , p. 335–336.
  11. 1 2 3 4 Boyd, Vandenberghe, 2004 , p. cap. patru.
  12. Boyd și Vandenberghe 2004 , p. cap. 2.
  13. Rockafellar, 1993 , p. 183–238.
  14. Agrawal, Verschueren, Diamond, Boyd, 2018 , p. 42–60.
  15. Pentru metode de programare convexă, vezi cărțile lui Irriart-Urruti și Lemerical (mai multe cărți) și cărțile lui Rushczynski, Bercekas și Boyd și Vanderberge (metodele punctului interior).
  16. Nesterov, Nemirovskii, 1995 .
  17. Peng, Roos, Terlaky, 2002 , p. 129–171.
  18. Bertsekas, 2009 .
  19. Bertsekas, 2015 .

Literatură

Link -uri