Simplexová metoda
Základní pojmy Přípustné řešení Bázické řešení Optimální řešení Alternativní řešení Suboptimální řešení
Řešitelnost modelu Řešení neexistuje Existuje právě jedno řešení 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 vždy bázické) Existuje nekonečně mnoho řešení dvě bázická a nekonečně mnoho nebázických
Příklad – optimalizace investice Investor se rozhoduje o rozložení své investice. K dispozici má maximálně 10 000 000 Kč, které může rozložit mezi akcie a podílové fondy (PF). Požaduje uložit minimálně 2 000 000 Kč do PF. Dále si bodově ohodnotil rizikovost jedné koruny investované do akcií dvěma body (do PF jedním bodem) a požaduje celkovou rizikovost investice právě 15 000 000 bodů. Investor předpokládá výnos z investice do akcií ve výši 6%, z investice do PF ve výši 4%.
Definice modelu Proměnné – x1 … investice do akcií (mil. Kč) x2 … investice do PF (mil. Kč) Omezující podmínky celková výše investice x1 + x2 ≤ 10 diverzifikace x2 ≥ 2 riziko 2x1 + x2 = 15 Podmínky nezápornosti x1, x2 ≥ 0 Účelová funkce Z = 1,06x1 + 1,04x2 → max
Simplexový algoritmus
Podmínky simplexového algoritmu Matice soustavy v kanonickém tvaru Nezápornost složek vektoru pravých stran Rovnicový tvar Kapacitní OP – přičtení hodnoty doplňkové proměnné k levé straně x1 + x2 ≤ 10 → x1 + x2 + d1 = 10 Požadavková OP – odečtení hodnoty doplňkové proměnné od levé strany x2 ≥ 2 → x2 – d1 = 2 OP určení – beze změny 2x1 + x2 = 15 → 2x1 + x2 = 15
Podmínky simplexového algoritmu 2) Kanonický tvar Kapacitní OP – beze změny x1 + x2 + d1 = 10 → x1 + x2 + d1 = 10 Požadavková OP – přičtení hodnoty POMOCNÉ proměnné k levé straně x2 – d1 = 2 → x2 – d1 + p1 = 2 OP určení – přičtení hodnoty POMOCNÉ proměnné k levé straně 2x1 + x2 = 15 → x1 + x2 + p1 = 15 Ocenění nových proměnných v účelové funkci Doplňkové proměnné – vždy nulová sazba Pomocné proměnné – vždy nevýhodná (prohibitivní) sazba Pozor: řešení, které má v bázi pomocnou proměnnou, nelze považovat za přípustné!!!
Výchozí bázické řešení Sestavení výchozí simplexové tabulky Identifikace bázických a nebázických proměnných Určení hodnot proměnných ve výchozím bázickém řešení Určení hodnoty účelové funkce
Test optimality Existuje bázické řešení s lepší hodnotou ÚF? Záměna proměnných v bázi Cena ekvivalentní kombinace bázických proměnných Koeficient zj – cj Rozdíl hodnoty skalárního součinu vektoru cen bázických proměnných a vektoru v matici soustavy a ceny testované proměnné Řešení je optimální minimalizace: zj – cj ≤ 0 pro všechna j maximalizace: zj – cj ≥ 0 pro všechna j Klíčový sloupec: maximální hodnota |zj – cj| z těch, které porušují podmínku optimality
Test přípustnosti I nové řešení musí splňovat podmínky SA Nezáporné složky vektoru b Známe klíčový sloupec (z testu optima) Určíme klíčový řádek podle podílů Pouze pro aij > 0 Minimum z těchto podílů určuje klíčový řádek , kde k je index klíčového sloupce
Přechod na nové řešení Jeden krok Jordanovy eliminační metody Přesun jednotkového vektoru pod proměnnou, která vstupuje do báze Průsečík klíčového řádku a klíčového sloupce = klíčový prvek Klíčový řádek vydělíme klíčovým prvkem Od ostatních řádků odečteme vhodný násobek NOVÉHO klíčového řádku
Informace z výsledné tabulky Rozdělení proměnných na bázické a nebázické Hodnoty všech proměnných Hodnota účelové funkce Relativní nevýhodnost nebázických proměnných