Konvex programmering

Den aktuella versionen av sidan har ännu inte granskats av erfarna bidragsgivare och kan skilja sig väsentligt från versionen som granskades den 21 november 2021; kontroller kräver 2 redigeringar .

Konvex programmering  är ett underområde av matematisk optimering som studerar problemet med att minimera konvexa funktionerkonvexa mängder . Medan många klasser av konvexa programmeringsproblem tillåter polynom-tidsalgoritmer [1] , är matematisk optimering i allmänhet NP-hård [2] [3] [4] .

Konvex programmering har applikationer inom en rad discipliner såsom automatiska styrsystem , signalutvärdering och bearbetning , kommunikation och nätverk, kretsar [5] , dataanalys och modellering, ekonomi , statistik ( optimal experimentdesign ) [6] och strukturell optimering [7] . Utvecklingen av datorteknik och optimeringsalgoritmer har gjort konvex programmering nästan lika enkel som linjär programmering [8] .

Definition

Ett konvext programmeringsproblem är ett optimeringsproblem där objektivfunktionen är en konvex funktion och domänen av möjliga lösningar är konvex . En funktion som mappar en delmängd till är konvex om domänen är konvex för både alla och alla i deras domän av . En mängd är konvex om för alla dess element och någon av dem också tillhör mängden.

I synnerhet är problemet med konvex programmering problemet med att hitta några , på vilka

,

där den objektiva funktionen är konvex, liksom uppsättningen av genomförbara lösningar [9] [10] . Om en sådan punkt finns kallas den för den optimala punkten . Mängden av alla optimala punkter kallas den optimala mängden . Om obegränsad av eller infimum inte uppnås, sägs optimeringen vara obegränsad . Om den är tom talar man om en oacceptabel uppgift [11] .

Standardformulär

Ett konvext programmeringsproblem sägs vara i standardform om det skrivs som

Minimera Under förhållanden

där är optimeringsvariabeln, funktionerna är konvexa och funktionerna är affina [11] .

I dessa termer är funktionen den objektiva funktionen av problemet, och funktionerna och kallas begränsningsfunktioner. Den tillåtna uppsättningen av lösningar på optimeringsproblemet är den uppsättning som består av alla punkter som uppfyller villkoren och . Denna mängd är konvex eftersom subnivåmängder av en konvex funktion är konvexa, affina mängder är också konvexa och skärningspunkten mellan konvexa mängder är en konvex mängd [12] .

Många optimeringsproblem kan reduceras till denna standardform. Till exempel kan problemet med att maximera en konkav funktion omformuleras på samma sätt som problemet med att minimera en konvex funktion , så att problemet med att maximera en konkav funktion på en konvex uppsättning ofta hänvisas till som ett konvext programmeringsproblem

Egenskaper

Användbara egenskaper för konvexa programmeringsproblem [13] [11] :

Dessa resultat används i konvex minimeringsteori, tillsammans med geometriska begrepp från funktionsanalys (på Hilbert-utrymmen ), som Hilberts projektionssats , stödhyperplansatsen och Farkas lemma .

Exempel

Följande klasser av problem är konvexa programmeringsproblem eller kan reduceras till konvexa programmeringsproblem genom enkla transformationer [11] [14] :

Metod för Lagrange-multiplikatorer

Betrakta ett konvext minimeringsproblem givet i standardform med en kostnadsfunktion och ojämlikhetsbegränsningar för . Då är definitionsdomänen :

Lagrange funktion för problemet

För vilken punkt som helst från den minimeras till , finns det reella tal , kallade Lagrange-multiplikatorer , för vilka följande villkor är uppfyllda samtidigt:

  1. minimerar över allt
  2. med minst en
  3. (kompletterande icke-stelhet).

Om det finns en "stark godtagbar punkt", det vill säga en tillfredsställande punkt

då kan påståendet ovan förstärkas till att kräva .

Omvänt, om några av uppfyller villkoren (1)-(3) för skalärer med , så minimeras det definitivt på .

Algoritmer

Konvexa programmeringsproblem löses med följande moderna metoder: [15]

Sub-gradientmetoder kan implementeras helt enkelt för att de används i stor utsträckning [18] [19] . Dubbla subgradientmetoder är subgradientmetoder som tillämpas på ett dubbelt problem . Drift+penalty-metoden liknar den dubbla subgradientmetoden, men använder tidsgenomsnittet för huvudvariablerna.

Tillägg

Tillägg till konvex programmering inkluderar optimeringar för bikonvexa , pseudokonvexa och kvasikonvexa funktioner. Utvidgningar av teorin om konvex analys och iterativa metoder för den ungefärliga lösningen av icke-konvexa optimeringsproblem förekommer inom området för generaliserad konvexitet , känd som abstrakt konvex analys.

Se även

Anteckningar

  1. 1 2 Nesterov och Nemirovskii, 1994 .
  2. Murty och Kabadi 1987 , sid. 117–129.
  3. Sahni, 1974 , sid. 262-279.
  4. Pardalos och Vavasis, 1991 , sid. 15-22.
  5. Boyd och Vandenberghe 2004 , sid. 17.
  6. Christensen, Klarbring, 2008 , sid. kap. fyra.
  7. Boyd, Vandenberghe, 2004 .
  8. Boyd och Vandenberghe 2004 , sid. åtta.
  9. Hiriart-Urruty, Lemaréchal, 1996 , sid. 291.
  10. Ben-Tal, Nemirovskiĭ, 2001 , sid. 335–336.
  11. 1 2 3 4 Boyd, Vandenberghe, 2004 , sid. kap. fyra.
  12. Boyd och Vandenberghe 2004 , sid. kap. 2.
  13. Rockafellar, 1993 , sid. 183–238.
  14. Agrawal, Verschueren, Diamond, Boyd, 2018 , sid. 42–60.
  15. För metoder för konvex programmering, se böcker av Irriart-Urruti och Lemerical (flera böcker) och böcker av Rushczynski, Bercekas och Boyd och Vanderberge (inre punktmetoder).
  16. Nesterov, Nemirovskii, 1995 .
  17. Peng, Roos, Terlaky, 2002 , sid. 129–171.
  18. Bertsekas, 2009 .
  19. Bertsekas, 2015 .

Litteratur

Länkar