







Study with the several resources on Docsity
Earn points by helping other students or get them with a premium plan
Prepare for your exams
Study with the several resources on Docsity
Earn points to download
Earn points by helping other students or get them with a premium plan
MODELY PRO ŘEŠENÍ ROZHODOVACÍCH ÚLOH V LOGISTICE I
Typology: Study Guides, Projects, Research
1 / 13
This page cannot be seen from the preview
Don't miss anything!








Ing. Dušan Teichmann, Ph.D. VŠB-Technická univerzita Ostrava, e-mail: [email protected] Ing. Alessandra Grosso VŠB-Technická univerzita Ostrava, e-mail: [email protected] Ing. Martin Ivan VŠB-Technická univerzita Ostrava, e-mail: [email protected]
Abstrakt
Článek se věnuje využití lineárního programování v logistice. Je první částí z několika příspěvků, které na sebe tematicky navazují. V teoretické části článku je popsána tvorba lineárních modelů a jejich řešení. Výpočetní část pak obsahuje dva demonstrační příklady – modely pro řešení úlohy o mediánu sítě a lokační úlohy.
Abstract
There are the improvement of linear programming method in the logistic presented in this paper. The description of linear model construction is presented in the first part of the paper. The demonstration of two types of linear models solution is presented in the second part of the paper.
Klíčová slova
rozhodování v logistice, optimalizace v logistice, lineární programování, matematické modelování
Key words
logistics decision, logistics optimization, linear programming, mathematical modelling
1. ÚVOD
Schopnost přijímat rozhodnutí se očekává od každého řídícího pracovníka podniku. Rozhodování řídících pracovníků na různých stupních řízení mohou být různého charakteru. Může jít např. o rozhodnutí týkající se plánu výroby nebo distribuce zboží. Při řešení rozhodovacích úloh bývá po řešiteli zpravidla požadováno, aby navržené řešení bylo účelné a efektivní. Účelnost a efektivita řešení bude určitě zaručena, podaří-li se řídícímu pracovníkovi navrhnout optimální řešení nebo také zkráceně optimum (optimální = za daných vstupních podmínek nejlepší dosažitelné). V této souvislosti bývá mnohdy místo pojmu optimální řešení nesprávně používán pojem nejoptimálnější řešení (zkrácenou verzi tohoto pojmu český jazyk nezná). Nevhodnost, ale zejména irelevance tohoto pojmu spočívá v tom, že maximální dosažitelná efektivita je zahrnuta již v pojmu optimalita, nelze tedy ještě mezi maximálně efektivními řešeními vyhledávat to nejlepší.
Tvrdit, že se v průběhu řešení podařilo najít optimum, však může řešitel pouze v situacích, kdy má, buď použitá metoda v sobě „zabudován“ test optimality (je matematicky prokázáno, že zlepšování efektivity posledního dosaženého řešení již není dále možné) nebo v situacích, podaří-li se řešiteli z pohledu hodnot optimalizované veličiny prozkoumat
všechna přípustná řešení, která může úloha mít (což však nebývá, zejména u rozsáhlejších úloh realizovatelné).
Nejčastěji používaným nástrojem v rozhodování je lineární programování. Rozšířenost jeho používání i jeho oblíbenost u řešitelů lze zdůvodnit především tím, že seznamování s jeho základními principy nebývá pro začínajícího řešitele, ve srovnání s ostatními nástroji, příliš obtížné (vysvětlení základních principů se dá velice názorně znázornit graficky) a možnosti jeho uplatnění jsou široké (ekonomika, logistika, doprava apod.). Další, v pořadí však neméně však důležitou, výhodou metod lineárního programování je jejich schopnost nacházet při řešení rozhodovacích úloh optimální řešení (na rozdíl od mnoha jiných skupin metod pro řešení). Lineární programování se však vyznačuje také určitými nevýhodami, k nimž patří neschopnost nacházet optimum u rozsáhlejších úloh v dostatečně krátkém čase a značná výpočetní náročnost v případech, jsou-li proměnným v matematických modelech přiděleny některé typy definičních oborů (viz dále). Nevýhodou také bývá, že v některých případech nelze přípustnými postupy používanými v lineárním programování (bude rozvedeno dále) namodelovat některá požadovaná omezení, některé požadované vazby nebo optimalizační kritéria. S ohledem na výše uvedené výhody však do budoucna zůstává úloha lineárního programování při řešení mnoha typů rozhodovacích úloh, i přes zmíněné nevýhody, nezastupitelná.
2. NĚKOLIK ZÁKLADNÍCH INFORMACÍ K LINEÁRNÍMU PROGRAMOVÁNÍ
Lineární programování je výhodné používat zejména při rozhodování s dlouhodobějším časovým horizontem (strategického, taktického) a v úlohách, kdy řešení je v čase stabilní (např. plánujeme pravidelný způsob zásobování distribuční sítě).
Některé úlohy řešitelné metodami lineárního programování jsou úspěšně řešitelné také jinými přístupy, např. dynamickým programováním, metodami teorie grafů apod.. Dosud uvedené přístupy mají zpravidla tu výhodu, že se pomocí nich podaří najít optimální řešení. V literatuře někdy také bývají označovány názvem exaktní metody. Alternativu k nim, zejména není-li k dispozici pro řešení k dispozici dostatek času nebo selhávají-li výpočetní prostředky pro řešení lineárních modelů z důvodů výpočetní náročnosti, představují heuristické metody. Heuristické metody nespadají do lineárního programování a bude jim podrobněji věnována pozornost v některém z dalších čísel tohoto časopisu. Zmiňme alespoň, že jejich hlavní výhodou je, že při volbě vhodné heuristické metody dokážeme najít „dostatečně efektivní řešení“ v čase, který máme k dispozici, ovšem bez jistoty nalezení optimálního řešení (což nevylučuje, že optimum najdeme, nevíme ovšem, že jsme jej získali).
Nastává-li situace, kdy je pro řešení konkrétního problému k dispozici více přístupů, volí se pro řešení zpravidla ten přístup, který je z hlediska řešení nejefektivnější. Jelikož však v současnosti existuje celá řada výkonných a poměrně snadno dostupných nástrojů pro řešení i rozsáhlých úloh lineárního programování, přistupuje se k lineárnímu programování, jak již bylo řečeno, nejčastěji. Základním krokem pro použití metod lineárního programování však i nadále zůstává sestava matematického modelu.
2.1. Výchozí poznatky pro konstrukci lineárního modelu
Matematickým modelem rozhodovacího problému se obecně rozumí soustava algebraických výrazů, které vyjadřují optimalizovanou veličinu a omezení, která mají být při řešení dodržena. Pro sestavu matematických modelů rozhodovacích úloh neexistuje jednoznačný návod. Je to způsobeno faktem, že každá rozhodovací úloha se vyznačuje určitými specifiky, tzn., musí se v nich zohledňovat různá omezení, činí se v nich různá rozhodnutí apod. V odborné literatuře, např. (Janáček, 1999), byla publikována alespoň určitá
Počet proměnných, které se do úlohy zavádí, závisí na počtu rozhodnutí, která se mají při řešení úlohy vykonat. Může se ale stát, že v některých případech je zapotřebí, aby byly do modelu zavedeny i další pomocné proměnné, pomocí kterých se např. budou vytvářet určité vazby mezi proměnnými modelujícími reálná rozhodnutí.
Každá proměnná, která v lineárním modelu vystupuje, musí mít před zahájením výpočtu určen svůj definiční obor. V lineárním programování se vyskytují tři typy definičních oborů:
Definiční obory proměnných se volí v závislosti na povaze rozhodnutí, která proměnné modelují, a která se od řešitele očekávají. V některých případech lze pro zavedenou proměnnou volit pouze jediný z výše uvedených definičních oborů, v ostatních případech máme více možností. Např. modeluje-li proměnná časový údaj (a je-li to přípustné), může být její definiční obor tvořen jak množinou nezáporných čísel, tak i množinou nezáporných celých čísel).
Modeluje-li proměnná rozhodnutí o tom, zda provozovat či neprovozovat v nějakém místě mezisklad, potřebujeme takový definiční obor, který bude poskytovat pouze dvě možnosti (rozhodnutí v úloze umísťování skladů jsou rozhodnutí typu ano – ne). V takových případech se volí definiční obor obsahující pouze dvě hodnoty a tímto definičním oborem je definiční obor bivalentních proměnných (hodnoty 0 a 1). Při volbě bivalentní proměnné se zpravidla uplatňuje užívaná konvence a to, že pozitivní rozhodnutí je modelováno hodnotou 1, negativní rozhodnutí hodnotou 0. Jak však bude v závěru článku také na konkrétním případě ukázáno, lze volit i inverzní způsob přiřazení hodnot. Má to sice vliv na konstrukci modelu, ovšem dosažená efektivita obou řešení je z pohledu optimalizačního kritéria stejná.
Nachází-li se v případě některé proměnné mezi možnými definičními obory množina nezáporných čísel, je doporučeno tuto množinu vždy upřednostnit. Velice lapidárně řečeno, je to proto, že současné výpočetní prostředky mají v případě spojitého lineárního programování (modely obsahující pouze nezáporné proměnné) řádově vyšší možnosti pro řešení zadané úlohy. Vždy je však nutno posuzovat, zda je náhrada podmínek celočíselnosti nezápornosti či bivalence podmínkami vyžadujícími prostou nezápornost vhodná. V případech, kdy optimalizační software časově nebo kapacitně nezvládají výpočet, je však uvedená náhrada jediným možným řešením. Je však třeba počítat s problémy, které zpravidla nastanou ve fázi interpretace získaného řešení. Při nevhodné nebo nezbytné náhradě množin celočíselných nezáporných proměnných a množin hodnot 0 a 1 množinami nezáporných hodnot by se na první pohled mohlo zdát, že řešením by mohlo být pouhé zaokrouhlení neceločíselných hodnot na hodnoty celočíselné. V této souvislosti je nutno však upozornit na jednu důležitou skutečnost a to, že zaokrouhlování hodnot neceločíselných proměnných v řešení, které je požadováno jako celočíselné, může z hlediska hledání řešení způsobit nečekané problémy, v některých případech může po zaokrouhlení vzniknout i řešení nepřípustné. Zaokrouhlování neceločíselných hodnot proměnných, jako takové, není zakázáno, nicméně opět je nutno připomenout, že při použití tohoto postupu při úpravě výsledků získaných metodou nepřihlížející k podmínkám celočíselnosti proměnných, nejenže nemáme jistotu nalezení optimálního řešení, ale navíc je nutno následně prověřovat přípustnost zokrouhleného celočíselného řešení. Jak plyne z výše uvedeného textu, množinu přípustných řešení vymezuje soustava omezujících podmínek. Přípustnost zaokrouhleného celočíselného řešení tedy prověříme tak, že zaokrouhlené hodnoty proměnných dosadíme do soustavy omezujících podmínek. Jsou-li všechny omezující podmínky splněny, potom zaokrouhlené řešení je přípustné.
Poznamenejme, že stejným způsobem (dosazováním hodnot proměnných do soustavy omezujících podmínek) se prověřuje přípustnost řešení v případě jakéhokoliv modelu.
2.2. Struktura lineárního modelu
Každý lineární model má, jak již částečně vyplývá z předchozího textu, předepsánu závaznou strukturu. Skládá se ze dvou základních částí – soustavy omezujících podmínek a účelové funkce reprezentující optimalizační kritérium.
Obecně soustava omezujících podmínek vymezuje množinu přípustných řešení úlohy. Omezující podmínky se dělí do dvou skupin – na strukturální a obligatorní. Strukturální podmínky vyjadřují reálná omezení, příp. vytvářejí vazby mezi proměnnými. Obligatorní podmínky vymezují definiční obory proměnných, které v úloze vystupují. Počet strukturálních podmínek závisí na počtu omezení, která v úloze vystupují a počtu vazeb, které musí být mezi hodnotami proměnných vytvořeny, počet obligatorních podmínek je vždy roven počtu proměnných, které v úloze vystupují. V případě strukturálních podmínek vyjadřujících reálná omezení musí být splněna podmínka jednotkové konzistence, tzn., že jednotka veličiny na jedné straně omezující podmínky musí odpovídat jednotce veličiny na druhé straně omezující podmínky, v případě vazebních podmínek tomu tak být nemusí. Účelová funkce vyjadřuje funkční vztah, pomocí kterého vypočítáme hodnotu optimalizované veličiny. Např. máme-li minimalizovat náklady, musí být účelová funkce tvořena vztahem, na základě kterého lze náklady vypočítat. Účelová funkce musí v sobě obsahovat všechny varianty výpočtu hodnoty optimalizované veličiny, které se mohou při řešení vyskytnout. Pokud některá varianta v účelové funkci chybí, algoritmus při optimalizaci k variantám nezohledněným v účelové funkci nepřihlíží.
Při konstrukci účelové funkce a soustavy omezujících podmínek lze v lineárním programování používat pouze některé početní operace s proměnnými a některá relační znaménka. Výrazy obsahující proměnné je dovoleno sčítat, odčítat a násobit reálnou konstantou. Při tvorbě omezujících podmínek je povoleno používat relační znaménka ≥, ≤, =. Použitím jiných pravidel, než která jsou uvedena v předchozích dvou větách, se získá nelineární model. Nelineární modely se však řeší daleko komplikovaněji, než modely lineární, některé typy nelineárních modelů nejsou řešitelné vůbec, protože pro ně není sestavena vhodná metoda. Proto existuje oprávněná snaha vyhýbat se při řešení rozhodovacích úloh nelineárním modelům, pokud jejich použití není nezbytně nutné. Pokud se již nelineární model vyskytne, vždy existuje snaha, aby byl transformován na model lineární. Někdy to však není možné, někdy je to možné jen za cenu zvětšení rozsahu modelu, tj. zvýšení počtu proměnných či omezujících podmínek, někdy je nutno zvětšit rozsah modelu obojím způsobem.
2.3. Řešení lineárních modelů
Na začátku podkapitoly věnované řešení lineárních modelů shrňme, jaké případy se při řešení úlohy lineárního programování mohou vyskytnout. V zásadě se jedná o tři případy:
Z případu č.1 vyplývá i jeden důležitý poznatek. Existuje-li při řešení úlohy více optimálních řešení (pokud v podmínkách spojitého lineárního programování existuje více optimálních řešení, je jich zároveň nekonečně mnoho), mohou různí řešitelé dospět k různým řešením, která prohlásí za optimální (samozřejmě se může stát, že k různým řešením dospěje
je minimální (Volek, 2001). Cestou v grafu se rozumí střídavá posloupnost vrcholů a hran, začínající a končící ve vrcholu, ve které se nesmí opakovat žádná hrana.
Řešení úlohy – přístup č. 1
Do úlohy zavedeme proměnnou yi , která modeluje rozhodnutí, zda vrchol sítě bude
( yi = 1 ) nebo nebude ( yi = 0 ) mediánem sítě. Protože pro každý vrchol zavedeme
samostatnou proměnnou yi (u každého vrcholu se totiž rozhoduje), bude počet proměnných
vystupujících v úloze roven počtu vrcholů sítě.
Matematický model úlohy o vyhledání mediánu v dopravní síti při použití běžné konvence v přiřazování významu hodnotám bivalentních proměnných bude mít tvar (Janáček, 2007):
= =
n
i 1
n
j 1
min f y dij yi (1)
za podmínek:
1 1
=
n
i
yi (2)
Výraz (1) reprezentuje účelovou funkci – součet vzdáleností ke všem ostatním vrcholům v případě aktuálně testovaného vrcholu. Omezující podmínka (2) zajišťuje, že z možných vrcholů bude vybrán právě jeden. Skupina omezujících podmínek (3) vymezuje definiční obory jednotlivých proměnných.
Řešení úlohy – přístup č. 2
Do úlohy zavedeme proměnnou yi , která modeluje rozhodnutí, zda vrchol sítě bude
( yi = 0 ) nebo nebude ( y (^) i = 1 ) mediánem sítě.
Matematický model úlohy bude mít však tentokrát tvar
= =
n
i
n
j
min f y dij yi 1 1
za podmínek:
1
=
n
i
yi (5)
Význam výrazu (4) reprezentuje účelovou funkci, význam omezující podmínky (5) je stejný jako v případě omezující podmínky (2), podmínky (6) jsou podmínky obligatorní, tzn., že vymezují definiční obory proměnných.
S ohledem na záměr, ukázat pouze variantní přístupy k tvorbě matematických modelů, upustíme v příkladě 1 od jejich vlastního řešení.
3.2. Příklad 2 – lokační úloha
Je dána dopravní síť. V zadané síti je rozmístěno n spotřebitelů, u každého
spotřebitele S (^) j , kde j = 1 ,..., n je znám jeho požadavek b (^) j za určité období. Dále je známo
m lokalit, ve kterých se uvažuje o provozování meziskladů, a prostřednictvím kterých budou spotřebitelé zásobováni. Provoz meziskladu v lokalitě Li , kde i = 1 ,..., m , vyvolá za dané
období náklady ve výši fi , pro každou relaci Li → Sj jsou dále známy celkové náklady cij
plynoucí z přiřazení spotřebitele S (^) j lokalitě Li v daném období. Uvažujme, že jsou
odhadnuty denní náklady na provoz meziskladů v jednotlivých lokalitách a známy denní náklady plynoucí z přiřazení jednotlivých spotřebitelů jednotlivým meziskladům.
Odhad denních nákladů na provoz skladů v jednotlivých lokalitách reprezentuje poslední sloupec v první části tabulky. Úkolem je rozhodnout, ve kterých lokalitách budou provozovány mezisklady a jakým způsobem budou provozovaným meziskladům přiřazení spotřebitelé tak, aby se minimalizovala hodnota celkových denních nákladů plynoucích z provozu systému (tj. jak na provoz meziskladů, tak i na zásobování zákazníků).
Pozn.: Při řešení zadané úlohy se bude předpokládat, že je přípustné zásobovat všechny spotřebitele ze kterékoliv lokality.
Řešení úlohy
V úloze je třeba rozhodovat dvojím způsobem – o tom, zda budou či nebudou v jednotlivých lokalitách provozovány mezisklady a o tom, zda budou či nebudou spotřebitelé přiřazeni jednotlivým lokalitám v případech, kdy v nich budou vybudovány mezisklady. Z toho důvodu se do úlohy zavedou dvě skupiny bivalentních proměnných. První skupinu budou tvořit proměnné modelující rozhodnutí o provozování meziskladů v jednotlivých lokalitách. Označme proměnnou modelující rozhodnutí o provozování meziskladu v lokalitě L i např. yi. Nechť, když yi = 1 , mezisklad v lokalitě Li bude provozován, když y (^) i = 0 ,
potom mezisklad v lokalitě provozován nebude. Druhou skupinu proměnných budou tvořit proměnné, jejichž úkolem bude modelovat přiřazení spotřebitelů meziskladům. Označme
proměnnou modelující uvedené rozhodnutí např. xij. Nechť, když xij = 1 , spotřebitel S (^) j bude
přiřazen meziskladu v lokalitě Li (bude z meziskladu provozovaného v lokalitě Li
zásobován), když xij = 0 , spotřebitel S (^) j nebude přiřazen meziskladu v lokalitě Li (nebude
z meziskladu provozovaného v lokalitě Li zásobován).
Při konstrukci soustavy omezujících podmínek je třeba vědět, že v lokační úloze je vyžadováno, aby každý spotřebitel byl zásobován právě z jednoho místa (meziskladu). Při konstrukci modelu je dále zapotřebí si uvědomit, že rozhodnutí, která v úloze provádíme, spolu souvisejí. Důležitou úlohu v soustavě omezujících podmínek proto bude mít skupina podmínek, která bude zajišťovat, že v důsledku rozhodnutí, že v některé z lokalit nebudeme provozovat mezisklad, nesmí být této lokalitě přiřazen žádný ze spotřebitelů a přiřadíme-li některého ze spotřebitelů určité lokalitě, musí v ní dojít k provozování meziskladu. Matematický model úlohy lokační úlohy má nejčastěji tvar (Janáček, 1999):
= = =
m
i
n
j
ij ij
m
i
f x y fi yi c x 1 1 1
min , (7)
za podmínek:
1 1
=
m
i
xij pro j = 1 ,..., n (8)
xij ≤ y i pro i = 1 ,..., m a j = 1 ,..., n (9)
Funkce (7) reprezentuje optimalizační kritérium – celkové náklady vyvolané potřebou distribuovat zboží z meziskladů spotřebitelům. Jak je zápisu účelové funkce patrné, je složena
na vertikálních osách vyznačen tzv. gap (vyjadřuje odchylku horního a dolního odhadu hodnoty účelové funkce), na grafech v dolních částech jednotlivých obrázků jsou vynášeny hodnoty horních a dolních odhadů účelové funkce. Optimální řešení úlohy je nalezeno, dojde- li k průsečíku hodnot horního a dolního odhadu.
L 19 (^) 11 13 106 18 22 15 101 18 8 18
Tab. č. 1 – Soupis vstupních hodnot pro příklad č. 2
Obr. 1 Pracovní okno optimalizačního software Xpress-IVE s výsledky řešení modelu (7) – (11) Grafy tedy znázorňují časový vývoj hodnoty gap a vývoje hodnot horních a dolních odhadů hodnoty účelové funkce v závislosti na době výpočtu. Je nutno zdůraznit, že při jiných vstupních hodnotách je dosaženo odlišných tvarů jednotlivých křivek. V případě dolní části obr. 1, která má reprezentovat průběh konvergence dolního a horního odhadu účelové funkce, není proces přibližování tak plynulý, jako ve druhém případě, v čase 0,2 s od zahájení výpočtu dochází ke skokovému růstu dolního odhadu hodnoty účelové funkce.
Jak je z obou grafů patrné, doba výpočtu v případě modelu (7) – (11) trvala 0,2 s, doba výpočtu v případě modelu (7) – (8), (10) – (11) a (14) trvala 0,8 s. Z pohledu doby výpočtu se paradoxně jako výpočetně náročnější jevilo řešení realizované s modelem (7) – (8), (10) – (11) a (14), tedy s modelem, který má v soustavě omezujících podmínek o 361 omezujících podmínek méně.
Výsledky experimentální části příspěvku potvrzují fakt, že v některých případech lze nástroji lineárního programování řešit stejný typ úlohy více způsoby, zároveň je
Obr. 3 Průběh řešení úlohy na základě modelu (7) – (8), (10) – (11) a (14) v optimalizačním software Xpress-IVE
Článek je věnován problematice systémů pro podporu rozhodování v logistice a je nutno jej chápat jako první z připravované série článků věnovaných nástrojům pro řešení rozhodovacích úloh v logistice. Hlavní pozornost je v článku soustředěna na problematiku tvorby lineárních matematických modelů, které tvoří primární fázi řešení praktické úlohy, je-li k řešení použito lineární programování. Protože tvorba lineárních (obecně matematických) modelů rozhodovacích úloh je tvůrčím procesem, jsou před ukázkami sestavy modelů základních typů rozhodovacích úloh, jak bývá v literatuře obvyklé, spíše preferovány obecné zásady pro jejich tvorbu. Nejlépe lze však do problematiky tvorby modelů proniknout systematickým studiem přístupů publikovaných v minulosti a důkladným porozuměním systematiky a logiky použitých přístupů. Na různých typech úloh jsou pak prakticky demonstrovány vybrané problémy, se kterými se lze při řešení setkat. Nejobtížnější pro začínajícího řešitele je však vždy samostatně sestavit první funkční model.
Literatura
Jablonský, J.: Programy pro matematické modelování. – Vysoká škola ekonomická v Praze , Praha, 2007
Janáček, J.: Operační analýza II. – Vysoká škola dopravy a spojov v Žilině , Žilina 1983
Janáček, J.: Modelování komunikačních systémů I. – Vydavatelství NADAS , Praha 1990
Janáček, J.: Matematické programování. - Žilinská univerzita v Žilině , Žilina 1999
Janáček, J.: Optimalizace na sítích. Přednášky, 2007
Janáček, J. et al.: Navrhovanie územne rozľahlých obslužných systémov. - Žilinská univerzita v Žilině , Žilina 2010
Plevný, M.; Žižka, M.: Modelování a optimalizace v manažerském rozhodování. – Západočeská univerzita v Plzni , Plzeň 2005
Teichmann, D.: Operační analýza 2 – část I Modely pro distribuční logistiku. Studijní materiály pro posluchače prezenční i kombinované formy studia studijního oboru „Logistika“, Vysoká škola logistiky, o.p.s., Přerov, 2011. 32 s.
Volek, J.: Operační výzkum I. – Univerzita Pardubice , Pardubice 2001
Recenzent: Prof. RNDr. Ing. Miloš Šeda, Ph.D.