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:17] – [Optimální proložení bodů podprostorem (PCA)] 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 390: | Line 390: | ||
- | --------------- | + | ===== 4. Globální a lokální extrémy funkce na podmnožině ℝⁿ ===== |
+ | Extrémy mohou být: | ||
+ | * **volné**, tj. hledáme optimum na celé \(\mathbb{R}^n\), | ||
+ | * nebo **vázané**, | ||
- | **Motivace: | + | V praxi často |
- | PCA lze chápat dvojím způsobem: | + | ==== Definice ==== |
- | **1. Minimální vzdálenost od podprostoru: | + | Mějme funkci |
- | + | ||
- | Hledáme ortonormální matici | + | |
- | %%< | + | |
- | <abbr title=" | + | |
- | **2. Maximální zachycený rozptyl | + | |
+ | | ||
+ | * **Globální minimum** (na \(D\)): | ||
+ | * **Globální maximum**: | ||
- | Volíme \(X\) tak, aby projekce dat na podprostor měla co největší celkový rozptyl, tj. | + | Lokální extrém je jen „nejlepší v okolí“, zatímco globální je nejlepší **v celé množině**. |
- | %%< | + | |
- | = \max_{X^{T}X=I}\|X^{T}A\|_{F}^{2} | + | |
- | = \max_{X^{T}X=I}\mathrm{tr}\bigl(X^{T}A A^{T}X\bigr)</ | + | |
- | <abbr title=" | + | |
- | === Funkce stopa (trace) | + | ==== Kdy je extrém globální ==== |
- | Stopa matice \(A\in\mathbb{R}^{n\times n}\) je součet jejích diagonálních prvků: | + | Pokud je funkce **konvexní**, |
- | %%< | + | Tato vlastnost je velmi důležitá v optimalizaci – nemusíme hledat celé globální optimum, stačí najít lokální |
- | <abbr title=" | + | |
- | === Výpočet PCA (kuchařka) s příkladem | + | ==== Hledání extrémů |
- | 1. Spočtěte matici kovariancí | + | |
- | %%< | + | |
- | + | ||
- | 2. Najděte spektrální rozklad | + | |
- | %%< | + | |
- | 3. Rozdělte ortonormální bázi \(V = [\,X\mid Y\,]\) | + | Najít extrém neznamená jen najít hodnotu funkce, ale určit i bod, kde se nachází, a typ extrému. |
- | + | ||
- | 4. Projekce dat na \(k\)-rozměrný podprostor: | + | |
- | %%< | + | |
- | + | ||
- | 5. Chyba proložení: | + | |
- | %%< | + | |
- | **Příklad pro** | + | |
- | %%< | + | |
- | - %%< | + | |
- | - Eigen: %%< | + | |
- | - %%< | + | |
- | = \tfrac12\begin{pmatrix}1& | + | |
- | = \begin{pmatrix}1.5& | + | |
- | - Chyba proložení: %%< | + | |
- | * **Interpretace: | + | ==== Příklady ==== |
- | === Singulární rozklad matice | + | 1. **Volný extrém: |
+ | * Např. funkce %%< | ||
+ | * má globální minimum v bodě %%< | ||
+ | * Jde o tvar trychtýře – minimum je ve středu a zároveň lokální i globální. | ||
- | **Definice:** Pro libovolnou matici \(A\in\mathbb{R}^{m\times n}\) existují ortogonální matice | + | 2. **Vázaný extrém:** |
- | \(U\in\mathbb{R}^{m\times m}\), \(V\in\mathbb{R}^{n\times n}\) a diagonální matice | + | * Minimalizujeme %%< |
- | \(\Sigma\in\mathbb{R}^{m\times n}\) se singulárními čísly | + | |
- | \(s_{1}\ge s_{2}\ge\cdots\ge s_{p}\ge0\) \((p=\min\{m, | + | * Extrém se hledá pouze na přímce, ne na celé rovině. |
- | že | + | |
- | %%< | + | |
- | <abbr title=" | + | |
- | **Výpočet SVD:** | + | Takové úlohy se řeší metodou |
- | 1. Spočtěte matice | + | ==== Dělení extrémů podle kontextu ==== |
- | %%< | + | |
- | <abbr title="S je diagonální matice s_i^2, vlastní čísla AAᵀ a AᵀA"> | + | |
- | 2. Sloupce U jsou vlastní vektory matice \(AA^{T}\), sloupce V vlastní vektory \(A^{T}A\). | + | | Typ extrému |
- | + | |---------------|--------------------|-------------------------| | |
- | 3. Singulární čísla \(s_{i}=\sqrt{S_{ii}}\). | + | | Volný |
- | + | | Vázaný | |
- | ==Eckart–Youngova | + | | Globální |
+ | | Lokální | ||
- | Nechť \(A\in\mathbb{R}^{m\times n}\), \(p=\min\{m, | + | ===== 5. Volné lokální extrémy diferencovatelných funkcí ===== |
- | %%< | + | |
- | je matice | + | |
- | %%< | + | |
- | B^{*} | + | |
- | = U\, | + | |
- | = \sum_{i=1}^{k} s_{i}\, | + | |
- | </ | + | |
- | kde | + | Zde hledáme extrémy hladkých funkcí |
- | %%< | + | |
- | S_{k} | + | |
- | = \mathrm{diag}(s_{1},\dots,s_{k},0,\dots,0)\in\mathbb{R}^{p\times p} | + | |
- | </ | + | |
- | **Aplikace SVD: | + | === Podmínka 1. řádu === |
- | * Data-redukce, | + | |
- | * Řešení nesingulárních či přeurčených soustav | + | |
- | * Komprese obrázků (low-rank aproximace) | + | |
- | * Výpočet pseudoinverzí a regularizace | + | |
- | ===== Globální a lokální extrémy funkce na podmnožině ℝⁿ ===== | + | Stacionární bod \( x^* \) je kandidát na extrém, pokud platí: |
+ | %%< | ||
+ | <abbr title=" | ||
- | Nechť \(f: D \subseteq \mathbb{R}^{n} \to \mathbb{R}\), kde \(D\) je podmnožina ℝⁿ. | + | 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“. |
- | === Definice globálních a lokálních extrémů | + | === Podmínka 2. řádu |
- | * **Globální minimum**: | + | |
- | bod \(x^{*}\in D\) je globální | + | Pro rozhodnutí typu stacionárního bodu, zda jde o minimum, maximum nebo sedlový |
- | %%< | + | |
- | * **Globální maximum**: | + | * Pokud je \( H \succeq 0 \), jde o minimum, |
+ | * 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í, | ||
- | bod \(x^{*}\in D\) je globální maximum, pokud | ||
- | %%< | ||
- | * **Lokální minimum**: | ||
- | bod \(x^{*}\in D\) je lokální minimum, pokud existuje otevřené okolí \(U \subset D\) takové, že | + | 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. |
- | %%< | + | |
- | * **Lokální maximum**: | + | |
- | bod \(x^{*}\in D\) je lokální maximum, pokud existuje otevřené okolí \(U \subset D\) takové, že | + | ==== Numerické metody ==== |
- | %%< | + | |
- | Pokud je \(f\) konvexní na celém oboru \(D\), pak lokální minimum je zároveň globálním minimem; obdobně pokud je \(f\) konkávní, pak lokální maximum je globálním maximem. | + | Když analyticky nelze najít řešení, použijeme **iterační metody** – postupně se přibližujeme k optimu: |
- | Pro nalezení lok min a max použijeme Hessovu matici a nulové první derivace. | + | * **Obecná iterace: |
- | + | * Volíme počáteční bod \(x_0\), směr \(v_k\) | |
- | ===== Vázané extrémy pomocí Lagrangeových multiplikátorů ===== | + | * Iterace: |
+ | * Směr \(v_k\) je **sestupný**, | ||
- | Pokud pro funkci \(f(x)\) hledáme extrém pod podmínkami | + | * V každém kroku tedy jdeme směrem, který zaručeně zmenšuje hodnotu funkce – tím se přibližujeme k minimu. |
- | \[ | + | |
- | g_{i}(x)=0, | + | |
- | \] | + | |
- | postupujeme následovně: | + | |
- | **Lagrangeova funkce:** | + | |
- | + | * Směr je záporný gradient: | |
- | Definujeme | + | * Jednoduchá, ale může **konvergovat pomalu** nebo klesat příliš „cikcak“ → závisí na volbě kroku. |
- | %%< | + | |
- | kde \(\lambda = (\lambda_{1},\dots, | + | |
- | **Nutné podmínky (stacionární body) na hladké části povrchu:** | + | |
- | Hledáme \((x^{*},\lambda^{*})\) tak, aby | + | * **Newtonova metoda:** |
- | %%< | + | * Zohledňuje zakřivení funkce pomocí Hessovy matice: |
- | <abbr title=" | + | * Rychlá (kvadratická) konvergence, |
- | **Kontrola hranic domény (pokud je doména omezená nebo existují jiné ohraničení): | + | |
- | + | ||
- | 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 | + | |
- | **Druhé řádové podmínky (určení typu extrému) na povrchu:** | + | |
- | + | * Vhodná pro funkce, které jsou kvadrátem vektorové | |
- | Označme Hessian Lagrangeovy | + | * Iterace: |
- | %%< | + | * kde \( J \) je Jacobiho matice funkce |
- | Pro každý kandidátní bod \(x^{*}\) (splňující \(g_i(x^{*})=0\) a případně ležící na hranici domény) zkontrolujeme definitnost zrestrikovaného Hessianu \(H(x^{*},\lambda^{*})\) na podprostoru tangentu k množině \(\{g_{i}(x)=0\}\): | + | |
- | * Pokud je zrestrikovaný Hessian pozitivně definitní, pak \(x^{*}\) je lokální minimum. | + | |
- | * Pokud je zrestrikovaný Hessian negativně definitní, pak \(x^{*}\) je lokální maximum. | + | |
- | * 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:** | + | |
- | + | ||
- | | + | |
- | + | * Kombinuje robustnost gradientní metody s rychlostí Gauss-Newtonovy | |
- | ===== Úloha lineárního programování (LP) ===== | + | * Iterace: |
+ | * Parametr \( \mu > 0 \) umožňuje plynule | ||
+ | |||
+ | * Pokud Gauss-Newton selhává, přidáme regularizační člen \( \mu I \), čímž omezíme „skoky“ v citlivých oblastech – metoda se chová stabilněji. | ||
+ | |||
+ | |||
+ | |||
+ | ===== 6. Lokální extrémy diferencovatelných funkcí vázané rovnostmi ===== | ||
+ | |||
+ | Pokud hledáme extrém funkce \( f(x) \) za podmínky, že proměnné \( x \in \mathbb{R}^n \) musí splňovat rovnosti \( g_i(x) = 0 \), musíme vzít v úvahu nejen chování samotné funkce, ale i **omezení**, | ||
+ | |||
+ | Taková úloha má tvar: | ||
+ | %%< | ||
+ | |||
+ | Tyto rovnosti určují množinu povolených řešení – tzv. **povrch**. Extrém hledáme **na tomto povrchu**, tedy jen mezi body, které splňují dané podmínky. | ||
+ | |||
+ | === 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í kombinací gradientů omezení \( g_i \) – tedy **ležící v ortogonálním doplňku tečného prostoru**. | ||
+ | |||
+ | 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** | ||
+ | * 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, | ||
+ | | ||
+ | * a další situace, kdy už neplatí standardní podmínky. | ||
+ | |||
+ | === Postup | ||
+ | |||
+ | - Sestavíme Lagrangeovu funkci \( \mathcal{L}(x, | ||
+ | - Najdeme kandidátní body \( (x^*, \lambda^*) \), které splňují: | ||
+ | * \( \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 nebo ploše, | ||
+ | * ekonomické rovnováhy s rozpočtovým omezením. | ||
+ | |||
+ | ===== 7. Úloha lineárního programování (LP) ===== | ||
- | Lineární programování (LP) je optimalizační disciplína, | + | Lineární programování (LP) je metoda pro **optimalizaci lineární funkce** při **lineárních omezeních**. Typicky |
=== Ú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 595: | 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** (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: | ||
+ | |||
+ | |||
+ | ==== 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: %%< | ||
+ | |||
+ | * **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é: %%< | ||
- | 2. **Vyjádření neomezených reálných proměnných** | + | Tím dostaneme |
- | | + | |
- | %%< | + | |
- | === 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 629: | 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 764: | 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 ====== |