CW – 05 TEORIE ROZHODOVACÍCH PROCESŮ Ústav technologie, mechanizace a řízení staveb Fakulta stavební VUT v Brně CW – 05 TEORIE ROZHODOVACÍCH PROCESŮ 15. PŘEDNÁŠKA Lineární progr. - 5 © Ing. Václav Rada, CSc. Březen 2014
CW05 POKRAČOVÁNÍ Další ….. METODY ŘEŠENÍ patřící do oblasti lineárního programování – 5, … ☺ Březen 2012
CW05 Lineární programování – grafický způsob Řešení grafickou metodou geometrického vyjádření (znázornění) řešeného problému a postupu jeho řešení – včetně grafiky vyjá-dření omezujících podmínek. Metoda je vhodná pro systém s pouze dvěma proměnnými – tzv. dvourozměrné systémy. Březen 2011
CW05 Lineární programování – grafický způsob Pomocí dvourozměrných systémů jsou zobrazeny a řešeny pouze velmi jednoduché (a povětšinou neekonomické) případy. Nicméně dávají správný vhled do problema-tiky a tudíž usnadňují pochopení – i odvození – pro složitější (vícerozměrné) úlohy. Březen 2011
CW05 Lineární programování – grafický způsob Tedy i řešení dvourozměrných úloh je jednoduché a snadněji pochopitelné. Pro zobrazení takové úlohy postačuje klasic-ký kartézský souřadnicový systém s osami x a y zobrazujícími každá jednu z proměnných úlohy. Březen 2010
CW05 Lineární programování – grafický způsob K doplnění poslouží tento příklad: - jedna výrobna vyrábí sportovní potřeby - je vybrán jeden výrobek, který je balen a prodáván ve dvou různých baleních označe-ných písmeny A a B - na každé balení se spotřebuje různé množ-ství téhož balicího prostředku - ……. Březen 2010
CW05 Lineární programování – grafický způsob zabalení každého z obou provedení trvá různý čas - z prodeje výrobku v těchto dvou různých baleních pak plyne různý zisk - každého z obou balení je k dispozici různý disponibilní počet kusů. Údaje a hodnoty jsou v tabulce: Březen 2010
spotřeba balicího papíru [m2] CW05 Lineární programování – grafický způsob spotřeba balicího papíru [m2] spotřeba času [hod] zisk [Kč] výrobek č. 1 2 0,4 500 výrobek č. 2 4 0,3 80 disponibilní množství 900 120 Březen 2010
CW05 Lineární programování – grafický způsob Matematický model: + maximalizuje se vztah z = 500 * x1 + 800 * x2 + podmínky 2 * x1 + 4 * x2 ≤ 900 0,4 * x1 + 0,3 * x2 ≤ 120 x1 ≥ 0 a x2 ≥ 0 + CO je řešením ??? Březen 2010
CW05 Lineární programování – grafický způsob PŘÍPUSTNÝM ŘEŠENÍM (pro n-rozměrnou úlohu LP) je každá n-tice [ x1 , x2 , x3 , ... xn ] reálných čísel, která vyhovuje VŠEM podmín-kám zadané soustavy. Březen 2010
CW05 Lineární programování – grafický způsob NEPŘÍPUSTNÝM ŘEŠENÍM (pro n-rozměr-nou úlohu LP) je každá n-tice [ x1 , x2 , x3 , ... xn ] reálných čísel, která NEvyhovuje alespoň jedné podmínce ze soustavy zada-ných podmínek. Březen 2010
CW05 Lineární programování – grafický způsob OPTIMÁLNÍM ŘEŠENÍM (pro n-rozměrnou úlohu LP) je takové přípustné řešení, při kterém nabývá hodnota účelové funkce z požadovaného extrému (tj. maximální nebo minimální hodnotu). Březen 2010
CW05 Lineární programování – grafický způsob V příkladu bude platit: * přípustné řešení - ŘEŠENÍ x1 = 0 , x2 = 0 – tj. dvojice [ 0 , 0 ], která po dosazení do obou podmínek jejich nerovnostem vyhovuje - nebo ŘEŠENÍ [ 10 , 20 ] , [ 300 , 0 ] - ATD. Březen 2010
CW05 Lineární programování – grafický způsob * nepřípustné řešení - ŘEŠENÍ [ -5 , 0 ] ... nevyhovuje podmínce „kladných čísel“ - ŘEŠENÍ [ 200 , 150 ] ...nevyhovuje OBĚMA nerovnostem v zadání * optimální řešení - ŘEŠENÍ [ 210 , 120 ] ... je ale nutné jej nějakou metodou nalézt ..... Březen 2010
GRAFICKÁ REPREZENTACE CW05 Lineární programování – grafický způsob GRAFICKÁ REPREZENTACE Podmínka ve tvaru rovnosti - obsahuje dvě proměnné = je to přímka Podmínka ve tvaru nerovnosti - obsahuje dvě proměnné = je to polorovina s hraniční přímkou Březen 2010
CW05 Lineární programování – grafický způsob Rovnost 2 * x1 + 4 * x2 = 6 x1 x2 [ 0 , 2 ] [ 4 , 0 ] Březen 2010
CW05 Lineární programování – grafický způsob Nerovnost 2 * x1 + 4 * x2 ≤ 6 x1 x2 [ 0 , 2 ] [ 4 , 0 ] Březen 2010
CW05 Lineární programování – grafický způsob Nerovnost 2 * x1 + 4 * x2 ≤ 900 x1 x2 [ 0 , 225 ] [ 450 , 0 ] Březen 2010
CW05 Lineární programování – grafický způsob Nerovnost 0,4 * x1 + 0,3 * x2 ≤ 120 x1 x2 [ 0 , 400 ] [ 300 , 0 ] Březen 2010
Nerovnost x1 ≥ 0 , x2 ≥ 0 CW05 Lineární programování – grafický způsob 1. kvadrant – obě poloroviny tvoří průnik, protože platí současně Březen 2010
MPŘ Množina Přípustných Řešení = MPŘ CW05 Lineární programování – grafický způsob Množina Přípustných Řešení = MPŘ x1 [ 0 , 225 ] [ 450 , 0 ] x2 [ 0 , 400 ] [ 300 , 0 ] MPŘ Březen 2010
GRAFICKÁ REPREZENTACE ÚČELOVÉ FUNKCE CW05 Lineární programování – grafický způsob GRAFICKÁ REPREZENTACE ÚČELOVÉ FUNKCE Pro dvourozměrnou funkci má účelová funkce úlohy LP vždy tento tvar (kde z = hodnota účelové funkce) z(x1 , x2) = c1 * x1 + c2 * x2 Jedná se o třírozměrnou funkci (x1 , x2 , z), která představuje rovinu ve třírozměrném prostoru. Březen 2010
CW05 Lineární programování – grafický způsob V praxi se bere pro konkrétní hodnoty dané úlohy v podobě rovnice zadané maximalizač-ní (případně minimalizační) rovnice – zde bude z = 500 * x1 + 800 * x2 Hodnota účelové funkce pak bude (pro kon-krétní hodnoty) znázorněna izoprofitovou přímkou. Březen 2010
CW05 Lineární programování – grafický způsob Izoprofitová přímka v podstatě pravo-úhlým průmětem průsečnice dvou rovin z(x1 , x2) = c1 * x1 + c2 * x2 a roviny z(x1 , x2) = konst. … zvolená hodnota předsta- vující konkrétní hodnotu účelové funkce do roviny (x1 , x2) = konst. … tj. dvourozměrné. Izoprofitové přímky jsou rovnoběžné. Březen 2010
Množina Přípustných Řešení = MPŘ CW05 Lineární programování – grafický způsob Množina Přípustných Řešení = MPŘ x1 [ z = 500 * x1 + 800 * x2 ] x2 [ z = 100 000 ] [ z = 0 ] [ z = 200 000 ] Březen 2010
průnik rovin Množina Přípustných Řešení = MPŘ CW05 Lineární programování – grafický způsob Množina Přípustných Řešení = MPŘ x1 x2 z průnik rovin Březen 2010
CW05 Lineární programování – grafický způsob Při optimalizaci se izoprofitové přímky posouvají: pro maximalizaci … z(x) bylo co největší pro minimalizaci … z(x) bylo co nejmenší, Březen 2010
CW05 Lineární programování – grafický způsob Optimální řešení dvourozměrné úlohy LP je dáno bodem na izoprofitové přímce účelové funkce, který leží v MPŘ (je součástí množi-ny přípustných řešení) pokud již nelze izo-profitovou přímku účelové funkce posunout potřebným (požadovaným) směrem. Březen 2010
Izoprofitová přímka účelové funkce při maximálním profitu CW05 Lineární programování – grafický způsob Optimální řešení ( x1* , x2* ) x2 x1 Izoprofitová přímka účelové funkce při maximálním profitu x2* x1* Březen 2011
Vyčíslení hodnot daného příkladu je dáno vyřešením soustavy rovnic: CW05 Lineární programování – grafický způsob Vyčíslení hodnot daného příkladu je dáno vyřešením soustavy rovnic: 2 * x1* + 4 * x2* = 900 0,4 * x1* + 0,3 * x2* = 120 a tedy x1* = 210 …… x2* = 120 Březen 2011
CW05 Lineární programování – grafický způsob Závěr: Optimální výroba daného předmětu prodáva-ného ve formě balení A a B nastane, pokud bude platit: balení A bude 210 kusů balení B bude 120 kusů. Celkový zisk pak bude: (500 * 210 + 800 * 120) = 201 000 Kč, což je ta izoprofitová přímka účelové funkce. Březen 2011
Na doplnění, ještě pár slov k nelineárnímu programování… CW05 Nelineární programování - stručně Na doplnění, ještě pár slov k nelineárnímu programování… Březen 2013
CW05 Nelineární programování - stručně Nelineární programování je nadstavbou LP, která je nezbytná pro řešení řady prak-tických úloh. V reálu (což je přirozené a pochopitelné) není vše „lineární“ – a reálné systémy ne-mají tendenci zachovávat jednoduché lineární závislosti. Březen 2013
CW05 Nelineární programování - stručně Nelineární programování se zabývá řeše-ním třídy úloh operačního výzkumu v nichž omezující podmínky a účelová funkce jsou obecně nelineární. Březen 2013
CW05 Nelineární programování - stručně Lineární model (reality) je vlastně kompromi-sem mezi (do značné míry) omezenými vý-početními možnostmi, nespolehlivými pod-klady (výchozími znalostmi a informacemi) a požadavkem na přesné vystižení reality zkonstruovaným modelem. Takže lineární model je pouhou více či mé-ně přesnou a přijatelnou aproximací (obra-zem) skutečnosti. Březen 2013
CW05 Nelineární programování - stručně Lineární model v této formě aproximované reality může ztratit (a dosti často také ztrácí) některé rysy charakterizující či omezující či „určující“ vlastnosti nebo chování reality (modelované skutečnosti). Teorie a používané matematické přístupy a metody jsou pochopitelně složitější a kom-plikovanější. Březen 2013
Na doplnění, ještě pár příkladů k lineárnímu programování… CW05 Lineární programování - příklady Na doplnění, ještě pár příkladů k lineárnímu programování… Březen 2013
CW05 Lineární programování - příklady Lineární programování, přes to co bylo v ně-kolika slidech poznamenáno, se v praxi velmi často používá při řešení široké oblasti dopravních a zásobovacích problémů, v ob-lasti dělení materiálů, v oblasti řešení obsa-zení skladových prostor, v oblasti dělení zá-sob, v oblasti řešení dodávek při nerovno-měrné spotřebě, v oblasti pokrytí daných činností omezeným počtem pracovníků, .……. Březen 2013
CW05 Lineární programování - příklady Na doplnění toho, co bylo k LP řečeno, tak ještě pár (více méně klasických) příkladů k praktickému použití metod lineárního pro-gramování ….. Březen 2013
1 CW05 Lineární programování - příklady Továrna vyrábí pánskou, dámskou a dětskou obuv a na jejich výrobu potřebuje tyto materi-ály a suroviny: Lepidlo [g] 20 20 10 Kůže [dm2] 4 2 1 Cena za pár [Kč] 200 300 100 Zásoba lepidla je celkem 3 000 kg. Zásoba kůže je 4 000 m2. Březen 2013
a) využijte všechny zásoby – aby zbylo dále jen nepoužitelné množství CW05 Lineární programování - příklady Továrna vyrábí boty a) využijte všechny zásoby – aby zbylo dále jen nepoužitelné množství b) získejte co největší příjem z prodané obuvi. Březen 2013
Řešení pro x1, x2 a x3 vyrobených párů obuvi rovnice CW05 Lineární programování - příklady Řešení pro x1, x2 a x3 vyrobených párů obuvi rovnice a) X € M10 =x: 2x1+2x2+x3 = 300000 4x1+2x2+x3 = 400000 b) X € M20 =x: 2x1+2x2+x3 = 300000 W(x) = 200*x1 + 300*x2 + 100*x3 Březen 2013
Řešení pro množiny M je v rozmezí: M1 (50000,100000, 0 ) CW05 Lineární programování - příklady Řešení pro množiny M je v rozmezí: M1 (50000,100000, 0 ) M2 (0 , 150000, 0 ) ………………….. Březen 2013
2 Jiný příklad – hledání optima pro úlohu představovanou vztahy: CW05 Lineární programování - příklady Jiný příklad – hledání optima pro úlohu představovanou vztahy: 4*x1 + x2 + 2*x3 =< 10 x2 + 2*x3 =< 5 -2*x1 - x2 => -15 F = 5*x1 + 3*x2 + 2*x3 = max Březen 2013
1. Třetí vztah se násobí -1: -2*x1 - x2 = -15 /*-1 CW05 Lineární programování - příklady Postup řešení: 1. Třetí vztah se násobí -1: -2*x1 - x2 = -15 /*-1 +2*x1 + x2 =< +15 Březen 2013
2. Přidají se další – přídatné proměnné: 4*x1 + x2 + 2*x3 + x4 = 10 CW05 Lineární programování - příklady Postup řešení: 2. Přidají se další – přídatné proměnné: 4*x1 + x2 + 2*x3 + x4 = 10 x2 + 2*x3 + x5 = 5 2*x1 + x2 +x6 = 15 Což je normální tvar omezujících podmínek. Březen 2013
Řešením je vektor – řešení je přípustné CW05 Lineární programování - příklady Postup řešení: 3. Protože je soustava v kanonickém tvaru, zvolí se za bázové proměnné právě ty přídatné proměnné x4 , x5 , x6 . A nebázové proměnné – zde všechny skutečné proměnné – se položí rovny 0. Řešením je vektor – řešení je přípustné xT = ( 0 , 0 , 0 , 10 , 5 , 10 ). Březen 2013
Rovněž Účelová Funkce je přímo v bázovém vyjádření. CW05 Lineární programování - příklady Postup řešení: 4a. V tomto případě je bázovým vyjádřením omezujících podmínek přímo normalizovaný tvar omezujících podmínek Rovněž Účelová Funkce je přímo v bázovém vyjádření. Březen 2013
4b. Za tohoto stavu lze zapsat Simplexové tabulky takto: 4* + + 2* , , CW05 Lineární programování - příklady Postup řešení: 4b. Za tohoto stavu lze zapsat Simplexové tabulky takto: 4* + + 2* , , AČ x1 x2 x3 x4 x5 x6 F 5 3 2 --- 10 4 1 2,5 7,5 Březen 2013
5. Klíčovým sloupce je sloupec první x1 – nese označení šipkou. CW05 Lineární programování - příklady Postup řešení: 5. Klíčovým sloupce je sloupec první x1 – nese označení šipkou. Březen 2013
Rozdíly jsou uvedeny ve sloupci za tabulkou. CW05 Lineární programování - příklady Postup řešení: 6. Za klíčový řádek bude určen podle mini-mální hodnoty podílu, že se prvku a sloupce AČ a klíčového sloupce x1 - samozřejmě neprovádí se pro řádek Účelové Funkce. Rozdíly jsou uvedeny ve sloupci za tabulkou. Protože podíl v řádku s bázovou proměnnou x4 je nejmenší – jde o řádek klíčový a je označen šipkou. Březen 2013
7. Pro vyznačení se klíčový prvek orámuje – zvýrazní. CW05 Lineární programování - příklady Postup řešení: 7. Pro vyznačení se klíčový prvek orámuje – zvýrazní. Březen 2013
Celý řádek je vydělen hodnotou 4, aby klí-čový prvek byl roven 1. CW05 Lineární programování - příklady Postup řešení: 8a. V klíčovém řádku se nahradí bázová proměnná x4 proměnnou x1 z klíčového sloupce. Celý řádek je vydělen hodnotou 4, aby klí-čový prvek byl roven 1. Viz další tabulka….. Březen 2013
8b. Výsledná tabulka bude mít tento tvar: CW05 Lineární programování - příklady Postup řešení: 8b. Výsledná tabulka bude mít tento tvar: AČ x1 x2 x3 x4 x5 x6 F -12,5 1,75 -0,5 -1,25 --- 2,5 1 0,25 0,5 10 5 2 -1 20 Březen 2013
Od řádku F se odečte 5-ti násobek řádku x1. CW05 Lineární programování - příklady Postup řešení: 9a. Pomocí klíčového řádku bázové proměn-né x5 se upraví ostatní řádky tak, aby ve sloupci x1 byly samé nuly 0. Od řádku F se odečte 5-ti násobek řádku x1. Řádek x5 lze přímo opsat a od řádku x6 se odečte dvojnásobek řádku x1. Jsou to úpravy povolené v matici. Viz další tabulka….. Březen 2013
9b. Výsledná tabulka bude mít tento tvar: CW05 Lineární programování - příklady Postup řešení: 9b. Výsledná tabulka bude mít tento tvar: AČ x1 x2 x3 x4 x5 x6 F -12,5 1,75 -0,5 -1,25 --- 2,5 1 0,25 0,5 10 5 2 -1 20 Březen 2013
CW05 Lineární programování - příklady Postup řešení: 10a. Protože je v řádku Účelové Funkce ještě jeden kladný koeficient – sloupec x2 – opakuje se výpočet znovu až od bodu 5. Určí se tedy další klíčový sloupec, řádek a prvek a provedou se nové výpočty Viz další tabulka….. Březen 2013
10b. Výsledná tabulka bude mít tento tvar: CW05 Lineární programování - příklady Postup řešení: 10b. Výsledná tabulka bude mít tento tvar: AČ x1 x2 x3 x4 x5 x6 F -21,5 -4 -1,75 --- 1,25 1 0,25 -0,25 5 2 7,5 -2 -0,5 Březen 2013
10c. Podle řádku Účelové Funkce F jde již o konečné řešení. CW05 Lineární programování - příklady Postup řešení: 10c. Podle řádku Účelové Funkce F jde již o konečné řešení. Vektor xT = ( 1,25 , 5 , 0 , 0 , 0 , 7,5 ) F = 21,5 A dále…. Březen 2013
10d. Skutečným výsledkem jsou pouze reál-né proměnné – takže: CW05 Lineární programování - příklady Postup řešení: 10d. Skutečným výsledkem jsou pouze reál-né proměnné – takže: x1 = 1,25 x2 = 5 x3 = 0 F = 5 * x1 + 3 * x2 + 2 * x3 F = 5 * 1,25 + 3 * 5 + 2 * 0 F = 21,5 Březen 2013
3 CW05 Lineární programování - příklady Další příklad – grafický způsob hledání optima pro úlohu představovanou vztahy: g1 8*x1 + 6*x2 => 50 g2 6*x1 - 3*x2 => -18 g3 5*x1 - 15*x2 =< 0 g4 x2 = < 14 g5 25*x1 + 12*x2 =< 375 F = 5*x1 + 4*x2 = max Březen 2013
Lineární programování - příklady CW05 Lineární programování - příklady Znázornění ve dvourozměrném prostoru… g3 x2 g3 P ( 8,3 ; 14 ) 14 g4 10 g1 g3 F = 97,5 x1 F 8,3 10 g5 Březen 2013
x1 = 8,3 x2 = 14 z = 97,5 Úloha má jediné řešení…. CW05 Lineární programování - příklady Úloha má jediné řešení…. ….. bod P ( 8,3 ; 14 ) x1 = 8,3 x2 = 14 z = 97,5 Březen 2013
4 CW05 Lineární programování - příklady Další příklad – numerický způsob hledání optima pro úlohu představovanou vztahy: 8*x1 + 6*x2 => 50 6*x1 - 3*x2 => -18 5*x1 - 15*x2 =< 0 x2 = < 14 25*x1 + 12*x2 =< 375 F = 5*x1 + 4*x2 = max Březen 2013
CW05 Lineární programování - příklady Další příklad – numerický způsob hledání optima pro úlohu představovanou vztahy: -8*x1 - 6*x2 +x3 =< -50 -6*x1 + 3*x2 + x4 =< +18 5*x1 - 15*x2 + x5 =< 0 x2 + x6 =< 14 25*x1 + 12*x2 + x7 =< 375 Březen 2013
Pro zavedené a zvolené bázové proměnné x3 , x4 , x5 , x6 , x7 CW05 Lineární programování - příklady Další příklad ….. Pro zavedené a zvolené bázové proměnné x3 , x4 , x5 , x6 , x7 bude řešením vektor xT = (6,25 , 0 , 0 , 55,5 , -31,25 , 14 , 218,75) Březen 2013
CW05 Lineární programování - příklady Další příklad ….. Protože obsahuje záporné číslo, což je nepří-pustné – musí se volit nové bázové proměn-né, kterými budou x1 , x2 , x5 , x6 , x7 Řešením je vektor xT = (0,7 , 7,4 , 0 , 0 , 107,5 , 6,6 , 268,7) Březen 2013
z omezující podmínky g1 se vyjádří x1 a dosadí se do podmínky g2 CW05 Lineární programování - příklady Další příklad ….. Úpravy: z omezující podmínky g1 se vyjádří x1 a dosadí se do podmínky g2 x2 bude vyjádřeno pouze pomocí x3 a x4 zpětným dosazením x2 do prvé podmínky se obdrží bázové vyjádření podmínky g1 pro x1 pak se vyjádří x5, x6 a x7 jako fce nebázo-vých proměnných x3 a x4. Březen 2013
Je potřeba vypsat všechny rovnice po prove-dení uvedených úprav…. CW05 Lineární programování - příklady Další příklad ….. Je potřeba vypsat všechny rovnice po prove-dení uvedených úprav…. Březen 2013
Po úpravách bude Účelová Funkce F = 0,65 * x1 – 0,032 * x4 = -33,1 CW05 Lineární programování - příklady Další příklad ….. Po úpravách bude Účelová Funkce F = 0,65 * x1 – 0,032 * x4 = -33,1 Sestaví se Simplexová tabulka a provedou se ekvivalentní úpravy…. Březen 2013
Výsledným řešením je vektor CW05 Lineární programování - příklady Další příklad ….. Výsledným řešením je vektor xT = (8,3 , 14 , 100,22 , 25,73 , 168,44 , 0 , 0) F = ABS (-97,43) = 97,43 A skutečné proměnné: x1 = 8,3 x2 = 14 F = 5 * x1 + 4 * x2 F = 5 * 8,3 + 4 * 14 F = 97,5 Březen 2013
5 CW05 Lineární programování - příklady Další příklad ….. Podnik řeže ze základních tyčí délky 80 cm tyče délek 50 cm, 40 cm a 25 cm. Jejich minimální požadovaná množství jsou 50 ks, 80 ks a 95 ks. Úkolem je stanovit optimální skladbu řezných plánů z hlediska minimalizace odpadu. Březen 2014
x1 => 0, x2 => 0, x3 => 0, x4 => 0. CW05 Lineární programování - příklady Další příklad ….. z = 5*x1 + 15 *x3 + 5*x4 --> min x1 => 50 2*x2 + x3 => 80 x1 + x3 + 3*x4 => 95 x1 => 0, x2 => 0, x3 => 0, x4 => 0. Březen 2014
…..… Informace pokračují …..5… cw05 – p.15. CW05 POKRAČOVÁNÍ PŘÍŠTĚ ……. Informace pokračují …..5… …..… cw05 – p.15. březen 2014