Dualita (optimalizace)

Dualita v teorií optimalizace znamená, že optimalizační problém může být interpretován dvěma způsoby, skrz úlohu primární, nebo k ní úlohu duální. Vztah těchto dvou úloh se liší v závislosti na vlastnostech řešeného problému. Obecně, optimální řešení duální úlohy tvoří spodní mez pro optimální řešení primární úlohy. V konkrétních případech mají tyto dvě úlohy velmi příjemné vlastnosti jakou je například silná dualita.

Obecná formulace

Pro primární úlohu matematického programování ve tvaru[1]

minimalizovat  f 0 ( x ) za podmínek  f i ( x ) 0 ,   i { 1 , , m } h i ( x ) = 0 ,   i { 1 , , p } {\displaystyle {\begin{aligned}{\text{minimalizovat }}&f_{0}(x)\\{\text{za podmínek }}&f_{i}(x)\leq 0,\ \forall i\in \left\{1,\ldots ,m\right\}\\&h_{i}(x)=0,\ \forall i\in \left\{1,\ldots ,p\right\}\end{aligned}}}

, kde x M R n {\displaystyle x\in M\subseteq \mathbb {R} ^{n}} definujeme Lagrangeovu funkci L : R n × R m × R p R {\displaystyle L:\mathbb {R} ^{n}\times \mathbb {R} ^{m}\times \mathbb {R} ^{p}\rightarrow \mathbb {R} } předpisem

L ( x , λ , ν ) := f 0 ( x ) + i = 1 m λ i f i ( x ) + i = 1 p ν i h i ( x ) {\displaystyle L(x,\lambda ,\nu ):=f_{0}(x)+\sum _{i=1}^{m}\lambda _{i}f_{i}(x)+\sum _{i=1}^{p}\nu _{i}h_{i}(x)} ,

proměnné λ i R {\displaystyle \lambda _{i}\in \mathbb {R} } a ν i R {\displaystyle \nu _{i}\in \mathbb {R} } se nazývají Lagrangeovy multiplikátory. Vektory λ R m {\displaystyle \lambda \in \mathbb {R} ^{m}} a ν R p {\displaystyle \nu \in \mathbb {R} ^{p}} nazveme duální proměnné k původnímu problému.

Duální Lagrangeovu funkci definujeme jako

g ( λ , ν ) := inf x M L ( x , λ , ν ) = inf x M ( f 0 ( x ) + i = 1 m λ i f i ( x ) + i = 1 p ν i h i ( x ) ) {\displaystyle g(\lambda ,\nu ):=\inf _{x\in M}L(x,\lambda ,\nu )=\inf _{x\in M}(f_{0}(x)+\sum _{i=1}^{m}\lambda _{i}f_{i}(x)+\sum _{i=1}^{p}\nu _{i}h_{i}(x))} .

Buď P {\displaystyle P^{*}} optimální řešení primární úlohy potom platí

λ 0 ,   ν R p : g ( λ , ν ) P {\displaystyle \forall \lambda \geq \mathbf {0} ,\ \nu \in \mathbb {R} ^{p}:g(\lambda ,\nu )\leq P^{*}}

Pokud navíc platí Slaterova podmínka[2] potom taky platí silná dualita, tj. max λ 0 ,   ν R p g ( λ , ν ) =: D = P {\displaystyle \max _{\lambda \geq \mathbf {0} ,\ \nu \in \mathbb {R} ^{p}}g(\lambda ,\nu )=:D^{*}=P^{*}} . V takovém případe se tedy optimální řešení primární a duální úlohy shodují.

Dualita v úloze lineárního programování

Dualita se týká dvojice úloh lineárního programování (LP), která je dána společnými vstupními daty, to jest maticí A s m řádky a n sloupci, m-rozměrným vektorem b a n-rozměrným vektorem c. Kromě daných koeficientů je každá úloha lineárního programování (LP) určena také druhem optimalizace, tj. jestli se daný problém týče minimalizace neboli maximalizace, dále tvarem omezení, jestli se v problému vyskytuje rovnost nebo nerovnost, přítomností či absencí podmínek nezápornosti. Obecná dvojice duálních úloh v matematice vypadá následovně.

Definice

Nechť je dána matice A {\displaystyle \mathrm {A} } s m řádky a n sloupci, m-rozměrný vektor b, n-rozměrný vektor c a disjunktní rozklady množin indexů I = { 1 , 2 , . . . , n } {\displaystyle I=\{1,2,...,n\}} , J = { 1 , 2 , . . . , m } {\displaystyle J=\{1,2,...,m\}} . Pak dvojice úloh lineárního programování (LP)

minimalizovat i = 1 n c i x i {\displaystyle \sum _{i=1}^{n}c_{i}x_{i}}

za podmínek i = 1 n A i , j x i b j j J {\textstyle \sum _{i=1}^{n}A_{i,j}x_{i}\geq b_{j}\forall j\in J_{\geq }}

i = 1 n A i , j x i b j j J {\displaystyle \sum _{i=1}^{n}A_{i,j}x_{i}\leq b_{j}\forall j\in J_{\leq }}

i = 1 n A i , j x i = b j j J = {\displaystyle \sum _{i=1}^{n}A_{i,j}x_{i}=b_{j}\forall j\in J_{=}}

x i 0 i I {\displaystyle x_{i}\geq 0\forall i\in I_{\geq }}

x i 0 i I {\displaystyle x_{i}\leq 0\forall i\in I_{\leq }}

x i R i I {\displaystyle x_{i}\in R\forall i\in I_{\in }} ,

maximalizovat j = 1 m b j y j {\displaystyle \sum _{j=1}^{m}b_{j}y_{j}}

za podmínek j = 1 m A j , i y j c i j I {\displaystyle \sum _{j=1}^{m}A_{j,i}y_{j}\leq c_{i}\forall j\in I_{\geq }}

j = 1 m A j , i y j c i j I {\displaystyle \sum _{j=1}^{m}A_{j,i}y_{j}\geq c_{i}\forall j\in I_{\leq }}

j = 1 m A j , i y j = c i j I {\displaystyle \sum _{j=1}^{m}A_{j,i}y_{j}=c_{i}\forall j\in I_{\in }}

y j 0 i J {\displaystyle y_{j}\geq 0\forall i\in J_{\geq }}

y j 0 i J {\displaystyle y_{j}\leq 0\forall i\in J_{\leq }}

y j R i J = {\displaystyle y_{j}\in R\forall i\in J_{=}}

se nazývá dvojice duálních úloh lineárního programování (LP). Množinu přípustných řešení úlohy minimalizace označíme jako M {\displaystyle \mathrm {M} } , tj. množinu všech x R n {\displaystyle x\in R^{n}} , která splňují výše uvedené podmínky, a množinu všech jejich optimálních řešení symbolem M {\displaystyle \mathrm {M} ^{*}} . Množinu přípustných řešení úlohy maximalizace označíme jako N {\displaystyle \mathrm {N} } , tj. množinu všech y R m {\displaystyle y\in R^{m}} , která splňují výše uvedené podmínky, a množinu všech jejich optimálních řešení symbolem N {\displaystyle \mathrm {N} ^{*}} .

Někdy také hovoříme o úloze primární a k ní úloze duální. Jako primární označujeme tu úlohu, která vznikla na základě řešeného problému. Zbylou úlohu, pak nazýváme úlohou k ní duální. V případě, že je optimalizační problém lineární, tedy úlohu lineárního programování (LP) ve standardním tvaru, dvojici duálních symetrických úloh lineárního programování (LP) můžeme zapsat ve tvaru[3]

min { c T x   :   A x b ,   x 0 } , max { b T y   :   A T y c ,   y 0 } , {\displaystyle {\begin{aligned}&\min\{\mathbf {c} ^{\mathsf {T}}\mathbf {x} \ :\ \mathbf {A} \mathbf {x} \geq \mathbf {b} ,\ \mathbf {x} \geq \mathbf {0} \},\\&\max\{\mathbf {b} ^{\mathsf {T}}\mathbf {y} \ :\ \mathbf {A} ^{\mathsf {T}}\mathbf {y} \leq \mathbf {c} ,\ \mathbf {y} \geq \mathbf {0} \},\end{aligned}}}

kde A R m × n ,   x ,   c R m ,   y ,   b R n {\displaystyle \mathbf {A} \in \mathbb {R} ^{m\times n},\ \mathbf {x} ,\ \mathbf {c} \in \mathbb {R} ^{m},\ \mathbf {y} ,\ \mathbf {b} \in \mathbb {R} ^{n}} . V tomto případě minimalizační úlohu nazveme primární a maximalizační úlohu, úlohou k ní duální. Množinu přípustných řešení primární úlohy budeme značit M {\displaystyle M} a množinu přípustných řešení duální úlohy označíme N {\displaystyle N} . Úlohy lineárního programování lze převádět na zvolený tvar. Stačí se proto zabývat pouze jedním typem dvojice duálních úloh. Dokázaná tvrzení jsou potom platná i pro libovolnou dvojici duálních úloh, nejen pro ty ve standardním tvaru. Pro tuhle dvojici úloh pak platí následující tvrzení.

Slabá věta o dualitě pro případ LP

Nechť x M ,   y N {\displaystyle \mathbf {x} \in M,\ \mathbf {y} \in N} jsou libovolná, pak platí

c T x b T y {\displaystyle \mathbf {c} ^{\mathsf {T}}\mathbf {x} \geq \mathbf {b} ^{\mathsf {T}}\mathbf {y} }

přičemž rovnost nastane, právě když jsou splněny podmínky komplementarity

j { 1 , , m } :  buď  y j = 0    nebo  i = 1 n A i j x i = b j , i { 1 , , n } :  buď  x i = 0    nebo  j = 1 m A i j y j = c i . {\displaystyle {\begin{aligned}&\forall j\in \{1,\dots ,m\}:{\text{ buď }}y_{j}=0\ {\text{ nebo }}\sum _{i=1}^{n}A_{ij}x_{i}=b_{j},\\&\forall i\in \{1,\dots ,n\}:{\text{ buď }}x_{i}=0\ {\text{ nebo }}\sum _{j=1}^{m}A_{ij}y_{j}=c_{i}.\end{aligned}}}

Důkaz

Tvrzení stačí ukázat pro dvojici symetrických duálních úloh, jak bylo zmíněno výše. Pro libovolné x M ,   y N {\displaystyle \mathbf {x} \in M,\ \mathbf {y} \in N} , tj. pro přípustné řešení úlohy minimalizace a pro přípustné řešení úlohy maximalizace, platí

c T x ( A T y ) T x = y T A x y T b = b T y {\displaystyle \mathbf {c} ^{\mathsf {T}}\mathbf {x} \geq (\mathbf {A} ^{\mathsf {T}}\mathbf {y} )^{\mathsf {T}}\mathbf {x} =\mathbf {y} ^{\mathsf {T}}\mathbf {A} \mathbf {x} \geq \mathbf {y} ^{\mathsf {T}}\mathbf {b} =\mathbf {b} ^{\mathsf {T}}\mathbf {y} } .

Rovnost v předcházejícím výrazů nastává, právě tehdy když

y T ( A x b ) = 0 , ( c A T y ) T x = 0 , {\displaystyle {\begin{aligned}&\mathbf {y} ^{\mathsf {T}}(\mathbf {A} \mathbf {x} -\mathbf {b} )=0,\\&(\mathbf {c} -\mathbf {A} ^{\mathsf {T}}\mathbf {y} )^{\mathsf {T}}\mathbf {x} =0,\end{aligned}}}

tedy když jsou obě nerovnosti splněny jako rovnosti. Po rozepsáni předcházejících výrazů dostaneme přímo podmínky komplementarity.

Silná věta o dualitě pro případ LP

Primární úloha má optimální řešení, právě tehdy když duální úloha má optimální řešení. V takovém případě navíc platí

min x M c T x = max y N b T y {\displaystyle \min _{\mathbf {x} \in M}\mathbf {c} ^{\mathsf {T}}\mathbf {x} =\max _{\mathbf {y} \in N}\mathbf {b} ^{\mathsf {T}}\mathbf {y} }

Jedním z důsledků silné věty o dualitě v LP je například Farkasová věta.

Duální bazické řešení

Pro lineární optimalizační úlohu a bázi L {\displaystyle L} definujeme y ( L ) R m {\displaystyle y(L)\in R^{m}} , které je jednoznačně určené podmínkou ( A L ) T y ( L ) = c L {\displaystyle (A_{L})^{T}y(L)=c_{L}} . Vektor y ( L ) {\displaystyle y(L)} nazveme duální bazické řešení příslušné k bázi L {\displaystyle L} .

Aplikace duality

Nejzákladnější aplikace duality nastává pro případ, kdy jsou splněny podmínky pro silnou dualitu a součet dimenzí duálních proměnných je m + p 2 {\displaystyle m+p\leq 2} a zároveň dimenze primární proměnné je n > 2 {\displaystyle n>2} . V tomto případě lze složitější primární problém řešit pomocí často jednoduššího duálního problému. Zatím co k řešení primárního problému by byly zapotřebí pokročilejší výpočetní techniky, například simplexový algoritmus, duální problém může být řešitelný graficky a k jeho vyřešení (zejména, jestli se jedná o úlohu LP) může stačit jednoduše jeho nakreslení na papír. Jednoduchou interpretací dvojice duálních úloh je predikce vývoje po investici, jinými slovy, uvažujeme maximální zisk výroby v daném podniku, který je dán optimalizační úlohou. V ekonomické literatuře se optimální řešení duální úlohy nazývá stínové ceny nebo duální ceny.

Finanční portfolio

Jednou z nejzákladnějších aplikací z praxe je maximalizace výnosu akcí finančního portfolia. Z matematického pohledu rozumíme pod pojmem portfolio vektor θ = ( θ 1 , θ 2 , , θ m , ) R m + 1 {\displaystyle \theta =(\theta ^{1},\theta ^{2},\ldots ,\theta ^{m},)\in R^{m+1}} , jehož člen θ i {\displaystyle \theta _{i}} reprezentuje podíl jehož i-tého aktiva (s cenou v čase t reprezentovanou pomocí S t i {\displaystyle S_{t}^{i}} ). Hodnota portfolia θ {\displaystyle \theta } v čase t je rovna t S t {\displaystyle t\cdot S_{t}} , kde {\displaystyle \cdot } značí skalární součin. V praxi se můžeme setkat s různými typy portfolií. Podstatným příkladem je Markowitzovo portfolio.

Markowitzovo portfolio

Markowitz ve své teorii uvažuje jenom riziková aktiva. Pro pevný výnos je zapotřebí volit portfolia s minimální variací, která také slouží jako míra rizika. Obecně, zajímá nás portfolio s vysokým očekávaným výnosem a zároveň s minimální variancí. Tahle teorie přímo vychází teorie optimalizace. Označme S ^ = ( S 1 S m ) {\displaystyle {\widehat {S}}=(S^{1}\ldots S^{m})} jako cenu rizikových aktiv, θ = ( θ 1 , , θ m ) {\displaystyle \theta =(\theta ^{1},\ldots ,\theta ^{m})} portfolio. Nechť r 0 {\displaystyle r_{0}} je dána očekávaná výplata, w 0 {\displaystyle w_{0}} počáteční kapitál. Pak formulujeme úlohu

m i n V a r ( θ S ^ 1 ) {\displaystyle minVar(\theta \cdot {\widehat {S}}_{1})}

s . t . E [ θ ^ S ^ 1 ] = r 0 {\displaystyle s.t.{\mathsf {E}}[{\widehat {\theta }}\cdot {\widehat {S}}_{1}]=r_{0}}

θ ^ S ^ 0 = w 0 {\displaystyle {\widehat {\theta }}\cdot {\widehat {S}}_{0}=w_{0}} ,

kde S ^ {\displaystyle {\widehat {S}}} je řádkový vektor, θ ^ {\displaystyle {\widehat {\theta }}} je řádkový vektor a platí E [ S ^ 1 ] = [ E [ S ^ 1 1 ] , , E [ S ^ 1 m ] ] {\displaystyle {\mathsf {E[{\widehat {S}}_{1}]}}=[{\mathsf {E[{\widehat {S}}_{1}^{1}],\ldots ,E[{\widehat {S}}_{1}^{m}]}}]} . Předpisem E [ X ] {\displaystyle {\mathsf {E}}[X]} rozumíme střední hodnotu náhodné veličiny X. Maticovým zápisem A = ( E [ S ^ 1 ] S ^ 0 ) {\displaystyle A={\binom {{\mathsf {E}}[{\widehat {S}}_{1}]}{{\widehat {S}}_{0}}}} , b = ( r 0 w 0 ) {\displaystyle b={\binom {r_{0}}{w_{0}}}} lze danou úlohu přepsat následovně

m i n f ( x ) = 1 2 x T x {\displaystyle minf(x)={\frac {1}{2}}x^{T}\sum x}

s . t . A x = b {\displaystyle s.t.Ax=b} .

Zde platí, že x = θ ^ T {\displaystyle x={\widehat {\theta }}^{T}} , = E [ ( S ^ 1 E [ S 1 ^ ] ) T ( S ^ 1 E [ S 1 ^ ] ) T ] = ( E [ ( S ^ 1 i E [ S 1 i ^ ] ) T ( S ^ 1 j E [ S 1 j ^ ] ) T ] ) {\displaystyle \sum ={\mathsf {E}}[({\widehat {S}}_{1}-{\mathsf {E}}[{\widehat {S_{1}}}])^{T}({\widehat {S}}_{1}-{\mathsf {E}}[{\widehat {S_{1}}}])^{T}]=({\mathsf {E}}[({\widehat {S}}_{1}^{i}-{\mathsf {E}}[{\widehat {S_{1}^{i}}}])^{T}({\widehat {S}}_{1}^{j}-{\mathsf {E}}[{\widehat {S_{1}^{j}}}])^{T}])} , i , j = 1 , m {\displaystyle i,j=1,\ldots m} . Zjevně {\displaystyle \sum } je symetrická, pozitivně definitní matice. Dále označme f ( y ) = 1 2 y T y {\displaystyle f^{*}(y)={\frac {1}{2}}y^{T}{\frac {y}{\sum }}} . Jelikož b r a n g e A {\displaystyle b\in rangeA} , je splněná podmínka silné věty o dualitě a tedy úloha je duální k úloze

m a x b T y 1 2 y T A ( ) 1 A T y = 1 2 b T 1 A ( ) 1 A t b {\displaystyle maxb^{T}y-{\frac {1}{2}}y^{T}A(\sum )^{-}1A^{T}y={\frac {1}{2}}b^{T}{\frac {1}{A(\sum )^{-}1A^{t}}}b} .

Optimálním řešením této úlohy duální k zadané je y ¯ = b A ( ) 1 A T {\displaystyle {\bar {y}}={\frac {b}{A(\sum )^{-}1A^{T}}}} . Označme x ¯ {\displaystyle {\bar {x}}} řešení původní úlohy a platí f ( x ) + f ( A T y ) y A x = 0 {\displaystyle f(x)+f^{*}(A^{T}y)-y\cdot Ax=0} , kde {\displaystyle \cdot } značí skalární součin. Konečně dostáváme optimální portfolio

x ¯ = 1 A T 1 A ( ) 1 A T b {\displaystyle {\bar {x}}={\frac {1}{\sum }}A^{T}{\frac {1}{A(\sum )^{-}1A^{T}}}b} .

Reference

  1. BOYD, Stephen; VANDENBERGHE, Lieven. Convex Optimization. https://web.stanford.edu/~boyd/cvxbook/bv_cvxbook.pdf#page=230: Cambridge University Press, 2004. ISBN 978-0-521-83378-3. Je zde použita šablona {{Cite book}} označená jako k „pouze dočasnému použití“.
  2. SLATER, Morton. Lagrange Multipliers Revisited. Cowles Commission Discussion Paper. 1950. Dostupné online. Je zde použita šablona {{Cite journal}} označená jako k „pouze dočasnému použití“.
  3. DUPAČOVÁ, Jitka; LACHOUT, Petr. Úvod do optimalizace. Praha: Matfyzpress, 2011. 10 s. ISBN 978-80-7378-176-7. S. 31. 

Zdroj datcs.wikipedia.org
Originálcs.wikipedia.org/wiki/Dualita_(optimalizace)
Zobrazit sloupec 

Kalkulačka - Výpočet

Výpočet čisté mzdy

Důchodová kalkulačka

Přídavky na dítě

Příspěvek na bydlení

Rodičovský příspěvek

Životní minimum

Hypoteční kalkulačka

Povinné ručení

Banky a Bankomaty

Úrokové sazby, Hypotéky

Směnárny - Euro, Dolar

Práce - Volná místa

Úřad práce, Mzda, Platy

Dávky a příspěvky

Nemocenská, Porodné

Podpora v nezaměstnanosti

Důchody

Investice

Burza - ČEZ

Dluhopisy, Podílové fondy

Ekonomika - HDP, Mzdy

Kryptoměny - Bitcoin, Ethereum

Drahé kovy

Zlato, Investiční zlato, Stříbro

Ropa - PHM, Benzín, Nafta, Nafta v Evropě

Podnikání

Města a obce, PSČ

Katastr nemovitostí

Katastrální úřady

Ochranné známky

Občanský zákoník

Zákoník práce

Stavební zákon

Daně, formuláře

Další odkazy

Auto - Cena, Spolehlivost

Registr vozidel - Technický průkaz, eTechničák

Finanční katalog

Volby, Mapa webu

English version

Czech currency

Prague stock exchange


Ochrana dat, Cookies

 

Copyright © 2000 - 2024

Kurzy.cz, spol. s r.o., AliaWeb, spol. s r.o.