Lineární programování(optimalizace) a soustavy lineárních nerovností 2017 tuma@karlin.mff.cuni.cz 0-1
Příklad úlohy lineárního programování najdětemaximálníhodnotufunkce x 1 +x 2 přesvšechnyvektoryx = (x 1,x 2 ) T R 2 kterésplňujípodmínky x 1 0 x 2 0 x 2 x 1 1 x 1 +6x 2 15 4x 1 x 2 10. 0-2
Geometrická interpretace K úloze si můžete nakreslit obrázek- každá z omezujících nerovností popisuje nějakou polorovinu. Body x, které splňují všechny omezující nerovnosti, tvoří průnik těchto polorovin. V našem případě je to konvexní pětiúhelník. Body splňující všechny omezující nerovnosti(také se jim říká omezující podmínky) jsou přípustná řešení. Mezi všemi přípustnými řešeními x hledáme to, které má maximálnístandardnískalárnísoučinsvektorem (1,1) T, neboli největší orientovanou projekci do směru tohoto vektoru. Takovému přípustnému řešení říkáme optimální řešení. Pokud si vše nakreslíme, vyjde nám maximální hodnota účelovéfunkcex 1 +x 2 rovná5adosahujesejívoptimálním bodě (3,2) T,kterýjevrcholempětiúhelníkuvšechpřípustných řešení. 0-3
Česko-anglický slovníček účelová funkce cost function omezující podmínky constraints přípustné řešení feasible solution množina přípustných řešení feasible set optimální řešení optimal solution optimální hodnota optimal value 0-4
Obecná formulace úlohy lineárního programování najdětemaximálníhodnotufunkce f (x) =c T x přesvšechnyvektoryx R n splňujícími podmínky Ax b, kdec R n,b R m jsoudanévektoryaa R m n jedanámatice. Prodvavektoryd = (d 1,d 2,...,d m ) T,e = (e 1,e 2,...,e m ) T R m píšeme c d právěkdyž c i d i prokaždé i =1,2,...,m. 0-5
Nepřípustná úloha Množina všech přípustných řešení je průnik uzavřených poloprostorůvr n.pokudjeneprázdná,nazývásekonvexní polyedr.tenmůžebýtidegenerovaný,tj.mítmenšídimenzinežn, vextrémnímpřípaděmůžejítojedinýbod. Můžeme nějak poznat, kdy je množina přípustných řešení prázdná, tj.kdyjeúlohanepřípustná? ŘádkyvmaticiAoznačímejakoobvykleã T 1,ãT 2,...,ãT m. Chceme poznat, kdy je neřešitelná soustava lineárních nerovností ã T 1 x b 1 ã T 2 x b 2. ã T mx b m. 0-6
Jak dokážeme neřešitelnost soustavy nerovností? Odvodíme z předpokladu řešitelnosti spor. Jestliženějakéx R n splňujevšechnynerovnosti,jakédalší nerovnosti musí splňovat? Očividněmůžemekaždounerovnostã T ix b i vynásobit libovolnýmčíslem λ i 0adostanemedůsledek λ i (ã T ix) λ i b i. Dále můžeme všechny tyto nerovnosti sečíst(přes i) a dostaneme m λ i (ã T ix) i=1 m λ i b i. i=1 0-7
Odvození sporu Levou stranu poslední nerovnosti upravíme ( m m m λ i (ã T ix) = (λ i ã T i )x = λ i ã T i i=1 i=1 i=1 kde λ = (λ 1, λ 2,...,λ m ) T. ) x = ( ) λ T A x, Také pravou stranu si přepíšeme m λ i b i = λ T b. i=1 Takžekaždýx R n splňujícípůvodnísoustavulineárních nerovností musí splňovat také každou nerovnost ( ) λ T A x λ T b, prolibovolnývektor λ 0. 0-8
Nutná podmínka neřešitelnosti Kdyžádnéx R n poslednínerovnostnesplňuje? Zjevněpokudprovektor λ 0platí,že λ T A =0 T ma λ T b <0. Odvodili jsme tak nutnou podmínku pro neřešitelnost soustavy lineárních nerovností: je-li řešitelná následující soustava lineárních nerovností(a rovnic) λ i 0, i =1,...,m, λ T b < 0, A T λ = 0 m, pak je neřešitelná soustava lineárních nerovností Ax b. 0-9
Věta o alternativě pro soustavy lineárních nerovností Svět je takový, jaký má být, takže právě uvedená nutná podmínka pro neřešitelnost soustavy lineárních nerovností Ax b je také postačující(důkaz je ale obtížnější). A protože soustava lineárních nerovností Ax b je buď řešitelná nebo neřešitelná, platí následující věta o alternativě pro soustavy lineárních nerovností. ProkaždoumaticiA R m n avektorb R n nastáváprávějedna z následujících možností je řešitelná soustava lineárních nerovností Ax b, je řešitelná soustava lineárních nerovností λ i 0, i =1,...,m, λ T b < 0, A T λ = 0 m. 0-10
Příklad úlohy na lineární programování Příklad je převzatý ze skript Jiřího Matouška. Na základě regulací ministerstva zdravotnictví musí každé jídlo podávané v restauracích obsahovat dostatek vitamínů A, C a vlákniny. Doporučená denní množství jsou 0,5mg vitamínu A, 15mgvitamínuCa4gvlákniny.Vnašírestauracisesregulacemi chtějí vypořádat přidáváním zeleninového salátu ze syrové mrkve, nakládaných okurek a kysaného bílého zelí jako přílohy ke každému jídlu. Současně je snahou majitele zajistit tímto způsobem požadované množství vitamínů a vlákniny co nejlevněji. Potřebné údaje jsou v následující tabulce. 0-11
Tabulka surovina syrová kysané nakládané požadováno mrkev zelí okurky na 1 porci vitamín A[mg/kg] 35 0.5 0.5 0.5 mg vitamín C[mg/kg] 60 300 10 15 mg vláknina[g/kg] 30 20 10 4 g cena[kč/kg] 15 10 3 Nakládané okurky mají zjevně prošlou trvanlivost. Označímesix M,x Z ax O množstvímrkve,zelíaokurekv kilogramech na jednu porci. Tatomnožstvíjsoupřirozeněomezenapodmínkamix M 0, x Z 0,x O 0. 0-12
Formulace pomocí lineárního programování Požadavek ministerstva zdravotnictví na dostatečné množství vitamínu A v každé porci zapíšeme jako nerovnost 35x M +0.5x Z +0.5x O 0.5. Podobně zapíšeme další dva požadavky Cena takového salátu je 60x M +300x Z +10x O 15, 30x M +20x Z +10x O 4. 15x M +10x Z +3x O. Požadavky ministerstva splníme za minimální možnou cenu vyřešením úlohy lineárního programování na následující straně. 0-13
Řešení minimalizujtefunkci 15x M +10x Z +3x O zapodmínek x M 0 x Z 0 x O 0 35x M +0.5x Z +0.5x O 0.5 60x M +300x Z +10x O 15 30x M +20x Z +10x O 4. Standardní algoritmus pro řešení takových úloh je simplexová metoda. Jeho autorem je George Dantzig, jeden ze zakladatelů lineárního programování. Pochází(ten algoritmus) z roku 1948. Nejlevnějším řešením požadavků ministerstva zdravotniství je salát za1,40kčsloženýz9,5gmrkve,38gzelía290gokurek. 0-14
Současný stav Simplexová metoda postupně probírá vrcholy polyedru přípustných řešení, až najde to optimální. Problém může nastat ve chvíli, kdy algoritmus musí probrat všechnyvrcholypolyedru,kterýchmůžebýttaké2 n vpřípadě,kdy optimalizovaný vektor x má n složek(např. n-dimenzionální krychle). Novější a teoreticky rychlejší algoritmy jsou např. metody vnitřního bodu. V současnosti je řešení úlohy s desetitisíci proměnných a statisíci omezujících podmínek záležitostí vteřin na běžném stolním počítači. Metody vnitřního bodu jsou navíc použitelné na mnohem širší třídy úloh, kdy jak omezující podmínky tak účelová funkce nejsou lineární(jsou např. kvadratické nebo obecněji konvexní). 0-15