Úterý 11:00 – 12:30 hod. učebna 212 RB © Lagová, Kalčevová 4EK213 – LINEÁRNÍ MODELY Úterý 11:00 – 12:30 hod. učebna 212 RB © Lagová, Kalčevová
3. přednáška SIMPLEXOVÁ METODA I. © Lagová, Kalčevová
OSNOVA PŘEDNÁŠKY Princip simplexové metody Výchozí řešení SM Zlepšení řešení Transformace Simplexová tabulka Přírůstek účelové funkce Alternativní OŘ © L&K
Příklad 3.1 Najděte podle základní věty LP OŘ této úlohy graficky: x1 + 2x2 ≤ 120 x1 + 4x2 ≤ 180 (3.1) x1 ≤ 110 xj ≥ 0, j = 1, 2 z = 40x1 + 60x2 ... max. Kolik bude mít soustava ekvivalentních rovnic ZŘ .............................................. ? © L&K
Grafické řešení Obrázek 3.1 − ZPŘ úlohy (3.1) x2 I B C H D G x1 F A E 60 45 B C 40 H D G F x1 A 60 E 110 120 180 Obrázek 3.1 − ZPŘ úlohy (3.1) © L&K
Z nich pět je nezáporných Úloha má devět ZŘ, desáté je v nekoneč-nu (třetí omezení je rovnoběžné s osou x2) Z nich pět je nezáporných Optimálním řešením je to ZPŘ, které má nejvyšší hodnotu účelové funkce: A: x(1) = (0, 0, 120, 180, 110)T, z = 0 B: x(2) = (0, 45, 30, 0, 110)T, z = 2700 C: x(3) = (60, 30, 0, 0, 50)T, z = 4200 D: x(4) = (110, 5, 0, 50, 0)T, z = 4700 E: x(5) = (110, 0, 10, 70, 0)T, z = 4400. © L&K
SIMPLEXOVÁ METODA Jak jsme viděli, je možno OŘ úlohy LP nalézt mezi základními přípustnými ře-šeními V praxi však vzniká zásadní problém, kterým je počet ZPŘ S rostoucím m a n roste horní hranice počtu ZPŘ velice rychle Např. pro n = 10, m = 5 je to 252 n = 100, m = 10 je větší než bilión n = 1000, m = 400 je to 5.10290 © L&K
Je však možné využít základní větu LP efektivněji Není třeba počítat všechna ZŘ, ale vhod-ně z nich vybírat: − pouze základní přípustná řešení − z nich vybírat jen ta, která jsou vzhle- dem k hledanému extrému „perspek- tivní“ Znamená to vlastně sledovat „cestu“, která vede přes základní přípustná ře-šení k základnímu optimálnímu řešení © L&K
simplexová metoda (SM) Metodu odvodil a její konečnost dokázal v padesátých letech 20. století americký vědec německého původu George Ber-nard Dantzig Podle její grafické interpretace ji nazval simplexová metoda (SM) Konvexní obal n +1 bodů (n bodů a počátek) je nazýván n-rozměrný Je to tedy konvexní množina, která má počátek a konečný počet krajních bodů s i m p l e x © L&K
PRINCIP SM Najdeme jedno ze ZPŘ úlohy LP, které považujeme za výchozí řešení (VŘ) iteračního postupu Přejdeme k dalšímu ZPŘ, které má lepší hodnotu účelové funkce (v krajním případě stejnou) V konečném počtu kroků dojdeme buď: − k optimálnímu řešení − nebo k závěru, že OŘ neexistuje © L&K
VÝCHOZÍ ŘEŠENÍ SM Teoreticky může být výchozím řešením libovolné ZŘ soustavy ekvivalentních rov-nic v (2.14), které splňuje i podmínky ne-zápornosti Náhodným výběrem je však obtížné zajistit nezápornost libovolného ZŘ Zvolíme např. v (2.13) náhodně: x2 = 0, x4 = 0 © L&K
Základním řešením je vektor ................. ? x1 + 2x2 + x3 = 120 x1 + 4x2 + x4 = 180 x1 − x2 − x5 = 90 x1 + x6 = 110 Dosadíme x2 = 0, x4 = 0 Základním řešením je vektor ................. ? x = (180, 0, -60, 0, 90, -70)T Vidíme, že toto ZŘ soustavy rovnic je ne-přípustné © L&K
JEDNOFÁZOVÁ SM Nejjednodušší je nalezení výchozího řeše-ní v soustavě vlastních omezení, která ob-sahuje pouze nerovnice typu ≤ Ke každé nerovnici ≤ přičteme přídatnou proměnnou Přídatné proměnné mají jednotkový vektor koeficientů Dostaneme tak soustavu rovnic v kano-nickém tvaru ....................................... ? © L&K
Výchozím řešením je tedy vektor Položíme-li všechny strukturní proměnné rovny nule, je přídatná proměnná rovna pravé straně svého omezení Výchozím řešením je tedy vektor x(1) = (0, 0, ..., 0, b1, ..., bm ) (3.2) Toto řešení má maximálně* m kladných složek (základní proměnné), tj. mini-málně n složek nulových (nezákladní pro-měnné) Podle definice je to tedy ZPŘ © L&K
Příklad 3.2 Vypočtěte výchozí řešení úlohy (3.1) 1. Nerovnice vyrovnáme na rovnice: x1 + 2x2 + x3 = 120 x1 + 4x2 + x4 = 180 (3.3) x1 + x5 = 110 xj ≥ 0, j = 1, 2, …, 5 Dosadíme nulové hodnoty strukturních proměnných x1= 0, x2 = 0 Vypočteme x3 = 120, x4 = 180 x5 = 110 © L&K
Proměnné x3, x4 a x5 jsou základní pro-měnné (bázické) Hodnota základní proměnné je rovna pravé straně omezení Proměnné x1, x2 jsou nezákladní (nebá-zické) Hodnota nezákladní proměnné je rovna nule Vektor x(1) = (0, 0, 120, 180, 110)T (3.4) je výchozím řešením SM © L&K
Dostáváme MM v kanonickém tvaru: x1 + 2x2 + x3 = 120 2. Upravíme účelovou funkci tak, aby všech-ny proměnné byly na levé straně, tj. anu-lujeme ji: z - 40x1 - 60x2 = 0 (3.5) Dostáváme MM v kanonickém tvaru: x1 + 2x2 + x3 = 120 x1 + 4x2 + x4 = 180 x1 + x5 = 110 - 40x1 - 60x2 + z = 0 xj ≥ 0, j = 1, 2, …, 5 © L&K
Čtvrtou základní proměnnou je zde z Má zvláštní postavení, zůstává základní proměnnou po celou dobu výpočtu Výchozí hodnota účelové funkce je z(1) = 0 Výchozí řešení můžeme zapsat včetně této hodnoty: x(1) = (0, 0, 120, 180, 110, 0) Grafickým znázorněním výchozího řešení je bod se souřadnicemi [0,0], tj. počátek © L&K
ITERAČNÍ POSTUP Po získání výchozího řešení začíná opa-kování iterací SM Každá iterace SM má tři části: test optima zlepšení řešení transformace Podle základní věty LP končí iterační postup v konečném počtu kroků naleze-ním OŘ nebo zjištěním, že neexistuje © L&K
1. TEST OPTIMA Položíme si otázku: Co se stane s hodnotou účelové funkce, jestliže nulovou hodnotu některé nezákladní proměnné zvýšíme? Vyjdeme z výchozího řešení (3.4): x(1) = (0, 0, 120, 180, 110)T Položíme x1=1 a dosadíme do anulované účelové funkce (3.5): z − 40x1 = 0, tj. z = 0+40.1=40 Zvýší-li se hodnota proměnné x1 o jednot-ku, vzroste hodnota z o 40 © L&K
Položme nyní x2 =1. Po dosazení je z − 60x2 = 0, tj. z = 60 S růstem proměnné x2 o jednotku vzroste hodnota z o 60 Je-li u nezákladní proměnné v anulované účelové funkci záporný koeficient, s růs-tem hodnoty této proměnné hodnota úče-lové funkce z vzroste Absolutní hodnota tohoto koeficientu ukazuje velikost přírůstku funkce z na jednu jednotku proměnné xj © L&K
2. ZLEPŠENÍ ŘEŠENÍ Zvolíme některou nezákladní proměnnou se záporným koeficientem v účelové funkci (3.5): z - 40x1 - 60x2 = 0 Je-li v účelové funkci více záporných koefi-cientů, volíme obvykle ten, který znamená nejvyšší přírůstek účelové funkce na jed-notku proměnné, tj. nejmenší koeficient Podle koeficientů v řádce z je v absolutní hodnotě (tj. nejmenší) vyšší druhý, zvo-líme tedy x2 © L&K
Tato proměnná bude mít v další iteraci kladnou hodnotu (označíme ji obecně t) V omezeních (3.4) dosadíme x2 = t > 0 : x1 + 2t + x3 = 120 x1 + 4t + x4 = 180 (3.6) x1 + x5 = 110 Dosadíme x1 = 0 a vypočteme hodnoty základních proměnných: x3 = x4 = (3.7) x5 = © L&K
Z podmínek nezápornosti vyplývá: x3 = 120 − 2t ≥ 0 Odtud je ................................................. ? Zvolíme nejvyšší možnou hodnotu t: t = min (60, 45) = 45 (3.9) © L&K
Dosadíme do (3.8) a vypočteme nové hod-noty základních proměnných ................. ? x3 = x4 = x5 = Vidíme, že proměnná x4 se vynulovala, proměnné s kladnou hodnotou jsou opět tři: x(2) = (0, 45, 30, 0, 110)T Vektor x(2) je tedy ZPŘ © L&K
a. Zvolíme nejdříve t < 45 Co se stane, jestliže hodnotu nové základ-ní proměnné nezvolíme podle (3.9)? a. Zvolíme nejdříve t < 45 např. pro t = 30 je z (3.8) nové řešení...? Je to PŘ ................................................. ? Je to ZPŘ................................................. ? © L&K
např. pro t = 50 je nové řešení .............. ? b. Zvolíme nyní t > 45 např. pro t = 50 je nové řešení .............. ? Je to ZPŘ ............................................... ? Graficky odpovídá výměně základní pro-měnné a nezákladní proměnné přechod od jednoho vrcholu konvexního polyedru ke druhému © L&K
3. TRANSFORMACE ŘEŠENÍ Novou základní proměnnou nazveme vstupující proměnná Proměnnou, jejíž hodnota se vynulovala nazveme vystupující proměnná Vstupující proměnná je v další iteraci zá-kladní, musí proto mít jednotkový vektor koeficientů Soustavu omezení i účelovou funkci bude-me transformovat Gaussovou metodou úplné eliminace Výpočet uspořádáme do tabulky © L&K
SIMPLEXOVÁ TABULKA Řádky tabulky (ST) odpovídají vlastním omezením V posledním řádku je účelová funkce Sloupce tabulky odpovídají vektorům koe-ficientů strukturních a přídatných proměn-ných Pravé strany vlastních omezení jsou po-sledním sloupcem tabulky V prvním sloupci jsou základní proměnné dané iterace © L&K
Výchozí řešení Strukturní proměnné Přídatné proměnné Pravé strany Strukturní koeficienty Tab. 3.1 Koeficienty účelové funkce Hodnota účelové funkce Základní proměnné © L&K
Ze simplexové tabulky přečteme ZPŘ: − hodnoty základních proměnných jsou rovny pravým stranám − nezákladní proměnné jsou rovny nule V tabulce 3.1 jsou základní proměnné: x3 = 120, x4 = 180,x5 = 120 Nezákladní proměnné jsou: x1 = 0, x2 = 0 Vektor výchozího řešení je: x(1)=(0, 0, 120, 180, 120), z(1)=0 Grafickým znázorněním je bod A © L&K
„Pan Simplex“ přichází 1 x1 + 2 x2 £ 120 [0,60] B [0,45] C [60,30] 1 x1 + 4 x2 £ 180 D [110,5] x1 Obrázek 3.2 − Výchozí ZPŘ [0,0] A [110,0] E [120,0] © L&K
1. Test optima a určení vstupující proměnné Najdeme nejmenší koeficient v řádce z: a. je-li nezáporný, není možno zvýšit hodnotu účelové funkce: → OŘ b. je-li záporný, nalezli jsme proměnnou, která zlepší hodnotu účelové funkce: → vstupující proměnná Sloupec této proměnné označíme jako klíčový sloupec © L&K
Klíčový sloupec Tab. 3.2 Nejmenší koeficient v řádce účelové funkce je −60: vstupující proměnnou je x2, klíčový sloupec je druhý © L&K
2. Určení vystupující proměnné Tabulku rozšíříme o další sloupec, který označíme symbolem t Vypočteme podíly pravých stran bi a klad-ných koeficientů klíčového sloupce a za-píšeme do sloupce t Najdeme nejmenší z vypočtených podílů Určíme tak vystupující proměnnou a klíčový řádek © L&K
Klíčový řádek x3 = 120 − 2.t ≥ 0 → t =120/2 = 60 Tab. 3.3 x3 = 120 − 2.t ≥ 0 → t =120/2 = 60 x4 = 180 − 4.t ≥ 0 → t = 180/4 = 45 Pro x5 hodnotu t neurčujeme Vystupující proměnnou je x4, klíčový řá- dek je druhý © L&K
Klíčový prvek klíčový prvek Tab. 3.4 Na průsečíku klíčového sloupce a klíčového řádku leží klíčový prvek Tabulku transformujeme metodou úplné eliminace tak, aby v klíčovém sloupci byl jednotkový vektor s jedničkou na místě klíčového prvku © L&K
3. TRANSFORMACE ŘEŠENÍ 1. V klíčovém řádku zapíšeme proměnnou x2 2. Klíčový řádek dělíme 4 3. Násobíme ho (-2) a připočteme k 1. řádku 4. Třetí řádek opíšeme 5. Klíčový řádek násobíme (-60) a přičteme k účelové funkci • Novým řešením je vektor x(2)=(0, 45, 30, 0, 110), z(2)=2700 • Grafickým znázorněním je bod B © L&K
Transformace tabulky x 1/2 - 30 1/4 45 110 z 25 15 2700 (+60) (-2) Proměnné x 1 2 3 4 5 i 1/2 - 30 1/4 45 110 z j 25 15 2700 (+60) (-2) Tab. 3.5 © L&K
„Pan Simplex“ začíná vyrábět 1 x1 + 2 x2 £ 120 [0,60] B [0,45] C [60,30] 1 x1 + 4 x2 £ 180 D [110,5] x1 Obrázek 3.3 − 2. iterace [0,0] A [110,0] E [120,0] © L&K
Zlepšení řešení Řešení v tabulce 3.6 x(2)=(0,45,30,0,110)T,z=2700 Proměnné x 1 2 3 4 5 i t 1/2 - /2 30 60 1/4 45 180 110 z j 25 15 2700 Tab. 3.6 Řešení v tabulce 3.6 x(2)=(0,45,30,0,110)T,z=2700 není optimální Vstupující proměnná je x1 Vystupující proměnná je x3 ? - odvoďte © L&K
Transformace tabulky V tabulce 3.7 je řešení Proměnné x 1 2 3 4 5 i t - 60 1/2 30 50 z j 10 4200 Tab. 2.9 Tab. 3.7 V tabulce 3.7 je řešení x(3)=(60, 30, 0, 0, 50)T,z = 4200 Grafickým znázorněním je vrchol C ´´ © L&K
„Pan Simplex“ zvyšuje zisk 1 x1 + 2 x2 £ 120 [0,60] B [0,45] C [60,30] 1 x1 + 4 x2 £ 180 D [110,5] x1 Obrázek 3.4 − 3. iterace [0,0] A [110,0] E [120,0] © L&K
Zlepšení řešení Řešení v tabulce 3.8 x(3)=(60, 30, 0, 0, 50)T,z = 4200 Proměnné x 1 2 3 4 5 i t - 60 1/2 30 50 z j 10 4200 Tab. 2.9 Tab. 3.8 Řešení v tabulce 3.8 x(3)=(60, 30, 0, 0, 50)T,z = 4200 není optimální Vstupující proměnná je ? Vystupující proměnná je ? © L&K
Transformace tabulky 50 záporný koeficient. Řešení v tabulce 3.9 je Test optima: v řádce účelové funkce není žádný záporný koeficient. Řešení v tabulce 3.9 je optimální: x(4) = (110, 5, 0, 50, 0)T, z = 4700. Grafickým znázorněním je bod D © L&K
„Pan Simplex“ nachází optimum 1 x1 + 2 x2 £ 120 [0,60] B [0,45] C [60,30] 1 x1 + 4 x2 £ 180 D [110,5] OPTIMUM x1 Obrázek 3.6 − OŘ [0,0] A [110,0] E [120,0] © L&K
Ekonomická interpretace OŘ V (3.1) jsme z úlohy LP v příkladu 1.1 vy-nechali třetí omezení, ostatní interpretace se nemění Z tab. 3.9 přečteme vektor OŘ: x (4) = (110, 5, 0, 50, 0)T, z = 4700 Firma bude vyrábět 110 krabiček šroubků a 5 krabiček matic Čas lisu je celý využit, balicí linka má 50 minut volných, počet KŠ je přesně 110 Maximální zisk je 4700 Kč © L&K
Verifikace OŘ Všechny podmínky modelu jsou splněny: 1. Spotřeba času lisu nepřekročí 120 min. 2. Balení spotřebuje jen 130 min. 3. Počet krabiček šroubků dosáhne horní hranice 110 © L&K
PŘÍRŮSTEK z Rozdíl mezi novou a původní hodnotou účelové funkce: ∆z = − zj . t (3.10) je absolutní přírůstek* účelové funkce Je dán součinem dvou veličin: jednotkovým přírůstkem účelové funkce ( koeficient zj * (násobený -1)) maximální možnou velikostí vstupující proměnné (t) © L&K
Příklad 3.3 Zopakujeme: V tabulce 3.2 jsme vybrali v první iteraci vstupující proměnnou x2 : Absolutní přírůstek účelové funkce je ? © L&K
Přírůstek účelové funkce přinese i pro-měnná x1 Jednotkový přírůstek je .......................... ? Proměnná x1 může nabýt hodnoty ? Celkový přírůstek účelové funkce je ? Vidíme, že proměnná x1 přinese větší pří-růstek účelové funkce © L&K
Výpočet v LinPro pující proměnná je x1 Tab. 3.10 Jako klíčový sloupec vybereme první, vstu- pující proměnná je x1 © L&K
2. iterace Tab. 3.11 Vstupující proměnná je x2 © L&K
3. iterace Tab. 3.12 Ve třetí iteraci jsme našli OŘ .................... ? © L&K
„Pan Simplex“ jde jinudy 1 x1 + 2 x2 £ 120 [0,60] B [0,45] C [60,30] 1 x1 + 4 x2 £ 180 D [110,5] OPTIMUM A x1 [0,0] [110,0] E [120,0] Obrázek 3.7 − „Jiná cesta“ © L&K
ALTERNATIVNÍ OŘ Jakou hodnotu má koeficient zj u nezá-kladní proměnné xj v OŘ* ....................... ? a. zj > 0: s růstem hodnoty xj se hod- nota z sníží b. zj = 0: s růstem hodnoty xj se hod- nota z nezmění - zvolíme-li proměnnou xj jako vstupu- jící, dostaneme v další iteraci jiné OŘ - tzv. alternativní OŘ © L&K
Nové OŘ má stejnou hodnotu účelové funkce Má ale jiné základní proměnné Víme, že v tomto případě je OŘ nekoneč-ně mnoho Jak je vypočteme .................................. ? Takto vypočtené OŘ není základní, pouze přípustné © L&K
Příklad 3.4 x1 + 2x2 ≤ 120 x1 + 4x2 ≤ 180 x1 ≤ 110 xj ≥ 0, j = 1, 2 • Uvažujme kapacitní problém (3.1) x1 + 2x2 ≤ 120 x1 + 4x2 ≤ 180 x1 ≤ 110 xj ≥ 0, j = 1, 2 s novou účelovou funkcí* z = 40x1+ 80x2 ... max. • Simplexovou metodou vypočteme OŘ © L&K
OŘ v LinPro Tab. 3.13 Řešení v tabulce je optimální: x(3)=(60, 30, 0, 0, 50)T, z = 4800 U nezákladní proměnné x4 je z4 = 0 AOŘ Přejdeme k ručně řízenému výpočtu © L&K
Ručně řízený výpočet Zvolíme klíčový sloupec čtvrtý, klíčový řádek Tab. 3.14 Zvolíme klíčový sloupec čtvrtý, klíčový řádek třetí Transformujeme řešení © L&K
AOŘ Tab. 3.15 V tabulce je AOŘ: x(4) = (110, 5, 50, 0, 0)T, z = 4800 U nezákladní proměnné x5 je koeficient z5 = 0 © L&K
Optimálním řešením je i každá konvexní kombinace dosud vypočtených OŘ Např.: x(5)= 1/3 x(3) + 2/3 x(4) = = 1/3 (60, 30, 0, 0, 50)T + + 2/3 (110, 5, 0, 50, 0)T = = (93 1/3, 13 1/3, 0, 33 1/3, 16 2/3) z(5)= 93 1/3 . 40 + 13 1/3 . 80 = 4800 Je toto OŘ základní ............................. ? © L&K
„Pan Simplex“ a jiná funkce zisku 1 x1 + 2 x2 £ 120 [0,60] B [0,45] C [60,30] 1 x1 + 4 x2 £ 180 OPTIMUM F OPTIMUM [931/3, 131/3] D [110,5] OPTIMUM x1 [0,0] A [110,0] E [120,0] Obrázek 3.8 − Alternativní OŘ © L&K
KONEC © L&K