Přednáška č. 9 Katedra ekonometrie FEM UO Brno
Distribuční úlohy Budeme se zabývat 2 typy distribučních úloh dopravní úloha přiřazovací problém
Dopravní úloha V dopravním problému se v typickém případě jedná o rozvržení rozvozu nějakého zboží či materiálu z dodavatelských míst k odběratelům tak, aby byly minimalizovány celkové náklady související s tímto rozvozem.
Dopravní úloha - příklad Od dvou dodavatelů D 1 a D 2 je třeba přemístit zboží ke 3 spotřebitelům S 1, S 2 a S 3. Kapacity dodavatelů jsou D 1 : 800 ks D 2 : 1200 ks Požadavky spotřebitelů jsou S 1 : 600 ks S 2 : 900 ks S 3 : 500 ks Náklady na přepravu 1 kusu zboží mezi jednotlivými dodavateli a spotřebiteli udávají tzv. přepravní sazby c ij (Jedná se o náklady na přepravu 1 ks zboží od dodavatele D i, ke spotřebiteli S j.) V našem případě c 11 = 30, c 12 = 10, c 13 = 5, c 21 = 15, c 22 = 20 a c 23 = 12.
Dopravní úloha - příklad Úkolem je sestavit optimální plán přepravy, tj. rozhodnout, po kterých cestách a v jakém množství se má zboží přepravovat, aby celkové přepravní náklady byly minimální.
Dopravní úloha - příklad proměnné: x ij... počet výrobků přepravených od dodavatele D i ke spotřebiteli S j omezení: jsou dána požadavky spotřebitelů a kapacitami dodavatelů
Dopravní úloha - příklad proměnné: x ij... počet výrobků přepravených od dodavatele D i ke spotřebiteli S j omezení: jsou dána požadavky spotřebitelů a kapacitami dodavatelů D 1 : x 11 + x 12 + x 13 = 800
Dopravní úloha - příklad proměnné: x ij... počet výrobků přepravených od dodavatele D i ke spotřebiteli S j omezení: jsou dána požadavky spotřebitelů a kapacitami dodavatelů D 1 : x 11 + x 12 + x 13 = 800 D 2 : x 21 + x 22 + x 23 = 1200
Dopravní úloha - příklad proměnné: x ij... počet výrobků přepravených od dodavatele D i ke spotřebiteli S j omezení: jsou dána požadavky spotřebitelů a kapacitami dodavatelů D 1 : x 11 + x 12 + x 13 = 800 D 2 : x 21 + x 22 + x 23 = 1200 S 1 : x 11 + x 21 = 600
Dopravní úloha - příklad proměnné: x ij... počet výrobků přepravených od dodavatele D i ke spotřebiteli S j omezení: jsou dána požadavky spotřebitelů a kapacitami dodavatelů D 1 : x 11 + x 12 + x 13 = 800 D 2 : x 21 + x 22 + x 23 = 1200 S 1 : x 11 + x 21 = 600 S 2 : x 12 + x 22 = 900
Dopravní úloha - příklad proměnné: x ij... počet výrobků přepravených od dodavatele D i ke spotřebiteli S j omezení: jsou dána požadavky spotřebitelů a kapacitami dodavatelů D 1 : x 11 + x 12 + x 13 = 800 D 2 : x 21 + x 22 + x 23 = 1200 S 1 : x 11 + x 21 = 600 S 2 : x 12 + x 22 = 900 S 3 : x 13 + x 23 = 500
Dopravní úloha - příklad proměnné: x ij... počet výrobků přepravených od dodavatele D i ke spotřebiteli S j omezení: jsou dána požadavky spotřebitelů a kapacitami dodavatelů D 1 : x 11 + x 12 + x 13 = 800 D 2 : x 21 + x 22 + x 23 = 1200 S 1 : x 11 + x 21 = 600 S 2 : x 12 + x 22 = 900 S 3 : x 13 + x 23 = 500 x ij 0, i = 1, 2 j = 1, 2, 3
Dopravní úloha - příklad proměnné: x ij... počet výrobků přepravených od dodavatele D i ke spotřebiteli S j omezení: jsou dána požadavky spotřebitelů a kapacitami dodavatelů D 1 : x 11 + x 12 + x 13 = 800 D 2 : x 21 + x 22 + x 23 = 1200 S 1 : x 11 + x 21 = 600 S 2 : x 12 + x 22 = 900 S 3 : x 13 + x 23 = 500 účelová funkce x ij 0, i = 1, 2 j = 1, 2, 3 z = 30x 11 + 10x 12 + 5x 13 + 15 21 + 20x 22 + 12x 23 min
Dopravní úloha obecný model Uvažujme m dodavatelů D 1, D 2..., D m s kapacitami a 1, a 2,..., a m jednotek zboží. Toto zboží se má přepravit k n spotřebitelům S 1, S 2,..., S n, jejichž požadavky jsou b 1, b 2,..., b n. Náklady na přepravu jednotky zboží od dodavatele D i ke spotřebiteli S j označme c ij (i = 1,..., m j = 1,..., n).
Dopravní úloha obecný model Uvažujme m dodavatelů D 1, D 2..., D m s kapacitami a 1, a 2,..., a m jednotek zboží. Toto zboží se má přepravit k n spotřebitelům S 1, S 2,..., S n, jejichž požadavky jsou b 1, b 2,..., b n. Náklady na přepravu jednotky zboží od dodavatele D i ke spotřebiteli S j označme c ij (i = 1,..., m j = 1,..., n). Předpokládejme dále, že úloha je vyrovnaná, tedy platí m n a i = b j. i=1 j=1
Dopravní úloha obecný model Uvažujme m dodavatelů D 1, D 2..., D m s kapacitami a 1, a 2,..., a m jednotek zboží. Toto zboží se má přepravit k n spotřebitelům S 1, S 2,..., S n, jejichž požadavky jsou b 1, b 2,..., b n. Náklady na přepravu jednotky zboží od dodavatele D i ke spotřebiteli S j označme c ij (i = 1,..., m j = 1,..., n). Předpokládejme dále, že úloha je vyrovnaná, tedy platí m n a i = b j. i=1 j=1 D i : n j=1 x ij = a i i = 1, 2,..., m m S j : i=1 x ij = b j j = 1, 2,..., n } m + n vlastních omezení
Dopravní úloha obecný model Uvažujme m dodavatelů D 1, D 2..., D m s kapacitami a 1, a 2,..., a m jednotek zboží. Toto zboží se má přepravit k n spotřebitelům S 1, S 2,..., S n, jejichž požadavky jsou b 1, b 2,..., b n. Náklady na přepravu jednotky zboží od dodavatele D i ke spotřebiteli S j označme c ij (i = 1,..., m j = 1,..., n). Předpokládejme dále, že úloha je vyrovnaná, tedy platí m n a i = b j. i=1 j=1 D i : n j=1 x ij = a i i = 1, 2,..., m m S j : i=1 x ij = b j j = 1, 2,..., n x ij 0 i = 1,..., m j = 1,..., n } m + n vlastních omezení } m n podmínek nezápornosti
Dopravní úloha obecný model Uvažujme m dodavatelů D 1, D 2..., D m s kapacitami a 1, a 2,..., a m jednotek zboží. Toto zboží se má přepravit k n spotřebitelům S 1, S 2,..., S n, jejichž požadavky jsou b 1, b 2,..., b n. Náklady na přepravu jednotky zboží od dodavatele D i ke spotřebiteli S j označme c ij (i = 1,..., m j = 1,..., n). Předpokládejme dále, že úloha je vyrovnaná, tedy platí m n a i = b j. i=1 j=1 D i : n j=1 x ij = a i i = 1, 2,..., m m S j : i=1 x ij = b j j = 1, 2,..., n x ij 0 z = m i=1 j=1 i = 1,..., m j = 1,..., n } m + n vlastních omezení } m n podmínek nezápornosti n c ij x ij min (celková cena přepravy)
Dopravní úloha Výchozí údaje i vlastní omezení se zapisují do tabulky. Kapacity S 1 S 2 S n ai D 1 x 11 c 11 x12 c 12 x1n c 1n a1 D 2 x 21 c 21 x22 c 22 x2n c 2n a2...... D m x m1 c m1 xm2 c m2 xmn c mn am Požadavky b j b 1 b 2 b n celkem
Dopravní úloha Je-li úloha vyrovnaná ( m i=1 a i = n j=1 b j), pak je jedno z m + n vlastních omezení lineárně závislé na ostatních. Základní řešení může mít tedy maximálně m + n 1 kladných proměnných (tj. obsazených polí). Nedegenerované řešení obsahuje právě m + n 1 kladných x ij.
Dopravní úloha Je-li úloha vyrovnaná ( m i=1 a i = n j=1 b j), pak je jedno z m + n vlastních omezení lineárně závislé na ostatních. Základní řešení může mít tedy maximálně m + n 1 kladných proměnných (tj. obsazených polí). Nedegenerované řešení obsahuje právě m + n 1 kladných x ij. Spojí-li se obsazená pole u základního řešení vodorovnými a svislými čarami, nesmí vytvořit uzavřený obvod.
Vogelova aproximační metoda Vogelova aproximační metoda (VAM) slouží k nalezení výchozího řešení dopravního problému.
Vogelova aproximační metoda Vogelova aproximační metoda (VAM) slouží k nalezení výchozího řešení dopravního problému. Určí políčko D i S j, které obsadíme maximálním množstvím x ij přepravovaného množství zboží s ohledem na kapacitu a i a požadavek b j s přihlédnutím na již obsazená políčka v i-tém řádku a j-tém sloupci.
Vogelova aproximační metoda Vogelova aproximační metoda (VAM) slouží k nalezení výchozího řešení dopravního problému. Určí políčko D i S j, které obsadíme maximálním množstvím x ij přepravovaného množství zboží s ohledem na kapacitu a i a požadavek b j s přihlédnutím na již obsazená políčka v i-tém řádku a j-tém sloupci. Vyčerpáme-li kapacitu některého dodavatele, proškrtneme daný řádek.
Vogelova aproximační metoda Vogelova aproximační metoda (VAM) slouží k nalezení výchozího řešení dopravního problému. Určí políčko D i S j, které obsadíme maximálním množstvím x ij přepravovaného množství zboží s ohledem na kapacitu a i a požadavek b j s přihlédnutím na již obsazená políčka v i-tém řádku a j-tém sloupci. Vyčerpáme-li kapacitu některého dodavatele, proškrtneme daný řádek. Vyčerpáme-li požadavky některého spotřebitele, proškrtneme daný sloupec.
Vogelova aproximační metoda Postup VAM 1 V každém řádku resp. sloupci určíme 2 nejnižší přepravní sazby a vypočteme jejich rozdíl (diferenci) a zapíšeme do odpovídajícího řádku resp. sloupce.
Vogelova aproximační metoda Postup VAM 1 V každém řádku resp. sloupci určíme 2 nejnižší přepravní sazby a vypočteme jejich rozdíl (diferenci) a zapíšeme do odpovídajícího řádku resp. sloupce. 2 Najdeme řádek či sloupec s největší diferencí a v tomto řádku či sloupci obsadíme políčko s minimální sazbou.
Vogelova aproximační metoda Postup VAM 1 V každém řádku resp. sloupci určíme 2 nejnižší přepravní sazby a vypočteme jejich rozdíl (diferenci) a zapíšeme do odpovídajícího řádku resp. sloupce. 2 Najdeme řádek či sloupec s největší diferencí a v tomto řádku či sloupci obsadíme políčko s minimální sazbou. 3 Vyčerpáme-li kapacitu dodavatele, proškrtneme řádek, uspokojíme-li požadavky spotřebitele, proškrtneme sloupec.
Vogelova aproximační metoda Postup VAM 1 V každém řádku resp. sloupci určíme 2 nejnižší přepravní sazby a vypočteme jejich rozdíl (diferenci) a zapíšeme do odpovídajícího řádku resp. sloupce. 2 Najdeme řádek či sloupec s největší diferencí a v tomto řádku či sloupci obsadíme políčko s minimální sazbou. 3 Vyčerpáme-li kapacitu dodavatele, proškrtneme řádek, uspokojíme-li požadavky spotřebitele, proškrtneme sloupec. 4 Pokračujeme bodem 2, neuvažujeme proškrtnutá ani obsazená pole.
Dopravní úloha K tabulce přidáme sloupec řádkových čísel u i (i = 1,..., m) a řádek sloupcových čísel v j (j = 1,..., n). Předpokládejme, že máme obsazeno m + n 1 políček (nedegerované řešení). Pro obsazená pole platí u i + v j = c ij. Protože čísel u i a v j je m + n, ale obsazených polí je m + n 1, je třeba jedno z čísel u i a v j zvolit (obvykle se volí u 1 = 0) a ostatní dopočítat podle uvedeného vztahu.
Dopravní úloha K tabulce přidáme sloupec řádkových čísel u i (i = 1,..., m) a řádek sloupcových čísel v j (j = 1,..., n). Předpokládejme, že máme obsazeno m + n 1 políček (nedegerované řešení). Pro obsazená pole platí u i + v j = c ij. Protože čísel u i a v j je m + n, ale obsazených polí je m + n 1, je třeba jedno z čísel u i a v j zvolit (obvykle se volí u 1 = 0) a ostatní dopočítat podle uvedeného vztahu. U proškrtnutých polí pomocí známých čísel u i a v j určíme nepřímé sazby c ij podle vztahu u i + v j = c ij. (Tyto sazby napíšeme do dolního levého rohu proškrtnutých políček.)
Dopravní úloha 1 Je-li u všech proškrtnutých polí c ij c ij, pak je dané řešení optimální.
Dopravní úloha 1 Je-li u všech proškrtnutých polí c ij c ij, pak je dané řešení optimální. 2 Existuje-li pole, kde c ij > c ij, pak dané není optimální a lze jej zlepšit.
Dopravní úloha 1 Je-li u všech proškrtnutých polí c ij c ij, pak je dané řešení optimální. 2 Existuje-li pole, kde c ij > c ij, pak dané není optimální a lze jej zlepšit. Pozn. Máme-li optimální řešení a pro některé políčko platí c ij = c ij, pak existuje jiné optimální alternativní řešení.
Dopravní úloha Pokud pro některé neobsazené pole platí c ij > c ij, pak řešení není optimální a lze najít lepší řešení.
Dopravní úloha Pokud pro některé neobsazené pole platí c ij > c ij, pak řešení není optimální a lze najít lepší řešení. 1 Najdeme políčko, kde c ij > c ij. Pokud takových políček více, zvolíme to, kde je rozdíl c ij c ij největší (volba vstupující proměnné).
Dopravní úloha Pokud pro některé neobsazené pole platí c ij > c ij, pak řešení není optimální a lze najít lepší řešení. 1 Najdeme políčko, kde c ij > c ij. Pokud takových políček více, zvolíme to, kde je rozdíl c ij c ij největší (volba vstupující proměnné). 2 Vytvoříme tzv. uzavřený okruh (mnohoúhelník se sudým počtem vrcholů, vrcholy mohou být jen obsazená pole a vybrané neobsazené pole, jednotlivé hrany svislá a vodorovná se střídají).
Dopravní úloha Pokud pro některé neobsazené pole platí c ij > c ij, pak řešení není optimální a lze najít lepší řešení. 1 Najdeme políčko, kde c ij > c ij. Pokud takových políček více, zvolíme to, kde je rozdíl c ij c ij největší (volba vstupující proměnné). 2 Vytvoříme tzv. uzavřený okruh (mnohoúhelník se sudým počtem vrcholů, vrcholy mohou být jen obsazená pole a vybrané neobsazené pole, jednotlivé hrany svislá a vodorovná se střídají). 3 Neobsazené pole v okruhu označíme znaménkem, v dalších polích potom střídáme znaménka,,.
Dopravní úloha Pokud pro některé neobsazené pole platí c ij > c ij, pak řešení není optimální a lze najít lepší řešení. 1 Najdeme políčko, kde c ij > c ij. Pokud takových políček více, zvolíme to, kde je rozdíl c ij c ij největší (volba vstupující proměnné). 2 Vytvoříme tzv. uzavřený okruh (mnohoúhelník se sudým počtem vrcholů, vrcholy mohou být jen obsazená pole a vybrané neobsazené pole, jednotlivé hrany svislá a vodorovná se střídají). 3 Neobsazené pole v okruhu označíme znaménkem, v dalších polích potom střídáme znaménka,,. 4 Najedeme nejmenší hodnotu u polí (volba vystupující proměnné).
Dopravní úloha Pokud pro některé neobsazené pole platí c ij > c ij, pak řešení není optimální a lze najít lepší řešení. 1 Najdeme políčko, kde c ij > c ij. Pokud takových políček více, zvolíme to, kde je rozdíl c ij c ij největší (volba vstupující proměnné). 2 Vytvoříme tzv. uzavřený okruh (mnohoúhelník se sudým počtem vrcholů, vrcholy mohou být jen obsazená pole a vybrané neobsazené pole, jednotlivé hrany svislá a vodorovná se střídají). 3 Neobsazené pole v okruhu označíme znaménkem, v dalších polích potom střídáme znaménka,,. 4 Najedeme nejmenší hodnotu u polí (volba vystupující proměnné). 5 Tuto hodnotu přičteme k polím a odečteme od polí označených znaménkem. Ostatní políčka opíšeme.