220 likes | 401 Views
Vysoké učení technické v Brně Fakulta strojního inženýrství Odbor tváření kovů a plastů. DANTZIGŮV MECHANISMUS OPTIMÁLNÍHO ZÁSOBOVÁNÍ ZE SKLADŮ POLOTOVARŮ U TĚŽKÝCH TVÁŘECÍCH PROVOZŮ. Ing. Marek Štroner, Ph.D. 19.09.2007. 1 . Úvod.
E N D
Vysoké učení technické v Brně Fakulta strojního inženýrství Odbor tváření kovů a plastů DANTZIGŮV MECHANISMUS OPTIMÁLNÍHO ZÁSOBOVÁNÍ ZE SKLADŮ POLOTOVARŮ U TĚŽKÝCH TVÁŘECÍCH PROVOZŮ Ing. Marek Štroner, Ph.D. 19.09.2007
1. Úvod Strojírenské závody těžkých tvářecích provozů, zabývající se zpracováním polotovarů s velkým přetvořením (např. ingotů v kovárnách), jsou odkázány na skladování obrovských hmotnostních množství materiálů ve svých skladech. Je tedy známo, že při určitém teritoriálním uspořádání takovéhoto závodu, je zapotřebí provést rozbor a plánování zásobování jednotlivých tvářecích provozů ze skladů, a to při zachování minimálních nákladů. Je známo, že takováto přeprava nám prodražuje vlastní výrobu až z 80 %, a to převážně náklady na dopravu a manipulaci. Z ekonomického a matematického hlediska by měly převážně takovéto závody mít provedenu analýzu hmotnostních toků v daném závodu a také výpočet možných úspor za pomocí optimalizačních metod, které nám pomohou vyřešit například úsporu tunokilometrů při vlastní přepravě. Tento problém byl matematiky řešen již v polovině 20. století, a to převážně z důvodů vojenské logistiky. V současné době jsou již za pomocí transformačních metod počítačově řešeny i problémy s mnoha proměnnými, kdy by při ručním výpočtu docházelo k numerické explozi a ztrátě přehledu nad samotným matematickým řešením. V daném příspěvku je uveden příklad analýzy a optimalizace takovéto úlohy, a to za pomocí metody severozápadního rohu, indexní metody a metody Dantzigovi. Tyto problémy je zapotřebí v současné době řešit, protože si to žádá nejen úspora nákladů daných podniků, ale také jejich environmentální řízení vztahující se k ochraně prostředí v celé Evropské unii.
2. Obecná formulace dopravní úlohy • Při řešení dopravních úloh simplexovou metodou v její původní formě mohou vzniknout potíže spojené s velkými rozměry simplexové tabulky. Již malé dopravní úlohy vedou k rozsáhlým simplexovým tabulkám. Specifický tvar omezujících podmínek dopravních úloh dovoluje použít pro jejich řešení speciální algoritmy, které jsou jednodušší i když v zásadě vycházejí ze simplexové metody. • Předpokládáme, že je dáno m dodavatelů D1, D2,….. Dm, kteří mají k dispozici a1, a2,….. am jednotek produktu. Tento produkt je třeba přepravit k n odběratelům S1, S2,….. S3, jejichž požadavky jsou b1, b2,….. bn jednotek produktu. Veličiny ai (i = 1, 2,…..,m) a bj(j = 1, 2, …..,n) jsou vyjádřeny nezápornými reálnými čísly ve stejných měrných jednotkách. Dále jsou zadány náklady na přepravu jednotky produktu od i-tého dodavatele k j-tému odběrateli, které označíme cij. Přepravované množství produktu od i-tého dodavatele k j-tému odběrateli označíme xij. Veličiny cij nejčastěji představují vzdálenost mezi dodavateli a odběrateli v km. Hledané proměnné xijjsou vyjádřeny ve stejných měrných jednotkách jako veličiny aia bj.
Chceme organizovat přepravu produktu od dodavatelů k odběratelům tak, abychom plně uspokojili požadavky odběratelů na daný produkt, a přitom, aby celkové náklady na přepravu byly minimální. Matematicky můžeme všechny výše uvedené požadavky formulovat takto: při omezeních:
3. Řešení logistické dopravní úlohy: Zadání problému: Ze tří centrálních skladů polotovarů, které se nacházejí na různých místech, je třeba přepravit ingoty na zpracování (na měsíční produkci) do čtyř různých dílen (kováren) strojírenského podniku. Údaje o množství ingotů na skladech v tunách a o požadavcích jednotlivých kováren v tunách a o vzdálenostech mezi sklady a kovárnami v kilometrech jsou uvedeny v tab.1. Tab. 1: Vstupní hodnoty formulující dopravní problém Za úkol je stanovit plán rozvozu ingotů pro tváření do jednotlivých strojírenských dílen tak, aby byly plně uspokojeny požadavky těchto kováren a přitom celkový objem ujetých tunokilometrů byl minimální. Uvedenou dopravní úlohu lze formulovat takto:
Kriteriální funkce má tvar: zmin = 6x11 + 4x12 + 9x13 + 8x14 + 8x21 + x22 + 13x23 + 5x24 + 7x31 + 2x32 + + 10x33 + 12x34
Musí platit a je to také patrné v daném příkladě: Kapacity centrálních skladů Kapacity požadovaných dílen a1 + a2 + a3 b1 + b2 + b3 + b4 1 000 + 1 200 + 800 600 + 850 + 550 + 650 3 000 tun 2 650 tun Zavedením nezáporných doplňkových proměnných x15, x25, x35 (fiktivního odběratele) převedeme úlohu na standardní tvar, přitom požadavek fiktivního odběratele bude: b5 = 3 000 – 2 650 = 350 tun, a vzdálenost od dodavatelů k tomuto odběrateli: c15 = c25 = c35 = 0. Upravená původní tabulka bude mít následující tvar: Tab.2: Upravená tabulka s rozšířením o fiktivního dodavatele
Tuto úlohu zapsanou ve standardním tvaru matematicky zformulujeme takto: Kriteriální funkce má potom tvar: zmin = 6x11 + 4x12 + 9x13 + 8x14 + 0x15 + 8x21 + x22 + 13x23 + 5x24 + 0x25 + + 7x31 + 2x32 + 10x33 + 12x34 + 0x35
4. Stanovení výchozího bázického řešení dopravní úlohy A) Metoda severozápadního rohu: Nalezení výchozího bázického řešení metodou severozápadního rohu je velmi jednoduché. Do tabulky, ve které jsou zapsány výchozí údaje dopravní úlohy formulované ve standardním tvaru, zapisujeme postupně kladné hodnoty proměnných xij. Začínáme levým horním políčkem tabulky, které odpovídá proměnné x11. Hodnota této proměnné bude rovna x11 = min(a1; b1). Mohou nastat tři případy: a) a1 b1, b) a1 b1, c) a1 = b1 • V případě a) uspokojíme požadavek prvního odběratele, tj. x11 = b1, všechny xi1 = 0 (i = 2, 3, ….., m) a přejdeme ke stanovení x12 = min(a1 - x11; b2). • V případě b) vyčerpáme kapacitu prvního dodavatele, tj. x11 = a1, všechny x1j = 0 (j = 2, 3, ….., m) a přejdeme ke stanovení x21 = min(a2; b1 – x11). • V případě c) vyčerpáme kapacitu prvního dodavatele a současně uspokojíme požadavek prvního odběratele, tj. x11 = a1 = b1, všechny xi1 = 0 (i = 2, 3, ….., m), x1j = 0 (j = 2, 3, ….., m) a přejdeme ke stanovení x22 = min(a2; b2). V tomto případě obdržíme bázické degenerované řešení.
Hodnotu, kterou přiřadíme proměnné xijurčíme jako: Vzhledem k tomu, že postupujeme systematicky zleva doprava a shora dolů, dostáváme se v posledním kroku k určení hodnoty xmn, tj. za předpokladu platnosti vztahu: Počet kroků není větší než m + n – 1. Uvedený postup zaručuje, že získané řešení je vždy přípustné a bázické. Metodu severozápadního rohu můžeme aplikovat na daný příklad (viz. tab. 3). Tab. 3: Aplikace metody severozápadního rohu na dopravní úlohu
V tab. 3 jsme získali výchozí bázické nedegenerované řešení. Hodnota účelové funkce potom je: z = 6 600 + 4 400 + 1 450 + 13 550 + 5 200 + 12 450 + 0 350 = 19 200 tkm. • Metoda severozápadního rohu nebere zřetel na koeficienty účelové funkce (vzdálenosti). Získané řešení se proto může značně lišit od řešení optimálního. Výchozí řešení by se však mělo co nejvíce přiblížit optimálnímu řešení, a to z důvodu zkrácení iteračního postupu při vyhledávání optimálního řešení. B) Indexní metoda Indexní metodou, se postupuje obdobným způsobem jako při metodě severozápadního rohu. Rozdíl je pouze v tom, že při určování hodnot jednotlivých proměnných nepostupujeme zleva doprava a shora dolů, ale přihlížíme k velikosti koeficientů účelové funkce (sazeb). Políčka obsazujeme postupně, začínajíc vždy od políčka s nejnižší kladnou sazbou. Když při obsazování políček přichází v úvahu více stejných sazeb, pak přednostně obsadíme políčko s nejnižším i a j. Políčka s nulovou sazbou, kterým přísluší doplňkové proměnné, obsazujeme jako poslední. Postup nalezení bázického řešení indexovou metodou je uveden v následující tab. 4.:
Tab. 4: Aplikace indexní metody na dopravní úlohu V tab. 4 jsme získali výchozí bázické nedegenerované řešení. Hodnota účelové funkce potom je: z = 6 600 + 9 100 + 8 300 + 1 850 + 5 350 + 10 450 + 0 350 = 14 000 tkm.
C) Dantzigova metoda • Metody, které vedou k optimálnímu řešení, vycházejí – obdobně jako simplexova metoda – z určitého bázického řešení, získaného metodou severozápadního rohu nebo indexní metodou. Toto výchozí řešení iteračním postupem zlepšujeme a po konečném počtu kroků dosáhneme optimální řešení. Jak již bylo řečeno dříve, lze dokázat, že dopravní úloha má vždy optimální řešení s konečnou hodnotou účelové funkce. Z hlediska řešitelnosti mohou nastat pouze dva případy, a to: • Úloha má jedno bázické optimální řešení. • Úloha má více bázických optimálních řešení, a tedy nekonečně mnoho nebázických optimálních řešení. • Při Dantzigově metodě jsou obdobně jako v simplexové metodě využívána při výpočtu kritéria optimality a při určování proměnné vstupující do řešení indexní čísla ij. Indexní číslo nebázické proměnné (neobsazeného políčka) udává, o kolik by se změnila hodnota účelové funkce při zařazení jedné jednotky této proměnné do řešení. • Výpočet indexních čísel nebázických proměnných (neobsazených políček) provádíme prostřednictvím uzavřených obvodů. K neobsazenému políčku sestavujeme uzavřený obvod s vrcholy pouze v obsazených políčkách. Lze dokázat, že v nedegenerovaném bázickém řešení lze pro každé neobsazené políčko vyhledat uzavřený obvod po obsazených políčkách, a to jednoznačným způsobem.
Algoritmus řešení dopravní úlohy Dantzigovou metodou můžeme shrnout do následujících bodů: 1) Stanovíme výchozí bázické nedegenerované řešení. 2) Pro všechna neobsazená políčka sestrojíme uzavřené obvody po obsazených políčkách a vypočteme příslušné hodnoty indexních čísel ij. 3) Jsou-li všechna indexní čísla kladná, je nalezené řešení jediným optimálním řešením úlohy. Je-li jedno nebo více indexních čísel rovno nule a ostatní jsou kladná, je nalezené řešení též optimální, existuje však další (jedno nebo více) bázické optimální řešení (kritérium optimality). 4) Je-li alespoň jedno indexní číslo záporné, není nalezené řešení optimální a přecházíme k jeho zlepšování: a) Vybereme políčko s nejvyšší zápornou hodnotou indexního čísla. Je-li takových políček více, vybíráme políčko s nižším i a j. b) Toto políčko, které nově obsazujeme, označíme znaménkem +, nalezneme k němu uzavřený obvod po obsazených políčkách a jeho vrcholy střídavě označíme znaménky – a +. c) Hodnota vstupující proměnné je rovna minimální hodnotě xij ze všech políček označených znaménky –. Políčko s touto minimální hodnotou je zároveň proměnnou vystupující z řešení. d) Nalezenou hodnotu proměnné přesuneme v cyklu, tím dostaneme nové bázické řešení a vrátíme se k bodu 2.
Výpočet Dantzigovou metodou: • Výchozí bázické řešení stanovíme např. indexní metodou, při tomto řešení je hodnota účelové funkce z = 14 000 tkm. • 2) Pro neobsazená políčka sestrojíme uzavřené obvody po obsazených políčkách a vypočteme příslušné hodnoty ij: • 12 = c12 – c14 + c24 – c22 = 4 – 8 + 5 – 1 = 0, • 15 = c15 – c13 + c33 – c35 = 0 – 9 + 10 – 0 = 1, • 21 = c21 – c24 + c14 – c11 = 8 – 5 + 8 – 6 = 5, • 23 = c23 – c24 + c14 – c13 = 13 – 5 + 8 – 9 = 7, • 25 = c25 – c24 + c14 – c13 + c33 – c35 = 0 – 5 + 8 – 9 + 10 – 0 = 4, • 31 = c31 – c33 + c13 – c11 = 7 – 10 + 9 – 6 = 0, • 32 = c32 – c33 + c13 – c14 + c24 – c22 = 2 – 10 + 9 – 8 + 5 – 1 = –3, • 34 = c34 – c33 + c13 – c14 = 12 – 10 + 9 – 8 = 3
Např.: Výpočet 12 Např.: Výpočet 32
4) Je patrné, že řešení uvedené v tabulce 4. není optimální, neboť 32 = -3. • Zápornou hodnotu má pouze jedno indexní číslo, a to indexní číslo příslušející políčku S3K2, proto budeme toto políčko nově obsazovat. • b) Políčko S3K2 označíme znaménkem + a vyznačíme k němu uzavřený • obvod po obsazených políčkách (viz. tab. 4). • c) x32 = min(x33, x14, x22) = min(450, 300, 850) = 300. Proměnná x14 se stává • nebázickou a vystupuje z řešení. • d) Provedeme přesun v cyklu a dostaneme nové bázické řešení s lepší • hodnotou účelové funkce o –3 300 = -900, tj. z = 13 100 tkm, viz. tab. 5.
Tab. 5: Úprava tabulky vedoucí k 1.variantě optimálního řešení Vrátíme se k bodu 2., tj. pro neobsazená políčka v tab. 5 sestrojíme uzavřené obvody po obsazených políčkách a vypočteme příslušné hodnoty ij: 12 = c12 – c13 + c33 – c32 = 4 – 9 + 10 – 2 = 3, 14 = c14 – c13 + c33 – c32 + c22 – c24 = 8 – 9 + 10 – 2 + 1 – 5 = 3, 15 = c15 – c13 + c33 – c35 = 0 – 9 + 10 – 0 = 1, 21 = c21 – c22 + c32 – c33 + c13 – c11 = 8 – 1 + 2 – 10 + 9 – 6 = 2, 23 = c23 – c22 + c32 – c33 = 13 – 1 + 2 – 10 = 4, 25 = c25 – c22 + c32 – c35 = 0 – 1 + 2 – 0 = 1, 31 = c31 – c33 + c13 – c11 = 7 – 10 + 9 – 6 = 0, 34 = c34 – c32 + c22 – c24 = 12 – 2 + 1 – 5 = 6, z = 6 600 + 9 400 + 1 550 + 5 650 + 2 300 + 10 150 + 0 350 = 13 100 tkm.
V tab. 5 je uvedeno optimální bázické nedegenerované řešení (všechna ij 0). Kromě tohoto optimálního řešení existuje ještě jedno bázické optimální řešení, které získáme obsazením políčka S3K1, neboť 31 = 0. Tab.6 Rozbor vedoucí k 2. variantě bázického optimálního řešení Toto další optimální bázické řešení je zapsáno v tab. 7. Příslušný uzavřený obvod k políčku S3K1, po obsazených políčkách je vyznačen v předchozí tabulce. Do políčka S3K1 se přesouvá hodnota x31 = min(x33, x11) = = min(150, 600)) = 150. Proměnná x33 vystupuje z řešení.
Tab. 7: Úprava tabulky vedoucí k 2. variantě bázického optimálního řešení z = 6 450 + 9 550 + 1 550 + 5 650 + 7 150 + 2 300 + 0 350 = 13 100 tkm.
Těmito dvěmi variantami možného optimálního řešení je možno úlohu vyřešit, přičemž budou plně uspokojeny všechny kovárny daného podniku, které jsou zásobeny třemi různými sklady a to tak, že objem ujetých tunokilometrů je minimální a je roven 13 100 tkm. Dantzigova metoda se ukázala z hlediska optimalizace tou nejúspornější, která pracuje se stejnými daty jako metody předchozí, ale dynamika výpočtu spěje k dalším úsporám oproti předchozím metodám. • V současné době již pracuje řada software na poznatcích možných výpočtů a to s mnoha proměnnými vstupujícími do výpočtu, takže odpadá násilné pronikání do poznatků algoritmů a práce s čísly se tak stává úlohou zadávání vstupních hodnot do algoritmů vytvořených programů, které pracují s velkou rychlostí výpočtu a bez chyb lidského faktoru. • Další vymožeností současné doby je využití informačních systémů, které analyzují „právě načas“, kde a v jakém množství je výroba rozpracovaná, kolik polotovarů je ve vstupním a výstupním skladu, čímž odpadá složité řízení mezi dodavateli a odběrateli, interní řízení mezi sklady a dílnami, přičemž není možno, aby docházelo k tzv. vágnosti (neurčitosti) řízení. A právě toto direktivní řízení realizované jako funkce závislosti na čase, při monitoringu procesů vznikajících při výrobě, přinese závodům ty největší úspory, a to především v úspoře nákladů, ale také se kladně projeví na ekologické zátěži našeho státu při výrobě a zdraví pracovníků. Závěr: