Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
statnice:bakalar:b0b33opt [2025/06/04 15:53] – zapleka3 | statnice: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:// | [[https:// | ||
Line 447: | Line 447: | ||
===== 5. Volné lokální extrémy diferencovatelných funkcí ===== | ===== 5. Volné lokální extrémy diferencovatelných funkcí ===== | ||
- | Zde hledáme | + | Zde hledáme |
- | ==== Podmínka 1. řádu | + | === Podmínka 1. řádu === |
Stacionární bod \( x^* \) je kandidát na extrém, pokud platí: | Stacionární bod \( x^* \) je kandidát na extrém, pokud platí: | ||
Line 455: | Line 455: | ||
<abbr title=" | <abbr title=" | ||
- | ==== Podmínka 2. řádu ==== | + | To znamená, že funkce nemá v tomto bodě žádný směr, kterým by mohla růst nebo klesat – ležíme v „rovnovážné poloze“. |
- | Pro rozhodnutí, | + | === Podmínka 2. řádu === |
- | V bodě \( x^* \) platí: | + | Pro rozhodnutí typu stacionárního bodu, zda jde o minimum, maximum nebo sedlový |
+ | | ||
+ | * Pokud je \( H \succeq 0 \), jde o minimum, které ale nemusí být ostré. | ||
+ | * Pokud je \( H \prec 0 \), máme ostré lokální maximum. | ||
+ | * Pokud je \( H \preceq 0 \), jde o maximum, které nemusí být ostré. | ||
+ | * Pokud je Hessova matice indefinitní, | ||
- | | Vlastnosti Hessovy matice | + | |
- | |----------------------------|----------------------------| | + | Tato klasifikace vychází z tvaru funkce v okolí bodu – pomocí křivosti poznáme, zda se funkce chová jako dno mísy, vrchol kopce nebo sedlo. |
- | | \( H \succ 0 \) | ostré minimum | + | |
- | | \( H \prec 0 \) | ostré maximum | + | |
- | | indefinitní | + | |
- | | semidefinitní | + | |
==== Numerické metody ==== | ==== Numerické metody ==== | ||
Line 472: | Line 473: | ||
Když analyticky nelze najít řešení, použijeme **iterační metody** – postupně se přibližujeme k optimu: | Když analyticky nelze najít řešení, použijeme **iterační metody** – postupně se přibližujeme k optimu: | ||
- | * **Gradientní metoda** – jdeme ve směru největšího poklesu: | + | * **Obecná iterace:** |
- | %%< | + | * Volíme počáteční bod \(x_0\), |
- | | + | |
+ | | ||
- | * **Newtonova metoda** – zohledňuje zakřivení funkce pomocí Hessovy matice: | + | * V každém kroku tedy jdeme směrem, který zaručeně zmenšuje hodnotu funkce – tím se přibližujeme k minimu. |
- | %%< | + | |
- | <abbr title=" | + | |
- | * **Gauss-Newtonova | + | * **Gradientní |
- | | + | * Směr je záporný gradient: |
+ | | ||
- | * **Levenberg-Marquardtova metoda** – kombinuje vlastnosti gradientní a Gauss-Newtonovy metody pro robustní chování. | + | * Jde o nejjednodušší metodu: jdeme „dolů z kopce“ po nejstrmější cestě, ale bez přizpůsobení křivosti terénu. |
+ | * **Newtonova metoda: | ||
+ | * Zohledňuje zakřivení funkce pomocí Hessovy matice: | ||
+ | * Rychlá (kvadratická) konvergence, | ||
+ | * Funguje dobře, pokud máme „dobrý start“ a funkce je pěkně zakřivená – jinak může selhat. | ||
+ | * **Gauss-Newtonova metoda: | ||
+ | * Vhodná pro funkce, které jsou kvadrátem vektorové funkce \( f(x) = \|g(x)\|_2^2 \) | ||
+ | * Iterace: | ||
+ | * kde \( J \) je Jacobiho matice funkce \( g(x) \) | ||
- | ===== Vázané extrémy pomocí Lagrangeových multiplikátorů ===== | + | * Gauss-Newton je zjednodušená verze Newtonovy metody, která používá jen první derivace. |
- | Pokud pro funkci \(f(x)\) hledáme extrém pod podmínkami | + | * **Levenberg-Marquardtova metoda: |
- | \[ | + | * Kombinuje robustnost gradientní metody s rychlostí Gauss-Newtonovy |
- | g_{i}(x)=0,\quad i=1,\dots,m, | + | * Iterace: |
- | \] | + | * Parametr \( \mu > 0 \) umožňuje plynule přecházet mezi oběma metodami |
- | postupujeme následovně: | + | |
- | **Lagrangeova funkce:** | + | |
- | + | ||
- | Definujeme | + | |
- | %%< | + | |
- | kde \(\lambda = (\lambda_{1},\dots, | + | |
- | **Nutné podmínky (stacionární body) na hladké části povrchu: | ||
- | Hledáme \((x^{*}, | ||
- | %%< | ||
- | <abbr title=" | ||
- | **Kontrola hranic domény (pokud je doména omezená nebo existují jiné ohraničení): | + | ===== 6. Lokální |
- | + | ||
- | Kromě vnitřních stacionárních bodů na povrchu \(\{g_i(x)=0\}\) je třeba zkontrolovat i body, kde povrch naráží na hranici původní množiny \(D\) (např. krajní body, rohy). V těchto bodech se gradient \(\nabla_{x}\mathcal{L}\) nemusí rovnat nule, ale mohou vzniknout | + | |
- | **Druhé řádové podmínky (určení typu extrému) na povrchu: | + | Pokud hledáme extrém |
- | + | ||
- | Označme Hessian Lagrangeovy | + | |
- | %%< | + | |
- | Pro každý kandidátní bod \(x^{*}\) (splňující | + | |
- | | + | |
- | | + | |
- | * Jinak je \(x^{*}\) sedlovým bodem na povrchu definovaném omezeními. | + | |
- | <abbr title=" | + | |
- | **Výběr globálního extrému na omezeném prostoru:** | + | Taková úloha má tvar: |
- | + | %%< | |
- | Z nalezených stacionárních bodů \(x^{*}\) (na povrchu a případně na hranici domény) vybereme ty, které splňují druhé řádové podmínky pro požadovaný typ (minimum nebo maximum) a porovnáme jejich hodnoty | + | |
- | + | ||
- | ===== Úloha lineárního programování (LP) ===== | + | |
- | Lineární programování (LP) je optimalizační disciplína, ve které | + | Tyto rovnosti určují množinu povolených řešení – tzv. **povrch**. Extrém hledáme **na tomto povrchu**, tedy jen mezi body, které |
+ | |||
+ | === Podmínka prvního řádu – Lagrangeovy multiplikátory === | ||
+ | |||
+ | Podmínky řešíme pomocí **Lagrangeovy funkce**: | ||
+ | %%< | ||
+ | <abbr title=" | ||
+ | |||
+ | Bod \( x^* \in \mathbb{R}^n \) je kandidátem na extrém, pokud existuje vektor multiplikátorů \( \lambda = (\lambda_1, | ||
+ | |||
+ | * %%< | ||
+ | * %%< | ||
+ | |||
+ | Tato podmínka říká, že v bodě \( x^* \) je gradient funkce \( f \) lineární | ||
+ | |||
+ | Jinými slovy: v optimu se nelze „vydat směrem“ uvnitř množiny bez toho, aby se zvyšovala hodnota funkce. | ||
+ | |||
+ | === Geometrická interpretace === | ||
+ | |||
+ | Tečný prostor k množině \( \{x \mid g(x) = 0\} \) v bodě \( x^* \) je tvořen vektory \( v \), pro které platí: %%< | ||
+ | – tedy množinou vektorů kolmých na gradienty omezení. | ||
+ | |||
+ | Gradient funkce \( f \) musí ležet ve směru normály, tj. být kombinací \(\nabla g_i\). | ||
+ | |||
+ | === Druhý řád – určení typu extrému === | ||
+ | |||
+ | Hessovu matici Lagrangeovy funkce vzhledem k \( x \) označme: | ||
+ | %%< | ||
+ | |||
+ | Pro rozhodnutí o typu extrému: | ||
+ | * Zkoumáme **zrestrikovaný Hessian** na tečný prostor množiny \( \{g_i(x)=0\} \), | ||
+ | * Pokud je pozitivně definitní, jde o **lokální minimum**, | ||
+ | * Pokud negativně definitní, jde o **lokální maximum**, | ||
+ | * Pokud není ani jedno – **sedlový bod**. | ||
+ | |||
+ | === Kontrola hranic množiny === | ||
+ | |||
+ | Pokud množina \( D \), na které optimalizujeme, | ||
+ | |||
+ | To zahrnuje: | ||
+ | * krajní body množiny, | ||
+ | * místa, kde se gradienty omezení stávají lineárně závislými, | ||
+ | * a další situace, kdy už neplatí standardní podmínky. | ||
+ | |||
+ | === Postup === | ||
+ | |||
+ | - Sestavíme Lagrangeovu funkci \( \mathcal{L}(x,\lambda) = f(x) + \lambda^T g(x) \). | ||
+ | - Najdeme kandidátní body \( (x^*, \lambda^*) \), které | ||
+ | * \( \nabla_x \mathcal{L}(x^*, | ||
+ | * \( g_i(x^*) = 0 \) | ||
+ | - Zkontrolujeme druhý řád – restrikci Hessovy matice. | ||
+ | - Pokud je doména omezená, zkontrolujeme i hraniční body. | ||
+ | - Vybereme bod s nejlepší hodnotou \( f(x^*) \). | ||
+ | |||
+ | === Aplikace === | ||
+ | |||
+ | Lagrangeovy multiplikátory umožňují řešit mnoho praktických úloh: | ||
+ | * minimalizace nákladů při daných zdrojích, | ||
+ | * optimalizace návrhů pod strukturálními podmínkami, | ||
+ | * nalezení extrému na parametrické křivce | ||
+ | * ekonomické rovnováhy s rozpočtovým omezením. | ||
+ | |||
+ | ===== 7. Úloha lineárního programování (LP) ===== | ||
+ | |||
+ | 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ř. zisku, výkonu) za omezených podmínek (rozpočet, kapacita, suroviny apod.) | ||
=== Úvod k teorii lineárního programování, | === Úvod k teorii lineárního programování, | ||
Lineární programování (LP) pracuje s lineární cílovou funkcí | Lineární programování (LP) pracuje s lineární cílovou funkcí | ||
- | %%< | + | %%< |
- | a konvexním polyedrem definovaným lineárními omezeními (rovnicemi či nerovnicemi). | + | 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 | + | * soubor |
- | %%< | + | |
- | tvoří konvexní množinu (polyedr). Každý takový polyedr lze popsat buď jako průnik poloprostorů, | + | * = Řešení soustavy omezení \( A x \le b \) tvoří konvexní oblast v prostoru. |
- | * **Vrcholy (extermální body)** | + | * **Vrcholy (extermální body)** |
- | | + | * vrcholem |
- | | + | |
+ | * = 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 |
- | %%< | + | |
- | 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 %%< |
- | %%< | + | |
- | pak každá konvexní kombinace | + | |
- | %%< | + | * = 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 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 570: | 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** |
- | | + | |
- | %%< | + | |
- | 2. **Vyjádření neomezených reálných proměnných** | + | 2. **Vyjádření neomezených reálných proměnných** |
- | | + | |
- | %%< | + | |
+ | |||
+ | ==== Varianty zadání ==== | ||
- | === Převod LP do kanonického tvaru (struč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: %%< | ||
+ | |||
+ | * **Rovnosti a nerovnosti: | ||
+ | * Rovnost převedeme na dvě opačné nerovnosti: %%< | ||
+ | |||
+ | * **Proměnné bez znaménka: | ||
+ | * Volná proměnná se nahradí rozdílem dvou nezáporných: | ||
+ | |||
+ | * **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é: %%< | ||
+ | |||
+ | Tím dostaneme **kanonický tvar LP** – s rovnicemi a nezápornými proměnnými, | ||
+ | |||
+ | ==== Převod LP do kanonického tvaru ==== | ||
**Původní úloha (max): | **Původní úloha (max): | ||
Line 604: | 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, | + | |
- | === 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í |
- | 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 | + | |
- | === 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ů. |
- | %%< | + | * Omezující podmínky mohou být kapacity strojů, pracovní doba, množství surovin apod. |
- | \min_{x\in\mathbb{R}^{n}} \, | + | * **Směrování a toky v síti** |
- | \; | + | * Minimalizace nákladů na přepravu v dopravní síti. |
- | </ | + | * Omezení tvoří kapacity hran a požadavky na vstup/ |
- | Formulujeme ekvivalentně: | + | * **Transportní a přiřazovací problémy** |
- | %%< | + | * Např. optimální distribuce zboží ze skladů do prodejen. |
- | \min_{x, | + | * 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}\; | + | * Hledání nejlevnější kombinace potravin splňující výživové normy. |
- | </ | + | * 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é, | ||
+ | |||
+ | ==== 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): | ||
+ | * %%< | ||
+ | |||
+ | * **∞-norma (maximální odchylka): | ||
+ | * %%< | ||
+ | |||
+ | 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) == | ||
+ | | ||
+ | | ||
| | ||
Výsledkem je LP v proměnných \((x_1, | Výsledkem je LP v proměnných \((x_1, | ||
- | === L₁-norm (taxicab-norma) | + | == L₁-norm (taxicab-norma) == |
- | Chceme minimalizovat součet absolutních odchylek: | + | |
- | %%< | + | |
- | \min_{x\in\mathbb{R}^{n}} \, | + | |
- | \; | + | |
- | </ | + | |
- | Formulujeme ekvivalentně: | + | |
- | %%< | + | |
- | \min_{x, | + | |
- | \quad\text{za podmínek}\quad | + | |
- | -\,u_{i} \;\le\; a_{i}^{T}x - b_{i}\; | + | |
- | u_{i}\; | + | |
- | </ | + | |
- | 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 739: | 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 %%< |
- | %%< | + | |
- | 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 | + | * Všechny vrcholy |
- | - **výhoda:** pro malé problémy | + | |
- | | + | * Vyhodnotíme hodnotu cílové funkce \(c^T x\) ve všech vrcholech a zvolíme nejlepší. |
+ | * **Výhoda: | ||
+ | * **Nevýhoda: | ||
* **Simplexová metoda (pohyb po hranách polyedru)** | * **Simplexová metoda (pohyb po hranách polyedru)** | ||
- | | + | * Nehledáme všechny vrcholy – postupně se přesouváme z jednoho vrcholu k sousednímu, |
- | | + | * V každém kroku vybíráme bázové proměnné a aktualizujeme tzv. simplexovou tabulku. |
- | | + | * Algoritmus konverguje k optimu v konečně mnoha krocích, pokud nenastane degenerace. |
- | - **Nevýhoda:** Může se zacyklit | + | * **Výhoda: |
+ | * **Nevýhoda: | ||
+ | |||
+ | ===== 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í**, | ||
+ | |||
+ | * Ekvivalentně: | ||
+ | |||
+ | * Konvexní množiny jsou důležité, | ||
+ | * 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ů, | ||
+ | |||
+ | * 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: %%< | ||
+ | |||
+ | * 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 | ||
+ | * Tato stěna je průnik s tzv. **opěrnou nadrovinou**: | ||
+ | |||
+ | |||
+ | ===== 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: %%< | ||
+ | |||
+ | K ní přísluší duální úloha: %%< | ||
+ | * 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í: %%< | ||
+ | * Duální hodnota je tedy **dolní mez** primalu. | ||
+ | |||
+ | * Pokud se stane, že: %%< | ||
+ | * 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í**, | ||
+ | * druhá úloha má také řešení, | ||
+ | * a platí: %%< | ||
+ | |||
+ | * 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 ==== | ||
+ | |||
+ | | ||
+ | * Jsou splněny právě tehdy, když jsou obě řešení | ||
+ | * Pro každé \(i\): %%< | ||
+ | * Pro každé \(j\): %%< | ||
+ | * Obecně: %%< | ||
+ | |||
+ | * Jinými slovy: **každá podmínka buď svazuje | ||
+ | |||
+ | ==== Význam a využití ==== | ||
+ | * Dualita v LP umožňuje: | ||
+ | * jednodušší konstrukci algoritmů (např. dual simplex), | ||
+ | * odhad kvality řešení primalu pomocí dualu (dolní/ | ||
+ | * 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šší, | ||
+ | |||
+ | ==== Definice konvexní funkce ==== | ||
+ | |||
+ | * Funkce \( f: \mathbb{R}^n \to \mathbb{R} \) je **konvexní**, | ||
+ | |||
+ | * Funkce je **striktně konvexní**, | ||
+ | |||
+ | * Konvexita znamená, že graf funkce je „ohnutý směrem nahoru“. | ||
+ | |||
+ | ==== Epigraf a subkontura ==== | ||
+ | |||
+ | | ||
+ | |||
+ | | ||
+ | |||
+ | ==== Podmínky konvexity podle derivací ==== | ||
+ | |||
+ | Pokud je \(f\) diferencovatelná: | ||
+ | |||
+ | | ||
+ | |||
+ | Pokud je \(f\) dvakrát diferencovatelná: | ||
+ | |||
+ | | ||
+ | |||
+ | ==== Úloha konvexní optimalizace ==== | ||
+ | |||
+ | * Obecná úloha konvexní optimalizace má tvar: %%< | ||
+ | * 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, | ||
+ | |||
+ | * 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 ====== |