4ek311 –operační výzkum

38
4EK311 – Operační výzkum 3. Optimalizační software a stabilita řešení úloh LP

Upload: others

Post on 18-Oct-2021

46 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 4EK311 –Operační výzkum

4EK311 – Operační výzkum

3. Optimalizační software a

stabilita řešení úloh LP

Page 2: 4EK311 –Operační výzkum

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č]

Page 3: 4EK311 –Operační výzkum

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

Page 4: 4EK311 –Operační výzkum

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č]

Page 5: 4EK311 –Operační výzkum

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

Page 6: 4EK311 –Operační výzkum

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

Page 7: 4EK311 –Operační výzkum

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

Page 8: 4EK311 –Operační výzkum

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

Page 9: 4EK311 –Operační výzkum

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

Page 10: 4EK311 –Operační výzkum

© Mgr. Sekničková Jana, Ph.D. 10

Page 11: 4EK311 –Operační výzkum

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č]

Page 12: 4EK311 –Operační výzkum

3.4 LINGO - řešení

© Mgr. Sekničková Jana, Ph.D. 12

Page 13: 4EK311 –Operační výzkum

3.4 LINGO – výstup řešení

© Mgr. Sekničková Jana, Ph.D. 13

Omezení

Proměnné

Účelová funkce

Hodnota účelové

funkce

Page 14: 4EK311 –Operační výzkum

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).

Page 15: 4EK311 –Operační výzkum

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

Page 16: 4EK311 –Operační výzkum

3.4 Redukovaná cena

© Mgr. Sekničková Jana, Ph.D. 16

Page 17: 4EK311 –Operační výzkum

© Mgr. Sekničková Jana, Ph.D. 17

Page 18: 4EK311 –Operační výzkum

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.

Page 19: 4EK311 –Operační výzkum

Současná cena: 𝑐3 = 10Redukovaná cena: 𝑢 = 140

© Mgr. Sekničková Jana, Ph.D. 19

Page 20: 4EK311 –Operační výzkum

Současná cena: 𝑐3 = 10Současný zisk: 𝑧 = 4700Redukovaná cena: 𝑢 = 140

© Mgr. Sekničková Jana, Ph.D. 20

Page 21: 4EK311 –Operační výzkum

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).

Page 22: 4EK311 –Operační výzkum

© 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).

Page 23: 4EK311 –Operační výzkum

© 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.

Page 24: 4EK311 –Operační výzkum

Současná kapacita: 𝑏1 = 120Současný zisk: 𝑧 = 4700Stínová cena: 𝑢 = 30

© Mgr. Sekničková Jana, Ph.D. 24

Page 25: 4EK311 –Operační výzkum

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.

Page 26: 4EK311 –Operační výzkum

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

Page 27: 4EK311 –Operační výzkum

3.5 LINGO - stabilita

LINGO ⟶ Options… ⟶ General Solver

⟶ Dual Computations ⟶ Prices & Ranges© Mgr. Sekničková Jana, Ph.D. 27

Page 28: 4EK311 –Operační výzkum

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)

Page 29: 4EK311 –Operační výzkum

3.5 LINGO - stabilita

© Mgr. Sekničková Jana, Ph.D. 29

Současná hodnota Povolený nárůst Povolený pokles

Proměnné

Omezení

Page 30: 4EK311 –Operační výzkum

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

Page 31: 4EK311 –Operační výzkum

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, ∞

Page 32: 4EK311 –Operační výzkum

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

Page 33: 4EK311 –Operační výzkum

105

© Mgr. Sekničková Jana, Ph.D. 33

x190 110

Zmax

OPTIMUM

(2)

(1)

(3) (4)

10095

𝑏4 ∈ 100, 120

Změna pravé strany

Page 34: 4EK311 –Operační výzkum

© 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í

Page 35: 4EK311 –Operační výzkum

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

Page 36: 4EK311 –Operační výzkum

3.6 LINGO - celočíselnost

© Mgr. Sekničková Jana, Ph.D. 36

Page 37: 4EK311 –Operační výzkum

3.6 LINGO - celočíselnost

© Mgr. Sekničková Jana, Ph.D. 37

Page 38: 4EK311 –Operační výzkum

KONEC

© Mgr. Sekničková Jana, Ph.D. 38

Detaily k přednášce: skripta, kapitola 4

a kapitoly 2.7 a 2.8