Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
statnice:bakalar:b0b33opt [2025/06/04 16:47] – [Vázané extrémy pomocí Lagrangeových multiplikátorů] zapleka3statnice:bakalar:b0b33opt [2025/06/12 10:33] (current) – [Podmínky konvexity podle derivací] el_dusto
Line 1: Line 1:
-==== Použití lineární algebry v optimalizaci. Iterační algoritmy na volné lokální extrémy. Lineární programování. Konvexní množiny a funkce, konvexní úlohy. Dualita. ====+====== Použití lineární algebry v optimalizaci. Iterační algoritmy na volné lokální extrémy. Lineární programování. Konvexní množiny a funkce, konvexní úlohy. Dualita. ======
  
 [[https://fel.cvut.cz/cz/education/bk/predmety/46/74/p4674306.html|B0B33OPT]] [[https://cw.fel.cvut.cz/wiki/courses/B0B33OPT|Webové stránky předmětu]] [[https://fel.cvut.cz/cz/education/bk/predmety/46/74/p4674306.html|B0B33OPT]] [[https://cw.fel.cvut.cz/wiki/courses/B0B33OPT|Webové stránky předmětu]]
Line 577: Line 577:
   * ekonomické rovnováhy s rozpočtovým omezením.   * ekonomické rovnováhy s rozpočtovým omezením.
  
-===== Úloha lineárního programování (LP) =====+===== 7. Úloha lineárního programování (LP) =====
  
-Lineární programování (LP) je optimalizační disciplína, ve které hledáme vektor \(x\in\mathbb{R}^n\), který minimalizuje (nebo maximalizuje) lineární cílovou funkci za předpokladuže \(x\splňuje soustavu lineárních omezení (nerovnic nebo rovnic).+Lineární programování (LP) je metoda pro **optimalizaci lineární funkce** při **lineárních omezeních**. Typicky hledáme maximum nebo minimum nějakého cíle (např. ziskuvýkonuza omezených podmínek (rozpočet, kapacita, suroviny apod.)
  
 === Úvod k teorii lineárního programování, geometrický význam=== === Úvod k teorii lineárního programování, geometrický význam===
  
 Lineární programování (LP) pracuje s lineární cílovou funkcí Lineární programování (LP) pracuje s lineární cílovou funkcí
-%%<mjax>z = c^{T}x</mjax>%% +%%<mjax>z = c^{T}x</mjax>%% <abbr title="Minimalizujeme lineární funkci cᵀx při lineárních omezeních na x.">❓</abbr> 
-a konvexním polyedrem definovaným lineárními omezeními (rovnicemi či nerovnicemi). Hlavními body teorie jsou:+a konvexním polyedrem definovaným lineárními omezeními (rovnicemi či nerovnicemi). 
  
 +Hlavními body teorie jsou:
   * **Konvexní polyedr a vrcholy**     * **Konvexní polyedr a vrcholy**  
-  Soubor všech \(x\) splňujících   +    * soubor všech \(x\) splňujících %%<mjax>A\,x \ge b,\;x \ge 0</mjax>%%   
-%%<mjax>A\,x \ge b,\;x \ge 0</mjax>%%   +    tvoří konvexní množinu (polyedr). Každý takový polyedr lze popsat buď jako průnik poloprostorů, nebo jako konvexní obal (konvexní kombinace) svých extrémních bodů (vrcholů) a hran (hranové body). 
-  tvoří konvexní množinu (polyedr). Každý takový polyedr lze popsat buď jako průnik poloprostorů, nebo jako konvexní obal (konvexní kombinace) svých extrémních bodů (vrcholů) a hran (hranové body).+    * = Řešení soustavy omezení \( A x \le b \) tvoří konvexní oblast v prostoru.  
  
-  * **Vrcholy (extermální body)**   +  * **Vrcholy (extermální body)**  
-  Vrcholem (extrémním bodem) polyedru rozumíme bod, který nelze vyjádřit jako konvexní kombinaci dvou jiných bodů v polyedru. Algebraicky to odpovídá základnímu (basic) řešení:   +    * vrcholem (extrémním bodem) polyedru rozumíme bod, který nelze vyjádřit jako konvexní kombinaci dvou jiných bodů v polyedru. Algebraicky to odpovídá základnímu (basic) řešení:   
-  Pokud máme \(m\) lineárních rovnic (po úpravě do standardního tvaru) a \(n\) proměnných, každý vrchol odpovídá výběru \(m\) nezávislých (bázových) proměnných, ostatní se nastaví na nulu.  +      Pokud máme \(m\) lineárních rovnic (po úpravě do standardního tvaru) a \(n\) proměnných, každý vrchol odpovídá výběru \(m\) nezávislých (bázových) proměnných, ostatní se nastaví na nulu.   
 +    * = Body, které nelze napsat jako průměr jiných bodů v oblasti – právě v těchto bodech může ležet optimum.  
  
-  * **Optimum leží ve vrcholu**   +  * **Optimum leží ve vrcholu**  
-  Vzhledem k tomu, že +    * vzhledem k tomu, že %%<mjax>z = c^{T}x</mjax>%% 
-%%<mjax>z = c^{T}x</mjax>%% +    je lineární, musí globální optimum (minimální či maximální hodnota) na konvexním polyedru nastat alespoň v jednom vrcholu. Jinými slovy, pro LP není třeba zkoumat vnitřek polyedru: stačí prohledat vrcholy (popř. hrany mezi dvěma vrcholy, pokud existuje více optimálních vrcholů)
-je lineární, musí globální optimum (minimální či maximální hodnota) na konvexním polyedru nastat alespoň v jednom vrcholu. Jinými slovy, pro LP není třeba zkoumat vnitřek polyedru: stačí prohledat vrcholy (popř. hrany mezi dvěma vrcholy, pokud existuje více optimálních vrcholů).+    * = Pokud má LP optimum, pak existuje alespoň v jednom z vrcholů této oblasti. Nemusíme tedy prohledávat celý prostor, stačí kontrolovat vrcholy.
  
   * **Více optimálních vrcholů (degenerace)**     * **Více optimálních vrcholů (degenerace)**  
-Pokud existují dva vrcholy \(x^{(1)}, x^{(2)}\) s   +    * Pokud existují dva vrcholy \(x^{(1)}, x^{(2)}\) s %%<mjax>c^{T}x^{(1)} = c^{T}x^{(2)} = z^{*},</mjax>%% 
-%%<mjax>c^{T}x^{(1)} = c^{T}x^{(2)} = z^{*},</mjax>%%   +    pak každá konvexní kombinace %%<mjax>x = \alpha\,x^{(1)} + (1-\alpha)\,x^{(2)},\quad 0\le\alpha\le1,</mjax>%% 
-pak každá konvexní kombinace +    je také optimální a leží na hraně spojující tyto dva vrcholy. To znamená, že optimální množina může být celá hrana (nejen izolovaný vrchol). 
-%%<mjax>x = \alpha\,x^{(1)} + (1-\alpha)\,x^{(2)},\quad 0\le\alpha\le1,</mjax>%% +    * = Pokud má více vrcholů stejnou hodnotu cílové funkce, optimum je libovolná jejich kombinace – tedy i celé hrany mezi nimi. 
-je také optimální a leží na hraně spojující tyto dva vrcholy. To znamená, že optimální množina může být celá hrana (nejen izolovaný vrchol).+
  
   * **Geometrické důsledky**     * **Geometrické důsledky**  
-  - Pokud polyedr nemá žádné vrcholy (např. neomezená směrově čtvercová množina), může optimum neexistovat (např. LP cílová funkce neklesá) nebo být dosaženo jen „v nekonečnu“.   +    - Pokud polyedr nemá žádné vrcholy (např. neomezená směrově čtvercová množina), může optimum neexistovat (např. LP cílová funkce neklesá) nebo být dosaženo jen „v nekonečnu“.   
-  - Pokud je polyedr omezený a nevyprazdňuje se (existuje aspoň jeden vrchol), pak existuje alespoň jedno globální optimum v některém vrcholu.  +    - Pokud je polyedr omezený a nevyprazdňuje se (existuje aspoň jeden vrchol), pak existuje alespoň jedno globální optimum v některém vrcholu.  
  
 === Základní tvar LP ===   === Základní tvar LP ===  
 +
 Obecná formulace (kanonický tvar v „nerovnicích“) je: Obecná formulace (kanonický tvar v „nerovnicích“) je:
  
Line 621: Line 624:
 Každou úlohu LP lze převést do tohoto rovnicového tvaru pomocí dvou úprav: Každou úlohu LP lze převést do tohoto rovnicového tvaru pomocí dvou úprav:
  
-1. **Přidání nezáporných slack proměnných**   +1. **Přidání nezáporných slack proměnných** (nerovností na rovnosti)   
-   Pro každé omezení ve tvaru nerovnosti (např. \(a_{i}^{T}x \le b_{i}\)) přidáme novou proměnnou \(u_{i} \ge 0\), aby vznikla rovnice   +  Pro každé omezení ve tvaru nerovnosti (např. \(a_{i}^{T}x \le b_{i}\)) přidáme novou proměnnou \(u_{i} \ge 0\), aby vznikla rovnice %%<mjax>a_{i}^{T}x + u_{i} = b_{i},\quad u_{i} \ge 0.</mjax>%%   
-%%<mjax>a_{i}^{T}x + u_{i} = b_{i},\quad u_{i} \ge 0.</mjax>%%  + 
 +2. **Vyjádření neomezených reálných proměnných** (převedení volných proměnných) 
 +  * Každou proměnnou bez znaménkového omezení rozložíme jako rozdíl dvou nezáporných: %%<mjax>x_j = x_j^+ - x_j^-,\quad x_j^+,\,x_j^- \ge 0</mjax>%%  
 +    
 +    
 +==== Varianty zadání ==== 
 + 
 +Úlohu LP lze převádět mezi různými tvary – např. aby vyhovovala algoritmům (simplex, metoda vnitřního bodu) nebo vizualizaci. 
 + 
 +  * **Minimalizace vs. maximalizace:** 
 +    * Maximalizaci převedeme na minimalizaci změnou znaménka: %%<mjax>\max c^T x \equiv \min (-c)^T x</mjax>%% 
 + 
 +  * **Rovnosti a nerovnosti:** 
 +    * Rovnost převedeme na dvě opačné nerovnosti: %%<mjax>a^T x = b \equiv a^T x \le b \ \text{a} \ -a^T x \le -b</mjax>%% 
 + 
 +  * **Proměnné bez znaménka:** 
 +    * Volná proměnná se nahradí rozdílem dvou nezáporných: %%<mjax>x_i = x_i^+ - x_i^-,\quad x_i^+, x_i^- \ge 0</mjax>%% 
 + 
 +  * **Slack proměnné (u nerovností):** 
 +    * Každou nerovnost \(a_i^T x \le b_i\) převedeme na rovnici přidáním nové nezáporné proměnné: %%<mjax>a_i^T x + s_i = b_i,\quad s_i \ge 0</mjax>%%
  
-2. **Vyjádření neomezených reálných proměnných**   +Tím dostaneme **kanonický tvar LP** – s rovnicemi a nezápornými proměnnýmise kterým umí pracovat všechny běžné algoritmy.
-   Každou proměnnou \(x_{j}\)která nemá nenegativní omezení, zapíšeme jako rozdíl dvou nezáporných proměnných:   +
-%%<mjax>x_{j} = x_{j}^{+} - x_{j}^{-},\quad x_{j}^{+} \ge 0,\; x_{j}^{-} \ge 0.</mjax>%%  +
  
-=== Převod LP do kanonického tvaru (stručně) ===+==== Převod LP do kanonického tvaru ====
  
 **Původní úloha (max):**   **Původní úloha (max):**  
Line 655: Line 675:
 \] \]
  
-=== Typické použití LP ===   +=== Typické použití LP ===
-LP se uplatňuje v mnoha oblastech, například: +
-  * **Plánování výroby a alokace zdrojů** – maximalizace zisku z produktů nebo minimalizace výrobních nákladů, kde \(x_j\) jsou počty vyrobených jednotek, \(A\,x \le b\) zachycuje omezení surovin, kapacit, pracovních hodin.   +
-  * **Směrování a toky v síti** – minimalizace nákladů na přepravu z bodu A do B s omezeními kapacit hran; LP formulace pro \emph{min-cost flow}.   +
-  * **Optimalizace transportních problémů (assignment, transporte, dietă)** – přiřazení zaměstnanců úkolům, sklady-prodejny-dodávky, minimální náklady na dietní plán.  +
  
-=== Přibližné řešení přeurčených soustav ===   +Lineární programování se používá v různých oborech, kde je třeba nalézt nejlepší možné řešení za daných podmínek:
-Uvažujme přeurčenou soustavu lineárních rovnic \(A\,x \approx b\), kde \(A\in\mathbb{R}^{m\times n}\), \(m>n\). Místo klasického minimaxu v L₂-normě (least squares) můžeme hledat řešení, které minimalizuje odchylku v jiných normách – L₁ resp. L∞. Obě formulace lze přepsat jako LP.+
  
-=== L∞-norm (max-norm) === +  * **Plánování výroby a alokace zdrojů**   
-Chceme minimalizovat největší odchylku: +    * Např. maximalizace zisku z produktů nebo minimalizace nákladů. 
-%%<mjax> +    * Omezující podmínky mohou být kapacity strojů, pracovní doba, množství surovin apod. 
-\min_{x\in\mathbb{R}^{n}} \,\bigl\|A\,x - b\bigr\|_{\infty} +  * **Směrování a toky v síti**   
-\;=\;\min_{x}\; \max_{i=1\dots m} \bigl|\,a_{i}^{T}x - b_{i}\bigr|. +    * Minimalizace nákladů na přepravu v dopravní síti. 
-</mjax>%% +    * Omezení tvoří kapacity hran a požadavky na vstup/výstup v uzlech. 
-Formulujeme ekvivalentně: +  * **Transportní a přiřazovací problémy**   
-%%<mjax> +    * Např. optimální distribuce zboží ze skladů do prodejen. 
-\min_{x,\;t}\; t +    * Přiřazování pracovníků k úkolům nebo trasám. 
-\quad\text{za podmínek}\quad +  * **Dietní problém**   
--\,t \;\le\; a_{i}^{T}x - b_{i}\;\le\; t,\quad i=1,\dots,m,\quad t\in\mathbb{R}. +    * Hledání nejlevnější kombinace potravin splňující výživové normy. 
-</mjax>%%+    * Každá potravina má známé nutriční složení a cenu. 
 +  * **Ekonomické rovnováhy a plánování**   
 +    * Například v makroekonomii při modelování rovnováh v sektorech nebo při investičním plánování. 
 + 
 +LP slouží jako základ pro složitější varianty – např. celočíselné, nelineární nebo stochastické programování. 
 + 
 +==== Přibližné řešení přeurčené soustavy ==== 
 + 
 +Přeurčená soustava rovnic \( A x = b \), kde počet rovnic \( m \) převyšuje počet neznámých \( n \), obvykle nemá přesné řešení. Hledáme proto takové \( x \), které dává nejlepší možné přiblížení – tj. minimalizuje odchylku \( A x - b \) podle zvolené normy. 
 + 
 +Typické volby: 
 + 
 +  * **1-norma (součet absolutních odchylek):**   
 +    * %%<mjax>\min \|A x - b\|_1 = \sum_{i=1}^m |a_i^T x - b_i|</mjax>%% <abbr title="Robustní vůči odlehlým hodnotám – penalizuje každou chybu stejně.">❓</abbr> 
 + 
 +  * **∞-norma (maximální odchylka):**   
 +    * %%<mjax>\min \|A x - b\|_\infty = \max_{i=1,\dots,m} |a_i^T x - b_i|</mjax>%% <abbr title="Zajišťuje, že žádná rovnice není výrazně porušena – důležité při rovnoměrných požadavcích.">❓</abbr> 
 + 
 +Obě tyto úlohy lze převést na lineární programování (LP) zavedením pomocných proměnných a vhodných lineárních omezení. 
 + 
 +== L∞-norm (max-norm) == 
 +  Chceme minimalizovat největší odchylku: %%<mjax> \min_{x\in\mathbb{R}^{n}} \,\bigl\|A\,x - b\bigr\|_{\infty} \;=\;\min_{x}\; \max_{i=1\dots m} \bigl|\,a_{i}^{T}x - b_{i}\bigr|. </mjax>%% 
 +  Formulujeme ekvivalentně: %%<mjax> \min_{x,\;t}\; t \quad\text{za podmínek}\quad -\,t \;\le\; a_{i}^{T}x - b_{i}\;\le\; t,\quad i=1,\dots,m,\quad t\in\mathbb{R}.</mjax>%%
      
 Výsledkem je LP v proměnných \((x_1,\dots,x_n,t)\). Optimální \(x^{*}\) minimalizuje největší reziduum. Výsledkem je LP v proměnných \((x_1,\dots,x_n,t)\). Optimální \(x^{*}\) minimalizuje největší reziduum.
  
-=== L₁-norm (taxicab-norma) === +== L₁-norm (taxicab-norma) == 
-Chceme minimalizovat součet absolutních odchylek: +  Chceme minimalizovat součet absolutních odchylek: %%<mjax>\min_{x\in\mathbb{R}^{n}} \,\bigl\|A\,x - b\bigr\|_{1}\;=\;\min_{x}\;\sum_{i=1}^{m} \bigl|\,a_{i}^{T}x - b_{i}\bigr|.</mjax>%% 
-%%<mjax> +  Formulujeme ekvivalentně:%%<mjax>\min_{x,\;\{u_{i}\}}\;\sum_{i=1}^{m}u_{i}\quad\text{za podmínek}\quad-\,u_{i} \;\le\; a_{i}^{T}x - b_{i}\;\le\; u_{i},\quad u_{i}\;\ge\; 0,\;i=1,\dots,m.</mjax>%%  
-\min_{x\in\mathbb{R}^{n}} \,\bigl\|A\,x - b\bigr\|_{1} +  Nalezené \(\{u_{i}^{*}\}\) jsou pak absolutní odchylky a \(\sum_i u_i^*\) je minimální součet.
-\;=\;\min_{x}\;\sum_{i=1}^{m} \bigl|\,a_{i}^{T}x - b_{i}\bigr|. +
-</mjax>%% +
-Formulujeme ekvivalentně: +
-%%<mjax> +
-\min_{x,\;\{u_{i}\}}\;\sum_{i=1}^{m}u_{i} +
-\quad\text{za podmínek}\quad +
--\,u_{i} \;\le\; a_{i}^{T}x - b_{i}\;\le\; u_{i},\quad +
-u_{i}\;\ge\; 0,\;i=1,\dots,m. +
-</mjax>%%  +
-Nalezené \(\{u_{i}^{*}\}\) jsou pak absolutní odchylky a \(\sum_i u_i^*\) je minimální součet.+
  
 === Kompletní příklad přeurčené soustavy v L₁ a L∞ === === Kompletní příklad přeurčené soustavy v L₁ a L∞ ===
Line 790: Line 817:
 === Řešení lineárního programu (stručně) === === Řešení lineárního programu (stručně) ===
  
-Po převedení LP do kanonického (rovnicového) tvaru +Po převedení LP do kanonického (rovnicového) tvaru %%<mjax>\min\{\,c^{T}x \mid A\,x = b,\;x \ge 0\},</mjax>%% 
-%%<mjax>\min\{\,c^{T}x \mid A\,x = b,\;x \ge 0\},</mjax>%% + 
-věnujeme pozornost následujícím možnostem:+řešíme optimalizační úlohu nad konvexní množinou řešení (polyedrem). Existuje několik přístupů:
  
   * **Vyhledání vrcholů a porovnání cílové funkce**     * **Vyhledání vrcholů a porovnání cílové funkce**  
-  - Najdeme všechny vrcholy jako soustavu lineárních rovnic pro každou dvojici omezení a prohlásíme za optimum vrchol s maximální hodnotou. +    * Všechny vrcholy polyedru odpovídají základním řešením soustavy \(A x = b\), kde \(x \ge 0\).   
-  - **výhoda:** pro malé problémy ve 2D(3D) lze řešit graficky. +    Pro malé problémy (2D3D) lze vrcholy zjistit graficky jako průsečíky omezení  
-  **Nevýhoda:** Počet vrcholů roste exponenciálně (\(\binom{n}{m}\)), takže postup je vhodný pouze pro velmi malé rozměry.+    * Vyhodnotíme hodnotu cílové funkce \(c^T x\) ve všech vrcholech a zvolíme nejlepší.   
 +    * **Výhoda:** Přehledná geometrická interpretace, vhodná pro ilustraci.   
 +    * **Nevýhoda:** Počet vrcholů může být exponenciální (\(\binom{n}{m}\)), což je výpočetně neúnosné pro větší úlohy.
  
   * **Simplexová metoda (pohyb po hranách polyedru)**     * **Simplexová metoda (pohyb po hranách polyedru)**  
-  Namísto úplného výčtu vrcholů se pohybujeme z vrcholu na sousední vrchol, kde se hodnota cílové funkce vždy zlepšuje.   +    * Nehledáme všechny vrcholy – postupně se přesouváme z jednoho vrcholu k sousednímu, přičemž hodnota cílové funkce se zlepšuje (klesá nebo roste).   
-  - Metoda prakticky najde optimální řešení ve velmi malém počtu kroků pro většinu reálných LP.   +    * V každém kroku vybíráme bázové proměnné a aktualizujeme tzv. simplexovou tabulku.   
-  **Výhoda:** Efektivní  +    * Algoritmus konverguje k optimu v konečně mnoha krocích, pokud nenastane degenerace.   
-  - **Nevýhoda:** Může se zacyklit+    * **Výhoda:** Prakticky velmi rychlý pro většinu úloh – často jen málo kroků.   
 +    * **Nevýhoda:** V krajních případech může cyklit (řeší se např. Blandovým pravidlem). 
 + 
 +===== 8. Geometrie LP ===== 
 + 
 +Geometrie lineárního programování je založena na vlastnostech **konvexních množin** a **mnohostěnů (polyedrů)**. LP úloha se řeší hledáním extrému lineární funkce na takové množině. 
 + 
 +==== Konvexní množiny ==== 
 + 
 +  * Množina \(C \subseteq \mathbb{R}^n\) je **konvexní**, pokud pro každé dva body \(x, y \in C\) a libovolné \(\lambda \in [0,1]\) platí: %%<mjax>\lambda x + (1-\lambda)y \in C</mjax>%%<abbr title="Úsečka mezi každými dvěma body leží celá v množině – žádné 'díry' nebo 'záhyby'.">❓</abbr> 
 + 
 +  * Ekvivalentně: obsahuje všechny **konvexní kombinace** svých bodů, tedy výrazy ve tvaru: %%<mjax>x = \sum_{i=1}^{k} \alpha_i x_i,\quad \alpha_i \ge 0,\quad \sum \alpha_i = 1</mjax>%%<abbr title="Konvexní kombinace je lineární kombinace s nezápornými váhami, které dávají dohromady 1.">❓</abbr> 
 + 
 +  * Konvexní množiny jsou důležité, protože: 
 +    * minimum lineární funkce na konvexní množině je dosaženo na hranici (nejčastěji ve vrcholu), 
 +    * každé lokální minimum je zároveň globální. 
 + 
 +==== Polyedr (konvexní mnohostěn) ==== 
 + 
 +  * **Polyedr** je průnik konečně mnoha poloprostorů, tedy množina řešení lineárních nerovnic: %%<mjax>P = \{x \in \mathbb{R}^n \mid A x \ge b\}</mjax>%%<abbr title="Obecná definice provázaná s LP – oblast omezení tvoří polyedr.">❓</abbr> 
 + 
 +  * Je vždy konvexní, ale nemusí být omezený (např. otevřený klín nebo nekonečný paprsek).   
 +    * Pokud polyedr **neobsahuje přímku**, má extrémní body – lze tedy hledat optimum. 
 +    * Pokud obsahuje přímku, minimum lineární funkce často neexistuje nebo je dosaženo „v nekonečnu“. 
 +  * Každý polyedr má: 
 +    * **vrcholy (extrémní body)** – body, které nelze vyjádřit jako konvexní kombinace jiných bodů množiny, 
 +    * **hrany, fasety, stěny** – tj. geometrické části různých dimenzí: 
 +      * 0D – vrchol
 +      * 1D – hrana, 
 +      * \(n{-}1\)D – faseta. 
 + 
 +==== Extrémní body ==== 
 + 
 +  * Bod \(x \in P\) je **extrémní bod** (vrchol), pokud neexistují dva různé body \(x_1, x_2 \in P\), že: %%<mjax>x = \lambda x_1 + (1-\lambda) x_2,\quad \lambda \in (0,1)</mjax>%%<abbr title="Vrcholy nelze 'rozložit' – právě v nich leží optimum lineární funkce.">❓</abbr> 
 + 
 +  * Algebraicky odpovídají **základním řešením** soustavy rovnic.   
 +    * Extrémní body existují právě tehdy, když množina řešení neobsahuje přímku. 
 +  * V LP se optimální řešení (pokud existuje) nachází vždy v některém extrémním bodě polyedru přípustných řešení.   
 +    * Minimum lineární funkce na konvexním polyedru je dosaženo na **stěně**, kde má funkce stejnou hodnotu.   
 +    * Tato stěna je průnik s tzv. **opěrnou nadrovinou**:  %%<mjax>H = \{x \in \mathbb{R}^n \mid c^T x = c^T x^*\}</mjax>%% <abbr title="Hyperrovina, ve které je dosaženo minima – 'dotýká se' množiny.">❓</abbr> 
 + 
 + 
 +===== 9. Dualita v LP ===== 
 + 
 +Každé úloze lineárního programování (tzv. **primární úloze**) odpovídá jiná LP úloha – tzv. **duální úloha**. Obě spolu souvisí: řešení jedné poskytuje informace o řešení druhé a zároveň může sloužit jako nástroj pro jednodušší nalezení optima. 
 + 
 +==== Primární a duální úloha ==== 
 + 
 +Nechť máme primární úlohu ve tvaru: %%<mjax>\min\{\,c^T x \mid A x \ge b,\; x \ge 0\,\}</mjax>%% 
 + 
 +K ní přísluší duální úloha: %%<mjax>\max\{\,b^T y \mid A^T y \le c,\; y \ge 0\,\}</mjax>%% 
 +  * Vektory \(x\) a \(y\) jsou proměnné v primární a duální úloze. 
 +  * Matice a vektory jsou převrácené – omezení primalu se stávají cílovou funkcí dualu a naopak. 
 +  * Duální úloha je tzv. **reverzibilní úprava** primární – přechod mezi nimi je čistě formální. 
 + 
 +==== Slabá dualita ==== 
 + 
 +  * **Věta o slabé dualitě:** 
 +    * Pro každé přípustné řešení \(x\) primární úlohy a každé přípustné \(y\) duální úlohy platí: %%<mjax>c^T x \ge b^T y</mjax>%%<abbr title="Cílová funkce primalu je vždy větší nebo rovna cíli dualu.">❓</abbr> 
 +    * Duální hodnota je tedy **dolní mez** primalu. 
 + 
 +  * Pokud se stane, že: %%<mjax>c^T x = b^T y</mjax>%% 
 +    * pro nějaké přípustné dvojice \((x^*, y^*)\), pak jsou **obě řešení optimální**. 
 + 
 +==== Silná dualita ==== 
 + 
 +  * **Věta o silné dualitě:** 
 +    * Pokud má primární úloha nebo duální úloha **optimální řešení**, pak: 
 +      * druhá úloha má také řešení, 
 +      * a platí: %%<mjax>c^T x^* = b^T y^*</mjax>%%<abbr title="Optimální hodnoty cílové funkce se rovnají.">❓</abbr> 
 + 
 +  * Tato rovnost se označuje jako **certifikát optimality** – potvrzuje, že nalezené řešení je opravdu optimum. 
 + 
 +  * Ekvivalentně platí: 
 +    * Primal má optimum ⇔ dual má optimum ⇔ hodnoty jsou stejné. 
 + 
 +==== Komplementarita ==== 
 + 
 +  * **Komplementární podmínky:** 
 +    * Jsou splněny právě tehdy, když jsou obě řešení optimální
 +      * Pro každé \(i\): %%<mjax>x_i > 0 \;\Rightarrow\; (A^T y)_i = c_i</mjax>%% 
 +      * Pro každé \(j\): %%<mjax>y_j > 0 \;\Rightarrow\; (A x)_j = b_j</mjax>%%   
 +      * Obecně: %%<mjax>(c_i - (A^T y)_i) \cdot x_i = 0,\quad ((A x)_j - b_j) \cdot y_j = 0</mjax>%%<abbr title="Každý člen buď aktivně omezuje, nebo má nulový dopad.">❓</abbr> 
 + 
 +  * Jinými slovy: **každá podmínka buď svazuje řešení (aktivní), nebo má nulový stínový dopad**. 
 + 
 +==== Význam a využití ==== 
 +  * Dualita v LP umožňuje: 
 +    * jednodušší konstrukci algoritmů (např. dual simplex), 
 +    * odhad kvality řešení primalu pomocí dualu (dolní/vrchní meze), 
 +    * výpočet **stínových cen** – jak moc se zlepší optimum, když uvolníme omezení, 
 +    * rozhodování o významu jednotlivých omezení a jejich dopadu na výsledek. 
 + 
 +  * V praxi se primal a duální řešení často hledají současně – např. v simplexové metodě se během výpočtu tvoří i informace o duálu. 
 + 
 +===== 10. Konvexní funkce a konvexní optimalizace ===== 
 + 
 +Konvexní funkce tvoří základ moderní optimalizace – mají příznivé geometrické i analytické vlastnosti. Hledání minima konvexní funkce je jednodušší, protože **každé lokální minimum je zároveň globální minimum**. 
 + 
 +==== Definice konvexní funkce ==== 
 + 
 +  * Funkce \( f: \mathbb{R}^n \to \mathbb{R} \) je **konvexní**, pokud pro každé \( x, y \in \mathbb{R}^n \) a každé \( \lambda \in [0,1] \) platí: %%<mjax>f(\lambda x + (1 - \lambda)y) \le \lambda f(x) + (1 - \lambda) f(y)</mjax>%% <abbr title="Hodnota v bodě mezi x a y není větší než průměr hodnot v x a y – tedy 'pod obloukem'.">❓</abbr> 
 + 
 +  * Funkce je **striktně konvexní**, pokud nerovnost je ostrá pro \(x \ne y\). 
 + 
 +  * Konvexita znamená, že graf funkce je „ohnutý směrem nahoru“. 
 + 
 +==== Epigraf a subkontura ==== 
 + 
 +  **Epigraf** funkce \( f \)množina bodů nad grafem: %%<mjax>\mathrm{epi}(f) = \{ (x,t) \in \mathbb{R}^n \times \mathbb{R} \mid f(x) \le t \}</mjax>%% <abbr title="Epigraf je objem podložený funkcí – konvexní funkce má konvexní epigraf.">❓</abbr> 
 + 
 +  * **Subkontura (sublevel množina)** – množina všech bodů, kde funkce nepřesahuje danou hodnotu: %%<mjax>\{x \in \mathbb{R}^n \mid f(x) \le \alpha \}</mjax>%% <abbr title="Zobrazujeme oblasti, kde je funkce pod určitou hladinou.">❓</abbr> 
 + 
 +==== Podmínky konvexity podle derivací ==== 
 + 
 +Pokud je \(f\) diferencovatelná: 
 + 
 +  * **1. derivace – gradientová podmínka:** Funkce \(f\) je konvexní ⇔ platí: %%<mjax>f(y) \ge f(x) + \nabla f(x)^T (y x)</mjax>%% <abbr title="Dotyková rovina funkci nepodsekává – funkce leží vždy nad tečnou.">❓</abbr> 
 + 
 +Pokud je \(f\) dvakrát diferencovatelná: 
 + 
 +  * **2. derivace – Hessova podmínka:** Funkce \(f\) je konvexní ⇔ její Hessova matice je pozitivně semidefinitní: %%<mjax>\nabla^2 f(x) \succeq 0\quad \text{(pro všechna } x)</mjax>%% <abbr title="Funkce je konvexní, pokud její křivost (druhé derivace) nejsou záporné.">❓</abbr> 
 + 
 +==== Úloha konvexní optimalizace ==== 
 + 
 +  * Obecná úloha konvexní optimalizace má tvar: %%<mjax>\min f(x) \quad \text{za podmínek } x \in C</mjax>%%   
 +  * kde: 
 +    * \( f: \mathbb{R}^n \to \mathbb{R} \) je konvexní funkce, 
 +    * \( C \subseteq \mathbb{R}^n \) je konvexní množina (např. množina omezení). 
 + 
 +  * Důležité vlastnosti: 
 +    * Pokud je funkce i množina omezení konvexní ⇒ **každé lokální minimum je globální**. 
 +    * Existují efektivní algoritmy (např. metoda vnitřního bodu, subgradienty, CVX solvery). 
 + 
 +  * Typické aplikace: 
 +    * Optimalizace ztrátové funkce v machine learningu (ridge, LASSO), 
 +    * Portfolio management (mean-variance model), 
 +    * Řízení systémů a model prediktivního řízení (MPC), 
 +    * Design sítí, rozpočtové plánování. 
  
-===== Dualita v LP ===== 
  
-===== Konvexní funkce ====== 
Navigation

Playground

QR Code
QR Code statnice:bakalar:b0b33opt (generated for current page)