VYSOKÁ ŠKOLA POLYTECHNICKÁ JIHLAVA Katedra matematiky
OPERAČNÍ VÝZKUM
Mgr. Andrea Kubišová
2014
ÚVOD Tato skripta jsou základním studijním materiálem pro volitelný předmět Operační výzkum určený převážně pro studenty ekonomických oborů VŠPJ. Povinnou prerekvizitou jsou vybrané kapitoly z předmětu Matematika I, týkající se základů lineární algebry, zejména pojmů aritmetický vektor a matice a jejich vlastností a vztahů. V textu jsou hojně využívané a je třeba je znát. Úvodní část na tyto základy lineární algebry přímo navazuje teoretickými kapitolami o řešení soustav lineárních rovnic a nerovnic, především je kladen důraz na Jordanovu eliminační metodu, která je základem algoritmů využívaných při řešení úloh lineárního programování a rozhodovacích procesů ve druhé části zaměřené na praktické řešení konkrétních jednoduchých i složitějších ekonomických problémů. Student se zde seznámí s různými typy úloh jedno- i vícekriteriálního lineárního programování a se základními optimalizačními metodami. Každá kapitola obsahuje teoretický výklad, doplněný vzorově vyřešenými typovými příklady, přičemž velký prostor je věnován průvodním komentářům pro případné zájemce o samostudium, algebraické řešení je často navíc ilustrováno grafickým řešením pro lepší představu o významu mezivýsledků v jednotlivých krocích algoritmizovaných výpočtů. Vždy je také proveden rozbor a diskuse výsledků, zásadní důraz je kladen na precizní slovní interpretaci získaných výsledků. Jelikož výpočetní technika nachází v operační analýze velké uplatnění, budou cvičení k tomuto předmětu vedena v počítačových učebnách. S využitím jednoduchého dostupného softwaru, zejména programů MS Excel a LinPro, které jsou nyní k dispozici ve všech učebnách, tak bude možné rychle řešit více než jen triviální vzorové úlohy, což by při ručních výpočtech nebylo časově možné. Důraz tak může být přenesen na sestavování matematických modelů pro reálné ekonomické problémy, výběr vhodné metody, úpravu matematického modelu pro využití softwaru a finální interpretaci výsledků. Přesto je třeba se seznámit se všemi algoritmizovanými postupy, čehož se využívá při následné postoptimalizační analýze. Tato skripta tak nabízejí ucelený teoreticky i prakticky zaměřený přehled základů operačního výzkumu.
2
OBSAH 1. kapitola 1.1
SOUSTAVA LINEÁRNÍCH ROVNIC ............................................................... 7
Algebraické řešení ....................................................................................................... 7
1.1.1
Inverzní matice .............................................................................................................. 9
1.1.2
Cramerovo pravidlo ..................................................................................................... 10
1.1.3
Gaussova metoda ......................................................................................................... 11
1.1.4
Jordanova metoda ........................................................................................................ 16
1.2
Grafické řešení ........................................................................................................... 18
2. kapitola
SOUSTAVA LINEÁRNÍCH NEROVNIC ....................................................... 20
2.1
Grafické řešení ........................................................................................................... 20
2.2
Algebraické řešení ..................................................................................................... 22
3. kapitola
OPERAČNÍ VÝZKUM ..................................................................................... 27
3.1
Matematický model úloh ........................................................................................... 27
3.2
Lineární programování .............................................................................................. 28
3.2.1
Úlohy výrobního plánování ......................................................................................... 30
3.2.2
Úlohy finančního plánování ........................................................................................ 34
3.2.3
Plánování reklamy ....................................................................................................... 36
3.2.4
Nutriční problém.......................................................................................................... 37
3.2.5
Směšovací úlohy .......................................................................................................... 39
3.2.6
Úlohy o dělení materiálu ............................................................................................. 41
3.2.7
Dopravní problém ........................................................................................................ 42
3.3
Vícekriteriální rozhodování ....................................................................................... 44
3.3.1
Vícekriteriální hodnocení variant ................................................................................ 44
3.3.2
Vícekriteriální lineární programování ......................................................................... 44
4. kapitola
GRAFICKÉ ŘEŠENÍ ÚLOH LP ....................................................................... 46
4.1
Grafické znázornění množiny přípustných řešení ..................................................... 47
4.2
Grafické nalezení optimálního řešení úlohy .............................................................. 48
4.2.1
Žádné optimální řešení ................................................................................................ 50
4.2.2
Jediné optimální řešení ................................................................................................ 51
4.2.3
Alternativní řešení ....................................................................................................... 52
4.2.4
Neomezená hodnota účelové funkce ........................................................................... 53
5. kapitola
ALGEBRAICKÉ ŘEŠENÍ ÚLOH LP ............................................................... 55
5.1
Úprava matematického modelu úloh LP ................................................................... 55
5.2
Základní řešení úlohy LP ........................................................................................... 56
5.3
SIMPLEXOVÁ METODA ....................................................................................... 56 3
PRIMÁRNĚ SIMPLEXOVÁ METODA .......................................................... 57
6. kapitola 6.1
Jednofázová primárně simplexová metoda................................................................ 57
6.1.1
Simplexová tabulka ..................................................................................................... 58
6.1.2
Výchozí základní řešení ............................................................................................... 59
6.1.3
Optimalizace ................................................................................................................ 59
6.1.4
Zakončení výpočtu....................................................................................................... 60
6.1.5
Interpretace výsledku ................................................................................................... 66
6.2
Dvoufázová primárně simplexová metoda ................................................................ 71
6.2.1
Výchozí základní řešení ............................................................................................... 72
6.2.2
Vlastní optimalizace .................................................................................................... 73
6.2.3
Zakončení výpočtu....................................................................................................... 77
6.2.4
Interpretace výsledku ................................................................................................... 83
6.2.5
Shrnutí ......................................................................................................................... 84
DUALITA ÚLOH LP ........................................................................................ 86
7. kapitola 7.1.1
Symetrická dualita ....................................................................................................... 86
7.1.2
Smíšená dualita ............................................................................................................ 87
7.1.3
Nesymetrická dualita ................................................................................................... 89
7.1.4
Řešení duálně sdružených úloh ................................................................................... 90
7.1.5
Věty o řešitelnosti dvojice sdružených úloh LP .......................................................... 91
7.1.6
Věta o dualitě ............................................................................................................... 93
7.1.7
Věta o rovnováze ......................................................................................................... 94
7.1.8
Interpretace duálních neznámých úlohy LP................................................................. 95
DUÁLNĚ SIMPLEXOVÁ METODA ............................................................... 97
8. kapitola 8.1.1
Výchozí základní řešení ............................................................................................... 97
8.1.2
Simplexová tabulka ..................................................................................................... 98
8.1.3
Optimalizace ................................................................................................................ 99
8.1.4
Zakončení výpočtu..................................................................................................... 100
8.1.5
Shrnutí ....................................................................................................................... 104
CELOČÍSELNÉ PROGRAMOVÁNÍ ............................................................. 105
9. kapitola 9.1
Grafické řešení celočíselné úlohy LP ...................................................................... 105
9.2
Kombinatorické metody .......................................................................................... 107 Metoda větvení a mezí ............................................................................................... 107
9.2.1
9.3
Metody sečných nadrovin ........................................................................................ 110 Gomoryho metoda sečných nadrovin ........................................................................ 111
9.3.1
10. kapitola 10.1
POSTOPTIMALIZAČNÍ ANALÝZA ......................................................... 115
Obecný tvar simplexové tabulky ......................................................................... 115 4
10.1.1
Obecný maticový zápis výchozí simplexové tabulky ................................................ 115
10.1.2
Obecný maticový zápis výsledné simplexové tabulky .............................................. 115
10.2
Analýza citlivosti pravých stran ........................................................................... 118
10.2.1
Změna jedné kapacity ................................................................................................ 118
10.2.2
Intervaly stability pro kapacity .................................................................................. 120
10.3
Analýza citlivosti cenových indexů ..................................................................... 123
10.3.1
Změna jedné ceny ...................................................................................................... 123
10.3.2
Intervaly stability pro ceny ........................................................................................ 124
10.4
Slovní interpretace intervalů stability .................................................................. 127
10.4.1
Intervaly stability kapacit .......................................................................................... 127
10.4.2
Intervaly stability cenových indexů ........................................................................... 128
11. kapitola 11.1
DOPRAVNÍ ÚLOHA................................................................................... 129
Matematický model ............................................................................................. 129
11.1.1
Obecné vlastnosti matematického modelu ................................................................ 130
11.1.2
Vlastnosti dopravního problému ................................................................................ 130
11.2
I. fáze – nalezení VZŘ ......................................................................................... 134
11.2.1
Metoda SZR ............................................................................................................... 135
11.2.2
Indexní metoda (vzestupná) ....................................................................................... 136
11.2.3
Metoda VAM ............................................................................................................. 137
11.2.4
Porovnání metod nalezení VZŘ................................................................................. 138
11.3
II. fáze – optimalizace .......................................................................................... 139
11.3.1
Duální úloha k dopravnímu problému ....................................................................... 139
11.3.2
Dopravní tabulka ....................................................................................................... 140
11.3.3
Optimalizace .............................................................................................................. 140
11.3.4
Transformace dopravní tabulky ................................................................................. 144
11.3.5
Zakončení výpočtu..................................................................................................... 146
11.3.6
Degenerace v dopravní tabulce .................................................................................. 146
11.4
Interpretace........................................................................................................... 149
11.5
Shrnutí .................................................................................................................. 150
12. kapitola
VÍCEKRITERIÁLNÍ HODNOCENÍ VARIANT ........................................ 152
12.1
Úlohy vícekriteriálního hodnocení variant .......................................................... 152
12.2
Cíle úloh VHV ..................................................................................................... 153
12.2.1
Výběr jediné varianty ................................................................................................ 153
12.2.2
Uspořádání variant ..................................................................................................... 153
12.2.3
Třídění variant ........................................................................................................... 153
12.3
Vztahy mezi dvojicemi variant ............................................................................ 153 5
12.4
Metody odhadu vah kriterií .................................................................................. 154
12.4.1
Metoda pořadí ............................................................................................................ 154
12.4.2
Bodovací metoda ....................................................................................................... 155
12.4.3
Fullerův trojúhelník ................................................................................................... 155
12.4.4
Saatyho metoda.......................................................................................................... 156
12.5
Metody vícekriteriálního hodnocení variant ........................................................ 159
12.5.1
Metoda váženého součtu............................................................................................ 159
12.5.2
Metoda TOPSIS ......................................................................................................... 161
12.5.3
Metoda AHP .............................................................................................................. 164
13. kapitola
VÍCEKRITERIÁLNÍ LP .............................................................................. 167
13.1
Úlohy vícekriteriálního lineárního programování................................................ 167
13.2
Vztahy mezi dvojicemi variant ............................................................................ 168
13.3
Metody řešení úloh VLP ...................................................................................... 169
13.3.1
Agregace účelových funkcí ....................................................................................... 169
13.3.2
Kompromisní řešení podle minimální komponenty .................................................. 170
13.3.3
Minimalizace relativní vzdálenosti od ideálních hodnot ........................................... 171
13.3.4
Cílové programování ................................................................................................. 173
6
1. kapitola
SOUSTAVA LINEÁRNÍCH ROVNIC
1 Definice 1.1 Soustavou m lineárních rovnic o n neznámých, kde m, n ∈ N, rozumíme soustavu ve tvaru (1.1) . Reálná čísla xj, kde j = 1, 2,…, n, nazýváme neznámé či proměnné, reálná čísla aij, kde i = 1, 2,…, m, j = 1, 2, …, n, nazýváme koeficienty (v i-té rovnici u j-té neznámé), reálná čísla bi, kde i = 1, 2,…, m, nazýváme absolutní členy či pravé strany (i-té rovnice). Poznámka: V dalším textu může být pro pojem soustava lineárních rovnic použita také zkratka SLR. Na střední škole jste se naučili se soustavami lineárních rovnic pracovat a pomocí úprav rovnic řešit soustavu lineárních rovnic dosazovací či sčítací metodou. Tyto metody ovšem nebudeme v dalším textu používat.
1.1 Algebraické řešení Další možnost, jak se soustavami lineárních rovnic pracovat, nám dávají algebraické objekty (aritmetický) vektor a matice. Dále byly zavedeny operace s nimi, a také pojmy lineární kombinace, závislost a nezávislost vektorů, hodnost matice, determinant, regulární a singulární matice, inverzní matice. Pro následné algebraické řešení doplňme ještě odpovídající maticové vyjádření soustav lineárních rovnic: Definice 1.2 Maticí soustavy (1.1) nazýváme obdélníkové schéma
(1.2) , rozšířenou maticí soustavy (1.1) nazýváme obdélníkové schéma
(1.3) .
7
Vektorem neznámých (vektorem proměnných) soustavy (1.1) nazýváme vektor
(1.4) , vektorem pravých stran soustavy (1.1)nazýváme vektor
(1.5) . Poznámka: Při tomto označení můžeme soustavu (1.1) zapsat stručně jako maticovou rovnicí (1.6) , Platnost vztahu můžeme ověřit rozepsáním této rovnosti s využitím operace součinu matic. Tento způsob zápisu SLR nám v dalším často umožní přehlednější a stručnější vyjadřování. Definice 1.3 Řešit SLR (1.1) znamená nalézt všechny vektory neznámých
, které vyhovují každé rovnici soustavy (1.1). Tyto vektory nazýváme vektory řešení soustavy (1.1), dohromady tvoří množinu řešení soustavy (1.1) Ze střední školy dále víme, že při řešení SLR může nastat jedna ze tří variant výsledku: 1) SLR nemá řešení, 2) SLR má právě jedno řešení, 3) SLR má nekonečně mnoho řešení. 1 Věta 1.1 (Frobeniova věta): Soustava (1.1) má alespoň jedno řešení, právě když je hodnost matice soustavy rovna hodnosti rozšířené matice soustavy, tj. h(Ar) = h(A). Poznámka: V případě, že se hodnosti obou zmíněných matic rovnají, hovoří tato věta pouze o existenci řešení, nikoliv o jejich počtu. Pomocí Frobeniovy věty tedy rozhodujeme pouze o řešitelnosti SLR. Věta 1.2 Předpokládejme, že soustava (1.1) má řešení, h je hodnost matice této soustavy a n je počet neznámých. Potom platí: 1) Jestliže h = n, potom má soustava (1.1) právě jedno řešení, 2) Jestliže h < n, potom má soustava (1.1) nekonečně mnoho řešení, k zápisu obecného řešení je potřeba n – h volných neznámých. 8
Pojmem volné neznámé rozumíme těch n – h vybraných neznámých, za které volíme libovolná reálná čísla, čímž je ostatních h neznámých určeno jednoznačně. Tyto neznámé někdy nazýváme základní neznámé, pro volné neznámé se proto také někdy používá pojem nezákladní neznámé. V dalším textu této kapitoly se budeme věnovat čtyřem základním algebraickým metodám řešení SLR: 1.1.1 Inverzní matice Úpravou maticové rovnice (1.6) můžeme získat explicitní vyjádření vektoru neznámých soustavy (1.1), které využívá další věta: Věta 1.3 Jestliže je matice soustavy lineárních rovnic (1.1) regulární, má tato soustava právě jedno řešení (1.7) . Tuto metodu lze tedy dle předpokladu použít pouze pro soustavy, jejichž matice jsou regulární. Pokud matice soustavy není čtvercová, je třeba rovnou zvolit jinou metodu řešení. Pokud má SLR regulární čtvercovou matici, z předchozího studia víte, že k ní existuje jediná inverzní matice. Potom SLR má jediné řešení, získané pomocí předpisu (1.7) Pokud má SLR čtvercovou matici, která není regulární, prakticky to znamená, že v průběhu úprav zjistíme, že k její matici neexistuje matice inverzní a SLR potom buď nemá žádné řešení, nebo má nekonečně mnoho řešení. O kterou z variant výsledku se jedná, přitom touto metodou nemohu rozhodnout. 1 Příklad 1.1.: Pomocí inverzní matice nalezněte řešení SLR
. Řešení Hledejme tedy nejprve inverzní matici k matici této SLR
. Inverzní matice v tomto případě existuje, po dosazení do (1.7) dostaneme
. soustava má jediné řešení, které můžeme zapsat jako vektor 9
1.1.2 Cramerovo pravidlo Při hledání řešení SLR můžeme využít také determinantů. Věta 1.4 (Cramerovo pravidlo): Jestliže je matice soustavy (1.1) regulární matice řádu n, potom má soustava (1.1) právě jedno řešení pro
(1.8)
.
kde Aj je matice, která vznikne z matice A nahrazením j-tého sloupce sloupcem pravých stran rovnic soustavy (1.1). Příklad 1.2.: Pomocí determinantů nalezněte řešení SLR
. Řešení Určeme nejprve determinant matice této SLR
. Jelikož je různý od nuly, má podle předpokladu věty 1.4 smysl pokračovat touto metodou, soustava má jediné řešení. Pro výpočet hodnoty první neznámé určeme ještě determinant matice A1, ve které je první sloupec matice A nahrazen sloupcem pravých stran zadané soustavy
. Podíl (s nenulovým jmenovatelem)
je hledanou hodnotou první neznámé zadané soustavy. Po analogickém výpočtu pro zbývající dvě neznámé můžeme její jediné řešení zapsat jako vektor . Z předpokladu regulárnosti u vět 1.3. a 1.4. vyplývá, že pomocí předcházejících dvou metod má smysl řešit pouze soustavy lineárních rovnic, které mají právě jedno řešení. Tuto vlastnost ověříme v průběhu řešení při aplikaci algoritmu hledání A-1 resp. určování detA. Pokud zjistíme, že inverzní matice k matici soustavy neexistuje, resp. determinant matice soustavy je nulový, zjistíme pouze, že zde nastává jiný typ výsledku (žádné řešení nebo nekonečně mnoho řešení) a je nutné použít metodu jinou. Zde jsou další univerzálnější metody řešení. 10
1.1.3 Gaussova metoda V první fázi hledání řešení soustavy lineárních rovnic (1.1) jsme porovnali hodnost matice soustavy a rozšířené matice soustavy, v algoritmu určování hodnosti jsme používali úpravy neměnící hodnost matice. Jeho obdobu využijeme nyní při hledání řešení SLR. Definice 1.4 Řekneme, že dvě SLR jsou navzájem ekvivalentní, pokud se jejich množiny všech řešení rovnají. Věta 1.5 Mezi úpravy neměnící množinu všech řešení soustavy (1.1) patří: 1) záměna pořadí rovnic, 2) vynásobení libovolné rovnice soustavy libovolným nenulovým reálným číslem, 3) přičtení k libovolné rovnici soustavy libovolných násobků ostatních rovnic soustavy, 4) vynechání rovnice, která je lineární kombinací ostatních rovnic soustavy. Poznámka: Tyto úpravy budeme nazývat ekvivalentní úpravy SLR. Pokud soustavu (1.1) reprezentujeme maticovým zápisem ve tvaru (1.6), můžeme tvrzení předchozí věty zapsat analogicky: Věta 1.6 Mezi úpravy neměnící množinu všech řešení soustavy (1.1) patří: 1) záměna pořadí řádků, 2) vynásobení libovolného řádku matice libovolným nenulovým reálným číslem, 3) přičtení k libovolnému řádku matice libovolných násobků řádků ostatních, 4) vynechání řádku matice, který je lineární kombinací řádků ostatních. Poznámka: Tyto úpravy budeme nazývat ekvivalentní řádkové úpravy matice SLR. Definice 1.5 Matice, jejíž každý další řádek začíná alespoň o jedničku větším počtem nul než řádek předcházející, se nazývá matice ve schodovitém (odstupňovaném) tvaru. Definice 1.6 Matice, jejíž každý další řádek začíná právě o 1 větším počtem nul než řádek předcházející, se nazývá matice v lichoběžníkovém tvaru. Je-li navíc tato matice čtvercová, nazývá se matice v trojúhelníkovém tvaru. ALGORITMUS: Podstatou algoritmu Gaussovy metody neúplné eliminace je převedení rozšířené matice soustavy pomocí konečného počtu ekvivalentních řádkových úprav do odstupňovaného tvaru, ze kterého pak vyjádříme řešení soustavy (1.1) jednodušším způsobem než z rozšířené matice (1.3.). 1. Sestavíme rozšířenou matici dané soustavy lineárních rovnic. 2. Pouze pomocí ekvivalentních řádkových úprav převedeme na matici ve schodovitém tvaru. V prvním kroku zapíšeme na první místo řádek začínající na první pozici nenulovým prvkem a ve všech následujících řádcích eliminujeme vhodným násobením řádku prvního všechny prvky pod tímto nenulovým prvkem. V i-tém kroku zapíšeme na i-té místo řádek, začínající co největším, ale alespoň o 1 větším počtem nul než řádek předchozí, pod nenulovým prvkem s nejnižším sloupcovým indexem ve všech následujících řádcích eliminujeme vhodným násobením řádku i-tého všechny prvky. Nulové řádky vzniklé při tomto procesu vynecháme. Zřejmě počet řádků této matice je roven číslu h. 11
Opakování úprav končí, dosáhneme-li požadované vlastnosti i v posledním řádku. Zřejmě k tomu vždy postačí konečný počet ekvivalentních řádkových úprav. 3. Pomocí Frobeniovy věty (věta 1.1) rozhodneme o řešitelnosti soustavy. Soustava lineárních rovnic (1.1) nemá žádné řešení, pokud jsou v matici z posledního kroku všechny koeficienty posledního řádku nulové a pravá strana je nenulové číslo a hledání množiny všech řešení soustavy, úloha nemá žádné řešení. 4. Podle věty 1.2 rozhodneme o počtu řešení. Soustava (1.1) má jediné řešení, pokud je matice soustavy z posledního kroku trojúhelníková, jinak má nekonečně mnoho řešení. V tom případě je matice soustavy z posledního kroku odstupňovaná, nikoli však trojúhelníková. 5. Z výsledného tvaru matice reprezentující soustavu lineárních rovnic s původní soustavou lineárních rovnic získáme zápis řešení metodou zpětného dosazování: Má-li úloha jediné řešení, od posledního řádku směrem nahoru postupně vyjadřujeme první neznámou s nenulovým koeficientem pomocí ostatních, které jsme již v předchozích řádcích vyjádřili. Zápis řešení je nejnáročnější v případě, že má úloha nekonečně mnoho řešení. Ve výsledném tvaru matice jsme dostali h lineárně nezávislých řádků pro původních n neznámých. Z těchto n neznámých je tedy těmito podmínkami h z nich přesně určeno v případě, že si zbylých n – h zvolíme. Tyto neznámé proto nazýváme příznačně volné neznámé. Je-li výsledná matice lichoběžníková, vybereme jako volné neznámé n – h posledních. Jinak je třeba zaměnit (alespoň „v duchu“) pořadí sloupců, matici do lichoběžníkového tvaru převést a poté vybrat jako volné neznámé n – h posledních. Od posledního řádku směrem nahoru postupně vyjadřujeme první neznámou s nenulovým koeficientem pomocí ostatních, které jsme již v předchozích řádcích zvolili nebo vyjádřili. Poznámka: V případě nekonečně mnoha řešení není zápis řešení dán jednoznačně stejně tak jako už předchozí výsledná matice, jelikož jsme mohli mít v jednotlivých krocích bodu 2. na výběr z několika řádků začínajících požadovaným počtem nul. Příklad 1.3.: Pomocí Gaussovy metody neúplné eliminace nalezněte řešení SLR
. Řešení Pro danou SLR zapišme rozšířenou matici soustavy a pomocí úprav neměnících množinu řešení soustavy upravujme do odstupňovaného tvaru.
Jelikož h(A) = h(Ar), má podle Frobeniovy věty soustava řešení. Jelikož toto h = 3 a počet neznámých soustavy je n = 3, má soustava podle věty 1.2 právě jedno řešení. Ze soustavy odpovídající tvaru výsledné matice
12
získáme pomocí metody zpětného dosazování z posledního řádku , z druhého řádku
a odtud po dosazení
a odtud po dosazení
.
jediné řešení soustavy opět můžeme zapsat jako vektor . Příklad 1.4.: Pomocí inverzní matice nalezněte řešení SLR
Řešení Pro danou SLR zapišme rozšířenou matici soustavy a pomocí úprav neměnících množinu řešení soustavy upravujme do odstupňovaného tvaru.
Jelikož h(A) = 2 a h(Ar) = 3, podle Frobeniovy věty soustava nemá řešení. Příklad 1.5.: Pomocí Gaussovy metody neúplné eliminace nalezněte řešení SLR
. Řešení Pro danou SLR zapišme rozšířenou matici soustavy a pomocí úprav neměnících množinu řešení soustavy upravujme do odstupňovaného tvaru. 13
Jelikož h(A) = h(Ar), má podle Frobeniovy věty soustava řešení. Jelikož toto h = 2 a počet neznámých soustavy je n = 4, má soustava podle Věty 1.2 nekonečně mnoho řešení, pro jehož zápis bude potřeba n – h = 2 volných neznámých, jelikož je matice v lichoběžníkovém tvaru, nabízí se vybrat x3 a x4. Ze soustavy odpovídající tvaru výsledné matice vyjádříme
a z druhé rovnice vyjádříme x2
které dosadíme do první, čímž získáme . Pouze pomocí volných neznámých x3 a x4 se nám podařilo vyjádřit všechny ostatní neznámé, můžeme je nyní uspořádat v zápise vektoru řešení soustavy
kde V následujících definicích zavedeme pojmy, které se týkají řešení soustav lineárních rovnic, které mají nekonečně mnoho řešení. Definice 1.7 Vztah, kterým jsou explicitně vyjádřena všechna řešení soustavy, která má nekonečně mnoho řešení, se nazývá obecné řešení soustavy. Výběrem n – h volných neznámých, za které volíme při zápisu řešení soustavy libovolná reálná čísla, je ostatních h neznámých určeno jednoznačně. Pro jejich rozlišení budeme používat následující pojmy: Definice 1.8 Proměnné (neznámé), pomocí nichž je obecné řešení soustavy vyjádřeno, nazýváme nezákladní proměnné, zbývající proměnné nazýváme základní proměnné. Definice 1.9 Dosazením konkrétních reálných čísel za nezákladní proměnné do obecného řešení soustavy, která má nekonečně mnoho řešení, získáme jedno řešení soustavy, které nazýváme partikulární řešení soustavy. Definice 1.10 Partikulární řešení soustavy, ve kterém jsou všechny základní proměnné rovny nule, nazýváme základní řešení soustavy. Definice 1.11 Základní řešení soustavy, ve kterém je alespoň jedna základní proměnná rovna nule, nazýváme degenerované základní řešení. 14
Příklad 1.6.: Nalezněte obecné, dvě partikulární (ale ne základní) řešení a základní řešení SLR z předchozího příkladu
. Řešení Obecně vyjádřené vektory kde kde explicitně popisují všechna řešení zadané SLR, jedná se tedy o zápisy obecného řešení. Pro získání partikulárního řešení zvolme za základní neznámé libovolná reálná čísla, pro splnění požadavku v závorce nesmí být obě zároveň nulová, např. pro x1 = 1, x2 = –1:
nebo pro x1 = 0, x2 = 1: . Stejným způsobem bychom dostali všech nekonečně mnoho dalších řešení soustavy. Základní řešení soustavy získáme dosazením nul za všechny (tedy obě) základní neznámé. Pro x1 = x2 = 0 tedy dostaneme . Poznámka: Zřejmě bude možné zapsat i jiná základní řešení, záleží na tom, které neznámé vybereme za základní neznámé. V zadaném příkladě mohu ze čtyř neznámých úlohy vybrat i jiné dvojice než x3 a x4. Počet všech různých dvojic bez opakování ze čtyř prvků můžeme zapsat kombinačním číslem . Některá základní řešení se ovšem mohou rovnat a pozor, ne vždy je možné vybrané neznámé pomocí ostatních neznámých vyjádřit, Každému obecnému řešení odpovídá maximálně jedno základní řešení, nemusí proto vůbec existovat. Platí tedy následující věta: Věta 1.7
Má-li soustava (1.1) nekonečně mnoho řešení, potom existuje maximálně
základních řešení. 15
1.1.4 Jordanova metoda Jordanova metoda vychází ze stejných úvah jako Gaussova metoda, výslednou matici získanou předcházející metodou ovšem ještě dále upravujeme. Definice 1.12 Matice, z jejíchž sloupců lze sestavit jednotkovou matici, se nazývá matice v kanonickém tvaru. Algoritmus metody úplné eliminace Podstatou tohoto algoritmu je převedení rozšířené matice soustavy pomocí konečného počtu ekvivalentních řádkových úprav do kanonického tvaru, ze kterého pak rovnou vyjádříme řešení soustavy (1.1). 1. Sestavíme rozšířenou matici dané soustavy lineárních rovnic. 2. Pouze pomocí ekvivalentních řádkových úprav nejprve převedeme na matici ve schodovitém tvaru (viz bod 2. v kapitole 1.1.3.). Dále postupujeme v úpravách od posledního řádku. V i-tém kroku vydělíme i-tý řádek jeho prvním nenulovým prvkem, čímž na jeho místě získáme 1 a ve všech jemu předcházejících řádcích eliminujeme vhodným násobením tohoto řádku všechny prvky nad tímto prvkem 1. Opakování úprav končí, dosáhneme-li požadované vlastnosti i v prvním řádku. Zřejmě k tomu vždy postačí konečný počet ekvivalentních řádkových úprav. Počet řádků takto vzniklé matice je stále roven číslu h. 3. O řešitelnosti opět rozhodneme pomocí Frobeniovy věty. 4. O počtu řešení opět rozhodněme pomocí Věty 1.2. 5. Z výsledného kanonického tvaru získáme rovnou zápis řešení. Má-li úloha jediné řešení, je v řádku pouze jedna neznámá s koeficientem 1, ostatní koeficienty jsou nulové, pravé strany jsou tedy přímo hodnoty hledaných neznámých. V případě, že úloha má nekonečně mnoho řešení, neznámé, jejichž sloupce tvoří jednotkovou matici kanonického tvaru, jsou základní, ostatní jsou nezákladní. Z každého řádku můžeme přímo vyjádřit příslušnou základní neznámou pomocí neznámých nezákladních, jiné základní neznámé se v řádku vůbec nevyskytují a není třeba dalších úprav rovnic. Vektor řešení soustavy tak můžeme zapsat z výsledné matice v kanonickém tvaru zpaměti. Právě Jordanova metoda je díky průzračnosti výsledné tabulky a eleganci zápisu obecného i základního řešení metodou v tomto kurzu preferovanou. Nebude-li určeno jinak, vždy ji používejte k řešení SLR. Je základem simplexového algoritmu, který budeme v druhé části Operačního výzkumu používat, je třeba se s ní důkladně seznámit. Příklad 1.7.: Pomocí Jordanovy metody úplné eliminace nalezněte řešení SLR
. 16
Řešení Využijeme výsledné matice získané Gaussovou metodou v předcházejícím příkladě, která je ve schodovitém (lichoběžníkovém) tvaru. Na tomto místě se provádí diskuse o řešitelnosti a počtu řešení soustavy, která už byla zapsána v předchozím způsobu řešení. Je třeba získat 1 z prvních nenulových prvků všech řádků a eliminovat všechny prvky nad nimi. Zde jsou všechny první nenulové prvky v každém řádku 1, druhý řádek zcela vyhovuje požadavku kanonického tvaru, stačí tedy pouze eliminovat prvek nad prvkem a22, postačí vynásobit druhý řádek číslem -1 a přičíst k řádku druhému.
Z výsledné matice v kanonickém tvaru vyjádříme a (což můžeme udělat zpaměti) a rovnou zapíšeme vektor obecného řešení soustavy
kde
.
Odpovídající základní řešení bychom také mohli zapsat rovnou z kanonického tvaru matice .
17
1.2 Grafické řešení Kromě původního a maticového způsobu zápisu je možné jednotlivé rovnice soustavy vyjádřit též graficky v kartézské souřadné soustavě. I tímto způsobem je potom možné řešit jednoduché SLR. Při zobrazování souřadnic v rovině jsme ovšem omezeni dimenzí vektoru řešení, dvojici neznámých můžeme vynášet přímo na dvojici kolmých souřadných os, případně pomocí nějaké metody deskriptivní geometrie do roviny zobrazit prostor trojrozměrný. V našem kurzu se v grafickém řešení omezíme pouze na objekty o dvou neznámých zobrazované ve dvourozměrné KSS. Věta 1.8
Grafem i-té rovnice soustavy (1.1) ve tvaru
je přímka, kterou můžeme vydělením pravou stranou bi převést do tzv. úsekového tvaru
, ze kterého jsou přímo patrné úseky, které tato přímka vytíná na jednotlivých osách: osu x1 protíná v bodě
a osu x2 protíná
.
Grafické řešení soustavy lineárních rovnic o dvou neznámých prakticky obnáší určení geometrického místa bodů, které splňují všechny rovnice současně, a leží tedy ve společném průniku všech přímek soustavy. Z diskuse o vzájemné poloze (několika) přímek v rovině vyplývá, že mohou nastat tři různé možnosti: 1) Přímky nemají žádný společný průnik 2) Všechny přímky procházejí jediným společným bodem. 3) Všechny přímky splývají, průnikem je celá přímka. Toto odpovídá dříve popsaným variantám výsledku při početním řešení známým ze střední školy. Příklad 1.8.: Vyřešte graficky soustavu tří lineárních rovnic o dvou neznámých
Řešení Pro lepší orientaci mezi objekty grafu zavedeme označení přímek po řadě a, b, c. První rovnici, která reprezentuje přímku a, převedeme na úsekový tvar vydělením číslem 6,
18
Druhou rovnici nelze do úsekového tvaru převést, jelikož prochází počátkem souřadné soustavy, postačí tedy určit druhý bod, kterým přímka b prochází
Třetí rovnici převedeme na úsekový tvar, ze kterého vyplývá, že přímka c neprotíná osu x2.
Sestrojíme odpovídající přímky a nakonec vyhodnotíme jejich vzájemnou polohu.
Obrázek 1.1 – Grafické řešení SLR
Vzhledem k možným nepřesnostem rýsování je vhodné prověřit výpočtem, zda se všechny tři přímky protínají v bodě A. Určeme nejprve souřadnice průsečíku přímek a a b: musí ležet na obou přímkách zároveň, řešíme tedy soustavu dvou lineárních rovnic o dvou neznámých
. Bod o souřadnicích [4;2] zřejmě leží také na přímce c, jde tedy o společný průnik všech tří přímek. Zjistili jsme, že zadaná soustava má právě jedno řešení, které mohu zapsat vektorem řešení .
19
2. kapitola
SOUSTAVA LINEÁRNÍCH NEROVNIC
2 Definice 2.1 Soustavou m lineárních nerovnic o n neznámých, kde m, n ∈ soustavu ve tvaru
, rozumíme
(2.1) . Reálná čísla xj, kde j = 1, 2,…, n, nazýváme neznámé či proměnné, reálná čísla aij, kde i = 1, 2,…, m, j = 1, 2, …, n, nazýváme koeficienty (v i-té nerovnici u j-té neznámé), reálná čísla bi, kde i = 1, 2,…, m, nazýváme absolutní členy či pravé strany (i-té nerovnice). V dalším textu může být pro pojem soustava lineárních nerovnic použita také zkratka SLN. Poznámka: Při zachování značení z (1.2), (1.4) a (1.5) můžeme soustavu (2.1) zapsat stručně jako maticovou nerovnicí (2.2)
.
V (2.1) jsou všechny nerovnice typu „ “, obecněji můžeme připustit, že nerovnice mohou být také typu „<“, „ “ nebo „>“. Na střední škole se obecné metody řešení soustav lineárních nerovnic nevyučují, proto pro názornost začněme grafickým způsobem řešení.
2.1 Grafické řešení Kromě původního zápisu je možné jednotlivé nerovnice soustavy vyjádřit též graficky v kartézské souřadné soustavě a tímto způsobem je potom možné řešit jednoduché SLN. Při zobrazování souřadnic v rovině jsme ovšem omezeni dimenzí vektoru řešení, dvojici neznámých můžeme vynášet přímo na dvojici kolmých souřadných os, případně pomocí nějaké metody deskriptivní geometrie do roviny zobrazit prostor trojrozměrný. V našem kurzu se v grafickém řešení omezíme pouze na objekty o dvou neznámých zobrazované ve dvourozměrné KSS. 2 Věta 2.1 Grafem i-té nerovnice soustavy (1.1) ve tvaru
je polorovina s hraniční přímkou , 20
kterou opět převedeme do tzv. úsekového tvaru
a zobrazíme v grafu. Grafické řešení soustavy lineárních nerovnic o dvou neznámých prakticky obnáší určení geometrického místa bodů, které splňují všechny nerovnice současně, a leží tedy ve společném průniku všech polorovin soustavy. Z diskuse o vzájemné poloze (několika) polorovin v rovině vyplývá, že mohou nastat tři různé možnosti: 4) Poloroviny nemají žádný společný průnik 5) Všechny poloroviny mají společný jediný bod. 6) Všechny poloroviny mají společných nekonečně mnoho bodů (konvexní polygon). Promyslete si všechny možnosti vzájemných poloh m polorovin v rovině. 2 Příklad 2.1 Vyřešte graficky soustavu tří lineárních nerovnic o dvou neznámých
Řešení Pro lepší orientaci mezi objekty grafu zavedeme označení hraničních přímek po řadě a, b, c. První rovnici, která reprezentuje přímku a, převedeme na úsekový tvar vydělením číslem 3, . Dosazením např. bodu [0;0] do původní nerovnice zjistíme, že nerovnost je splněna, proto zvolený bod a také celá polorovina s hraniční přímkou a, ve které leží, je hledanou polorovinou. Tuto skutečnost naznačíme dvěma čárkami blízko popisu hraniční přímky vedoucí od hraniční přímky směrem do této poloroviny. V případě, že by šlo o nerovnost ostrou, byla by hraniční přímka vyznačena pouze čárkovaně. Druhou rovnici nelze do úsekového tvaru převést, jelikož prochází počátkem KSS, postačí tedy určit druhý bod, kterým přímka b prochází
Dosazením např. bodu [2;0] do původní nerovnice zjistíme, nerovnost splněna není, proto je hledanou polorovinou ta část roviny rozdělené hraniční přímkou b, ve které zvolený bod neleží. Třetí rovnici převedeme na úsekový tvar, ze kterého vyplývá, že přímka c neprotíná osu x2.
21
Dosazením např. bodu [0;0] do původní nerovnice zjistíme, nerovnost splněna není, proto je hledanou polorovinou ta část roviny rozdělené hraniční přímkou c, ve které zvolený bod neleží. Sestrojíme odpovídající poloroviny a nakonec vyhodnotíme jejich vzájemnou polohu.
Obrázek 2.1 – Grafické řešení SLN
Vzhledem k možným nepřesnostem rýsování je vhodné souřadnice vrcholů nalezené oblasti opět přesně dopočítat. Bod A je průsečíkem hraničních přímek a a b, budeme řešit SLR
. Bod B je průsečíkem hraničních přímek a a c, jeho souřadnice jsou řešením SLR
. Bod C je průsečíkem hraničních přímek b a c, jeho souřadnice jsou řešením SLR
. Řešením soustavy lineárních nerovnic je trojúhelník ABC (tedy konvexní mnohoúhelník), jehož vrcholy mají souřadnice A[4;2], B[2;4], C[2;1], zadaná soustava lineárních nerovnic má tedy nekonečně mnoho řešení.
2.2 Algebraické řešení SLN budeme řešit převedením na SLR. Každou nerovnici soustavy (2.1) upravíme (vyrovnáme) na rovnici tak, že k její levé straně, jejíž hodnota je menší nebo rovna pravé, přičteme další proměnnou, která tento vztah doplní na rovnost. Je zřejmé, že tato nová proměnná bude určitě nezáporná. V případě, že by původní nerovnice byla typu „<“, musí být
22
tato nová proměnná kladná. Nerovnosti zbývajících typů lze vynásobením číslem -1 na tyto převést. Pro i-tou nerovnici soustavy (2.1) ve tvaru (2.3)
nahradíme rovnicí (2.4) kde
.
Definice 2.2 Soustavu m lineárních nerovnic o (m + n) neznámých x1, x2,…,xn ∈ R, x´n+1, x´n+2,…, x´n+m, ∈ R0 kde m, n ∈ N
(2.5)
nazýváme adjungovaná (přidružená) soustava rovnic k soustavě (2.1). Proměnné x´n+i, kde i = 1, 2,…, m, nazýváme přídatné proměnné. Příklad 2.2 Vyřešte graficky soustavu tří lineárních nerovnic o dvou neznámých
Řešení Nejprve upravíme všechny nerovnosti na nerovnosti typu „ “, poslední dvě vynásobíme číslem -1.
a sestavíme přidruženou soustavu lineárních rovnic
včetně podmínek pro nově zavedené přídatné neznámé x´3,4,5 0 . Pomocí Jordanovy metody úplné eliminace upravíme 23
, Odkud můžeme zapsat vektor obecného řešení adjungované soustavy lineárních rovnic
kde a vektor obecného řešení zadané soustavy lineárních nerovnic
kde
.
Poznámka: Jak už víme, existuje až různých způsobů vyjádření obecného řešení adjungované soustavy, záleží na volbě základních neznámých. Přirozeně se snažíme, aby mezi nimi byly spíše původní proměnné. Pro nezákladní neznámé je vždy nutné uvést obor jejich hodnot, pro původní neznámé je to obvykle množina reálných čísel, pro přídatné neznámé množina nezáporných, resp. kladných čísel (podle toho, zda jsou nerovnosti v zadané soustavě (2.1) neostré nebo ostré). U základních řešení, která mají v dalším textu velký význam, je nutné ještě ověřit, zda jsou všechny podmínky splněny. Definice 2.3 Mějme soustavu lineárních rovnic, která má nekonečně mnoho řešení. Přípustným řešením soustavy nazýváme takové řešení, ve kterém jsou všechny složky z daného oboru hodnot příslušné proměnné. Příklad 2.3 Určete počet všech základních řešení adjungované soustavy rovnic, nalezněte je a rozhodněte o jejich přípustnosti, popř. degeneraci. Řešení Podle vztahu z věty 1.7 má tato SLR nejvýše základních řešení. Pro přehlednost zápisu použijme tentokrát k rozlišení základních řešení dvojí index složený z indexů vybrané dvojice nezákladních neznámých. Ze zapsaného obecného řešení získáme první základní řešení . Jeho přípustnost ověříme pohledem, přídatné neznámé, tedy poslední tři složky vektoru řešení, musí být nezáporná čísla, což je splněno, základní řešení xz45 je přípustné.
24
Všimněte si, že i předchozí tři tvary ekvivalentních matic jsou kanonické, můžeme z nich také rovnou zapsat odpovídající základní řešení, po řadě dostáváme
Přičemž xz12 a xz25 přípustné nejsou, a xz35 je druhým přípustným základním řešením soustavy. Je třeba sestavit ještě dalších šest matic v kanonickém tvaru
Chyba! Odkaz není platný.. Rozmyslete si, proč nelze pomocí řádkových úprav matice dosáhnout kanonického tvaru pro nezákladní neznámé x1 a x´5 a tak vyplnit zvýrazněná pole. Pro nalezené matice zapíšeme postupně odpovídající základní řešení včetně určení jejich přípustnosti. je nepřípustné, je nepřípustné, neexistuje je nepřípustné, je nepřípustné, je přípustné, je tedy třetím přípustným základním řešením adjungované soustavy lineárních rovnic. Základní řešení ve tvaru je navíc degenerované, obsahuje více nulových složek než je počet nezákladních neznámých. První dvě souřadnice uvedených vektorů odpovídají souřadnicím průsečíků v Obrázku Obrázek 2.1 z grafického řešení zadané soustavy. Zbylé tři souřadnice nejsou v grafu zobrazeny, ukazují, o kolik je v odpovídající nerovnici levá strana menší než pravá. Záporné číslo znamená, že je levá strana větší než pravá, příslušná nerovnost není splněna a takovéto řešení je tedy nepřípustné.
25
Ještě jednou se vraťte ke grafu a vyznačte v něm všechny body odpovídající jednotlivým základním řešením. Přípustná řešení v grafu vyznačte symbolem a nepřípustná . Všímejte si také případné násobnosti těchto bodů. Je vidět, že body odpovídající všem základním řešením leží na průsečíku nějaké dvojice přímek. I zde můžeme určit maximální počet takto nalezených bodů. Počet různých možností výběru dvou přímek ze všech (hraničních i os) k určení jednoho průsečíku vyjadřuje kombinační číslo , přičemž některé body mohou splývat (viz násobnost bodu [0;0] a některé nemusí existovat (zde nemají žádný průsečík rovnoběžné přímky. c a x2, symbolicky je zde slabě naznačen jako jejich nereálný průsečík.) Obecněji bychom mohli tvrdit, že dříve odvozené kombinační číslo (v rovině navíc pouze pro n = 2) vyjadřuje maximální možný počet všech průsečíků v grafu.
Obrázek 2.2 – Grafické řešení SLN
Průsečíky se souřadnými osami však vznikly uměle, nemají v diskusi o vzájemné poloze polorovin daných nerovnicemi žádný význam, Jim odpovídají základní řešení, kde byla alespoň jednou základní neznámou neznámá přídatná, je tedy zřejmé, že sestavovat takovéto kanonické tvary je pro vymezení množiny všech řešení soustavy zbytečné. To se samozřejmě změní, pokud jedna z hraničních přímek bude ležet přímo na jedné ze souřadných os.
26
3. kapitola
OPERAČNÍ VÝZKUM
Operační výzkum (operační analýza, operational research nebo management science) je soubor vědních disciplín zaměřených na analýzu různých typů rozhodovacích problémů a koordinaci provádění dílčích operací v rámci nějakého systému s využitím kvantitativních matematických metod a modelů tak, aby bylo zajištěno jeho co nejlepší fungování posuzované podle předem stanovených kriterií při dodržení všech omezení, která mají na chod tohoto systému vliv. Jednou z mnoha oblastí, kde nachází své praktické uplatnění je oblast ekonomie a managementu. Počátky budování metod operačního výzkumu ovšem sahají už do období 30. let minulého století, později byl jeho vývoj motivován potřebou řešit komplexní problémy během válečných operací a výrazného praktického uplatnění a dalšího prudkého rozvoje doznal tento vědecký směr během poválečných 50. let, kdy dochází v USA i v Evropě k bouřlivému ekonomickému rozvoji. Historie operačního výzkumu a především lineárního programování je úzce spjata se jmény jako George B. Dantzig, který v roce 1947 vyvinul simplexovou metodu, John von Neumann, který v témže roce přišel s teorií duality a později také Leonid Kantorovič, kterému byla v roce 1975 udělena Nobelova cena za ekonomii. Velkou roli v operační analýze sehrává také rozmach výpočetní techniky. V dnešní době je operační výzkum vědou intenzivně aplikovanou a živě se rozvíjející. Jeho metody nacházejí stále častější uplatnění v řadě odvětví lidské činnosti, kde je třeba komplexně analyzovat problémy a efektivně koordinovat prováděné operace.
3.1 Matematický model úloh Na počátku vždy stojí reálný systém, který je obvykle velmi složitý, zahrnuje velké množství procesů či operací a různorodých omezení. Úkolem dobrého manažera je vybrat v reálném systému problém, který je třeba analyzovat, a ten zcela přesně formulovat. Ekonomický model systému Úkolem managementu je tedy sestavit zjednodušený model reálného ekonomického systému, který bude zahrnovat pouze nutné prvky popisující formulovaný problém. Je nezbytné stanovit cíl analýzy a následné optimalizace, popsat všechny operace či procesy (např. vyrábění výrobků, dělení materiálu, sestavování směsí, …), které mají na tento cíl vliv, popsat všechny činitele (např. spotřeba omezených kapacit zdrojů, dodržení stanovených požadavků) a slovně výstižně formulovat vztahy mezi vytyčeným cílem a zmíněnými procesy a činiteli. Matematický model systému Úkolem řešitele je následně tento problém převést do řeči matematiky, zvolit vhodné analytické metody, nalézt řešení a provést jeho slovní interpretaci. Pro skutečný výpočet je nutné formulovat model systému formálním matematickým způsobem, aby jej bylo možné vyřešit standardními postupy. Jde o čistě matematickou syntaxi analyzovaného systému. Cíl analýzy je obvykle vyjádřen jako funkce n proměnných (neznámých), kterou nazýváme účelová funkce, ozn. z = f(x), jejíž hodnotu máme obecně optimalizovat (buď maximalizovat, nebo minimalizovat), tedy nalézt vázaný extrém funkce více proměnných. Jednotlivým procesům odpovídá těchto n zavedených strukturních proměnných (neznámých) značených obvykle x1, x2, … , xn, zapsaných zpravidla pomocí vektoru x = (x1, x2, … , xn)T. 27
Nazýváme je strukturní neznámé (proměnné). Po řadě zachycují počty realizací jednotlivých procesů či operací (např. počty jednotlivých druhů výrobků), je tedy hned zřejmé, že v reálném procesu nemohou nabývat záporných hodnot, hovoříme o podmínkách nezápornosti. Při řešení úloh LP hledáme takové hodnoty neznámých x = (x1, x2, … , xn)T, které zaručí nejlepší (buď maximální, nebo minimální) hodnotu účelové funkce. Při jejich zavedení je třeba důsledně dbát na jejich formulaci, včetně stanovení vhodné jednotky, což je důležité pro zápis v samotném výpočtu, dodržení konzistence modelu, stejně jako pro výslednou korektní interpretaci. Velikosti jednotlivých složek ovlivňují další podmínky. Omezení jednotlivými činiteli bývá nejčastěji vyjádřeno ve formě rovnic či nerovnic, kde zmíněná intenzita aij je koeficientem u proměnné odpovídající vybranému procesu a disponibilní množství bi (požadavek či kapacita) je pravou stranou ne/rovnice. Zápisy těchto omezení nazýváme vlastní omezení úlohy. Podle nerovnostního znaménka je rozdělujeme na omezení kapacitní (typ „ “, např. omezení množstvím suroviny ve skladu potřebných k výrobě), požadavková (typ „ “, např. požadavek minimální denní dávky nějaké výživové komponenty jídelníčku) a určení (typ „=“, např. vyjádření potřeby expedice veškerého vyrobeného zboží), kterým se, můžeme-li, vyhýbáme, jelikož příliš omezují množinu přípustných řešení. Omezující podmínky chápeme ve vztahu konjunkce, vymezují přípustné kombinace hodnot proměnných. Matematický model tedy obsahuje čtyři základní komponenty: zavedení strukturních neznámých, jejich podmínky nezápornosti, soustavu vlastních omezení a jednu či více účelových funkcí Postačí-li v matematickém modelu nějakého ekonomického systému k vyjádření účelové funkce a všech vlastních omezení pouze lineárních rovnic a nerovnic, hovoříme o lineárním programování. V ekonomické praxi se s těmito úlohami setkáváme nejčastěji. V našem kurzu se budeme zabývat pouze takovýmito procesy. Podle toho, kolik účelových funkcí je třeba zároveň analyzovat, rozdělíme následující témata do dvou oblastí:
3.2 Lineární programování Jednou z nejrozšířenějších oblastí operačního výzkumu v praxi je lineární programování. Matematický model úloh lineárního programování (LP) má jedinou lineární účelovou funkci a vlastní omezení úlohy jsou popsána pouze lineárními rovnicemi a nerovnicemi. 3 Definice 3.1 Matematickým modelem úlohy lineárního programování s n neznámými a m vlastními omezeními, kde m, n ∈ , rozumíme úlohu nalézt extrém (maximalizovat nebo minimalizovat) (3.1)
za podmínek
(3.2)
a 28
a
pro
.
(3.3)
Reálná čísla xj, kde j = 1, 2,…, n, nazýváme strukturní neznámé či proměnné, reálná čísla aij, kde i = 1, 2,…, m, j = 1, 2, …, n, nazýváme strukturní koeficienty (v i-tém vlastním omezení u j-té strukturní neznámé), reálná čísla bi, kde i = 1, 2,…, m, nazýváme požadavková čísla či pravé strany (i-tého vlastního omezení), reálná čísla cj, kde j = 1, 2,…, n, nazýváme ceny či cenové koeficienty (j-tého procesu). V dalším textu může být pro úlohu lineárního programování použita také zkratka úloha LP. Poznámka: Při zachování dříve zavedeného značení můžeme úlohu nalézt extrém (3.1) za podmínek (3.2) zapsat stručně jako (3.4)
za podmínek (3.5)
, kde cT = (c1, c2, … , cn) je vektor cenových koeficientů, x = (x1, x2, … , xn)T je vektor strukturních neznámých, b = (b1, b2, … , bm)T je vektor pravých stran, x = (0; 0; …;0)T. je nulový vektor (n – složkový), A = (aij) je matice strukturních koeficientů typu mxn.
V (3.2) jsou všechna vlastní omezení typu „ “, obecněji můžeme připustit, že mohou být také typu „<“, „ “, „>“ nebo „=“. Poznámka: Pro přehlednost zaveďme úmluvu, že všechny vektory zapisujeme jako sloupcové. Chceme-li vyjádřit vektor řádkový, použijeme pro zápis transponovanou formu vektoru. Naopak: je-li v maticovém zápise u značky vektoru také horní index T, znamená to, že je ve výpočtu použit jako vektor řádkový (ze sloupcového transponovaný), ostatní jsou použity jako sloupcové (bez transponování). Metody lineárního programování na základě teorie řešení soustav lineárních nerovnic a algoritmu Jordanovy metody úplné eliminace umožňují řešit celou škálu speciálních optimalizačních úloh lineárního programování. V dalších kapitolách se seznámíme s několika metodami řešení úloh LP: s primárně simplexovou a duálně simplexovou. Výhodnějšího zápisu potom využijeme při optimalizaci v dopravní tabulce. Pro ilustraci nyní uveďme několik základních typů ekonomických úloh a speciálních tvarů jejich matematických modelů.
29
3.2.1 Úlohy výrobního plánování V úlohách výrobního plánování je obvykle cílem určit strukturu výrobního programu tak, aby bylo dosaženo maximálního zisku či minimálních nákladů. Proměnné v modelu úlohy výrobního plánování představují nejčastěji objem produkce určitého druhu výrobku a omezující podmínky vycházejí z limitovaných výrobních kapacit, technologických podmínek, požadavků odběratelů apod. Úlohy tedy mohou být maximalizační i minimalizační, omezující podmínky mohou být kapacitní (omezené množství vstupních surovin), požadavkové (je-li stanoven minimální objem produkce) i podmínky určení (je-li stanoven přesný objem produkce, částka k proinvestování atd.). Uvedeme tři příklady úloh výrobního plánování, v prvním půjde o jednoduchou úlohu výrobního plánová, ve druhém mohou být některé produkované výrobky použity jako polotovary pro výrobky další, ve třetím půjde o plánování výroby na více období. 3 Příklad 3.1 Sestavte matematický model slovně zadané ekonomické úlohy: Ve sklářské dílně se vyrábí zdobené vázy a broušené mísy. Na výrobu jedné vázy je potřeba 1kg skla, 2 balení zlatých ozdob a její následné ruční broušení trvá 1 hodinu. Na výrobu jedné mísy je potřeba 1kg skla a její broušení trvá 5 hodin. Zásoba skla činí 8 tun, je k dispozici 14 000 balení zlatých ozdob a časová kapacita brusek je 20 000 hodin. Cena hotových výrobků je 500 Euro za vázu a 300 Euro za mísu. Předpokládejme, že se prodají všechny vyrobené vázy i mísy. Navrhněte takový výrobní program, při kterém bude celková cena této produkce maximální. Řešení: 1. Zavedení strukturních neznámých matematického modelu úlohy: Úkolem je zjistit počty váz a mís, reprezentovat je budou dvě proměnné x1 … počet vyrobených váz, x2 … počet vyrobených mís, u obou jsou jednotkou kusy. Nadále postačí uvádět je v hranaté závorce. 2. Zřejmé jsou jak podmínky nezápornosti (neboť nelze v reálném výrobním procesu produkovat záporná množství výrobků)
, tak požadavek celočíselnosti (neboť nemá smysl v reálném výrobním procesu produkovat zlomky výrobků)
. 3. Vlastní omezení úlohy vycházejí z disponibilních množství jednotlivých výrobních činitelů. Nemůže být spotřebováno více než 8 tun skla, nemůže být spotřebováno více balení zlatých ozdob, než je na skladě a nemůže být překročena kapacita brusek.
. 30
4. Cílem je analýza celkové ceny produkce, kterou určíme sečtením částek utržených za prodej jednotlivých typů výrobků. Požadujeme nalezení maximální hodnoty účelové funkce
za předpokladu, že budou dodrženy všechny uvedené podmínky. Takto jsme sestavili úplný matematický model úlohy lineárního programování. Příklad 3.2 Sestavte matematický model slovně zadané ekonomické úlohy: Čokolatérie vyrábí čtyři druhy bonbónů K, L, M, N, a prodává je jednotlivě se zavedenou cenou 5 Kč, 8 Kč, 6 Kč, 10 Kč za kus. Může je také kompletovat do bonboniér Ráj (10 ks K a 10 ks L), Sen (12 ks M a 12 ks N) a Touha (5 ks od každého druhu), které úspěšně prodává se zavedenou cenou 130 Kč, 180 Kč, 160 Kč. Bylo rozhodnuto, že bude vyrobeno alespoň 50 kusů bonboniér. Na výrobu jednoho bonbonu K se spotřebuje 5 g mléčné čokolády a 10 g náplně., na výrobu jednoho bonbonu L 10 g mléčné čokolády a 5 g oříšků, na výrobu jednoho bonbonu M padne 5 g hořké čokolády, 5 g náplně a 5 g oříšků a na výrobu jednoho bonbonu N 10 g hořké čokolády a 5 g oříšků. Před Vánoci má čokolatérie k dispozici ještě 10 kg mléčné čokolády, 6 kg hořké čokolády, 7 kg náplně a 3 kg oříšků, a tak hledá optimální rozvržení své produkce a prodeje, přičemž předpokládá, že se všechny výrobky jako obvykle prodají. Řešení: 1. Strukturní neznámé pro sestavení matematického modelu úlohy zavedeme následovně: x1 … počet vyrobených bonbonů druhu K [ks], x2 … počet vyrobených bonbonů druhu L [ks], x3 … počet vyrobených bonbonů druhu M [ks], x4 … počet vyrobených bonbonů druhu N [ks], x5 … počet vyrobených bonboniér Ráj [ks], x6 … počet vyrobených bonboniér Sen [ks], x7 … počet vyrobených bonboniér Touha [ks]. 2. Vlastní omezení úlohy: K dispozici je 10 kg mléčné čokolády, její spotřeba při výrobě bonbonů je shora omezená. Poznamenejme, že je nutné všechny údaje vyjádřit ve stejné jednotce. Analogicky zapíšeme také kapacitní podmínku pro spotřebu ostatních surovin.
. Spotřeba bonbonů jako polotovarů pro kompletování bonboniér nemůže být vyšší, než kolik jich bude nejprve vyrobeno. Bonboniéry Ráj mohu vyrobit nejvýše v takovém počtu, na jaký mi již vyrobené bonbony vystačí. Analogicky zapíšeme také vztahy pro omezenou kapacitu při výrobě bonboniér Sen a Touha.
31
. Požadavek, aby bylo vyrobeno nejméně 50 kusů bonboniér, formulujeme jako nerovnici
3. Podmínky nezápornosti jsou v úloze LP samozřejmostí: , z definice strukturních proměnných vyplývá, že bychom měli požadovat produkování celých bonbonů a kompletních sad bonboniér, je tedy na místě spíše požadavek celočíselného řešení . 4. Při sestavování účelové funkce sledujeme cíl maximalizovat tržbu z prodeje jednotlivých druhů zboží: a) tržby z prodeje jednotlivých druhů bonbonů (nemohu počítat ty, které použiji do bonboniér) budou postupně:
, b) tržby z prodeje jednotlivých druhů bonboniér , Účelovou funkci z získáme jako jejich součet. Po úpravě výrazů dostaneme přehledný matematický model
32
Příklad 3.3 Truhlářská firma zabývající se výrobou nábytku se zákazníkem uzavřela smlouvu na dodání 300 trojdílných a 600 dvoudílných skříní, které mají být připraveny k expedici za dva měsíce. Na trojdílnou skříň je potřeba 12 m2 dřeva a 5 hodin práce, na dvoudílnou skříň 9 m2 a 4 hodiny práce. V lednu má firma k dispozici 5 000 m2 materiálu a 4 000 hodin práce zaměstnanců, v únoru bude mít k dispozici 4 000 m2 materiálu a 2 000 hodin práce zaměstnanců. Materiál, který firma v lednu nebude potřebovat, může uložit v sousedově skladovacím prostoru za 5 Kč za 1 m2 uloženého materiálu na dobu 1 měsíce. Skříně vyrobené v lednu může uložit do termínu expedice tamtéž, každou trojdílnou skříň za 80 Kč, každou dvojdílnou skříň za 60 Kč na měsíc. Lednové výrobní náklady na zhotovení jedné trojdílné skříně jsou 2500 Kč, na zhotovení dvojdílné skříně pak 1800Kč. Vzhledem k plánovanému zdražení energií budou ale tyto výrobní náklady v únoru už o 20% vyšší. Naplánujte výrobu skříní tak, aby byly minimalizovány veškeré náklady související s touto zakázkou. Řešení: 1. Strukturní neznámé pro sestavení matematického modelu úlohy zavedeme následovně: x1 … počet trojdílných skříní vyrobených v lednu [ks], x2 … počet trojdílných skříní vyrobených v únoru [ks], x3 … počet dvojdílných skříní vyrobených v lednu [ks], x4 … počet dvojdílných skříní vyrobených v únoru [ks]. 2. Vlastní omezení úlohy: Čas spotřebovaný při výrobě nemůže přesáhnout v lednu dostupných 4 000 hodin a v únoru dostupných 2 000 hodin práce:
. Spotřeba dřeva nemůže přesáhnout v lednu 5 000 m2, které jsou k dispozici, v únoru pak lze spotřebovat maximálně 4 000 m2 a zbytek z lednových zásob:
. Musí být dodržen požadavek zákazníka na přesný počet objednaných skříní:
. 3. Podmínky nezápornosti jsou v úloze LP samozřejmostí: , z definice strukturních proměnných vyplývá, že bychom měli požadovat produkování kompletních skříní, je tedy na místě spíše požadavek celočíselného řešení . 4. Při sestavování účelové funkce sledujeme cíl minimalizovat celkové náklady, a to: 33
a) přímé výrobní náklady (v únoru ovlivněné zdražováním energií o 20%): , b) náklady spojené s uskladněním hotových výrobků , c) náklady spojené s uskladněním v lednu nevyužitého materiálu . Účelovou funkcí získáme jako jejich součet. Po úpravě výrazů dostaneme přehledný matematický model
. 3.2.2 Úlohy finančního plánování Mezi standardní úlohy LP patří také tzv. optimalizace finančního portfolia. Cílem je určit objem investic do jednotlivých investičních variant tak, aby bylo dosaženo maximálního očekávaného výnosu či minimálního rizika. Proměnné v modelu úlohy finančního plánování představují objem investic (v absolutních či relativních číslech) a omezující podmínky vycházejí z investiční strategie investora limitující výše investic do jednotlivých investičních variant. Úlohy tedy mohou být maximalizační i minimalizační, omezující podmínky mohou být kapacitní (minimální hranice očekávaného výnosu), požadavkové (maximální hranice podstupovaného rizika) i podmínky určení (je-li stanovena částka k proinvestování). Příklad 3.4 Navrhněte optimální skladbu investičního portfolia, chcete-li investovat jeden milion Kč a máte-li na výběr z pěti druhů cenných papírů, u kterých je znám očekávaný roční výnos (v %) a též byla odhadnuta jejich rizikovost (koeficient z celočíselné stupnice 0 – 10 od nejnižší k nejvyšší rizikovosti), jak popisuje následující tabulka: Tabulka 3.1 – parametry cenných papírů Cenný papír CP1 CP2 CP3 CP4 CP5
Očekávaný roční výnos (%) 6,5 7 9 11 15
34
Koeficient rizikovosti (0 – 10) 1 3 5 7 10
Přitom investor požaduje, aby CP1 nebo CP2 byly nakoupeny alespoň v hodnotě 400 000Kč, CP5 nejvýše v hodnotě 300 000Kč a celková míra rizika portfolia, definovaná jako vážený průměr koeficientů rizikovosti jednotlivých variant, nesmí přesáhnout 4. Řešení: 1. Strukturní neznámé pro sestavení matematického modelu úlohy zavedeme následovně: x1 … částka investovaná do CP1 [Kč], x2 … částka investovaná do CP2 [Kč], x3 … částka investovaná do CP3 [Kč], 2. Vlastní omezení úlohy: Má být proinvestován právě 1 milion Kč: . Cenné papíry CP1 nebo CP2 musí být nakoupeny alespoň v hodnotě 400 000Kč: . Cenné papíry CP5 musí být nakoupeny nejvýše v hodnotě 300 000Kč: . Celková míra rizika nesmí přesáhnout 4. Vztahy vyplývající z investiční strategie nejprve upravme. Např. požadavek pro vážený průměr koeficientů rizikovosti zapíšeme
x1 2 x2 5 x3 7 x4 10 x5 4, x1 x2 x3 x4 x5 po úpravě: x1 2 x2 5x3 7 x4 10 x5 4( x1 x2 x3 x4 x5 ) .
3. Podmínky nezápornosti pro výše dílčích investovaných částek: . 4. Při sestavování účelové funkce sledujeme cíl maximalizovat očekávaný roční výnos:
Po úpravě výrazů dostaneme přehledný matematický model
35
3.2.3 Plánování reklamy V oblasti marketingu se s úlohou LP setkáváme při výběru vhodných typů médií pro umístění reklamy. Cílem je určit optimální počet uvedení reklamy v médiích jednotlivých typů tak, aby bylo dosaženo maximálního účinku reklamy (počet osob oslovených reklamou v dané cílové skupině např. dospívající mládež nebo hodnoty v marketingu definované charakteristiky sledovanosti v cílové skupině). Proměnné v modelu úlohy plánování reklamy představují počet uvedení reklamy v jednotlivých typech médií a omezující podmínky vycházejí z marketingové strategie limitované počty opakování reklamy. Tyto úlohy jsou obvykle maximalizační, omezující podmínky mohou být kapacitní (omezení výší rozpočtu reklamní kampaně) i požadavková (vymezení primární cílové skupiny) apod. Příklad 3.5 Reklamní agentura dostala zakázku na zpracování měsíční reklamní kampaně penzijního připojištění. Celkový objem prostředků uvolněný na tuto kampaň je 10 milionů Kč. Reklama může být umístěna do pěti médií: televize, rozhlas, časopisy, denní tisk a billboardy. Odhaduje se, že v přepočtu na vynaložených 1000Kč osloví reklama v televizi 750 klientů, reklama v rozhlase 420 klientů, skrze časopisy 300 a skrze denní tisk 360 klientů, a pomocí billboardů 180 klientů. Do televize a rozhlasu se plánuje investovat maximálně polovinu plánovaných finančních prostředků, do každého z médií ale nejméně 10% a nejvýše 30% těchto prostředků. Je také známa struktura věku, příjmů a vzdělání osob jednotlivými médii oslovovaná (opět vyjádřená počtem oslovených osob v přepočtu na vynaložených 1000Kč), viz tabulka: Tabulka 3.2 – Počet oslovených osob na každých investovaných 1 000 Kč
Média Věk 30 – 50 Příjem nad 15 000 Kč Alespoň SŠ vzdělání
televize 320 120 350
rozhlas 280 90 200
časopis 140 60 120
denní tisk 240 60 140
billboard 120 50 60
Reklamu je třeba rozvrhnout tak, aby bylo osloveno alespoň 2,5 milionu osob ve věku 30 – 50 let, 0,8 milionu osob s příjmy nad 15 000Kč a alespoň 1,5 milionu osob s minimálně středoškolským vzděláním a přitom aby bylo dosaženo maximálního možného počtu oslovených klientů. Řešení: 1. Strukturní neznámé pro sestavení matematického modelu úlohy zavedeme následovně: x1 … objem finančních prostředků investovaných do reklamy v televizi [miliony Kč], x2 … objem finančních prostředků investovaných do reklamy v rozhlase [miliony Kč], x3 … objem finančních prostředků investovaných do reklamy v časopisech [miliony Kč], x4 … objem finančních prostředků investovaných do reklamy v denním tisku [miliony Kč], x5 … objem finančních prostředků investovaných do reklamy na billboardech [miliony Kč], 2. Vlastní omezení úlohy: Celkový rozpočet investice do reklamy nesmí překročit 10 milionů Kč: . Do televize a rozhlasu má být investováno maximálně 50% vynaložených finančních prostředků: 36
a do každého z médií nejméně 10% a nejvýše 30% těchto prostředků , poznamenejme, že tento zápis reprezentuje 10 vlastních omezení úlohy. Podmínky počty klientů podle struktury osob oslovených jednotlivými médii zapíšeme jako:
. 3. Podmínky nezápornosti pro výše dílčích investovaných částek: . 4. Při sestavování účelové funkce sledujeme cíl maximalizovat počet reklamou oslovených potenciálních klientů:
Dostáváme přehledný matematický model
3.2.4 Nutriční problém V oblasti dietologie je často formulován problém vhodných nutričních komponent (potravin) k zařazení do jídelníčku. Cílem je určit optimální složení denní dávky výživy pacienta tak, aby bylo dosaženo minimální ceny potravin či maximálního přísunu naordinované látky. Proměnné v modelu úlohy nutričního problému představují množství daných nutričních komponent zařazených do jídelníčku a omezující podmínky vycházejí z pokynů dietologa. Tyto úlohy jsou obvykle minimalizační (co nejnižší náklady) i maximalizační (co nejvyšší přísun vápníku), omezující podmínky mohou být kapacitní (maximální hranice pro přísun tuků), požadavková (minimální hranice pro přísun bílkovin) i podmínky určení (dodržení přesně stanovené denní dávky vápníku). Příklad 3.6 Je třeba sestavit vyvážený jídelníček pro štěně z pěti druhů granulí G1, G2, G3, G4 a G5, které se prodávají ve 100gramových baleních za cenu 56Kč, 32Kč, 80Kč, 105Kč a 60 Kč. Složení jednotlivých balení granulí je uvedeno v tabulce. 37
Podle doporučení veterináře musí štěně přijmout celkem pět 100gramových dávek denně. Doporučená celková denní energetická hodnota je minimálně 8000 kcal, obsah bílkovin minimálně 250 gramů, obsah tuků nejméně 500 gramů a maximálně 250 gramů, vápníku alespoň 5 mg a fosforu mezi 20 mg a 30 mg. Štěněti je třeba podat také 2 litry vody denně. Tabulka 3.3 – Složení 100g porce jednotlivých druhů granulí
Druh granulí Energie [kcal] Bílkoviny [g] Tuky [g] Vápník [g] Fosfor [mg] Cena [mg]
G1 160 50 10 3 5 56
G2 80 20 30 2 10 32
G3 200 70 20 2 0 80
G4 180 50 20 1 8 105
G5 100 30 10 1 0 60
Omezení alespoň 800 kcal alespoň 250 g min. 50 g a max. 250 g alespoň 5 mg mezi 20 a 30 mg co nejnižší
Jídelníček je třeba rozvrhnout tak, aby byl co nejlevnější, při požadavku na pestrost stravy, kdy žádný druh granulí nesmí být podán štěněti více než dvakrát za jeden den. Řešení: 1. Strukturní neznámé pro sestavení matematického modelu úlohy zavedeme následovně: x1 … počet podaných dávek granulí G1 [ks], x2 … počet podaných dávek granulí G2 [ks], x3 … počet podaných dávek granulí G3 [ks], x4 … počet podaných dávek granulí G4 [ks], x5 … počet podaných dávek granulí G5 [ks]. 2. Vlastní omezení úlohy: Denně má být štěněti podáno právě pět 100gramových dávek . Kapacitní podmínky pro obsah energie, bílkovin, tuků, vápníku a fosforu
a požadavková podmínka pro obsah tuku a fosforu:
. Požadavek na pestrost stravy vyjadřují podmínky: . 3. Podmínky nezápornosti pro počty podaných dávek: , 38
z definice strukturních proměnných ovšem vyplývá, že budeme podávat celé dávky, je tedy na místě spíše požadavek celočíselného řešení . 4. Při sestavování účelové funkce sledujeme cíl minimalizovat náklady na sestavení denního jídelníčku:
Dostáváme přehledný matematický model
3.2.5 Směšovací úlohy Směšovací problém má obecnější využití. Cílem je vytvořit směs optimálního složení z jednotlivých dostupných komponent tak, aby bylo dosaženo maximálního zisku či minimálních nákladů. Proměnné v modelu směšovací úlohy představují množství jednotlivých komponent (v absolutních či relativních číslech) a omezující podmínky vycházejí z požadovaných vlastností připravované směsi. Úlohy mohou být jak maximalizační, tak minimalizační, vlastní omezení mohou být všech tří zmíněných typů. Jako speciální směšovací úlohy mohou být chápány nutriční problém (návrh výživy), optimalizace finančního portfolia (směs finančních investic) i strategie reklamy (směs reklamních médií). Příklad 3.7 Rafinérie vyprodukovala dva základní druhy surového benzínu v množstvích 300hl SB1 a 700hl SB2. SB1 má oktanové číslo 104 a tlak par 50kPa a SB2 má oktanové číslo 94 a tlak par 90kPa. Z nich je možné vhodným smísením vyrobit „motorový benzín“ nebo „letecký benzín“: motorový benzín s požadovaným oktanovým číslem alespoň 96 a tlakem par nejvýš 80kPa a letecký benzín s požadovaným oktanovým číslem alespoň 102 a tlakem par nejvýše 60kPa. Přitom leteckého benzínu se neprodá více než 200hl. Výsledné oktanové číslo (výsledný tlak par) směsi se určí jako vážený aritmetický průměr hodnot oktanových čísel (tlaků par) obou dílčích komponent, kde vahou je objem těchto komponent. Navrhněte optimální způsob míchání obou směsí, aby bylo dosaženo maximální
39
tržby, pokud cena motorového benzínu je 37,20Kč a cena leteckého benzínu je 48,50Kč za litr. Řešení: 1. Strukturní neznámé pro sestavení matematického modelu úlohy zavedeme následovně: x1 … množství SB1 použitého na výrobu motorového benzínu [litry], x2 … množství SB2 použitého na výrobu motorového benzínu [litry], x3 … množství SB1 použitého na výrobu leteckého benzínu [litry], x4 … množství SB2 použitého na výrobu leteckého benzínu [litry]. 2. Vlastní omezení úlohy: K dispozici jsou pouze omezená množství obou druhů surového benzínu SB1 a SB2:
. Leteckého benzínu nemá být vyprodukováno více než 200hl: . Dále je třeba namíchat směsi s požadovanými parametry: motorový benzín s požadovaným oktanovým číslem alespoň 96:
, odkud po převedení proměnných na levou stranu dostaneme , letecký benzín s požadovaným oktanovým číslem alespoň 102:
, motorový benzín s požadovaným tlakem par nejvýš 80kPa:
, a letecký benzín s požadovaným tlakem par nejvýše 60kPa:
. 3. Podmínky nezápornosti pro výše dílčích investovaných částek: . 4. Při sestavování účelové funkce sledujeme cíl maximalizovat celkový zisk z prodeje směsí:
40
Po úpravě všech lomených výrazů dostaneme přehledný matematický model
3.2.6 Úlohy o dělení materiálu Při důkladnějším promyšlení problému stanovení optimálního řezného plánu popisujícího dělení větších standardizovaných celků na menší části požadovaných rozměrů lze též sestavit matematický model úlohy LP. Musí jít ovšem vždy o dělení jednorozměrné (rozřezání 2metrových tyčí, ne vyřezávání z desky). Cílem je určit optimální počet celků rozdělených jednotlivými způsoby řezu tak, aby bylo dosaženo minimálního odpadu, počtu řezů či spotřeby celků. Obvykle je ovšem celá řada způsobů, jak standardizovaný celek rozdělit na části požadovaných rozměrů. Navíc je na řešiteli úlohy odhalit všechny tyto způsoby k následné analýze, případně a priori vyřadit nevhodné (s příliš velkým odpadem), aby zbytečně nezvětšovaly rozměry soustavy nerovnic vlastních omezení. Proměnné v modelu úloh o dělení materiálu představují počty realizací (použití) jednotlivých způsobů a omezující podmínky vycházejí z požadavků na množství částí jednotlivých poptávaných rozměrů. Tyto úlohy jsou typicky minimalizační, omezující podmínky obvykle požadavkové. Příklad 3.8 Na dřevěné obložení místnosti budou použita čtyřmetrová prkna o šířce 10 cm. Je třeba obložit 8 metrů stěny svisle kladenými prkny o délce 120 cm, v oblasti oken budou obloženy celkem 4 m prkny o délce 80 cm a na šikmé stropní podhledy bude potřeba položit 4 m prken o délce 240 cm. Kolik prken je třeba koupit, má-li být dosaženo minimálního odpadu? Řešení: Nejprve je třeba určit všechny možnosti rozřezání čtyřmetrových prken na kratší části požadovaných délek. Za odpad je považován takový kus prkna, ze kterého již nelze získat část použitelné délky. Všechny varianty označené V1, V2, … zapišme do tabulky Tabulka 3.4 - Způsoby rozřezání čtyřmetrových prken na části požadovaných délek
Délka prkna
V1
V2
V3
V4
V5
V6
80 cm 120 cm 240 cm Odpad [cm]
0 1 1 40
2 0 1 0
0 3 0 40
2 2 0 0
3 1 0 40
5 0 0 0
Požadováno [cm] 40 80 40 min.
1. Strukturní neznámé pro sestavení matematického modelu úlohy zavedeme následovně: x1 … počet čtyřmetrových prken rozřezaných podle plánu V1 [ks], 41
x2 … počet čtyřmetrových prken rozřezaných podle plánu V2 [ks], x3 … počet čtyřmetrových prken rozřezaných podle plánu V3 [ks], x4 … počet čtyřmetrových prken rozřezaných podle plánu V4 [ks], x5 … počet čtyřmetrových prken rozřezaných podle plánu V5 [ks], x6 … počet čtyřmetrových prken rozřezaných podle plánu V6 [ks]. 2. Vlastní omezení úlohy: Požadavky na počty prken jednotlivých délek:
. 3. Podmínky nezápornosti pro počty rozřezaných čtyřmetrových prken: , z definice strukturních proměnných ovšem vyplývá, že je na místě spíše požadavek celočíselného řešení . 4. Při sestavování účelové funkce sledujeme cíl minimalizovat celkový odpad:
Dostáváme přehledný matematický model
3.2.7 Dopravní problém V oblasti distribuce nějaké komodity od m dodavatelů k n odběratelům je často formulován problém stanovit optimální způsob přepravy, jsou-li známy náklady na přepravu jednotky komodity mezi jednotlivými místy a kapacity jednotlivých dodavatelů a požadavky jednotlivých odběratelů. Cílem je naplánovat rozvezení komodity tak, aby bylo dosaženo minimálního rozsahu přepravy. Proměnné v modelu úlohy dopravního problému představují množství komodity přepravené od i-tého dodavatele k j-tému odběrateli. Tyto úlohy jsou minimalizační, omezující podmínky tvoří výhradně rovnice. Tento specifický tvar matematického modelu vyžaduje také speciální způsob řešení úlohy, jemuž je věnována jedna celá kapitola. Příklad 3.9Ve třech sadech bylo postupně sklizeno 180, 80 a 40 tun jablek, která mají být dopravena ke čtyřem zelinářům, kteří postupně požadují 100, 50, 60 a 90 tun.
42
Přitom vzdálenosti (v km) z jednotlivých sadů k jednotlivým zelinářům ukazuje Tabulka 3.5. Určete optimální způsob přepravy jablek ze sadů k zelinářům tak, aby bylo dosaženo minimálního rozsahu přepravy (skalární součin množství jablek a ujetých kilometrů) [tkm]. Tabulka 3.5 – vzdálenost ze sadů k zelinářům
Vzdálenosti [km] SI SII SIII
Z1 3 5 10
Z2 2 12 7
Z3 5 4 7
Z4 3 6 12
Řešení: 1. U dopravního problému je praktické zavést dvojí indexování strukturních neznámých: x11 … množství přepravených jablek z I. sadu k prvnímu zelináři [t], x12 … množství přepravených jablek z I. sadu ke druhému zelináři [t], ... x34 … množství přepravených jablek ze III. sadu ke čtvrtému zelináři [t]. 2. Vlastní omezení úlohy: tři pro kapacity jednotlivých sadů:
a čtyři pro požadavky jednotlivých zelinářů:
. 3. Podmínky nezápornosti pro přepravovaná množství: pro i = 1, 2, …, m, j = 1, 2, …, n. 4. Při sestavování účelové funkce sledujeme cíl minimalizovat celkový rozsah přepravy:
Dostáváme přehledný matematický model
43
3.3 Vícekriteriální rozhodování Na rozdíl od předcházející kapitoly, kdy bylo řešení úloh LP posuzováno podle jediného optimalizačního kritéria, při řešení úloh vícekriteriálního rozhodování hledáme optimální hodnoty neznámých x = (x1, x2, …, xn)T, které posuzujeme zároveň podle několika navzájem často rozporuplných kriterií (varianta hodnocená podle jednoho kriteria jako nejlepší nemusí být jako nejlepší hodnocena podle kriteria dalšího). Matematický model úloh vícekriteriálního rozhodování tedy obsahuje několik účelových funkcí. Cílem úlohy může být jak nalezení jedné nejlepší varianty, popř. několika nejlepších variant, tak např. uspořádání všech variant sestupně od těch nejlepších nebo rozdělení variant na efektivní a neefektivní. I nadále se v našem textu věnujeme pouze matematickým modelům založeným na vztazích popsatelných lineární funkcí. Podle toho, jak jsou definovány množiny rozhodovacích variant, rozdělujeme úlohy vícekriteriálního rozhodování do dvou skupin: 3.3.1 Vícekriteriální hodnocení variant Pokud je množina posuzovaných variant popsána explicitně konkrétním výčtem všech prvků, hovoříme o úlohách vícekriteriálního hodnocení variant. V dalším textu může být pro úlohu vícekriteriálního hodnocení variant použita také zkratka úloha VHV, popř. VAV jako vícekriteriální analýza variant. Může jít třeba o seznam účastníků výběrového řízení, seznam uchazečů o studium, výčet nabízených produktů apod. 3.3.2 Vícekriteriální lineární programování Je-li množina všech posuzovaných variant popsána implicitně, tedy soustavou omezujících podmínek, hovoříme o úlohách vícekriteriálního programování, pokud jsou navíc tato vlastní omezení popsána lineární funkcí stejně jako v modelu úloh LP, hovoříme o úlohách vícekriteriálního lineárního programování. V dalším textu může být pro úlohu vícekriteriálního lineárního programování použita také zkratka úloha VLP. Definice 3.2 Matematickým modelem úlohy vícekriteriálního lineárního programování s n neznámými, m vlastními omezeními a k rozhodovacími kritérii, kde k, m, n ∈ N, rozumíme úlohu nalézt „optimum“
(3.6)
za podmínek
a
pro
. 44
Reálná čísla xj, kde j = 1, 2,…, n, nazýváme strukturní neznámé či proměnné, reálná čísla aij, kde i = 1, 2,…, m, j = 1, 2, …, n, nazýváme strukturní koeficienty (v i-tém vlastním omezení u j-té strukturní neznámé), reálná čísla bi, kde i = 1, 2,…, m, nazýváme požadavková čísla či pravé strany (i-tého vlastního omezení), reálná čísla chj, kde j = 1, 2,…, n a h = 1, 2,…, k, nazýváme ceny či cenové koeficienty (h-tého hodnotícího kriteria u j-tého procesu). Poznámka: Při zachování dříve zavedeného značení můžeme matematický model z (3.6) zapsat stručně jako
(3.7)
za podmínek (3.8)
, kde ch = (ch1, ch2, …, chn) T je vektor cenových koeficientů h-tého kriteria, x = (x1, x2, …, xn)T je vektor strukturních neznámých, b = (b1, b2, …, bm)T je vektor pravých stran, x = (0; 0; …;0)T. je nulový vektor (n – složkový), A = (aij) je matice strukturních koeficientů typu mxn.
V (3.8) jsou všechna vlastní omezení typu „ “, obecněji můžeme připustit, že mohou být také typu „<“, „ “, „>“ nebo „=“. 3 Metodám vícekriteriálního rozhodování se budeme věnovat v závěrečných kapitolách textu. Využijeme v nich vědomosti z kapitol o metodách řešení úloh LP.
45
4. kapitola
GRAFICKÉ ŘEŠENÍ ÚLOH LP
Nejprve zaveďme dva důležité pojmy: 4 Definice 4.1 Řešení úlohy LP, které vyhovuje všem podmínkám úlohy (všem podmínkám nezápornosti a zároveň všem vlastním omezením), nazýváme přípustné řešení úlohy. Definice 4.2 Přípustné řešení úlohy LP, pro nějž nabývá účelová funkce své nejlepší hodnoty (při maximalizaci hodnoty maximální, při minimalizaci hodnoty minimální), nazýváme optimální řešení úlohy. Definice 4.3 Řešit úlohu LP znamená najít její optimální řešení. Ke grafickému zobrazení lineárních rovnic a nerovnic matematického modelu o dvou strukturních neznámých postačí dvourozměrný prostor, tedy rovina, všechny objekty zobrazíme v KSS. Pro tři strukturní neznámé bychom mohli využít k převodu trojrozměrného prostoru do roviny základních zobrazovacích metod deskriptivní geometrie, což ovšem není náplní tohoto kurzu. V praxi jde většinou o úlohy složité, obsahující velké množství strukturních neznámých, pro více než tři strukturní neznámé již grafické řešení využít nelze. Pro ilustraci přesto tento velmi názorný způsob řešení popišme. Vyjděme tedy z matematického modelu úlohy LP, všechny objekty nejprve geometricky zobrazme v kartézské souřadné soustavě. 1) Pro vynášení hodnot strukturních neznámých x1 a x2 využijeme dvě kolmé osy dvojrozměrné KSS, označíme je po řadě x1 a x2. Jednotka byla zvolena již při formulaci matematického modelu. 2) Z podmínek nezápornosti vyplývá, že přípustná řešení úlohy postačí hledat pouze v I. kvadrantu. 3) Vlastní omezení úlohy jsou buď lineární rovnice, nebo lineární nerovnice, jejich grafické interpretaci jsme se věnovali v předcházejících kapitolách. 4) Komplikovanější je zobrazení účelové funkce, jelikož její optimální hodnotu teprve hledáme a hodnota pravé strany rovnice z je neznámou. Obecně zatím můžeme poznamenat, že pro různé hodnoty z bychom dostávali přímky, které tvoří síť tzv. izokvant – navzájem rovnoběžných přímek procházejících body se stejnou hodnotou účelové funkce, jakousi obdobou vrstevnic v mapě. Zvolme tedy nějaké vhodné z, potom odpovídající izokvanta (zobrazená čárkovaně) bude nositelkou směru celé sítě. Z praktických důvodů zvolíme takové číslo, které je výhodné pro úpravu rovnice do úsekového tvaru (tedy násobek cenových koeficientů) a pro vynesení do grafu vzhledem k měřítku obou os (úseky ani příliš velké, nevešly by se na papír, ani příliš malé, čím bližší jsou při rýsování dva spojované body, tím je větší pravděpodobnost zkreslení směru jejich spojnice.) Někdy bývá zobrazována tzv. „nultá izokvanta“ c1x1 + c2x2 = 0, která prochází počátkem KSS [0;0] a ještě např. bodem [c2; -c1]. Je třeba také šipkou vyznačit směr rovnoběžného posouvání izokvant, ve kterém se hodnota účelové funkce zlepšuje. K tomu postačí zvolit jeden bod mimo již vyznačenou izokvantu se známou hladinou z a zjistit, je-li hodnota účelové funkce v tomto bodě lepší? Pokud ano, směřuje šipka k němu, pokud ne, směřuje na druhou stranu.
46
4.1 Grafické znázornění množiny přípustných řešení Body splňující podmínky nezápornosti tvoří celý I. kvadrant, všechna vlastní omezení jsou reprezentována přímkami nebo polorovinami. Jelikož všechny podmínky nezápornosti a všechna vlastní omezení musí platit současně - v konjunkci, je množina přípustných řešení průnikem I. kvadrantu a všech zmíněných přímek a polorovin. Tento průnik vždy tvoří konvexní polygon, přičemž nemusí jít o omezenou množinu. 4 Příklad 4.1 Mějme zadanou ekonomickou úlohu: V dílně firmy specializované na stavební materiály je možné vyrábět čtvercové a obdélníkové pláty. Na čtvercový je potřeba 2 kg speciální hmoty, na obdélníkový 1 kg hmoty, ve skladu je k dispozici celkem 6 000 kg této hmoty. Na odlití a opracování čtvercového i obdélníkové plátu je třeba 1 hodina práce zaměstnance, celkem je k dispozici 4 000 hodin. Jistý obchodník se stavebninami poptává alespoň 500 čtvercových plátů a je také ochoten odebrat nějaké obdélníkové pláty, ne však více než 3 000 kusů. Pokud dílna prodá všechny vyrobené pláty za smluvené ceny, má z výroby jednoho čtvercového plátu zisk 400 Kč a z jednoho obdélníkového plátu 600 Kč. Pomocí grafického zobrazení rozhodněte, zda jsou navržená řešení přípustná: a) 3 000 čtvercových a 500 obdélníkových izolačních plátů, b) 2 000 čtvercových a 1 000 obdélníkových izolačních plátů. Řešení Nejprve sestavme matematický model úlohy LP:
Opět využijeme zobrazení všech lineárních objektů o dvou neznámých do dvojrozměrné KSS. Výhodné bude vzhledem k hodnotám, kterých x1 a x2 nabývají, vynášet vše na obou v tisících jednotek. Z podmínek nezápornosti vyplývá, že má smysl hledat řešení pouze v I. kvadrantu. Množinu všech přípustných řešení nalezneme jako grafické řešení soustavy lineárních nerovnic všech vlastních omezení, pro lepší orientaci pojmenujme po řadě a, b, c, d hraniční přímky těchto čtyř polorovin. (Zápis jejich úsekových tvarů a rozhodnutí o směru polorovin ponechme na čtenáři.) Množinu všech přípustných řešení tvoří pětiúhelník ABCDE. Nyní postačí zjistit, zda body F [3000; 500] a G [2000; 1000] do množiny přípustných řešení patří. Situace je vyznačena v obrázku 1.4. Přípustný je pouze druhý z navrhovaných výrobních programů, bod G náleží pětiúhelníku ABCDE. Z grafu Obrázek 4.1 lze také vyčíst, které nebo která z omezení byla u nepřípustných řešení porušena. Bod F náleží I. kvadrantu, podmínky nezápornosti jsou splněny, náleží také všem polorovinám reprezentujícím vlastní omezení úlohy, kromě prvního. Při takto navrženém výrobním plánu by nevystačilo disponibilní množství speciální hmoty, ze které se pláty odlévají. 47
Obrázek 4.1 - přípustná a nepřípustná řešení
4.2 Grafické nalezení optimálního řešení úlohy Máme-li nyní vyznačenou množinu přípustných řešení, je nyní nezbytné zkusmo zobrazit jednu izokvantu, nesoucí informaci o směru zlepšování účelové funkce. Poté vyhodnotíme vzájemnou polohu odpovídajícího polygonu a sítě izokvant. Posuneme zvolenou izokvantu ve směru šipky co nejdál tak, aby měla s polygonem přípustných řešení neprázdný průnik. Příklad 4.2 Pro úlohu z předchozího příkladu pomocí grafického zobrazení rozhodněte, zda je dosažitelný zisk a) 1 200 000 Kč, b) 3 600 000 Kč. Řešení a) Hledejme množinu všech bodů, pro něž je hodnota účelové funkce rovna právě 1,2 milionu Kč, tedy body splňující rovnici . Jedná se o izokvantu pro z = 1 200 000, i tuto přímku vyznačíme do grafu Obrázek 4.2. Tato přímka má s množinou přípustných řešení dokonce nekonečně mnoho společných bodů, je to úsečka AX. Každý bod reprezentuje jednu z přípustných variant výrobního programu, kdy bude dosaženo požadovaného zisku 1,2 mil. Kč, např. bod A [3000;0] reprezentuje výrobu 3 000 ks čtvercových plátů. Dosazením do účelové funkce ověříme výši odpovídajícího zisku.
48
Obrázek 4.2 – izokvanty účelové funkce
b) Analogicky hledejme také množinu všech bodů, pro něž je hodnota účelové funkce rovna právě 3,6 milionu Kč, tedy body splňující rovnici
Jedná se o izokvantu pro z = 3 600 000, tuto přímku vyznačíme do grafu. Jelikož nemá s množinou přípustných řešení žádný společný bod, není v našem případě možné dosáhnout zisku 3,6 mil. Kč. Formálně také vyznačme tzv. „nultou izokvantu“ pro z = 0 a opatřeme ji šipkou naznačující směr, ve kterém se hodnota účelové funkce zlepšuje (zde při maximalizaci roste). Z porovnání hladin izokvant z příkladů a) a b) je zřejmé, že je třeba posunovat v I. kvadrantu co nejdál od počátku KSS. Příklad 4.3Pro předcházející příklad navrhněte pomocí grafického řešení optimální rozvržení výroby, aby byly dodrženy všechny podmínky odběratele a výrobce přitom dosáhl maximálního možného zisku. Řešení K nalezení optimálního řešení využijme grafu z předcházejících dvou příkladů. Máme již vyznačenou množinu přípustných řešení a vyznačenou „nultou izokvantu“ včetně šipky naznačující směr optimalizace. Nyní stačí izokvantu tímto směrem posunout co nejdál, aby ovšem měla neprázdný průnik s množinou přípustných řešení. Nejzazším bodem je v tomto případě vrchol polygonu bod C, který reprezentuje optimální řešení zadané úlohy. Takto nalezený bod reprezentuje optimální řešení úlohy, a proto jej budeme nadále označovat O. 49
Obrázek 4.3 – Jediné optimální řešení - maximalizace
Obecně není radno „odečíst“ souřadnice nalezeného optima z grafu, sami početně prověřte souřadnice průsečíku přímek b a d, bodu O [1; 3]. Všimněme si v grafu skutečnosti, že vlastní omezení s hraničními přímkami b a d jsou splněna ve smyslu rovnosti, zbylé dvě podmínky ve smyslu ostré nerovnosti (bod O neleží na hraničních přímkách a a c). Nakonec zbývá dopočítat optimální hodnotu účelové funkce, kterou právem označíme zmax.
Nakonec nezbytná slovní interpretace nalezeného řešení: Výrobce dosáhne nejvyššího možného zisku 2,2 milionu Kč jediným možným způsobem: když vyrobí a odběrateli prodá 1 000 čtvercových a 3 000 obdélníkových plátů. Čas opracování na stroji byl zcela vyčerpán, nabídka maximálního odběru obdélníkových plátů byla plně využita. Naopak zbude část výrobní hmoty a čtvercových plátů bude vyrobeno dokonce více, než bylo požadované minimum. Pozn.: V Obr. 4.3 byly všechny vrcholy polygonu přípustných řešení úlohy LP vyznačeny symbolem . Připomeňme také, průnikem polorovin, resp. přímek (odpovídajícím nerovnicím resp. rovnicím vlastních omezení), je vždy konvexní množina. Z úplné diskuse vzájemné polohy množiny přípustných řešení a systému izokvant účelové funkce vyplývá následující tvrzení: 4.2.1 Žádné optimální řešení V triviálním případě je množina přípustných řešení prázdná, potom zřejmě neexistuje ani žádné optimální řešení. 50
V praxi to ovšem obvykle znamená, že byly nadiktovány příliš přísné, nesplnitelné, podmínky.
Obrázek 4.4 - Žádné optimální řešení
4.2.2 Jediné optimální řešení Nejzazší izokvanta se dotýká obecného polygonu přípustných řešení v jediném vrcholu O. Hovoříme o jediném optimálním řešení, jeho souřadnice zapisujeme pomocí vektoru řešení xopt = (x1; x2).
Obrázek 4.5 - Jediné optimální řešení - minimalizace
51
4.2.3 Alternativní řešení Ve speciálním případě, kdy směr izokvant rovnoběžný s nejzazší stranou polygonu přípustných řešení, dotýká se nejzazší izokvanta polygonu přípustných řešení podél celé této jeho strany. Je-li polygon omezená množina, je tato strana tvořena úsečkou, jejíž vrcholy označíme O1, O2. Souřadnicím těchto vrcholů odpovídají vektory řešení xopt1, xopt2. Každý bod X této úsečky je také optimálním řešením dané úlohy, získáme je jako konvexní kombinaci krajních bodů, k vyjádření použijeme obecný zápis vektoru řešení
xopt = k. xopt1 + (1-k) xopt2, k <0; 1>.
(4.1)
Tímto zápisem je popsáno nekonečně mnoho různých vektorů optimálních řešení pro různé volby parametru k, hovoříme o alternativním řešení. Teoreticky jsou všechny alternativy srovnatelné, je až úkolem manažera pro jednu z nich se rozhodnout.
Obrázek 4.6 - Alternativní optimální řešení – omezená množina
Je-li polygon přípustných řešení neomezená množina (např. úhel) a směr izokvant je rovnoběžný právě s hraniční polopřímkou (např. rameno úhlu. K jejímu určení je třeba zvolit kromě vrcholu O1 ještě jeden bod této polopřímky, ozn. O2. Souřadnicím těchto bodů odpovídají vektory řešení xopt1, xopt2 Každý bod X této polopřímky je také optimálním řešením dané úlohy a k vyjádření opět použijeme obecný zápis vektoru řešení:
xopt = k. xopt1 + (1-k) xopt2, k <0; ).
(4.2)
Tímto zápisem je popsáno nekonečně mnoho různých vektorů optimálních řešení pro různé volby parametru k, který tentokrát může nabývat i hodnot větších než jedna. Takovéto řešení je ovšem obvykle opět spíše důsledkem špatné formulace omezujících podmínek.
52
Obrázek 4.7 - Alternativní optimální řešení – neomezená množina
4.2.4 Neomezená hodnota účelové funkce Množina přípustných řešení je neomezená množina právě v tom směru, kterým posouvám izokvantu a zlepšuji hodnotu účelové funkce. Může jít např. o úhel apod. K jakékoli zvolené izokvantě pak mohu sestrojit izokvantu s lepší hodnotou z, hovoříme o neomezené hodnotě účelové funkce. Viz Obrázek 4.8.
Obrázek 4.8 - Neomezená hodnota účelové funkce - ilustrace
53
Poznámka: Pozor, ne vždy neomezená množina přípustných řešení znamená neomezenou hodnotu účelové funkce, záleží na tom, jakým směrem je třeba izokvantu při optimalizaci posunout.
Obrázek 4.9 - Neomezená množina přípustných řešení a konečné optimální řešení
Předchozí úvahy shrneme v následující větě. 4 Věta 4.1 Při řešení úloh LP může nastat jedna ze tří variant výsledku: 1) úloha LP nemá žádné řešení, 2) úloha LP má právě jedno optimální řešení, 3) úloha LP má alternativní optimální řešení, 4) úloha LP má neomezenou hodnotu účelové funkce. Poznámka: Z 2. kapitoly o řešení SLN víme, že vrcholy množiny přípustných řešení při grafickém způsobu řešení odpovídají přípustným základním řešením vzešlým z algebraického způsobu řešení. Kvůli větší názornosti doporučujeme čtenáři sledovat vzájemnou analogii s řešením početním, které nalezne v následující kapitole.
54
5. kapitola
ALGEBRAICKÉ ŘEŠENÍ ÚLOH LP
5.1 Úprava matematického modelu úloh LP Vraťme se nyní k algebraickému vyjádření úlohy LP jejím matematickým modelem. Množinu všech přípustných řešení zřejmě tvoří řešení soustavy všech vlastních omezení a podmínek nezápornosti. Podmínky nezápornosti strukturních neznámých ovšem zapisovat nebudeme, nezápornost všech souřadnic vektorů řešení nakonec vždy lehce ověříme. Soustavu vlastních omezení nejprve buď (pro potřeby primárně simplexové metody) upravíme tak, aby všechny pravé strany byly nezáporné, nebo (pro potřeby duálně simplexové metody) tak, aby soustava byla tvořena pouze nerovnicemi typu „ “. K těmto úpravám stačí využít vynásobení nerovnice číslem – 1, popř. nahrazením rovnice ekvivalentní dvojicí nerovnic. Takto získanou soustavu převedeme nejprve na adjungovanou soustavu lineárních rovnic tak, že všechny nerovnice vyrovnáme pomocí zavedení nezáporných přídatných neznámých. 5 Definice 5.1 Soustavu lineárních rovnic získanou postupem popsaným výše nazveme ekvivalentní soustavou rovnic k soustavě vlastních omezení úlohy LP. Pokud potom tato adjungovaná soustava ještě není v kanonickém tvaru, zavedeme další, tzv. pomocné neznámé tak, abychom v matici doplnili chybějící sloupce jednotkové matice. Při sestavování ekvivalentní soustavy v kanonickém tvaru se tedy vyskytují neznámé tří typů, podle důvodu zavedení: Strukturní neznámé Neznámé x1, x2, …, xn zavedené při sestavování matematického modelu nazýváme strukturní neznámé. Vyjadřují počet realizací jednotlivých typů procesů. Přípustné jsou proto vždy jen jejich nezáporné hodnoty. Ekonomická interpretace: vyjadřují množství jednotlivých výrobků či procesů, při kterých bude dosaženo optimálního fungování analyzovaného procesu. Přídatné neznámé Neznámé, které jsme ve výše uvedeném postupu využili k vyrovnání nerovnic na rovnice, nazýváme přídatné neznámé. Zavádíme je vždy jako nezáporné, skutečnost že je třeba na levé straně nerovnice jisté množství přidat resp. odebrat, vyjádříme při vyrovnávání znaménkem „+“ resp. “–“. Označujeme je obvykle x´n+1, x´n+2 , … Vyjadřují tedy rozdíl mezi oběma stranami vlastního omezení ve tvaru nerovnice, jejich záporná hodnota signalizuje nedodržení příslušného vlastního omezení, a tedy nepřípustnost posuzovaného řešení. Ekonomická interpretace: vyjadřují nevyužitou kapacitu (nespotřebovaná surovina apod.) či nadlimitní splnění požadavku (překročení požadované minimální denní dávky apod.) u příslušného výrobního činitele. Umělé neznámé Neznámé, které jsme ve výše uvedeném postupu využili k doplnění adjungované soustavy lineárních rovnic k původní soustavě vlastních omezení na kanonický tvar, nazýváme umělé neznámé. Označujeme je obvykle y1, y2 , … Jelikož jejich přičtením do rovnice máme získat opět rovnici, nabízí se logický požadavek na rovnost číslu 0. Ověření, je-li možné toho v konkrétních příkladech vůbec dosáhnout, je vždy 55
první fází řešení takové úlohy. Umělé neznámé nemají v rámci ekonomické interpretace řešení reálný význam, slouží pouze k umělému dosažení kanonického tvaru a je-li první fáze úspěšná, další význam nemají a do druhé fáze už nevstupují.
5.2 Základní řešení úlohy LP Jak jsme mohli nahlédnout při grafickém způsobu řešení v rovině, kde jsou přípustná základní řešení reprezentovaná vrcholy polygonu přípustných řešení, pro nalezení optimálního řešení jsou právě tyto body velmi důležité. Pro početní způsob řešení nejprve zaveďme praktické stručnější názvosloví pro nejčastěji skloňovaný pojem: Definice 5.2 Základní přípustné řešení ekvivalentní soustavy rovnic k soustavě vlastních omezení úlohy LP budeme stručně nazývat základní řešení úlohy LP. Pro algebraické řešení úloh LP má zásadní význam následující věta: 5 Věta 5.1 (Základní věta lineárního programování): Má-li úloha LP optimální řešení, potom má také základní optimální řešení. Tato věta říká, že má-li úloha LP jediné optimální řešení, je toto řešení základní, má-li více optimálních řešení, alespoň jedno z nich musí být základní. Při hledání optimálního řešení tedy postačí soustředit se pouze na hledání základních řešení. Jednou z možností by bylo najít všechna základní řešení úlohy LP, vypočítat odpovídající hodnoty účelové funkce a z nich vybrat tu nejlepší, což je ovšem v matematických modelech s vyšším počtem strukturních neznámých a vlastních omezení zbytečně pracné.
5.3 SIMPLEXOVÁ METODA Efektivnější způsob prohledávání množiny přípustných řešení nabízí algoritmus simplexové metody, který sleduje vliv změny množiny základních neznámých na změnu hodnoty účelové funkce. Důležité je na počátku práce mít k dispozici jakékoli základní řešení úlohy LP. Proto zaveďme následující dva pojmy. Definice 5.3 Množinu všech základních neznámých daného základního řešení úlohy LP budeme nazývat báze základního řešení úlohy LP, nebo stručněji jen báze. Definice 5.4 První nalezené základní řešení úlohy LP budeme nazývat výchozí základní řešení úlohy LP, stručně také zn. VZŘ. 5 Množinu základních řešení nebudeme procházet náhodně, ale u konkrétního základního řešení budeme brát v úvahu jednotkové změny hodnoty účelové funkce při přechodu k novým bázím, lišícím se od původní v jediné základní neznámé. Vybereme variantu přinášející největší zlepšení. Takto budu postupovat, dokud bude k aktuálnímu základnímu řešení existovat základní řešení s lepší hodnotou účelové funkce. Na konečné množině základních řešení postačí konečný počet kroků. Změnám, vedoucím ke zhoršení hodnoty účelové funkce se tímto postupem vyhneme, nebude třeba procházet všechna základní řešení. Metoda, založená na tomto principu se nazývá simplexová metoda. Podrobněji se jí věnují následující kapitoly. 6 56
6. kapitola
PRIMÁRNĚ SIMPLEXOVÁ METODA
6.1 Jednofázová primárně simplexová metoda Uvažujme nejprve takovou úlohu LP, jejíž všechna vlastní omezení jsou typu „ “ tvořící obecně soustavu m lineárních nerovnic o n neznámých s obecným zápisem
(6.1) . Každou nerovnici soustavy vyrovnáme přičtením nezáporné přídatné neznámé, i-tou nerovnici soustavy ve tvaru
nahradíme rovnicí kde
.
(6.2)
Věta 6.1 Soustava m lineárních nerovnic o (m + n) neznámých x1, x2,…,xn, x´n+1, x´n+2,…, x´n+m ∈ R0 kde m, n ∈ N
(6.3)
je ekvivalentní soustavou rovnic k soustavě vlastních omezení úlohy LP ve tvaru (6.1). Věta 6.2
Hodnost matice soustavy (5.2) je rovna m.
Důkaz: Matice soustavy (6.3) je v kanonickém tvaru, její řádky jsou proto lineárně nezávislé. Věta 6.3 Soustava (6.3) má nekonečně mnoho řešení. K zápisu obecného řešení je třeba n nezákladních (volných) a m základních neznámých. Důkaz: Z předchozího tvrzení vyplývá, že také hodnost matice rozšířené k soustavě (6.2) je rovna m. Podle Frobeniovy věty je tedy soustava (6.3) je řešitelná. Protože má m + n neznámých a hodnost m, potom jsou čísla m, n ∈ N, a podle věty 1.2 tvrzení platí. Věta 6.4
Soustava (6.3) má nejvýše (6.4)
základních řešení. 57
Poznámka: Připomeňme, že základní řešení soustavy (6.3) získáme z obecného řešení dosazením čísla 0 za všechny nezákladní neznámé, proto základní řešení musí mít alespoň m nulových složek. Pokud všechny základní neznámé nabývají nenulových hodnot a tedy počet nulových složek vektoru řešení je právě m, hovoříme o nedegenerovaném řešení, je-li některá ze základních neznámých také rovna nule a počet nulových složek vektoru řešení je tedy větší než m, hovoříme o degenerovaném řešení. 6.1.1 Simplexová tabulka Zápis rozšířené matice soustavy (6.2) a11 a21
a12 a22
… …
a1n a2n
1 0
0 1
… …
0 0
b1 b2
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
am1
am2
…
amn
0
0
…
1
bm
(6.5)
budeme z praktických důvodů nadále nahrazovat zápisem do tabulky, kterou doplníme o další údaje důležité pro následující úvahy a výpočty. Pro přehlednost v prvním řádku tabulky nadepíšeme sloupce názvy jednotlivých neznámých, ve sloupci „báze“ si před každý řádek poznamenáme, kterou základní neznámou reprezentuje, Tabulka 6.1 - Obecná simplexová tabulka
báze x´n+1 x´n+2
x1 a11 a21
x2 a12 a22
… … …
xn a1n a2n
x´n+1 1 0
x´n+2 0 1
… … …
x´n+m 0 0
bi b1 b2
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
x´n+m z
am1 –c1
am2 –c2
… …
amn –cn
0 0
0 0
… …
1 0
bm 0
a pod tabulku připojíme ještě řádek obsahující koeficienty účelové funkce upravené do tzv. anulovaného tvaru, kdy jsou všechny proměnné převedeny na levou stranu rovnice a na pravé straně je pouze absolutní člen, tedy ve tvaru , který se při zápisu rovnic do SLR obvykle používá. 6 Definice 6.1 Koeficienty –c1, –c2, …, –cn nazýváme indexní čísla, poslední řádek simplexové tabulky obsahující indexní čísla nazýváme indexní řádek. Protože soustava (6.3) je v kanonickém tvaru, její matice o m řádcích obsahuje m sloupcových jednotkových vektorů, ze kterých lze sestavit jednotkovou matici řádu m. Totéž budeme požadovat i při sestavování dalších ekvivalentních matic reprezentujících další základní řešení dané úlohy LP v průběhu celého řešení. Využívat budeme Jordanovy metody úplné eliminace, pro přehlednost provedených úprav při transformaci matic nebudeme nikdy měnit pořadí řádků.
58
6.1.2 Výchozí základní řešení Nalezení výchozího základního řešení se týká I. fáze řešení úloh LP. U úloh řešitelných jednofázovou primárně simplexovou metodou můžeme díky jednoduchosti matematického modelu rovnou VZŘ zapsat. Věta 6.5
Vektor řešení odpovídající této tabulce x = (0; 0; …; 0; b1; b2; …; bm)T
je výchozím základním řešením zadané úlohy LP. Toto řešení můžeme slovně interpretovat jako zavedení výrobního programu, ve kterém se nevyrábí žádný z n výrobků a všech m výrobních činitelů zůstane nedotčeno (zbudou v původním množství). Je tak dosaženo nulového zisku. U úloh, kde jsou veškeré výrobní zdroje omezeny pouze shora, je tento způsob výroby triviálním základním řešením, obvykle ovšem ne tím nejlepším. K vyřešení úlohy tedy postačí věnovat se pouze II. fázi řešení úloh LP. 6.1.3 Optimalizace II. fáze řešení úloh LP se týká samotné optimalizace, tedy ověřování optimality nalezeného základního řešení a případné algoritmizované nalezení základního řešení s lepší hodnotou účelové funkce. Věta 6.6 (Test optimality): V maximalizačních úlohách LP je hodnota účelové funkce z optimální, jestliže jsou všechna indexní čísla nezáporná. V minimalizačních úlohách LP je hodnota účelové funkce z optimální, jestliže jsou všechna indexní čísla nekladná. Pokud dosažené řešení není optimální, přejdeme pomocí Jordanovy metody úplné eliminace k základnímu řešení s výhodnou volbou nové báze. Jedna ze základních neznámých původní báze se stane nezákladní, nahradí ji proměnná, která byla v předchozím řešení nezákladní. Definice 6.2 Sloupec proměnné vstupující do báze se nazývá klíčový sloupec, řádek proměnné vystupující z báze se nazývá klíčový řádek. Prvek ležící v průsečíku klíčového sloupce a klíčového řádku se nazývá klíčový prvek. Věta 6.7 V maximalizačních úlohách LP do báze základního řešení vstoupí proměnná, která má v indexním řádku nejnižší záporné číslo. V minimalizačních úlohách LP do báze základního řešení vstoupí proměnná, která má v indexním řádku nejvyšší kladné číslo. Do báze je tak zařazena proměnná, která zajistí nejvyšší přírůstek, resp. největší pokles optimalizované účelové funkce. Např. v maximalizační úloze v prvním kroku algoritmu můžeme tuto úvahu interpretovat tak, že zcela prvoplánově uvažujeme, že nejvyššího nárůstu zisku dosáhneme v případě, že se zaměříme na výrobek s nejvyšší cenou. Význam indexního čísla můžeme interpretovat tak, že vyjadřuje, o kolik jednotek se změní hodnota účelové funkce při zařazení jednoho kusu odpovídajícího výrobku do výroby. 59
Věta 6.8 V (maximalizačních i minimalizačních) úlohách LP z báze základního řešení vystoupí proměnná s nejmenším podílem pravé strany rovnice a odpovídajících kladných koeficientů ve sloupci vstupující proměnné. Poznámka: Pro zápis těchto podílů doplníme simplexovou tabulku vpravo ještě o sloupec „podíly“. Z báze vystoupí ta proměnná, jejíž pravá strana nejvíce omezuje množství vstupující proměnné. Předpokládejme, že je již určen klíčový výrobek, na jehož zařazení do výroby se chceme specializovat. V prvním kroku algoritmu je třeba zjistit, na kolik takových výrobků nám vystačí jednotlivé výrobní činitele (množství surovin apod.), je-li známa spotřeba na jeden kus tohoto výrobku, což udávají čísla spočtená jako podíly zmíněných hodnot, nejmenší z nich potom ukazuje na výrobního činitele s nejpřísnějším omezením. Pokud bychom uvažovali i záporné podíly případně nevybrali nejmenší z nezáporných podílů, ve sloupci pravých stran by se objevilo záporné číslo, záporné hodnoty základních neznámých jsou ovšem v úlohách LP nepřípustné. Poznámka: Klíčový prvek při použití jednofázové primárně simplexové metody je vždy kladné číslo. Transformace simplexové tabulky Po určení vstupující a vystupující proměnné přepočítáme pomocí ekvivalentních řádkových úprav Jordanovy metody úplné eliminace do tvaru odpovídajícímu nové bázi. Klíčový sloupec je třeba převést na jednotkový vektor s 1 na pozici klíčového prvku. Zřejmě postačí nejprve dělit klíčový řádek klíčovým prvkem a transformovaný klíčový prvek 1 poté využít k eliminaci ostatních prvků klíčového sloupce. Uvedený postup opakujeme tak dlouho, dokud není dosaženo jednoho z možných zakončení výpočtu. 6.1.4 Zakončení výpočtu Věta 6.9 Při řešení úloh LP s množinou vlastních omezení (6.3) může nastat jedna ze tří variant výsledku 1) jediné optimální řešení, 2) alternativní řešení, 3) neomezená hodnota účelové funkce. Jinými slovy: úloha LP řešitelná jednofázovou primárně simplexovou metodou má vždy řešení. Množina všech přípustných řešení obsahuje alespoň triviální VZŘ sestavené z nulových strukturních proměnných, a pokud nebude existovat lepší základní řešení, bude rovnou také optimálním řešením této úlohy LP. Věta 6.10 Optimální řešení úlohy LP je jediné, pokud jsou všechna indexní čísla ve sloupcích nezákladních neznámých nenulová. 6 Příklad 6.1 V dílně firmy specializované na stavební materiály je možné vyrábět čtvercové a obdélníkové pláty. Na čtvercový je potřeba 2 kg speciální hmoty, na obdélníkový 1 kg hmoty, ve skladu je 60
k dispozici celkem 6 000 kg této hmoty. Na odlití a opracování čtvercového i obdélníkové plátu je třeba 1 hodina práce zaměstnance, celkem je k dispozici 4 000 hodin. Odběratel se zaručil odebrat až 3 000 kusů obdélníkových plátů, s odbytem čtvercových plátů není problém. Pokud dílna prodá všechny vyrobené pláty za smluvené ceny, má z výroby jednoho čtvercového plátu zisk 400 Kč a z jednoho obdélníkového plátu 600 Kč. Stanovte výrobní program, který zaručí za daných podmínek nejvyšší možný zisk. Řešení Sestavme matematický model úlohy
Všechna vlastní omezení jsou typu „≤“, k úpravám vlastních omezení postačí v každém doplnit přídatnou neznámou. K soustavě vlastních omezení získáváme ekvivalentní soustavu lineárních rovnic
a anulovaný tvar účelové funkce
pro zápis do simplexové tabulky: báze x´3 x´4 x´5 z
x1 2 1 0 -400
x2 1 1 1 -600
x´3 1 0 0 0
x´4 0 1 0 0
x´5 0 0 1 0
bi 6 000 4 000 3 000 0
podíly 6 000 4 000 3 000 –
Začněme testem optimality výchozího základního řešení. Protože maximalizujeme, požadujeme v indexním řádku pouze čísla nezáporná, což ještě není splněno a je třeba hledat lepší základní řešení. Nejnižší záporné indexní číslo určí klíčový sloupec, do báze bude nově zařazena proměnná x2, nejnižší nezáporný podíl určí klíčový řádek, z báze naopak vystoupí proměnná x´5. Přistupme k transformaci simplexové tabulky. Beze změny pořadí řádků nejprve opišme klíčový řádek (klíčový prvek už je totiž roven 1), poté jeho -1 násobek postupně přičtěme k prvnímu a druhému řádku a jeho 600násobek přičtěme k indexnímu řádku. Dostáváme tabulku
61
báze x´3 x´4 x2 z
x1 2 1 0 -400
x2 0 0 1 0
x´3 1 0 0 0
x´4 0 1 0 0
x´5 -1 -1 1 600
bi 3 000 1 000 3 000 1 800 000
podíly 1 500 1 000 × 800
Proveďme nejprve test optimality získaného základního řešení: indexní řádek stále obsahuje záporná čísla, řešení není optimální. Přistupme k určení nové báze. Nejnižší záporné indexní číslo určí klíčový sloupec, do báze bude nově zařazena proměnná x1, nejnižší nezáporný podíl určí klíčový řádek, z báze naopak vystoupí proměnná x´4. Přistupme dále k transformaci simplexové tabulky. Beze změny pořadí řádků nejprve opišme klíčový řádek (klíčový prvek už je totiž roven 1), poté jeho -2 násobek přičtěme k řádku a jeho 400násobek přičtěme k indexnímu řádku. Třetí řádek nebylo třeba upravovat. Máme: báze x´3 x1 x2 z
x1 0 1 0 0
x2 0 0 1 0
x´3 1 0 0 0
x´4 -2 1 0 400
x´5 1 -1 1 200
bi 1 000 1 000 3 000 2 200 000
Proveďme nejprve test optimality získaného základního řešení: indexní řádek již obsahuje pouze nezáporná čísla, bylo dosaženo optimálního řešení. Indexní čísla ve sloupcích nezákladních neznámých x´4, x´5 jsou nenulová, toto optimální je tedy podle věty 5.10 jediné. Můžeme zapsat vektor optimálního řešení xopt = (1 000; 3 000; 1 000; 0; 0)T a odpovídající nejlepší dosažitelnou hodnotu účelové funkce zmax = 2 200 000 Kč. Poznámka: Má-li úloha LP jediné optimální řešení, můžeme dosáhnout jak řešení degenerovaného tak nedegenerovaného. Věta 6.11 Pro nedegenerované úlohy je simplexový algoritmus konečný. U úloh LP, které mají jediné degenerované řešení, může dojít k zacyklení popsaného algoritmu, této problematice se ovšem v kurzu věnovat nebudeme. Čtenáře můžeme odkázat na studium metod, které problém zacyklení univerzálně řeší. Mezi ně patří perturbační metoda, lexikografická metoda a metoda nejmenších indexů. Věta 6.12 Optimální řešení úlohy LP je alternativní, pokud je některé indexní číslo pod nezákladní proměnnou rovno 0. Příklad 6.2 V dílně firmy specializované na stavební materiály je možné vyrábět čtvercové a obdélníkové pláty. Na čtvercový je potřeba 2 kg speciální hmoty, na obdélníkový 1 kg hmoty, ve skladu je k dispozici celkem 6 000 kg této hmoty. Na odlití a opracování čtvercového i obdélníkové plátu je třeba 1 hodina práce zaměstnance, celkem je k dispozici 4 000 hodin. Odběratel se zaručil odebrat až 3 000 kusů obdélníkových plátů, s odbytem čtvercových plátů není problém. Předpokládejme, že dílna prodá všechny vyrobené pláty, oba typy se prodávají po 400 Kč za kus. Stanovte výrobní program, který zaručí za daných podmínek nejvyšší možný zisk. 62
Řešení Sestavme matematický model úlohy
Všechna vlastní omezení jsou typu „≤“, k úpravám vlastních omezení postačí v každém doplnit přídatnou neznámou. K soustavě vlastních omezení získáváme ekvivalentní soustavu lineárních rovnic
a anulovaný tvar účelové funkce
pro zápis do simplexové tabulky: báze x´3 x´4 x´5 z
x1 2 1 0 -400
x2 1 1 1 -400
x´3 1 0 0 0
x´4 0 1 0 0
x´5 0 0 1 0
bi 6 000 4 000 3 000 0
podíly 3 000 4 000 × –
Začněme testem optimality výchozího základního řešení. Protože maximalizujeme, požadujeme v indexním řádku pouze čísla nezáporná, což ještě není splněno a je třeba hledat lepší základní řešení. Nejmenší záporné hodnoty nabývají dvě redukované ceny, klíčový sloupec není určen jednoznačně, vyberme první v pořadí, do báze bude nově zařazena proměnná x1, nejnižší nezáporný podíl určí klíčový řádek, z báze naopak vystoupí proměnná x´3. Přistupme k transformaci simplexové tabulky. Beze změny pořadí řádků nejprve opišme klíčový řádek (klíčový prvek už je totiž roven 1), poté jeho -1 násobek postupně přičtěme k prvnímu a druhému řádku a jeho 400násobek přičtěme k indexnímu řádku. Dostáváme: báze x1 x´4 x´5 z
x1 1 0 0 0
x2 0,5 0,5 1 -200
x´3 0,5 -0,5 0 200
x´4 0 1 0 0
x´5 0 0 1 0
bi 3 000 1 000 3 000 1 200 000
podíly 6 000 2 000 3 000 –
Proveďme nejprve test optimality získaného základního řešení: indexní řádek stále obsahuje záporná čísla, řešení není optimální. Přistupme k určení nové báze. 63
Nejnižší záporné indexní číslo určí klíčový sloupec, do báze bude nově zařazena proměnná x2, nejnižší nezáporný podíl určí klíčový řádek, z báze naopak vystoupí proměnná x´4. Přistupme dále k transformaci simplexové tabulky. Beze změny pořadí řádků nejprve vynásobíme klíčový řádek číslem 2 (dle obecného pokynu dělíme klíčový řádek klíčovým prvkem), poté -1/2násobek upraveného klíčového řádku přičtěme k prvnímu řádku, –1násobek upraveného klíčového řádku přičtěme ke třetímu řádku a nakonec ještě 200násobek upraveného klíčového řádku přičtěme k indexnímu řádku. báze x1 x2 x´5 z
x1 1 0 0 0
x2 0 1 0 0
x´3 1 -1 1 0
x´4 -1 2 -2 400
x´5 0 0 1 0
bi 2 000 2 000 1 000 1 600 000
podíly 2 000 × 1 000 –
Proveďme nejprve test optimality získaného základního řešení: indexní řádek již obsahuje pouze nezáporná čísla, dosažené základní řešení je optimálním řešením zadané úlohy. Můžeme zapsat vektor optimálního řešení xopt1 = (2 000; 2 000; 0; 0; 1 000)T a odpovídající nejlepší dosažitelnou hodnotu účelové funkce zmax = 1 600 000 Kč. Je třeba si všimnout, že ve sloupci nezákladní neznámé x´3 je 0, toto optimální řešení je tedy podle věty 5.2 alternativní a existuje jiná, srovnatelná varianta, se stejnou hodnotou účelové funkce. Hledejme tedy ještě další základní řešení. Do báze zařadíme tu nezákladní neznámou, jejíž zařazení nezmění hodnotu účelové funkce, což signalizuje nulové indexní číslo a tak určuje klíčový sloupec, do báze bude nově zařazena proměnná x´3. Nejnižší nezáporný podíl určí klíčový řádek, z báze naopak vystoupí proměnná x´5. Přistupme naposledy k transformaci simplexové tabulky. Beze změny pořadí řádků nejprve opišme klíčový řádek, poté jeho -1 násobek přičtěme k prvnímu řádku a jeho 1násobek přičtěme ke druhému řádku. Indexní řádek není třeba upravovat. Dostáváme báze x1 x2 x3 z
x1 1 0 0 0
x2 0 1 0 0
x´3 0 0 1 0
x´4 1 0 -2 400
x´5 -1 1 1 0
bi 1 000 3 000 1 000 1 600 000
Test optimality je totožný s testem u předchozí tabulky. Můžeme zapsat vektor optimálního řešení xopt2 = (1 000; 3 000; 1 000; 0; 0)T a odpovídající nejlepší dosažitelnou hodnotu účelové funkce zmax = 1 600 000 Kč, jejíž hodnotu jsme zjistili již v předcházejícím kroku. Všechna alternativní řešení zadané úlohy (při zanedbání požadavku celočíselnosti) jsou popsána obecným zápisem:
xopt = k.(2 000; 2 000; 0; 0; 1 000)T + (1-k).(1 000; 3 000; 1 000; 0; 0)T, k <0;1>. Poznámka: Na tomto místě by bylo vhodné celý průchod algebraickým řešením porovnat s jeho grafickou obdobou. Jakým bodům v grafu odpovídají základní řešení dosažená v jednotlivých krocích? 64
Věta 6.13 Nechť xopt1 a xopt2 jsou optimální řešení úlohy LP. Potom každý vektor ve tvaru je také optimálním řešením dané úlohy LP.
xopt = k. xopt1 + (1-k) xopt2, k <0; 1>.
(6.6)
V grafickém řešení úloh LP pro dvě strukturní neznámé v rovině jsme se s tímto zápisem setkali při obecném zápisu strany polygonu přípustných řešení. Obecně tato situace může být mnohem komplikovanější, už pro tři strukturní neznámé v trojrozměrném prostoru tvoří množina přípustných řešení obecně polyedr, izokvantová rovina se jej může dotýkat podél celé stěny, základních optimálních řešení může být více, než dvě. Právě uvedené tvrzení pouze říká, že jakákoli spojnice dvou optimálních řešení je tvořena optimálními řešeními. Nepopisuje ovšem obecně celou množinu všech optimálních řešení. Věta 6.14 Úloha LP má neomezenou hodnotu účelové funkce, pokud jsou všechny koeficienty klíčového sloupce nekladné. Příklad 6.3 Mějme tři zařízení na výrobu elektrické energie, která při výrobě také elektrickou energii spotřebovávají tak, jak je vidět v tabulce: Tabulka 6.2 - Výroba a spotřeba elektrické energie na zařízení za hodinu.
kW Z1 Z2 Z3
Produkce 200 200 500
Spotřeba 100 400 300
První dvě zařízení jsou bezobslužná, obsluha třetího zařízení vyjde na 500 Kč za hodinu, na tento účel je možné využít maximálně 40 000 Kč. Vyrobenou elektrickou energii lze prodat do veřejné sítě za cenu, za kterou ji odtud lze v případě potřeby také nakoupit, za jednotkovou cenu 400 Kč za 100 kWh. Z veřejné sítě je možné za tuto cenu odebrat maximálně 60 000 kWh. Určete optimální doby spuštění jednotlivých zařízení, aby bylo dosaženo optimální tržby za prodanou elektrickou energii. Řešení: Zaveďme strukturní neznámé xi … doba, po kterou je spuštěno zařízení Zi [h], i = 1, 2, 3. Vlastní omezení se týkají celkové produkce elektrické energie spuštěných zařízení a doby obsluhy běžících zařízení. Účelová funkce maximalizuje zisk z odprodeje přebytku z produkce elektrické energie. Sestavme matematický model
a k němu simplexovou tabulku.
65
báze x´4 x´5 z
x1 100 0 -400
x2 -200 0 -400
x´4 1 0 0
x3 200 500 -400
x´5 0 1 0
bi 60 000 40 000 0
podíly 600 × –
Nejmenší záporné hodnoty nabývají hned tři redukované ceny, klíčový sloupec není určen jednoznačně, vyberme první v pořadí. Nulou nelze dělit, je zde jediný nezáporný podíl, který určí klíčový řádek. Po transformaci dostáváme báze x1 x´5 z
x1 1 0 0
x2 -2 0 -1200
x´4 0,01 0 4
x3 2 500 400
x´5 0 1 0
bi 600 40 000 240 000
podíly × × –
Základní řešení ještě není optimální, jediné nezáporné indexní číslo určuje klíčový sloupec, který ovšem obsahuje číslo záporné a číslo 0, ani v jednom řádku tedy neexistuje nezáporný podíl. Podle výše uvedené věty má tato úloha neomezenou hodnotu účelové funkce. Bude-li stanoven jakýkoli výrobní plán, vždy bude možné najít výrobní plán s lepší hodnotou účelové funkce. Hodnota účelové funkce může stoupat nade všechny meze. Poznámka: Neomezená hodnota účelové funkce obvykle znamená špatně sestavená vlastní omezení v matematickém modelu, spíše než nalezení reálné varianty neomezených zisků apod. V tomto příkladě je možné nechat stroje běžet po nekonečnou dobu, odtud vyplývá možnost neomezeného zisku z odprodeje energie. Zřejmě by bylo vhodnější ptát se na optimální zapojení zařízení za stanovenou jednotku času (hodinu, den, měsíc). Promyslete si, jaké vlastní omezení přidat do matematického modelu a jaké by potom bylo optimální řešení nové úlohy. 6.1.5 Interpretace výsledku Po dosažení výsledného tvaru simplexové tabulky obsahujícího optimální řešení úlohy je třeba interpretovat jednotlivé získané hodnoty. Hodnoty pravých stran obecně vyjadřují hodnoty základních proměnných, hodnoty zde neobsažených nezákladních proměnných jsou nulové. Hodnoty strukturních proměnných Hodnoty strukturních základních proměnných vyjadřují počty či množství výrobků odpovídajících typů zařazených do optimálního výrobního programu. V degenerovaném řešení jsou některá z těchto množství také nulová, optimální výrobní program potom není tak různorodý. Nulová množství strukturních základních neznámých upozorňují na hraniční případ zařaditelnosti těchto výrobků do výrobního programu, postačila by drobná změna v zadání. Více se touto problematikou zabývá kapitola věnovaná postoptimalizační analýze. Hodnoty strukturních nezákladních proměnných jsou nulové, v optimálním výrobním programu se výrobky odpovídajících typů neuplatní. Hodnoty přídatných proměnných Hodnoty přídatných proměnných vyjadřují způsob dodržení stanovených podmínek vlastních omezení, ukazují, byl-li disponibilní výrobní činitel vyčerpán přesně na stanovenou hranici či s rezervou. Hodnoty přídatných základních proměnných vyjadřují nevyčerpané množství příslušného výrobního činitele (např. nevyčerpané množství suroviny či překročení 66
požadované minimální denní dávky nějaké výživové komponenty). V degenerovaném řešení mohou být některé z těchto rezerv také rovny nule, upozorňují na hraniční případ momentálního vyčerpání daného výrobního činitele, u nějž by k úplnému vyčerpání došlo při drobné změně v zadání. Více se touto problematikou zabývá opět kapitola věnovaná postoptimalizační analýze. Hodnoty přídatných nezákladních proměnných jsou nulové, v optimálním výrobním programu jsou odpovídající výrobní činitele zcela vyčerpány. Odpovídající vlastní omezení již nedovolí zlepšovat hodnotu účelové funkce. Hodnota účelové funkce Hodnota v posledním poli indexního řádku udává aktuální hodnotu účelové funkce příslušnou nalezenému optimálnímu řešení. Na tomto místě můžeme během výpočtu také sledovat průběžné zlepšování dosažené hodnoty účelové funkce u jednotlivých procházených základních řešení. Hodnoty indexních čísel Věta 6.15 Indexní číslo cj u nezákladních proměnných vyjadřuje, o kolik jednotek se změní hodnota účelové funkce z, pokud se odpovídající proměnná xj zvýší o jednotku. Indexní čísla u základních proměnných jsou rovna 0. Hodnoty redukovaných cen Hodnoty indexních čísel ve sloupcích strukturních neznámých nazýváme redukované ceny. Hodnota redukovaných cen ve sloupcích strukturních nezákladních neznámých vyjadřuje, o kolik jednotek by se zlepšila hodnota účelové funkce, při zařazení jednoho odpovídajícího výrobku do výrobního programu. Této skutečnosti využívá test optimality (v maximalizačních úlohách jsou kladné hodnoty příslibem žádoucího zvýšení hodnoty účelové funkce, největší z nich znamená nejrychlejší nárůst, u minimalizačních úloh je tomu naopak). Hodnota redukovaných cen ve sloupcích strukturních základních neznámých je nulová, jim odpovídající výrobky jsou totiž už ve výrobním programu zahrnuty, triviálně je úvaha o vlivu jejich zařazení bezvýznamná. Hodnoty stínových cen Hodnoty indexních čísel ve sloupcích přídatných neznámých nazýváme stínové ceny, někdy také duální ceny. Hodnota stínových cen ve sloupcích přídatných nezákladních neznámých vyjadřuje, o kolik jednotek by se zlepšila hodnota účelové funkce, při zmírnění odpovídajícího vlastního omezení (např. doplnění suroviny o jednotku, snížení dolního limitu pro denní dávku výživové komponenty) o příslušnou jednotku. Zmírňování tohoto vlastního omezení a zlepšování hodnoty účelové funkce má smysl provádět pouze tak dlouho, dokud nedojde k dosažní stanoveného limitu u jiného výrobního činitele (např. dokud mezitím nedojde nějaká jiná surovina). Hodnota stínových cen ve sloupcích přídatných základních neznámých je nulová, jim odpovídající suroviny totiž při dosažení optimálního řešení ještě nebyly úplně vyčerpány, triviálně je úvaha o vlivu navýšení jejich množství bezvýznamná. Příklad 6.4 V dílně firmy specializované na stavební materiály je možné vyrábět čtvercové a obdélníkové pláty. Na čtvercový je potřeba 2 kg speciální hmoty, na obdélníkový 1 kg hmoty, ve skladu je k dispozici celkem 6 000 kg této hmoty. Na odlití a opracování čtvercového i obdélníkové plátu je třeba 1 hodina práce zaměstnance, celkem je k dispozici 4 000 hodin. Odběratel se zaručil odebrat až 2 500 kusů čtvercových plátů, s odbytem obdélníkových plátů není problém. Pokud dílna prodá všechny vyrobené pláty za smluvené ceny, má z výroby jednoho
67
čtvercového plátu zisk 400 Kč a z jednoho obdélníkového plátu 600 Kč. Stanovte výrobní program, který zaručí za daných podmínek nejvyšší možný zisk. Vyřešte a proveďte slovní interpretaci výsledků. Řešení Kvůli následné slovní interpretaci je velmi důležité precizně zavést strukturní neznámé: x1 … počet vyrobených čtvercových plátů [ks], x2 … počet vyrobených obdélníkových plátů [ks]. Sestavíme matematický model úlohy
Při převodu soustavy nerovnic vlastních omezení opět věnujme pozornost zavedení přídatných neznámých: x´3 … množství nespotřebované speciální hmoty [kg], x´4 … množství nevyužitého časového fondu zaměstnanců [h], x´5 … rezerva při dodržení limitu maximálního odběru čtvercových plátů [ks]. Rovnou sestavme simplexovou tabulku: báze x´3 x´4 x´5 z
x1 2 1 1 -400
x2 1 1 0 -600
x´3 1 0 0 0
x´4 0 1 0 0
x´5 0 0 1 0
bi 6 000 4 000 2 500 0
podíly 6 000 4 000 × –
a pomocí jednofázové primárně simplexové metody přejdeme k optimálnímu řešení: báze x´3 x2 x´5 z
x1 1 1 1 200
x2 0 1 0 0
x´3 1 0 0 0
x´4 -1 1 0 600
x´5 0 0 1 0
bi 2 000 4 000 2 500 2 400 000
Jediné optimální řešení úlohy LP můžeme zapsat jako xopt = (0; 4 000; 2 000; 0; 2 500)T. Odpovídající hodnota účelové funkce zmax = 2 400 000 Kč. (K lepší orientaci podtrhněme v závěru této kapitoly ve všech zapsaných vektorech složky odpovídající strukturním neznámým (a tedy i redukovaným cenám), bez podtržení ponechme složky odpovídající přídatným neznámým (a tedy i stínovým cenám).) Optimálního výrobního programu může být dosaženo jediným možným způsobem, bude-li vyrobeno pouze 4 000 kusů obdélníkových plátů.
68
Přitom zbude 2 000 kg speciální hmoty, bude zcela vyčerpán fond hodin práce zaměstnanců a limit maximálního odběru čtvercových plátů bude dodržen s rezervou 2 500 kusů. Z vektoru (200; 0; 0; 600; 0) redukovaných (podtržených) cen a stínových cen získáme doplňující informace o získaném optimálním řešení. Zavedením čtvercových plátů do výrobního programu by s jedním vyrobeným kusem klesla tržba o 200Kč. (Změna optimálního způsobu výroby může znamenat jedině jeho zhoršení.) Zavedení obdélníkových plátů do výroby triviálně nemá žádný vliv, obdélníkové pláty už se přece vyrábějí. Navýšení množství speciální hmoty by na hodnotu účelové funkce nemělo vliv, surovina totiž zatím nedošla (což potvrzuje hodnota příslušné přídatné neznámé). Naopak navýšení časového fondu, který již byl vyčerpán, by vedlo ke zlepšení hodnoty účelové funkce o 400Kč s každou hodinou času zaměstnanců navíc. Zmírnění limitu maximálního odkupu čtvercových plátů by na hodnotu účelové funkce nemělo vliv, limit byl v optimálním řešení dodržen s rezervou. Příklad 6.5Interpretujte také výsledky Příkladu 6.2. Řešení Připomeňme alternativní řešení výše zadané úlohy LP zápisem vektorů řešení xopt1 = (2 000; 2 000; 0; 0; 1 000)T a xopt2 = (1 000; 3 000; 1 000; 0; 0)T, obecným zápisem všech optimálních řešení xopt = k.xopt1 + (1-k).xopt2, k <0; 1>, zápisem hodnoty účelové funkce zmax = 1 600 000 Kč a vektorem redukovaných a stínových cen (0; 0; 0; 400 ;0) pro všechna optimální řešení. Při dodržení všech zadaných podmínek může být dosaženo maximální možné tržby ve výši 1,6 milionu Kč. Optimálním výrobním programem je například výroba 2 000 kusů čtvercových a 2 000 kusů obdélníkových plátů, přičemž je zcela spotřebována speciální hmota i celý časový fond zaměstnanců, a limit maximálního odběru čtvercových plátů bude dodržen s rezervou 1 000 kusů. Další alternativou optimálního výrobního programu je výroba 1 000 kusů čtvercových a 3 000 kusů obdélníkových plátů, přičemž zbude 1 000 kg nespotřebované speciální hmoty, časový fond zaměstnanců bude celý vyčerpán a limit maximálního odběru čtvercových plátů bude přesně splněn (bez rezervy). Existuje dalších nekonečně mnoho optimálních alternativ, které získáme dalšími volbami čísla k.z intervalu <0; 1>. Nejde pak už ovšem o řešení základní. Sami výpočtem ověřte a slovně interpretujte řešení xopt3 = (1 400; 2 600; 0; 600; 400)T získané pro volbu k = 2/5. K diskusi ponechme také možnost požadavku na celočíselnost řešení, kterému se budeme podrobněji věnovat v 9. kapitole. Z vektoru (0; 0; 0; 400; 0) redukovaných (podtržených) cen a stínových cen získáme doplňující informace o získaném optimálním řešení: Zavedení čtvercových ani obdélníkových plátů do výroby triviálně nemá žádný vliv, oba druhy plátů už se vyrábějí. Tolik k redukovaným cenám. Na zlepšení hodnoty účelové funkce by mělo v obou zmíněných alternativách zmírnění druhé podmínky pro časový fond zaměstnanců: s každou hodinou času zaměstnanců navíc by došlo ke zlepšení hodnoty účelové funkce, tedy zvýšení tržby o 400 Kč. 69
U první alternativy si povšimněme, že navýšení disponibilního množství speciální hmoty má nulový vliv na hodnotu účelové funkce, ale tato hmota už je zcela vyčerpána. Jedná se tedy o limitní případ, kdy se ještě toto množství jeví jako dostatečné, ale záhy by tento nedostatek zastavil další výrobu. Stínová cena zmírnění limitu pro odkup čtvercových plátů je rovněž nulová, ale hodnota příslušné přídatné proměnné ještě není 0, je zde ještě 1 000 kusů rezerva. U druhé alternativy si naopak povšimněme, že zdánlivě nemá na hodnotu účelové funkce vliv zmírnění limitu pro odkup čtvercových plátů, ale odpovídající přídatná neznámá dokazuje, že již bylo dosaženo hranice tohoto limitu a záhy by tato podmínka zastavila další výrobu. Stínová cena spotřeby speciální hmoty je rovněž nulová, přičemž víme, že speciální hmoty zbylo ještě 1 000 kg, proto navýšení jejího množství by skutečně na zlepšení hodnoty účelové funkce zatím nemělo.
70
6.2 Dvoufázová primárně simplexová metoda Vstupním požadavkem pro použití primárně simplexové metody je nahrazení soustavy všech vlastních omezení úlohy LP ekvivalentní soustavou rovnic v kanonickém tvaru s nezápornými pravými stranami. Ne vždy je ovšem množina vlastních omezení úlohy LP tvořena výhradně nerovnicemi typu „ “ jako v (6.1), kdy k tomuto nahrazení postačí každou nerovnici soustavy vyrovnat na rovnici pouze přičtením přídatné proměnné, která v každém řádku zároveň rovnou hraje roli základní proměnné. V případě, že je některé vlastní omezení typu „≤“ nebo „=“, je jeho nahrazení komplikovanější. Každou nerovnici typu „≥“ v soustavě vlastních omezení vyrovnáme odečtením nezáporné přídatné proměnné, i-tou nerovnici soustavy ve tvaru . nahradíme rovnicí , kde
,
která ovšem neodpovídá požadavku kanonického tvaru sestavované SLR. Tuto rovnost proto ještě doplníme na levé straně o přičtenou umělou neznámou yi,
(6.7) kde
.
Rovnice v soustavě vlastních omezení úlohy LP není třeba vyrovnávat, i-tá rovnice soustavy je ve tvaru , který ovšem neodpovídá požadavku kanonického tvaru sestavované SLR. Tuto rovnost proto ještě doplníme na levé straně o přičtenou umělou neznámou yi,
kde
.
(6.8)
Umělé neznámé jsou zavedeny čistě z formálních důvodů, abychom dosáhli kanonického tvaru ekvivalentní soustavy s původní soustavou vlastních omezení, nemají žádnou reálnou slovní interpretaci. Je zřejmé, že rovnice rozšířená o umělou proměnnou je s původní rovnicí ekvivalentní, právě když je tato doplněná umělá proměnná rovna nule.
71
Definice 6.3 Funkci z´, která vznikne jako součet všech zavedených pomocných proměnných (6.9) . budeme nazývat umělá účelová funkce. Možnost vynulování všech zavedených umělých proměnných lze ověřit předem. Ještě než přistoupíme k samotné optimalizaci účelové funkce z, pokusíme se minimalizovat umělou účelovou funkci z´. 6.2.1 Výchozí základní řešení V I. fázi řešení je třeba minimalizovat umělou účelovou funkci z´ přesně tak, jak bylo popsáno v kapitole Jednofázová primárně simplexová metoda. Věta 6.16 Úloha LP nemá přípustné řešení, pokud je minimum umělé účelové funkce kladné. Pokud má úloha LP přípustné řešení, je produktem minimalizace umělé účelové funkce z´ dosažení VZŘ. U úloh řešitelných jednofázovou metodou bylo zaručeno, že množina přípustných řešení je neprázdná a obsahuje alespoň základní řešení, kde jsou všechny strukturní proměnné rovny 0, které bylo použito jako VZŘ (což je triviální obdobou I. fáze). U úloh, kde je třeba použít dvoufázovou simplexovou metodu totiž základní řešení, kde jsou všechny strukturní proměnné rovny 0, obvykle není prvkem množiny přípustných řešení.
Obrázek 6.1 – počátek souřadnic jako VZŘ v grafu úloh LP
Tento rozdíl můžeme ilustrovat grafickým znázorněním situace v Obrázek 6.1 V levém obrázku je úloha LP, která má všechna vlastní omezení kapacitní, polygon přípustných řešení 72
obsahuje počátek souřadné soustavy, v pravém obrázku má úloha LP také požadavková vlastní omezení, která způsobila, že počátek souřadné soustavy není součástí množiny přípustných řešení a proto nemůže být vybrán jako VZŘ. Pokud z´> 0, nepodaří se vynulovat současně všechny zavedené umělé proměnné a zadaná úloha nemá žádné přípustné řešení, optimální řešení tedy neexistuje. V opačném případě přistoupíme ke II. fázi řešení úloh LP. Dále už nemají umělé neznámé ani umělá účelová funkce žádné opodstatnění a příslušné sloupce a řádek z´ mohou být z tabulky vypuštěny. 6.2.2 Vlastní optimalizace II. fáze řešení úloh LP se týká samotné optimalizace, tedy algoritmizovanému testování optimality nalezeného základního řešení a případnému nalezení základního řešení s lepší hodnotou účelové funkce přesně tak, jak bylo popsáno v kapitole Jednofázová primárně simplexová metoda. Příklad 6.6 V dílně firmy specializované na stavební materiály je možné vyrábět čtvercové a obdélníkové pláty. Na čtvercový je potřeba 2 kg speciální hmoty, na obdélníkový 1 kg hmoty, ve skladu je k dispozici celkem 6 000 kg této hmoty. Na odlití a opracování čtvercového i obdélníkové plátu je třeba 1 hodina práce zaměstnance, celkem je k dispozici 4 000 hodin. Odběratel požaduje alespoň 500 kusů čtvercových plátů a alespoň 1 000 kusů obdélníkových plátů, pak se zaručuje odebrat jakékoli množství čtvercových plátů a až 3 000 obdélníkových plátů. Pokud dílna odběrateli prodá všechny vyrobené pláty za smluvené ceny, má z výroby jednoho čtvercového plátu zisk 400 Kč a z jednoho obdélníkového plátu 600 Kč. Stanovte výrobní program, který zaručí za daných podmínek nejvyšší možný zisk. Řešení Sestavme matematický model úlohy
a všechny nerovnosti vyrovnejme pomocí pěti přídatných proměnných. Získáváme ekvivalentní soustavu lineárních rovnic k soustavě nerovnic vlastních omezení
, 73
která ovšem není v kanonickém tvaru. Proto ještě doplníme dvě umělé proměnné v řádcích, ke kterým dosud neexistují příslušné jednotkové sloupce (přídatné proměnné x´5 a x´7 vystupují s koeficientem -1), čímž získáme kompletní bázi:
Účelovou funkci z zapišme v anulovaném tvaru: . Umělou účelovou funkci z´ sestavme jako součet obou umělých proměnných, které nejprve vyjádříme z odpovídajících rovnic:
. Po sečtení už dostáváme zápis umělé účelové funkce , který také ještě převedeme do anulovaného tvaru
pro zápis do simplexové tabulky. Sestavování pomocné účelové funkce z´ lze obejít a zápis indexního řádku pomocné účelové funkce z´ lze zmechanizovat, indexní čísla jsou součtem koeficientů v řádcích umělých proměnných. Ještě než se pustíme do algebraického řešení, doporučujeme čtenáři vyřešit tento příklad graficky a poté paralelně sledovat, kterým bodům v grafu odpovídají základní řešení dosažená postupně v jednotlivých iteracích simplexového algoritmu. Nejprve sestavme simplexovou tabulku, připravme sloupce pro dvě strukturní, pět přídatných a nakonec také 2 umělé proměnné. Pod indexní řádek účelové funkce z ještě doplníme indexní řádek pomocné účelové funkce z´, od ostatních řádků jsou v tabulce pro přehlednost odděleny dvojitou čarou, funkci, jejíž optimalizaci se budeme věnovat dříve, zapíšeme níže. Hodnoty umělých proměnných zvýrazněme v následujícím textu světlejší barvou, které také evokuje, že nemá žádný reálný význam, její zavedení je pouze technickou záležitostí. Jakmile to bude možné, umělou účelovou funkci a umělé proměnné vynecháme.
74
báze x´3 x´4 y1 x´6 y2 z z´
x1 x2 1 2 1 1 1 0 1 0 1 0 -400 -600 1 1
x´3 1 0 0 0 0 0 0
x´4 0 1 0 0 0 0 0
x´5 0 0 -1 0 0 0 -1
x´6 0 0 0 1 0 0 0
x´7 0 0 0 0 -1 0 -1
y1 0 0 1 0 0 0 0
y2 0 0 0 0 1 0 0
bi 6 000 4 000 500 3 000 1 000 0 1 500
podíly 3 000 4 000 500 × × – –
I. fáze dvoufázové primárně simplexové metody spočívá v minimalizaci umělé účelové funkce z´. V rámci testu optimality (zatím pouze vzhledem k z´, hledáme nejnižší dosažitelnou hodnotu součtu umělých neznámých) všech dosažených základních řešení proto požadujeme v odpovídajícím indexním řádku z´ pouze čísla nekladná. V aktuálním základním řešení x1 = (0; 0; 3 000; 4 000; 0; 3 000; 0; 500; 1 000)T jsou ještě dvě indexní čísla kladná, je tedy možné aktuální hodnotu umělé účelové funkce 1 500 zlepšit (snížit). Ze dvou stejných indexních čísel vyberme to první v pořadí, určí klíčový sloupec, do báze bude nově zařazena proměnná x1, nejnižší nezáporný podíl určí klíčový řádek, z báze naopak vystoupí proměnná y1. Po transformaci simplexové tabulky dostáváme další základní řešení: báze x´3 x´4 x1 x´6 y2 z z´
x1
x2 0 0 1 0 0 0 0
1 1 0 1 1 -600 1
x´3 1 0 0 0 0 0 0
x´4 0 1 0 0 0 0 0
x´5 2 1 -1 0 0 -400 0
x´6 0 0 0 1 0 0 0
x´7 0 0 0 0 -1 0 -1
y1 -2 -1 1 0 0 400 -1
y2 0 0 0 0 1 0 0
bi 5 000 3 500 500 3 000 1 000 200 000 1 000
podíly 5 000 3 500 × 3 000 1 000 – –
V aktuálním základním řešení x2 = (500; 0; 5 000; 3 500; 0; 3 000; 0; 0; 1 000)T je ještě jedno indexní číslo kladné, je tedy možné aktuální hodnotu umělé účelové funkce 1 000 zlepšit (snížit). Toto kladné indexní číslo určí klíčový sloupec, do báze bude nově zařazena proměnná x2, nejnižší nezáporný podíl určí klíčový řádek, z báze naopak vystoupí proměnná y2. Po transformaci simplexové tabulky dostáváme další základní řešení: báze x´3 x´4 x1 x´6 x2 z z´
x1
x2 0 0 1 0 0 0 0
0 0 0 0 1 0 0
x´3 1 0 0 0 0 0 0
x´4 0 1 0 0 0 0 0
x´5 2 1 -1 0 0 -400 0
x´6 0 0 0 1 0 0 0
75
x´7 1 1 0 1 -1 -600 0
y1 -2 -1 1 0 0 400 -1
y2 -1 -1 0 -1 1 600 -1
bi 4 000 2 500 500 2 000 1 000 800 000 0
podíly 4 000 2 500 × 2 000 × – –
V aktuálním základním řešení x3 = (500; 1 000; 4 000; 2 500; 0; 2 000; 0; 0; 0)T jsou všechna indexní čísla nekladná, bylo tedy dosaženo minimální hodnoty umělé účelové funkce z´. Jelikož platí
z´min = 0, byla I. fáze primárně simplexové metody úspěšná, podařilo se vynulovat umělé proměnné (jak je také vidět z přepsání posledního řádku matice do rovnice i z hodnot posledních dvou souřadnic zapsaného vektoru). Až nyní je možné přistoupit k II. fázi řešení. Umělé neznámé ani umělá účelová funkce nemají dále žádné opodstatnění a příslušné sloupce a řádek z´ mohou být z tabulky vypuštěny a nadále píšeme pouze báze x´3 x´4 x1 x´6 x2 z
x1
x2 0 0 1 0 0 0
0 0 0 0 1 0
x´3 1 0 0 0 0 0
x´4 0 1 0 0 0 0
x´5 2 1 -1 0 0 -400
x´6 0 0 0 1 0 0
x´7 1 1 0 1 -1 -600
bi 4 000 2 500 500 2 000 1 000 800 000
podíly 4 000 2 500 × 2 000 × –
II. fáze dvoufázové primárně simplexové metody spočívá v tomto příkladě v maximalizaci (typ optimalizace z matematického modelu) vlastní účelové funkce z. V rámci testu optimality (nyní již vzhledem k z) všech dosažených základních řešení proto požadujeme v odpovídajícím indexním řádku z pouze čísla nezáporná. Ve všech předcházejících krocích zpětně konstatujme, že v indexním řádku vlastní účelové funkce z se doposud vyskytovala i čísla záporná, ani jedno z těchto základních řešení nebylo optimálním řešením zadané úlohy LP. V aktuálním základním řešení x3 = (500; 1 000; 4 000; 2 500; 0; 2 000; 0)T jsou ještě dvě indexní čísla záporná, je tedy možné aktuální hodnotu vlastní účelové funkce 800 000 zlepšit (zvýšit). Nejnižší záporné indexní číslo určí klíčový sloupec, do báze bude nově zařazena proměnná x´7, nejnižší nezáporný podíl určí klíčový řádek, z báze naopak vystoupí proměnná x´6. Po transformaci simplexové tabulky dostáváme další základní řešení: báze x´3 x´4 x1 x´7 x2 z
x1
x2 0 0 1 0 0 0
0 0 0 0 1 0
x´3 1 0 0 0 0 0
x´4 0 1 0 0 0 0
x´5 2 1 -1 0 0 -400
x´6 -1 -1 0 1 1 600
x´7 0 0 0 1 0 0
bi 2 000 500 500 2 000 3 000 2 000 000
podíly 1 000 500 × × × –
V aktuálním základním řešení x4 = (500; 3 000; 2 000; 500; 0; 2 000; 0)T je ještě jedno indexní číslo záporné, je tedy možné aktuální hodnotu vlastní účelové funkce 2 000 000 zlepšit (zvýšit).
76
Nejnižší záporné indexní číslo určí klíčový sloupec, do báze bude nově zařazena proměnná x´5, nejnižší nezáporný podíl určí klíčový řádek, z báze naopak vystoupí proměnná x´4. Po transformaci simplexové tabulky dostáváme další základní řešení: báze x´3 x´5 x1 x´7 x2 z
x1
x2 0 0 1 0 0 0
0 0 0 0 1 0
x´3 1 0 0 0 0 0
x´4 -2 1 1 0 0 400
x´5 0 1 0 0 0 0
x´6 1 -1 -1 1 1 200
x´7 0 0 0 1 0 0
bi
podíly
500 1 000 1 000 2 000 3 000 2 200 000
V aktuálním základním řešení již nejsou žádná záporná indexní čísla, dosáhli jsme optimálního řešení, navíc ve sloupcích nezákladních neznámých x´4 a x´6 nejsou v indexním řádku 0, toto optimální řešení je jediné, zapišme odpovídající vektor řešení
xopt = (1 000; 3 000; 500; 0;1 000; 0; 2 000)T. a odpovídající optimální hodnotu účelové funkce
zmax = 2 200 000. 6.2.3 Zakončení výpočtu Věta 6.17 Při řešení úloh LP může nastat jedna ze tří variant výsledku 1) jediné optimální řešení, 2) alternativní řešení, 3) neomezená hodnota účelové funkce, 4) žádné optimální řešení. U úloh řešitelných jednofázovou metodou bylo zaručeno, že množina přípustných řešení je neprázdná a obsahuje alespoň základní řešení, kde jsou všechny strukturní proměnné rovny 0. U úloh, kde je třeba použít dvoufázovou simplexovou metodu toto triviální základní řešení obvykle není prvkem množiny přípustných řešení. Navíc může tedy nastat i taková varianta, že úloha nemá žádné přípustné a tudíž také žádné optimální řešení, což zjistíme právě na konci I. fáze primárně simplexové metody. Tuto situaci můžeme také názorně ilustrovat graficky. V Obr. 3 jsou zobrazena vlastní omezení jako poloroviny, jejich průnik je prázdný. Příklad 6.7 V keramické dílně je k dispozici 120 kg keramické hlíny, ze které je možné vyrábět hrnečky a podšálky. Na jeden hrneček je potřeba 0,4 kg a na jeden podšálek 0,6 kg keramické hlíny, jeden hrneček se vyrábí 30 minut, jeden podšálek 20 minut. Podšálky se nemohou prodávat samostatně, hrnečky ano. Talířků je potřeba vyrobit alespoň 150 kusů. Určete optimální výrobní plán, aby byla výroba dokončena co nejrychleji.
77
Řešení Sestavme matematický model úlohy
a všechny nerovnosti vyrovnejme pomocí tří přídatných proměnných. Získáváme ekvivalentní soustavu lineárních rovnic k soustavě nerovnic vlastních omezení
, která ovšem není v kanonickém tvaru. Proto ještě doplníme jednu umělou proměnnou ve třetím řádku, ke kterému dosud neexistuje příslušný jednotkový sloupec (přídatná proměnná x´5 vystupuje s koeficientem -1), čímž získáme kompletní bázi:
Účelovou funkci z zapíšeme v anulovaném tvaru: . Umělou účelovou funkci z´ sestavíme jako součet všech umělých proměnných, zde je jediná, vyjádříme jí z odpovídajícího řádku: . Zápis umělé účelové funkce
ještě převedeme do anulovaného tvaru
pro zápis do simplexové tabulky. I tuto úlohu můžete vyřešit též graficky a porovnat oba výsledky. Sestavíme simplexovou tabulku
78
báze x´3 x´4 y1 z z´
x1 0,4 -1 0 -30 0
x2 0,6 1 1 -20 1
x´3 1 0 0 0 0
x´4 0 1 0 0 0
x´5 0 0 -1 0 -1
y1 0 0 1 0 0
bi 120 0 150 0 150
podíly 200 0 150 – –
I. fáze dvoufázové primárně simplexové metody spočívá v minimalizaci umělé účelové funkce z´. V aktuálním (degenerovaném) základním řešení x1 = (0; 0; 120; 0; 0; 150)T je ještě jedno indexní číslo kladné, je tedy možné aktuální hodnotu umělé účelové funkce 150 zlepšit (snížit). Nejvyšší kladné indexní číslo určí klíčový sloupec, do báze bude nově zařazena proměnná x2, nejnižší nezáporný podíl určí klíčový řádek, z báze naopak vystoupí proměnná x´4. Po transformaci simplexové tabulky dostáváme další základní řešení: báze x´3 x2 y1 z z´
x1 1 -1 1 -50 1
x2 0 1 0 0 0
x´3 1 0 0 0 0
x´4 -0,6 1 -1 20 -1
x´5 0 0 -1 0 -1
y1 0 0 1 0 0
bi 120 0 150 0 150
podíly 120 × 150 – –
V aktuálním (opět degenerovaném) základním řešení x2 = (0; 0; 120; 0; 0; 150)T je ještě jedno indexní číslo kladné, je tedy možné aktuální hodnotu umělé účelové funkce 150 zlepšit (snížit). Všimněme si, že v tomto kroku došlo pouze ke změně báze, vzhledem k degeneraci nedošlo k viditelné změně ve vektoru řešení úlohy, změnil se pouze vektor redukovaných a stínových cen. Obecně totiž pouze platí, že nedojde ke zhoršení hodnoty právě optimalizované účelové funkce. Nejvyšší kladné indexní číslo určí klíčový sloupec, do báze bude nově zařazena proměnná x1, nejnižší nezáporný podíl určí klíčový řádek, z báze naopak vystoupí proměnná x´3. Po transformaci simplexové tabulky dostáváme další základní řešení: báze x1 x2 y1 z z´
x1 1 0 0 0 0
x2 0 1 0 0 0
x´3 1 1 -1 50 -1
x´4 -0,6 0,4 -0,4 -10 -0,4
x´5 0 0 -1 0 -1
y1 0 0 1 0 0
bi
podíly
120 120 30 6 000 30
V aktuálním (tentokrát nedegenerovaném) základním řešení x3 = (120; 120; 0; 0; 0; 30)T jsou již všechna indexní čísla umělé účelové funkce nekladná, bylo dosaženo minima z´min = 30. V této úloze se nepodaří vynulovat současně všechny umělé proměnné, I. fáze končí neúspěšně, neexistuje žádné přípustné základní řešení. Proto tato úloha nemá optimální řešení. 79
Pozor, aktuální hodnota vlastní účelové funkce z3 = 6 000 odpovídá nepřípustnému řešení. Tuto skutečnost ilustrujte samostatně vyznačením odpovídajícího bodu v grafickém řešení zadané úlohy. Které podmínky nesplňuje? Příklad 6.8 Podnik na výrobu železných konstrukcí potřebuje z 35 kusů dvoumetrových tyčí nařezat alespoň 52 tyčí délky 50 cm a alespoň 18 tyčí délky 80 cm. Jakým způsobem má tyče rozřezat, aby získal požadovaný počet kratších tyčí a) s minimálním odpadem; b) při minimálním počtu řezů; c) při minimální spotřebě výchozích dvoumetrových tyčí? Uvažujme pouze ty způsoby řezání dvoumetrových tyčí, u kterých není odpad větší než 20 cm. Řešení Před sestavením matematického modelu pro určení optimálního řezného plánu je nutné stanovit všechny možné varianty řezání dvoumetrových tyčí na tyče délky 50 cm a 80 cm s odpadem kratším než 20 cm. Tyto možnosti zachycuje Tabulka 3.1. Nejprve je třeba určit všechny možnosti rozřezání dvoumetrových tyčí na kratší části požadovaných délek. Všechny varianty označené V1, V2 zapišme do tabulky včetně příslušného odpadu, počtu řezů a spotřeby tyčí. Tabulka 6.3 - Způsoby rozřezání dvoumetrových tyčí na části požadovaných délek
Délka prkna 200 cm 50 cm 80 cm a) Odpad [cm] b) Počet řezů [ks] c) Spotřeba tyčí [ks]
V1
V2
1 2 1 20 3 1
1 4 0 0 3 1
Kapacita resp. omezení [ks] 35 52 18 min. min. min.
1. Strukturní neznámé pro sestavení matematického modelu úlohy zavedeme následovně: x1 … počet dvoumetrových tyčí rozřezaných podle plánu V1 [ks], x2 … počet dvoumetrových tyčí rozřezaných podle plánu V2 [ks]. Sestavme matematický model úlohy pro variantu a)
kterou následně vyřešíme, pro varianty b) a c) uveďme pouze tvar příslušných účelových funkcí:
80
I tyto úlohy můžete vzhledem k počtu neznámých řešit graficky a porovnávat s průběžnými algebraickými výsledky. Nejprve všechny nerovnosti vyrovnejme pomocí tří přídatných proměnných. Získáváme ekvivalentní soustavu lineárních rovnic k soustavě nerovnic vlastních omezení
, která ovšem není v kanonickém tvaru. Z toho důvodu ještě doplníme dvě umělé proměnné v řádcích, ke kterým dosud neexistují příslušné jednotkové sloupce (přídatné proměnné x´4 a x´5 vystupují s koeficientem -1), čímž získáme kompletní bázi:
Účelovou funkci z a umělou účelovou funkci z´ zapišme rovnou v anulovaném tvaru ,
potřebném pro zápis do simplexové tabulky. Sestavíme simplexovou tabulku báze x´3 y1 y2 z z´
x1 1 2 1 -20 3
x2 1 4 0 0 4
x´3 1 0 0 0 0
x´4 0 -1 0 0 -1
x´5 0 0 -1 0 -1
y1 0 1 0 0 0
y2 0 0 1 0 0
bi 35 52 18 0 70
podíly 35 13 – –
I. fáze dvoufázové primárně simplexové metody spočívá v minimalizaci umělé účelové funkce z´. V aktuálním základním řešení x1 = (0; 0; 35; 0; 0; 52; 18)T jsou ještě kladná indexní čísla, je tedy možné aktuální hodnotu umělé účelové funkce 70 zlepšit (snížit). Toto řešení je tedy nepřípustné. Nejvyšší kladné indexní číslo určí klíčový sloupec, do báze bude nově zařazena proměnná x2, nejnižší nezáporný podíl určí klíčový řádek, z báze naopak vystoupí proměnná y1. Po transformaci simplexové tabulky dostáváme další základní řešení: 81
báze x´3 x2 y2 z z´
x1 ½ ½ 1 -20 1
x2 0 1 0 0 0
x´3 1 0 0 0 0
x´4 ¼ -¼ 0 0 0
x´5 0 0 -1 0 -1
y1 -¼ ¼ 0 0 -1
y2 0 0 1 0 0
bi 22 13 18 0 18
podíly 44 26 18
V aktuálním základním řešení x2 = (0; 13; 22; 0; 0; 0; 18)T je ještě jedno indexní číslo kladné, je tedy možné aktuální hodnotu umělé účelové funkce 18 zlepšit (snížit). Toto řešení je stále nepřípustné. Nejvyšší kladné indexní číslo určí klíčový sloupec, do báze bude nově zařazena proměnná x1, nejnižší nezáporný podíl určí klíčový řádek, z báze naopak vystoupí proměnná y2. Po transformaci simplexové tabulky dostáváme další základní řešení: báze x´3 x2 x1 z z´
x1 0 0 1 0 0
x2 0 1 0 0 0
x´3 1 0 0 0 0
x´4 ¼ -¼ 0 0 0
x´5 ½ ½ -1 -20 0
y1 -¼ ¼ 0 0 -1
y2 -½ -½ 1 20 -1
podíly
bi 13 4 18 360 0
V aktuálním základním řešení x3 = (18; 4; 13; 0; 0; 0; 18)T již není žádné indexní číslo kladné, aktuální hodnotu umělé účelové funkce již nelze zlepšit (snížit). Jelikož je tato hodnota z´min = 0, nalezli jsme přípustné základní řešení, čímž jsme získali výchozí základní řešení a I. fáze úspěšně končí. II. fáze dvoufázové primárně simplexové metody spočívá v tomto příkladě opět v minimalizaci (typ optimalizace z matematického modelu) vlastní účelové funkce z. V rámci testu optimality (nyní již vzhledem k z) všech dosažených základních řešení proto požadujeme v odpovídajícím indexním řádku z pouze čísla nezáporná, což právě nalezené řešení tentokrát rovnou splňuje. Dosáhli jsme optimálního řešení, zapišme vektor řešení
xopt1 = (18; 4; 13; 0; 0)T. a odpovídající optimální hodnotu účelové funkce
zmin = 360. Pod nezákladní neznámou x´4 je navíc v indexním řádku 0, toto optimální řešení je alternativní, Po transformaci simplexové tabulky, ze které jsme již vynechali řádek umělé účelové funkce a sloupce umělých neznámých, dostáváme další základní řešení (vypočtěte samostatně, lze zkontrolovat na v Příkladu 8.3) zapišme odpovídající vektor řešení
xopt2 = (18; 17; 0; 52; 0)T, 82
odpovídající hodnota účelové funkce se samozřejmě nezměnila. Všechny alternativy optimálních řešení lze zapsat obecným způsobem
xopt = k.(18; 4; 13; 0; 0)T + (1-k).(18; 17; 0; 52; 0)T, k <0;1>. 6.2.4 Interpretace výsledku Interpretace hodnot strukturních a přídatných proměnných a redukovaných a stínových cen je stejná u obou variant primárně simplexové metody, znovu zopakujme, že hodnoty umělých proměnných nemají vzhledem k slovnímu zadání úlohy LP žádnou reálnou interpretaci. Příklad 6.9 Interpretujte také výsledky Příkladu 6.6. Řešení Jediné optimální řešení úlohy LP bylo zapsáno jako
xopt = (1 000; 3 000; 500; 0;1 000; 0; 2 000)T. a odpovídající optimální hodnota účelové funkce zmax = 2 200 000. Na tomto místě je vhodné si připomenout formulace, které odpovídají zavedení jednotlivých strukturních neznámých: x1 … počet vyrobených čtvercových plátů [ks], x2 … počet vyrobených obdélníkových plátů [ks]. a jednotlivých přídatných neznámých: x´3 … množství nespotřebované speciální hmoty [kg], x´4 … množství nevyužitého časového fondu zaměstnanců [h], x´5 … rezerva při dodržení limitu minimálního odběru čtvercových plátů [ks], x´6 … rezerva při dodržení limitu maximálního odběru obdélníkových plátů [ks], x´7 … rezerva při dodržení limitu minimálního odběru obdélníkových plátů [ks]. Optimálního výrobního programu může být dosaženo jediným možným způsobem, bude-li vyrobeno 500 kusů čtvercových a 4 000 kusů obdélníkových plátů. Přitom zbude 4 000 kg speciální hmoty, bude zcela vyčerpán fond hodin práce zaměstnanců. Limit minimálního odběru čtvercových plátů bude překročen o 2 500 kusů. Dodržení horního limitu odběru obdélníkových plátů bude právě na hranici, což koresponduje s překročením dolního limitu o 2 000 kusů. Z vektoru (0; 0; 0; 400; 0; 200; 0) redukovaných (podtržených) cen a stínových cen získáme doplňující informace o získaném optimálním řešení. Oba typy plátů jsou již ve výrobním programu zahrnuty, úvahy o vlivu jejich zavedení do výroby na změnu hodnoty účelové funkce triviálně nemají žádný smysl (nulový vliv). Navýšení množství speciální hmoty by na hodnotu účelové funkce nemělo vliv, suroviny je stále dostatek. Navýšení časového fondu zaměstnanců o 1 hodinu by přineslo možnost zvýšení hodnoty účelové funkce o 400 Kč. Zmírnění (snížení) dolního limitu odběru čtvercových plátů ani dolního limitu odběru obdélníkových plátů by na hodnotu účelové 83
funkce nemělo vliv, obě podmínky jsou splněny s rezervou (což potvrzují hodnoty příslušných přídatných neznámých). Naopak zmírnění (zvýšení) horního limitu odběru obdélníkových plátů by vedlo ke zlepšení hodnoty účelové funkce o 200 Kč s každým povoleným kusem navíc, protože tento limit byl již dosažen a brání v pokračování výroby. Žádné řešení Navíc jen doplňme, jak interpretovat situaci, kdy je výsledkem I. fáze zjištění, že zmin´ > 0. V takovém případě buď byly podmínky nastaveny chybně, nebo tak přísně, že je nelze splnit žádným způsobem. Zadaná úloha LP nemá žádné přípustné, natož optimální řešení. Příklad 6.10 Interpretujte také výsledky Příkladu 6.2. Řešení Zadaná úloha LP nemá za daných podmínek žádné optimální řešení. Příklad 6.11 Interpretujte také výsledky Příkladu 6.3. Řešení Řezný plán s nejnižším možným odpadem ve výši 360cm lze uskutečnit více možnými způsoby, např. tak, že variantu V1 aplikujeme 18krát a variantu V2 čtyřikrát, přičemž zbude 13 nepoužitých tyčí a získám přesný počet požadovaných kratších tyčí obou druhů, nebo např. tak, že V1 aplikujeme 18krát a variantu V2 17krát, přičemž použiji všechny dvoumetrové tyče, podle V1 ovšem získám o 52 půlmetrových tyčí více, než je potřeba. Dosazením vhodných hodnot za k do vektoru obecného řešení získám další, ale již nezákladní alternativy optimálního řešení. Zatím pouze konstatujme, že ve skutečnosti jich není na výběr nekonečně mnoho, reálný smysl mají pouze celočíselná řešení. Této problematice se budeme věnovat až v 9. kapitole. Všechna tato řešení jsou při výběru pro zavedení do skutečné výroby podle kriteria minimálního odpadu rovnocenná, manažer podniku bude muset rozhodnout podle dalšího kriteria, jaký počet zbylých a jaký počet přebytečných půlmetrových tyčí bude nejvýhodnější. 6.2.5 Shrnutí V této kapitole jsme se zabývali algebraickým řešením úloh LP. Jednou z možností by mohlo být projít množinu všech základních řešení, nepřípustná základní řešení vyřadit, a ze zbývajících přípustných základních řešení vybrat to s nejlepší hodnotou účelové funkce. Tento postup umíme díky předcházejícím kapitolám aplikovat jak algebraicky tak graficky. Algoritmický návod, jak algebraické procházení množiny všech přípustných základních řešení zefektivnit, dává tzv. primárně simplexová metoda, kterou lze navíc univerzálně použít na řešení jakékoli úlohy LP. Matematický model úlohy je v úvodu třeba upravit tak, aby všechna vlastní omezení měla nezápornou pravou stranu. Poté všechny nerovnosti vyrovnáme přičtením či odečtením přídatné neznámé na rovnosti, pokud by sestavená matice adjungované soustavy lineárních rovnic nebyla v kanonickém tvaru, v příslušných řádcích doplníme ještě umělé (pomocné) neznámé. V první fázi výpočtu je třeba najít tzv. výchozí základní řešení. Pokud jsou všechna vlastní omezení typu „≤“, je výchozí základní řešení přímo v úvodním tvaru simplexové tabulky, 84
tvoří jej triviálně vektor x = (0; …; 0; b1; …; bm)T. V opačném případě je třeba nejprve výchozí základní řešení hledat jako produkt minimalizace pomocné (umělé) účelové funkce z´, která je zkonstruována jako součet všech pomocných (umělých) neznámých. Je nutné, aby bylo dosaženo z´min = 0, jinak zadaná úloha LP nemá žádné přípustné řešení. Ve druhé fázi výpočtu se provede skutečná optimalizace podle zadané účelové funkce z. Výše byly popsány tři možné typy výsledku: jediné optimální řešení, alternativní řešení a neomezená hodnota účelové funkce (úloha nemá optimální řešení).
85
7. kapitola
DUALITA ÚLOH LP
V předcházející kapitole jsme ukázali univerzální nástroj řešení jakékoli úlohy LP tzv. primárně simplexovou metodu. Doplňme nyní naše znalosti o další důležitý poznatek, který nám může hledání optimálního řešení ještě zefektivnit. K dané úloze LP, říkejme jí primární úloha, lze podle jednoduchých pravidel jednoznačně zformulovat tzv. duální úlohu: Nejprve upravíme všechny nerovnosti u maximalizační primární úlohy na typ „≤“, resp. všechny nerovnosti u minimalizační primární úlohy na typ „≥“. Duální úloha má tolik proměnných, kolik má primární úloha vlastních omezení. Duální úloha má tolik vlastních omezení, kolik má duální úloha proměnných. Matice strukturních koeficientů obou úloh jsou navzájem transponované. Pravé strany vlastních omezení primární úlohy jsou cenovými koeficienty duální úlohy. Cenové koeficienty primární úlohy jsou pravými stranami vlastních omezení duální úlohy. Mění se typ hledaného extrému účelové funkce, jedna z dvojice duálně sdružených úloh je maximalizační a druhá minimalizační. Vztah mezi těmito úlohami ovšem není pouze formální, mezi oběma úlohami existují také významné logické souvislosti, užitečné při řešení úloh LP i při jeho ekonomické interpretaci. 7.1.1 Symetrická dualita 7 Definice 7.1 Pokud jsou všechna vlastní omezení úlohy LP tvořena nerovnicemi, hovoříme o symetrické dualitě. Uvažujme nejprve primární úlohu LP s matematickým modelem upraveným do tvaru vyjádřeného schematicky jako z = cTx … max. Ax ≤ b ≥ x o
(7.1)
kde cT = (c1, c2, … , cn) je vektor cenových koeficientů, x = (x1, x2, … , xn)T je vektor strukturních neznámých, b = (b1, b2, … , bm)T je vektor pravých stran, x = (0; 0; …;0)T. je nulový vektor (n – složkový), A = (aij) je matice strukturních koeficientů typu mxn. Označme dále uT = (u1, u2, … , um) vektor strukturních neznámých duální úlohy. Formulaci duální úlohy k zadané úloze schematicky popisuje Tabulka 7.1 Tabulka 7.1 – schéma symetrické duality úloh LP
PRIMÁRNÍ ÚLOHA z= cTx … max. ≤ Ax b ≥ x o
DUÁLNÍ ÚLOHA f= uTb … min. ≥ u o T A u ≥ cT
7 86
Příklad 7.1 K matematickému modelu úlohy LP z Příkladu 6.8.
sestavte matematický model úlohy duálně sdružené. Řešení Před sestavením matematického modelu nejprve připravme všechna vlastní omezení primární úlohy na převod. Jelikož jde o úlohu minimalizační, je třeba všechny podmínky převést na nerovnosti typu „≥“ vhodným vynásobením nerovnic číslem -1. Tabulka 7.2 – příklad symetrické duality
PRIMÁRNÍ ÚLOHA z = 20x1 … -x1 -x2 ≥ 2x1 +4x2 ≥ x1 ≥ x1 ≥ x2 ≥
min. -35 52 18 0 0
f=
DUÁLNÍ ÚLOHA -35u1 +52u2 +18u3 u1 u2 u3 -u1 +2u2 + u3 -u1 +4u2
… ≥ ≥ ≥ ≤ ≤
max. 0 0 0 20 0
Poté mechanicky výše popsaným postupem získáme matematický model úlohy duální. Poznámka: Dbejme přitom na zápis každé dvojice odpovídajících si podmínek vždy do stejného řádku, i-té podmínce nezápornosti primární úlohy odpovídá i-té vlastní omezení primární úlohy, i = 1, 2, …, m, j-tému vlastnímu omezení primární úlohy odpovídá j-tá podmínka nezápornosti duální úlohy, j = 1, 2, …, n. 7.1.2 Smíšená dualita Definice 7.2 Pokud jsou mezi vlastními omezeními úlohy LP rovnice i nerovnice, hovoříme o smíšené dualitě. Pro formulaci duální úlohy při smíšené dualitě upravíme opět všechna vlastní omezení maximalizační primární úlohy na typ „≤“, resp. všechna vlastní omezení minimalizační primární úlohy na typ „≥“. Pro otočení nerovnosti stačí vynásobit číslem -1. Každou rovnici je třeba nahradit ekvivalentní soustavou dvou nerovnic tak, že rovnítko nahradíme jednou znaménkem „≤“ a podruhé znaménkem „≥“. Tímto se nám sice formálně zvýší počet vlastních omezení, ale prakticky to znamená, že jsme úlohu se smíšenou dualitou převedli na symetrický problém. Poznámka: Abychom dostáli doporučení z předchozí poznámky, je praktické dvě duální proměnné odpovídající nerovnicím, které nahradily j-té vlastní omezení typu „=“ původní primární úlohy, pojmenovat u+j a u–j.
87
Příklad 7.2 K úloze LP zadané matematickým modelem z=
200x1 +100x2 5x1 +3x2 2x1 -4x2 -8x1 +2x2 x1 x2 sestavte matematický model úlohy k ní duální.
… ≥ = ≤ ≥ ≥
max. 44 -8 60 0 0
Řešení Před sestavením matematického modelu nejprve připravme všechna vlastní omezení primární úlohy na převod. Jelikož jde o úlohu minimalizační, je třeba všechny podmínky převést na nerovnosti typu „≥“. První nerovnost stačí vynásobit číslem -1. Rovnici 2x1 -4x2 = -8 nahradíme ekvivalentní soustavou nerovnic o stejných koeficientech ale s různými nerovnostními znaménky 2x1 -4x2 ≤ -8 2x1 -4x2 ≥ -8. Takto převedeme původní nesymetrický problém na pomocný symetrický problém, k němuž mechanicky zformulujeme úlohu duální. Dvě duální proměnné odpovídající vlastním omezením nahrazujícím rovnici původní primární úlohy pojmenujeme u+2 a u–2, dolní indexy tak budou nadále korespondovat s původním pořadím vlastních omezení primární úlohy. Tabulka 7.3 – pomocný symetrický problém
POMOC. PRIMÁRNÍ ÚLOHA z = 200x1 +100x2 … max. -5x1 -3x2 ≤ -44 2x1 -4x2 ≤ -8 -2x1 +4x2 ≤ 8 -8x1 +2x2 ≤ 60 x1 ≥ 0 x2 ≥ 0
f=
POMOCNÁ DUÁLNÍ ÚLOHA -44u1 -8u+2 +8u+2 +60u3 … u1 ≥ + u2 ≥ u-2 ≥ u3 ≥ -5u1 +2u+2 -2u-2 -8u3 ≤ + -3u1 -4u 2 +4u 2 +2u3 ≤
min. 0 0 0 0 200 100
Poté zavedeme jednoduchou substituci u2 = u+2 – u–2, a pomocnou duální úlohu formálně upravíme na požadovaný tvar duální úlohy k původně zadané primární úloze: Tabulka 7.4 – příklad nesymetrické duality
z=
PRIMÁRNÍ ÚLOHA 200x1 +100x2 … 5x1 +3x2 ≥ 2x1 -4x2 = -8x1 +2x2 ≤ x1 ≥ x2 ≥
max. 44 -8 60 0 0
f=
-44u1 u1
DUÁLNÍ ÚLOHA -8u2 +60u3 u2
-5u1 -3u1
+2u2 -4u2
u3 -8u3 +2u3
… ≥ ≥ ≤ ≤
min. 0 R 0 200 100
Zdůrazněme, že neznámá u2, jakožto rozdíl dvou nezáporných čísel, nemusí být číslem nezáporným, ale může obecně nabývat jakýchkoli reálných hodnot.
88
7.1.3 Nesymetrická dualita Definice 7.3 Pokud jsou všechna vlastní omezení úlohy LP tvořena rovnicemi, hovoříme o (čistě či ryze) nesymetrické dualitě. Při formulaci duální úlohy při ryze nesymetrické dualitě je všech m vlastních omezení typu „=“ nahrazeno ekvivalentní dvojicí nerovnic způsobem popsaným u smíšené duality, pomocný symetrický duální problém tak má 2m proměnných, pro každou jejich dvojici je pak analogicky zavedena substituce, ze které opět vyplyne, že pro žádnou z duálních proměnných nemusí platit podmínka nezápornosti. Formulaci nesymetricky duálně sdružené úlohy s původní úlohou opět můžeme schematicky popsat tabulkami Tabulka 7.5 – schéma nesymetrické duality- maximalizační úloha LP
PRIMÁRNÍ ÚLOHA z= cTx … max. = Ax b ≥ x o
DUÁLNÍ ÚLOHA f= uTb … min. u R T A u ≥ cT
Tabulka 7.6 – schéma nesymetrické duality- minimalizační úloha LP
PRIMÁRNÍ ÚLOHA z= cTx … min. = Ax b ≥ x o
f=
DUÁLNÍ ÚLOHA uTb … max. u R ATu ≤ cT
Příklad 7.3 K úloze LP zadané matematickým modelem z=
20x1 x1 2x1
-30x2 -2x2 +3x2 x2
x1 x2
… = = = ≥ ≥
max. 12 -8 16 0 0
sestavte matematický model úlohy k ní duální. Řešení Využijeme-li poznatků z předcházejícího příkladu, můžeme rovnou duální problém formulovat
z=
PRIMÁRNÍ ÚLOHA 20x1 -30x2 … x1 -2x2 = 2x1 +3x2 = x2 = x1 ≥ x2 ≥
max. 12 -8 16 0 0
f=
DUÁLNÍ ÚLOHA -8u2 +16u3 … u2 u3 u1 +2u2 ≥ -2u1 +3u2 + u3 ≥
12u1 u1
Typickým praktickým příkladem nesymetrické duality je potom dopravní úloha. 89
min. R R R 20 -30
Příklad 7.4 Sestavte matematický model úlohy duální k úloze LP z Příkladu 3.10 dříve popsanou matematickým modelem (7.2)
Řešení Matematický model sestavte samostatně, každou neznámou zapisujte do jednoho sloupce, odpovídající dvojice omezení zapisujte do jednoho řádku. Doporučení: duální neznámé odpovídající primárním vlastním omezením pro dodavatele označte ui, duální neznámé odpovídající primárním vlastním omezením pro odběratele označte vj. Tip: použijte velký čtverečkovaný papír. Nejprve si rozmyslete, kolik řádků a kolik sloupců budou oba modely dohromady zabírat. 7.1.4 Řešení duálně sdružených úloh Příklad 7.5 Vyřešte úlohu duální k úloze LP o dělení dvoumetrových tyčí z Příkladu 6.8. Řešení Matematické modely obou úloh jsme již sestavili: PRIMÁRNÍ ÚLOHA z = 20x1 … -x1 -x2 ≥ 2x1 +4x2 ≥ x1 ≥ x1 ≥ x2 ≥
min. -35 52 18 0 0
DUÁLNÍ ÚLOHA -35u1 +52u2 +18u3 u1 u2 u3 -u1 +2u2 + u3 -u1 +4u2
f=
… ≥ ≥ ≥ ≤ ≤
max. 0 0 0 20 0
Všechna vlastní omezení duální úlohy jsou typu „≤“, k jejímu řešení postačí jednofázová primárně simplexová metoda. V každém vlastním omezení přičteme jednu přídatnou neznámou a rovnou můžeme sestavit simplexovou tabulku báze u´4 u´5 z
u1 -1 -1 35
u2 2 4 -52
u3 1 0 -18
u´4 1 0 0
90
u´5 0 1 13
ci 20 0 0
podíly 10 0
V aktuálním základním řešení u1 = (0; 0; 0; 20; 0)T jsou při maximalizaci ještě dvě indexní čísla záporná, hodnotu účelové funkce je možné zlepšit (zvýšit). Po transformaci simplexové tabulky dostáváme další základní řešení: báze u´4 u2 z
u1 -½ -¼ 22
u2 0 1 0
u3 1 0 -18
u´4 1 0 0
u´5 -½ ¼ 13
ci 20 0 0
podíly 20
V aktuálním základním řešení u1 = (0; 0; 0; 20; 0)T je při maximalizaci ještě jedno indexní číslo záporné, hodnotu účelové funkce je možné zlepšit (zvýšit). Všimněte si, že v posledním kroku nedošlo ke zlepšení hodnoty účelové funkce, pouze ke stagnaci. Po transformaci simplexové tabulky dostáváme další základní řešení: báze u3 u2 z
u1 -½ -¼ 13
u2 0 1 0
u3 1 0 0
u´4 1 0 18
u´5 -½ ¼ 4
podíly
ci 20 0 360
V indexním řádku jsou již jen čísla nezáporná, dosáhli jsme optimálního řešení, které zapíšeme jako vektor
uopt = (0; 0; 20; 0; 0)T. a odpovídající optimální hodnotu účelové funkce
fmax = 360. Hodnota základní neznámé u2 je navíc rovna 0, toto optimální řešení je degenerované. 7.1.5 Věty o řešitelnosti dvojice sdružených úloh LP Zaměřme se nyní na formulaci velmi užitečných vzájemných vztahů mezi vlastnostmi řešení obou vzájemně duálně sdružených úloh. Porovnejme nyní simplexové tabulky obou řešených duálně sdružených úloh. Je patrné, že řešením jedné ze sdružených úloh získáme i řešení úlohy druhé a optimální hodnoty duálních proměnných najdeme v indexním řádku výsledné simplexové tabulky primární úlohy. 7 Věta 7.1 Optimální hodnoty strukturních proměnných duální úlohy se rovnají absolutním hodnotám indexních čísel primárních přídatných proměnných. Věta 7.2 Optimální hodnoty přídatných proměnných duální úlohy se rovnají absolutním hodnotám indexních čísel primárních strukturních proměnných. Příklad 7.6 Z výsledné simplexové tabulky Příkladu 6.6 zapište optimální řešení primární i duální úlohy včetně hodnot účelových funkcí
91
báze x´3 x´5 x1 x´7 x2 z
x1
x2 0 0 1 0 0 0
0 0 0 0 1 0
x´3 1 0 0 0 0 0
x´4 -2 1 1 0 0 400
x´5 0 1 0 0 0 0
x´6 1 -1 -1 1 1 200
x´7 0 0 0 1 0 0
bi 4 000 2 500 500 2 000 1 000 2 200 000
podíly 4 000 2 500 × 2 000 × –
Řešení Pro lepší přehlednost oddělíme v simplexové tabulce sloupce strukturních a přídatných neznámých trojitou čarou, podle předchozích vět můžeme rovnou psát
xopt = (500; 1 000; 4 000; 0; 2 500; 0; 2 000)T, zmax = 2 200 000, uopt = (0; 400; 0; 200; 0; 0; 0)T, fmin = 2 200 000. Z těchto vztahů vyplývá, že je možné řešení zadané, tedy primární úlohy LP obejít řešením úlohy k ní duální. Podle typu a počtu vlastních omezení obou úloh lze ihned poznat, která cesta nalezení řešení bude komplikovanější. Úlohu o řezání dvoumetrových tyčí jsme vyřešili oběma způsoby, zřejmě preferujeme použití jednofázové metody před použitím metody dvoufázovou. Pokud se jako výhodnější jeví řešení úlohy duální, je třeba mít stále na paměti, odkud vyčíst hodnoty úlohy původní (ne ze sloupce pravých stran, ale z indexního řádku). Také je třeba mít přehled o tom, které proměnné jsou strukturní a které přídatné. Poznámka: Úlohy o dělení materiálu jsou typickým příkladem, kdy je řešení duální úlohy jednodušší než řešení úlohy primárně zadané. Poznámka: Ve složitých úlohách s větším počtem neznámých se dvěma vlastními omezeními je také možné využít duality k převedení na úlohu, kterou lze vyřešit graficky a případně tak opět obejít komplikovaný způsob řešení. Viz [8], str. 90. Uveďme ještě několik vět, které popisují obecné vlastnosti řešení duálně sdružených úloh. Věta 7.3 Má-li jedna z dvojice duálně sdružených úloh jediné optimální řešení, které je nedegenerované, má jediné nedegenerované optimální řešení i úloha druhá a pro optimální hodnoty obou účelových funkcí platí zmax= fmin. Věta 7.4 Má-li jedna z dvojice duálně sdružených úloh jediné optimální řešení, které je degenerované, má druhá úloha alternativní optimální řešení a optimální hodnoty obou účelových funkcí obou účelových funkcí platí zmax= fmin. Věta 7.5 Má-li jedna z dvojice duálně sdružených úloh neomezenou hodnotu účelové funkce (má přípustné, ale ne optimální řešení), druhá úloha nemá přípustné řešení. Věta 7.6 Nemá-li jedna z dvojice duálně sdružených úloh přípustné řešení, druhá úloha nemá optimální řešení.
92
Jejich velký význam poznáme při určování počtu optimálních řešení obou sdružených úloh. Příklad 7.7 Proveďme nyní kompletní diskusi ke vztahu dvojice duálně sdružených úloh z příkladu o dělení dvoumetrových tyčí. Řešení Po transformaci simplexové tabulky jsme dostali optimální řešení obou duálně sdružených, jsou zapsaná v tabulce báze u3 u2 z
u1 -½ -¼ 13
u2 0 1 0
u3 1 0 0
u´4 1 0 18
u´5 -½ ¼ 4
podíly
ci 20 0 360
Optimální řešení obou úloh odtud nejprve zapišme:
uopt = (0; 0; 20; 0; 0)T. fmax = 360 xopt = (18; 4; 13; 0; 0)T, zmin = 360. Degenerace jediného optimálního řešení duální úlohy uopt je signálem, že optimální řešení úlohy s ní duálně sdružené bude alternativní. Na přímé získání další alternativy nám ovšem dosud probrané metody nepostačí, i z tohoto důvodu vyvstala potřeba vytvoření tzv. duálně simplexové metody, které se věnuje příští kapitola, kde se dokončení tohoto příkladu vrátíme. 7.1.6 Věta o dualitě Věta 7.7 Nechť x = (x1, x2, … , xn)T je přípustné řešení primární úlohy LP a uT = (u1, u2, … , um) je přípustné řešení duální úlohy schematicky popsaných v Tabulce Tabulka 7.1 Potom platí
z(x) ≤ f(u)
(7.3)
Odtud také Věta 7.8 Nechť x = (x1, x2, … , xn)T je přípustné řešení primární úlohy LP a uT = (u1, u2, … , um) je přípustné řešení duální úlohy schematicky popisuje Tabulka 7.1 a platí z(x) ≤ f(u). Potom x je optimálním řešením primární úlohy a u je optimálním řešením duální úlohy. Podle této věty je pro tento typ úloh možné ověřit, zda jsou dva zadané vektory optimálními řešeními po řadě primární a duální úlohy, aniž bychom museli projít celým procesem optimalizace. U nabízených řešení ověříme jejich přípustnost dosazením do příslušných sad vlastních omezení, a poté případně ověříme optimalitu jejich dosazením do příslušných účelových funkcí. Jsou-li obě řešení přípustná a hodnoty účelových funkcí se rovnají, jedná se o optimální řešení, v opačném případě tento předpoklad zavrhujeme. 93
Příklad 7.8 Rozhodněte, zda jsou vektory po řadě x = (0; 0; 80)T a u = (15; 0; 0)T optimálními řešeními zadané úlohy LP a úlohy s ní duálně sdružené. z =10x1 +5x2 +15x3 … max. x1 +x2 +2x3 ≤ 80 x1 +3x2 +x3 ≤ 50 x1 +x2 +x3 ≤ 60 x1,2,3 ≥ 0 Řešení Sestavme matematický model duální úlohy a poznamenejme si symbolicky, jsou-li splněna všechna omezení, popř. v jakém smyslu. PRIMÁRNÍ ÚLOHA
DUÁLNÍ ÚLOHA
z =10x1 +5x2 +15x3 … max. x u f =80u1 +50u2 +60u3 … min. x1 +x2 +2x3 ≤ 80 = × u1 0 x1 +3x2 +x3 ≤ 50 < > u2 0 x1 +x2 +x3 ≤ 60 < = u3 0 x1 ≥ 0 = > u1 +u2 +u3 ≥ 10 x2 ≥ 0 = = u1 +3u2 +u3 ≥ 5 x3 ≥ 0 > = 2u1 +u2 +u3 ≥ 15
Vektor x je přípustným řešením primární úlohy, vektor u ovšem nesplňuje první vlastní omezení duální úlohy, není tedy ani jejím přípustným řešením. Nenechte se zmást faktem, že dosadíme-li nabízená řešení do příslušných účelových funkcí, dostáváme
z(x) = 1 200 = f(u). Podle věty o dualitě nejsou nabízené vektory x = (40; 0; 60)T a u = (10; 10; 0)T optimálními řešeními zadané dvojice sdružených úloh, byl porušen předpoklad přípustnosti nabízených řešení. Zajímavé jsou také další její důsledky: 1) Má-li jedna z dvojice duálně sdružených úloh neomezenou hodnotu účelové funkce, nemá druhá úloha přípustné řešení. 3) Má-li jedna z dvojice duálně sdružených úloh optimální řešení, má také druhá úloha optimální řešení. 4) 3) Mají-li obě sdružené úlohy přípustné řešení, mají také obě optimální řešení. 7.1.7 Věta o rovnováze Při řešení dopravních úloh oceníme další vlastnost plynoucí z jednoznačnosti přiřazení dvojic odpovídajících si sdružených podmínek obou matematických modelů, kdy i-té podmínce nezápornosti primární úlohy odpovídá i-té vlastní omezení primární úlohy, i = 1, 2, …, m a j-tému vlastnímu omezení primární úlohy odpovídá j-tá podmínka nezápornosti duální úlohy, j = 1, 2, …, n. Dosazením nabízených přípustných řešení do těchto vztahů můžeme opět jednoduše otestovat jejich optimalitu. 94
Příklad 7.9 Rozhodněte, zda jsou vektory po řadě x = (40; 0; 60)T a u = (10; 10; 0)T optimálními řešeními zadané úlohy LP a úlohy s ní duálně sdružené. z =10x1 +5x2 +15x2 … max. x1 +x2 +2x2 ≤ 80 x1 +3x2 +x3 ≤ 50 x1 +x2 +x3 ≤ 60 x1,2,3 ≥ 0 Řešení K matematickým modelům obou úloh si opět symbolicky poznamenejme, jsou-li splněna všechna omezení, popř. v jakém smyslu. PRIMÁRNÍ ÚLOHA
DUÁLNÍ ÚLOHA
z =10x1 +5x2 +15x3 … max. x u f =80u1 +50u2 +60u3 … min. x1 +x2 +2x3 ≤ 80 = > u1 0 x1 +3x2 +x3 ≤ 50 = > u2 0 x1 +x2 +x3 ≤ 60 < = u3 0 x1 ≥ 0 > = u1 +u2 +u3 ≥ 10 x2 ≥ 0 = > u1 +3u2 +u3 ≥ 5 x3 ≥ 0 > = 2u1 +u2 +u3 ≥ 15
Všechny dvojice sdružených podmínek jsou splněny, vždy jedna ve smyslu rovnosti a druhá ve smyslu ostré nerovnosti. Dále dosaďme nabízená řešení do příslušných účelových funkcí, dostáváme
z(x) = 1 300 = f(u) Podle věty o rovnováze jsou tedy nabízené vektory x = (40; 0; 60)T a u = (10; 10; 0)T optimálními řešeními zadané dvojice sdružených úloh, optimální hodnota obou účelových funkcí je rovna 1 300.
7.1.8 Interpretace duálních neznámých úlohy LP Již víme, že máme-li optimální řešení primární úlohy v simplexové tabulce, můžeme ze sloupce pravých stran vyčíst hodnoty primárních základních neznámých. Není-li primární optimální řešení degenerované, jsou všechny kladné. Hodnoty strukturních základních neznámých primární úlohy vyjadřují počty jednotlivých výrobků, hodnoty přídatných základních neznámých primární úlohy vyjadřují rezervu v čerpání výrobních činitelů (zbytek suroviny). Tyto hodnoty můžeme průběžně sledovat a interpretovat během celého výpočtu také u ostatních přípustných základních řešení. Dále pak z posledního pole indexního řádku vyčteme optimální hodnotu účelové funkce primární (a zároveň duální) úlohy. Zabývejme se nyní ještě významem prvků indexního řádku, tedy všech přídatných a strukturních duálních neznámých, obecně nazývaných redukované ceny.
95
Strukturní duální proměnné (stínové ceny) hodnotí aktuální cenu jednotky činitele výroby Věta 7.9 Strukturní duální proměnná odpovídající omezení typu „≤“ resp. typu „≥“ ukazuje, o kolik se v maximalizační úloze zlepší (tedy zvýší), resp. zhorší hodnota účelové funkce, jestliže se pravá strana tohoto omezení zvýší o jednotku. Strukturní duální proměnná odpovídající omezení typu „≤“ resp. typu „≥“ukazuje, o kolik se v minimalizační úloze zlepší (tedy sníží), resp. zhorší hodnota účelové funkce, jestliže se pravá strana tohoto omezení zvýší o jednotku. (Připomeňme, že duální proměnně u optimálního řešení maximalizační úlohy LP jsou nezáporné, u optimálního řešení minimalizační úlohy LP jsou nekladné.) Přídatné proměnné duální úlohy (redukované ceny) hodnotí nevýhodnost stanovené ceny Věta 7.10 Přídatná proměnná duální úlohy ukazuje, o kolik jednotek je třeba v maximalizační úloze zvýšit, resp. o kolik jednotek je třeba v minimalizační úloze snížit cenu nezákladní strukturní proměnné, aby bylo výhodné ji začít vyrábět. Tyto informace využijeme jak při formulaci slovních odpovědí týkajících se doplňkových informací o vlastnostech nalezeného optimálního řešení, tak je dále rozvineme v kapitole o intervalech stability při postoptimalizační analýze.
96
8. kapitola
DUÁLNĚ SIMPLEXOVÁ METODA
Nabízí se nyní otázka, zdali by nebylo možné vyřešit úlohu duální přímo v simplexové tabulce úlohy primární. Z předchozí kapitoly víme, že při použití primárně simplexové metody se aktuální hodnoty primárních i duálních neznámých se objeví v každé simplexové tabulce. V předchozí kapitole jsme formulovali větu o dualitě. Ukážeme, jak ji a její důsledky využít k dalšímu způsobu řešení vhodných úloh LP. 8 Nejprve definujme dva pojmy Definice 8.1 Základní řešení primární úlohy v simplexové tabulce je přípustné, jsou-li pravé strany nezáporné. Potom říkáme, že toto řešení je primárně přípustné. Definice 8.2 Základní řešení duální úlohy v simplexové tabulce je přípustné, jsou-li v maximalizační úloze všechna indexní čísla nezáporná nebo v minimalizační úloze všechna indexní čísla nekladná. Říkáme, že toto řešení je duálně přípustné. 8 Věta 8.1 Je-li řešení v simplexové tabulce zároveň primárně i duálně přípustné, je optimální. Hodnoty účelové funkce primární i duální úlohy jsou rovny číslu v pravém dolním rohu, tvrzení dle věty o dualitě platí. Ukažme, jak je možné proces dosažení primární i duální přípustnosti modifikovat. 8.1.1 Výchozí základní řešení I. fáze každého simplexového algoritmu spočívá v nalezení výchozího základního řešení. Připomeňme, že do primárně simplexového algoritmu vstupuje výchozí základní řešení primárně přípustné, v průběhu procesu optimalizace je primární přípustnost stále zachována (dosud jsme se nesetkali se simplexovou tabulkou, kde by byla některá pravá strana záporná) a snažíme se efektivním způsobem dosáhnout i duální přípustnosti. Tak získáme optimální řešení. Do duálně simplexového algoritmu bude vstupovat výchozí základní řešení duálně přípustné, v průběhu procesu optimalizace bude duální přípustnost stále zachována a budeme se snažit efektivním způsobem dosáhnout i primární přípustnosti. Tak získáme optimální řešení. Vstupnímu požadavku duální přípustnosti ovšem vyhovují pouze úlohy se speciálním typem účelové funkce. V maximalizačních úlohách musí být všechny cenové indexy nekladné, v minimalizačních úlohách musí být všechny cenové indexy nezáporné, aby bylo při sestavení úvodní simplexové tabulky rovnou dosaženo duální přípustnosti. Proto duálně simplexová metoda není univerzální, její aplikovatelnost lze ovšem rozpoznat na první pohled. Výhodou je naopak skutečnost, že není ve výchozím základním řešení požadována primární přípustnost, některé pravé strany tudíž mohou být záporné, čehož využijeme při úpravě vlastních omezení. Každé tak mohu převést na typ „≤“ a k jejich úpravě na kanonický tvar pak postačí pouze přídatné neznámé (tj. nebudou potřeba umělé.) Duálně simplexová metoda je tak vždycky jednofázová. 97
8.1.2 Simplexová tabulka Sestavení simplexové tabulky pak už opět spočívá pouze v přepsání koeficientů kanonického tvaru vlastních omezení a anulované účelové funkce. 8 Příklad 8.1 Sestavte simplexovou tabulku pro řešení úlohy o dělení dvoumetrových tyčí duálně simplexovou metodou. Řešení Pozor, nejprve je vždy třeba ověřit, lze-li zadanou úlohu touto metodou vůbec řešit.
Dříve sestavený matematický model této úlohy LP je nutné upravit tak, aby všechna vlastní omezení byla typu „≤“, druhou a třetí podmínku vynásobíme číslem -1.
, Tu stačí doplnit třemi přídatnými neznámými na kanonický tvar
a účelovou funkci vyjádřit jako
abychom mohli sestavit simplexovou tabulku: báze x´1 x´2 x´3 z
x1 1 -2 -1 -20
x2 1 -4 0 0
x´1 1 0 0 0
x´2 0 1 0 0
x´3 0 0 1 0
bi 35 -52 -18 0
Příklad 8.2 Sestavte simplexovou tabulku pro řešení úlohy zadané následujícím matematickým modelem pro řešení duálně simplexovou metodou. 98
Řešení Nejprve opět zkontrolujme, je-li vůbec možné duálně simplexovou metodu použít Jelikož se jedná o maximalizační úlohu, lze ji použít pouze v případě, že jsou všechny cenové indexy nekladné, což zde platí.
Poznamenejme ovšem, že s takovýmto typem účelové funkce se v praxi často nesetkáme, obvyklejší (a elegantnější) je její ekvivalentní obdoba
Tento matematický model zadané úlohy LP je opět nutné upravit tak, aby všechna vlastní omezení byla typu „≤“, druhou podmínku vynásobíme číslem -1, třetí nahradíme ekvivalentní soustavou dvou nerovnic
, kde je druhou z nich také nutné vynásobit číslem -1. Dostáváme
kde stačí doplnit přičtením čtyř přídatných neznámých na kanonický tvar, účelovou funkci vyjádřit jako
a sestavit simplexovou tabulku báze x´1 x´2 x´3 x´4 z
x1 2 -1 1 -1 10
x2 1 0 -3 3 30
x3 -2 -4 2 -2 40
x´1 1 0 0 0 0
x´2 0 1 0 0 0
x´3 0 0 1 0 0
x´4 0 0 0 1 0
bi 20 -16 12 -12 0
8.1.3 Optimalizace V rámci duálně simplexového algoritmu se tedy všechny výpočty odehrávají v rámci II. fáze řešení úloh LP, která se týká samotné optimalizace, tedy ověřování optimality aktuálního 99
základního řešení a případné algoritmizované nalezení základního řešení s lepší hodnotou účelové funkce duální úlohy. Věta 8.2 (Test optimality): V úlohách LP je hodnota účelové funkce f optimální, jestliže jsou všechny pravé strany nezáporné, tedy je-li dosaženo také primární přípustnosti. Pokud dosažené řešení není optimální, přejdeme pomocí Jordanovy metody úplné eliminace k základnímu řešení s výhodnou volbou nové báze. Jedna ze základních neznámých původní báze se stane nezákladní, nahradí ji proměnná, která byla v předchozím řešení nezákladní. Definice 8.3 Sloupec proměnné vstupující do báze se nazývá klíčový sloupec, řádek proměnné vystupující z báze se nazývá klíčový řádek. Prvek ležící v průsečíku klíčového sloupce a klíčového řádku se nazývá klíčový prvek. Věta 8.3 V úlohách LP z báze základního řešení vystoupí základní proměnná, která má nejnižší (zápornou) hodnotu - ve sloupci pravých stran. Věta 8.4 V úlohách LP do báze základního řešení vstoupí proměnná s nejmenší absolutní hodnotou podílu indexního čísla a odpovídajících záporných koeficientů v řádku vystupující proměnné. Poznámka: Pro zápis těchto podílů doplníme simplexovou tabulku dole ještě o řádek „podíly“. Poznámka: Klíčový prvek při použití duálně simplexové metody je vždy záporné číslo. Transformace simplexové tabulky Po určení vstupující a vystupující proměnné přepočítáme pomocí ekvivalentních řádkových úprav Jordanovy metody úplné eliminace do tvaru odpovídajícímu nové bázi. Klíčový sloupec je třeba převést na jednotkový vektor s 1 na pozici klíčového prvku. Zřejmě postačí nejprve dělit klíčový řádek klíčovým prvkem a transformovaný klíčový prvek 1 poté využít k eliminaci ostatních prvků klíčového sloupce. Uvedený postup opakujeme tak dlouho, dokud není dosaženo jednoho z možných zakončení výpočtu. 8.1.4 Zakončení výpočtu Věta 8.5 Při řešení úloh LP s množinou vlastních omezení (6.3) může nastat jedna z následujících variant výsledku 1) obě úlohy mají přípustné řešení, mají tedy obě také optimální řešení, a) jedna z úloh má jediné nedegenerované optimální řešení, druhá má jediné nedegenerované řešení, b) jedna z úloh má jediné degenerované řešení, druhá úloha má alternativní řešení, 2) jedna z úloh má neomezenou hodnotu účelové funkce, druhá nemá přípustné řešení, 3) ani jedna z úloh nemá přípustné řešení, ani jedna tedy nemá optimální řešení. Využití těchto vztahů může napomoci díky odhaleným vlastnostem jedné úlohy nepřehlédnout vlastnosti úlohy s ní sdružené.
100
Příklad 8.3 Příklad o dělení dvoumetrových tyčí vyřešte Řešení Simplexovou tabulku jsme již sestavili výše. Doplňme ji o řádek pro výpočet podílů. báze x´1 x´2 x´3 z Podíly
x1 1 -2 -1 -20 10
x2 1 -4 0 0 0
x´1 1 0 0 0 ×
x´2 0 1 0 0 ×
x´3 0 0 1 0 ×
bi 35 -52 -18 0
Začněme testem optimality výchozího základního řešení, které již obsahuje. Ve sloupci pravých stran požadujeme pouze nezáporná čísla, což ještě není splněno, toto řešení není primárně přípustné a je tedy třeba hledat lepší základní řešení duální úlohy. Nejnižší záporná pravá strana určí klíčový řádek, z báze vystoupí proměnná x´2, nejnižší absolutní hodnota podílů (dělíme pouze zápornými čísly klíčového řádku!) určí klíčový sloupec, do báze bude naopak nově zařazena proměnná x2. Po transformaci simplexové tabulky pomocí elementárních řádkových úprav (úplně stejně jako při primárně simplexovém algoritmu) dostáváme: báze x´1 x2 x´3 z Podíly
x1 ½ ½ -1 -20 20
x2 0 1 0 0 ×
x´1 1 0 0 0 ×
x´2 ¼ -¼ 0 0 ×
x´3 0 0 1 0 ×
bi 22 13 -18 0
Proveďme nejprve test optimality získaného základního řešení: pravá strana stále obsahuje záporné číslo, řešení není optimální, je přípustné pouze duálně. Přistupme k určení nové báze. Nejnižší záporná pravá strana určí klíčový řádek, z báze vystoupí proměnná x´3, nejnižší absolutní hodnota podílů určí klíčový sloupec, do báze bude naopak nově zařazena proměnná x1. Po transformaci simplexové tabulky dostáváme: báze x´1 x2 x1 z
x1 0 0 1 0
x2 0 1 0 0
x´1 1 0 0 0
x´2 ¼ -¼ 0 0
x´3 ½ ½ -1 -20
bi 13 4 18 360
Podíly × ×
Ve sloupci pravých stran už jsou pouze nezáporná čísla, podle testu optimality je tedy toto základní řešení optimální (je primárně i duálně přípustné). Z tabulky můžeme rovnou zapsat optimální řešení obou sdružených úloh:
uopt = (0; 0; 20; 0; 0)T. fmax = 360 xopt1 = (18; 4; 13; 0; 0)T, zmin = 360. 101
Nulové indexní číslo ve sloupci nezákladní neznámé x´2 signalizuje, že primární úloha má alternativní řešení, z čehož vyplývá, že duální úloha musí mít degenerované řešení, což nemusí být na první pohled zřejmé, pokud neuděláme diskusi o počtu nezákladních (volných) neznámých duální úlohy. (Matice adjungované soustavy k soustavě vlastních omezení duální úlohy je v kanonickém tvaru, h = 2, počet neznámých (strukturních i přídatných) n = 5, k obecnému vyjádření jejích řešení je tedy potřeba právě n – h = 3 volné (nezákladní) proměnné. Zapsané řešení duální úlohy uopt ovšem obsahuje o jednu nulu navíc, jde tedy skutečně o degeneraci.) Je tedy ještě třeba najít další alternativu optimálního řešení primární úlohy. K tomuto výpočtu již využijeme primárně simplexové metody. Určeme tedy novou bázi: jediný nezáporný podíl (který není nutné vyčíslit) určí klíčový řádek, do báze bude nově zařazena proměnná x´2, z báze bude naopak vyřazena proměnná x´1. Po transformaci simplexové tabulky dostáváme: báze x´2 x2 x1 z
x1 0 0 1 0
x´1 4 1 0 0
x2 0 1 0 0
x´2 1 0 0 0
x´3 2 1 -1 -20
bi 52 17 18 360
Z tabulky můžeme opět rovnou zapsat optimální řešení obou sdružených úloh:
uopt = (0; 0; 20; 0; 0)T. fmax = 360 xopt2 = (18; 17; 0; 52; 0)T, zmin = 360. A opět se dostáváme k obecnému zápisu všech optimálních řešení primární úlohy:
xopt = k.(18; 4; 13; 0; 0)T + (1-k).(18; 17; 0; 52; 0)T, k <0;1>. Odkud opět můžeme zformulovat slovní odpověď, jak již bylo učiněno dříve. Příklad 8.4 Ještě se vraťme ke slíbenému dokončení příkladu řešení duální úlohy o dělení dvoumetrových tyčí primárně simplexovou metodou, kde jsme neměli možnost, jak nalézt druhou alternativu optimálního řešení Řešení Po transformaci simplexové tabulky jsme dostali optimální řešení zapsaná v tabulce báze u3 u2 z Podíly
u1 -½ -¼ 13
u2 0 1 0 ×
u3 1 0 0 ×
102
u´4 1 0 18 ×
u´5 -½ ¼ 4 ×
ci 20 0 360
Zde na první pohled zřejmá degenerace jediného optimálního řešení duální úlohy uopt signalizovala, že optimální řešení úlohy s ní duálně sdružené bude alternativní, pomocí primárně simplexové metody ovšem nebylo možné pokrčovat ve výpočtu. Toto nám umožní duálně simplexová metoda. Jako klíčový řádek zvolíme ten, který obsahuje nulovou základní neznámou, která degeneraci duální úlohy (a tedy alternativitu primární úlohy) signalizovala. Klíčový sloupec určí jediný podíl (který opět není třeba vyčíslit). Po transformaci dostáváme báze u3 u2 z
u1 0 1 0
u2 -2 -4 52
u3 0 0 0
u´4 1 0 18
u´5 -1 -1 17
ci 20 0 360
odkud už můžeme vektor alternativního řešení zapsat. Samozřejmě, že dostáváme stejné výsledky jako při použití jiných metod. Příklad 8.5 Pokud je to možné, řešte zadanou úlohu duálně simplexovou metodou. z = 50x1 +30x2 +26x3 … min. 5x1 10x1
+x2 +2x2 x1,2,3
+x3 +4x3
≥ ≤ ≥
30 40 0
Řešení Protože jde o minimalizační úlohu a žádný cenový koeficient není záporný, lze k řešení úlohy duálně simplexovou metodu použít. Pro zápis do simplexové tabulky upravíme vlastní omezení na typ „≤“, každé vyrovnáme přičtením přídatné neznámé, čímž dostaneme kanonický tvar a anulujeme účelovou funkci. V sestavené simplexové tabulce báze u´4 u´5 z Podíly
u1 -5 10 -50 10
u2 -1 2 -30 30
u3 -1 4 -26 26
u´4 1 0 0 ×
u´5 0 1 0 ×
ci -30 40 0
určíme podle algoritmu duálně simplexové metody klíčový. Po transformaci dostáváme: báze u1 u´5 z Podíly
u1 1 0 0 ×
u2 1/5 0 -20 ×
u3 1/5 2 -16 ×
u´4 -1/5 2 -10 ×
u´5 0 1 0 ×
ci 6 -20 300
Záporná pravá strana určí klíčový řádek, z báze by měla vystoupit neznámá u1, ale neexistuje žádný podíl, nelze tedy vybrat klíčový sloupec a určit neznámou, která by měla do báze nově vstoupit. Tato skutečnost signalizuje skutečnost, že duální úloha má neomezenou hodnotu účelové funkce (existuje nekonečně mnoho přípustných řešení, ale neexistuje řešení 103
optimální). Z duality vyplývá, že primární úloha nemá přípustné řešení, optimální obou úloh neexistuje. 8.1.5 Shrnutí V předcházejících kapitolách jsme se věnovali algebraickému řešení úloh LP. Možnost řešit jakoukoli úlohu LP pomocí primárně simplexové metody jsme doplnili o znalosti vztahů vyplývajících z duality a nabídnout tak možnost řešit úlohu duální k úloze LP, z níž lze řešení úlohy LP také vyčíst, v této kapitole jsme potom tuto metodu zkrátili a popsali jsme duálně simplexový algoritmus, který umožnil řešit duální úlohu přímo v simplexové tabulce primární úlohy LP. Duálně simplexovou metodu je možné použít pouze pro maximalizační úlohy s nekladnými cenami resp. pro minimalizační úlohy s nezápornými cenami. Jelikož není požadována primární přípustnost výchozího základního řešení, všechna vlastní omezení lze upravit na typ „≤“ a vyhnout se tak při sestavování kanonického tvaru použití umělých neznámých. Duálně simplexová metoda je tak vždycky jednofázová. Ve II. fázi probíhá algoritmizovaná optimalizace podle duální účelové funkce f. Výše byly popsány čtyři možné typy řešení dvojice duálně sdružených úloh, tedy opět všechny čtyři typy řešení primární úlohy LP jakou u primárně simplexové metody. Při hledání optimálního řešení úlohy LP má tedy řešitel k dispozici až tři možné způsoby: 1) přímé řešení zadané úlohy LP primárně simplexovou metodu (dle okolností jednofázovou nebo dvoufázovou), 2) nepřímé řešení úlohy s ní duálně sdružené primárně simplexovou metodou, 3) řešení úloh duálně simplexovou metodou (vždy jednofázovou).
104
9. kapitola
CELOČÍSELNÉ PROGRAMOVÁNÍ
Dosud jsme všechny úlohy LP řešili pouze s požadavkem nezápornosti strukturních neznámých, aniž bychom kladli důraz na nedělitelnost některých komodit, což jsme si mohli dovolit pouze díky „pěkným“ výsledkům. V úlohách LP ale často přímo z formulace ekonomického modelu vyplývá požadavek, aby hodnoty všech nebo některých proměnných byly nejenom nezáporné, ale také pouze z oboru celých čísel. Vyjadřuje-li strukturní proměnná např. počet kusů vyrobených hrnečků, počet prken rozřezaných podle jisté varianty, počet porcí v jídelníčku apod., je požadavek celočíselnosti hodnot zcela opodstatněný. Úlohy LP doplněné o podmínky celočíselnosti nazýváme úlohami celočíselného (lineárního) programování. Jsou-li podmínky celočíselnosti kladeny na všechny proměnné matematického modelu, hovoříme o ryze celočíselných úlohách LP, jsou-li kladeny jenom na některé z nich, hovoříme o smíšeně celočíselných úlohách LP. Řešení celočíselných úloh LP se v praxi vyskytují velmi často, jejich řešení je ovšem výpočetně velmi náročné. Nelze pro ně použít standardní algoritmus simplexové metody, neboť vyhledává optimální řešení na množině všech nezáporných reálných čísel. 9 Kvůli názornosti se nejprve věnujme řešení úloh celočíselného programování graficky.
9.1 Grafické řešení celočíselné úlohy LP Příklad 9.1 Nalezněte graficky optimální řešení úlohy LP zadané matematickým modelem z =150x1 +100x2 … max. 4x1 +2x2 ≤ 12 3x1 +4x2 ≤ 13 x1,2,3 ≥ 0 x1,2,3 Z Tento model budeme v dalším textu značit symbolem LPC, vektor optimálního řešení xC, odpovídající hodnotu účelové funkce zC. Při zobrazení v Gaussově rovině odpovídají vlastní omezení dvěma polorovinám, jejichž hraniční přímky zobrazíme v grafu např. pomocí úsekového tvaru, podmínku nezápornosti splňují pouze čísla v I. kvadrantu grafu, podmínka celočíselnosti množinu přípustných řešení omezuje pouze na body ležící na průsečících celočíselné sítě grafu. Množinu přípustných řešení označíme X, jedná se o 10 izolovaných bodů. Viz Obrázek 9.1. Volbou vhodné hladiny hodnoty účelové funkce z získáme odpovídající izokvantu, kterou rovnoběžně posuneme ve směru zvyšování hodnoty účelové funkce do nejzazšího bodu množiny X, který odpovídá optimálnímu řešení zadané celočíselné úlohy LP. Označíme jej OC, příslušný vektor xC = (3; 0), hodnota účelové funkce pro toto řešení
zC = 150.3 + 100.0 = 450.
105
Obrázek 9.1 – Celočíselné optimální řešení - graficky
Poznámka: Porovnejme toto řešení s řešením úlohy vzniklé ze zadané úlohy vypuštěním podmínek celočíselnosti, označme ji symbolem LP(0). Množinu přípustných řešení tvoří mnohoúhelník (polygon přípustných řešení), který označíme X0. Posuňme opět zobrazenou izokvantu rovnoběžně ve směru zvyšování hodnoty účelové funkce do nejzazšího bodu množiny X0, tedy do jednoho z jích vrcholů, který odpovídá optimálnímu řešení úlohy LP(0). Označíme jej O0, příslušný vektor x0 = (2,2; 1,6), hodnota účelové funkce pro toto řešení je
z0 = 150.2,2 + 100.1,6 = 490.
Obrázek 9.2 - Optimální řešení bez podmínek celočíselnosti - graficky
106
Nyní je zřejmé, že k nalezení celočíselného řešení úlohy LP nepostačí zaokrouhlení (resp. zaokrouhlení dolů) hodnot proměnných neceločíselného řešení jednoduše nalezeného simplexovou metodou, dostali bychom vektor xz = (2; 2) s hodnotou účelové funkce zz = 150.2 + 100.2 = 500, který reprezentuje nepřípustné řešení, resp. xzd = (2; 1) s hodnotou účelové funkce zzd = 150.2 + 100.1 = 400, která je nižší, než u řešení optimálního. Ukažme proto dva základní typy speciálně navržených algoritmů pro řešení celočíselných úloh LP:
9.2 Kombinatorické metody Univerzálním nástrojem pro řešení většiny typů těchto úloh jsou metody kombinatorické, věnujme se pouze ryze celočíselným úlohám, které mají pouze konečný počet kombinací přípustných celočíselných hodnot proměnných. V předchozím příkladě jich bylo 10, v obecném případě jich ovšem může být velmi mnoho. Podstatou kombinatorických metod je efektivní prohledávání těchto kombinací, principů, na kterých jsou založeny, je velké množství. My se budeme věnovat jedinému zástupci této skupiny metod. 9.2.1 Metoda větvení a mezí Jedna z kombinatorických metod, navržená autorkami Land a Doig, je určena pro ryze i smíšeně celočíselné úlohy LP za předpokladu, že ceny v účelové funkci jsou vždy celá čísla. Algoritmus Nejprve vypočítáme optimální řešení úlohy LP(0) se zanedbáním podmínek celočíselnosti, např. primárně simplexovou metodou, kterou lze použít vždy, tedy vektor optimálního řešení x0 = (x1; x2, …, xn) a příslušnou hodnotu z0. Pokud je toto řešení celočíselné, výpočet končí. Pokud nalezené řešení není celočíselné, přistoupíme k větvení množiny polygonu přípustných řešení neceločíselné úlohy X0 na dvě podmnožiny X1 a X2. Z vektoru x0 vybereme jednu libovolnou proměnnou, která porušuje podmínku celočíselnosti, např. xk, jejíž hodnota ve vektoru x0 je rovna xk0. Množina X1 vznikne doplněním množiny X0 o podmínku xk ≥ [ xk0] + 1,
(9.1)
množina X2 vznikne doplněním množiny X0 o podmínku xk ≤ [ xk0]
(9.2)
V každé z obou větví je vypočteno optimální řešení neceločíselné úlohy a proces větvení pokračuje tak dlouho, dokud není nalezeno optimální celočíselné řešení, jeho optimalita je potvrzena porovnáváním horních mezí hodnoty účelové funkce celočíselné úlohy v jednotlivých větvích. Každá z větví může být ukončena jedním z následujících způsobů: 1) ve větvi je dosaženo celočíselného řešení, 2) ve větvi neexistuje žádné přípustné řešení, 3) ve větvi je nalezeno neceločíselné řešení, ale horní mez pro hodnotu účelové funkce odpovídající tomuto řešení je nižší ne hodnota účelové funkce celočíselného řešení, již dříve nalezeného v některé z ostatních větví. Po uzavření všech větví celý proces větvení končí, nejlepší nalezené celočíselné řešení (pokud existuje) je hledaným optimálním řešením celočíselné úlohy LPC. 107
Příklad 9.2 Nalezněte metodou větvení a mezí optimální řešení úlohy LP zadané matematickým modelem z =150x1 +100x2 … max. 4x1 +2x2 ≤ 12 3x1 +4x2 ≤ 13 x1,2,3 ≥ 0 x1,2,3 Z
Řešení Jelikož bude třeba najít optimální řešení většího počtu úloh LP, nebudeme uvádět průběh výpočtu, ale vždy jen nalezené optimální řešení (bude-li existovat) a hodnotu účelové funkce. Nejprve vyřešíme úlohu LP(0) se zanedbáním podmínek celočíselnosti, z =150x1 +100x2 … max. 4x1 +2x2 ≤ 12 3x1 +4x2 ≤ 13 x1,2,3 ≥ 0 Dostáváme optimální řešení x0 = (2,2; 1,6) s příslušnou hodnotou z0 = 490. Jelikož nejde o celočíselné řešení, je třeba přistoupit k větvení množiny přípustných řešení X0 (polygonu přípustných řešení) podle jedné z neceločíselných proměnných, vyberme např. x2 = 1,6. Protože [x20] = 1, podle (9.3) a (9.2) zkonstruujeme k x2 nejbližší nižší horní a nejbližší vyšší dolní celočíselnou mez x2 ≤ 1 a x2 ≥ 2, (pás mezi nimi můžeme při prohledávání vynechat, neleží v něm žádné celočíselné řešení, což je dobře patrné z grafického znázornění, viz Obrázek 9.3). Každou zvlášť doplníme mezi vlastní omezení úlohy LP(0), a získáme tak úlohy LP(1) a LP(2) LP(1): z =150x1 +100x2 … max. 4x1 +2x2 ≤ 12 3x1 +4x2 ≤ 13 x2 ≤ 1 x1,2,3 ≥ 0 s optimálním řešením x1 = (2,5; 1) s příslušnou hodnotou z1 = 475 a LP(2): z =150x1 +100x2 … max. 4x1 +2x2 ≤ 12 3x1 +4x2 ≤ 13 x2 ≥ 2 x1,2,3 ≥ 0 s optimálním řešením x2 = (1, 6 ; 2) s příslušnou hodnotou z2 = 450.
108
Obrázek 9.3 – První větvení množiny přípustných řešení
Ani jedna z větví nebude uzavřena, hodnota účelové funkce na množině X1 nebude vyšší než 475, na množině X2 nebude vyšší než 450, pro další větvení je tudíž perspektivnější množina X1, je pravděpodobné (i když ne jisté), že zde bude nalezeno celočíselné řešení s lepší hodnotou účelové funkce. Přistoupíme tedy k větvení množiny přípustných řešení X1 podle jediné neceločíselné proměnné x1 = 2,5. Protože [ x11] = 2, zkonstruujeme k x1 nejbližší nižší horní a nejbližší vyšší dolní celočíselnou mez x1 ≤ 2 a x1 ≥ 3, (pás mezi nimi můžeme při prohledávání vynechat opět vynechat). Každou zvlášť doplníme mezi vlastní omezení úlohy LP(1), a získáme tak úlohy LP(3) a LP(4) LP(3): z =150x1 +100x2 … max. 4x1 +2x2 ≤ 12 3x1 +4x2 ≤ 13 x2 ≤ 1 x1 ≤ 2 x1,2,3 ≥ 0 s optimálním řešením x3 = (2; 1) s příslušnou hodnotou z3 = 400, bylo dosaženo celočíselného řešení, větvení na množině X3 je ukončeno podle pravidla 1).
109
LP(4): z =150x1 +100x2 … max. 4x1 +2x2 ≤ 12 3x1 +4x2 ≤ 13 x2 ≤ 1 x1 ≥ 3 x1,2,3 ≥ 0 s optimálním řešením x4 = (3; 0) s příslušnou hodnotou z4 = 450, bylo dosaženo celočíselného řešení, větvení na množině X4 je ukončeno podle pravidla 1).
Obrázek 9.4 – Druhé větvení množiny přípustných řešení
Nyní můžeme ukončit také větvení na množině X2, protože hodnota účelové funkce na této množině nebude vyšší než 450 a tudíž není možné dosáhnout lepšího řešení než x4 na množině X4. Tak jsme našli nejlepší celočíselné řešení zadané úlohy LPC popsané vektorem xC = (3; 0) s příslušnou hodnotou zC = 450.
9.3 Metody sečných nadrovin Metody vhodné pro ryze i smíšeně celočíselné úlohy LP, vycházejí z množiny přípustných řešení úlohy LP bez podmínek celočíselnosti. Pro množinu přípustných řešení úlohy LP bez podmínek celočíselnosti je nejprve pomocí simplexové metody nalezeno optimální řešení. Pokud není celočíselné, je v každém dalším kroku konstruováno jedno další omezení úlohy, které doplní soustavu vlastních omezení úlohy LP a oddělí z této množiny přípustných řešení podmnožinu, která neobsahuje žádné celočíselné řešení. Pro nově vzniklou soustavu vlastních omezení je opět simplexovou metodou vypočteno optimální řešení, dělení pokračuje tak dlouho, dokud není odděleno optimální celočíselné řešení úlohy. 110
9.3.1 Gomoryho metoda sečných nadrovin Typickým zástupcem této skupiny metod je Gomoryho metoda sečných nadrovin pro řešení ryze celočíselných úloh LP, která byla historicky první metodou navrženou pro řešení celočíselných úloh LP v simplexové tabulce. Algoritmus Nejprve vypočítáme optimální řešení úlohy LP(0) se zanedbáním podmínek celočíselnosti, např. primárně simplexovou metodou, kterou lze použít vždy, tedy vektor optimálního řešení x0 = (x1; x2, …, xn) a příslušnou hodnotu z0. Pokud je toto řešení celočíselné, výpočet končí. Pokud nalezené řešení není celočíselné, doplní se k soustavě vlastních omezení tzv. řezná nadrovina. Předpokládejme, že základní proměnná v i-tém řádku simplexové tabulky porušuje podmínku celočíselnosti. Nově konstruovanou podmínku píšu ve tvaru (9.3)
kde koeficienty rij jsou celočíselné zbytky strukturních koeficientů i-tého řádku s. tabulky, pravá strana rovnice ri0 je celočíselný zbytek hodnoty pravé strany v i-tém řádku s. tabulky, proměnná xn+1 je nově zavedená přídatná proměnná k tomuto novému omezení. V každém kroku doplníme do simplexové tabulky jednu řeznou nadrovinu, kvůli záporné hodnotě pravé strany dostáváme vždy primárně nepřípustné řešení a duálně simplexovou metodou je nalezeno optimum nové úlohy. Po konečném počtu kroků je nalezeno celočíselné řešení úlohy nebo tato řešení konvergují k optimálnímu celočíselnému řešení. Jelikož v každém kroku přibude v simplexové tabulce jedno omezení a jedna přídatná neznámá, mohou vzniklé simplexové tabulky nabývat i u původně poměrně malých matematických modelů úloh LP značných rozměrů, z čehož vyplývá velká výpočetní náročnost metody i při využití speciálních softwarů. Příklad 9.3 Nalezněte optimální řešení úlohy LPC zadané matematickým modelem Gomoryho metodou sečných nadrovin. z =150x1 +100x2 … max. 4x1 +2x2 ≤ 12 3x1 +4x2 ≤ 13 x1,2,3 ≥ 0 x1,2,3 Z Řešení Nejprve vyřešme primárně simplexovou metodu úlohu LP(0) bez podmínek celočíselnosti, po dvou krocích dostaneme neceločíselné optimální řešení x0 = (2,2; 1,6), které je zobrazené v simplexové tabulce. Kvůli přehlednosti výsledků vyznačíme ve všech tabulkách průběžných kroků řešení barevně hodnoty základních strukturních proměnných a aktuální hodnotu účelové funkce. 111
báze x1 x2
x1
x2
x3
x4
bi
1 0
0 1
2/5 - 3/10
- 1/5 2/5
2 1/5 1 3/5
z
0
0
30
10
490
Zbytky
0
0
2/5
4/5
1/5
Vyberme jakoukoli jeho neceločíselnou základní neznámou (domluvme se, že vždy vybereme první neceločíselnou základní neznámou podle pořadí v aktuální bázi), tedy x1 = 2,2, která je vyjádřena v prvním řádku, pro jehož koeficienty nyní určíme celočíselné zbytky, tedy zbytky po odečtení jejich celé části, a zapíšeme je do řádku pod tabulkou. Platí 1 = 1 + 0; 0 = 0 + 0; 2/5 = 0 + 2/5; -1/5 = -1 + 4/5; 2 1/5 = 2 + 1/5, pomocí těchto koeficientů zkonstruujeme novou sečnou nadrovinu
s novou přídatnou neznámou x5. Tuto rovnici je třeba doplnit k právě vyřešenému matematickému modelu, nově vzniklý matematický model označíme LP5. Takto získáme duálně nepřípustné řešení a pomocí duálně simplexové metody tuto úlohu optimalizujeme. Dostáváme simplexovou tabulku báze x1 x2 x5
x1
z Podíly x1 x2 x4
x2
x3
x4
x5
bi
1 0 0
0 1 0
2/5 - 3/10 - 2/5
- 1/5 2/5 - 4/5
0 0 1
2 1/5 1 3/5 - 1/5
0
0
30
10
0
490
75
12 1/2
×
×
×
–
1 0
0 1
1/2 - 1/2
0 0
- 1/4 1/2
2 1/4 1 1/2
0
0
1/2
1
-1 1/4
1/4
z
0
0
25
0
12 1/2 487 1/2
Zbytky
0
0
1/2
0
3/4
1/4
obsahující optimální řešení nové úlohy x5 = (2,25; 1,5), které stále není celočíselné, uvedený postup opět zopakujeme: vyberme ještě stále neceločíselnou proměnnou x1 = 2,25, určíme celočíselné zbytky, ze kterých zkonstruujeme novou sečnou nadrovinu
s novou přídatnou neznámou x6. Doplněním této rovnice do matematického modelu dostaneme úlohu LP6, získáme duálně nepřípustné řešení a pomocí duálně simplexové metody tuto úlohu opět optimalizujeme. Dostáváme další simplexovou tabulku
112
báze x1 x2 x4 x6
x1
z Podíly x1 x2 x4 x5
x2
x3
x4
x5
x6
bi
1 0 0 0
0 1 0 0
1/2 - 1/2 1/2 - 1/2
0 0 1 0
- 1/4 1/2 -1 1/4 - 3/4
0 0 0 1
0
0
25
0
12 1/2
0 487 1/2
×
×
50
×
16 2/3
×
2 1/4 1 1/2 1/4 - 1/4 ×
1 0 0 0
0 1 0 0
2/3 - 5/6 1 1/3 2/3
0 0 1 0
0 0 0 1
- 1/3 2/3 -1 2/3 -1 1/3
2 1/3 1 1/3 2/3 1/3
z
0
0
16 2/3
0
0
16 2/3 483 1/3
Zbytky
0
0
2/3
0
0
2/3
1/3
obsahující optimální řešení nové úlohy x6 = ( 2, 3;1, 3 ), které stále není celočíselné, uvedený postup dále opakujeme: Vyberme první neceločíselnou základní proměnnou x1 = 2, 3 , určíme celočíselné zbytky, ze kterých zkonstruujeme novou sečnou nadrovinu
s novou přídatnou neznámou x7. Tuto rovnici je třeba doplnit k řešenému matematickému modelu, který označíme LP6, čímž získáme duálně nepřípustné řešení a pomocí duálně simplexové metody tuto úlohu opět optimalizujeme. Dostáváme simplexovou tabulku báze x1 x2 x4 x5 x7
x1
z Podíly x1 x2 x4 x5 x3
x2
x3
x4
x5
x6
1 0 0 0 0
0 1 0 0 0
0 - 5/6 1 1/3 2/3 - 2/3
0 0 1 0 0
0 0 0 1 0
0 2/3 -1 2/3 -1 1/3 - 2/3
0
0
16 2/3
0
0
16 2/3
×
×
25
×
×
25
x7
bi
2 1/2 0 0 0 1
-2 1 1/3 2/3 1/3 - 1/3
0 483 1/3 ×
–
1 0 0 0 0
0 1 0 0 0
5/6 0 0 0 1
0 0 1 0 0
0 0 0 1 0
0 1 1/2 -3 -2 1
0 -1 1/4 2 1 -1 1/2
- 1/3 1 3/4 0 0 1/2
z
0
0
0
0
0
0
25
475
Zbytky
0
0
0
0
0
1/2
3/4
3/4
obsahující optimální řešení nové úlohy x = ( 1, 3;1,75 ), které stále není celočíselné. Analogickým postupem získáme po dalších třech krocích, které již popíšeme pouze rovnicemi postupně doplněných sečných nadrovin 7
113
pro LP8:
,
pro LP9: a pro LP10:
,
až v úloze LP10, která je již celkem rozsáhlá, získáme první celočíselné optimální řešení reprezentované touto simplexovou tabulkou báze x1 x2 x4 x5 x7 x6 x3 x8 Z
x1
x2
x3
x4
x5
x6
x7
x8
x9
x10
bi
1 0 0 0 0 0 0 0
0 1 0 0 0 0 0 0
0 0 0 0 0 0 1 0
0 0 1 0 0 0 0 0
0 0 0 1 0 0 0 0
0 0 0 0 0 1 0 0
0 0 0 0 1 0 0 0
0 0 0 0 0 0 0 1
2 -3 6 4 0 2 -2 1
-1 2/3 2 2/3 -5 2/3 -4 - 2/3 -2 1/3 1 1/3 -1 2/3
3 0 4 3 1 2 0 1
0
0
0
0
0
0
0
0
0
16 2/3
450
Tak jsme opět našli nejlepší celočíselné řešení zadané úlohy LPC popsané vektorem xC = (3; 0) s příslušnou hodnotou zC = 450. 9 Poznámka: S rozvojem výpočetní techniky je samozřejmě stále jednodušší obdobné metody aplikovat, jak se ovšem uvádí ve [2], řešení úloh větších rozměrů může být výpočetně velmi náročné. Pro ilustraci se uvádí, že řešení úlohy LP s několika tisíc proměnnými a stovkami omezujících podmínek bez požadavku celočíselnosti trvá na běžném osobním počítači s použitím kvalitního softwaru zpravidla pouze několik vteřin, řešení stejně rozsáhlé úlohy, ovšem s podmínkami celočíselnosti, na stejném počítači a s pomocí stejného programu může trvat několik dnů či týdnů, pokud se výpočet vůbec podaří ukončit. 9
114
POSTOPTIMALIZAČNÍ ANALÝZA
10. kapitola
10.1 Obecný tvar simplexové tabulky 10.1.1 Obecný maticový zápis výchozí simplexové tabulky Pro jednoduchost nejprve uvažujme úlohu LP řešitelnou jednofázovou primárně simplexovou metodou, pro názornost uveďme znovu výchozí simplexovou tabulku z Příkladu 6.1, Tabulka 10.1 - Výchozí simplexová tabulka - příklad
báze x´3 x´4 x´5 z
x1 2 1 0 -400
x2 1 1 1 -600
x´3 1 0 0 0
x´4 0 1 0 0
x´5 0 0 1 0
bi 6 000 4 000 3 000 0
kterou můžeme logicky rozdělit na šest částí podle typu koeficientů, a tyto části zvlášť vyjádřit jako matice popř. vektory Obecný zápis výchozí simplexové tabulky znázorňuje schematicky Tabulka 10.2, Tabulka 10.2 - Výchozí simplexová tabulka – obecný tvar
báze x´n+1 … x´n+m z
…
x1
xn
x´n+1
…
x´n+m
bi
A
I
b
-cT
oT
0
postupně jej tvoří tyto objekty: A … matice strukturních koeficientů, I … jednotková matice koeficientů zavedených přídatných proměnných, b … vektor pravých stran vlastních omezení, –cT… vektor koeficientů anulované účelové funkce (vektor indexních čísel), oT … nulový m-rozměrný vektor, 0 … výchozí hodnota účelové funkce. 10.1.2 Obecný maticový zápis výsledné simplexové tabulky Po provedení konečného počtu iterací podle simplexového algoritmu dostáváme matici, reprezentující optimální řešení zadané úlohy LP. V Příkladu 6.1. jsme po dvou iteracích dospěli ke tvaru Tabulka 10.3 - Výsledná simplexová tabulka - příklad
báze x´3 x1 x2 z
x1 0 1 0 0
x2 0 0 1 0
x´3 1 0 0 0
115
x´4 -2 1 0 400
x´5 1 -1 1 200
bi 1 000 1 000 3 000 2 200 000
Obecný maticový zápis výsledné simplexové tabulky je možné zapsat pomocí vztahů, ve kterých figuruje velmi důležitá matice: B-1… tzv. inverzní matice báze, matice, která zachycuje všechny ekvivalentní řádkové úpravy, které bylo nutno provést, abychom dospěli z výchozího tvaru simplexové tabulky ke tvaru výslednému. Z Tabulka 10.3 můžeme přímo přesně vyčíst, pomocí jakých úprav jsme z původního tvaru získali výsledný, jelikož jsou na jejich pozicích zaznamenány. 10 Příklad 10.1 Vyčtěte z Tabulky Tabulka 10.3, jakými úpravami jsme ji z Tabulky Tabulka 10.1 získali. Řešení První řádek výsledné simplexové tabulky jsme získali tak, že jsme od (jednonásobku) prvního řádku odečetli dvojnásobek druhého řádku a přičetli k nim třetí řádek výchozí tabulky, druhý řádek výsledné tabulky získáme odečtením třetího řádku od druhého řádku výchozí tabulky a třetí řádek jsme z výchozí tabulky pouze opsali. (Tuto skutečnost lze výpočtem jednoduše ověřit.) Dalším významným objektem je řádkový vektor tvořený indexními koeficienty pouze ve sloupcích základních neznámých optimálního řešení, a to v pořadí, v jakém se v této bázi vyskytují, tj. jak jsou v prvním sloupci zapsány. cBT… vektor cenových koeficientů základních proměnných. Obecný zápis výsledné simplexové tabulky znázorňuje schematicky Tabulka 10.4 Tabulka 10.4 - Výsledná simplexová tabulka – obecný tvar
báze x´n+1 … x´n+m z
x1
…
xn
x´n+1
…
x´n+m
bi
B-1A
B-1
B-1b
cBTB-1A – cT
cBTB-1
cBTB-1b
kterou postupně tvoří tyto objekty: B-1A … matice transformovaných strukturních koeficientů, B-1… inverzní matice báze, -1 B b… vektor hodnot základních neznámých, cBTB-1A – cT… vektor redukovaných cen, cBTB-1 … vektor stínových cen, cBTB-1b … optimální hodnota účelové funkce. Příklad 10.2 Dosazením do uvedených vztahů ověřte jejich platnost pro Příklad 6.1. Řešení Z výchozího tvaru vyčteme 2 1 6000 A = 1 1 , b = 4000 , cT = (400; 600) 0 1 3000 a z výsledného tvaru vyčteme, že bázi tvoří po řadě proměnné x‘3, x1, x2 a 116
1 2 1 B-1 = 0 1 1 , cBT = (0; 400; 600). 0 0 1 Po dosazení do všech vzorců dostáváme očekávané výsledky: pro transformované strukturní koeficienty 1 2 1 2 1 0 0 -1 B A = 0 1 1 1 1 1 0 , 0 0 1 0 1 0 1 pro hodnoty základních neznámých 1 2 1 6000 1000 -1 B b = 0 1 1 4000 1000 , 0 0 1 3000 3000 pro stínové ceny (je praktické je určit dříve než ceny redukované) 1 2 1 T -1 cB B = (0; 400; 600) 0 1 1 = (0; 400; 200), 0 0 1 pro redukované ceny 2 1 T -1 T T -1 T cB B A – c = (cB B )A – c = (0; 400; 200) 1 1 - (400; 600) = (400; 600) - (400; 600) = 0 1
0 0 cB (B A) – c = (0; 400; 600) 1 0 - (400; 600) = = (400; 600) - (400; 600) = (0; 0) 0 1 a pro optimální hodnotu účelové funkce 6000 1000 T -1 T -1 T -1 cB B b = (cB B )b = (0; 400; 200) 4000 = cB (B b) = (0; 400; 600) 1000 = 2200000 . 3000 3000 T
-1
T
Maticové vyjádření výpočtů v simplexové tabulce je základem pro vytváření počítačových programů výpočetní obdoby aplikace algoritmu simplexové metody. Poznámka: V úlohách s některým vlastními omezeními typu „≥“ nebo „=“ vedoucích na použití dvoufázové simplexové metody sice obvykle nejsou jednotkové sloupce tvořící kanonický tvar výchozí matice uspořádány vedle sebe jako I, ale jistě nebude problém přeskládat jejich obrazy z výsledného tvaru matice ve správném pořadí. Pokud by už byly umělé proměnné po ukončení I. fáze úprav z matice vymazány, je možné vyčíst je též z odpovídajících sloupců přídatných neznámých, ovšem s opačnými koeficienty (jejich vzory totiž neobsahovaly číslo 1 ale číslo -1). U řádků vzešlých z vlastních omezení typu „=“ ovšem není odpovídající sloupec základní umělé neznámé čím nahradit (toto vlastní omezení nebylo třeba vyrovnávat pomocí přídatné neznámé). 117
Příklad 10.3 Z výchozího a výsledného tvaru simplexové tabulky vypište matici báze B-1. báze x´3 y1 y2 z z´
x1 1 2 1 -20 3
x2 1 4 0 0 4
x´3 1 0 0 0 0
x´4 0 -1 0 0 -1
x´5 0 0 -1 0 -1
y1 0 1 0 0 0
y2 0 0 1 0 0
bi
báze x´3 x2 x1 z z´
x1 0 0 1 0 0
x2 0 1 0 0 0
x´3 1 0 0 0 0
x´4 ¼ -¼ 0 0 0
x´5 ½ ½ -1 -20 0
y1 -¼ ¼ 0 0 -1
y2 -½ -½ 1 20 -1
bi
35 52 18 0 70
13 4 18 360 0
Řešení Z obrazů sloupců základních neznámých x´3, y1, y2 v tomto pořadí poskládám matici
B 1
1 1 1 4 2 1 1 0 . 4 2 0 0 1
Pokud by už byly šedě vyznačené umělé položky z tabulky vymazány, poskládám tutéž matici po řadě z obrazů sloupců základní neznámé x´3 a opačných hodnot obrazů sloupců přídatných neznámých x´4 x´5, jelikož se jejich výchozí podoby (vzory) lišily od jednotkových sloupců pouze ve znaménku. Právě uvedené vztahy můžeme také využít při dodatečných analýzách dosaženého optimálního řešení úlohy LP, klademe-li si otázku, jaký vliv by na výsledek měla změna některé kapacity popř. ceny již v zadání úlohy. Těmto otázkám se věnuje tzv. analýza citlivosti optimálního řešení (postoptimalizační analýza). Výše uvedené vzorce také dávají jednoduchou odpověď na otázku, zda by bylo nutné celý příklad po této změně znovu celý přepočítat, nebo je-li možné využít dílčích již dosažených výsledků.
10.2 Analýza citlivosti pravých stran 10.2.1 Změna jedné kapacity Nejprve tedy uvažujme, jak by se změnila výsledná simplexová tabulka původní úlohy, kdyby se v jejím matematickém modelu změnila hodnota pravé strany v jednom z vlastních omezení. Ve výchozí simplexové tabulce by došlo pouze ke změně v oblasti vektoru b. Za předpokladu, že bychom s výchozí tabulkou nové úlohy LP provedli totožné početní operace, jako při řešení úlohy původní, není třeba procházet celý výpočet znovu. Změna vektoru b se projeví pouze ve dvou oblastech výsledné simplexové tabulky, vyskytuje se pouze v obecném vyjádření hodnot základních neznámých optimálního řešení a v obecném vyjádření optimální hodnoty účelové funkce. Stačí tedy pro nové souřadnice vektoru b znovu spočítat pouze B-1b a cBTB-1b, všechny ostatní koeficienty zůstanou stejné. 118
Příklad 10.4 Firmě na výrobu plátů se podařilo navýšit časový fond práce zaměstnanců o 1 000 hodin oproti původním 4 000 hodin. Jak se změní optimální výrobní program oproti předchozímu řešení z Příkladu 6.1 ? Řešení Pravá strana druhého vlastního omezení je nyní 5 000 místo původních 4 000, výchozí simplexová tabulka nové úlohy báze x´3 x´4 x´5 z
x1 2 1 0 -400
x2 1 1 1 -600
x´3 1 0 0 0
x´4 0 1 0 0
x´5 0 0 1 0
bi 6 000 5 000 3 000 0
Pokud bychom použili pří úpravě této tabulky úplně stejný postup jako při řešení původní úlohy, dosáhli bychom tvaru, kde jsou všechny koeficienty, kromě posledního sloupce, shodné s tvarem výsledné tabulky původní úlohy. báze x´3 x1 x2 z
x1 0 1 0 0
x2 0 0 1 0
x´3 1 0 0 0
x´4 -2 1 0 400
x´5 1 -1 1 200
bi
6000 Je tedy nutné pouze dosadit nový vektor pravých stran b = 5000 do výrazů 3000 1 2 1 6000 1000 B b = 0 1 1 5000 2000 a 0 0 1 3000 3000 1000 T -1 T -1 cB B b = cB (B b) = (0; 400; 600) 2000 = 2600000 . 3000 Provedeme-li test optimality, záporná základní neznámá znamená, že odpovídající simplexová tabulka obsahuje primárně nepřípustné základní řešení. -1
báze x´3 x1 x2 z
x1 0 1 0 0
x2 0 0 1 0
x´3 1 0 0 0
x´4 -2 1 0 400
x´5 1 -1 1 200
bi -1 000 2 000 3 000 2 600 000
Pomocí duálně simplexové metody je třeba pokračovat v optimalizaci. Dostaneme výslednou simplexovou tabulku nové úlohy, 119
báze x´4 x1 x2 z
x1 0 1 0 0
x2 0 0 1 0
x´3 -0,5 0,5 0 200
x´4 1 0 0 0
x´5 -0,5 -0,5 1 400
bi 500 1 500 3 000 2 400 000
která už obsahuje optimální řešení zapsané vektorem
xopt = (1 500; 3 000; 0; 500; 0)T, a odpovídající optimální hodnota účelové funkce zmax = 2 400 000. V tomto případě můžeme konstatovat, že změna pravé strany byla tak velká, že způsobila změnu báze optimálního řešení: zatímco v původní úloze byla vyšší produkce plátů zastavena vyčerpáním časového fondu a rezervy maximálního prodeje obdélníkových plátů, v nové úloze byla vyšší produkce plátů znemožněna vyčerpáním speciální hmoty a rezervy maximálního odběru obdélníkových plátů. Poznámka: Dá se tušit, že při „nepatrné změně“ pravé strany zpravidla zůstane báze výsledné simplexové tabulky v nové úloze beze změny, dojde pouze k drobným změnám hodnot těchto základních neznámých, čemuž v praxi odpovídá, že zůstane zachováno složení výrobního programu (vyrábí se stejné typy výrobků, jako v úloze původní, ale v nepatrně odlišných množstvích a dosažení lepší hodnoty účelové funkce zamezí stejné výrobní činitele, jako v úloze původní.) Naopak při „velké změně“ pravé strany může dojít ke změně báze, a tedy dokonce ke změně druhů výrobků zahrnutých do výrobního programu či změně vyčerpaných výrobních činitelů. Naším dalším úkolem bude vymezit hranice pro změnu jednotlivých pravých stran, aby byla báze optimálního řešení zachována. 10.2.2 Intervaly stability pro kapacity Při změněném zadání aplikujeme zcela stejný postup, přičemž požadujeme, aby mělo výsledné základní řešení po tomto přepočtu stejné vlastnosti, jako výsledné řešení úlohy původní – aby bylo opět řešením optimálním. Zřejmě postačí požadovat, aby nedošlo k porušení primární přípustnosti, k porušení duální přípustnosti dojít nemůže, neboť koeficienty v indexním řádku zůstanou zachovány. Určení intervalů stability Má-li být zachována primární přípustnost, musí platit, že všechny složky vektoru základních proměnných nové úlohy musí být nezáporné. Pro určení velikosti přípustné změny i pravé strany původní úlohy bi, stačí řešit schematicky zapsanou maticovou rovnici B-1b ≥ 0
120
b1 : pro obecný vektor pravých stran nové úlohy b = bi i pro každé i = 1, …, m. : b m Příklad 10.5 Určete intervaly stability pro všechny pravé strany úlohy z předchozího příkladu. Řešení 1) Interval stability pro b1 Předpokládejme, že se pravá strana prvního vlastního omezení b1 změní o 1. Potom se vektor 6000 1 pravých stran z výsledné simplexové tabulky původní úlohy změní na b = 4000 , 3000 čemuž odpovídá změna vektoru základních neznámých z výsledné simplexové tabulky původní úlohy na
1 2 1 6000 1 1000 1 B b = 0 1 1 4000 1000 . 0 0 1 3000 3000 -1
Má-li jít o optimální řešení, musí tento vektor obsahovat pouze nezáporná čísla, dostáváme tak jednoduchou soustavu lineárních nerovnic o jediné neznámé
1000 1 1000 3000
0 0 0
Množina řešení této soustavy tvoří interval 1 1000; ) , množina všech přípustných hodnot první pravé strany b1 5000; ) je intervalem stability pro první pravou stranu. 2) Interval stability pro b2 6000 1 2 1 6000 1000 2 2 -1 Analogicky b = 4000 2 a B b = 0 1 1 4000 2 1000 2 . 0 0 3000 1 3000 3000 Odkud dostáváme soustavu lineárních nerovnic o jediné neznámé
1000 2 2 1000 2 3000
0 0 0
Odtud 2 1000;500 , a b2 3000;4500 je intervalem stability pro druhou pravou stranu. 121
3) Interval stability pro b3 6000 1 2 1 6000 1000 3 -1 Analogicky b = 4000 a B b = 0 1 1 4000 1000 3 . 0 0 3000 1 3000 3 3000 3 3 Odkud dostáváme soustavu lineárních nerovnic o jediné neznámé
1000 3 1000 3 3000 3
0 0 0
Odtud 3 1000;1000 , a b3 2000;4000 je intervalem stability pro třetí pravou stranu. Intervaly stability pro pravé strany úlohy z předchozího příkladu jsou b1 5000; ) ,
b2 3000;4500 , b3 2000;4000 . Ještě jednou zdůrazněme, že hovoříme vždy o změně jen jediné pravé strany. 10 Věta 10.1 Leží-li nová hodnota měněné pravé strany uvnitř jejího intervalu stability, po provedené změně řešení zůstane přípustné a tedy optimální. Nedojde ke změně báze. Leží-li nová hodnota měněné pravé strany na hranici jejího intervalu stability, po provedené změně řešení zůstane přípustné, ale bude degenerované. Nedojde ke změně báze. Leží-li nová hodnota měněné pravé strany vně jejího intervalu stability, po provedené změně bude řešení primárně nepřípustné. Přípustnosti dosáhneme primárně simplexovou metodou, optimální řešení úlohy bude mít jinou bázi, než řešení úlohy původní. Poznámka: Postup nalezení intervalů stability pravých stran lze algoritmicky zmechanizovat. Rovnou jej porovnávejte s předcházejícími výpočty: Spočteme podíly opačných hodnot základních neznámých a jednotlivých koeficientů inverzní matice báze, označíme (podtržením) navíc ty, kde se dělilo záporným číslem (což odpovídá otáčení znaménka nerovnosti při vyjadřování odpovídající neznámé v předchozím postupu). Tabulka 10.5 - Mechanický výpočet intervalů stability pravých stran
1 0 0
B-1 -2 1 0
1 -1 1
- cBTB-1b -1 000 -1 000 -3 000 Změna Dolní mez Horní mez Interval st. Dolní mez Horní mez
podíly -1 000 500 -1 000 × -1 000 1 000 × × -3 000 1 2 3 -1 000 -1 000 -1 000 × 500 1 000 b1 b2 b3 5 000 3 000 2 000 ∞ 4 500 4 000
Dolní meze hodnot 1,2,3 vybereme jako maxima z neoznačených hodnot, horní meze vybereme jako minima z podtržených hodnot, tedy analogicky hledání průniku dílčích intervalů. Intervaly stability získáme přičtením těchto mezí k hodnotám b1,2,3. 122
10.3 Analýza citlivosti cenových indexů 10.3.1 Změna jedné ceny Nejprve tedy uvažujme, jak by se změnila výsledná simplexová tabulka původní úlohy, kdyby se v jejím matematickém modelu změnila hodnota cenového indexu u jednoho typu výrobku. Ve výchozí simplexové tabulce by došlo pouze ke změně v oblasti vektoru -cT. Za předpokladu, že bychom s výchozí tabulkou nové úlohy LP provedli totožné početní operace, jako při řešení úlohy původní, není třeba procházet celý výpočet znovu. Změna vektoru cT se projeví pouze ve třech oblastech výsledné simplexové tabulky, vyskytuje se pouze v obecném vyjádření redukovaných a stínových cen a v obecném vyjádření optimální hodnoty účelové funkce. Stačí tedy pro nové souřadnice v indexním řádku znovu spočítat pouze cBTB-1A – cT, cBTB-1 a cBTB-1b, všechny ostatní koeficienty zůstanou stejné. Příklad 10.6 Jak se změní optimální výrobní program oproti původnímu řešení z Příkladu 6.1, pokud se budou obdélníkové pláty prodávat pouze za 200 Kč za kus místo původních 600 Kč za kus? Řešení Výchozí simplexová tabulka nové úlohy báze x´3 x´4 x´5 z
x1 2 1 0 -400
x2 1 1 1 -200
x´3 1 0 0 0
x´4 0 1 0 0
x´5 0 0 1 0
bi 6 000 4 000 3 000 0
Pokud bychom použili pří úpravě této tabulky úplně stejný postup jako při řešení původní úlohy, dosáhli bychom tvaru, kde jsou všechny koeficienty, kromě posledního řádku, shodné s tvarem výsledné tabulky původní úlohy. báze x´3 x1 x2 z
x1 0 1 0
x2 0 0 1
x´3 1 0 0
x´4 -2 1 0
x´5 1 -1 1
bi 1 000 1 000 3 000
Je tedy nutné dosadit nový vektor cenových koeficientů cT = (400; 300) a vektor cenových koeficientů základních proměnných cBT = (0; 400; 300) do výrazů 1 2 1 T -1 cB B = (0; 400; 300) 0 1 1 = (0; 400; -100), 0 0 1
2 1 cB B A – c = (0; 400; -100) 1 1 – (400; 300) = (400; 300) – (400; 300) = (0; 0) 0 1 T -1
T
123
6000 cBTB-1b = (0; 400; -100) 4000 = (1 300 000) 3000 Provedeme-li test optimality, záporné indexní číslo v maximalizační úloze znamená, že odpovídající simplexová tabulka obsahuje duálně nepřípustné základní řešení. báze x1 x2 x´3 x´4 x´5 bi x´3 0 0 1 -2 1 1 000 1 0 0 1 1 000 x1 -1 0 1 0 0 3 000 x2 1 0 0 0 400 1 300 000 z -100 Pomocí primárně simplexové metody je třeba pokračovat v optimalizaci. Dostaneme výslednou simplexovou tabulku nové úlohy, báze x´5 x1 x2 z
x1 0 1 0 0
x2 0 0 1 0
x´3 1 1 -1 100
x´4 -2 -1 2 200
x´5 1 0 0 0
bi 1 000 2 000 2 000 1 400 000
která už obsahuje optimální řešení zapsané vektorem
xopt = (2 000; 2 000; 0; 0; 1 000)T, a odpovídající optimální hodnota účelové funkce zmax = 1 400 000. V tomto případě můžeme konstatovat, že změna druhé ceny byla tak velká, že způsobila změnu báze optimálního řešení: zatímco v původní úloze byla vyšší produkce plátů zastavena vyčerpáním časového fondu a rezervy maximálního prodeje obdélníkových plátů, v nové úloze byla vyšší produkce plátů znemožněna vyčerpáním speciální hmoty a časového fondu zaměstnanců. Poznámka: Dá se tušit, že při „nepatrné změně“ ceny zpravidla zůstane báze výsledné simplexové tabulky v nové úloze beze změny, dojde pouze k drobným změnám hodnot redukovaných a stínových cen, čemuž v praxi odpovídá, že zůstane zachováno složení výrobního programu (vyrábí se stejné typy výrobků, jako v úloze původní, ale v nepatrně odlišných množstvích a dosažení lepší hodnoty účelové funkce zamezí stejné výrobní činitele, jako v úloze původní.) Naopak při velké změně ceny může dojít ke změně báze, a tedy dokonce ke změně druhů výrobků zahrnutých do výrobního programu či změně vyčerpaných výrobních činitelů. Naším dalším úkolem bude vymezit hranice pro změnu jednotlivých cenových indexů, aby byla báze optimálního řešení zachována. 10.3.2 Intervaly stability pro ceny Při změněném zadání aplikujeme zcela stejný postup, přičemž požadujeme, aby mělo výsledné základní řešení po tomto přepočtu stejné vlastnosti, jako výsledné řešení úlohy původní – aby bylo opět řešením optimálním. 124
Zřejmě postačí požadovat, aby nedošlo k porušení duální přípustnosti, k porušení primární přípustnosti dojít nemůže, neboť hodnoty základních neznámých zůstanou zachovány. Určení intervalů stability Má-li být zachována duální přípustnost, musí platit, že všechny složky indexního řádku nové úlohy musí být v maximalizační úloze nezáporné (a v minimalizační úloze nekladné). Pro určení velikosti přípustné změny j cenového indexu původní úlohy cj u j-té strukturní proměnné, stačí řešit schematicky zapsané maticové rovnice cBTB-1 ≥ 0 cBTB-1A – cT ≥ 0 pro obecný vektor koeficientů účelové funkce cT = (c1, …, cj, …, cn) pro každé j = 1, …, n. Příklad 10.7 Určete intervaly stability pro všechny cenové indexy úlohy z předchozího příkladu. Řešení Při sestavování intervalů stability pro cenové indexy vyřešíme zvlášť pro základní a zvlášť pro nezákladní strukturní proměnné. 1) Při změně ceny u strukturních nezákladních proměnných nedochází ke změně vektoru cenových indexů základních neznámých cBT. Vektor výsledných stínových cen cBTB-1 by se proto také nezměnil a bylo by pouze potřeba dopočítat vektor výsledných redukovaných cen dosazením do výrazu cBTB-1A – cT. V optimálním řešení naší původní úlohy ovšem nezákladní strukturní proměnné nejsou. Početní určení intervalu stability lze v těchto případech nahradit také využitím slovní interpretace redukovaných cen: Již víme, že indexní číslo c‘j u nezákladních proměnných vyjadřuje, o kolik jednotek se změní hodnota účelové funkce z, pokud se odpovídající proměnná xj zvýší o jednotku. Jinými slovy, pokud by vzrostla cena u neznámé xj více než o c‘j jednotek (Kč), bylo by výhodné dosud nevyráběný výrobek j-tého typu zařadit do výrobního procesu (pak by mělo optimální řešení jinou bázi). Odtud rovnou obecně j ( ; c' j , potom cj ( ; c j c' j . 2) Při změně ceny u strukturních základních proměnných se změna j u j-tého cenového indexu projeví ve změně vektoru cenových indexů základních neznámých. a) Interval stability pro c1 Předpokládejme, že se cenový index prvního typu výrobku c1 změní o 1. Potom vektor cenových indexů základních neznámých cBT = (0; 400 + 1; 600). Vektor výsledných stínových cen 1 2 1 cBTB-1 = (0; 400 + 1; 600) 0 1 1 = (0; 400 + 1; 200 – 1), 0 0 1 vektor výsledných redukovaných cen 125
2 1 cBTB-1A– cT = (0; 400 + 1; 200 – 1) 1 1 – (400; 600) = (400 + 1; 600) – (400+ 1; 600) 0 1 = (0; 0) Má-li jít o optimální řešení, musí tyto dva vektory obsahovat při maximalizaci pouze nezáporná čísla, dostáváme tak jednoduchou soustavu lineárních nerovnic o jediné neznámé 0
0 400 1
0
200 1 0
0 0 0
0
Množina řešení této soustavy tvoří interval 1 400;200 , množina všech přípustných hodnot první ceny c1 0;600 je intervalem stability pro první cenový index. b) Interval stability pro c1 Předpokládejme, že se cenový index druhého typu výrobku c2 změní o 2. Potom vektor cenových indexů základních neznámých cBT = (0; 400; 600 + 2). Vektor výsledných stínových cen 1 2 1 T -1 cB B = (0; 400; 600 + 2) 0 1 1 = (0; 400; 200 + 2), 0 0 1 vektor výsledných redukovaných cen cBTB-1A – cT = 2 1 = (0; 400; 200 + 2) 1 1 – (400; 600 + 2) = (400; 600 + 2) – (400; 600 + 2) = (0; 0) 0 1 Má-li jít o optimální řešení, musí tyto dva vektory obsahovat při maximalizaci pouze nezáporná čísla, dostáváme tak jednoduchou soustavu lineárních nerovnic o jediné neznámé 0
0
400
0
200 2 0
0 0 0
0
Množina řešení této soustavy tvoří interval 2 200; ) , množina všech přípustných hodnot druhé ceny c2 400; ) je intervalem stability pro druhý cenový index. Intervaly stability pro cenové indexy úlohy z předchozího příkladu jsou c1 0;600 ,
c2 400; ) . Ještě jednou zdůrazněme, že vždy hovoříme o změně jediné ceny.
126
Věta 10.2 Leží-li nová hodnota měněného cenového indexu uvnitř jeho intervalu stability, po provedené změně řešení zůstane přípustné a tedy optimální. Nedojde ke změně báze. Leží-li nová hodnota měněného cenového indexu na hranici jeho intervalu stability, po provedené změně řešení zůstane přípustné, ale bude alternativní. Nedojde ke změně báze. Leží-li nová hodnota měněného cenového indexu vně jeho intervalu stability, po provedené změně bude řešení duálně nepřípustné. Přípustnosti dosáhneme duálně simplexovou metodou, optimální řešení úlohy bude mít jinou bázi, než řešení úlohy původní. Poznámka: Postup nalezení intervalů stability cenových indexů lze také algoritmicky zmechanizovat. Rovnou jej porovnávejte s předcházejícími výpočty: Pouze pro řádky strukturních základních neznámých spočteme ve sloupcích nezákladních neznámých podíly opačných hodnot indexních koeficientů (redukovaných a stínových cen) a jednotlivých přepočtených strukturních koeficientů a koeficientů inverzní matice báze, označíme (podtržením) navíc ty, kde se dělilo záporným číslem (což odpovídá otáčení znaménka nerovnosti při vyjadřování odpovídající neznámé v předchozím postupu). Tabulka 10.6 - Mechanický výpočet intervalů stability cenových indexů
B-1A
x´3 x1 x2
0 1 0
0 0 1
1 0 0
-2 1 0
1 -1 1
z
0
0
0
-400
-200
Dolní mez
Horní mez
Interval stability
Dolní mez
Horní mez
B-1
Změna
Báze
-400 ×
200 -200
1 2
-400 -200
200 ×
b1 b2
0 400
600 ∞
podíly
Dolní meze hodnot 1,2 vybereme jako maxima z neoznačených hodnot, horní meze vybereme jako minima z podtržených hodnot, tedy analogicky hledání průniku dílčích intervalů. Intervaly stability získáme přičtením těchto mezí k hodnotám c1,2.
10.4 Slovní interpretace intervalů stability Ještě se věnujme interpretaci významu intervalů stability, která je završením analýzy citlivosti výsledného řešení na drobné či větší změny kapacit výrobních činitelů a cen jednotlivých výrobků. Toto ilustrujme na konkrétním příkladě: 10.4.1 Intervaly stability kapacit Uvažujme např. situaci, kdy zjišťujeme, jak případné navýšení kapacity jistého výrobního činitele (např. dokoupení hladké mouky pekárnou) změní výsledné optimální řešení, které dejme tomu spočívá ve vyrábění jistého počtu housek a koláčků, zatímco vyrábět chléb je nevýhodné. Bude-li disponibilní množství mouky navýšeno v rámci intervalu stability této kapacity, dojde ke změnám počtů kusů vyráběných housek a koláčků, pokud bude toto množství navýšeno právě na hraniční hodnotu intervalu stability, nastane degenerace, dojde třeba k situaci, že se koláčky přestanou vyrábět (a budou se tak vyrábět pouze housky) a sortiment se sníží o jeden 127
typ výrobku, a pokud bude disponibilní množství navýšeno mimo interval stability této kapacity, bude kvůli dosažení optimálního řešení třeba přejít k jiné bázi, dojte tak třeba k situaci, že se koláčky přestanou vyrábět a nahradí se nyní lukrativnějšími chleby (přičemž housky budu stále vyrábět). Degenerace tedy znamená zúžení sortimentu, přechod k jiné bázi znamená nahrazení výroby jednoho typu výrobku jiným typem výrobku. 10 10.4.2 Intervaly stability cenových indexů Uvažujme dále např. situaci, kdy zjišťujeme, jak případné zvýšení prodejní ceny jistého výrobku (např. koláčků) změní ono výsledné optimální řešení. Bude-li cena koláčku navýšena ještě v rámci intervalu stability této ceny, dojde ke změnám počtu kusů vyráběných housek a koláčků, pokud bude tato cena navýšena právě na hraniční hodnotu intervalu stability, nastane alternativní řešení, dojde třeba k situaci, že výroba koláčků a housek bude nahraditelná alternativní výrobou chleba a housek (při optimální hladině zisku), a pokud bude cena navýšena mimo její interval stability, bude kvůli dosažení optimálního řešení nutné přejít k jiné bázi a dojte tak třeba k situaci, že se koláčky přestanou vyrábět, ale nahradí se nyní lukrativnějšími chleby (přičemž housky se budou stále vyrábět). Alternativita tedy znamená výběr z více variant dosažení optimální výroby, přechod k jiné bázi znamená vytlačení jednoho typu výrobku z výroby jiným typem výrobku.
128
11. kapitola
DOPRAVNÍ ÚLOHA
Mezi speciální úlohy LP, které se zabývají optimalizací distribuce nebo rozdělování určité komodity mezi jisté subjekty, tzv. distribuční problémy, patří dopravní problém, již dříve zmíněný v Kapitole 3.2.7. který je jejich nejjednodušším příkladem. V oblasti distribuce nějaké komodity od m dodavatelů k n odběratelům je často formulován problém stanovit optimální způsob přepravy, jsou-li známy náklady na přepravu jednotky komodity mezi jednotlivými subjekty, kapacity jednotlivých dodavatelů a požadavky jednotlivých odběratelů. Cílem je naplánovat rozvezení komodity tak, aby bylo dosaženo minimálního rozsahu přepravy. Jejich matematický model splňuje vlastnosti úlohy LP a k jeho řešení by bylo možné využít simplexové metody. Specifický tvar jejich matematického modelu ovšem umožňuje ještě další mnohem efektivnější způsob řešení.
11.1 Matematický model Připomeňme si matematický model dopravní úlohy sestavený v kapitole 3.2.7 a rozeberme důkladněji jeho vlastnosti: 11 Příklad 11.1 Pro matematický model dopravní úlohy z příkladu 3.10 sestavte rozšířenou matici soustavy vlastních omezení a určete jejich vlastnosti.: Ve třech sadech bylo postupně sklizeno 180, 80 a 40 tun jablek, která mají být dopravena ke čtyřem zelinářům, kteří postupně požadují 100, 50, 60 a 90 tun. Přitom vzdálenosti (v km) z jednotlivých sadů k jednotlivým zelinářům ukazuje Tabulka 11.1. Nalezněte optimální způsob přepravy jablek ze sadů k zelinářům tak, aby bylo dosaženo minimálního rozsahu přepravy (skalární součin množství jablek a ujetých kilometrů) [tkm]. Tabulka 11.1– cenové indexy účelové funkce
Vzdálenosti [km] D1 D2 D3
O1 3 5 10
O2 2 12 7
O2 5 4 7
O2 3 6 12
Řešení: Z praktických důvodů jsme zavedli dvojí indexování strukturních neznámých xij vyjadřujících množství přepravených jablek od i-tého dodavatele k j-tému odběrateli [t], pro i = 1,2,3, j = 1,2,3,4, matematický model úlohy duální k této úloze jsme již sestavili, viz Příklad 7.3. Nyní k němu sestavíme matici soustavy lineárních rovnic vlastních omezení
1 0 0 1 0 0 0
1 1 1 0 0 0 0 0 0 0 0 180 0 0 0 1 1 1 1 0 0 0 0 80 0 0 0 0 0 0 0 1 1 1 1 40 0 0 0 1 0 0 0 1 0 0 0 100 1 0 0 0 1 0 0 0 1 0 0 50 0 1 0 0 0 1 0 0 0 1 0 60 0 0 1 0 0 0 1 0 0 0 1 90 129
Všimněte si, že strukturní koeficienty jsou rovny pouze 0 nebo 1. Ověřme, že součet kapacit dodavatelů je roven součtu odběratelů, jinak by všechna jablka nemohla být požadovaným způsobem rozvezena. Potom je vidět, že vynecháme-li libovolný ze sedmi řádků matice, můžeme jeho tvar ze zbývajících řádků matice opět zrekonstruovat. Tím jsme potvrdili jeho lineární závislost na řádcích ostatních, hodnost této matice h = 6, o čemž se můžeme přesvědčit také provedením ekvivalentních řádkových úprav matice do odstupňovaného tvaru. Soustava má celkem n = 12 neznámých. Z Frobeniovy věty o řešitelnosti SLR vyplývá, že soustava má nekonečně mnoho řešení, k jejichž obecnému vyjádření bude potřeba n – h = 6 volných neznámých. Při prohledávání množiny přípustných řešení úlohy LP mají význam pouze řešení základní, která tedy v našem konkrétním příkladu musí mít alespoň šest složek nulových. 11.1.1 Obecné vlastnosti matematického modelu Nezáporné strukturní proměnné xij v modelu dopravního problému představují množství komodity přepravené od i-tého dodavatele k j-tému odběrateli, i = 1, 2, …, m, j = 1, 2, …, n. Tyto úlohy jsou vždy minimalizační, omezující podmínky tvoří výhradně rovnice. Jejich matematický model můžeme při dodržení dřívějšího značení vyjádřit schematicky jako cTx Ax x
z =
… = ≥
min. b o
(11.1)
Obecně má matematický model dopravní úlohy m.n nezáporných strukturních proměnných a m + n vlastních omezení, což jsou též rozměry odpovídající matice jejich SLR. Každý řádek této matice obsahuje samé nuly, pouze na i-té a m+j-té pozici dvě jedničky. Lineární závislost jednoho řádku na ostatních platí obecně, je tedy hodnost matice h = m + n – 1 a počet neznámých n = m.n, a proto je potřeba právě n – h = m.n – (m + n – 1) volných neznámých, základní řešení tedy obsahuje alespoň m.n – (m + n – 1) nul a vektor základního řešení má tedy naopak vždy nejvýše m + n – 1 nenulových složek. V nedegenerovaném případě má základní řešení právě m.n – (m + n – 1) nul a právě m + n – 1 nenulových složek. 11 Poznámka: Kdybychom pro řešení pomocí primárně simplexové metody sestavili simplexovou tabulku, potřebovali bychom m + n strukturních a m umělých proměnných, i při nízkých počtech odběratelů a dodavatelů je její rozměr velký a algoritmizované transformace v rámci dvoufázové varianty primárně simplexové metody by vyžadovaly velký počet operací, byť se řádkové úpravy díky hodnotám strukturních koeficientů omezí pouze na sčítání a odčítání řádků a v jednotlivých iteracích se neobjeví žádné zlomky. 11.1.2 Vlastnosti dopravního problému Definice 11.1 Vyrovnaný dopravní problém je dopravní problém, kde je součet kapacit všech dodavatelů roven součet požadavků všech odběratelů, tedy m
m
í 1
j 1
ai b j
(11.2)
které označíme společným K. V opačném případě jde o nevyrovnaný dopravní problém.
130
Příklad 11.2 Rozhodněte, zda je předchozí dopravní problém vyrovnaný. Řešení Součet kapacit všech sadů je
m
a í 1
i
180 + 80 + 40 = 300 t
a součet požadavků všech zelinářství je
m
b j 1
100 + 50 + 60 + 90 = 300 t.
j
Množství jablek v sadech přesně uspokojí požadavky všech zelinářů, problém je vyrovnaný. Vyrovnání nevyrovnaného dopravního problému m
Pokud
m
a b í 1
i
j 1
j
, lze situaci teoreticky vyřešit tak, že uměle zavedeme ještě fiktivního
dodavatele nebo odběratele, čímž nevyrovnaný dopravní problém převedeme na vyrovnaný: a) pokud kapacity všech dodavatelů převyšují požadavky odběratelů, tedy m
zavedeme tzv. fiktivního odběratele, který přebytek komodity ve výši
m
m
í 1
j 1
ai b j , m
a b i
í 1
j 1
j
odebere
pouze teoreticky, ve skutečnosti toto zboží zbude na skladě některého z dodavatelů. m
b) pokud kapacity všech dodavatelů nepokryjí požadavky odběratelů, tedy
í 1
zavedeme tzv. fiktivního dodavatele, který chybějící množství
m
m
b a j 1
j
í 1
i
m
a b i
j 1
j
,
komodity dodá
pouze teoreticky, ve skutečnosti toto neexistující zboží nebude některému z odběratelů vůbec dodáno. Je nutné ještě stanovit cenové koeficienty odpovídající vzdálenosti fiktivních odběratelů ke každému dodavateli resp. fiktivních dodavatelů ke každému odběrateli. Obvykle je ponecháme rovny 0. Pokud je některý z dodavatelů či odběratelů upřednostněn, doplníme tzv. prohibitivní cenu, která stanoveným způsobem ovlivní pořadí obsazování příslušných polí. Vše demonstrujme na následujících dvou příkladech: Příklad 11.3 V nevyrovnaném dopravním problému zadaném tabulkou cij
O1
O2
O3
Kap.
D1
2
8
4
80
D2
5
7
3
120
Pož.
100
50
upřednostněte obsloužení druhého odběratele.
131
90
Řešení Součet kapacit všech dodavatelů je 200 jednotek komodity, součet požadavků všech odběratelů je 240 jednotek komodity. Je tedy třeba zavést fiktivního dodavatele, který uměle zajistí dodání chybějících 40 jednotek komodity. cij
O1
O2
O3
Kap.
D1
2
8
4
80
D2
5
7
3
120
FD
100
0
100
100
Pož.
50
40
90
Pokud by nebylo třeba žádného odběratele upřednostnit, nastavíme všechny nové cenové indexy na nulu. Obsloužení druhého odběratele upřednostníme nastavením prohibitivních cen v řádově vyšší hodnotě (např. 100) u cest, jejichž uskutečnění je třeba odložit, protože by vedlo k výraznému zvýšení rozsahu přepravy o 100 s každou tudy přepravenou jednotkou přepravované komodity. Upřednostňované cesty musíme nastavit jako nejlevnější. Příklad 11.4 V nevyrovnaném dopravním problému zadaném tabulkou upřednostněte odvezení veškeré komodity od prvního dodavatele. cij
O1
O2
O3
Kap.
D1
5
7
4
50
D2
2
8
3
50
Pož.
40
30
20
Řešení Součet kapacit všech dodavatelů je 100 jednotek komodity, součet požadavků všech odběratelů je 90 jednotek komodity. Je tedy třeba zavést fiktivního odběratele, který uměle zajistí odebrání přebývajících 10 jednotek komodity. cij
O1
O2
O3
Kap.
D1
5
7
4
0
50
D2
2
8
3
100
50
Pož.
40
30
20
Pokud by nebylo třeba žádného dodavatele upřednostnit, nastavíme všechny nové cenové indexy na nulu. Obsloužení prvního dodavatele upřednostníme nastavením prohibitivních cen v řádově vyšší hodnotě (např. 100) u cest, jejichž uskutečnění je třeba odložit, protože by vedlo k výraznému zvýšení rozsahu přepravy o 100 s každou tudy přepravenou jednotkou přepravované komodity. Upřednostňované cesty musíme nastavit jako nejlevnější.
132
Nadále už se věnujme pouze vyrovnaným dopravním problémům, protože každý nevyrovnaný dopravní problém umíme uměle vyrovnat. Dále znovu definujme známé pojmy pro nově zavedené značení u dopravních úloh LP: Definice 11.2 Přípustné řešení dopravního problému popsaného matematickým modelem (11.1) je vektor
xopt = (x11, x12, …, x1n, x21, x22, …, x2n, …, xm1, xm2, …, xmn)T,
(11.3)
jehož složky vyhovují všem podmínkám nezápornosti a všem vlastním omezením tohoto matematického modelu. Definice 11.3 Základní řešení dopravního problému je přípustné řešení, které má nejvýše (m + n – 1) kladných složek a ostatní složky jsou rovny nule, přičemž vektory strukturních koeficientů u kladných složek tvoří lineárně nezávislou soustavu. Definice 11.4 Degenerované řešení dopravního problému je základní řešení, které má méně než (m + n – 1) kladných složek. Definice 11.5 Optimální řešení dopravního problému je přípustné řešení, které minimalizuje hodnotu účelové funkce. 11 Věta 11.1 Každý (vyrovnaný) dopravní problém má přípustné řešení. Je-li problém vyrovnaný, je možné veškerou nabízenou komoditu rozdělit tak, aby přesně uspokojila požadavky všech odběratelů, obecně například „spravedlivě“ podle předpisu xij
ai b j K
(11.4)
.
Příklad 11.5 Podle tohoto vztahu vypočtěte odpovídající řešení Příkladu 11.1 a ověřte, zda je přípustné, základní, degenerované. Řešení Dosazováním do vzorce x11
180.100 180.50 40.90 6 60 , x12 30 , …, x34 5 300 300 300
xij
O1
O2
O3
O4
Kap.
D1
60
30
36
54
180
D2
26 2/3
13 1/3
16
24
80
D3
13 1/3
6 2/3
8
12
40
Pož.
100
50
60
90
133
získáme řešení, kde jsou všechny strukturní proměnné nezáporné a všechny řádkové součty se rovnají kapacitám a sloupcové součty se rovnají požadavkům, tedy řešení přípustné. Podle absence nulových složek lehce usoudíme, že toto řešení není základní a nemá tudíž smysl posuzovat degeneraci. Věta 11.2 Každý (vyrovnaný) dopravní problém má základní řešení Je-li problém vyrovnaný, je možné veškerou nabízenou komoditu rozdělit tak, že libovolně zvolenou proměnnou xrs položíme rovnou nižší z hodnot r-té kapacity a s-tého požadavku
xrs = min (ar, bs) = t,
(11.5)
čímž se kapacita r-tého dodavatele a požadavek s-tého odběratele sníží o t. a jedna (při degeneraci obě) z nich se vynuluje. Odpovídající vlastní omezení s nulovou pravou stranou vynecháme a pokračujeme stejným postupem ve zmenšeném modelu. V každém kroku splníme a vynecháme alespoň jedno omezení, v posledním kroku vyrovnaného problému je zbytková kapacita rovna zbylému požadavku, takže splníme zároveň dvě omezení. Počet takto vzniklých proměnných je tedy alespoň o jedničku menší, než je počet vlastních omezení, tedy (m + n – 1). Nalezené řešení je tak zřejmě základní. V případě, že v některém z kroků je ar = bs, je degenerované. Příkladem takovéhoto postupu nalezení základního řešení dopravní úlohy je například metoda SZR, která nevyplňuje pole zvolená náhodně, ale systematicky postupně od levého horního až k pravému dolnímu poli tabulky. Viz následující příklad 11.6. Věta 11.3 Každý (vyrovnaný) dopravní problém má optimální řešení. Z vět o řešitelnosti obecných úloh LP víme, že mohou nastat celkem čtyři varianty počtu řešení. Z předchozího vyplývá, že u vyrovnaných úloh LP nikdy nenastane varianta „žádné přípustné řešení“, a jelikož je množina přípustných řešení vždy omezená (zdola podmínkami nezápornosti, shora kapacitami a požadavky), nemůže nastat ani varianta „neomezená hodnota účelové funkce“. A nyní již přistupme k samotnému algoritmu řešení dopravních úloh LP.
11.2 I. fáze – nalezení VZŘ První fáze řešení úloh LP se obecně týká nalezení výchozího základního řešení, a stejně tak tomu je i u dopravní úlohy. Pro výpočet je vhodné uspořádat hodnoty do tzv. dopravní tabulky, kde řádky odpovídají vlastním omezením pro dodavatele; pravý sloupec obsahuje jednotlivé kapacity, sloupce naopak odpovídají vlastním omezením pro odběratele a dolní řádek obsahuje jednotlivé požadavky. Bude-li hodnota strukturní proměnné kladná, budeme hovořit o obsazeném poli, bude-li nulová, budeme hovořit o neobsazeném poli. Hledáme tedy jakékoli přípustné základní řešení. Kromě splnění všech omezení úlohy (nezápornost, řádkové a sloupcové součty) musí obsahovat nejvýše m + n – 1 nenulových složek a vektory základních řešení musí být lineárně nezávislé, což v tabulce poznáme tak, že obsazená pole netvoří uzavřený obvod, který kolmými úsečkami propojuje některá z obsazených polí, a vrací se do pole výchozího. 134
Příklad 11.6 Zdůvodněte, proč není přípustné řešení uvedené v následující tabulce základní. O1 D1
O2
10
O3
40 80
80 40
D4 Pož.
Kap.
30
D2 D3
O4
60 50
90
80
70
110
20
60
70
Řešení Všechny hodnoty jsou nezáporné, splňují řádkové i sloupcové součty, toto řešení je přípustné. Je obsazeno právě (m + n – 1) = 4 + 4 – 1 = 7, což platí pro nedegenerovaná základní řešení. Zbývá tedy ještě ověřit, zda obsazená pole nelze propojit uzavřeným obvodem. Ten je vyznačen čárkovanou čarou, toto řešení tedy není základní z tohoto důvodu. Pozor: neobsazené pole proměnné x32 není vrcholem cyklu, úsečky propojující obsazená pole tudy jen procházejí, ale nekončí. Uveďme nyní několik metod nalezení výchozího základního řešení úlohy LP. 11.2.1 Metoda SZR Nejjednodušší metoda nalezení výchozího základního řešení dopravního problému, která obsazuje pole dopravní tabulky směrem od levého horního rohu až k pravému dolnímu rohu a přitom zcela ignoruje ceny jednotlivých cest, se nazývá metoda severozápadního rohu. Metoda systematizuje postup popsaný pod Větou 1.47, začíná hodnotou x11, v každém kroku obsazuje nevyplněné pole s nejnižším řádkovým i sloupcovým indexem maximálním možným množstvím komodity tak, že se buď zcela vyprázdní zbývající kapacita odpovídajícího dodavatele a všechna pole vpravo od něj zůstanou neobsazená, nebo se zcela uspokojí zbývající požadavek odpovídajícího odběratele a všechna pole pod ním zůstanou neobsazená. Pokud se vynuluje zároveň požadavek i kapacita, zůstanou neobsazená zbývající pole v odpovídajícím řádku i sloupci a tak dojde k degeneraci základního řešení. Tento postup se opakuje tak dlouho, dokud není obsazeno pole xmn, kdy dojde k vynulování poslední kapacity a požadavku, což u vyrovnané úlohy musí vždy nastat. Příklad 11.7 Pro dopravní tabulku z Příkladu 3.10 nalezněte VZŘ metodou SZR. SZR D1
O1
O3
3
100
2
50
5
D2
–
D3
–
Pož.
O2
–
100
4
7
60 135
6
50 7
–
50
3
–
30
–
Kap.
5
30
12
10
O4
12
40 90
180 80 40
Řešení Nejprve obsadíme pole x11 maximálním možným množstvím, tedy min (100, 180) = 100 t, čímž se zcela uspokojí požadavek prvního odběratele, který už od ostatních dodavatelů žádné množství nebude moci přijmout, proto pole v prvním sloupci budou neobsazená (zaznamenám pomocí znaku „–“). Kapacita prvního dodavatele se sníží o těchto 100 t na 80 t. Ve druhém kroku pole s oběma nejnižšími indexy v nevyplněné oblasti, tedy pole x12 obsadíme maximálním možným množstvím, tedy min (50, 80) = 80 t, čímž se zcela uspokojí požadavek druhého odběratele, který už od ostatních dodavatelů žádné množství nebude moci přijmout, proto zbývající pole ve druhém sloupci budou neobsazená (zaznamenám pomocí „–“). Kapacita prvního dodavatele se sníží ještě o těchto 50 t na hodnotu 30 t. Ve třetím kroku pole s oběma nejnižšími indexy v nevyplněné oblasti, tedy pole x13 obsadíme maximálním možným množstvím, tedy min (60, 30) = 30 t, čímž zcela vyčerpáme kapacitu prvního dodavatele, který už ostatním odběratelům žádné množství nebude moci nabídnout, proto zbývající pole v prvním řádku budou neobsazená (zaznamenám pomocí „–“). Požadavek třetího odběratele se sníží ještě o těchto 30 t jednotek na hodnotu 30 t. Ve čtvrtém kroku pole s oběma nejnižšími indexy v nevyplněné oblasti, tedy pole x23 obsadíme maximálním možným množstvím, tedy min (30, 80) = 30 t, čímž se zcela uspokojí požadavek třetího odběratele, který už od ostatních dodavatelů žádné množství nebude moci přijmout, proto zbývající pole ve třetím sloupci budou neobsazená (zaznamenám pomocí „–“). Kapacita druhého dodavatele se sníží o těchto 30 t jednotek na hodnotu 50 t, kterou obsadíme pole x24 a pole x34 musí být obsazeno množstvím komodity ve výši zbývajících 40 t jednotek (což je zbývající kapacita třetího řádku i zbývající požadavek čtvrtého sloupce). Zapišme nalezené výchozí základní řešení jako vektor řešení (samých strukturních proměnných)
x1 = (100, 50, 30, 0, 0, 0, 30, 50, 0, 0, 0, 40)T, jemuž odpovídá rozsah přepravy dopočtený dosazením do účelové funkce
z1 = 3.100 + 2.50 + 5.30 + 4.30 + 6.50 + 12.40 = 1 450 tkm. Jelikož obsahuje právě m + n – 1 = 6 obsazených polí, je toto řešení nedegenerované. 11.2.2 Indexní metoda (vzestupná) Další metoda již bere v potaz ceny jednotlivých cest a obsazuje vždy pole s nejnižší cenou co nejvyšším množstvím komodity. Pokud je více polí s aktuálně nejnižší cenou, obsadí to, na které lze umístit nejvyšší možné množství komodity. Příklad 11.8 Pro dopravní tabulku z Příkladu 3.10 nalezněte VZŘ indexní metodou. IND
O1
O2 3
D1
100
D2
–
D3
–
Pož.
O3 2 12
– 10
100
4
7
60 136
6
20 7
–
50
3
30
60
–
Kap.
5
–
50
5
O4
12
40 90
180 80 40
Řešení V prvním kroku obsadíme pole s nejnižším cenovým indexem 2 km, tedy pole x12 a to maximálním možným množstvím, tedy min (180, 50) = 50 t, čímž se zcela uspokojí požadavek druhého odběratele, který už od ostatních dodavatelů žádné množství nebude moci přijmout, proto zbývající pole ve druhém sloupci budou neobsazená (zaznamenám pomocí „–“). Kapacita prvního dodavatele se sníží ještě o těchto 50 t na hodnotu 150 t. Ve druhém kroku je třeba rozhodnout, zda dříve obsadit pole x11 nebo pole x14, u obou je cenový index 3 km. Pole x12 by se mohlo obsadit až min (100, 150) = 100 t, pole x14 by se mohlo obsadit až min (90, 150) = 90 t. Za tuto nízkou cenu chceme přepravit co nejvíc komodity, obsadíme tedy pole x11 množstvím 100 t. Opět snížíme odpovídající kapacity a požadavky a doplníme „–“. Ve třetím kroku je stále neobsazené pole x14, které nyní obsadíme množstvím min (90, 30) = 30. Ve čtvrtém kroku obsadíme pole s cenovým indexem 4 km množstvím min (60, 80) = 60 t. Pak už nezbývá než obsadit pole x24 množstvím 20 t a pole x34 množstvím 40 t. Zapišme nalezené výchozí základní řešení jako vektor řešení
x2 = (100, 50, 0, 30, 0, 0, 60, 20, 0, 0, 0, 40)T, jemuž odpovídá rozsah přepravy dopočtený dosazením do účelové funkce
z2 = 3.100 + 2.50 + 3.30 + 4.60 + 6.20 + 12.40 = 1 330 tkm. Jelikož obsahuje právě m + n – 1 = 6 obsazených polí, je toto řešení také nedegenerované. 11.2.3 Metoda VAM Ještě důkladněji se vztahům mezi cenovými indexy věnuje Vogelova aproximační metoda, která porovnává dva nejnižší cenové indexy v každém řádku a v každém sloupci. Pomocí rozdílů těchto dvojic, tzv. diferencí vyhodnocuje, ve kterém poli by promeškání obsazení nejlevnější cesty mělo za následek největšího zhoršení cenového indexu a tím i hodnoty účelové funkce. V každém kroku vybírá nejmenší z diferencí a ve vybrané řadě (řádku nebo sloupci) obsazuje pole s nejnižší cenou maximálním možným množstvím komodity. Příklad 11.9 Pro dopravní tabulku z Příkladu 3.10 nalezněte indexní metodou VAM. VAM
O1
O2
O3
3
D1
40
D2
60
2 12
–
6
–
20 7
–
3
90 4
–
10
D3
5
–
50 5
O4
7
40 60
12
–
Pož.
100
50
1.
2
5
1
3
2.
2
×
1
3
3.
2
×
1
×
4.
2
×
1
×
137
90
Kap.
1.
2.
3.
4.
180
1
0
2
2
80
1
1
1
1
40
0
3
3
×
Řešení V 1. kroku spočítejme rozdíl dvou nejkratších délek cest v každém řádku a také v každém sloupci, tato čísla zaznamenejme vpravo a pod tabulkou. Nejvyšší z těchto diferencí mě upozorní, že po promarnění šance přepravovat jablka ke druhému odběrateli cestou dlouhou jen 2 km bude druhá nejkratší cesta dlouhá již 7 km, tedy o 5 km delší, než cesta nejkratší, což by mělo za následek zhoršení hodnoty účelové funkce. Proto obsadíme pole x12 maximálním možným množstvím min (50, 180) = 50 t. Po snížení první kapacity, druhého požadavku a doplnění „–“ pokračujme dál jen s nevyplněnými poli. V 2. kroku spočítejme rozdíl dvou nejkratších délek zbývajících neobsazených cest v každém řádku a také v každém sloupci, tato čísla opět zaznamenejme. Nejvyšší z těchto diferencí mě upozorní, že po promarnění šance přepravovat jablka od třetího dodavatele po cestě dlouhé jen 3 km nebo ke čtvrtému odběrateli cestou dlouhou jen 7 km bude v obou případech znamenat nutnost využití cesty o 3 km delší. Z obou cest s případnou srovnatelnou ztrátou při promarnění vyberu tu s nižším cenovým indexem, tedy x14. Obsadím ji maximálním možným množstvím min (90, 130) = 90 t. Po snížení první kapacity, čtvrtého požadavku a doplnění „–“ pokračujme dál jen s nevyplněnými poli. V 3. kroku hrozí při promarnění šance přepravovat jablka od třetího dodavatele po cestě dlouhé 7 km nutnost využít cesty o 3 km delší, proto pole x33 obsadím maximálním možným množstvím min (60, 40) = 40 t. Po snížení třetí kapacity, třetího požadavku a doplnění „–“ pokračujme dál jen s nevyplněnými poli. V 4. kroku hrozí ve dvou případech při nevyužití nejkratší ze zbývajících cest prodloužení cesty o 2 km, a to u přepravy od prvního dodavatele po cestě dlouhé 3 km nebo k prvnímu odběrateli po cestě dlouhé 3 km, zřejmě je to tatáž. Pole x11 ihned obsadím maximálním možným množstvím min (60, 40) = 40 t. Po snížení první kapacity, prvního požadavku a doplnění „–“ nezbývá než obsadit pole x21 množstvím 60 t a pole x23 množstvím 20 t. Zapišme nalezené výchozí základní řešení jako vektor řešení
x3 = (40, 50, 0, 90, 60, 0, 20, 0, 0, 0, 40, 0)T, jemuž odpovídá rozsah přepravy dopočtený dosazením do účelové funkce
z3 = 3.40 + 2.50 + 3.90 + 5.60 + 4.20 + 7.40 = 1 150 tkm. Jelikož obsahuje právě m + n – 1 = 6 obsazených polí, je toto řešení také nedegenerované. 11.2.4 Porovnání metod nalezení VZŘ Metody jsou uvedeny v pořadí podle jednoduchosti jejich výpočtu, porovnejte nalezená základní řešení podle kriteria účelové funkce. Metoda SZR k nalezení základního řešení vůbec nebere v úvahu cenové indexy, je tedy velmi pravděpodobné, že dává výchozí řešení často velmi vzdálené od řešení optimálního. Ušetření práce v I. fázi se tak často projeví větším počtem kroků ve II. fázi výpočtu. Metoda indexní vyhledává aktuálně nejkratší ze všech neobsazených cest, Vogelova indexní metoda dokonce vyhodnocuje, jaké důsledky by mělo obsazení nejkratších cest v aktuálním kroku pro krok následující. S hloubkou vyhodnocovaných vztahů je pak opět úzce spjat fakt, že řešení nejvíce se blížící tomu optimálnímu tak nejpravděpodobněji dává metoda VAM, není to ovšem pravidlem.
138
11.3 II. fáze – optimalizace II. fáze řešení úloh LP se obecně týká samotné optimalizace, tedy ověřování optimality nalezeného základního řešení a případné algoritmizované nalezení základního řešení s lepší hodnotou účelové funkce. Zmíněné specifické vlastnosti dopravního problému nám tento postup velmi usnadní. Využijeme k tomu věty o rovnováze, bude tedy třeba pracovat také s matematickým modelem úlohy duální k dopravnímu problému. 11.3.1 Duální úloha k dopravnímu problému Označme uT = (u1, u2, …, um,, v1, v2, …, vn) vektor strukturních neznámých duální úlohy. Formulaci duální úlohy k zadané úloze schematicky popisuje Tabulka 7.1 Tabulka 11.2– schéma nesymetrické duality dopravního problému
PRIMÁRNÍ ÚLOHA z= cTx … min. = Ax b ≥ x o
f=
DUÁLNÍ ÚLOHA uTb … max. u R ATu ≤ cT
Jelikož jde o nesymetrickou dualitu, v duální úloze neplatí pro duální proměnné podmínky nezápornosti. Příklad 11.10 Zapište matematický model úlohy duálně sdružené s dopravním problémem zapsaným v z Příkladu 3.10. Řešení Z důvodu nedostatku místa není možné na stránce tohoto formátu zapsat vedle sebe obě úlohy, jak bylo zadáno v Příkladu 11.1. Zapišme tedy nyní pouze matematický model úlohy duální, ale všechna omezení zapíšeme v takovém pořadí, jak postupně odpovídají omezením úlohy primární, abychom mohli oba matematické modely využít při aplikaci věty o rovnováze.
f=
180u1 +80u2
u1 u1 u1 u1 u2 u2 u2 u2
DUÁLNÍ ÚLOHA: +40u3 +100v1 +50v2 +60v3 +90v4 u1,2,3 v1,2,3,4 + v1 + v2 + v3 + v4 + v1 + v2 + v3 + v4 u3 + v1 u3 + v2 u3 + v3 u3 + v4 139
… ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥
max. R R 3 2 5 3 5 12 4 6 10 7 7 12
11.3.2 Dopravní tabulka Pro zápis hodnot primárních i duálních proměnných a také primárních a duálních vlastních omezení se velmi osvědčila tzv. dopravní tabulka. Je to obdélníkové schéma, které v každém poli těla tabulky obsahuje tři údaje: hodnotu primární neznámé xij uprostřed, odpovídající cenový index cij v pravém horním rohu a míru nedodržení odpovídajícího duálního vlastního omezení zij v levém horním rohu. V pravém sloupci a v dolním řádku obsahuje navíc hodnoty duálních neznámých ui a vj. Tabulka 11.3 – pole dopravní tabulky zij
cij
xij Dopravní tabulka, ve které je k testu optimality připraveno výchozí základní řešení primární úlohy nalezené metodou VAM má tvar DT
O1
O2 3
D1
2
40 60
D3
–
v1
3
90 4
–
6
–
20 7
7
–
12
–
40
v2
ui
5
12
10
O4
–
50 5
D2
vj
O3
v3
u1 u2 u3
v4
hodnoty duálních neznámých ui a vj a hodnoty zij budeme počítat v rámci testu optimality. 11.3.3 Optimalizace Nejčastěji se k testování optimality používá tzv. modifikovaná distribuční metoda, zkráceně MODI metoda. Test optimality vychází z předpokladu, že aktuální základní řešení je optimální a pomocí věty o rovnováze prověřuje platnost všech dvojic duálně sdružených podmínek. Obsazená pole Nejprve je třeba dopočítat hodnoty duálních proměnných. Jejich vztahy zapíšeme jako soustavu duálních vlastních omezení splněných jako rovnost, protože podle věty o rovnováze mají odpovídat primárním podmínkám nezápornosti, které jsou splněny jako ostrá nerovnost, výpočet proto probíhá pouze v polích kladných primárních proměnných, kde pro xij > 0 v optimálním řešení platí ui + vj = cij.
(11.6)
Pro nedegenerované řešení tedy sestavíme soustavu právě m + n – 1 lineárně nezávislých rovnic pro všech m + n duálních neznámých. Co se týče počtu jejích řešení, je její hodnost h = m + n – 1 a počet neznámých n = m + n. Z Frobeniovy věty vyplývá, že soustava má nekonečně mnoho řešení, obecně je ovšem vždy k zápisu obecného řešení potřeba právě n – h = 1 volná neznámá.
140
Z toho vyplývá, že je potřeba jednu z duálních proměnných zvolit (nejlépe jako jednoduché číslo na výhodné pozici, nejlépe podle aktuálního rozmístění obsazeních polí), ostatní duální proměnné z uvedených vztahů dopočítat. Je zřejmé, že není potřeba zapisovat tyto rovnice zvlášť, výpočet může proběhnout pro obsazená pole odečtením známé duální proměnné od příslušného cenového indexu. Výpočet zřejmě neproběhne v libovolném pořadí, ale postupně v polích, ke kterým již jednu hodnotu duální proměnné znám. K problémům vzniklým nedostatkem obsazených polí při degeneraci výchozího základního řešení se vrátíme později. Neobsazená pole Pro neobsazená pole, kde Jsou-li ostatní primární podmínky nezápornosti splněny jako rovnost nule, musí být podle věty o rovnováze v optimálním řešení ostatní duální vlastní omezení splněna jako ostré nerovnosti. Výpočet proto probíhá pouze v polích nulových primárních proměnných, kde pro xij = 0 v optimálním řešení platí ui + vj < cij,
(11.7)
což je třeba ověřit dosazením právě spočtených duálních proměnných do těchto nerovnic, které z praktických důvodů přepíšeme ekvivalentním způsobem
ui + vj – cij < 0,
(11.8)
abychom mohli vždy porovnávat s nulou. Levou stranu nerovnosti stručně označme jako zij, jelikož se vlastně jedná o redukované ceny. Její hodnoty pro neobsazená pole zapišme do levého horního rohu příslušného pole dopravní tabulky, nerovnice opět není nutné zapisovat zvlášť. Test optimality potom zřejmě postačí provést vyhodnocením, zda jsou všechna tato čísla
zij < 0.
(11.9)
Potom řešení je optimální, jestliže se všechna zij menší nebo rovna 0 Věta 11.4 (Test optimality): V minimalizační dopravní úloze LP je hodnota účelové funkce z optimální, jestliže jsou všechny redukované ceny zij menší nebo rovny nule. Pokud dosažené řešení není optimální, přejdeme k základnímu řešení s výhodnou volbou nové báze. Jedna ze základních neznámých původní báze se stane nezákladní, nahradí ji proměnná, která byla v předchozím řešení nezákladní. Určení proměnné vstupující do báze Proměnnou vystupující z báze určíme vyhodnocením redukovaných cen: Věta 11.5 V minimalizačních dopravních úlohách LP do báze základního řešení vstoupí proměnná, které odpovídá nejvyšší hodnota redukované ceny zij. Do báze je zařazena proměnná, která zajistí největší pokles optimalizované účelové funkce. 141
Příklad 11.11 Pro základní řešení nalezené a) indexní metodou a b) metodou VAM proveďte test optimality. Řešení a) V dopravní tabulce je základní řešení nalezené indexní metodou: IND
O1
D3
O3
3
D1 D2
O2 2
100 1
5
-7
12 7
3
20 7
–
3
vj
6
60
4
–
3
30 4
– 10
ui
5
–
50
– 2
-4
O4
12
–
2
40
1
0 3 9
3
Pro nalezení jednoho z nekonečně mnoha vektorů duálních proměnných jednu zvolíme, nabízí se volba u1 = 0, kterou použiji hned ve třech výpočtech vyplývajících ze vztahů určených obsazenými poli v prvním řádku: 0 + v1 = 3; 0 + v2 = 2 a 0 + v4 = 3. Z obsazených polí ve čtvrtém sloupci dále mohu vyčíst: u2 + 3 = 6, u3 + 3 = 12. Nakonec dopočteme přes pole x23 hodnotu poslední duální neznámé z rovnice 3 + v3 = 4. (Vyzkoušejte také jiné volby volné duální neznámé.) Nyní tyto hodnoty dosaďme do duálních vlastních omezení odpovídajících neobsazeným polím tabulky: pro x13 = 0 platí z13 = u1 + v3 – c13 = 0 + 1 – 5 = -4 pro x21 = 0 platí z21 = u2 + v1 – c21 = 3 + 3 – 5 = 1 pro x22 = 0 platí z22 = u2 + v2 – c22 = 3 + 2 – 12 = -7 pro x31 = 0 platí z31 = u3 + v1 – c31 = 9 + 3 – 10 = 2 pro x32 = 0 platí z32 = u3 + v2 – c32 = 9 + 2 – 7 = 4 pro x33 = 0 platí z33 = u3 + v3 – c33 = 9 + 1 – 7 = 3 Výpočty stačí provést zpaměti a hodnoty zapsat do levých horních rohů neobsazených polí. (Přesvědčte se výpočtem, že pro duální proměnné získané jinou volbou volné neznámé dostaneme stejné hodnoty redukovaných cen zij.) Toto základní řešení nalezené indexní metodou není optimální, jsou porušeny čtyři duální podmínky. b) V dopravní tabulce je základní řešení nalezené metodou VAM: VAM
O1
O2
D1
40
D2
60
D3 vj
O3
3
10
-8
90 4
-1
6
–
20 7
7
–
-4
12
–
40
0
0
142
ui 3
–
12
0
O4 5
–
– 1
-3
50 5
-2
2
1
2 4 7
Pro nalezení jednoho z nekonečně mnoha vektorů duálních neznámých splňující rovnice odpovídající obsazeným polím dopravní tabulky byla nyní použita volba v3 = 0. Dále byly dopočteny redukované ceny zij, které zaznamenávají, které z duálních podmínek odpovídajících neobsazeným polím dopravní tabulky byly překročeny a o kolik jednotek. Toto základní řešení nalezené Vogelovou aproximační metodou je optimální, x3 = xopt1, všechny duální podmínky jsou splněny jako ostré nerovnosti, pouze jedna z nich je splněna jako rovnost, což je akceptovatelná hraniční hodnota duálních proměnných (viz matematický model), nepůjde ovšem o variantu jediného optimálního řešení, nulová hodnota redukované ceny z32 říká, že obsazení tohoto pole by nemělo na změnu hodnoty účelové funkce žádný vliv, signalizuje tedy existenci alternativního řešení. Určení proměnné vystupující z báze Proměnnou vstupující do báze určíme sestavením uzavřeného obvodu: Do báze tedy vstupuje proměnná, jejíž pole bylo v posledním kroku neobsazené, a je třeba jej obsadit maximálním možným množstvím přepravované komodity, ozn. toto množství jako t, aby bylo dosaženo největšího možného zlepšení hodnoty účelové funkce. Aby bylo i další řešení základní, není možné zvýšit počet obsazených polí, je tedy nutné jedno z obsazených polí vyprázdnit. Proto je nutné množství t v řádku a také ve sloupci vstupující proměnné v jiném poli odebrat, abychom nepřekročili stanovené kapacity a požadavky. Toto odebrání je zase třeba kompenzovat přidáním množství t v odpovídajících řádcích a sloupcích, opět kvůli dodržení stanovených kapacit a požadavků. Toto dorovnávání provádíme v obsazených polích tak dlouhou, dokud se nevrátíme k poli vstupující proměnné. Tímto způsobem vytvoříme uzavřený obvod, tzv. Dantzigův uzavřený cyklus, spojující pole do báze vstupující proměnné s některými z obsazených polí. V poli vstupující proměnné bude přidáno jisté množství t komodity, v ostatních vrcholech postupně střídavě toto t přičítáme a odčítáme. Uzavřený obvod má vždy sudý počet vrcholů, k polovině z nich t přičítáme, v druhé polovině od nich t odčítáme, a vrátíme se proto zpět k obsazovanému poli, kde je třeba hodnotu t přičíst. Proměnné, od kterých budeme t odčítat, označme xij(-). Věta 11.6 V minimalizačních dopravních úlohách LP z báze základního řešení vystoupí proměnná na vrcholu uzavřeného cyklu, jejíž hodnota je minimem z hodnot xij(-) a t = min(xij(-)).(11.10) Příklad 11.12 Pro úlohy z předchozího příkladu určete novou bázi Řešení IND
O1
D3 vj
O3
3
D1 D2
O2 2
100 –t 1
5
-7
12
– 3
3
–
2
20 7
–
+t
6
60 7
4
3
30
+t 4
– 10
ui
5
–
50
– 2
-4
O4
1
12
–t
40
0 3 9
3
a) Řešení v dopravní tabulce není optimální, je potřeba přejít k lepšímu základnímu řešení. 143
Proměnnou x32 vstupující do báze propojíme s obsazenými poli dopravní tabulky Dantzigovým uzavřeným cyklem. Přesunovat budeme po jeho vrcholech množství jablek t = min (50, 40) = 40 tun, čímž jsme určili také proměnnou vystupující z báze x34. b) V dopravní tabulce je nalezeno optimální řešení, které je ovšem alternativní, k nalezení další alternativy je též nutné přejít k dalšímu základnímu řešení. VAM D1 D2 D3 vj
O1
O2
O3
3 5
–t
2
–t
40
+t
-8
12
–
10
–
–
1
6
– 7
–t
0
-1
20
7
+t
3
90 4
+t
0
ui
5
–
50
60
-2
-3
O4
-4
12
–
40 0
2 4 7
1
Proměnnou x32 vstupující do báze propojíme s obsazenými poli dopravní tabulky Dantzigovým uzavřeným cyklem. Přesunovat budeme po jeho vrcholech množství jablek t = min (50, 60, 40) = 40 tun, čímž jsme určili také proměnnou vystupující z báze x33. Pokud je hodnota více vrcholů uzavřeného cyklu, od kterých se má odečítat, rovna tomuto minimu t, opět vznikne problém s nedostatkem obsazených polí při degeneraci základního řešení, ke kterému se vrátíme později. 11.3.4 Transformace dopravní tabulky Základní řešení v nově vybrané bázi získáme z předchozího základního řešení přesunutím množství komodity t mezi vrcholy Dantzigova uzavřeného cyklu přičtením nebo odečtením podle předpisu k původním hodnotám primárních proměnných v jednotlivých polích. Příklad 11.13 Pro úlohy z předchozího příkladu proveďte transformaci dopravních tabulek. Řešení b) Po Dantzigově uzavřeném cyklu přesuneme množství t = 40 t jablek: VAM D1 D2 D3
O1
O2
O3
3
80
2
20
12
–
10
–
7
–
Zapišme vektor řešení
144
6
–
60
vj
3
90 4
7
40
ui
5
–
10 5
O4
12
–
xopt2 = (80, 10, 0, 90, 20, 0, 60, 0, 0, 40, 0, 0)T, a odpovídající rozsah přepravy
zmin = 3.80 + 2.10 + 3.90 + 5.20 + 4.60 + 7.40 = 1 150 tkm. Jelikož obsahuje právě m + n – 1 = 6 obsazených polí, je toto řešení také nedegenerované. a) Po Dantzigově uzavřeném cyklu přesuneme množství t = 40 t jablek: IND
O1
O2
O3
3
D1
2
100
D2
–
D3
–
3
–
12
70 4
–
6
60
10
ui
5
10
5
O4
7
20 7
12
–
40
–
vj Zapišme vektor řešení
x3 = (100, 10, 0, 70, 0, 0, 60, 20, 0, 40, 0, 0)T, a odpovídající rozsah přepravy
z3 = 3.100 + 2.10 + 3.70 + 4.60 + 6.20 + 7.40 = 1 170 tkm. Jelikož obsahuje právě m + n – 1 = 6 obsazených polí, je toto řešení také nedegenerované. Příklad 11.14 V příkladu a) pokračujte ve výpočtu. Řešení Je potřeba opět najít hodnoty duálních neznámých (např. pro volbu u1 = 0), a dopočítat redukované ceny. Řešení není optimální, do báze vstoupí proměnná x21, kterou propojíme s obsazenými poli dopravní tabulky Dantzigovým uzavřeným cyklem, IND D1 D2 D3 vj
O1
O2
O3
3
–t
2
100
1
5
-7
-2
70
+t
-1
6
–t
60 7
3
4
– 10
3
–
12
–
ui
5
10
–
+t
-4
O4
7
20
-4
12
–
40 2
1
–
0 3 5
3
po kterém přesuneme množství t = min (100, 20) = 20 t jablek. Po transformaci dopravní tabulky už získáme optimální základní řešení odpovídající vektoru řešení xopt2. I od výchozího základního řešení nalezeného indexní metodou jsme tak dospěli k optimálnímu řešení stejné úlohy. 145
Poznamenejme na závěr, že důmyslnější metoda VAM opravdu nabídla výchozí základní řešení s lepší hodnotou účelové funkce, než metoda indexní. Pro porovnání se můžete pokusit optimalizovat také výchozí základní řešení získané metodou SZR. Již jeho hodnota účelové funkce naznačuje, že má k hodnotě optimální ze všech tří VZŘ nejdále. Zapišme ještě obecné řešení tohoto dopravního problému:
xopt = k.xopt1 + (1-k).xopt2, k <0;1>, kde xopt1 = (100, 10, 0, 70, 0, 0, 60, 20, 0, 40, 0, 0)T, xopt2 = (80, 10, 0, 90, 20, 0, 60, 0, 0, 40, 0, 0)T, a odpovídající rozsah přepravy
zmin = 1 150 tkm. 11.3.5 Zakončení výpočtu Věta 11.7 Při řešení vyrovnaných dopravních úloh LP může nastat jedna ze dvou variant výsledku 1) jediné optimální řešení, 2) alternativní řešení. Věta 11.8 Základní řešení v dopravní tabulce je optimální, jestliže pro obsazená pole je každé
zij ≤ 0. Toto základní řešení je jediné, jestliže pro obsazená pole je max zij < 0, je alternativní, jestliže pro obsazená pole je max zij = 0. 11.3.6 Degenerace v dopravní tabulce Věnujme se ještě dopravním tabulkám, které obsahují degenerovaná základní řešení, čili obsahují méně než m + n – 1 obsazených polí. Vzniknout mohou přímo jako produkt některé z metod hledání výchozího základního řešení, kdy obsazením jednoho pole dojde k úplnému vyčerpání kapacity dodavatele i úplnému uspokojení odběratele, nebo při transformaci dopravní tabulky, kdy je hodnota více proměnných na vrcholech Dantzigova cyklu, ve kterých se odčítá množství komodity t, rovno této minimální hodnotě, obsazení vstupující proměnné má za následek vynulování více než jednoho původně obsazeného pole. K určení hodnot duálních neznámých pro test optimality potom máme k dispozici méně rovnic. S degenerací se ovšem můžeme vypořádat celkem jednoduše pomocí technické finty, chybějící obsazené pole uměle obsadíme číslem 0. Budeme tedy zásadně rozlišovat mezi „0“ a „–“, přestože v obou případech prakticky nebude danou cestou přepravována žádné množství komodity. Tuto „0“ ovšem nelze umístit do libovolného neobsazeného pole dopravní tabulky s degenerovaným řešením, je opět třeba dodržet lineární nezávislost vektorů strukturních 146
koeficientů kladných složek, nově přidané obsazené pole hodnotou „0“ nesmí s ostatními obsazenými poli tvořit uzavřený obvod. Příklad 11.15 V následující tabulce degenerovaného základního řešení dopravního problému rozhodněte, které z polí není možné uměle obsadit hodnotou 0.
O1 D1
50
O2
O3
10
D2
20
D3 D4
O4
30 40
40
Řešení Nedegenerované řešení by v tomto případě mělo mít m + n – 1 = 4 + 4 – 1 = 7 obsazených polí, v tabulce je ovšem obsazeno polí pouze 6, jedná se tedy o degenerované základní řešení. Nyní je třeba jedno z neobsazených polí technicky obsadit hodnotou 0, postupně pro každé z neobsazených polí rozhodněme, je-li k tomu vhodné. Pokud bychom obsadili pole x13, nevytvoří s některými z ostatních obsazených polí uzavřený cyklus, proto by jej bylo možné hodnotou 0 obsadit. Pokud bychom obsadili pole x14, vytvoří s poli x11, x41 a x44 uzavřený cyklus, proto jej nelze hodnotou 0 obsadit, získané řešení by nebylo základní, atd. V první tabulce je naznačen uzavřený cyklus, který by s ostatními obsazenými poli vytvořilo pole x34.
O1 D1
50
O2
O3
10
D2
20
D3 D4
O4
30
0
40
40
V následující tabulce jsou potom symbolem „ד označena všechna pole, která nemohou být hodnotou 0 uměle obsazena. Naopak jakékoli z takto neoznačených neobsazených polí by mohlo být kvůli umělému odstranění degenerace hodnotou 0 obsazeno. Vyzkoušejte také, jak by probíhal výpočet hodnot duálních neznámých v případě, že by bylo hodnotou 0 obsazeno nevhodné pole. Pokud by k tomu omylem při výpočtu došlo, právě tyto komplikace nás na nevhodný výběr pole pro umělé obsazení upozorní.
147
O1 D1
O2
50
O3
O4 ×
10
D2
20
D3
×
30
×
D4
40
×
40
Příklad 11.16 Vyřešte dopravní problém: Firma prodávající luxusní dětské kočárky má dva centrální sklady v Praze a v Brně, a pravidelně od ní objednávají zboží obchody ve městech K, L a M. Aktuálně dostupná množství zboží v centrálních skladech v kusech, poptávaná množství zboží jednotlivými obchody v kusech a náklady na dopravu jednoho kočárku mezi sklady a obchody ve stovkách Kč jsou zapsány v tabulce. Jak je třeba distribuci kočárků naplánovat, aby byly náklady na dopravu minimální? Zohledněte přitom informaci, že je prioritou uspokojit nejprve požadavky obchodů ve městech L a M. K
L
Praha Brno
M
5
2
1
2
3
6
90
30
70 50
40
Řešení Jelikož
2
ai 70 + 50 = 120, i 1
3
b j 1
j
90 + 30 + 40 = 160, jedná se o nevyrovnaný dopravní
problém, který je v tomto tvaru neřešitelný, jelikož je poptáváno o 40 kočárků více, než je kapacita firemních skladů. Aby byla úloha řešitelná, zavedeme fiktivního dodavatele, který formálně tuto kapacitu dorovná. Nízká priorita dodávky do obchodu ve městě K je zajištěna nastavením vysokých prohibitivních cen přepravy jednoho kusu kočárku od fiktivního dodavatele ke zbývajícím obchodům. K Praha Brno FD
L
M
5
–
2
30 2
3
0
40
1
40
–
50
ui
6
– 10
–
vj 148
10
–
Výchozí základní řešení bylo nalezeno metodou VAM (ověřte), jelikož obvykle dává nejlepší hodnotu účelové funkce. Toto řešení je ovšem degenerované, a je třeba jedno neobsazené pole uměle obsadit množstvím 0 tak, aby toto řešení zůstalo základní. Rozmyslete si, že v této konstelaci obsazených polí je možné 0 doplnit do jakéhokoliv neobsazeného pole tabulky. Obsaďme tímto nulovým množstvím třeba jedno z polí s prohibitivní cenou, např. pole x33. K Praha Brno FD
L
-14
5
– –t
50
30
1
6
– 10
–
-9
6
–
40
+t
1
40
+t 3
10
+t 0
ui
2
–t 2
vj
M
10
–t
2
0
0 11 9
1
Pro volbu u1 = 0 určíme hodnoty duálních neznámých a dopočítáme také příslušné hodnoty zij pro neobsazená pole. Zřejmě je třeba ještě pokračovat ve výpočtu, nejvyšší redukovaná cena je rovna 10, pole x22 je třeba propojit s obsazenými poli Dantzigovým uzavřeným cyklem, který je znázorněn v tabulce. Přesouvaným množstvím je min (50, 30, 0) = 0, což se může zdát jako zbytečné, jelikož prakticky nepřesuneme žádné zboží, ale formálně je důležité, že dojde ke změně báze! K Praha
L
-4
5 2
FD
40
40 3
-4
6
–
0 0
1
1
30
50
ui
2
–
Brno
vj
M
-9
10
-10
10
– 2
–
0 1 -1
1
Po transformaci dopravní tabulky dostáváme základní řešení, které je zdánlivě shodné se základním řešením v přecházející tabulce, má však jinou bázi. Znovu proveďme test optimality, zde je proveden opět pro volbu u1 = 0. Jelikož jsou všechna zij ≤ 0, je toto řešení jediným optimálním řešením zadaného dopravního problému. Zapišme jej jako vektor řešení
xopt = (0, 30, 40, 50, 0, 0, 40, 0, 0)T, minimální hodnota účelové funkce je
zmin = 20 000 Kč. 11.4 Interpretace Slovní interpretace výsledků dopravní úlohy je jednoduchá. Hodnoty strukturních proměnných vyjadřují množství komodity přepravné od příslušného dodavatele k příslušnému
149
odběrateli. Žádné přídatné proměnné zde nefigurují, vlastní omezení musí být vždy splněna právě jako rovnice. Vyrovnaný dopravní problém je vždy řešitelný, je třeba provést diskusi k počtu řešení: uvést budˇ jediné optimální nebo zapsat obecný tvar alternativního řešení. Pokud je dodavatel pouze fiktivní, je třeba poznamenat, že jím nabízené množství komodity ve skutečnosti neexistuje a proto požadavek příslušného odběratele zůstane neuspokojen, pokud je v úloze použito fiktivního odběratele, je třeba poznamenat, že jím odebrané množství komodity zbude odpovídajícímu dodavateli na skladě, ve skutečnosti jej není kam přepravit. Příklad 11.17 Obecné řešení úlohy o distribuci jablek ještě slovně interpretujte. Řešení Zapišme tedy ještě slovní odpověď: Jelikož dopravní problém byl vyrovnaný, mohla být všechna jablka rozvezena k plně uspokojeným zákazníkům. Nejnižšího rozsahu přepravy ve výši 1 150 tkm dosáhneme tak, že 100 t jablek přepravíme od prvního dodavatele k prvnímu odběrateli, 10 t jablek přepravíme od prvního dodavatele k druhému odběrateli, 70 t jablek přepravíme od prvního dodavatele k čtvrtému odběrateli, 60 t jablek přepravíme od druhého dodavatele k třetímu odběrateli, 20 t jablek přepravíme od druhého dodavatele k čtvrtému odběrateli, 40 t jablek přepravíme od třetího dodavatele k druhému odběrateli, nebo tak, že 80 t jablek přepravíme od prvního dodavatele k prvnímu odběrateli, 10 t jablek přepravíme od prvního dodavatele k druhému odběrateli, 90 t jablek přepravíme od prvního dodavatele k čtvrtému odběrateli, 20 t jablek přepravíme od druhého dodavatele k prvnímu odběrateli, 60 t jablek přepravíme od druhého dodavatele k třetímu odběrateli, 40 t jablek přepravíme od třetího dodavatele k druhému odběrateli, popřípadě nějakou lineární kombinací těchto alternativ, ve které už by zřejmě bylo nutno využít jedné cesty (a tedy jednoho dopravního prostředku) navíc. Příklad 11.18 Řešení dopravního problému s kočárky slovně interpretujte. Řešení Jedinou nejlevnější variantou distribuce je z Prahy dopravit 30 kočárků do města L a 40 kočárků do města M a z Brna tak dopravit do města K pouze 50 kočárků, tedy o 40 kočárků méně, než bylo objednáno, neboť poptávka převyšovala nabídku. Za dopravu zaplatí firma celkem 20 000 Kč.
11.5 Shrnutí V této kapitole jsme se věnovali specifické metodě nalezení optimálního řešení dopravního problému, který je speciálním případem úloh LP. Využívá věty o rovnováze a jednoduchosti zápisu duálních vztahů do tzv. dopravní tabulky. Nevyrovnané dopravní úlohy LP nemají žádné přípustné a tedy žádné optimální řešení. Přesto, že je teoreticky neřešitelný, má praktický význam hledat způsob, jak nejefektivněji dodavateli nabízenou komoditu k odběratelům přepravit, přestože je jí nedostatek resp. přebytek. Tuto situaci jsme se naučili technicky obejít zavedením fiktivního dodavatele či odběratele. Vyrovnané dopravní problémy jsou naopak vždy řešitelné, mají buď jediné optimální, nebo alternativní řešení. 150
Případné potíže plynoucí z degenerace základních řešení jsme vyřešili formálním obsazením neobsazeného pole v dopravní tabulce hodnotou 0.
151
12. kapitola
VÍCEKRITERIÁLNÍ HODNOCENÍ VARIANT
Dosud jsme se věnovali výhradně matematickým modelům, ve kterých byla přípustná řešení posuzována pouze podle jednoho optimalizačního kriteria. V reálných situacích je však celkem obvyklé, že je třeba hodnotit varianty podle více rozhodovacích kriterií zároveň. Při řešení úloh tzv. vícekriteriálního rozhodování hledáme optimální hodnoty neznámých x = (x1, x2, …, xn)T, které posuzujeme zároveň podle několika navzájem často rozporuplných kriterií (varianta hodnocená podle jednoho kriteria jako nejlepší nemusí být jako nejlepší vyhodnocena podle kriteria dalšího). Matematický model úloh vícekriteriálního rozhodování tedy obsahuje několik účelových funkcí. Cílem úlohy může být jak nalezení jedné nejlepší varianty, popř. několika nejlepších variant, tak např. uspořádání všech variant od nejlepší nebo rozdělení variant na efektivní a neefektivní. I nadále se v našem textu věnujeme pouze matematickým modelům založeným na vztazích popsatelných lineární funkcí. Podle toho, jak jsou definovány množiny rozhodovacích variant, rozdělujeme úlohy vícekriteriálního rozhodování do dvou skupin. V této kapitole se věnujme množinám variant definovaným výčtem prvků, v kapitole následující potom množinám variant zadaným soustavou vlastních omezení. 12
12.1 Úlohy vícekriteriálního hodnocení variant Pokud je množina posuzovaných variant popsána explicitně konkrétním výčtem všech prvků, hovoříme o úlohách vícekriteriálního hodnocení variant. Může jít třeba o seznam účastníků výběrového řízení, seznam uchazečů o studium, výčet na trhu nabízených produktů apod. Definice 12.1 Matematickým modelem úlohy vícekriteriálního hodnocení variant Xi, i = 1, 2, …, n podle kriterií Yj, j = 1, 2, …, k, popsaných vektorem (yi1, yi2, …, yik) včetně typu optimalizace pro každé i, kde k, n ∈ , rozumíme úlohu nalézt „optimum“ pro tzv. kriteriální matici Y1
Y1
X1
y11
y12
X2 . . . Xn
y21 . . . yn1
y22 . . . yn2
Yk ...
y1k
...
y2k . . . ynk
. . . ...
(12.1)
reálná čísla yij , kde i = 1, 2,…, n, j = 1, 2,…, k, nazýváme kriteriální hodnoty varianty Xi podle kriteria Yj. Typem optimalizace kriteria opět rozumíme buď minimalizaci, je-li podle kriteria lépe hodnocena varianta s vyšší hodnotou, nebo maximalizaci, kdy je podle kriteria lépe hodnocena varianta s nižší hodnotou.
152
12.2 Cíle úloh VHV Jak již bylo naznačeno, v úlohách VHV se formulují cíle různých úrovní: 12.2.1 Výběr jediné varianty V úlohách, kde je třeba se rozhodnout pro realizaci jediné varianty, hledáme tzv. kompromisní variantu. Určování pořadí ostatních horších variant je v tomto případě bezpředmětné. Jde například o koupi bytu, obsazení volného pracovního místa jedním z uchazečů, nákup nové pračky. 12.2.2 Uspořádání variant V úlohách, kde je třeba seřadit varianty od nejlepší po nejhorší, hovoříme o uspořádání variant. Na rozdíl od úloh LP s jediným kriteriem je třeba předem stanovit váhy jednotlivých rozhodovacích kriterií, které vyplývají z preferencí rozhodovatele. Teprve stanovením těchto vah kriterií jsou pojmy nejlepší a nejhorší určeny jednoznačně. Jde například o seřazení zboží při spotřebitelském průzkumu, hodnocení vyspělosti zemí, bodování sportovních výkonů podle více parametrů. 12.2.3 Třídění variant V úlohách, kde je třeba rozdělit varianty do několika tříd, hovoříme o tzv. klasifikaci variant. Jde například o rozhodnutí o přijetí jednotlivých studentů v rámci přijímacího řízení, klasifikace klientů banky apod.
12.3 Vztahy mezi dvojicemi variant Pro další úvahy poznamenejme, že každé minimalizační kriterium je možné jednoduše násobením -1 transformovat na maximalizační a naopak. Pro jednoduchost předpokládejme, že všechna kriteria jsou maximalizační. Při porovnávání odpovídajících si kriteriálních hodnot dvou variant Xi a Xj nastávají tři možné situace: Definice 12.2 Řekneme, že varianta Xi dominuje variantu Xj , jestliže podle každého kriteria jsou všechny kriteriální hodnoty varianty Xi lepší než kriteriální hodnoty varianty Xj a zároveň obě varianty nejsou hodnocené stejně podle všech kriterií, píšeme ( yi1 , yi 2 ,..., yik ) ( y j1 , y j 2 ,..., y jk ) .
(12.2)
Definice 12.3 Řekneme, že varianta Xj dominuje variantu Xi , jestliže podle každého kriteria jsou všechny kriteriální hodnoty varianty Xj lepší než kriteriální hodnoty varianty Xi a zároveň obě varianty nejsou hodnocené stejně podle všech kriterií, píšeme ( y j1 , y j 2 ,..., y jk ) ( yi1 , yi 2 ,..., yik ) .
(12.3)
Definice 12.4 Řekneme, že varianty Xi a Xj ,jsou navzájem nedominované, jestliže nenastane ani jedna z předchozích dvou možností. Poznámka: Relace uspořádání „≥“ vylučuje rovnost obou vektorů kriteriálních hodnot. Definice 12.5 Řekneme, že varianta Xi je nedominovaná, jestliže neexistuje jiná varianta, která by ji dominovala. 153
Z předchozích definic vyplývá, že se stačí zabývat pouze nedominovanými variantami. 12 Věta 12.1 Kompromisní varianta je vždy nedominovaná. Nedominovaných variant je ovšem v úlohách VHV obvykle velký počet, proto kompromisní varianta není určena jednoznačně.
12.4 Metody odhadu vah kriterií Aby mohla být mezi nedominovanými variantami úlohy VHV vybrána kompromisní varianta jednoznačně, je třeba, aby rozhodovatel doplnil matematický model preferencemi důležitosti jednotlivých kriterií. Věta 12.2 Vektor vyjadřující míru důležitosti jednotlivých kriterií Y1, …, Yk ve tvaru
v v1 , v2 ,..., vk , kde vi 0 pro i = 1, 2,…, n a
k
v i 1
i
1
(12.4)
nazýváme váhový vektor, hodnota vi se nazývá váha i-tého kriteria. Pro rozhodovatele je často obtížné své preference rovnou kvantifikovat, důležitost jednotlivých kriterií je často schopen vyjádřit pouze subjektivním slovním způsobem. Potom přicházejí na řadu některé z metod odhadu vah kriterií. 12.4.1 Metoda pořadí Rozhodovatel uspořádá kriteria Y1, …, Yk sestupně podle jejich důležitosti. Každému kriteriu Yi je přiřazena hodnota pi tak, že nejdůležitějšímu kriteriu je přiřazena hodnota k, každému dalšímu kriteriu je přiřazena hodnota o jedničku nižší, než kriteriu přecházejícímu. Nejméně důležitému kriteriu je přiřazena hodnota 1. Odhad vah dostaneme znormováním hodnot pi vi
pi
.
k
p i 1
(12.5)
i
12 Příklad 12.1 Sestavte vektor normovaných vah pro pět kriterií, víte-li, že rozhodovatel je seřadil od nejdůležitějšího takto: Y3, Y1, Y5, Y2, Y4. Řešení 5
Potom p1 = 4, p2 = 2, p3 = 5, p4 = 1, p5 = 3,
p i 1
i
15 , odkud znormováním dostáváme
v1 = 4/15, v2 = 2/15, v3 = 1/3, v4 = 1/15, v5 = 1/5.
154
12.4.2 Bodovací metoda Rozhodovatel ohodnotí důležitost kriterií Y1, …, Yk vzhledem k nějaké zvolené bodovací stupnici, např. od 1 do 10, přičemž nejvyšší hodnota odpovídá nejvyšší důležitosti kriteria. Každému kriteriu Yi je tak rovnou přiřazena hodnota pi. Odhad vah dostaneme opět znormováním hodnot pi podle (12.5). Příklad 12.2 Sestavte vektor normovaných vah pro čtyři kriteria, víte-li, že rozhodovatel obodoval jejich důležitost po řadě takto: 5, 8, 1,6. Řešení 4
Potom p1 = 5, p2 = 8, p3 = 1, p4 = 6,
p i 1
i
20 , odkud znormováním dostáváme
v1 = 1/4, v2 = 2/5, v3 = 1/20, v4 = 3/10.
12.4.3 Fullerův trojúhelník k Rozhodovatel zapíše pro každou ze všech různých dvojic kriterií Y1, …, Yk kriterium 2 s vyšší důležitostí. Každému kriteriu Yi je přiřazena hodnota pi, která vyjadřuje, kolikrát bylo kriterium rozhodovatelem zapsáno. Odhad vah dostaneme opět znormováním hodnot pi podle (12.5).
Příklad 12.3 Sestavte vektor normovaných vah pro šest kriterií při nákupu pračky: cena, poruchovost, spotřeba vody v základním cyklu, počet programů, hlučnost a výkon, jestliže rozhodovatel v tzv. Fullerově trojúhelníku při párovém porovnávání vyznačil vždy důležitější ze dvojice kriterií. Význam šedých polí nejprve slovně interpretujte. Tabulka 12.1 – Fullerův trojúhleník Y1 Y2
Y1 Y3 Y2 Y3
Y1 Y4 Y2 Y4 Y3 Y4
Y1 Y5 Y2 Y5 Y3 Y5 Y4 Y5
Y1 Y6 Y2 Y6 Y3 Y6 Y4 Y6 Y5 Y6
Řešení Z Fullerova trojúhelníku můžeme v první buňce vyčíst, že rozhodovatel dává větší váhu poruchovosti než ceně atd.
155
Z tabulky rovnou vyčteme, kolikrát bylo jisté kriterium preferováno vůči všem ostatním, 6 6 zapíšeme p1 = 1, p2 = 3, p3 = 2, p4 = 3, p5 = 2, p6 = 4, pi 15 , odkud znormováním i 1 2 dostáváme v1 = 1/15, v2 = 1/5, v3 = 2/15, v4 = 1/5, v5 = 2/15, v6 = 4/15. 12.4.4 Saatyho metoda k Rozhodovatel ve dvojrozměrné tabulce porovná pro každou ze všech různých dvojic 2 kriterií Y1, …, Yk důležitost kriteria Yi uvedeného v i-tém řádku s důležitostí kriteria Yj uvedeného v j-tém sloupci. Každé dvojici kriterií Yi, Yj je tak ze škály pevně dané slovní či bodovací stupnice přiřazena hodnota sij vyjadřující míru tohoto vztahu. Stupnice převádějící verbální hodnocení na numerické bývá obvykle v této podobě: kriteria Yi, Yj jsou stejně důležitá sij = sji = 1, kriterium Yi je slabě důležitější než kriterium Yj sij = 3, sji = 1/3, kriterium Yi je silně důležitější než kriterium Yj sij = 5, sji = 1/5, kriterium Yi je velmi silně důležitější než kriterium Yj sij = 7, sji = 1/7, kriterium Yi je extrémně důležitější než kriterium Yj sij = 9, sji = 1/9.
Prvky sij můžeme interpretovat jako odhady podílu vah i-tého a j-tého kritéria v tomto pořadí. Definice 12.6 Matice S = (sij) sestavená z hodnot sij z provedeného párového porovnání, se nazývá Saatyho matice, zapisujeme ji ve tvaru Y1
Y1
Yk
Y1
s11
s12
...
s1k
Y2 . . . Yk
s21 . . . sk1
s22 . . . sk2
...
s2k . . . skk
. . . ...
(12.6)
Podmínkou použitelnosti takto vyjádřených preferencí je jejich dostatečná konzistence. Příklad 12.4 Sestavte Saatyho matici pro tři kriteria, pokud víte, že rozhodovatel určil, že první je slabě důležitější než druhé a také extrémně důležitější než třetí a druhé je slabě důležitější než třetí. Řešení Rovnou můžeme vyplnit Saatyho matici
S=
1
3
9
1/3
1
3
1/9
1/3
1
Diagonála zřejmě obsahuje samé jedničky, prvky symetrické podle hlavní diagonály jsou si navzájem převrácenými hodnotami. 156
Věta 12.3 Matice (12.6) je plně konzistentní, jestliže pro každou trojici indexů i, j, t platí sij sik .s kj .
(12.7)
Saatyho matice vyšších řádů jsou ovšem velmi často nekonzistentní. Příklad 12.5 Ověřte konzistentnost matice z předchozího příkladu
S=
1
3
9
1/3
1
3
1/9
1/3
1
Řešení Zřejmě platí s13 s12 .s 23 neboť 9 = 3.3, tato matice je plně konzistentní. Normované hodnoty vah kriterií by pak bylo možné spočítat jednoduše ze soustavy v1/v2 = s12 v1/v3 = s13 v2/v3 = s23 v1 + v2 + v3 = 1 Příklad 12.6 Odhadněte normované hodnoty vah pro předchozí příklad. Řešení Vyřešme soustavu v1/v2 = 3 v1/v3 = 9 v2/v3 = 3 v1 + v2 + v3 = 1 Po úpravě dostaneme soustavu v1 +v2 v1 -3v2 v1 v2
+v3 -9v3 -3v3
= = = =
1 0 0 0
která má jediné řešení, které zapíšeme jako vektor normovaných vah kriterií v = (9/13, 3/13, 1/13). Obvykle je ovšem u větších k velmi obtížné konzistence preferencí dosáhnout. 157
Pokud ovšem není matice S zcela konzistentní, nemá právě uvedená soustava lineárních rovnic žádné řešení. Saatyho postup pak proto dále pracuje s tzv. vlastním číslem matice S, které získáme řešením rovnice s11-
s12
...
s1k
s21 . . . sk1
s22- . . . sk2
...
s2k . . . skk-
. . . ...
=0
(12.8)
a z kořenů vzniklého polynomu k-tého stupně vybereme ten největší, označme jej max . Odhad váhového vektoru dostaneme z rovnice Sv = max v
(12.9)
Věta 12.4 Pro plně konzistentní matice je max = k, pro matice, které nejsou plně konzistentní je max > k. K posouzení míry konzistence Saatyho matice slouží následující definice Definice 12.7 Index konzistence Saatyho matice definujeme vztahem Ic
max k
(12.10)
k 1
Pro zcela konzistentní matice je tedy zřejmě Ic = 0%. Za dostatečně konzistentní se považují matice s Ic < 10%. Příklad 12.7 Pro předchozí příklad vypočtěte největší vlastní číslo Saatyho matice a určete její index konzistence. Řešení Pomocí Sarrusova pravidla upravíme determinant s parametrem
det S = =
1-
3
9
1/3
1-
3
1/9
1/3
1-
a po úpravě dostaneme 2 3 0 , se třemi kořeny (dvojnásobný kořen 0 a kořen 3).
max = 3, 158
Ic
max k k 1
33 0% . 3 1
Tím se opět potvrdila úplná konzistence Saatyho matice S. Poměrně dobrý odhad váhového vektoru lze pro mírně nekonzistentní matice získat také mnohem jednodušším výpočtem: vi ´ k
k
s
ij
pro i = 1, 2,…, k a
(12.11)
j 1
vi
vi ´ k
v ´ i 1
pro i = 1, 2,…, k.
(12.12)
i
tj. normalizujeme geometrické průměry prvků každého řádku Saatyho matice. Příklad 12.8 Proveďte odhad váhového vektoru pomocí geometrického průměru. Řešení Dosazením do vzorců (12.11) dostáváme v3´ 3 1/ 9.1/ 3.1 1/ 3 , v1´ 3 1.3.9 3 v2 ´ 3 1/ 3.1.3 1 jejich normováním dle vzorce (12.11) dostáváme 3 1 1/ 3 v1 9 / 13 v2 3 / 13 v3 1 / 13 . 1 1 1 4 4 4 3 3 3 Pro zcela konzistentní matice dávají tyto vzorce stejné odhady vah jako původní odhad.
12.5 Metody vícekriteriálního hodnocení variant Metody VHV jsou založeny na různých přístupech, jejich podrobnější popis je možné najít v [6]. V této kapitolu vedeme tři nejjednodušší. 12.5.1 Metoda váženého součtu Pro použití metody váženého součtu (Weighted Sum Approach), ozn. WSA, nejprve zkonstruujeme tzv. funkci užitku varianty podle každého kriteria, která nabývá hodnot z intervalu 0;1 , nejhorší hodnotě přiřadí užitek 0, nejlepší hodnotě přiřadí užitek 1 podle každého kriteria. Nejprve zaveďme pojem funkce užitku varianty podle typu kritéria: Definice 12.8 Funkci užitku yij´ vyjadřující užitek varianty Xi při hodnocení podle maximalizačního kriteria Yj definujeme jako 159
yij ´
yij Dj H j Dj
,
(12.13)
Funkci užitku yij´ vyjadřující užitek varianty Xi při hodnocení podle minimalizačního kriteria Yj definujeme jako yij ´
Hj yij H j Dj
.
(12.14)
kde Dj je nejnižší kriteriální hodnota a Hj je nejvyšší kriteriální hodnota kriteria Yj. Čím větší je při maximalizaci rozdíl mezi yij a nejnižší kriteriální hodnotou Dj, resp. čím větší je při minimalizaci rozdíl mezi yij a nejvyšší kriteriální hodnotou Hj, tím lépe bude varianta hodnocena hodnotou, tedy tím vyšší bude přiřazená hodnota yij´. Obecněji řečeno, hledáme podle každého kriteria zvlášť variantu nejvzdálenější od varianty nejhorší. Definice 12.9 Celkový užitek varianty Xi spočteme jako vážený součet dílčích užitků varianty podle jednotlivých kriterií k
u X i yij ´.v j
(12.15)
j 1
Hodnocené varianty uspořádáme sestupně podle hodnoty užitku u(Xi). Příklad 12.9 V tabulce jsou zaznamenány parametry důležité pro nákup automatické pračky: cena v Kč, poruchovost v %, spotřeba vody při základním cyklu v litrech, počet programů v jednotkách kusů, hlučnost v dB a výkon v počtech otáček pro čtyři vybrané typy praček. Uspořádejte pračky podle funkce užitku, preference jednotlivých kriterií jsme již vyjádřili jako váhový vektor v Příkladě 12.3. yij
cena
poruchy
voda
programy
hlučnost
výkon
typ
min.
min.
min.
max.
min.
max.
LGE FAG ETA WHI
26 400 18 200 12 800 16 500
12% 8% 2% 10%
42 48 50 58
14 24 12 16
60 72 80 72
1 600 1 800 1 200 1 400
Řešení V úvodní tabulce jsou u všech kriterií obarveny nejhorší hodnoty, které využijeme v čitateli zlomků pro výpočet y´ij. Pro maximalizační kriteria dosazujeme do vzorce (12.13) a dostáváme například
160
y 21´
26400 18200 0,603 , 26400 12800
Pro minimalizační kriteria dosazujeme do vzorce (12.13) a dostáváme například y 44´
16 12 1 0,333 . 24 12 3
Ve sloupci každého kriteria vždy dostáváme pro nejhorší varianty 0 (což je vidět v obarvených buňkách), pro nejlepší varianty 1. y´ij
cena
poruchy
voda
programy
hlučnost
výkon
WSA
vi
1/15
1/5
2/15
1/5
2/15
4/15
u(Xi)
LGE
0,000
0,000
1,000
0,167
1,000
0,667
0,4778
FAG
0,603
0,400
0,625
1,000
0,400
1,000
0,7235
ETA
1,000
1,000
0,500
0,000
0,000
0,000
0,3333
WHI
0,728
0,200
0,000
0,333
0,400
0,333
0,2974
V i-tém řádku poté spočteme pro i-tou pračku výslednou hodnotu u(Xi), ve které nyní zohledníme rozhodovatelem stanovené preference a podle které tak můžeme sestupně seřadit pračky od nejlepší po nejhorší. Například pro pračku značky FAG dostáváme
u X 2 0,603.1 / 15 0,4.1 / 5 0,625.2 / 15 1.1 / 5 0,4.2 / 15 1.4 / 15 0,7235 , jelikož jde o nejvyšší vážený součet užitků, je pračka FAG hodnocena jako nejlepší, za ní následují pračky typu LGE, ETA a WHI.
12.5.2 Metoda TOPSIS Další metoda hledá míru shody posuzovaných variant s tzv. ideální variantou (Technique for Order of Preference by Similarity to Ideal Solution), odtud ozn. TOPSIS. Nejprve transformujme každé minimalizační kriterium Yk na maximalizační tak, že minimalizaci kriteriálních hodnot yik nahradíme maximalizací jejich rozdílu od nejhorší (nejvyšší) kriteriální hodnoty Hk – yik.= yik´. Tyto kriteriální hodnoty dále transformujeme na hodnoty rij
y ij ´ 2
y ´ n
i 1
Definice 12.10 prvků
pro i = 1, 2,…, n, j = 1, 2,…, k. (12.16)
ij
Váženou kriteriální maticí W = (wij) nazýváme matici sestavenou z
wij rij .v j pro j = 1, 2,…, k. 161
(12.17)
Pro každé kriterium vyberme nejlepší a nejhorší kriteriální hodnotu, z nich uměle sestavme dvě další varianty: Definice 12.11 Mějme matici W, položme Hj = maxi (wij) a Dj = minj (wij) pro každé j. Ideální variantou rozumíme variantu sestavenou z nejlepších kriteriálních hodnot pro každé kriterium (H1, H2,…, Hk). Bazální variantou rozumíme variantu sestavenou z nejhorších kriteriálních hodnot pro každé kriterium (D1, D2,…, Dk). Definice 12.12 Vzdálenosti i-té varianty od ideální varianty definujeme jako d i
w
H j pro i = 1, 2,…, n.
k
j 1
2
ij
(12.18)
Vzdálenosti i-té varianty od bazální varianty definujeme jako d i
w k
j 1
D j pro i = 1, 2,…, n. 2
ij
(12.19)
Nyní je třeba vybrat variantu relativně nejbližší k variantě ideální. Definice 12.13
Relativní vzdálenost i-té varianty od bazální varianty definujeme ci
d i pro i = 1, 2,…, n. d i d i
(12.20)
Hodnocené varianty uspořádáme sestupně podle relativní vzdálenosti ci. Příklad 12.10 V tabulce jsou zaznamenány parametry důležité pro nákup automatické pračky: cena v Kč, poruchovost v %, spotřeba vody při základním cyklu v litrech, počet programů v jednotkách kusů, hlučnost v dB a výkon v počtech otáček pro čtyři vybrané typy praček. Uspořádejte pračky podle relativní vzdálenosti od ideální varianty, preference jednotlivých kriterií jsme již vyjádřili jako váhový vektor v Příkladu 12.3.
yij
cena
poruchy
voda
programy hlučnost
typ
min.
min.
min.
max.
min.
max.
LGE FAG ETA WHI
26 400 18 200 12 800 16 500
12% 8% 2% 10%
42 48 50 58
14 24 12 16
60 72 80 72
1 600 1 800 1 200 1 400
162
výkon
Řešení Nejprve převedeme všechna minimalizační kriteria na maximalizační odečtením kriteriálních hodnot od odpovídajících nejhorších hodnot, které jsou zvýrazněny v tabulce yij barevně. Tak získáme tabulku hodnot yij´. yij´
cena
poruchy
voda
programy hlučnost
výkon
typ
max.
max.
max.
max.
max.
max.
LGE FAG ETA WHI
0 8 200 13 600 9 900
0% 4% 10% 2%
16 10 8 0
14 24 12 16
20 8 0 8
1 600 1 800 1 200 1 400
Takto upravené kriteriální hodnoty ještě transformujeme podle (12.16), dostáváme tabulku hodnot rij, kterou doplníme také již dříve spočtenými vahami jednotlivých kriterií vj. rij
cena
poruchy
voda
programy hlučnost
vi LGE FAG ETA WHI
1/15 0,0000 0,4382 0,7267 0,5290
1/5 0,0000 0,3651 0,9129 0,1826
2/15 0,7807 0,4880 0,3904 0,0000
1/5 0,4089 0,7010 0,3505 0,4674
2/15 0,8704 0,3482 0,0000 0,3482
výkon 4/15 0,5275 0,5934 0,3956 0,4616
a podle (12.17) dopočteme prvky wij vážené kriteriální matice W. wij
cena
poruchy
voda
LGE FAG ETA WHI
0,000 0,029 0,048 0,035
0,000 0,073 0,183 0,037
0,104 0,065 0,052 0,000
0,082 0,140 0,070 0,093
Hj Dj
0,048 0,000
0,183 0,000
0,104 0,000
0,140 0,070
výkon
di+
di–
ci
0,116 0,046 0,000 0,046
0,141 0,158 0,106 0,123
0,199 0,137 0,155 0,202
0,160 0,142 0,196 0,075
0,447 0,510 0,559 0,271
0,116 0,000
0,158 0,106
programy hlučnost
Pro uměle zkonstruované ideální varianty s kriteriálními hodnotami Hj a bazální varianty s kriteriálními hodnotami Dj dopočítáme podle (12.18) a (12.19) jejich vzdálenosti od každé z hodnocených variant. Pro ně dopočteme ještě relativní vzdálenosti od bazální varianty, např. pro pračku značky ETA dostáváme c3
0,196 0,5595 , 0,196 0,155
jelikož jde o největší z relativních vzdáleností od bazální varianty, je pračka ETA hodnocena jako nejlepší, za ní následují pračky typu FAG, LGE a WHI.
163
12.5.3 Metoda AHP Metoda využívající modelu průběhu rozhodovacího procesu rozepsaného po jednotlivých úrovních hierarchické struktury (Analytic Hierarchy Process), ozn. AHP, je z uvedených metod nejnáročnější na výpočet, ovšem v praxi patří mezi nejčastěji používané postupy vícekriteriálního hodnocení variant. Jednotlivé úrovně jsou tvořeny prvky modelu různých typů uspořádanými podle jejich významu. Na nejvyšší úrovni obvykle dochází k vyhodnocování samotného cíle, tedy výběr kompromisní varianty či uspořádání variant. Tento výběr či uspořádání závisí především na kriteriích, které k rozhodnutí vedou v rámci úrovně nižší. Na nejnižší úrovni jsou obvykle porovnávané varianty, jejichž užitek zase přímo závisí na hodnotících kriteriích. Mezi prvky na nejbližších úrovních je vždy vztah přímé závislosti, a je obvykle vyjádřen numericky či slovně. Nevýhodou hierarchických metod je velké množství vztahů, u kterých je vždy třeba vyjádření párových preferencí rozhodovatele. V nejjednodušším tříúrovňovém hierarchickém modelu „I. rozhodnutí – II. k kriterií – III. n variant“ k je potřeba mezi I. a II. úrovní provést párových porovnání důležitosti kriterií (získat 2 n hodnoty vj),a mezi II. a III. úrovní provést párových porovnání preferencí variant (ovšem 2 k n vzhledem ke každému z k kriterií zvlášť a získat dílčí hodnoty wij), tedy celkem k 2 2 dílčích ohodnocení. Toto ohodnocení probíhá pomocí matic párových porovnání, mezi I. a II. úrovní jejich prvky obvykle označujeme vi a nazýváme váhy j-tého kriteria, mezi II. a III. úrovní je obvykle označujeme wij. a nazýváme preferenční index i-té varianty hodnocené podle j-tého kriteria. Součet všech ohodnocení v jedné větvi následující úrovně musí dát ohodnocení jí přímo nadřazeného prvku, musí tedy platit k
v j 1, j 1
n
w i 1
v j pro i = 1, 2,…, n, j = 1, 2,…, k
ij
(12.21)
provádí se tak vlastně stále drobnější dělení základního součtu 1 (čili 100%) na nižších úrovních. Definice 12.14
Celkový užitek i-té varianty definujeme jako k
u X i wij v j pro i = 1, 2,…, n,
(12.22)
j 1
Poznámka: Jelikož se jedná stále pouze o jinak přeskládaný součet všech wij pro i = 1, 2,…, n, j = 1, 2,…, k, platí
164
n
n
k
u X w i
i 1
i 1 j 1
ij
1
(12.23)
Hodnocené varianty uspořádáme sestupně podle celkového užitku u(Xi). Příklad 12.11 Pračky s parametry uvedenými v předcházejících příkladech uspořádejte podle součtu preferenčních indexů, jestliže rozhodovatel ještě ohodnotil míru preferencí jednotlivých variant zvlášť vzhledem ke každému z rozhodovacích kriterií. Původní slovní formulace rovnou nahradíme numerickým vyjádřením, kvůli úspoře místa jsou jednotlivé preference uvedeny až v Tabulka 12.2 - Tabulka 12.4. (Připomeňme význam těchto preferencí pouze na konkrétním příkladu: Z tabulek lze vyčíst, že rozhodovatel přikládá extrémně silnou preferenci 2% poruchovosti před 12% poruchovostí, slabou preferenci ceny 16 500 Kč před cenou 18 200 Kč, pračky s hlučností 72 dB hodnotí jako zcela srovnatelné atd. Interpretované výsledky jsou slabě vyznačeny v tabulkách.) Váhy kriterií použijte z předchozího příkladu. Řešení Dílčí preference v i-té tabulce normalizujeme na součet váhy s celkovým součtem vi, podle vtahu (12.11) odvodíme preferenční indexy wij. Výsledky jsou uvedeny v příslušných tabulkách, jde o řádkové geometrické průměry násobené příslušnou vahou kritéria. Tabulka 12.2 – Matice párových porovnání pro kriterium cena, poruchovost cena
26 400
18 200
1 5 9 5
26 400 18 200 12 800 16 500
1/5 1 5 3
12 800
1/9 1/5 1 1/5
16 500
1/5 1/3 5 1
v1
wi1
por.
0,003 0,008 0,042 0,014
12%
12% 1 5 9 3
8% 2% 10%
8% 1/5 1 7 1/3
2%
10%
1/9 1/7 1 1/7
1/3 3 7 1
v2
1/15
wi2 0,009 0,036 0,137 0,018 1/5
Například
w11 1 4 1. 1 . 1 . 1 0,003 , w12 1 4 5.1. 1 . 1 0,008 , 15 5 9 5 15 5 3 w21 1
5
4
1. 1 . 1 . 1 0,009 atd. 5 9 3
Tabulka 12.3 – Matice párových porovnání pro kriterium spotřeba vody, počet programů voda 42 48 50 58
42 1 1/5 1/5 1/9
48 5 1 1/3 1/7
50
58
5 3 1 1/5
9 7 5 1
v3
wi3
prog.
0,082 0,030 0,016 0,005 2/15
14 24 12 16
14 1 7 1/3 3
24 1/7 1 1/9 1/5
12
16 3 9 1 3
1/3 5 1/3 1
v4
165
wi4 0,019 0,133 0,011 0,037 1/5
Pro kontrolu je dobré sečíst získané hodnoty ve sloupci wij, musí dohromady dát vj.
Tabulka 12.4– Matice párových porovnání pro kriterium hlučnost, výkon hluk
60
60 72 80 72
72
1 1/5 1/7 1/5
5 1 1/3 1
80
72 7 3 1 3
wi5
5 1 1/3 1
v5
výkon 1 600
0,084 0,020 0,008 0,020 2/15
1 600 1 800 1 200 1 400
1 800
1 200
1 400
1/3 1 1/7 1/5
5 7 1 3
3 5 1/3 1
1 3 1/5 1/3
v6
wi6 0,070 0,150 0,015 0,031 4/15
Pro přehlednost jsou hodnoty všech preferenčních indexů wij, uspořádány do Tabulky Tabulka 12.5 včetně kontrolních součtů, tj. vah jednotlivých kriterií. Tabulka 12.5 – Preferenční indexy všech variant podle všech kriterií AHP
cena
poruchy
voda
programy
hlučnost
výkon
wij
wi1
wi2
wi3
wi4
wi5
wi6
u(Xi)
LGE FAG ETA WHI
0,003 0,008 0,042 0,014
0,009 0,036 0,137 0,018
0,082 0,030 0,016 0,005
0,019 0,133 0,011 0,037
0,084 0,020 0,008 0,020
0,070 0,150 0,015 0,031
0,267 0,379 0,228 0,126
1/15
1/5
2/15
1/5
2/15
4/15
1,000
V i-tém řádku poté spočteme pro i-tou variantu (pračku) její celkový užitek u(Xi),
u X 2 0,008 0,036 0,030 0,133 0,020 0,150 0,379 , jelikož jde o nejvyšší celkový užitek, je pračka FAG hodnocena jako nejlepší, za ní následují pračky typu LGE, ETA a WHI. Poznámka: Stejné pořadí jako při použití metody AHP jsme získali také pomocí metody váženého součtu WSA, zatímco pomocí metody TOPSIS byla jako nejlepší vyhodnocena varianta jiná. Obecně tedy různé přístupy k vyhodnocování kompromisní varianty či k uspořádání všech variant nemusí dát stejný výsledek.
166
13. kapitola
VÍCEKRITERIÁLNÍ LP
13.1 Úlohy vícekriteriálního lineárního programování Je-li množina všech posuzovaných variant popsána implicitně, tedy soustavou omezujících podmínek, hovoříme o úlohách vícekriteriálního programování, pokud jsou navíc tato vlastní omezení popsána lineární funkcí stejně jako v modelu úloh LP, hovoříme o úlohách vícekriteriálního lineárního programování. V dalším textu může být pro úlohu vícekriteriálního lineárního programování použita také zkratka úloha VLP. 13 Definice 13.1 Matematickým modelem úlohy vícekriteriálního lineárního programování s n neznámými, m vlastními omezeními a k rozhodovacími kritérii, kde k, m, n ∈ , rozumíme úlohu nalézt „optimum“
(13.1)
za podmínek
a pro
.
Reálná čísla vj, kde j = 1, 2,…, n, nazýváme strukturní neznámé či proměnné, reálná čísla aij, kde i = 1, 2,…, m, j = 1, 2, …, n, nazýváme strukturní koeficienty (v i-tém vlastním omezení u j-té strukturní neznámé), reálná čísla bi, kde i = 1, 2,…, m, nazýváme požadavková čísla či pravé strany (i-tého vlastního omezení), reálná čísla chj, kde j = 1, 2,…, n a h = 1, 2,…, k, nazýváme ceny či cenové koeficienty (h-tého hodnotícího kriteria u j-tého procesu). Poznámka: Při zachování dříve zavedeného značení můžeme matematický model z (3.6) zapsat stručně jako
(13.2)
167
za podmínek (13.3)
, kde ch = (ch1, ch2, …, chn) T je vektor cenových koeficientů h-tého kriteria, v = (v1, v2, …, vn)T je vektor strukturních neznámých, b = (b1, b2, …, bm)T je vektor pravých stran, v = (0; 0; …;0)T. je nulový vektor (n – složkový), A = (aij) je matice strukturních koeficientů typu mxn.
V (3.8) jsou všechna vlastní omezení typu „ “, obecněji můžeme připustit, že mohou být také typu „<“, „ “, „>“ nebo „=“.
13.2 Vztahy mezi dvojicemi variant Definice 13.2 Libovolné přípustné řešení úlohy VLP (13.1) zapisujme jako vektor xp = (c1xp, c2xp, …, ckxp). Pro jednoduchost opět předpokládejme, že všechna kriteria jsou maximalizační. Při porovnávání odpovídajících si kriteriálních hodnot dvou přípustných vektorů kriteriálních hodnot xp a xq nastávají tři možné situace: Definice 13.3 Řekneme, že řešení xp dominuje řešení xq, jestliže po dosazení do účelových funkcí jsou všechny kriteriální hodnoty vektoru xp lepší než kriteriální hodnoty vektoru xq a zároveň oba vektory nedávají stejné hodnoty po dosazení do všech účelových funkci, píšeme (c1x p, c2x p, …, ckx p) ≥ (c1x q, c2x q, …, ckx q).
(13.4)
Definice 13.4 Řekneme, že řešení xq dominuje řešení xp, jestliže po dosazení do účelových funkcí jsou všechny kriteriální hodnoty vektoru xq lepší než kriteriální hodnoty vektoru xp a zároveň oba vektory nedávají stejné hodnoty po dosazení do všech účelových funkci, píšeme (c1x q, c2x q, …, ckx q) ≥ (c1x p, c2x p, …, ckx p).
(13.5)
Poznámka: Relace uspořádání „≥“ vylučuje rovnost obou vektorů kriteriálních hodnot. Definice 13.5 Řekneme, že řešení xq a xp jsou navzájem nedominovaná, jestliže nenastává (13.4) ani (13.5). Analogicky k řešení úloh VHV je cílem řešení úloh VLP opět nalezení kompromisního řešení. Z předchozích definic analogicky vyplývá, že se stačí zabývat pouze nedominovanými řešeními.
168
13.3 Metody řešení úloh VLP Metody VLP jsou založeny na různých přístupech, obvykle převádějí úlohu VLP s několika účelovými funkcemi na řešení jedné či více úloh LP s jedinou účelovou funkcí běžnou simplexovou metodou. 13.3.1 Agregace účelových funkcí Pokud jsou rozhodovatelem stanoveny preference jednotlivých účelových funkcí z1, z2, …, zk normalizovanými váhami v1, v2, …, vk, kde
k
v i 1
i
1 , je možné zkonstruovat z účelových
funkcí funkci jedinou podle předpisu k z vi c i x .
(13.6)
i 1
Kompromisní řešení zadané úlohy VLP je nalezeno jako optimální řešení úlohy LP, která na původní množině přípustných řešení maximalizuje tuto funkci (13.6). 13 Příklad 13.1 Pomocí agregace účelových funkci nalezněte kompromisní řešení úlohy VLP zadané matematickým modelem ≤ 8 ≤ 5 ≤ 4 ≥ 0 x2 ≥ 0 z1 = 2x1 +x2 … max. z2 = 2x1 +5x2 … max. za předpokladu, že rozhodovatel přikládá účelové funkci z2 čtyřikrát větší váhu než účelové funkci z1. VLP:
x1 x1 x1 x1
+2x2 +x2
Řešení Zřejmě tedy jsou váhy v1 = 0,2 a v2 = 0,8. Sjednoťme nejprve případné rozdílné jednotky obou účelových funkcí, abychom jejich hodnoty mohli sčítat. Jejich hodnoty je třeba vyjádřit relativně v bezrozměrném tvaru. Nabízí se například možnost vztáhnout tyto hladiny k optimálním hodnotám dílčích účelových funkcí z1max a z2max. Sestavíme tedy matematické modely dvou jednoduchých úloh LP: LP1
z1
x1 x1 x1 x1 = 2x1
+2x2 +x2 x2 +x2
LP2
≤ 8 ≤ 5 ≤ 4 ≥ 0 ≥ 0 … max.
z2
x1 x1 x1 x1
+2x2 +x2
x2 = 2x1 +5x2
a nalezneme (např. pomocí simplexové metody) jejich optimální řešení: 169
≤ 8 ≤ 5 ≤ 4 ≥ 0 ≥ 0 … max.
x1opt = (4,1), z1max = 9, x2opt = (0,4), z2max = 20. Agregací relativizovaných účelových funkcí získáváme po úpravách z
0,2.(2 x1 x2 ) 0,8.(2 x1 5 x2 ) 9 20
0,2.2 0,8.2 0,2.1 0,8.5 z x1 x2 20 20 9 9 z
28 2 x1 x2 225 9
a sestavíme matematický model úlohy LP, k odlišení použijme indexu 0 LP0:
x1 x1 x1 x1
+2x2 +x2 x2
z
=
28
225
x1 + 2
9
x2
≤ ≤ ≤ ≥ ≥ …
8 5 4 0 0 max.
jejíž optimální řešení
x0opt = (2,3), s hodnotou zmax 0,9156, je zároveň kompromisním řešením zadané úlohy VLP. Účelové funkce nabývají kompromisních hodnot
z1 = 7, z2 = 19. 13.3.2 Kompromisní řešení podle minimální komponenty Tato metoda se snaží maximalizovat nejhorší z hodnot (kvůli srovnatelnosti opět relativizovaných) účelových funkcí z1, z2, …, zk. Tuto hodnotu označíme a budeme ji nazývat minimální komponenta řešení. Kompromisní řešení zadané úlohy VLP je nalezeno jako optimální řešení úlohy LP maximalizovat účelovou funkci
z=
(13.7)
na množině přípustných řešení původní úlohy VLP doplněné o podmínky
zj/zjmax ≥ pro každé j = 1, 2, …, k.
(13.8)
Jinými slovy usilujeme o to, aby nejhorší z hodnot normalizovaných účelových funkcí byla nakonec co nejlepší.
170
Příklad 13.2 Nalezněte kompromisní řešení podle minimální komponenty pro úlohu VLP zadanou matematickým modelem VLP:
x1 x1 x1 x1
+2x2 +x2
x2 = 2x1 +x2 = 2x1 +5x2
z1 z2
≤ 8 ≤ 5 ≤ 4 ≥ 0 ≥ 0 … max. … max.
Řešení Sjednoťme opět případné rozdílné jednotky obou účelových funkcí, abychom jejich hodnoty mohli porovnávat v relativním tvaru, vztaženém k optimálním hodnotám dílčích úloh LP
x1opt = (4,1), z1max = 9, x2opt = (0,4), z2max = 20 stejně jako v předchozím příkladu. Sestavíme matematický model úlohy LP maximalizující minimální komponentu : LP:
≤ 8 ≤ 5 ≤ 4 + x2) /9 ≥ + 5x2) /20 ≥ ≥ 0 x2 ≥ 0 z = … max. Její optimální řešení nalezneme např. pomocí doplňku Řešitel v MS Excel. x1 x1 x1 (2x1 (2x1 x1
+ +
2x2 x2
xopt (2,6596;2,34,4), s hodnotou = zmax 0,8511, Tak jsme získali kompromisní řešení zadané úlohy VLP. Účelové funkce nabývají kompromisních hodnot
z1 7,6596, z2 17,0213. Z optimální hodnoty konstanty lze také vyčíst, že maximální relativní odchylka od ideálních hodnot obou účelových funkcí (1 – ) je 14,9%, čímž můžeme měřit míru shody kompromisního řešení s dílčími optimy jednotlivých účelových funkcí. 13.3.3 Minimalizace relativní vzdálenosti od ideálních hodnot Ideální hodnotou účelové funkce zi nazýváme její optimální hodnotu, kterou označíme ziopt pro každé i = 1, 2, …, k. Tato metoda se snaží minimalizovat vážený součet relativních odchylek hodnot od příslušných ideálních hodnot.
171
Pokud jsou rozhodovatelem stanoveny preference jednotlivých účelových funkcí z1, z2, …, zk normalizovanými váhami v1, v2, …, vk, kde
k
v i 1
i
1 , zkonstruujeme funkci z podle předpisu
k z vi z iopt c i x .
(13.9)
i 1
Kompromisní řešení zadané úlohy VLP je nalezeno jako optimální řešení úlohy LP, která na původní množině přípustných řešení maximalizuje tuto funkci (13.6). Příklad 13.3 Pomocí agregace účelových funkci nalezněte kompromisní řešení úlohy VLP zadané matematickým modelem VLP:
z1 z2
x1 x1 x1 x1
+2x2 +x2
x2 = 2x1 +x2 = 2x1 +5x2
≤ 8 ≤ 5 ≤ 4 ≥ 0 ≥ 0 … max. … max.
za předpokladu, že rozhodovatel přikládá účelové funkci z2 čtyřikrát větší váhu než účelové funkci z1. Řešení Zřejmě tedy jsou váhy v1 = 0,2 a v2 = 0,8. Sjednoťme opět případné rozdílné jednotky obou účelových funkcí, abychom jejich hodnoty mohli porovnávat v relativním tvaru, vztaženém k optimálním hodnotám dílčích úloh LP
x1opt = (4,1), z1max = 9, x2opt = (0,4), z2max = 20. Součtem vážených odchylek hodnot od těchto optimálních hodnot obou účelových funkcí po relativizaci a úpravách získáváme z
0,2.(9 2 x1 x2 ) 0,8.(20 2 x1 5 x2 ) 9 20 z 1
28 2 x1 x2 225 9
Sestavíme matematický model úlohy LP minimalizující součet těchto relativních vzdáleností LP: x1 +2x2 ≤ 8 x1 +x2 ≤ 5 x1 ≤ 4 x1 ≥ 0 x2 ≥ 0 28 2 x x z = 1 min. 225 1 9 2 … 172
Po porovnání tohoto matematického modelu s modelem LP0 je zřejmé, že dávají stejné kompromisní řešení, účelové funkce lze navzájem zaměnit (viz princip převodu minimalizační úlohy na maximalizační úlohu). 13.3.4 Cílové programování Nejenom ve vícekriteriálním lineárním programování se uplatní další princip hledání řešení úloh LP, jehož způsob použití na tomto místě alespoň nastíníme a předvedeme ve dvou obměnách na konkrétních příkladech. Dosud jsme se setkávali s úlohami LP, které obecně vždy měly množinu přípustných řešení omezenou soustavou vlastních omezení s kapacitami resp. požadavky dříve ozn. bi a podmínek nezápornosti, a na ní bylo úkolem najít optimální, resp. kompromisní řešení vzhledem k zadaným kritériím. Formulace úloh cílového programování Některé úlohy lineárního programování jsou ovšem formulovány odlišně: V rámci tzv. cílového programování (Goal Programming) rozlišujeme dva typy podmínek, používáme pro ně pojem cíle. Pokud je nutné podmínky pro kapacity či požadavky striktně dodržet, tak jako tomu bylo u vlastních omezení u úloh popsaných výše, hovoříme o tzv. pevných cílech, k vyrovnání těchto podmínek opět postačí (jednostranně orientované) přídatné neznámé. pokud v podmínce může být kapacita mírně překročena či požadavek mírně nedosažen, hovoříme o tzv. volných cílech, a pro jejich pravé strany používáme označení gi a nazýváme je cílové hodnoty (goal values). Pro pravou stranu i-tého volného cíle použijeme k vyjádření kladné odchylky od zadané cílové hodnoty gi tzv. kladnou odchylkovou proměnnou, kterou budeme značit symbolem di+ a k vyjádření záporné odchylky od zadané cílové hodnoty gi tzv. zápornou odchylkovou proměnnou, kterou budeme značit symbolem di–, přičemž pro odchylkové proměnné samozřejmě platí podmínky nezápornosti a alespoň jedna z obou odchylkových proměnných je proto vždycky nulová. Definice 13.6 Volné cíle zapisujeme ve tvaru n
a j 1
ij
x j d i d i g i , kde d i 0 ; d i 0 ,
(13.10)
nazýváme jej i-té bilanční omezení. Pokud bylo původní i-té omezení před úpravu popsáno nerovnicí typu „≤“, je zřejmé, že by bylo lepší, kdyby hodnota kladné odchylkové proměnné di+ zůstala nulová. Pokud bylo původní i-té omezení před úpravu popsáno nerovnicí typu „≥“, je zřejmé, že by bylo lepší, kdyby hodnota záporné odchylkové proměnné di– zůstala nulová. V obou případech hovoříme o tzv. nežádoucích odchylkách, jejichž kladné hodnoty znamenají (byť povolené) nedodržení i-tého omezení. Účelová funkce modelu cílového programování je vždy minimalizací nežádoucích odchylek: 1) minimalizace záporné odchylkové proměnné di– vede k získání řešení, které se k cílové hodnotě gi blíží zdola, setkáme se s ní např. u požadavku konkrétního minimálního zisku. 2) minimalizace záporné odchylkové proměnné di+ vede k získání řešení, které se k cílové hodnotě gi blíží shora, setkáme se s ní např. u požadavku konkrétního maximálního rizika investice, 173
3) minimalizace součtu záporné a kladné odchylkové proměnné di– + di+ vede k získání řešení, které se k cílové hodnotě gi blíží oboustranně, setkáme se s ní např. u požadavku dodržení přibližného množství nějaké složky jídelníčku. Úlohy cílového programování obvykle obsahují více cílů, jejichž důležitost může být opět zadána rozhodovatelem, a to buď v podobě uspořádání podle důležitosti, nebo pomocí vah. Cíle uspořádané podle preferencí Jsou-li cíle rozhodovatelem pouze uspořádány sestupně dle jeho preferencí, resp. jsou-li cíle zařazeny do jednotlivých preferenčních stupňů, řešíme úlohu v několika krocích, sestupně pro jednotlivé stupně, tedy od cílů s nejvyšší preferencí. Při jejich optimalizaci (minimalizaci součtu jejich nežádoucích odchylek) dojde ke zmenšení množiny přípustných řešení, v dalším stupni je již optimalizace cílů s nižší preferencí provedena na této menší množině. Postup opakujeme tak dlouho, dokud má zmenšená množina přípustných řešení více než jeden prvek, který je prohlášen za optimální řešení. Příklad 13.4 Nalezněte optimální řešení úlohy, kdy musí být dodržena vlastní omezení x1 x1 x1 x1
+2x2 +x2 x2
≤ ≤ ≤ ≥ ≥
8 5 4 0 0
a sledujeme dva cíle: zisk vyjádřený rovnicí z1 = 2x1 + x2 by měl dosáhnout alespoň 8 milionů a riziko vyjádřené rovnicí z2 = 2x1 + 5x2 by nemělo přesáhnout 20%, přičemž rozhodovatel přikládá vyšší důležitost cíli prvnímu. Poznámka: Pro názornost je možné průběh výpočtu sledovat paralelně v grafickém řešení úlohy. Řešení Sestavme nejprve matematický model úlohy: Pevné cíle úlohy tvoří prvních pět podmínek, není třeba je upravovat. Volné cíle úlohy jsou tvořeny podmínkami pro způsob dodržení požadovaných hodnot zisku a rizika, zapíšeme je ve formě dvou bilančních omezení (včetně podmínek nezápornosti pro všechny odchylkové proměnné), dostáváme rovnice 2x1 x1
+x2 +x2
+d1– d1–
–d1+ d1+
+d2– +d2–
–d2+
–d2+
≤ ≤ ≥ ≥ ≥ ≥
8 20 0 0 0 0
Nežádoucími odchylkami jsou v tomto případě proměnné d1– a d2+. V grafickém znázornění nastává situace, že současné dosažení zisku 8 milionů Kč a nepřekročení rizika 20% není možné, průsečík odpovídajících izokvant neleží v množině 174
přípustných řešení pro pevné cíle. Je tedy nutné hledat kompromisní variantu výše uvedeným postupem: V prvním kroku výpočtu se budeme věnovat možnosti splnění volného cíle nejvyšší důležitosti – důležitosti I. stupně, tedy dosažení zisku ve výši 8 milionů Kč. Sestavíme matematický model úlohy LP, ve které budeme minimalizovat hodnotu příslušné nežádoucí odchylky d1–: x1 x1 x1 2x1 2x1 x1
+2x2 +x2 +x2 +5x2 x2
+d1–
–d1+
d1–
d1+
+d2–
+d2–
d1–
zI =
–d2+
–d2+
≤ ≤ ≤ ≤ ≤ ≥ ≥ ≥ ≥ ≥ ≥ …
8 5 4 8 20 0 0 0 0 0 0 min.
Tato úloha má alternativní řešení, zapišme je jako vektory
xIopt1 = (3,2), zImin = 0, xIopt2 = (4,0), zImin = 0. V grafickém řešení odpovídá tento postup nalezení průniku původní množiny přípustných řešení s izokvantou z1 = 2x1 + x2 = 8, jde o úsečku bodů s vrcholy, které odpovídají nalezeným vektorům řešení. Množina přípustných řešení pro další krok nemá pouze jeden prvek, pokračujeme tedy v optimalizaci. Ve druhém kroku výpočtu se budeme věnovat možnosti splnění volného cíle nižší důležitosti – důležitosti II. stupně, tedy rizika nepřekračujícího 20%. Sestavíme matematický model další úlohy LP, ve které budeme minimalizovat hodnotu příslušné nežádoucí odchylky d2+, tedy
zII = d2+ … min. ale zřejmě postačí nahradit ji jednodušší úlohou LP: x1 x1 x1 2x1 x1
z2 = 2x1 s jediným optimálním řešením
+2x2 +x2 +x2 x2 +5x2
≤ ≤ ≤ = ≥ ≥ …
8 5 4 8 0 0 min.
xIIopt = (4,0), přičemž z1 = 8 mil. Kč, z2 = 8%. 175
samotnou hodnotu zIImin zde není potřeba určovat. Toto řešení tedy odpovídá tomu, že rozhodovatel trvá především na tom, aby se zisk pohyboval kolem 8 mil. Kč. Grafické nalezení tohoto optimálního řešení odpovídá posouvání izokvanty z2 = 2x1 + 5x2 na úsečce zbývajících přípustných řešení směrem, ve kterém hodnota z2 klesá, aby bylo dosaženo co možná nejnižšího rizika, tedy směrem k počátku souřadné soustavy. (Poznamenejme, že doplněním rovnice do pevných cílů, je úloha obohacena o další základní řešení, která v grafu odpovídají průsečíkům odpovídající přímky s hraničními přímkami původních polorovin. Takto vznikl také bod [4;0], který je vybrán jako kompromisní řešení.) Touto metodou bylo vybráno kompromisní řešení, při němž je dosaženo preferovaných 8 milionů Kč a následně se podařilo snížit riziko až na 8%. Poznámka: Pokud by byly preference volných cílů určené rozhodovatelem opačné, zřejmě bychom nejprve nastavili riziko na hladinu 20% a poté hledali optimum zisku. Z grafického vyjádření lze vyčíst, že by v prvním kroku bylo nalezeno jediné řešení (0,4) a druhý krok bychom již na jednoprvkové množině neprováděli, nalezené optimum by rovnou bylo hledaným kompromisním řešením.
xIopt = (0,4), přičemž z1 = 4 mil. Kč, z2 = 20%. Toto řešení tedy odpovídá tomu, že rozhodovatel trvá především na tom, aby se riziko pohybovalo kolem hladiny 20%. Volné cíle s důležitostí zadanou vahami Jsou-li cíle rozhodovatelem ohodnoceny pomocí vah tak, že vi– je váha přiřazená i-té záporné nežádoucí odchylce a vi je váha přiřazená i-té kladné nežádoucí odchylce, přičemž k
k
i 1
i 1
vi vi 1, minimalizujeme celkový vážený součet všech relativních nežádoucích odchylek od příslušných cílových hodnot gi a účelová funkce je obvykle ve tvaru d i– di z v vi pro všechna i. gi gi i i – i
(13.11)
Příklad 13.5 Nalezněte optimální řešení úlohy, kdy musí být dodržena vlastní omezení x1 x1 x1 x1
+2x2 +x2 x2
≤ ≤ ≤ ≥ ≥
8 5 4 0 0
a sledujeme dva cíle: zisk vyjádřený rovnicí z1 = 2x1 + x2 by měl dosáhnout alespoň 8 milionů a riziko vyjádřené rovnicí z2 = 2x1 + 5x2 by nemělo přesáhnout 60%, přičemž dodržení prvního cíle přikládá rozhodovatel váhu 40% a dodržení druhého cíle přikládá rozhodovatel váhu 40%. 176
Řešení Tentokrát řešení spočívá v řešení jediné úlohy LP, ve kterém minimalizujeme vážený součet relativní záporné odchylky od zisku ve výši 8 mil. Kč a relativní kladné odchylky od 20% rizika: z 0,6
d1 d 0,4 2 … min. 8 20
Řešíme tedy úlohu LP s matematickým modelem ve tvaru x1 x1 x1 2x1 2x1 x1
+2x2 +x2 +x2 +5x2 x2
+d1–
d1 –
0,075d1
z=
–d1+
d1+ –
+d2–
+d2–
–d2+
–d2+ +0,02d2+
≤ ≤ ≤ ≤ ≤ ≥ ≥ ≥ ≥ ≥ ≥ …
8 5 4 8 20 0 0 0 0 0 0 min.
s jediným optimálním řešením
xopt = (3,2), přičemž z1 = 8 mil. Kč, z2 = 16%. Samotnou hodnotu zmin zde není potřeba určovat, tentokrát slovně reprezentujme získané hodnoty odchylkových proměnných d1– = 0; d1+ = 0; d2– = 4; d2+ = 0. První volný cíl dosažení zisku 8 mil. Kč byl splněn přesně, kladná i záporná odchylková proměnná je tedy nulová, záporná odchylková proměnná druhého volného cíle vyjadřuje, že ve skutečnosti bylo dosaženo rizika dokonce o 4 % nižšího, než bylo maximálně povolených (cílových) 20 %, což koresponduje s hodnotou z2 = 16%. Princip cílového programování má své použití v široké škále dalších typů úloh operačního výzkumu, a to všude tam, kdy nemusí být nerovnostní podmínky zcela nutně dodrženy. Obecně je ovšem potřeba celkovou míru tohoto nedodržení (překročení) minimalizovat.
177
POUŽITÁ LITERATURA [1] LAGOVÁ, Milada.: Lineární modely. VŠE, Praha 2004, s. 286, ISBN 80-245-0816-8. [2] LAGOVÁ, Milada.: Lineární modely v příkladech. VŠE, Praha 2002, s. 273, ISBN 80-245-0456-1. [3] JABLONSKÝ, Josef: Operační výzkum – kvantitativní modely pro ekonomické rozhodování. Professional Publishing, Praha 2002, s. 320, ISBN 80-86419-23-1. [4] KOŘENÁŘ, V., a Milada LAGOVÁ, Josef JABLONSKÝ.: Optimalizační metody. VŠE, Praha 2003, s. 187, ISBN 80-245-0609-2. [5] PELIKÁN, Jan. Diskrétní modely v operačním výzkumu. 1. vyd. [Praha]: Professional Publishing, ©2001. 163 s. ISBN 80-86419-17-7. [6] FIALA, Petr, JABLONSKÝ, Josef a MAŇAS, Miroslav. Vícekriteriální rozhodování: Určeno pro stud. všech fakult VŠE Praha. 1. vyd. Praha: Vysoká škola ekonomická, 1994. 316 s. ISBN 80-7079-748-7. [7] DLOUHÝ, Martin. Simulace pro ekonomy. Vyd. 1. Praha: Vysoká škola ekonomická, 2001. 126 s. ISBN 80-245-0155-4. [8] STOLÍN, Radek. Matematika pro ekonomy [online]. Jihlava: VŠPJ, 2010 [cit. 2014-01-01]. Dostupné z: elearning.vspj.cz
178