Simplexové tabulky z minule (KMI ZF JU) Lineární programování EMM a OA O6 1 / 25
Simplexová metoda symbolicky Výchozí tabulka prom. v bázi zákl. proměné přídatné prom. omez. A E b c T 0 0 Tabulka po přepočtu prom. v bázi zákl. proměné přídatné prom. omez. B 1 s A B 1 s c T B B 1 s A c T c T B B 1 s B 1 s b c T B B 1 s b (KMI ZF JU) Lineární programování EMM a OA O6 2 / 25
Výpočet intervalů stability Pro vektor pravých stran Předpokládejme, že se vektor pravých stran změní o b, tedy nový vektor pravých stran bude b + b. Potom výsledná simplexová tabulka bude: prom. v bázi zákl. proměné přídatné prom. omez. B 1 s A B 1 s c T B B 1 s A c T c T B B 1 s B 1 s (b + b) c T B B 1 s (b + b) Ke změně tedy dojde jen ve sloupci hodnot řešení a v hodnotě účelové funkce. Duální ceny a redukované náklady zůstanou zachovány. Problém by nastal, pokud bychom změnili vektor b tak, že by nám ve sloupci hodnot proměnných vyšlo nějaké záporné číslo, potom by řešení obsažené ve výsledné simplexové tabulce nebylo přípustné. (KMI ZF JU) Lineární programování EMM a OA O6 3 / 25
Konkrétní výpočet intervalu stability Potřebujeme tedy, aby B 1 s (b + b) 0. Chceme-li tedy počítat interval stability např. pro první omezení, potom můžeme symbolicky psát: B 1 s b 1 + b 1 b 2...... b n 0. Na bonboniérách 0, 125 0, 0417 0 0, 125 0, 208 0 0, 625 1, 875 1 60 + b 1 60 85 0. (KMI ZF JU) Lineární programování EMM a OA O6 4 / 25
Odtud obdržíme tři nerovnice: 7, 5 + 0, 125 b 1 2, 5 0 7, 5 0, 125 b 1 + 12, 5 0 37, 5 + 0, 625 b 1 112, 5 + 85 0 Z jejich řešení interval stability pro b 1 : b 1 40 b 1 40 b 1 16. Tj. b 1 [ 16, 40], tedy b 1 [44, 100]. (KMI ZF JU) Lineární programování EMM a OA O6 5 / 25
Intervaly stability pro cenový vektor Ze symbolické simplexové tabulky vidíme, že při změně cenového vektoru c dochází ke změně v posledním řádku simplexové tabulky, navíc záleží na tom, zda proměnná, u níž měníme cenový koeficient je či není bazická. Není-li bazická, pak se její změna promítá pouze do duálních cen, v opačném případě se její změna promítá do celého posledního řádku tabulky. Intervalem stability zde rozumíme interval, ve kterém můžeme měnit hodnotu cenového koeficientu, aniž tím porušíme optimalitu řešení. (KMI ZF JU) Lineární programování EMM a OA O6 6 / 25
Duální úloha příklad Zápis max 30x 1 + 45x 2 min 60y 1 + 60y 2 + 85y 3 za podmínek za podmínek 2x 1 + 10x 2 60 2y 1 + 6y 2 + 10y 3 30 6x 1 + 6x 2 60 10y 1 + 6y 2 + 5y 3 45 10x 1 + 5x 2 85 x 1, x 2 0 y 1, y 2, y 3 0 (KMI ZF JU) Lineární programování EMM a OA O6 7 / 25
Řešení duálně sdružených úloh Řešení úloh proměnná hodnota duální hodn. proměnná hodnota duální hodn. x 1 5 0 y 1 1,875 0 x 2 5 0 y 2 4,375 0 d 1 0 1,875 y 3 0 10 d 2 0 4,375 e 1 0 5 d 3 10 0 e 2 0 5 (KMI ZF JU) Lineární programování EMM a OA O6 8 / 25
Celočíselná optimalizace Zatím jsme se nenápadně vyhýbali podmínce celočíselnosti. Simplexová metoda tuto podmínku nikterak nezohledňuje. Takže jsme vlastně jen měli štěstí. (Někdy potřebujeme dokonce větší jednotky, např. počet kusů na celé palety, auta, apod. Potom je nejlépe zvolit jako jednotku paletu, auto apod. a tomu upravit i všechny omezující podmínky, čímž získáme běžnou celočíselnou optimalizaci.) Zaokrouhlování není obecně dobrý nápad Řešíme-li úlohu, kde nám výsledky vycházejí v řádu tisíců apod., potom nám zaokrouhlení neudělá žádný zásadní problém. Ovšem, pokud výsledky vycházejí v řádu jednotek, pak nám zaokrouhlení může zničit řešení úlohy. (KMI ZF JU) Lineární programování EMM a OA O6 9 / 25
Příklad celočíselná optimalizace Příklad Podnik vyrábí tři druhy výrobků. Spotřebovává při tom tři speciální suroviny, v jejichž množství je omezen, spotřeba surovin na jednotlivé výrobky a disponibilní množství surovin je uvedeno v tabulce. Jednotkový zisk má vykalkulován z předchozích let a je také uveden v tabulce. Firma chce maximalizovat svůj zisk. Surovina Výrobek V1 V2 V3 Množství surovin S1 20 10 40 80 S2 40 40 20 160 S3 0 10 40 50 Jednotkový zisk 200 350 800 (KMI ZF JU) Lineární programování EMM a OA O6 10 / 25
Řešení Použijeme-li k řešení této úlohy algoritmus simplexové metody, získáme řešení obsažené v prvním sloupci, pokud algoritmus na celočíselnou optimalizaci, potom dostaneme řešení z druhého sloupce tabulky: Simpl. algoritmus Algoritmem na cel. optimalizaci Maximální zisk 1621,428571 1400 Opt. slož. výroby V 1 1,5 0 V 2 2,142857143 4 V 3 0,714285714 0 Budeme-li zaokrouhlovat matematicky, získáme nepřípustné řešení, pokud jen dolu, pak dostaneme jen malý zisk. Tyto algoritmy nejsou náplní kurzu, ale jsou zabudovány ve většině software určeného k lineární optimalizaci. Ovšem jsou výpočetně mnohem náročnější než simplexový algoritmus. (KMI ZF JU) Lineární programování EMM a OA O6 11 / 25
Optimalizace v modulu Řešitel zadání (KMI ZF JU) Lineární programování EMM a OA O6 12 / 25
Řešitel zadání omezujících podmínek (KMI ZF JU) Lineární programování EMM a OA O6 13 / 25
Řešitel zadání účelové funkce (KMI ZF JU) Lineární programování EMM a OA O6 14 / 25
(KMI ZF JU) Lineární programování EMM a OA O6 15 / 25
(KMI ZF JU) Lineární programování EMM a OA O6 16 / 25
(KMI ZF JU) Lineární programování EMM a OA O6 17 / 25
(KMI ZF JU) Lineární programování EMM a OA O6 18 / 25
(KMI ZF JU) Lineární programování EMM a OA O6 19 / 25
(KMI ZF JU) Lineární programování EMM a OA O6 20 / 25
(KMI ZF JU) Lineární programování EMM a OA O6 21 / 25
Vícekriteriální optimalizace Pro zatím jsme zabývali úlohami, kde byla pouze jedna účelová funkce. Někdy se ovšem setkáváme se situacemi, kdy potřebujeme optimalizovat více hledisek najednou. Máme tedy více účelových funkcí. Tyto problémy by se dali ještě rozdělit na situace, kdy vybíráme z konečného počtu variant (např. nákup určitého druhu zboží) a na situace, kdy variant je nekonečně mnoho (viz předchozí příklady). Podle toho mluvíme buď o tzv. vícekriteriálním hodnocení variant (bude v RM) nebo vícekriteriálním programování. Vícekriteriální programování Mnoho metod řešení, my si ukážeme jen nějaké základní. Metody můžeme rozdělit na metody s informaci a priory a metody s průběžnými informacemi. (KMI ZF JU) Lineární programování EMM a OA O6 22 / 25
Vícekriteriální programování příklad Pražírny kávy vyrábějí dva druhy kávy (Super a Standard) ze dvou druhů kávových bobů KB1 a KB2, které mají smluvně zajištěny v množství 4 t a 6 t. Složení kávy (v procentech) a zisk (tis.kč) jsou uvedeny v tabulce. KB1 KB2 Zisk (tis.kč/t) Super 50 50 20 Standard 25 75 14 Pražírny mají vyrobit minimálně 4t kávy a snaží se maximalizovat svůj zisk, minimalizovat spotřebu kávových bobů č. 2 a zároveň maximalizovat výrobu kávy Super. (KMI ZF JU) Lineární programování EMM a OA O6 23 / 25
Matematický model zisk max 20x 1 + 14x 2 KB2 min 50x 1 + 75x 2 Super max x 1 za podmínek KB1 0, 5x 1 + 0, 25x 2 4 KB2 0, 5x 1 + 0, 75x 2 6 celkem x 1 + x 2 4 x 1, x 2 0 (KMI ZF JU) Lineární programování EMM a OA O6 24 / 25
Výsledky dílčích optimalizací (KMI ZF JU) Lineární programování EMM a OA O6 25 / 25