Klíčová slova: Dopravní problém, Metody k nalezení výchozího ˇrešení, Optimální ˇrešení. Dopravní problém je jednou z podskupin distribuční úlohy (dále ještě problém přiřazovací a obecná distribuční úloha). 1 Ilustrativní příklad Podnik má 5 pekáren P 1, P 2, P 3, P 4 a P 5. Pekárny odebírají mouku ze 4 mlýnů M 1, M 2, M 3 a M 4. Pekárna P 1 požaduje denně 90 t mouky, pekárna P 2 100 t mouky, pekárna P 3 90 t mouky, pekárna P 4 90 t mouky a pekárna P 5 90 t mouky. Mlýn M 1 má denní produkci 100 t mouky, mlýn M 2 110 t mouky, mlýn M 3 120 t mouky a mlýn M 4 130 t mouky. Přepravní náklady na dodávku 1 tuny mouky z každého mlýnu do každé pekárny udává tabulka. Cílem je stanovit optimalizační přepravní plán určit množství mouky, které budou dodávat jednotlivé mlýny jednotlivým pekárnám tak, aby celkové přepravní náklady byly minimální. Tab. 1: Tabulka pˇrepravních nákladů 2 Trochu teorie P 1 P 2 P 3 P 4 P 5 kapacity M 1 7 10 12 4 12 100 M 2 14 3 11 5 9 110 M 3 11 5 12 9 2 120 M 4 7 7 4 2 5 130 požadavky 90 100 90 90 90 Značení: c ij náklady spojené s přepravou jednotky i-tého nákladu k j-tému spotřebiteli, x ij objem přepravované produkce, a i kapacity dodavatele, b i požadavky spotřebitele. Vyrovnanost: U DP vyžadujeme vyrovnanost požadavků spotřebitele a kapacit dodavatele. Pokud není problém vyrovnaný zavádíme fiktivního spotřebitele nebo dodavatele. Matematický model: 1
Z povahy problému plyne, že účelová funkce bude minimalizační a omezení budou souviset s kapacitami dodavatelů a požadavky spotřebitelů. Dostáváme tedy soustavu rovnic: Primární úloha f min = m n c ij x ij i=1 j=1 Duální úloha z max = m a i u i + n b j v j i=1 n x ij = a i, u i + v i c ij, j=1 j=1 m x ij = b j, u i 0, v i 0, i=1 3 Algoritmus řešení Stejně jako jiné problémy LP je možnost i DP řešit pomocí simplexní metody. Vzhledem k počtu proměnných a omezení je to náročné, proto se pro DP používá jiný algoritmus. Algoritmus se skládá ze 3 základních kroků: 1. nalezení výchozího řešení, 2. test optimality, 3. přechod k optimálnímu řešení. 3.1 Nalezení výchozího řešení Pro nalezení výchozího řešení používáme 3 základní metody, všechny budeme demonstrovat na ilustrativním příkladu. Výpočty se dělají v tabulce, která má m řádků a n sloupců. Do buněk zapisujeme tímto způsobem: x ij c ij 3.1.1 Metody k nalezení výchozího řešení Pro nalezení výchozího řešení jsme si uvedli 3 základní metody: 1. Metoda severozápadního rohu (SZR) tabulku vyplňujeme od levého horního rohu, dosazujeme min(a i, b j ), máme tyto možnosti: 2
a) x ij = a i vyčerpali jsme kapacity i-tého řádku, řádek i vyškrtáme (nepíšeme nuly, ale ), opravíme požadavek b j, posuneme se o řádek níže, b) x ij = b j vyčerpali jsme požadavky j-tého sloupce sloupec j vyškrtáme, opravíme požadavek a i, posuneme se o sloupec doprava, postup končí uspokojením všech požadavků a vyčerpáním kapacit. 2. Indexní metoda přesnější než SZR bere v úvahu cenové sazby, tabulku obsazujeme od pole s minimální hodnotou c ij, dosazujeme, máme tyto možnosti: a) x ij = a i vyčerpali jsme kapacity i-tého řádku, řádek i vyškrtáme, opravíme požadavek b j, b j = b j a i, posuneme se o řádek níže, b) x ij = b j vyčerpali jsme požadavky j-tého sloupce sloupec j vyškrtáme, opravíme požadavek a i, a i = a i b j, posuneme se o sloupec doprava, postup končí uspokojením všech požadavků a vyčerpáním kapacit. 3. Vogelova aproximaˇcní metoda (VAM) nejpřesnější, ale také nejpracnější, v této metodě nerozlišujeme mezi řádkem a sloupcem obojí ozn. jako řadu, algoritmus metody probíhá po neobsazených řadách (nevyškrtané), kroky algoritmu: 1. Vypočteme diference řad (d) rozdíl mezi nejmenší a druhou nejmenší c i j. 2. V řadě s max(d) vybereme buňku s min(c i j) a za x i j dosadíme. 3. Při existenci více řad s max(d): 3
a) Nalezneme sedlový bod (SB), což je bod, kde je c i j minimální v řádku i sloupci. Při existenci více min(c i j) vybereme bod s maximálním součtem d řad a sloupců. b) Pokud SB neexistuje uděláme na řadách s max(d) druhé diference. Tu tvoříme tak, že bereme rozdíl mezi druhou nejmenší sazbou zkoumané řady a nejmenší sazbou řady na ní kolmé v bodě druhé nejmenší sazby. 4. Dosadíme do vybrané buňky máme opět 3 možnosti jako v předchozích metodách. Po vyškrtání řádků i sloupců je vždy třeba přepočítat diference. 5. Postup končí uspokojením všech požadavků a vyčerpáním kapacit. 4 Optimální řešení Příklad 2 Pro náš vzorový příklad jsme pomocí VAM dostali toto výchozí řešení: Tab. 2: Výchozí ˇrešení pˇríkladu metodou VAM P 1 P 2 P 3 P 4 P 5 a i 7 10 12 4 12 M 1 90 10 100 14 3 11 5 9 M 2 70 40 110 11 5 12 9 2 M 3 30 90 120 7 7 4 2 5 M 4 90 40 130 b i 90 100 90 90 90 Pro výchozí řešení platí, že máme v matici m n máme m+n 1 obsazených polí (pokud tato podmínka neplatí máme tzv. degenerované řešení viz dále). Při testování optima řešení se používají 2 metody. Při obou těchto metodách se využívá tzv. redukované sazby z ij. Metody se liší výpočtem této sazby. V tabulce zapisujeme redukovanou sazbu do levého dolního rohu. Pole tabulky poté vypadá následovně: 4
I. Distribuční metoda z ij x ij c ij Při distribuční metodě tvoříme uzavřené okruhy (posloupnost polí vycházíme z neobsazeného pole a střídavě postupujeme po řádcích a sloupcích obsahujících obsazená pole). Ke každému neobsazenému poli existuje právě jeden okruh. Hodnotu redukované sazby z ij zjistíme tak, že postupně odečítáme a přičítáme sazby c ij polí na vrcholech okruhů liché vrcholy odečítáme, sudé přičítáme. Pokud jsou všechny redukované sazby z ij 0 máme optimální řešení. Pokud je nějaká redukovaná sazba větší než nula musíme provést transformaci k dalšímu řešení: 1. vybereme pole s maximálním z ij, na okruhu příslušící tomuto poli budeme přesouvat množství, 2. označíme si vrcholy okruhu střídavě + a -, začínáme + v obsazovaném poli, 3. na na sudých vrcholech (označených -) vybereme minimální x ij toto množství budeme přesouvat, 4. k poli označenému + toto množství přičteme, od pole označeného - budeme množství odečítat, 5. opět provedeme test optima. II. Modifikovaná distribuční metoda (MODI) Při použití MODI metody využíváme věty o rovnovážnosti duálně sdružených úloh. Z duality plyne, že pro optimální řešení platí: obsazené pole platí: u i + v j = c ij pro volná pole platí: u i + v j < c ij Hodnoty redukované sazby této metodě vypočteme pomocí vzorce: z ij = u i + v j c ij. Postupujeme tedy takto: 1. nejdříve musíme vypočítat hodnotu duálních proměnných (proměnné u i odpovídají řádkům, v j sloupcům), 2. položíme jednu z proměnných rovnu 0 (např. u 1 ), 3. pomocí výše uvedené podmínky pro rovnost součtu duálních proměnných a cenové sazby dopočteme přes obsazené pole ostatní proměnné, 5
4. využijeme duálních proměnných a pro neobsazené pole vypočteme redukované sazby z ij = u i + v j c ij. Dále postupujeme stejně jako u distribuční metody. Platí tedy, že pokud jsou všechny z ij 0 dostáváme optimální řešení. V opačném případě provádíme transformaci k dalšímu řešení jako u distribuční metody. V tabulce 1 vidíme, že výchozím řešením metodou VAM dostáváme v tomto případě i optimální řešení. Příklad 3 Postup transformace si tedy ukážeme použitím výchozího řešení metodou SZR. Tab. 3: Výchozí ˇrešení pˇríkladu metodou SZR P 1 P 2 P 3 P 4 P 5 a i u i 7 10 12 4 12 M 1 90 10 100 0 6 11 6 14 3 11 5 9 M 2 90 20 110-7 -14 3 2 11 5 12 9 2 M 3 70 50 120-6 -10-1 10 7 7 4 2 5 M 4 40 90 130-13 -13-10 1 b i 90 100 90 90 90 v i 7 10 18 15 18 Z tabulky vidíme, že první transformace bude probíhat přes okruh příslušící poli se souřadnicemi (1, 3). 6