410 likes | 1.03k Views
Lineární programování Simplexový algoritmus. Základní pojmy. Přípustné řešení - množina přípustných řešení Bázické řešení (vrchol) Optimální řešení Alternativní řešení Suboptimální řešení. Řešitelnost úlohy. Řešení neexistuje neexistuje řešení omezujících podmínek
E N D
Základní pojmy • Přípustné řešení - množina přípustných řešení • Bázické řešení (vrchol) • Optimální řešení • Alternativní řešení • Suboptimální řešení
Řešitelnost úlohy • Řešení neexistuje • neexistuje řešení omezujících podmínek • kriteriální funkce je neomezená v požadovaném směru • Existuje právě jedno řešení • jediné a bázické • Existuje nekonečně mnoho řešení • dvě a více bázická optimální (alternativní) řešení
Základní věty • Má-li úloha LP přípustné řešení, má i přípustné bázické řešení. • Má-li úloha LP optimální řešení, má i optimální bázické řešení. • Optimální řešení úlohy LP leží vždy na hranici množiny přípustných řešení. • Má-li úloha LP více než jedno optimální řešení řešení, je optimálním řešením i jejich konvexní kombinace.
Simplexový algoritmus • Výchozí řešení ve tvaru rovnic • Soustava lineárních rovnic v kanonickém tvaru • Nezápornost pravých stran • Test optima (vstupu) • Test přípustnosti báze (výstupu • Přechod na nové řešení Jordanovou eliminační metodou
Soustava omezujících podmínek • Numericky umíme řešit pouze soustavy lineárních rovnice, nikoliv nerovnic • Jordanova eliminační metoda – bázické řešení převedeme na
Kapacitní podmínky • Axb • Ax + Ed = b, d0 doplňkové proměnné
Požadavkové podmínky • Axb • Ax-Ed + Ep = b, d0 doplňkové proměnné + pomocné proměnné
Podmínky v rovnicovém tvaru • určení, bilanční a pod. • Ax=b • Ax + Ep = b, p0 pomocné proměnné
Strukturní Vycházejí ze zadání úlohy Doplňkové Doplňují nerovnice na rovnice Rezerva v kapacitních podmínkách - kladný koeficient 1 Překročení v požadavkových podmínkách - záporný koeficient -1 Umělé Vytvářejí jednotkovou matici Druhy proměnných
xB xN xB ANE b Bázické řešení • Kanonický tvar soustavy rovnic • Proměnné s jednotkovými vektory - bázické • Řešení VZHLEDEM k bázickým proměnným
Příklad Na 300 ha orné půdy se bude pěstovat pšenice, ječmen a řepka. K dispozici je 50 t NPK. Řepku je možno pěstovat na nejvýše 20 ha, ječmen alespoň na 100 ha. Rozhodněte, na kolika ha kterou plodinu pěstovat, aby zisk byl maximální.
Simplexová tabulka Výchozí řešení Bázické proměnné
Cena ekvivalentní lineární kombinace zj - cj = iij.ci - cj zj - cj 0skutečná cena (náklady) nižší než bázická zj - cj 0skutečná cena (zisk) vyšší než bázická Optimální řešení Maximalizace: všechna (zj - cj) nezáporná Minimalizace: všechna (zj - cj) nekladná Test optimality
Test optimality Vstupující proměnná
Vstup proměnné do báze Výsledek testu optimality Maximalizace • Do báze vstupuje proměnná, která má zj - cj 0 a největší v absolutní hodnotě • v našem příkladu x2 Minimalizace • Do báze vstupuje proměnná, která má zj - cj 0 a s největší hodnotou
Test přípustnosti Zaručuje nezápornost řešení Pro vstupující proměnnou xj 0 musí platit Je-li ij> 0 ... Ω = bj/ij Je-li ij 0 ... Výpočet se neprovádí Vystupující proměnná je v řádku, kde je minimální Ω
Test přípustnosti Vstupující proměnná Ω Pivot Vstupující proměnná
Přechod na nové řešení • Sloupec j-té proměnné, která vstupuje do báze se nazývá klíčový sloupec • Řádek i-té proměnné, která vystupuje z báze se nazývá klíčový řádek • Průsečík klíčového sloupce a řádku je klíčový prvek (pivot)
Postup eliminační metody • Klíčový řádek dělíme klíčovým prvkem • Upravený klíčový řádek zapíšeme do další tabulky • Pro úpravu dalšího řádku násobíme upravený klíčový řádek prvkem v upravovaném řádku v klíčovém sloupci (leží pod nebo nad pivotem) • Vynásobený klíčový řádek od původního upravovaného řádku odečteme
Nové řešení Nová báze
Interpretace optimálního řešení x1=0 (nebázická) pšenice se pěstovat nebude x2=280 ječmen se bude pěstovat na 280 ha x3=20 řepka se bude pěstovat na 20 ha x4=0 (nebázická) žádná rezerva orné půdy x5=7,6 rezerva NPK je 7,6 t x6=0 (nebázická) žádná rezerva půdy pro řepku x7=180 překročení plochy ječmene Zisk bude 480 tis. Kč.
Příklad 2 • Výrobky A a B se opracovávají na dvou strojích. • Výrobku A je třeba vyrobit alespoň 14 kusů. • Kapacita prvního stroje je 3000 hodin a kapacita druhého stroje je 1000 hodin. • Požadavky výrobků na strojní hodiny viz tabulka. • Sestavte výrobní program, který dosáhne maximálního zisku.
Sestavení modelu X1 …počet výrobků A X2…počet výrobků B Výrobku A alespoň 14 kusů Kapacita prvního stroje je 3000 hodin Kapacita druhého stroje je 1000 hodin Počty výrobků jsou nezáporné Maximalizujeme zisk
Klíčový řádek násobíme (-80) a přičítáme k druhému řádku Úprava druhého řádku
Klíčový řádek násobíme (-20) a přičítáme ke třetímu řádku Úprava třetího řádku
Výsledek řešení x1=14 výrobků typu A bude 14 kusů x2=360 výrobků typu B bude 360 kusů x3=0 x4=1160 volná kapacita 1. stroje x5=0 Zisk bude 11220 tis. Kč.