===== Optimalizace (LS 2025-26) =====
**Rychlé odkazy**:
[[courses:b0b33opt:cviceni:start|cvičení]],
[[https://cw.felk.cvut.cz/brute/|Brute]],
[[https://intranet.fel.cvut.cz/cz/education/rozvrhy-ng.B252/public/html/predmety/46/74/p4674306.html|rozvrh]],
[[https://cw.felk.cvut.cz/forum/forum-1957.html|diskusní fórum]],
[[https://intranet.fel.cvut.cz/cz/education/harmonogram.html|časový plán ak. roku]]
==== Obsah a prerekvizity ====
//Matematická optimalizace// (též známá jako //matematické programování//) se zabývá minimalizací či maximalizací funkcí mnoha proměnných za případných omezujících podmínek.
V inženýrské praxi vzniká mnoho takových úloh - často je třeba dělat něco nejlépe v rámci daných omezení.
Optimalizace je fascinující a dynamický obor na pomezí matematické analýzy, lineární algebry a informatiky.
Zužitkujete zde mnoho teoretických znalostí a dovedností, které jste se naučili dříve.
Kurz vás provede základními principy a metodami optimalizace, včetně úlohy nejmenších čtverců, lineárního programování, nelineárního programování a numerických iteračních metod.
Na praktických příkladech uvidíte, jak lze tyto koncepty využít k řešení reálných problémů, které se mohou objevit v průmyslu, vědě nebo každodenním životě.
//Prerekvizity//: lineární algebra, matematická analýza, základy programování (Matlab nebo Python)
==== Přednášky ====
* Přednášejí [[https://cmp.felk.cvut.cz/~werner|Tomáš Werner]] (garant), [[https://cmp.felk.cvut.cz/~navara|Mirko Navara]], [[https://petr.olsak.net|Petr Olšák]].
* {{opt.pdf|Skripta}}, {{opt-2up.pdf|oboustranná verze}} pro tisk, {{errata.pdf|errata}}. Viz také {{opt-sbirka.pdf|sbírka řešení}} většiny cvičení (kapitoly 6 a 7 nejsou aktuální, budou brzy).
* Dále studujte z [[literatura|doplňující literatury]].
* Stream [[https://www.youtube.com/playlist?list=PLQL6z4JeTTQkNm0WTeZvtaMRZiNlbiN6u|KN:E-107]] (Přednášky PO se nestreamují ani nenahrávají, použijte záznamy z minulých let)
* Záznamy přednášek: [[https://www.youtube.com/playlist?list=PLQL6z4JeTTQmEKigH3KGYkY5qbllzBCKR|tento semestr]] (objeví se obvykle do 48 hodin po přednášce)
^č.^ Datum ^ Náplň ^ Přednáší ^ Materiály ^
| 1| st 18.02. | Úvod do optimalizace | TW | {{01Intro.pdf}} |
| 2| pá 20.02. | Matice, Lineární podprostory | PO | {{slidy-02.pdf}} |
| 3| st 25.02. | Afinní podprostory, ortogonalita | PO | {{slidy-03.pdf}} |
| 4| pá 27.02. | Ortogonální projekce, QR rozklad | PO | {{slidy-04.pdf}} |
| 5| st 04.03. | Metoda nejmenších čtverců | PO | {{slidy-05.pdf}} |
| 6| pá 06.03. | Aplikace nejm. čtverců | PO | {{ls.pdf|selected slides}} from [[http://www.seas.ucla.edu/~vandenbe/ee133a.html|EE133A (UCLA)]] a [[https://ee263.stanford.edu/archive/|EE263 Stanford]] |
| 7| st 11.03. | Kvadratické formy a funkce | TW | {{04Kvadr.pdf}} |
| 8| pá 13.03. | Spektrální rozklad sym. matice | TW | {{05PCA.pdf}} |
| 9| st 18.03. | PCA | TW |
|10| pá 20.03. | SVD | TW |
|11| st 25.03. | **První test** |
|12| pá 27.03. | Derivace | MN | {{Funkce.pdf}} |
/*
| 13| st 01.04. | Volné lokální extrémy | MN | {{07Metody.pdf}} |
| 14| st 08.04. | Iterační metody na volné lok. extrémy | MN |
| 15| pá 10.04. | Nelin. úloha nejmenších čtverců. Aplikace | MN | {{nlls.pdf|selected slides}} from Stanford |
| 16| st 15.04. | Vázané lok. extrémy | MN | {{08Lagrange.pdf}}, {{ls-control.pdf|selected slides}} from Stanford |
| 17| pá 17.04. | Vázané lok. extrémy | MN |
| 18| st 22.04. | LP: úvod | TW\\ (v KN:A-214) | {{09LP.pdf}} |
| 19| pá 24.04. | LP: použití | TW\\ (v KN:A-214) |
| 20| st 29.04. | **Druhý test** |
| 21| čt 30.04. | Konvexní množiny a mnohostěny | TW | {{10Poly.pdf}} |
| 22| út 05.05. | Dualita v LP | TW | {{11Dual.pdf}} |
| 23| st 06.05. | Dualita v LP: příklady | TW |
| 24| pá 15.05. | Konvexní funkce a optimalizace | TW | {{12Konv.pdf}} |
| 25| st 20.05. | Konvexní funkce a optimalizace | TW |
| 26| pá 22.05. | Lagrangeova dualita (nezkouší se) | TW | {{13LagrDual.pdf}} |
*/
==== Kvízy ====
Během semestru vám zadáme 10 krátkých online kvízů, jejichž cílem je zopakovat si odpřednášenou látku.
Odkaz na nově otevřený kvíz a termín jeho vyplnění se vždy objeví v Brute.
Na začátku semestru je navíc nultý kvíz, který je cvičný a do hodnocení se nezapočítává.
Každý kvíz je možno libovolněkrát opakovat (pro opakování je v Brute potřeba se vrátit na výpis a kliknout znovu na kvíz). Kdo kvíz bezchybně vyplní do daného termínu, dostane za něj 1 bod. Kdo ho vyplní po termínu nebo nevyplní, dostane 0 bodů. Vyplnění kvízů není podmínkou zápočtu.
==== Domácí úlohy ====
Během semestru dostanete několik domácích úloh. Vaším úkolem bude úlohu naprogramovat v Matlabu (čtěte [[https://cw.fel.cvut.cz/b222/courses/b0b33opt/cviceni/matlab/start|Matlab v OPT]]) nebo Pythonu a odevzdat fungující kód. V odevzdaném kódu smíte použít jen základní funkce (pro Matlab [[https://cw.fel.cvut.cz/b222/courses/b0b33opt/cviceni/matlab/commands|vyjmenované zde]]).
Odkaz na nově zadanou domácí úlohu a termín odevzdání se vždy objeví v Brute.
Kód je nutno odevzdat do Brute, přičemž:
* Fungující a včas odevzdaná úloha se hodnotí 1 bodem.
* Pozdní odevzdání úlohy se penalizuje pokutou 0.001 bodu za každou započatou hodinu zpoždění, nejvíce však 1 bod.
* Kdo úlohu odevzdá ale ohodnotíme mu ji 0 body (tedy jako nevyhovující), musí ji opravit a odevzdat znovu.
Body z domácích úloh jsou na konci semestru normalizovány tak, aby celkový maximální počet byl 10 bodů.
Dotazy ohledně domácích úloh pište, prosíme, na diskuzní fórum.
**Pozn. o plagiátorství:**
Při řešení domácích úloh je zakázáno: přebírat řešení (kód nebo text) od jiných studentů (z letošního i minulých let) nebo z webu, poskytovat je jiným studentům, dávat je kamkoliv na web. Nezakazujeme vám se o úlohách spolu bavit (naopak to doporučujeme!) - bavte se ale jen o matematice, ne o kódu.
Důkaz plagiátorství je už to, že nebudete schopni vysvětlit, jak váš kód funguje.
Odhalení plagiátu má za následek neudělení zápočtu, opakované případy mohou vést k disciplinárnímu řízení.
Viz [[https://cw.fel.cvut.cz/wiki/help/common/plagiaty_opisovani|obecná pravidla]].
==== Semestrální testy ====
Během semestru si napíšete dva testy, a to na přednáškách ve dnech **25.3. a 29.4.**.
Každý test obsahuje příklady na látku odpřednášenou a odcvičenou do té doby.
Z každého testu dostanete max. 15 bodů. Hodnocení testu po opravení najdete v Brute.
U testu můžete používat jako tahák jednu stranu A4 s ručně psanými poznámkami (pouze originál, ne výtisk scanu či výstupu z tabletu).
Kalkulačka je povolena, jiná elektronnika nikoliv.
Prosíme, přineste si průkaz totožnosti, a také vlastní čisté papíry, na které budete psát nanečisto.
Kdo se nemůže testu zúčastnit (z vážných důvodů, typicky nemoc), může absolvovat náhradní test (datum bude ohlášeno).
V tom případě napište přednášejícímu email s důvodem absence (a to včas, ať vám to stihne schválit). Náhradní test neumožňuje zlepšit si špatně napsaný test, ale pouze nahradit absenci na testu.
Náhradní test je pouze jeden a jeho téma je látka z celého semestru.
**Testy nepodceňte**, neboť opravit si zkažený test není možné a hrozí Vám nezískání zápočtu.
Příklady testů (vč. řešení) z minulého semestru: {{test1.pdf|test1}}, {{test2.pdf|test2}}
Řešení prvního testu: {{test1-2026.pdf|test1}}
==== Podmínky zápočtu ====
* Celkový počet bodů z obou semestrálních testů minimálně 7.5 bodu (tj. 1/4 z celkově možných 30 bodů).
* Odevzdané a fungující všechny domácí úlohy. Kdo odevzdá poslední fungující domácí úlohu až po zápočtovém týdnu, prosím požádejte svého cvičícího o zápočet emailem.
Zápočet udělený v některém z předchozích semestrů uznáme. Automaticky se tím uznávají i body dosažené za práci v proběhlém semestru, tj. součet bodů za kvízy, přípravy, domácí úlohy a semestrální testy. Ovšem pokud jste navzdory snaze neudělali zkoušku, doporučujeme chodit znovu na cvičení.
==== Zkouška ====
Zkouška je písemná.
Nutnou podmínkou účasti na zkoušce je zápočet.
Zkouška má podobnou formu jako semestrální testy, ale je delší a obtížnější.
U zkoušky můžete mít dvě strany (tj. jeden list) A4 s ručně psanými poznámkami (pouze originál, ne výtisk scanu či výstupu z tabletu).
Způsob hodnocení písemky bude oznámen.
/*
Pokud na nějakém zkouškovém termínu dosáhnete 20 bodů nebo více, ale cítíte se na víc, můžete si nechat termín anulovat (nepřijdete o něj) a zkusit napsat písemku lépe na pozdějším termínu (napište v tom případě email). Ale pozor: počítá se pouze poslední termín (i když to bude méně než 20 bodů).
*/
(**Pozn.** Pokud máte během zkouškového období státnice a chcete zkoušku složit před nimi, napište email přednášejícímu hned jak se dozvíte datum státnic. I když to není naše povinnost, pokusíme se k tomu přihlédnout při plánování zkouškových termínů.)
/*
Zadání a řešení zkoušek:
zk1 {{zk1.pdf|příklady}} a {{zk1-kviz.pdf|kvíz}},
zk2 {{zk2-prik.pdf|příklady}} a {{zk2-kviz.pdf|kvíz}},
zk3 {{zk3-prik.pdf|příklady}} a {{zk3-kviz.pdf|kvíz}},
zk4 {{zk4-prik.pdf|příklady}} a {{zk4-kviz.pdf|kvíz}}
*/
==== Hodnocení ====
^ Kvízy | 10 bodů |
^ Přípravy na cvičení | 10 bodů |
^ Domácí úlohy | 10 bodů |
^ Semestrální testy | 30 bodů |
^ Zkoušková písemka | 40 bodů |
^ CELKEM | 100 bodů |
Nutnou podmínkou pro známku lepší než F je nejméně polovina (tj. 20) bodů ze zkouškové písemky.
Výsledná známka se pak obvykle určí takto:
^ Body | [0,50) | [50,60) | [60,70) | [70,80) | [80,90) | [90,100] |
^ Známka | F | E | D | C | B | A |
==== Dotazy, konzultace ====
Dotazy ke cvičením, domácím úlohám a kvízům směřujte na svého cvičícího,
Dotazy k testům a organizaci na garanta.
Pokud látku nechápete, nabízíme konzultace. Obraťte se nejprve na svého cvičícího nebo na přednášejícího po středeční odpolední.