Semi-definitní programování

Semidefinite programming (neboli SDP z angl.  Semidefinite programming ) je podsekce konvexního programování , která se zabývá optimalizací lineární účelové funkce (cílová funkce je uživatelem specifikovaná funkce, jejíž hodnotu chce uživatel minimalizovat nebo maximalizovat) na průsečík kuželů pozitivně semidefinitních matic s afinním prostorem .

Semi-definite programování je relativně nová oblast optimalizace, o kterou roste zájem z několika důvodů. Mnoho praktických problémů v oblasti operačního výzkumu a kombinatorické optimalizace lze modelovat nebo aproximovat jako semidefinité programovací problémy. V teorii automatického řízení se problémy SDP používají v kontextu lineárních maticových nerovností . Problémy SDP jsou ve skutečnosti speciálním případem kónického programování a lze je efektivně vyřešit metodou vnitřních bodů . Všechny problémy lineárního programování lze vyjádřit jako problémy SDP a pomocí hierarchií problémů SDP lze aproximovat řešení problémů polynomiální optimalizace. Semi-definitní programování se používá při optimalizaci složitých systémů . V posledních letech byly některé problémy kvantové složitosti dotazů formulovány z hlediska semidefinitního programování.

Motivace a definice

Počáteční motivace

Problém lineárního programování je problém, ve kterém potřebujete maximalizovat nebo minimalizovat lineární účelovou funkci reálných proměnných na mnohostěnu . V semi-definitním programování místo toho používáme skutečné vektory a můžeme používat bodový součin vektorů. Podmínka nezápornosti reálných proměnných úlohy LP je nahrazena semidefinitními omezeními na matici proměnných úlohy SDP. Zejména obecný semidefinitní programovací problém může být definován jako jakýkoli matematický programovací problém formuláře

za podmínek

Ekvivalentní formulace

O matici se říká, že je kladně semidefinitní , pokud jde o Gramovu matici některých vektorů (tj. pokud existují vektory takové, že pro všechny ). Pokud je to pravda, označíme to jako . Všimněte si, že existují některé další ekvivalentní definice pozitivní semidefinitečnosti, například pozitivní semidefinitní matice mají pouze nezáporná vlastní čísla a mají kladnou semidefinitní druhou odmocninu.

Označme prostorem všech reálných symetrických matic. V tomto prostoru je vnitřní produkt (kde znamená stopa )

Úlohu matematického programování z předchozí části můžeme přepsat do ekvivalentní podoby

za podmínek

kde prvek matice je roven z předchozí části a je to matice, která má hodnotu z předchozí části jako prvek matice.

Všimněte si, že pokud správně přidáme další proměnné , lze tuto úlohu SDP převést na

za podmínek

Pro usnadnění může být problém SDP definován v mírně odlišné, ale ekvivalentní formě. Například lineární výrazy využívající nezáporné skalární proměnné lze přidat do specifikace úlohy. Úkolem zůstává SDP, protože každá proměnná může být zahrnuta do matice jako diagonální prvek ( pro některé ). Chcete-li zajistit , můžete přidat omezení pro všechny . Jako další příklad si všimněte, že pro jakoukoli kladnou semidefinitní matici existuje sada vektorů , takže prvek matice je roven , skalárnímu součinu vektorů a . Problémy SDP jsou tedy často formulovány jako lineární vyjádření skalárních součinů vektorů. Při řešení problému SDP ve standardním tvaru lze vektory rekonstruovat v čase (např. pomocí neúplného rozkladu Choleského matice X).

Teorie duality

Definice

Podobně jako u lineárního programování, pokud je ve formuláři uveden obecný problém SDP

za podmínek

(přímý problém, nebo P-SDP), definujeme duální semidefinitní problém (D-SDP) jako

za podmínek

Kde pro libovolné dvě matice a , znamená .

Slabá dualita

Slabý teorém duality říká , že primární SDP má hodnotu ne menší než hodnotu duálního SDP. Jakékoli přípustné řešení problému duálního SDP tedy omezuje hodnotu přímého SDP zdola a naopak jakákoli přípustná hodnota problému přímého SDP omezuje hodnotu duálního SDP shora. To se děje, protože

kde poslední nerovnost odráží skutečnost, že obě matice jsou kladně semidefinitní. Hodnota této funkce se někdy nazývá dvojitá vůle.

Silná dualita

Za podmínky známé jako Slaterova podmínka jsou hodnoty primárního a duálního problému SDP stejné. Tomu se říká silná dualita . Na rozdíl od problémů lineárního programování nemá každý problém SDP přísnou dualitu. V obecném případě může být hodnota SDP duálního problému přísně nižší než hodnota přímého problému.

(i) Předpokládejme, že přímý problém (P-SDP) je ohraničen zdola a přísně přípustný (tj. existuje , takový, že , ). Pak existuje optimální řešení pro duální problém (D-SDP) a

(ii) Předpokládejme, že duální problém (D-SDP) je ohraničen shora a přísně přípustný (tedy pro některé ). Pak existuje optimální řešení přímé úlohy (P-SDP) a platí rovnost z (i).

Příklady

Příklad 1

Uvažujme tři náhodné proměnné a . Podle definice jsou jejich korelační koeficienty platné tehdy a jen tehdy

Předpokládejme, že z některých zdrojů (například z empirických nebo experimentálních dat) víme, že a . Problém určení nejmenší a největší hodnoty lze zapsat jako:

minimalizovat/maximalizovat za podmínek

Zde přijímáme . Problém lze formulovat jako problém SDP. Nerovnice doplníme rozšířením matice proměnných a zavedením dalších proměnných , např.

Po vyřešení tohoto problému SDP získáme minimální a maximální hodnoty ( resp .).

Příklad 2

Zvažte problém

minimalizovat za podmínek

kde se předpokládá, že v .

Zavedením další proměnné přepíšeme problém do tvaru:

minimalizovat za podmínek

V této formulaci je účelová funkce lineární funkcí dvou proměnných ( ).

První omezení lze přepsat jako

,

kde matice je čtvercová matice s hodnotami na diagonále rovnými prvkům vektoru .

Druhé omezení lze zapsat jako

Matici definujeme následovně

K tomu můžeme použít Schurovu teorii doplňku

[jeden]

Semi-definitivní programovací problém pro tento problém bude ve tvaru

minimalizovat za podmínek

Příklad 3 (Aproximační algoritmus Goemans-Williamson MAX CUT)

Semi-definitní programování je důležitým nástrojem pro vytváření aproximačních algoritmů pro NP-těžké maximalizační problémy. První aproximační algoritmus založený na SDP byl navržen Michelem Goemansem a Davidem Williamsonem [2] . Studovali problém MAX CUT : Daný graf G = ( V , E ), je nutné rozdělit vrcholy V na dvě části takovým způsobem, aby se maximalizoval počet hran spojujících tyto dvě části. Problém lze považovat za problém celočíselného kvadratického programování :

Maximalizovat předmět libovolného .

Pokud P = NP , nemůžeme tento problém efektivně vyřešit. Goemans a Williamson však nastínili třístupňový postup pro řešení tohoto druhu problému:

  1. Oslabujeme problém celočíselného kvadratického programování na problém SDP.
  2. Vyřešíme problém SDP (s jakoukoli libovolně malou chybou ).
  3. Řešení úlohy SDP zaokrouhlíme, abychom získali přibližné řešení původní úlohy celočíselného kvadratického programování.

Pro problém MAX CUT je nejpřirozenější relaxace

for , kde se maximalizace provádí přes vektory spíše než skalární celočíselné proměnné.

Problém je problém SDP, protože jak cílová funkce, tak omezení jsou lineárními funkcemi skalárních součinů vektorů. Řešení problému SDP poskytuje sadu jednotkových vektorů v . Protože vektory nejsou nutně kolineární, hodnota uvolněného problému může být pouze větší než hodnota původního celočíselného problému kvadratického programování. K rozdělení je zapotřebí závěrečný postup zaokrouhlení. Goemans a Williamson si vyberou náhodnou nadrovinu (pomocí jednotného rozložení) přes počátek a rozdělí vrcholy na základě jejich umístění vzhledem k této rovině. Přímá analýza ukazuje, že tento postup poskytuje očekávaný aproximační faktor 0,87856 - ε. (Očekávaná hodnota řezu je rovna součtu přes všechny hrany pravděpodobností, že hrana vstoupí do řezu, a toto očekávání je úměrné úhlu mezi vektory v koncových vrcholech hrany. Porovnáme-li tuto pravděpodobnost s , očekávání poměru bude vždy alespoň 0,87856.) Za předpokladu hypotézy správnosti jedinečné hry lze ukázat, že aproximační koeficient této aproximace je převážně optimální.

Od doby, kdy se objevil článek Goemanse a Williamsona, byly problémy SDP aplikovány na vývoj velkého počtu aproximačních algoritmů. Nedávno Prasad Raghavendra vyvinul obecné schéma pro problémy s uspokojením omezení založené na jedinečné herní hypotéze [3] .

Algoritmy

Existuje několik typů algoritmů pro řešení problémů SDP. Výsledkem těchto algoritmů je hodnota problému SDP až , která je získána v čase, který polynomiálně závisí na velikosti problému a .

Vnitřní bodové metody

Většina systémů řešení je založena na metodě vnitřních bodů (CSDP, SeDuMi, SDPT3, DSDP, SDPA), která je robustní a efektivní pro obecné lineární problémy SDP. Použití tohoto přístupu je omezeno skutečností, že algoritmy jsou metodami druhého řádu a vyžadují velké (a často husté) matice k zapamatování a rozkladu.

Metody prvního řádu

Metody prvního řádu pro kuželovou optimalizaci se vyhýbají ukládání a rozkladu velkých Hessových matic a jsou použitelné na mnohem větší problémy než metody vnitřních bodů, za cenu ztráty přesnosti. Metoda je implementována v systému "SCS solver".

Metoda paprsku

Problém SDP je formulován jako nehladký optimalizační problém a je řešen metodou spektrálního svazku. Tento přístup je velmi účinný pro konkrétní třídy lineárních úloh SDP.

Ostatní

Algoritmy založené na zobecněné Lagrangiánově metodě (PENSDP) se chovají podobně jako metody vnitřních bodů a lze je upravit pro některé velmi velké problémy. Jiné algoritmy používají nízkoúrovňové informace a přeformulují problém SDP jako problém nelineárního programování (SPDLR).

Aplikace

Semi-definitní programování bylo použito k nalezení přibližných řešení kombinatorických optimalizačních problémů, jako je řešení problému maximálního řezu s aproximačním faktorem 0,87856. Problémy SDP se také používají v geometrii k definování grafů tensegrity a objevují se v teorii řízení jako lineární maticové nerovnosti .

Poznámky

  1. Boyd, Vandenberghe, 1996 .
  2. Goemans, Williamson, 1995 .
  3. Raghavendra, 2008 , str. 245-254.

Literatura

Odkazy