7 Výpočet simplexové metody

Podobné dokumenty
6 Simplexová metoda: Principy

4EK213 Lineární modely. 4. Simplexová metoda - závěr

4EK213 LINEÁRNÍ MODELY

Parametrické programování

fakulty MENDELU v Brně (LDF) s ohledem na disciplíny společného základu (reg. č. CZ.1.07/2.2.00/28.

LDF MENDELU. Simona Fišnarová (MENDELU) Základy lineárního programování VMAT, IMT 1 / 25

1. července 2010

Základy matematiky pro FEK

0.1 Úvod do lineární algebry

Problém lineární komplementarity a kvadratické programování

IB112 Základy matematiky

Ekonomická formulace. Matematický model

Metody lineární optimalizace Simplexová metoda. Distribuční úlohy

(Cramerovo pravidlo, determinanty, inverzní matice)

Determinant matice řádu 5 budeme počítat opakovaným použitím rozvoje determinantu podle vybraného řádku nebo sloupce. Aby byl náš výpočet

Výběr báze. u n. a 1 u 1

Matematika (CŽV Kadaň) aneb Úvod do lineární algebry Matice a soustavy rovnic

Necht tedy máme přirozená čísla n, k pod pojmem systém lineárních rovnic rozumíme rovnice ve tvaru

1.Modifikace simplexové metody

0.1 Úvod do lineární algebry

Cvičení z Numerických metod I - 12.týden

INVESTICE DO ROZVOJE VZDĚLÁVÁNÍ. Modernizace studijního programu Matematika na PřF Univerzity Palackého v Olomouci CZ.1.07/2.2.00/28.

4EK213 Lineární modely. 10. Celočíselné programování

Matice přechodu. Pozorování 2. Základní úkol: Určete matici přechodu od báze M k bázi N. Každou bázi napíšeme do sloupců matice, např.

Soustavy lineárních rovnic

Operace s maticemi. 19. února 2018

Katedra aplikované matematiky FEI VŠB Technická univerzita Ostrava luk76/la1

Determinanty. Obsah. Aplikovaná matematika I. Pierre Simon de Laplace. Definice determinantu. Laplaceův rozvoj Vlastnosti determinantu.

Vektory a matice. Obsah. Aplikovaná matematika I. Carl Friedrich Gauss. Základní pojmy a operace

Lineární programování

MATICE. a 11 a 12 a 1n a 21 a 22 a 2n A = = [a ij]

Soustavy linea rnı ch rovnic

skladbu obou směsí ( v tunách komponenty na 1 tunu směsi):

Aplikovaná numerická matematika - ANM

vyjádřete ve tvaru lineární kombinace čtverců (lineární kombinace druhých mocnin). Rozhodněte o definitnosti kvadratické formy κ(x).

Vektorový prostor. Př.1. R 2 ; R 3 ; R n Dvě operace v R n : u + v = (u 1 + v 1,...u n + v n ), V (E 3 )...množina vektorů v E 3,

1 Determinanty a inverzní matice

4EK213 Lineární modely. 5. Dualita v úlohách LP

2 Spojité modely rozhodování

12. Lineární programování

4EK201 Matematické modelování. 2. Lineární programování

Soustavy. Terminologie. Dva pohledy na soustavu lin. rovnic. Definice: Necht A = (a i,j ) R m,n je matice, b R m,1 je jednosloupcová.

Operace s maticemi

Maticí typu (m, n), kde m, n jsou přirozená čísla, se rozumí soubor mn veličin a jk zapsaných do m řádků a n sloupců tvaru:

2. Určete jádro KerL zobrazení L, tj. nalezněte alespoň jednu jeho bázi a určete jeho dimenzi.

Číselné vektory, matice, determinanty

Úvodní informace Soustavy lineárních rovnic. 12. února 2018

Uspořádanou n-tici reálných čísel nazveme aritmetický vektor (vektor), ā = (a 1, a 2,..., a n ). Čísla a 1, a 2,..., a n se nazývají složky vektoru

Lineární algebra - I. část (vektory, matice a jejich využití)

VYBRANÉ PARTIE Z NUMERICKÉ MATEMATIKY

Úvod do lineární algebry

příkladů do cvičení. V textu se objeví i pár detailů, které jsem nestihl (na které jsem zapomněl) a(b u) = (ab) u, u + ( u) = 0 = ( u) + u.

Připomenutí co je to soustava lineárních rovnic

Simplexové tabulky z minule. (KMI ZF JU) Lineární programování EMM a OA O6 1 / 25

1 Projekce a projektory

Základy maticového počtu Matice, determinant, definitnost

SOUSTAVY LINEÁRNÍCH ALGEBRAICKÝCH ROVNIC

13. Lineární programování

9 Kolmost vektorových podprostorů

INVESTICE DO ROZVOJE VZDĚLÁVÁNÍ. Modernizace studijního programu Matematika na PřF Univerzity Palackého v Olomouci CZ.1.07/2.2.00/28.

Matice. Předpokládejme, že A = (a ij ) je matice typu m n: diagonálou jsou rovny nule.

Jiří Neubauer. Katedra ekonometrie FEM UO Brno

HODNOST A DETERMINANT MATICE, INVERZNÍ MATICE

VI. Maticový počet. VI.1. Základní operace s maticemi. Definice. Tabulku

2.6. VLASTNÍ ČÍSLA A VEKTORY MATIC

Matice se v některých publikacích uvádějí v hranatých závorkách, v jiných v kulatých závorkách. My se budeme držet zápisu s kulatými závorkami.

HODNOST A DETERMINANT MATICE, INVERZNÍ MATICE

1 Vektorové prostory.

4EK213 Lineární modely. 12. Dopravní problém výchozí řešení

KOMPLEXNÍ ČÍSLA INVESTICE DO ROZVOJE VZDĚLÁVÁNÍ

4EK213 LINEÁRNÍ MODELY

9.3. Úplná lineární rovnice s konstantními koeficienty

7. přednáška Systémová analýza a modelování. Přiřazovací problém

1 Řešení soustav lineárních rovnic

Matematika 1 MA1. 2 Determinant. 3 Adjungovaná matice. 4 Cramerovo pravidlo. 11. přednáška ( ) Matematika 1 1 / 29

1 Soustavy lineárních rovnic

10. Soustavy lineárních rovnic, determinanty, Cramerovo pravidlo

Operační výzkum. Vícekriteriální programování. Lexikografická metoda. Metoda agregace účelových funkcí. Cílové programování.

Co je obsahem numerických metod?

Matice. Modifikace matic eliminační metodou. α A = α a 2,1, α a 2,2,..., α a 2,n α a m,1, α a m,2,..., α a m,n

Učební texty k státní bakalářské zkoušce Matematika Základy lineárního programování. študenti MFF 15. augusta 2008

a počtem sloupců druhé matice. Spočítejme součin A.B. Označme matici A.B = M, pro její prvky platí:

Nalezněte obecné řešení diferenciální rovnice (pomocí separace proměnných) a řešení Cauchyho úlohy: =, 0 = 1 = 1. ln = +,

Řešení. Hledaná dimenze je (podle definice) rovna hodnosti matice. a a 2 2 1

DIPLOMOVÁ PRÁCE. Petra Váchová Lineární programování ve výuce na střední

Budeme hledat řešení y(x) okrajové úlohy pro diferenciální rovnici druhého řádu v samoadjungovaném tvaru na intervalu a, b : 2 ) y i p i+ 1

Vektorový prostor. d) Ke každému prvku u V n existuje tzv. opačný prvek u, pro který platí, že u + u = o (vektor u nazýváme opačný vektor k vektoru u)

VEKTORY. Obrázek 1: Jediný vektor. Souřadnice vektoru jsou jeho průměty do souřadných os x a y u dvojrozměrného vektoru, AB = B A

4. Trojúhelníkový rozklad p. 1/20

Soustavy lineárních rovnic

Operační výzkum. Přiřazovací problém.

Vektory a matice. Petr Hasil. Podpořeno projektem Průřezová inovace studijních programů Lesnické a dřevařské fakulty MENDELU v Brně (LDF)

Definice. Vektorový prostor V nad tělesem T je množina s operacemi + : V V V, tj. u, v V : u + v V : T V V, tj. ( u V )( a T ) : a u V které splňují

1 Linearní prostory nad komplexními čísly

Lineární algebra Operace s vektory a maticemi

Soustavy lineárních rovnic-numerické řešení. October 2, 2008

FP - SEMINÁŘ Z NUMERICKÉ MATEMATIKY. Katedra matematiky a didaktiky matematiky Technická univerzita v Liberci

Teorie her a ekonomické rozhodování. 2. Maticové hry

1/10. Kapitola 12: Soustavy lineárních algebraických rovnic

Transkript:

7 Výpočet simplexové metody V této přednášce si ukážeme krok za krokem základní způsob implementace simplexové metody pomocí pivotování simplexové tabulky(oddíl 6.4). To znamená, že od teorie přejdeme úplně k praktickým dovednostem a zkušenostem s řešením úloh LP. Některé pokročilejší úkony, jako přidávání umělých proměnných pro získání výchozího řešení, nebo použití lexikografického pravidla pro prevenci možného zacyklení, budou doplněny a probrány hlouběji v příští lekci. Stručný přehled lekce Ilustrační výpočet simplexové metody. Sloupcové a řádkové pravidlo, pivotování. Formální popis implementace simplexové metody. Příklady různých výpočtů. Petr Hliněný, FI MU 1 IA102 OU : Výpočet simplexové metody

7.1 Ilustrační výpočet Vraťme se k základnímu Příkladu 3.1 s bramborovými lupínky a hranolky. Po vynásobení 10(jen pro zbavení se necelých čísel) zadání zní: max80x 1 +50x 2 20x 1 +15x 2 1000 4x 1 +2x 2 160 x 1, x 2 0 Tuto snadnu úlohu si nyní vyřešíme v podrobných komentovaných krocích. Převedeme úlohu na kanonický tvar max80x 1 +50x 2 20x 1 +15x 2 +x 3 = 1000 4x 1 +2x 2 +x 4 = 160 x 1, x 2, x 3, x 4 0 Petr Hliněný, FI MU 2 IA102 OU : Výpočet simplexové metody

Chcememaximalizovatfunkci80x 1 +50x 2,neboli min x 0, kde x 0 +80x 1 +50x 2 =0. Máme(s implicitní nezáporností proměnných) tedy soustavu rovnic zapsáno maticově x 0 +80x 1 +50x 2 = 0 20x 1 +15x 2 +x 3 = 1000 4x 1 +2x 2 +x 4 = 160, 1 80 50 0 0 0 20 15 1 0 0 4 2 0 1 ( x0 x ) = 0 1000 160 Vsimplexovétabulce(účelovýřádekproměnné x 0 nahoře)asvyznačenoujednotkovou bází vypadá naše úloha takto: 1 80 50 0 0 0 0 20 15 1 0 1000 0 4 2 0 1 160 Tatotabulkaukazujevýchozíbázickéřešení x 3=1000, x 4=160, x 1, x 2=0(x 0=0), které je(naštěstí) přípustné. Pro jednoduchost už dále nebudeme účelový(nultý) řádek do tabulky zapisovat.. Petr Hliněný, FI MU 3 IA102 OU : Výpočet simplexové metody

Přejdeme k sousední bázi, čili vyměníme jeden sloupec ve vyznačené bázi. Přesněji nejprve vybereme nový sloupec do báze pomocí sloupcového pravidla a pak vybereme stávající sloupec báze k odebrání pomocí řádkového pravidla. Nakonec použijeme běžné maticové operace k tomu, abychom novou bázi ukázali jako jednotkovou. Sloupcové pravidlo: Vybereme sloupec s, který má v nultém řádku největší zkladnýchredukovanýchcen.zde s=1. Řádkovépravidlo:Vyberemeřádek i >0,kterýsplňuje a is >0azároveň dosahujenejmenšízpodílů b i /a is.(uvědommesi,ževždy b i 0.)Zde i=2. Provedemepivotnaprvku a i,s matice:řádkovýmiúpravamimatice(jako v Gaussově eliminaci) sloupec s upravíme tak, aby obsahoval samé nuly (včetněnultéhořádku)mimo a i,s =1. 80 50 0 0 0 20 15 1 0 1000 4 2 0 1 160 Co nám nová tabulka ukazuje o současném bázickém řešení x? x 0= 3200 c x=3200, x 1=40, x 3=200, x 2= x 4=0 (protoženejsouvbázi). 0 10 0 20 3200 0 5 1 5 200 1 0.5 0 0.25 40 Petr Hliněný, FI MU 4 IA102 OU : Výpočet simplexové metody

Opět vybereme podle téhož sloupcového pravidla sloupec s = 2 a podle řádkového pravidla řádek i = 1. Novým pivotem získáme: 0 10 0 20 3200 0 5 1 5 200 1 0.5 0 0.25 40 0 0 2 30 3600 0 1 0.2 1 40 1 0 0.1 0.75 20 Nyní již sloupcové pravidlo nelze použít, neboť redukované ceny v nultém řádku jsouvšechnynekladné. Toznamená,žejsmenašlioptimálnířešení x o úlohy x 0 = 3600 c x o =3600, x o 1 =40, xo 2 =20, x o 3 = xo 4 =0 (protoženejsouvbázi). Poznámka k řádkovému pravidlu: Co by se stalo kdybychom vybrali jiný řádek než s nejmenším podílem b i/a is?zkusmesitovpředchozíúloze: 0 10 0 20 3200 0 5 1 5 200 1 0.5 0 0.25 40 20 0 0 25 4000 10 0 1 7.5 200 2 1 0 0.5 80 Jakvidíme,novébázickéřešeníobsahuje x 3= 200 <0,takženenípřípustné.Výběrřádku i je volen dle uvedeného řádkového pravidla právě proto, abychom dostali ve všech složkách pravéstrany bnezáporné,tj.přípustnéhodnoty. Petr Hliněný, FI MU 5 IA102 OU : Výpočet simplexové metody

7.2 Popis implementace Tvrzení 7.1. Mějme pro danou úlohu LP zápis simplexovou tabulkou v přípustném jednotkovém tvaru. Pokud přejdeme k nové bázi tabulky získané ze stávající báze záměnou některého bázického sloupce sloupcem s kladnou redukovanou cenou, tak získáme buď stejné degenerované bázické řešení nebo řešení se striktně lepší účelovou hodnotou. Algoritmus 7.2. Implemenace Algoritmu 6.4 simplexové metody Následuje jednofázová metoda bez prevence zacyklení v degenerovaných řešeních. 0. Úlohu převedeme do základního a pak do kanonického tvaru max c x pro A x = b, x 0 přidáním doplňkových proměnných ke každé nerovnici(lemma 6.1). Dále přidáme proredukovanýzápisnovouúčelovouproměnnou x 0 vztahem min x 0 pro x 0 + c x=0. 1. Zapíšeme maticově předchozí vztahy a odpovídající simplexovou tabulkou ( ) ( ) ( ) [ ] 1 c x0 0 b 1 c 0 = 0 A x 0 A. b Horní(nultý) řádek tabulky nazýváme účelovým řádkem, jeho prvky jsou redukovanécenyproměnných,sloupec bnazývámepravoustranouazbytektabulky nazýváme levou stranou. V dalším textu již budeme tabulku zapisovat bez nultého účelového sloupce. Petr Hliněný, FI MU 6 IA102 OU : Výpočet simplexové metody

Dále získáme výchozí přípustné bázické řešení. K tomu potřebujeme tabulku v přípustném jednotkovém tvaru. Často tabulka již v takovém tvaru je(doplňkové proměnné nám přidají jednotkovou podmatici a pravé strany obvykle bývají kladné), ale jinak uplatníme následující postup: a) Všechny rovnice se zápornou pravou stranou vynásobíme 1.(Aby bylo výchozí bázické řešení přípustné.) b) Prokaždýchybějícíjednotkovývektor e i vtabulcenalevéstraněpřidáme umělouproměnnou u i 0scenou ν,kde νjevelmivelkákonstanta, formálně ν=. Zapíšeme vzniklou výchozí( umělou ) tabulku v jednotkovém tvaru c... 0 ν 0 která vyjadřuje vztahy: } {{ I } A u A b x 0 + c x ν u = 0 A u ( x, u) T = b x, u 0, Petr Hliněný, FI MU 7 IA102 OU : Výpočet simplexové metody

c) Upravíme tabulku tak, aby i nultý účelový řádek obsahoval redukované ceny 0 ve sloupcích jednotkové podmatice I: Přičteme násobky řádků příslušných k jednotlivým jednotkovým vektorům I k účelovému řádku. 2. Jsou-li všechna čísla v účelovém řádku tabulky nekladná, máme optimální řešení, viz Tvrzení 6.8. Pokud však je v bázi stále ještě zůstává některá umělá proměnná, původní úloha nemá žádné přípustné řešení. 3.Je-livtabulcesloupec stakový,že c s = a 0s >0aa is 0provšechna i >0,úloha nemá optimální řešení z důvodu neomezenosti. 4. Přejdeme k sousední bázi: a) Sloupcové pravidlo vybere sloupce s s nejvyšší kladnou hodnotou redukované ceny v účelovém řádku, tj. ve směru nejvyššího přírustku účelové funkce. b) Řádkovépravidlovybereřádek i >0snejmenšíhodnotoupodílu b i /a is pro a is >0,cožjenutnéprozachovánínezápornostipravéstrany. c) Přejdemeksousedníbáziaplikacítzv.pivotunaprvku a is : Prokaždé j i,od j-téhořádkuodečteme a js /a is -násobek i-tého, i-týřádekvydělímečíslem a is. (Vnovébázisloupec snahradísloupecpůvodníhojednotkovéhovektoru e i.) 5.Vrátímesevcykludobodu2. Petr Hliněný, FI MU 8 IA102 OU : Výpočet simplexové metody

7.3 Různé příklady výpočtů Příklad 7.3. Dokončení výpočtu Příkladu 6.10. max387x 1 +524x 2 +667x 3 15x 1 +20x 2 +20x 3 1000 63x 1 +126x 2 +133x 3 5000 x 1, x 2, x 3 0 Zmíněný příklad vedl na následující výchozí simplexovou tabulku, která je v přípustném jednotkovém tvaru. 387 524 667 0 0 0 15 20 20 1 0 1000 63 126 133 0 1 5000 Jsme v Algoritmu 7.2 v bodě 4. Užitím sloupcového pravidla vybereme třetí sloupec pro vstup do báze a pak řádkovým pravidlem druhý řádek pro opuštění báze. Výsledkem je: 71.05 107.9 0 0 5.015 25075 5.526 1.053 0 1 0.15 248.1 0.4737 0.9474 1 0 0.00752 37.6 Petr Hliněný, FI MU 9 IA102 OU : Výpočet simplexové metody

V další iteraci vybereme první sloupec a první řádek a výsledkem je tabulka: 0 120.9 0 12.84 3.08 28265 1 0.19 0 0.18 0.027 44.88 0 0.8571 1 0.0857 0.02 16.33 Z poslední tabulky vidíme(viz Algoritmus 7.2 v bodě 2), že optimálním řešením je výroba(zhruba) 448.8 kg hranolků, 0 kg slaných lupínků a 163.3 kg paprikových lupínků se ziskem 28265 Kč. Příklad 7.4. Ukázka výpočtu neomezené úlohy LP: max x 1 + x 2 + x 3 x 1 x 2 +2x 3 2 x 1 +2x 2 x 3 4 2x 1 x 2 x 3 6 x 1, x 2, x 3 0 Petr Hliněný, FI MU 10 IA102 OU : Výpočet simplexové metody

Již dobře známým postupem přes kanonický tvar úlohy zapíšeme výchozí simplexovou tabulku v jednotkovém přípustném tvaru 1 1 1 0 0 0 0-1 -1 2 1 0 0 2-1 2-1 0 1 0 4 2-1 -1 0 0 1 6. Dále postupujeme v intencích Algoritmu 7.2 následovně: 0 1.5 1.5 0 0-0.5-3 0-1.5 1.5 1 0 0.5 5 0 1.5-1.5 0 1 0.5 7 1-0.5-0.5 0 0 0.5 3 0 0 3 0-1 -1-10 0 0 0 1 1 1 12 0 1-1 0 0.66 0.33 4.66 1 0-1 0 0.33 0.66 5.33 Dobřesinynívšimněmeposlednítabulky.Vnísestáleještěneuplatníbod2Algoritmu 7.2, stále nemáme optimální řešení díky kladné redukované ceně ve třetím sloupci. Poprvé mezi našimi příklady však vidíme uplatnění bodu 3 algoritmu ve třetím sloupci jsou všechny další koeficienty nekladné, takže optimální řešení naší úlohy neexistuje z důvodu neomezenosti. Petr Hliněný, FI MU 11 IA102 OU : Výpočet simplexové metody

Příklad 7.5. Vyřešme náš starý známý Příklad 3.1 o lupíncích a hranolcích s dodatečným požadavkem na výrobu alespoň 30 kg lupínků. Podmínky jsou zapsány V kanonickém tvaru pak úloha zní max80x 1 +50x 2 20x 1 +15x 2 1000 4x 1 +2x 2 160 x 1 30. max80x 1 +50x 2 20x 1 +15x 2 +x 3 = 1000 4x 1 +2x 2 +x 4 = 160 x 1 x 5 = 30 x 1, x 2, x 3, x 4, x 5 0, což bohužel nedává tabulku v jednotkovém tvaru. Jsme Algoritmu 7.2 v bodě 1(a,b). Budemeprotomusetpřidatjednuumělouproměnnou u=x 6 následovně: Petr Hliněný, FI MU 12 IA102 OU : Výpočet simplexové metody

max80x 1 +50x 2 ν x 6 20x 1 +15x 2 +x 3 = 1000 4x 1 +2x 2 +x 4 = 160 x 1 x 5 + x 6 = 30 x 1, x 2, x 3, x 4, x 5, x 6 0, Zavedeníuměléproměnné x 6pochopitelněmění rozšiřujemnožinupřípustnýchřešeníúlohy, takževkonečnémdůsledkumusímevliv x 6zúlohyvyloučit.Tohodosáhnemeurčením obrovské zápornéceny ν pro x 6. Nyní již můžeme sestavit výchozí tabulku v přípustném jednotkovém tvaru. Nezapomeňme však podle Algoritmu 7.2 v bodě 1(c) nejprve upravit nenulovou hodnotu redukovanéceny x 6 přičtenímvhodnéhonásobkuposledníhořádku. 80 50 0 0 0 ν 0 20 15 1 0 0 0 1000 4 2 0 1 0 0 160 1 0 0 0-1 1 30 80+ν 50 0 0 ν 0 30 20 15 1 0 0 0 1000 4 2 0 1 0 0 160 1 0 0 0-1 1 30 Petr Hliněný, FI MU 13 IA102 OU : Výpočet simplexové metody

Dále již postupujeme běžným způsobem simplexové metody. 80+ν 50 0 0 ν 0 30 20 15 1 0 0 0 1000 4 2 0 1 0 0 160 1 0 0 0-1 1 30 0 50 0 0 80 80 ν -2400 0 15 1 0 20-20 400 0 2 0 1 4-4 40 1 0 0 0-1 1 30 0 0 0-25 -20 100 ν -3400 0 0 1-7.5-10 10 100 0 1 0 0.5 2-2 20 1 0 0 0-1 1 30 Zposlednítabulkyvidímeoptimálnířešení vyrobit x 1 =30kglupínkůax 2 =20kg hranolků.hodnota x 3 >0námříká,ževprvnínerovnostiúlohyještězbývádorovnosti rezerva x 3,nebolivkonkrétníformulacinámzbývá10kgbrambor. Petr Hliněný, FI MU 14 IA102 OU : Výpočet simplexové metody