Dualita neboli princip duality je princip, podle kterého lze optimalizační problémy posuzovat ze dvou hledisek, jako přímý problém nebo duální problém . Řešení duální úlohy udává dolní mez přímé úlohy (při minimalizaci) [1] . V obecném případě se však hodnoty objektivních funkcí optimálních řešení přímých a duálních problémů nemusí nutně shodovat. Rozdíl v těchto hodnotách, pokud je pozorován, se nazývá mezera duality . Pro problémy konvexního programování je mezera duality rovna nule, když jsou splněny podmínky pro pravidelnost omezení .
Obvykle termín "dvojí problém" implikuje Lagrangův duální problém , ale používají se i jiné duální problémy, jako Wolfeův duální problém a Fenchelův duální problém . Duální Lagrangeův problém se získá generováním Lagrangeova , použitím nezáporných Lagrangeových multiplikátorů k přidání omezení k účelové funkci a minimalizací Lagrangeova problému s ohledem na některé proměnné přímého problému. Takové řešení dává proměnné přímého problému jako funkce Lagrangeových multiplikátorů, které se nazývají duální proměnné, takže nový problém se stává problémem maximalizace účelové funkce vzhledem k duálním proměnným pod vygenerovanými omezeními na duální proměnné ( alespoň non-negativita).
Obecně, vzhledem k duálnímu páru [2] oddělitelného lokálního konvexního prostoru a funkce , můžeme definovat přímý problém jako nález , takže jinými slovy je infimum (přesná dolní mez) funkce .
Pokud existují omezení, lze je zabudovat do funkce , pokud dáme , kde je funkce indikátoru . Nechť nyní (pro další duální pár ) je poruchová funkce taková, že [3] .
Dualitní mezera je rozdíl mezi pravou a levou stranou nerovnosti
kde je konjugovaná funkce obou proměnných a znamená supremum (přesná horní mez) [3] [4] [5] .
Dualitní mezera je rozdíl mezi hodnotami všech řešení primárního problému a hodnotami jakýchkoli řešení duálního problému. Pokud je optimální hodnota duálního problému a je optimální hodnota přímého problému, je mezera duality . Tato hodnota je vždy větší nebo rovna 0. Dualitní mezera je nulová právě tehdy, když existuje silná dualita . Jinak je diskontinuita striktně kladná a dochází ke slabé dualitě [6] .
V numerických optimalizačních úlohách se často používá další „mezera duality“, která se rovná rozdílu mezi jakýmkoli duálním řešením a hodnotou přípustné, ale ne lokálně optimální iterace pro přímý problém. Alternativní „dualitní mezera“ vyjadřuje nesoulad mezi hodnotou současného proveditelného, ale ne lokálně optimálního řešení primárního problému a hodnotou duálního problému. Hodnota duálního problému se za podmínky pravidelnosti omezení rovná hodnotě konvexního oslabení přímého problému, kde konvexní oslabení vzniká v důsledku nahrazení nekonvexní množiny proveditelných řešení jeho uzavřeným konvexní obal a nahrazení nekonvexní funkce jejím konvexním uzávěrem , tedy funkcí, jejíž epigraf je uzavřený konvexní uzavřením původní účelové funkce přímé úlohy [7] [8] [9] [10] [11 ] [12] [13] [14] [15] [16] [17] .
Problémy lineárního programování jsou optimalizační problémy , ve kterých jsou účelová funkce a omezení lineární. V přímé úloze je účelová funkce lineární kombinací n proměnných. Existuje m omezení, z nichž každé omezuje lineární kombinaci n proměnných shora. Cílem je maximalizovat hodnotu účelové funkce při omezeních. Řešením je vektor (seznam) n hodnot, který dává maximální hodnotu účelové funkce.
V duálním problému je cílová funkce lineární kombinací m hodnot, které jsou pravými stranami m omezení primárního problému. Existuje n duálních omezení, z nichž každé omezuje lineární kombinaci m duálních proměnných zdola.
V lineárním případě, v přímé úloze, z každého bodu lokálního optima, který splňuje všechna omezení, existuje směr nebo podprostor směrů a pohyb v tomto směru zvyšuje účelovou funkci. Pohyb v jakémkoli takovém směru údajně snižuje propast mezi proveditelným řešením (nebo proveditelným plánem ) a jedním z omezení. Neplatné možné řešení je řešení, které porušuje jedno nebo více omezení.
V duálním problému jsou prvky duálního vektoru vynásobeny sloupci, které odpovídají omezením v primárním problému. Perturbace duálního vektoru v duálním problému je ekvivalentní revizi horní hranice primárního problému. Při řešení duálního problému se hledá nejmenší horní mez, tedy duální vektor se mění tak, aby se zmenšila mezera mezi proveditelným řešením a skutečným optimem.
Další informace o spojení mezi primárním a duálním problémem naleznete v článku " Duální problémy lineárního programování ".
Chápeme-li náš primární problém lineárního programování jako klasický problém „přidělování zdrojů“, jeho duální problém lze interpretovat jako problém „ odhadu zdrojů “ .
V nelineárním programování nemusí být omezení nutně lineární. Platí však mnoho principů lineárního případu.
Aby bylo zajištěno, že globální maximum nelineárního problému lze snadno definovat, příkaz problému často vyžaduje, aby funkce byly konvexní a měly kompaktní sady nižších úrovní (tj. množiny, na kterých má funkce hodnotu menší než nějaká úroveň) .
Toto je podmínka Karush-Kuhn-Tucker . Prokázali nezbytné podmínky pro určení lokálního optima nelineárních problémů. Existují další podmínky (podmínka pravidelnosti omezení), které jsou nezbytné pro určení směru k optimálnímu řešení. Zde je optimálním řešením jedno z lokálních optim, které nemusí být globální.
Pokud je problém nelineárního programování uveden ve standardním formuláři
minimalizovat | |
za podmínek | |
s doménou s neprázdným vnitřkem je Lagrangeova funkce definována jako
Vektory a se nazývají duální proměnné nebo vektory Lagrangeových multiplikátorů spojených s problémem. Duální Lagrangeova funkce je definována jako
Duální funkce g je konkávní, i když počáteční problém není konvexní, protože je bodovým infimem afinních funkcí. Duální funkce udává dolní meze pro optimální hodnotu původního problému. Pro kohokoli a kohokoli , koho máme .
Pokud jsou splněny podmínky pravidelnosti omezení , jako je Slaterova podmínka , a původní problém je konvexní, pak máme přísnou dualitu , tedy .
Pro problém konvexní minimalizace s omezeními – nerovnostmi,
minimalizovat | |
za podmínek |
Lagrangeův duální problém je
maximalizovat | |
za podmínek |
kde cílová funkce je duální Lagrangeova funkce. Pokud je známo, že funkce a jsou spojitě diferencovatelné, pak je infimum v bodech, kde je gradient nula. Úkol
maximalizovat | |
za podmínek | |
se nazývá duální Wolfův problém. Tento úkol může být výpočetně obtížný, protože účelová funkce není v souřadnicích konvexní . Omezení je také obecně nelineární, takže duální Wolfův problém je obvykle nekonvexní optimalizační problém. V každém případě je zde slabá dualita [18] .
Podle George Danziga byl teorém o dualitě pro lineární optimalizaci předložen jako domněnka Johna von Neumanna bezprostředně poté, co Danzig představil problém lineárního programování. Von Neumann si všiml, že použil informace ze své teorie her a navrhl, že maticová hra pro dvě osoby s nulovým součtem je ekvivalentní problému lineárního programování. Důkladný důkaz této skutečnosti byl poprvé publikován v roce 1948 Albertem Tuckerem a jeho skupinou [19] .