4ek311 –operační výzkum
TRANSCRIPT
4EK311 – Operační výzkum
3. Optimalizační software a
stabilita řešení úloh LP
3.1 Příklad – matematický model
© Mgr. Sekničková Jana, Ph.D. 2
Lis: 1 𝑥1 + 2 𝑥2 ≤ 120 [min]Balení: 1 𝑥1 + 4 𝑥2 ≤ 180 [min]Poptávka: 1 𝑥1 − 1 𝑥2 ≥ 90 [krabiček]Šroubky: 1 𝑥1 + 0 𝑥2 ≤ 110 [krabiček]Nezápornost: 𝑥1, 𝑥2 ≥ 0 [krabiček]
Zisk: 40 𝑥1 + 60 𝑥2 …max [Kč]
45
40
90
60
© Mgr. Sekničková Jana, Ph.D. 3
x1
x2
120 1800
-90
110
Zmax
OPTIMUM
60
(2)
(1)
(3)(4)
Grafické řešení úlohy LP
Optimální řešení zadané úlohy leží na průsečíku dvou hraničních přímek omezení (1) a (4):
𝑥1 + 2𝑥2 = 120
𝑥1 = 110
Odtud je 𝑥1 = 110, 𝑥2 = 5
Bod optimálního řešení je tedy
𝐱∗ = 110, 5
Hodnota účelové funkce je po dosazení
𝑧 = 40𝑥1 + 60𝑥2 = 40 ∙ 110 + 60 ∙ 5 = 4700
3.2 Grafické řešení úlohy LP
© Mgr. Sekničková Jana, Ph.D. 4
Lis: 1 𝑥1 + 2 𝑥2 ≤ 120 [min]Balení: 1 𝑥1 + 4 𝑥2 ≤ 180 [min]Poptávka: 1 𝑥1 − 1 𝑥2 ≥ 90 [krabiček]Šroubky: 1 𝑥1 + 0 𝑥2 ≤ 110 [krabiček]Nezápornost: 𝑥1, 𝑥2 ≥ 0 [krabiček]
Zisk: 40 𝑥1 + 60 𝑥2 …max [Kč]
Množina přípustných
řešení
x1
x2
0
60
120
(1)
45
180
(2)
-90
90
(3)(4)
110
© Mgr. Sekničková Jana, Ph.D. 5
Základní řešení ESRZákladní přípustná
řešení úlohy LP
D
AC
B
Řešení dle základní věty LP
Výpočet základních přípustných řešení:
A = 90, 0 , 𝐱 = 90, 𝟎, 30, 90, 𝟎, 20 T
B = 110, 0 , 𝐱 = 110, 𝟎, 10, 70, 20, 𝟎 T
C = 110, 5 , 𝐱 = 110, 5, 𝟎, 50, 15, 𝟎 T
D = 100, 10 , 𝐱 = 100, 10, 𝟎, 40, 𝟎, 10 T
𝑧𝐴 = 40 𝑥1 + 60 𝑥2 = 40 ∙ 90 + 60 ∙ 0 = 3600
𝑧𝐵 = 40 𝑥1 + 60 𝑥2 = 40 ∙ 110 + 60 ∙ 0 = 4400
𝑧𝐶 = 40 𝑥1 + 60 𝑥2 = 40 ∙ 110 + 60 ∙ 5 = 4700
𝑧𝐷 = 40 𝑥1 + 60 𝑥2 = 40 ∙ 100 + 60 ∙ 10 = 4600
3.3 Řešení dle základní věty LP
© Mgr. Sekničková Jana, Ph.D. 6
Lis: 1 𝑥1 + 2 𝑥2 ≤ 120 [min]Balení: 1 𝑥1 + 4 𝑥2 ≤ 180 [min]Poptávka: 1 𝑥1 − 1 𝑥2 ≥ 90 [krabiček]Šroubky: 1 𝑥1 + 0 𝑥2 ≤ 110 [krabiček]Nezápornost: 𝑥1, 𝑥2 ≥ 0 [krabiček]
Zisk: 𝑧 = 40 𝑥1 + 60 𝑥2 …max [Kč]
Optimální řešení:𝐱∗ = 110, 5, 0, 50, 15, 0 T
𝑧 = 4700
Graficky lze řešit úlohy LP, které obsahují dvě (max. tři) proměnné
Dle základní věty LP lze řešit i mnohem větší úlohy
Tzv. metoda hrubé síly
Vyčíslení všech ZŘ ESR (kolik jich je?)
Redukce na ZPŘ úlohy LP
Výpočet hodnoty účelové funkce pro všechna ZPŘ
Výběr optimálního řešení
I ZPŘ však může být opravdu mnoho
m = 4, n = 2, ZŘ 14 → ZPŘ 4
m = 100, n = 10, ZŘ téměř 47 bilionů → ZPŘ cca 14 bilionů
3.4 Řešení pomocí softwaru
© Mgr. Sekničková Jana, Ph.D. 7
V praxi se však používá efektivní prohledávání množiny základních přípustných řešení pomocí simplexové metody (či metody vnitřního bodu, apod.)
Historické optimalizační softwary
STORM
DS Win
Současné nástroje
LINGO, MPL
Řešitel pro MS Excel
a další
3.4 Řešení pomocí softwaru
© Mgr. Sekničková Jana, Ph.D. 8
3.4 LINGO
Firma LINDO Systems, Inc.
LINDO (Linear INteractive and Discrete Optimizer)
www.lindo.com
LINGO (verze 16.0, 17.0) – Windows, Mac, Linux
© Mgr. Sekničková Jana, Ph.D. 9
© Mgr. Sekničková Jana, Ph.D. 10
3.4 LINGO - model
© Mgr. Sekničková Jana, Ph.D. 11
Lis: 1 𝑥1 + 2 𝑥2 ≤ 120 [min]Balení: 1 𝑥1 + 4 𝑥2 ≤ 180 [min]Poptávka: 1 𝑥1 − 1 𝑥2 ≥ 90 [krab. ]Šroubky: 1 𝑥1 + 0 𝑥2 ≤ 110 [krab. ]Nezápornost: 𝑥1, 𝑥2 ≥ 0 [krab. ]
Zisk: 40 𝑥1 + 60 𝑥2 …max [Kč]
3.4 LINGO - řešení
© Mgr. Sekničková Jana, Ph.D. 12
3.4 LINGO – výstup řešení
© Mgr. Sekničková Jana, Ph.D. 13
Omezení
Proměnné
Účelová funkce
Hodnota účelové
funkce
3.4 LINGO - proměnné
© Mgr. Sekničková Jana, Ph.D. 14
Proměnné
Názvy Hodnoty Redukované ceny
Proměnné ⟶ Procesy
Co udávají?Hodnoty ⟶ Intenzity procesů
Redukovaná cena ⟶ Pokud se proces nerealizuje (hodnota strukturní proměnné = 0), udává, o kolik se musí zlepšit cena, aby bylo výhodné proces realizovat. ⟶ Pokud se proces realizuje (hodnota strukturní proměnné > 0), je redukovaná cena nulová (není třeba cenu zlepšovat).
Předpokládejme nyní v příkladu zavedení výroby třetího
výrobku (klíč na utahování šroubů)
Lisování 5 minut
Balení 5 minut
Zisk 10 Kč
3.4 Redukovaná cena
© Mgr. Sekničková Jana, Ph.D. 15
Lis: 1 𝑥1 + 2 𝑥2 ≤ 120 [min]Balení: 1 𝑥1 + 4 𝑥2 ≤ 180 [min]Poptávka: 1 𝑥1 − 1 𝑥2 ≥ 90 [krab. ]Šroubky: 1 𝑥1 + 0 𝑥2 ≤ 110 [krab. ]Nezápornost: 𝑥1, 𝑥2 ≥ 0 [krab. ]
Zisk: 40 𝑥1 + 60 𝑥2 …max [Kč]
Optimální řešení:𝐱∗ = 110, 5, 0, 50, 15, 0 T
𝑧 = 4700
3.4 Redukovaná cena
© Mgr. Sekničková Jana, Ph.D. 16
© Mgr. Sekničková Jana, Ph.D. 17
O kolik je třeba zlepšit současný cenový koeficient (10 Kč),
aby byl příslušný proces realizován.
O kolik se zhorší hodnota účelové funkce, když budeme nuceni
realizovat příslušný proces s jednotkovou intenzitou.
3.4 Redukovaná cena
© Mgr. Sekničková Jana, Ph.D. 18
Redukovaná cena ⟶ Pokud se proces realizuje (hodnota strukturní proměnné > 0), je redukovaná cena nulová (není třeba cenu zlepšovat).⟶ Pokud se proces nerealizuje (hodnota strukturní proměnné = 0), udává, o kolik se musí zlepšit cena, aby bylo výhodné proces realizovat.
Současná cena: 𝑐3 = 10Redukovaná cena: 𝑢 = 140
© Mgr. Sekničková Jana, Ph.D. 19
Současná cena: 𝑐3 = 10Současný zisk: 𝑧 = 4700Redukovaná cena: 𝑢 = 140
© Mgr. Sekničková Jana, Ph.D. 20
3.4 LINGO - omezení
© Mgr. Sekničková Jana, Ph.D. 21
Omezení
Názvy
Hodnoty přídatných proměnných
Stínové ceny
Omezení ⟶ Činitelé
Hodnoty přídatných proměnných ⟶ Rezerva
Stínová cena (duální cena, duální proměnná)⟶ Pokud je omezení splněno na hraně, tj. jako rovnost (hodnota přídatné proměnné = 0), udává, o kolik se zlepší z, pokud se kapacita uvolní o jednotku. ⟶ Pokud je omezení splněno s rezervou (hodnota přídatné proměnné > 0), je stínová cena nulová (malá změna kapacity nezpůsobí změnu z).
© Mgr. Sekničková Jana, Ph.D. 22
Lis: 1 𝑥1 + 2 𝑥2 ≤ 120 [min]Balení: 1 𝑥1 + 4 𝑥2 ≤ 180 [min]Poptávka: 1 𝑥1 − 1 𝑥2 ≥ 90 [krab. ]Šroubky: 1 𝑥1 + 0 𝑥2 ≤ 110 [krab. ]Nezápornost: 𝑥1, 𝑥2 ≥ 0 [krab. ]
Zisk: 40 𝑥1 + 60 𝑥2 …max [Kč]
Optimální řešení:𝐱∗ = 110, 5, 0, 50, 15, 0 T
𝑧 = 4700
Stínová cena ⟶ Pokud je omezení splněno s rezervou (hodnota přídatné proměnné > 0), je stínová cena nulová (malá změna kapacity nezpůsobí změnu z).
© Mgr. Sekničková Jana, Ph.D. 23
Lis: 1 𝑥1 + 2 𝑥2 ≤ 120 [min]Balení: 1 𝑥1 + 4 𝑥2 ≤ 180 [min]Poptávka: 1 𝑥1 − 1 𝑥2 ≥ 90 [krab. ]Šroubky: 1 𝑥1 + 0 𝑥2 ≤ 110 [krab. ]Nezápornost: 𝑥1, 𝑥2 ≥ 0 [krab. ]
Zisk: 40 𝑥1 + 60 𝑥2 …max [Kč]
Optimální řešení:𝐱∗ = 110, 5, 0, 50, 15, 0 T
𝑧 = 4700
Stínová cena ⟶ Pokud je omezení splněno na hraně, tj. jako rovnost (hodnota přídatné proměnné = 0), udává, o kolik se zlepší z, pokud se kapacita uvolní o jednotku.
Současná kapacita: 𝑏1 = 120Současný zisk: 𝑧 = 4700Stínová cena: 𝑢 = 30
© Mgr. Sekničková Jana, Ph.D. 24
Stínové ceny
Omezení ve tvaru nerovnice typu ≤:
𝑎𝑖1𝑥1 + 𝑎𝑖2𝑥2 + ⋯+ 𝑎𝑖𝑛𝑥𝑛 ≤ 𝑏𝑖
Zvětšení pravé strany rozšiřuje množinu přípustných řešení
Zlepšení řešení
maximalizace – zvýšení hodnoty účelové funkce
minimalizace – snížení hodnoty účelové funkce
Omezení ve tvaru nerovnice typu ≥:
𝑎𝑖1𝑥1 + 𝑎𝑖2𝑥2 + ⋯+ 𝑎𝑖𝑛𝑥𝑛 ≥ 𝑏𝑖
Zvětšení pravé strany zmenšuje množinu přípustných řešení
Zhoršení řešení
maximalizace – snížení hodnoty účelové funkce
minimalizace – zvýšení hodnoty účelové funkce
© Mgr. Sekničková Jana, Ph.D. 25
Stínová cena⟶ O kolik se zlepší z, pokud se kapacita uvolní o jednotku.
3.4 Redukované a stínové ceny
© Mgr. Sekničková Jana, Ph.D. 26
Interpretace pro redukované i stínové ceny platí jen při malých změnách
CO JE MALÁ ZMĚNA ?
Interpretace pro redukované i stínové ceny platí jen při změnách v rámci intervalu stability
3.5 LINGO - stabilita
LINGO ⟶ Options… ⟶ General Solver
⟶ Dual Computations ⟶ Prices & Ranges© Mgr. Sekničková Jana, Ph.D. 27
3.5 LINGO - stabilita
© Mgr. Sekničková Jana, Ph.D. 28
Vyřešit úlohu (CTRL + U)
Z okna s modelem (ne s řešením) zobrazit Range report (CTRL + R)
3.5 LINGO - stabilita
© Mgr. Sekničková Jana, Ph.D. 29
Současná hodnota Povolený nárůst Povolený pokles
Proměnné
Omezení
3.5 Intervaly stability cenových koeficientů
Účelová funkce: 𝑧 = 40 𝑥1 + 60 𝑥2 …max [Kč]
𝑐1 ∈ 40 − 10, 40 + ∞ → 𝑐1 ∈ 30, ∞
𝑐2 ∈ 60 − 60, 60 + 20 → 𝑐2 ∈ 0, 80
© Mgr. Sekničková Jana, Ph.D. 30
60
50
© Mgr. Sekničková Jana, Ph.D. 31
x1
x2
120
45
1800
-90
90 110
Zmax
OPTIMUM
40
60
(2)
(1)
(3)(4)
Změna cenového koeficientu
80
𝑐1 ∈ 30, ∞
3.5 Intervaly stability pravých stran
𝑏1 ∈ 120 − 10, 120 + 25 → 𝑏1 ∈ 110, 145
𝑏2 ∈ 180 − 50, 180 + ∞ → 𝑏2 ∈ 130, ∞
𝑏3 ∈ 90 − ∞, 90 + 15 → 𝑏3 ∈ −∞, 105
𝑏4 ∈ 110 − 10, 110 + 10 → 𝑏4 ∈ 100, 120© Mgr. Sekničková Jana, Ph.D. 32
105
© Mgr. Sekničková Jana, Ph.D. 33
x190 110
Zmax
OPTIMUM
(2)
(1)
(3) (4)
10095
𝑏4 ∈ 100, 120
Změna pravé strany
© Mgr. Sekničková Jana, Ph.D. 34
x190 110
Množina přípustných
řešení
Zmax
(2)
(1)
(3) (4)
10510095
OPTIMUM
Celočíselné řešení
3.6 Celočíselnost v úlohách LP
Množina přípustných řešení obsahuje jen celočíselné body (mřížka)
Úlohu řešíme nejprve bez podmínek celočíselnosti
Pokud vyjde řešení celočíselně, máme OŘ
Pokud nevyjde celočíselně, použijeme některou z metod pro hledání celočíselného řešení (větve a meze, Gomoryho apod.) – oříznutí množiny PŘ
LINGO: funkce @gin(x1);
Pozor: při použití podmínek celočíselnosti ztratíme informaci o redukovaných a stínových cenách
© Mgr. Sekničková Jana, Ph.D. 35
3.6 LINGO - celočíselnost
© Mgr. Sekničková Jana, Ph.D. 36
3.6 LINGO - celočíselnost
© Mgr. Sekničková Jana, Ph.D. 37
KONEC
© Mgr. Sekničková Jana, Ph.D. 38
Detaily k přednášce: skripta, kapitola 4
a kapitoly 2.7 a 2.8