Logo ČVUT
ČESKÉ VYSOKÉ UČENÍ TECHNICKÉ V PRAZE
STUDIJNÍ PLÁNY
2024/2025

Operační výzkum a lineární programování

Předmět není vypsán Nerozvrhuje se
Kód Zakončení Kredity Rozsah Jazyk výuky
BI-ORL KZ 5 1P+2C česky
Garant předmětu:
Přednášející:
Cvičící:
Předmět zajišťuje:
katedra teoretické informatiky
Anotace:

Předmět si klade za cíl uvést studenty do problematiky operačního výzkumu a primárně praktickému použití lineárního programování jako základní techniky optimalizace. Operační výzkum se primárně soustředí na používání inženýrských metod (s matematickým pozadím) na řešení problémů z praxe (například managementu).

Požadavky:

Předpokládáme, že student ovládá základní znalosti algoritmizace (které si mohl osvojit například v předmětech BI-PA1, BI-PA2, BI-AG1).

Osnova přednášek:

Úloha lineárního programování a její řešení

Zavedeme a motivujeme lineární programy ve standardním tvaru. Předvedeme několik základních příkladů. Na příkladech demonstrujeme geometrii lineárního programování a simplexový algoritmus (bez důkazu korektnosti). Náznak nelineárně specifikované množiny vedoucí na nerozhodnutelný problém (Matiyasevich-ova věta).

(CV) Formulace úloh LP a jejich řešení

Dualita lineárního programování

Na příkladu zavedeme duální lineární program. Dokážeme slabou větu o dualitě. Demonstrujeme užití podmínek komplementarity a silné věty o dualitě. Interpretace duality jako ekonomicky akceptovatelné ceny.

(CV) Praktické řešení příkladů nástrojem GuRoBi a důsledky zaokrouhlování; diskuse významu duality

Generování sloupců / řádků

Orákulový přístup k podmínkám a oddělující nadroviny v praxi – řešení konfiguračních ILP pomocí duálního programu. První kroky k řešení velkých lineárních programů.

(CV) Využití orákulového přístupu v GuRoBi

Analýza citlivosti a úlohy s neurčitostí

Co se stane, pokud bychom lehce změnili pravou stranu? Jaká řešení se zachovají a jaká ne? Co když se jemně změní koeficienty účelové funkce? Dále budeme analyzovat jak navrhovat řešení pro problémy, pro které neznáme přesně vstup (známe nějaké statistické rozložení dat) - přistupy jako “maximin” či “minimax regret”.

Lineární programování pro velké úlohy - úvod

Dekompzice problému a další přístupy k velkým úlohám “z praxe”. Předvedeme primárně na příkladu tvz. Cutting Stock problému.

Lineární programová pro velké úlohy - Lagrangeova relaxace a duál

V mnoha běžných scénářích, ve kterých využíváme volby, mají maše preference z podstaty věci jistou speciální podobu (strukturu). Představíme tzv. single-peaked a single-crossing preference a budeme diskutovat jejich vliv na volby – například na možnost manipulace výsledku z minulé přednášky.

Pokročilejší partie optimalizace

Algoritmické přístupy k podmínkám celočíselnosti - branch&bound, cutting planes. Nelineární účelové funkce. A mnoho dalšího dle zájmu posluchačů...

Osnova cvičení:

1. Formulace úloh LP a motivace

2. Formulace úloh LP a jejich řešení

3. Dualita LP

4. Celočíselné lineární programování

5. Řešení základních úloh pomocí GuRoBi

6. Řešení úloh pomocí GuRoBi

7. Praktické aspekty řešičů LP

8. Velké úlohy z praxe - plánování

9. Velké úlohy z praxe - rozvrhování

10. Velké úlohy z praxe - distribuce

11. Využití separačního orakula

12. Další relaxace LP

13. Pokročilejší matematické programování

Cíle studia:
Studijní materiály:

A First Course in Linear Optimization. Jon Lee. Dostupné online z https://github.com/jon77lee/JLee_LinearOptimizationBook

Operations Research: An Introduction. Hamdy A. Taha. ISBN 13: 978-1-292-16554-7, Pearson Education Limited, 2017

Understanding and Using Linear Programming. Jiří Matoušek, Bernd Gärtner. Springer, 2006

Linear Programming 1: Introduction. Dantzig, George B.;Thapa, Mukund N. Springer, 1997

Poznámka:

Výukové materiály na https://courses.fit.cvut.cz/BI-ORL

Další informace:
https://courses.fit.cvut.cz/BI-ORL
Pro tento předmět se rozvrh nepřipravuje
Předmět je součástí následujících studijních plánů:
Platnost dat k 16. 6. 2024
Aktualizace výše uvedených informací naleznete na adrese https://bilakniha.cvut.cz/cs/predmet7784806.html