Dualita úloh lineárního programování a analýza citlivosti RNDr. Jiří Dvořák, CSc. dvorak@uai.fme.vutbr.cz Teorie systémů a operační analýza
Symetricky duálně sdružené úlohy Úloha (a): Úloha (b): Jedna z dvojice duálně sdružených úloh se označuje jako primární a druhá jako duální. Dualita je ovšem vzájemný vztah. Úloha (b) je duální k úloze (a) a úloha (a) je duální k úloze (b). TSOA: Dualita úloh LP a analýza citlivosti
Maticové vyjádření symetricky duálně sdružených úloh Úloha (a): Úloha (b): f(x) = cTx max g(u) = bTu min Ax b ATu c x 0 u 0 Výše uvedená dvojice úloh je pouze speciálním případem primárně-duálních vztahů mezi úlohami LP. Duální úlohu je totiž možno zkonstruovat ke každé úloze LP. TSOA: Dualita úloh LP a analýza citlivosti
Pravidla pro konstrukci duálních úloh Maximalizační úloha primární duální omezení typu omezení typu omezení typu rovnice nezáporná proměnná nekladná proměnná proměnná neomezená Minimalizační úloha duální primární nezáporná proměnná nekladná proměnná proměnná neomezená omezení typu omezení typu omezení typu rovnice TSOA: Dualita úloh LP a analýza citlivosti
Slabá a silná věta o dualitě Slabá věta: Nechť primární úloha je maximalizační s účelovou funkcí f(x), duální úloha je minimalizační s účelovou funkcí g(u), a nechť x0 je libovolné přípustné řešení primární úlohy a u0 je libovolné přípustné řešení duální úlohy. Pak platí f(x0) g(u0) Silná věta: Má-li jedna z duálně sdružených úloh optimální řešení, má optimální řešení i úloha druhá, přičemž optimální hodnoty účelových funkcí jsou si rovny. TSOA: Dualita úloh LP a analýza citlivosti
TSOA: Dualita úloh LP a analýza citlivosti Důsledky vět o dualitě Platí-li pro přípustné řešení x0 primární úlohy a pro přípustné řešení u0 duální úlohy rovnost f(x0) = g(u0), pak x0 a u0 jsou optimální řešení. Je-li množina přípustných řešení maximalizační úlohy neprázdná a je-li účelová funkce této úlohy shora neomezená, pak duálně sdružená úloha nemá žádné přípustné řešení. Je-li množina přípustných řešení minimalizační úlohy neprázdná a je-li účelová funkce této úlohy zdola neomezená, pak duálně sdružená úloha nemá žádné přípustné řešení. Nemá-li jedna z dvojic duálně sdružených úloh přípustné řešení, pak druhá úloha nemá optimální řešení. TSOA: Dualita úloh LP a analýza citlivosti
Věta o komplementaritě Přípustná řešení symetricky duálně sdružených úloh jsou optimální právě tehdy, když platí Pozn.: Tyto vztahy znamenají, že nabývá-li nějaká proměnná kladnou hodnotu, pak odpovídající duálně sdružené omezení musí být splněno jako rovnice, a je-li nějaké omezení splněno jako ostrá nerovnost, pak odpovídající duálně sdružená proměnná musí být nulová. TSOA: Dualita úloh LP a analýza citlivosti
TSOA: Dualita úloh LP a analýza citlivosti Řešení duální úlohy Mějme úlohu Nechť Bo je báze optimálního řešení xo a cBo je vektor cen bázických proměnných. Pak optimální řešení duálně sdružené úlohy je určeno vztahem resp. TSOA: Dualita úloh LP a analýza citlivosti
Řešení duální úlohy pro úlohu s nerovnicemi typu Mějme úlohu Standardní tvar: Maticový tvar simplexové tabulky pro optimální bázi B: Vidíme, že optimální hodnoty duálních proměnných se nacházejí v posledním řádku tabulky ve sloupcích doplňkových proměnných. TSOA: Dualita úloh LP a analýza citlivosti
TSOA: Dualita úloh LP a analýza citlivosti Význam duality Duální problém a jeho řešení mají důležitou ekonomickou interpretaci. Optimální řešení duální úlohy lze využít v analýze citlivosti. Někdy můžeme snížit paměťovou a časovou náročnost řešení tím, že místo primární úlohy řešíme úlohu duální. Na výsledcích teorie duality jsou založeny některé metody pro řešení úloh LP, které jsou za určitých okolností výhodnější než simplexová metoda. TSOA: Dualita úloh LP a analýza citlivosti
Význam duálních proměnných Nechť uo= (uo1, … , uom)T je optimální řešení duální úlohy. Ze silné věty o dualitě plyne, že optimální hodnota primární účelové funkce Zvýšíme-li bi o jednotku, pak fopt se zvýší o uoi (za předpokladu, že se nezmění optimální báze). Je-li např. bi kapacita výrobního zdroje, pak uoi můžeme chápat jako ocenění jednotky této kapacity, neboli tzv. stínovou cenu. TSOA: Dualita úloh LP a analýza citlivosti
TSOA: Dualita úloh LP a analýza citlivosti Analýza citlivosti (postoptimalizační analýza) zkoumá vliv změn zadání úlohy na optimální řešení. Existují dva typy úloh: Jak se změní optimální řešení při určité změně zadání úlohy? V jakém rozsahu se může změnit určitá neřiditelná veličina (cj nebo bi nebo aij ), aby báze přitom zůstala optimální? TSOA: Dualita úloh LP a analýza citlivosti
Duální proměnné v analýze citlivosti Nechť uo= (uo1, … , uom)T je optimální řešení duální úlohy. Pak pro optimální hodnotu primární účelové funkce platí Optimální hodnoty duálních proměnných tedy vyjadřují citlivost optimální hodnoty primární účelové funkce na změny pravých stran omezujících podmínek. TSOA: Dualita úloh LP a analýza citlivosti
Důsledky změn vektoru b Změna vektoru b má vliv na hodnoty bázických proměnných a na hodnotu účelové funkce. Je-li B–1(b + b) 0, pak bázické řešení zůstává přípustné a tudíž báze B zůstává optimální. V opačném případě v poslední simplexové tabulce změníme poslední sloupec a pokračujeme dále ve výpočtu pomocí duálně simplexového algoritmu. TSOA: Dualita úloh LP a analýza citlivosti
Duálně simplexový algoritmus Vychází se z bázického řešení, které splňuje primární kritérium optimality, ale nemusí splňovat podmínky nezápornosti. Označme symboly ij prvky matice B–1A a i prvky vektoru B–1b. 1. Test kritéria optimality: Jsou-li všechna i nezáporná, je řešení optimální a výpočet končí. 2. Určení klíčového prvku: Nejdříve se určí index r klíčového řádku a pak index s klíčového sloupce podle vztahů Není-li možné určit klíčový prvek, pak konec (úloha nemá přípustné řešení). 3. Simplexová transformace se provede obvyklým způsobem. TSOA: Dualita úloh LP a analýza citlivosti
Důsledky změn vektoru c Změna vektoru c má vliv na kritérium optimality a na hodnotu účelové funkce. Označme . Jestliže splňuje podmínku optimality, pak báze B zůstává optimální. V opačném případě v poslední simplexové tabulce změníme poslední řádek a pokračujeme dále ve výpočtu pomocí simplexového algoritmu. TSOA: Dualita úloh LP a analýza citlivosti
Rozsah změn k-té složky vektoru b Nechť B je optimální báze. Aby tato báze zůstala optimální, musí přírůstek (úbytek) bk k-té složky vektoru b splňovat podmínky kde i = 1, … , m; i, j(k) jsou prvky k-tého sloupce matice B–1 (tento sloupec se vyskytuje v matici B–1A na té pozici, na níž se v matici A vyskytuje jednotkový sloupec s jedničkou v k-tém řádku) a i jsou prvky vektoru B–1b. TSOA: Dualita úloh LP a analýza citlivosti
Rozsah změn k-té složky vektoru c v maximalizační úloze Nechť B je optimální báze. Aby tato báze zůstala optimální, musí být ck k , je-li proměnná xk nebázická; je-li proměnná xk bázická, musí ck splňovat podmínky: kde j = 1, … , n; i(k), j jsou prvky toho řádku matice B–1A, ve kterém se vyskytuje proměnná xk. TSOA: Dualita úloh LP a analýza citlivosti