Úterý 11:00 – 12:30 hod. učebna 212 RB © Lagová, Kalčevová 4EK213 – LINEÁRNÍ MODELY Úterý 11:00 – 12:30 hod. učebna 212 RB © Lagová, Kalčevová
9. PŘEDNÁŠKA DOPRAVNÍ PROBLÉM II. © L&K
OSNOVA PŘEDNÁŠKY 1. Báze v DP 2. Distribuční metoda 3. Modifikovaná distribuční metoda 4. Transformace řešení 5. Degenerace v DP 6. Prohibitivní cena v DP © L&K
UZAVŘENÝ OBVOD Uzavřený obvod v dopravní tabulce je grafickým znázorněním lineární kom-binace vektorů Sestrojíme ho tak, že vyjdeme z určitého políčka DT a po obsazených polích v řád-cích a sloupcích (ne diagonálně) se k té-muž políčku vrátíme Přitom můžeme některá obsazená políčka přeskočit (v lineární kombinaci mají koefi-cient roven nule) © L&K
Počet obsazených polí je m+n−1=6 Netvoří uzavřený obvod, řešení je ZPŘ • Příklady: 1. Na obrázku (9.1) je schematicky zakresleno přípustné řešení DP. Určete, zda je toto řešení i základním přípustným řešením. Počet obsazených polí je m+n−1=6 Netvoří uzavřený obvod, řešení je ZPŘ Obr. 9.1 Vektory obsazených políček tvoří bázi © L&K
ní DP. Určete, zda je to ZPŘ ? • 2. Na obrázku (9.2) je opět přípustné řeše- ní DP. Určete, zda je to ZPŘ ? Počet obsazených polí ........................... ? Tvoří obsazená pole uzavřený obvod ..... ? Řešení není ZPŘ Vektory obsazených políček netvoří bázi © L&K
BÁZE V DP Vektory strukturních koeficientů základ-ních proměnných tvoří matici báze B Počet sloupců matice B je .................... ? Počet řádků matice B je .........................? Jeden řádek je lineární kombinací ostat-ních, můžeme ho z matice B vynechat Dostaneme redukovanou matici báze B0 © L&K
Všechny báze jsou trojúhelníkové ZÁKLADNÍ VĚTA DP (4) Základní věta DP: Všechny báze jsou trojúhelníkové Alespoň jedna proměnná je tedy osamo-cena v řádku a alespoň jedna ve sloupci © L&K
Dopravní problém je tedy vždy možno řešit v celých číslech Hodnoty základních proměnných se tedy dají vyjádřit sčítáním a odčítáním kapacit a požadavků Důsledek: jsou-li všechny dílčí součty ka-pacit ai a požadavků bj celá čísla, jsou rov-něž všechny proměnné každého základní-ho řešení celá čísla Dopravní problém je tedy vždy možno řešit v celých číslech Toho je možno využít např. při výpočtu nového řešení po postoptimalizačních změnách kapacit a požadavků Např. při postoptimalizačních změnách © L&K
Příklad 9.1 1. Vypište matici báze B • V tabulce 9.3 je ZPŘ dopravního problému 1. Vypište matici báze B Tab. 9.1 © L&K
B = (9.1) Matice báze B=[ a11, a12, a13, a21] © L&K matici B zeleně !!! © L&K
2. Vyjádřete proměnné pomocí kapacit a po- žadavků: Tab. 9.2 • Dosadíme: .......................................... ? © L&K
VÝPOČET OŘ • Některou z aproximačních metod vypočte- me výchozí řešení • Pokračujeme iterační metodou: 1. testujeme optimalitu řešení: - není-li řešení optimální,určíme vstu- pující proměnou 2. určíme vystupující proměnnou: - v DP vždy existuje 3. transformujeme řešení Vracíme se k bodu 1 © L&K
1. TEST OPTIMA Koeficienty účelové funkce zij doprav-ního problému je třeba na rozdíl od SM v každé iteraci vypočítat samostatně Existují dva způsoby výpočtu: a. distribuční metoda b. modifikovaná distribuční metoda Distribuční metoda je historicky starší a rovněž komplikovanější. Popíšeme zde proto jen její princip © L&K
DISTRIBUČNÍ METODA Koeficient zij vypočteme stejně jako v simplexové metodě podle vzorce: zij = cBTB–1aij – cij (9.2) V dopravní tabulce ale nemáme matici B–1 Můžeme však vyjádřit vektor aij jako lineár-ní kombinaci vektorů báze Dostaneme tak transformovaný vektor B–1aij Výpočet pomocí uzavřeného obvodu uká-žeme na příkladě © L&K
Příklad 9.2 V tabulce 9.3 je výchozí řešení DP z pří-kladu 8.6 Naším cílem je zjistit, zda je možno obsa-zením některého volného políčka snížit hodnotu účelové funkce, tj. počet tuno-kilometrů K testu optimality si vybereme políčko (1,1) Utvoříme uzavřený obvod políčka (1,1) s obsazenými políčky © L&K
O1 O2 O3 ai D1 9 3 2 150 D2 7 8 4 200 D3 5 6 11 250 bj 220 180 600 − + 150 170 + - 30 220 - 30 + Tab.9.3 © L&K
Vyjádříme vektor a11 jako lineární kombi-naci vektorů báze: a11 = 1.a13 – 1.a23 + 1.a22 – 1.a32 + 1.a31 Podle (9.2) vypočteme koeficient c’11: c’11 = = +1.2 −1.4 +1.8 −1.6 +1.5 = 5 Vypočteme z11: z11= 5 - 9 = - 4 Protože hledáme minimum účelové funk-ce, není dopravní cesta (1,1) výhodná Vypočtěte stejným způsobem zbylé koeficienty zij v neobsazených políčkách..? © L&K
O1 O2 O3 ai D1 9 3 2 150 -4 D2 7 8 4 200 D3 5 6 11 250 bj 220 180 3060 3 150 170 30 Kroužky a čísla na webu vynechat !!!!!!!!!! 220 30 -9 Tab.9.4 © L&K
MODI METODA xj > 0 aij ui = cj MODI metoda využívá pro test optima vlastností sdružených problémů defino-vaných ve větách o dualitě Princip metody: 1. Vyjdeme z primárně přípustného řešení 2. Vypočteme duální proměnné podle první podmínky věty o rovnováze: ............ ? xj > 0 aij ui = cj m i=1 © L&K
VÝPOČET ui a vj Vyjdeme z omezení duálního problému ui + vj ≤ cij Vybereme všechna omezení odpovídající základním proměnným Tato omezení jsou podle 1. podmínky věty o rovnováze splněna jako rovnost: xij > 0 ui + vj = c*ij (9.3) kde c*ij … je cena základní proměnné, i = 1, 2, …, m, j = 1, 2, …, n © L&K
Dostaneme soustavu m+n−1 rovnic a m+n proměnných Soustava má jeden stupeň volnosti Za jednu proměnnou dosadíme nulu, hod-noty ostatních dopočítáme Zvolíme obvykle u1=0 Poznámka: Pokud položíme rovnu nule jinou proměnnou (nebo zvolíme jinou hod-notu), jsou vypočtené hodnoty duálních proměnných jiné, ale jejich součty jsou stejné © L&K
Příklad 9.3 - MODI metoda O1 O2 O3 ai D1 9 3 2 150 D2 7 8 4 200 D3 5 6 11 250 bj 220 180 600 150 170 30 220 30 Tab.9.5 • Sestavte podle (9.3) soustavu rovnic a vypočtěte hodnoty ui + vj ...................... ? © L&K
1. Z tabulky 9.5 výchozího řešení vypíšeme soustavu rovnic pro výpočet duálních proměnných: 3. Vypočteme: v3 = 2 – 0 = 2 u2 = 4 - v3 = 2 v2 = 8 - u2 = 6 u3 = 6 - v2 = 0 v1 = 5 – u3 = 5 u1 + v3 = 2 u2 + v3 = 4 u2 + v2 = 8 u3 + v2 = 6 u3 + v1 = 5 2. Dosadíme u1 = 0 © L&K
TEST OPTIMA Podle věty o dualitě stačí testovat duální přípustnost, tj. splnění duálních omezení: ui + vj ≤ cij neboli ui + vj - cij ≤ 0 (9.4) Dá se odvodit (z obecných vzorců na obr. 5.2), že ui + vj = c’ij a tudíž c’ij - cij = zij (9.5) Podle věty o dualitě © L&K
optimální Všechna duální omezení jsou splněna, je-li zij ≤ 0 (9.6) pro všechna políčka řešení je optimální V opačném případě výpočet pokračuje určením vstupující proměnné podle g = max (zij ) = zpk (9.7) (hledáme políčko, kde je nejvíce porušena duální přípustnost) Podle věty o dualitě © L&K
Příklad 9.4 • Určete v tabulce 9.5 vstupující proměnnou Dosadíme do: z11= u1 + v1 - 9 z12= u1 + v2 - 3 z21= u2 + v1 - 7 z33= u3 + v3 - 11 u1=0, u2=2, u3=0, v1=5, v2=6, v3=2 Testujeme: 0 + 5 – 9 = -4 < 0 0 + 6 – 3 = 3 > 0 2 + 5 – 7 = 0 = 0 0 + 2 - 11= -9 < 0 Vstupující proměnná je x12 Výpočet je jednodušší v tabulce • Testovali jsme jen v neobsazených polích Proč ...................................................... ? Výpočet je jednodušší v tabulce © L&K
O1 O2 O3 ai ui D1 9 3 2 150 D2 7 8 4 200 D3 5 6 11 250 bj 220 180 600 vj 150 - 4 3 2 170 30 220 30 - 9 5 6 2 Tab.9.6 © L&K
VYSTUPUJÍCÍ PROMĚNNÁ Utvoříme uzavřený obvod políčka vstupu-jící proměnné (p,k) s obsazenými políčky Na políčko (p,k) dosadíme xpk=t >0 Tuto hodnotu přičteme a odečteme podle znamének v rozích uzavřeného obvodu Řešení v dalším kroku musí být ZPŘ Proto je t = min( ) (9.8) © L&K
TRANSFORMACE TABULKY V uzavřeném obvodu v tabulce podle znamének přičteme a odečteme t Nové řešení musí být základní přípustné Na políčku vstupující proměnné je nyní hodnota t Políčko vystupující proměnné je neobsa-zené, hodnota proměnné je rovna nule © L&K
Příklad 9.5 Určení vystupující proměnné Vstupující proměnná je x12,vystupující proměnná je x13 podle t = min (150, 170) = 150 Příklad 9.5 Určení vystupující proměnné O1 O2 O3 ai ui D1 9 3 2 150 D2 7 8 4 200 D3 5 6 11 250 bj 220 180 600 vj + t - t 150 - 4 3 2 - t 170 + t 30 220 30 - 9 Tab.9.7 5 6 2 © L&K
Optimální řešení O1 O2 O3 ai ui D1 150 D2 200 D3 250 bj 220 180 600 vj 9 3 2 150 D2 7 8 4 200 D3 5 6 11 250 bj 220 180 600 vj 150 180 - 5 20 - 3 220 30 - 2 3 −1 Tab.9.8 © L&K
ALTERNATIVNÍ OŘ Jestliže je v optimálním řešení některý koeficient zij u nezákladní proměnné ro-ven nule, existuje další, tzv. alternativní optimální řešení Vypočteme ho tak, že tuto nezákladní pro-měnnou zvolíme jako vstupující Optimálních řešení existuje nekonečně mnoho Každé další optimální řešení je konvexní kombinací dosud vypočtených OŘ © L&K
Příklad 9.6 O1 O2 O3 ai ui D1 150 D2 200 D3 250 bj 220 180 600 vj 2610 − D2 7 8 4 200 + t −t D3 5 6 11 250 +t bj 220 180 600 vj 2610 150 5 20 180 Více rozfázovat ?! 3 220 30 2 3 −1 Tab.9.9 © L&K
Alternativní OŘ O1 O2 O3 ai ui D1 150 D2 200 D3 250 bj 220 180 600 vj 9 3 2 150 − D2 7 8 4 200 D3 5 6 11 250 bj 220 180 600 vj 2610 150 5 20 180 3 200 50 2 3 −1 Tab.9.10 © L&K
Nezákladní optimální řešení Optimálním řešením základním je vektor x(1)=(0, 150, 0, 0, 20, 180, 220, 30, 0)T Základním optimálním řešením je i vektor x(2)=(0, 150, 0, 20, 0, 180, 200, 50, 0)T Optimálním řešením přípustným je např. vektor x(3)=1/2 x(1)+ 1/2 x(2) x(3)=(0, 150, 0, 10, 10, 180, 210, 40, 0)T Hodnota účelové funkce je z=2610 © L&K
DEGENERACE V DP V degenerovaném řešení je jedna nebo více základních proměnných rovna nule V dopravní tabulce jsou některá políčka obsazena nulou Při výpočtu mají stejný význam jako ostatní obsazená políčka Znamená to, že je bereme v úvahu jak při výpočtu hodnot duálních proměnných, tak i při určování hodnoty t © L&K
Příklad 9.9 - SZR O1 O2 O3 ai a‘i D1 220 D2 200 D3 180 bj b‘j 200 9 3 7 10 30 200 D3 180 bj 3980 b‘j 220 200 180 200 180 © L&K Tab.9.11
Test optima O1 O2 O3 ai ui D1 220 D2 200 D3 180 bj vj 7 -23 9 3 23 9 3 10 30 200 − D3 180 bj 3980 vj 220 21 7 200 -23 180 9 3 23 Tab.9.12 © L&K
Uzavřený okruh O1 O2 O3 ai ui D1 220 D2 200 D3 180 bj vj -7 -23 9 3 23 10 30 200 D3 180 bj 3980 vj 220 −t + t -7 +t 200 −t -23 180 9 3 23 © L&K Tab.9.13
Určení vystupující proměnné Nejmenší hodnota v uzavřeném obvodu v tabulce 9.14 označená znaménkem (−) je: t =min(0,0)=0 Vyskytuje se na políčku (1,2) a (2,3) Zvolíme např. políčko (1,2) Znamená to, že proměnná x12 je proměnná vystupující a v další iteraci bude proměn-nou nezákladní Proměnná x23 zůstane základní © L&K
Nové řešení O1 O2 O3 ai ui D1 220 D2 200 D3 180 bj 600 vj 28 -2 9 -18 7 10 30 200 D3 180 bj 600 vj 220 28 200 -2 180 9 -18 2 Tab.9.14 © L&K
Pokračování výpočtu Ve výpočtu pokračujeme MODI metodou V šesté iteraci dostáváme optimální řeše-ní: x=(0, 40, 180, 200, 0, 0, 20, 180, 0)T Degenerace se během výpočtu odstranila Může být OŘ degenerované ? Minimální hodnota účelové funkce je: z=1880 © L&K
Optimální řešení 6. O1 O2 O3 ai ui D1 220 D2 200 D3 180 bj vj 4 -3 3 3 9 3 2 220 +t D2 7 10 30 200 D3 180 bj 1880 vj 40 180 4 200 -3 20 160 3 3 2 © L&K Tab.9.15
Obecný distribuční problém Obecný distribuční problém (ODP) je po-dobný dopravnímu problému především svým matematickým modelem Ekonomické modely se liší: - v DP jde o rozdělení zdrojů, které se ni- jak nemění, pouze se převážejí - v ODP jde o rozdělení (distribuci) čin- ností, jejichž realizací vznikají nové vý- robky (podobně jako v kapacitním prob- lému) © L&K
EKONOMICKÝ MODEL V ekonomickém modelu je zadána: ai ... kapacita i-tého výrobního zařízení bj ... požadované množství j-tého druhu výrobků kij ... koeficienty výkonnosti cij ... cenové koeficienty V ODP obvykle kij udávají produktivitu práce za časovou jednotku i−tého zařízení při výrobě j−tého druhu výrobku Kapacity a požadavky nejsou ve stejných jednotkách Na rozdíl od DP jsou v ODP kapacity a požadavky v různých jednotkách © L&K
PROMĚNNÉ MODELU Jejich ekonomická interpretace a jednotky záleží jako vždy na formulaci ekonomic-kého modelu V ODP obvykle kij udávají produktivitu práce za časovou jednotku i−tého zařízení při výrobě j−tého druhu výrobku V tomto případě je proměnná xij ... počet časových jednotek, po které i−tý stroj vyrábí j− tý výrobek © L&K
MATEMATICKÝ MODEL Řádková omezení se formulují stejně jako v DP: Na levé straně omezení je skutečné čer-pání kapacity zdroje, na pravé straně je celková kapacita zdroje Jednotky vlevo i vpravo jsou stejné (např. hodiny), není třeba přepočet © L&K
Sloupcová omezení zabezpečují splnění požadavků: Pravá strana sloupcového omezení bj vyjadřuje požadavek na množství výrobku, tj. množství např. v kusech, kg apod. Koeficient výkonnosti umožní přepočet na shodné jednotky © L&K
Účelovou funkci většinou minimalizujeme stejně jako u DP: Na rozdíl od DP není možno určit před výpočtem, zda je problém vyrovnaný Vlastní omezení proto na rozdíl od DP neformulujeme všechna jako rovnice, ale podle EM volíme buď v řádkových nebo sloupcových omeze-ních nerovnice © L&K
Matematický model xij ≥ 0 , i = 1, 2, ... , m, j = 1, 2, ... , n minimalizovat za podmínek xij ≥ 0 , i = 1, 2, ... , m, j = 1, 2, ... , n © L&K
DUÁLNÍ PROBLÉM Za podmínek ui ≥ 0 i=1, 2, ..., m, j=1, 2, ..., n −ui + kijvj ≤ cij ui ≥ 0 i=1, 2, ..., m, j=1, 2, ..., n maximalizovat účelovou funkci f = ∑−ai ui + ∑ bj vj Duální proměnné vj nemají podmínky nezápornosti © L&K
Řešení ODP K řešení ODP je možno použít i metod pro řešení dopravního problému, ale je nutné je upravit Výpočet se komplikuje: - výchozí řešení nelze vypočítat přímo - proměnné, kapacity a požadavky nejsou ve stejných jednotkách - obsazená pole mohou tvořit uzavřený obvod Programové systémy řeší proto tento problém simplexovou metodou © L&K
Příklad 9.10 Strojírenský podnik vyrábí součástky A a B na dvou druzích automatických strojů Hodinová výkonnost strojů ve 100 ks a náklady na hodinu práce i-tého stroje při výrobě j-tého druhu součástky jsou v ta-bulce I. Každý stroj pracuje 100 hodin Podnik potřebuje pro zajištění své výroby přesně 150 000 kusů každé součástky Cílem je zajistit výrobu požadovaného množství součástek s minimálními náklady © L&K
Koeficienty kij a cij © L&K
Volba proměnných Zvolíme proměnnou: .............................. ? Řádková omezení zabezpečí, že nebudou překročeny kapacity strojů Sloupcová omezení zajistí výrobu požado-vaného množství součástek Účelová funkce bude minimalizovat celko-vé náklady na výrobu © L&K
Formulace modelu Za podmínek x11 + x12 ≤ 100 x21 + x22 ≤ 100 xij ≥ 0, i, j = 1, 2 nalézt minimum účelové funkce z = 10x11 + 40x12 + 20x21 + 50x22 © L&K
Duální problém Formulujeme nesymetrický duální prob-lém: za podmínek −u1 + 20v1 ≤ 10 −u1 +5v2 ≤ 40 −u2 + 10v1 ≤ 20 −u2 + 20v2 ≤ 50 u1, u2 ≥ 0 maximalizovat f = −100 u1 −100 u2 +1500v1 +1500v2 První omezení násobíme (-1) © L&K
Řešení modelu Úlohu jsme řešili SM Výchozí řešení je v tabulce: © L&K
Optimální řešení v LinPro Tab. 9.17 • Odtud je x=(75, 0, 0, 75, 25, 25, 0, 0)T uT=(0, 0, 1/2, 5/2, 0, 15, 17 1/2) z = f = 4500 © L&K
Ekonomická interpretace Primární problém: x11=75 → stroj S1 bude 75 hodin vyrábět součástku A x22=75 → stroj S2 bude 75 hodin vyrábět součástku B x1= x2=25 → na každém stroji zbude 25 volných hodin y1= y2=0 → přitom se vyrobí přesně 150 000 součástek A i B z2=4500 → náklady jsou 4500 Kč © L&K
u1=u2=0 → kapacity nejsou vyčerpány, jejich zvýšení neovlivní ná- Stínové ceny: u1=u2=0 → kapacity nejsou vyčerpány, jejich zvýšení neovlivní ná- klady v1=0,5 → zvýšení požadovaného počtu součástek A o 1 kus zvýší ná- klady o 0,5 Kč v2=2,5 → zvýšení požadovaného počtu součástek B o 1 kus zvýší ná- klady o 2,5 Kč © L&K
KONEC © L&K