Veobecn model lohy linerneho programovania V oblasti linerneho
Všeobecný model úlohy lineárneho programovania V oblasti lineárneho programovania majú základné časti ich matematického modelu t. j. cieľ riešenia ako aj všetky obmedzujúce podmienky – vždy tvar lineárnych funkcií s viac premennými. 1
Všeobecný model úlohy lineárneho programovania 2
Všeobecný model úlohy lineárneho programovania Pri aplikácii modelov lineárneho programovania záleží hlavne na schopnosti rozhodovateľa správne sformulovať rozhodovací problém a zostaviť jeho matematický model tak, aby s požadovanou presnosťou problém opisoval. Zostavovanie modelu ÚLP pozostáva z nasledovných krokov: 1. Slovné zadanie = formulácia úlohy. 2. Formalizácia zápisu do tabuľky = všeobecný model úlohy. 3. Zostavenie matematického modelu úlohy = definovanie 2 častí: - účelová funkcia a smer jej optimalizácie (MAX, MIN), - sústava obmedzujúcich podmienok v tvare nerovníc / rovníc 4. Riešenie modelu = hľadanie optimálneho riešenia úlohy. 5. Správna interpretácia výsledkov a ich overenie. 3
Úlohy plánovania výroby (Production Problems) ÚLOHA: Podnikateľ vyrába a predáva zemiakové lupienky a hranolčeky s jednotkovým ziskom za lupienky 80 a za hranolčeky 50 peňažných jednotiek (napr. centov) za kilogram produktu. Na výrobu 1 kg lupienkov sa spotrebuje 2 kg zemiakov a 0, 4 kg oleja, na výrobu 1 kg hranolčekov je potrebné 1, 5 kg zemiakov a 0, 2 kg oleja. Pred začatím výroby sa nakúpilo 100 kg zemiakov a 16 kg oleja (za bližšie nešpecifikované ceny – nie je to dôležité). Úloha: aké množstvo uvedených produktov má podnikateľ vyrábať a predávať, aby dosiahol maximálny zisk pri rešpektovaní obmedzení - obmedzené množstvo surovín, ktoré sú k dispozícii? n 4
Rekapitulácia úlohy a dôsledky rozhodnutia ÚF - Zisk 1 kg lup. Rozh. prem 1 Napr. 2 *2 80 160 1. OP-Zemiaky 2 + *2 4 2. OP-Olej 0, 4 0. 8 1 kg hran. + *2 + Rozh. Dôsledok Prem 2 50 3 *3 150 = 1, 5 *3 4. 5 = 0, 2 *3 0. 6 = Zásoby 310 100 16 8. 5 1. 4 5
Rekapitulácia úlohy a dôsledky rozhodnutia ÚF - Zisk 1 kg lup. Rozh. 1 Napr. 20 *20 80 1600 1. OP-Zemiaky 2 + *20 40 2. OP-Olej 0, 4 8 + *20 + 1 kg hran. Rozh. Dôsledok 2 50 30 *30 1500 = 1, 5 *30 45 = 0, 2 *30 6 = Zásoby 3100 16 85 14 6
Rekapitulácia úlohy a dôsledky rozhodnutia ÚF - Zisk 1 kg lup. Rozh. 1 Napr. 30 *30 80 2400 1. OP-Zemiaky 2 + *30 60 2. OP-Olej 0, 4 12 + *30 + 1 kg hran. Rozh. Dôsledok 2 50 30 *30 1500 = 1, 5 *30 45 = 0, 2 *30 6 = Zásoby 3900 105 !!! 18 100 16 !!! 7
Rekapitulácia úlohy a dôsledky rozhodnutia 1 kg lup. 1. OP-Zemiaky 2. OP-Olej 1 kg hran. Rozh. Dôsledok 2 Zásoby 80 x 1 * x 1 + 50 x 2 * x 2 2 * x 1 + 1. 5 * x 2 100 * x 1 + 0, 2 * x 2 16 Všeo. ÚF - Zisk Rozh. 1 0, 4 MAX 8
Model úlohy typu plánovanie výroby n n Účelová funkcia Obmedzujúce podmienky - Štruktúrne podmienky - Obligatórne podmienky, najčastejšie podmienky nezápornosti. 9
Ďalšie príklady modelov typu plánovanie výroby Príklad 1: Úloha výrobného plánovania (alokácia zdrojov) Podnik vyrába 2 typy výrobkov V 1 a V 2 , pri čom spotrebováva druhy surovín S 1 a S 2. Za jeden výrobok V 1 realizuje zisk 70 Eur, za jeden výrobok V 2 realizuje zisk 90 Eur. Na výrobu výrobku V 1 je potrebných 5 jednotiek suroviny S 1 a 2 jednotky suroviny S 2 a na výrobu výrobku V 2 sa spotrebujú 4 jednotky suroviny S 1 a 5 jednotiek suroviny S 2. Zásoba suroviny S 1 je 1300 jednotiek a zásoba suroviny S 2 je 1200 jednotiek. Úloha: naplánovať výrobu tak, aby podnik dosiahol maximálny zisk. 10
Príklad 1 11
Ďalšie príklady modelov typu plánovanie výroby Príklad 2: Úloha výrobného plánovania (kapacitný model) Podnik vyrába 2 typy výrobkov V 1 a V 2 v dvoch prevádzkach P 1 a P 2. Za jeden výrobok V 1 realizuje zisk 10 finančných jednotiek (FJ), za jeden výrobok V 2 zisk 12 FJ. Kapacita prevádzky P 1 stačí na výrobu buď 6 výrobkov V 1 na zmenu alebo výrobu 12 výrobkov V 2 na zmenu. Kapacita prevádzky P 2 postačuje na výrobu buď 12 výrobkov V 1 alebo 8 výrobkov V 2 na pracovnú zmenu. Úloha: naplánovať výrobu (určiť počty vyrábaných výrobkov V 1 a V 2) tak, aby podnik dosiahol maximálny zisk a nebola prekročená max. kapocita prevádzok. 12
Príklad 2 13
Príklad 2 14
Ďalšie príklady modelov typu plánovanie výroby Príklad 3: Úloha výrobného plánovania (plán opráv s určením min. počtu) Opravovňa robí 3 druhy generálnych opráv O 1, O 2, O 3, na ktoré využíva 2 druhy súčiastok S 1 a S 2. Zisky z jednotlivých opráv sú po rade 54, 45 a 52 jednotiek. Na opravu O 1 (1. typu) sa pritom spotrebujú 2 súčiastky S 1 a 3 súčiastky S 2, na opravu O 2 je potrebná 1 súčiastka S 1 a 2 súčiastky S 2 a na O 3 potrebujeme 3 súčiastky S 1 a 2 súčiastky S 2. Na sklade je pritom 600 súčiastok S 1 a 800 súčiastok S 2. Ďalšou požiadavkou je, že pre zabezpečenie zachovania organizácie je potrebné vykonať minimálne 50 opráv O 1, 100 opráv O 2 a 80 opráv O 3. Úloha: naplánovať počet opráv tak, aby zisk opravovne za ich vykonanie bol maximálny a zároveň aby boli splnené všetky obmedzenia (zásoby, min. počet opráv). 15
Príklad 3 16
Rozdeľovacia úloha Príklad 4: Úloha o delení materiálu (optimálny rezný plán) Z polotovaru s dĺžkou l = 8 m je potrebné narezať minimálne 1000 kusov o dĺžke l 1 = 2, 5 m, 600 kusov dĺžky l 2 = 3, 0 m a 200 kusov dĺžky l 3 = 3, 5 m tak, aby odpad vzniknutý pri rezaní bol minimálny. Úloha: a) naplánovať spôsob rezania (rezný plán) polotovarov tak, aby bol odpad po rezaní minimálny, b) spôsob rezania taký, aby sme spotrebovali minimálny počet polotovarov. 17
Ďalšie možné modely úloh LP 18
Ďalšie možné modely úloh LP Často je preto výhodnejšie zvoliť iné kritérium optimálnosti riešenia, napr. požiadavky v tvare - minimálneho počtu spotrebovaných polotovarov. To je možné definovať jednoducho zmenou tvaru účelovej funkcie na tvar z´ = x 1 + x 2 + x 3 + x 4 + x 5 + x 6 MIN. Po takejto modifikácii úlohy je možné získať riešenie (x 2=50, x 3=100, x 4=500, x 1=x 5= x 6=0, z´=650). Získame sice väčší odpad (z=200 m), avšak celkový počet použitých polotovarov sa zníži o 50 ks, tzn. celková narezaná dĺžka (650 x 8 = 5200) bude celkom o 400 m kratšia, ako v prípade a) t. j. minimalizácie odpadu. 19
Zmiešavacia úloha ÚLOHA Rafinéria chce vyrábať a predávať benzín, ktorý musí mať parametre: - výhrevnosť aspoň 3 [GJ / m 3] - oktánové číslo aspoň 72 [-]. Predávaný benzín je miešaný z troch druhov benzínov, ktorých parametre sú uvedené v tabuľke. Výhrevnosť aj oktánové číslo zmesi sú určené váženým aritmetickým priemerom ich zložiek. Určte najlacnejšiu zmes, ktorú môže podnik predávať. n n Benzín č. 1 2 3 Jedn. cena 4 3 6 Výhrevnosť 4 2 5 Oktán. číslo 69 73 79 O čom budeme rozhodovať ? ? ? O množstve (pomere) jednotlivých zložiek v jednotkovom množstve (jednotke objemu) výslednej zmesi !!! 20
Zmiešavacia úloha n n Benzín č. 1 2 3 Jedn. cena 4 3 6 Výhrevnosť 4 2 5 Okt. číslo 69 73 79 x 1 – množstvo 1. zložky v jednotke zmesi (x 1 0) x 2 – množstvo 2. zložky v jednotke zmesi (x 2 0) x 3 – množstvo 3. zložky v jednotke zmesi (x 3 0) x 1+x 2+ x 3 = 1 - štruktúrna (kapacitná) podmienka 21
Zmiešavacia úloha Benzín č. 1 2 3 Jedn. cena 4 3 6 Výhrevnosť 4 2 5 Oktan. číslo 69 73 79 Príklad: geometrický (vážený) priemer Zmiešaním 2 m 3 benzínu s výhrevnosťou 5 GJ/m 3 a 3 m 3 benzínu s výhrevnosťou 4 GJ/m 3 dostaneme 5 m 3 zmesi s výhrevnosťou v = (2*5+3*4) / (2+3) = 22 / 5 v = 4, 4 GJ / m 3. 22
Zmiešavacia úloha Benzín č. 1 2 3 Jedn. cena 4 3 6 Výhrevnosť 4 2 5 Oktan. číslo 69 73 79 Toto je ale rovné 1. Príklad: Zmiešaním 2 m 3 benzínu s výhrev. 5 GJ/m 3 a 3 m 3 benzínu s výhrevnosťou 4 GJ/m 3 dostaneme 5 m 3 zmesi s výhrevnosťou v = (2*5+3*4)/(2+3) = 4, 4 GJ/m 3.
Zmiešavacia úloha Benzín č. 1 2 3 Jedn. cena 4 3 6 Výhrevnosť 4 2 5 Oktan. číslo 69 73 79 Analogicky ako výhrevnosť 24
Zmiešavacia úloha Benzín č. 1 2 3 Jedn. cena 4 3 6 Výhrevnosť 4 2 5 Oktan. číslo 69 73 79 Príklad: geometrický (vážený) priemer Zmiešaním 2 m 3 benzínu s okt. číslom 80 a 3 m 3 benzínu s okt. číslom 70 získame 5 m 3 zmesi s oktanovým číslom Oc = (2*80+3*70)/(2+3) = 370/5 Oc = 74. 25
Zmiešavacia úloha Výsledný matematický model: Benzín č. 1 2 3 Jedn. cena 4 3 6 Výhrevnosť 4 2 5 Oktan. číslo 69 73 79 26
Ďalšie príklady modelov typu zmiešavací problém Príklad 7: Zmiešavacia úloha (nutričný problém) Podnikateľ chce vytvoriť kŕmnu zmes, ktorá by obsahovala aspoň 308 mg vápnika a aspoň 214 mg horčíka. Používa pritom dva typy krmív. Jeden kilogram krmiva K 1 obsahuje 10 mg vápnika, 8 mg horčíka a stojí 5 Eur. Jeden kilogram krmiva K 2 obsahuje 8 mg vápnika, 1 mg horčíka a stojí 0, 8 Eura. Úloha: stanoviť zloženie výslednej kŕmnej zmesi tak, aby náklady na nákup potrebných krmív boli čo najmenšie. 27
Zmiešavacia úloha 28
Ďalšie možné modely úloh LP Príklad 5: Optimálny plán nasadenia strojových zostáv Pri odstraňovaní následkov živelnej pohromy je potrebné vykonať zemné práce. Z prostriedkov, ktoré sú k dispozícií je možné zostaviť 5 funkčných strojových zostáv. Určite koľko a ktorých zostáv je vhodné vytvoriť, aby celkový výkon strojnej jednotky za zmenu bol maximálny. Východiskové údaje sú spracované v tabuľke. 29
Ďalšie možné modely úloh LP 30
Ďalšie možné modely úloh LP Príklad 8: Optimálna ochrana objektu Veliteľ má za úlohu brániť základňu proti leteckým útokom. K dispozícii má 5 kusov typu rakiet R 1 a 5 ks typu R 2. U rakety R 1 stojí inštalácia jednej z nich 7 jednotiek nákladov, u R 2 stojí inštalácia 8, 5 jednotiek. K dispozícii má celkom 60 jednotiek nákladov. Jedná raketa R 1 vyžaduje obsluhu 6 mužov, jedná raketa R 2 obsluhu 2 mužov. Pritom je k dispozícii 32 vycvičených mužov. V prípade, že by základňa nebola vôbec bránená, je predpoklad jej zničenia 95%. Jedná raketa R 1 je schopná ubrániť 13% hodnoty základne, raketa R 2 9%. Úlohou je zabezpečiť maximálnu možnú ochranu objektu príp. jeho minimálne zničenie. 31
Optimálna ochrana objektu 32
Grafická interpretácia úlohy lineárneho programovania n n Graficky, t. j. zobrazením prieniku jednotlivých OP je možné vyriešiť iba množinu prípustných riešení úloh LP, obsahujúcich max. 2 (rovina), príp. 3 (priestor) premenné. Jednému riešeniu t. j. dvojici hodnôt premenných, odpovedá práve jeden bod v ploche. Množine všetkých riešení s rovnakou hodnotou účelovej funkcie odpovedá priamka. Množine všetkých riešení s hodnotou účelovej funkcie menšej / väčšej ako zvolená hodnota odpovedá polrovina. 33
Grafická reprezentácia úlohy lineárneho programovania x 2 80 50 50 100 x 1 34
Grafická reprezentácia úlohy lineárneho programovania x 2 80 50 50 100 x 1 35
Grafická reprezentácia úlohy lineárneho programovania x 2 80 50 50 100 x 1 36
Grafická reprezentácia úlohy lineárneho programovania x 2 80 50 50 100 x 1 37
Grafická reprezentácia úlohy lineárneho programovania x 2 Ak má úloha lineárneho programovania optimálne riešenie, potom množina prípustných riešení má aspoň jeden krajný bod, predstavujúci optimálne riešenie. 80 50 50 100 x 1 38
Kedy neexistuje optimálne riešenie úlohy lineárneho programovania ? a) Ak je množina prípustných riešení úlohy prázdna. x 2 80 50 50 100 x 1 39
Kedy neexistuje optimálne riešenie úlohy lineárneho programovania ? x 2 b) Ak je množina prípustných riešení úlohy neobmedzená v „smere“ optimalizácie. 80 50 50 100 x 1 40
41
Dopravná úloha (Transportation Problem) Je potrebné čo najlacnejšie uspokojiť požiadavky odberateľov j = 1, 2, 3, 4 na dovoz bj ton cementu, kde hodnoty bj sú postupne 7, 8, 10 a 11. Požiadavky odberateľov je možné uspokojiť zo skladov i = 1, 2, 3, ktoré disponujú zásobami ai ton cementu, kde hodnoty ai sú pre i = 1, 2, 3 postupne 10, 15, 11. Jednotkové dopravné náklady cij na prepravu jednej tony cementu zo skladu i k spotrebiteľovi j sú v tabuľke (tzv. matici sadieb). cij 1 2 3 4 6 5 5 6 7 5 7 7 3 8 5 42
Dopravná úloha (Prezentácia v grafe) 10 15 11 S 2 S 3 O 1 7 O 2 8 O 3 10 O 4 11 43
Dopravná úloha (Prezentácia v grafe) 10 S 1 O 1 7 15 S 2 O 2 8 O 3 10 O 4 11 11 S 3 xij rozhodnutie o tom, koľko cementu sa povezie z i do j. 44
Dopravná úloha (Skladová podmienka) 10 S 1 O 1 7 15 S 2 O 2 8 O 3 10 O 4 11 11 S 3 45
Model dopravnej úlohy 46
Optimálne priradenie - Úloha o batohu (Knapsack Problem) Do batohu je možné uložiť náklad o hmotnosti 21 kg. Tento náklad je možné poskladať z i predmetov a i = 1, 2, 3, 4, 5, 6, které majú v poradí hmotnosti 12, 11, 10, 9, 9 a 8 a ktoré nie je možné deliť. S prepravou jednotlivých predmetov je spojený zisk, vo výške v poradí 16, 14, 13, 10, 9 a 6. Úloha: maximalizovať celkový zisk z prepravy predmetov, ak je možné s batohom absolvovať iba jednu jedinú cestu. 47
Optimálne priradenie - Úloha o batohu (Knapsack Problem) maximalizovať Z = 16 x 1+ 14 x 2+ 13 x 3+ 10 x 4 +9 x 5 + 6 x 6 za podmienok 12 x 1+ 11 x 2+ 10 x 3 + 9 x 4 +9 x 5 + 8 x 6 21 xj {0, 1} pre j = 1, . . . , 6. 48
Úloha plánovania výroby s nedeliteľnosťou Podnikatel vyrába a predáva zemiakové lupienky (ZL) a hranolčeky (H) so ziskom ZL 80 a H 50 peňažných jednotiek za kg produktu, pričom pre veľkoodber môže predávať iba v dohodnutom XXL balení a to lupienky v 15 kg a hranolčeky v 30 kg baleniach. Na výrobu 1 kg lupienkov je spotreba 2 kg zemiakov a 0, 4 kg oleja, na výrobu 1 kg hranolčekov je spotrebovaných 1, 5 kg zemiakov a 0, 2 kg oleja. Podnikateľ nakúpil pred zákazkou 100 kg zemiakov a 16 kg oleja za ceny 12 a 40 peňažných jednotiek za kilogram. Aké množstvo jednotlivých produktov sa má vyrábať a predávať, aby podnikateľ maximalizoval svoj zisk, ale aby zároveň rešpektoval obmedzené množstvá oboch surovín, které má k dispozícii? 49
Model úlohy plánovania výroby s nedeliteľnosťou 50
Model úlohy plánovania výroby s nedeliteľnosťou 51
Grafická reprezentácia úlohy plánovania výroby s nedeliteľnosťou x 2 4 3 2 1 1 2 3 4 x 1 52
Grafická reprezentácia úlohy plánovania výroby s nedeliteľnosťou x 2 4 Optimálne riešenie je 3 2 1 1 2 3 4 x 1 53
Princíp algoritmu simplexovej metódy n n n Algoritmus hľadá optimálne riešenie iba v krajných bodoch množiny prípustných riešení úlohy LP. Začíná prehľadávať vo východiskovom krajnom bode a vždy v jednom iteračnom kroku prejde k susednému krajnému bodu s menšou hodnotou účelovej funkcie. Pokiaľ žiadný susedný krajný bod s menšou hodnotou účelovej funkcie neexistuje, algoritmus končí. 54
Kanonický tvar modelu úlohy lineárneho programovania n n n Minimalizácia účelovej funkcie (upraviť vynásobením koeficientov hodnotou -1) Pravé strany štrukturálnych podmienok iba nezáporné čísla (upraviť vynásobením štrukturálnych podmienok – 1) Štrukturálne podmienky sú iba v tvare rovností (upraviž zavedením doplnkových premenných) 55
Úprava modelu úlohy lineárneho programovania na kanonický tvar 56
Úprava modelu úlohy lineárneho programovania na kanonický tvar n Doplnkové premenné („slack variables“) majú napr. v zadanom príklade význam nespotrebovaných zemiakov a nespotrebovaného oleja. 57
0 -1 báza v kanonickom tvare modelu úlohy lineárneho programovania n Stĺpce matice ľavých strán úlohy vytvárajú 0 - 1 bázu, pokiaľ ich je práve toľko čo štrukturálnych podmienok, každý z nich má len jedinú jednotku a inak nuly a každá jednotka leží v inom riadku. 58
Bázické prípustné riešenia n Každá 0 -1 báza úlohy lineárneho programovania v kanonickom tvare jednoznačne určuje tzv. bázické prípustné riešenie. 59
- Slides: 59