Rovnomerné rozvrhy a fuzzy lineárne programovanie
27. Apríl, 2011, Autor článku: Ladovský Tomáš, Informačné technológie
Ročník 4, číslo 4
Pridať príspevok
Článok sa zaoberá problematikou tvorby rovnomerných rozvrhov. Pod rovnomernými rozvrhmi si môžeme napríklad predstaviť rozpisovanie služieb vodičom autobusov, v ktorom rozpisujeme služby tak, aby vodiči autobusov mali zrovnomernené pracovné výkony. Rovnomerné rozvrhy môžeme zovšeobecniť a matematicky formulovať ako problém rovnomernosti riadkových súčtov stĺpcovo permutovanej matice.
Nás zaujíma špeciálne dvojriadková matica, ktorej riadkové súčty zrovnomerňujeme pomocou fuzzifikovanej úlohy o batohu. Takto vzniknutý model fuzzy bivalentného programovania riešime pomocou Belmanovho a Zadehovho princípu rozhodovania.
1. Úvod
V tomto článku rozumieme pod pojmom tvorba rozvrhu alebo rozvrhovanie proces rozhodovania, ktorý sa používa vo výrobnom priemysle, vo verejnej doprave a v iných odvetviach a službách. Pracuje s prideľovaním aktivít k zdrojom nad danými časovými periódami a snaží sa optimalizovať jednu alebo viac kritériálnych funkcií tak, aby boli splnené všetky podmienky priradené k jednotlivým aktivitám a zdrojom. Z iného pohľadu je tvorba rozvrhov problémom časového plánovania a kombinatorickej optimalizácie. To sú problémy v ktorých vystupujú diskrétne premenné a v ktorých množina prípustných riešení je konečná. V každom z týchto problémov sa skrýva možnosť kombinatorickej explózie.
Rozvrh je súbor údajov, z ktorého je zrejmé, v ktorých časových intervaloch sa majú jednotlivé aktivity realizovať na ktorých zdrojoch. Zdrojmi môžu byť vodiči autobusov, stroje v dielni, viacnásobné/viacjadrové procesory, dopravné prostriedky, robotníci na pracovisku a veľa iného. Aktivitami môžu byť turnusy v autobusovej doprave, úlohy (operácie) vo výrobnom procese, vykonávanie počítačových programov, etapy pri stavebnom projekte a iné. Každá aktivita má naplánovanú dobu trvania.
V reálnom živote sa stretávame so zrovnomerňovaním pracovných zaťažení/výkonov strojov/vodičov za dané časové (periodické) obdobie rozvrhovania. Aby sme vedeli optimalizovať rovnomernosť rozvrhov, potrebujeme poznať mieru nerovnomernosti, ktorá je jednou z optimalizovaných kritériálnych funkcií a môže nadobúdať nasledujúci tvar
(1) |
Za predpokladu, že vytvárame rozvrh vo výrobnom odvetví, predstavujú jednotlivé premenné až plánované pracovné zaťaženia m strojov a je ideálnym pracovným zaťažením strojov, v tomto prípade priemernou hodnotou, ktorú spočítame ako
Rozvrhy, ktoré vznikli optimalizáciou miery nerovnomernosti, nazývame rovnomernými rozvrhmi. Vzhľadom na známu Grahamovu [3] klasifikáciu ide o neštandardný typ rozvrhov.
Pod pojmom rovnomerné rozvrhy pri neistote rozumieme v nasledujúcom texte také rovnomerné rozvrhy, ktorých veľkosť aktivít je neistá a/alebo podmienky priradené k jednotlivým aktivitám a zdrojom sú vyjadrené neisto. S neistou kritériálnou funkciou a/alebo s neistými podmienkami sa môžeme stretnúť, ak napríklad modelujeme doby trvania aktivít pomocou fuzzy čísel a/alebo definujeme podmienky priradené k aktivitám a zdrojom neisto a chceme takto modelovaný problém riešiť pomocou optimalizačných algoritmov lineárneho programovania. Za týchto podmienok vznikajú modely lineárneho programovania, ktoré nemusia byť jednoznačne definovateľné. Ich definovateľnosť závisí na type neurčitosti a ich špecifikácií, ktorú stanovil tvorca rozhodnutí. Preto triedy problémov fuzzy lineárneho programovania môžeme všeobecne klasifikovať ako [1]:
- PLP s ostrou účelovou funkciou a fuzzy nerovnosťami.
- PLP s fuzzy účelovou funkciou a ostrými nerovnosťami.
- PLP s fuzzy účelovou funkciou a fuzzy nerovnosťami.
- PLP s fuzzy zdrojmi a fuzzy koeficientami, teda elementy c, b a A sú fuzzy.
Na riešenie takto zadefinovaného PLP použijeme v článku Bellmanov a Zadehov princíp modelu fuzzy tvorby rozhodnutí [1]
2. Matrix permutation problem
Rovnomerné rozvrhy môžeme zovšeobecniť a matematicky formulovať ako kombinatorický problém rovnomernosti riadkových súčtov stĺpcovo permutovanej matice, ktorý anglicky označujeme ako matrix permutation problem MPP [5]. Vhodným preusporiadaním stĺpcov matice môžeme docieliť väčšiu rovnomernosť riadkových súčtov matice/rozvrhu.
Definícia 1 (Matrix permutation problem [4])
Nech M={1,2,…,m} a N={1,2,…,n} sú konečné neprázdne množiny a nech je reálna matica rozmeru . Hľadá sa taká matica permutácií stĺpcov matice A pre ktorú platí:
kde f je nejaká miera nerovnomernosti vektora reálnych čísel, je i-ty riadkový súčet matice a je množina všetkých permutácií množiny . Riešením takto formulovanej úlohy MPP je matica .
MPP je zložitosti . Z tohoto dôvodu sú exaktne riešiteľné len veľmi malé inštancie. Na riešenie veľkých inštancií môžeme použiť heuristické metódy. Najznámejšou a najvhodnejšou heuristickou metódou, ktorá je veľmi rýchla a dosahuje veľmi dobré výsledky, je stochastická-dekompozičná metóda [4,5].
Príklad1 (Rozpisovanie služieb vodičom autobusov, alias (MPP))
Majme 4 vodičov autobusov a 5 pracovných dní. Pre každý pracovný deň majú byť pridelené 4 turnusy, pričom prvok matice zodpovedá pracovnému času [min] i-teho turnusu v j-ty deň.
Tvorca rozvrhu chce priradiť vodičom turnusy na jednotlivé dni tak, aby hodnota miery nerovnomernosti (1) bola minimálna. Ak ich priradí každý deň rovnako, tak že i-ty vodič dostane priradený i-ty turnus, t.j. , tak by miera nerovnomernosti bola rovná hodnote . Táto hodnota nás informuje o tom, že týždenné výkony vodičov sú priemerne odchýlené od ideálnej hodnoty o 5,6%. Potom tvorca rozvrhu použije stochastickú-dekompozičnú metódu a vygeneruje pomocou nej nasledovnú maticu permutácií a maticu .
Pre tento rozvrh získavame nasledujúcu hodnotu miery nerovnomernosti .
V predošlom texte sme sa dozvedeli, že rovnomerné rozvrhy môžeme zovšeobecniť a matematicky formulovať ako problém rovnomernosti riadkových súčtov stĺpcovo permutovanej matice. Veľmi zaujímavá varianta problému (MPP) vzniká pre dvojriadkovú maticu, viď. nasledujúci text.
3. Problém dvojriadkovej matice
Problém rovnomernosti riadkových súčtov stĺpcovo permutovanej \textit{dvojriadkovej matice} (MPP2r) môžeme transformovať na úlohu o batohu. Klasická úloha o batohu KUB je jednou z najznámejších a najpoužívanejších úloh matematického bivalentného programovania. KUB tvorí jadro mnohých heuristických metód. Jej matematická formulácia je nasledovná.
Definícia 2 (Klasická úloha o batohu KUB)
Úlohu o batohu môžeme formulovať ako úlohu, v ktorej máme predmety rôznych cien a hmotností zabaliť do batohu tak, aby jeho hodnota bola čo možno najväčšia a nebola prekročená jeho nosnosť. Nech je konečná množina, c je n-prvkový vektor cien predmetov, a je n-prvkový vektor hmotností predmetov, b je nosnosť batohu a x je n-prvkový vektor rozhodovacích premenných. Potom úlohu o batohu možno formulovať ako nasledujúcu úlohu bivalentného lineárneho programovania.
(2) |
Veta1 (Transformácia MPP2r na KUB)
Pre danú maticu typu a maticu permutácií množiny môžeme úlohu MPP2r pretransformovať na klasickú úlohu o batohu pomocou substitúcie
(3) |
a
(4) |
kde vektor rozhodnutí priradenia predmetu do batohu formulujeme ako
Dôkaz 1 (Transformácia MPP2r na KUB)
Majme maticu rozmeru , pre ktorú hodnotu ideálneho riadkového súčtu spočítame ako
Nech je matica permutácií a nech vektor predstavuje rozhodnutia, ktoré môžeme formulovať ako:
Aby boli riadkové súčty matice čo najrovnomernejšie, alebo aby sa v ideálnom prípade rovnali ideálnemu riadkovému súčtu, potom musí urobiť tvorca rozvrhu také rozhodnutia , pre ktoré platí nasledujúca rovnosť
ktorú môžeme po dosadení a pomocou substitúcií a prepísať na tvar
Bez ujmy na všeobecnosti môžeme rovnosť rozpísať na nerovnosti
(5) |
(6) |
Aby sme úspešne transformovali zadanú úlohu na model úlohy o batohu, môžeme z ľavej strany nerovnosti (6) vypustiť konštantu b a nerovnosť použiť ako účelovú funkciu, ktorú maximalizujeme. Prvá nerovnosť (5) zaručuje, že súčet prvého riadku nepresiahne hodnotu b. Druhá nerovnosť (6) (účelová funkcia) sa naopak pokúša naakumulovať súčet prvého riadku čo najtesnejšie k hodnote b. Po takýchto úpravách získavame model klasickej úlohy o batohu (2).
Príklad 2 (Ilustračný príklad problému MPP2r)
Príkladom aplikácie KUB pri tvorbe rovnomerných rozvrhov môže byť nasledujúca úloha: Nech elementy matice rozmeru predstavujú pracovné časy i-teho turnusu, ktorý máme prejsť v j-ty deň.
Pre každý deň 5-dňového obdobia máme rozhodnúť o tom, ktorému z dvojice vodičov pridelíme ktorý turnus, tak aby celkové kumulované výkony oboch vodičov, boli čo najviac rovné ideálnemu výkonu
za celé časové obdobie. Nech vektor x predstavuje rozhodnutia, ktoré môžeme formulovať ako:
- 1 – Ak sa rozhodneme priradiť prvému vodičovi prvý turnus s časom spracovania a druhému vodičovi druhý turnus s časom spracovania v j-ty pracovný deň,
- 0 – Ak sa rozhodneme priradiť prvému vodičovi druhý turnus s časom spracovania a druhému vodičovi prvý turnus s časom spracovania v j-ty pracovný deň.
Nech usporiadaná petica predstavuje cenu a váhu predmetu a b=14 predstavuje nosnosť batohu. Riešením úlohy (2) získame nasledujúcu usporiadanú peticu rozhodnutí , pre ktorú je matica permutácií rovná hodnotám
a riadkové súčty sú rovné .
Nasledujúci text bližšie formuluje a ilustračne rieši problém fuzzy úlohy o batohu FUB$ vzhľadom na vyššie klasifikované problémy fuzzy lineárneho programovania a to na základe Bellmanovho a Zadehovho princípu modelu fuzzy tvorby rozhodnutí.
4. Belmanov a Zadeho princíp
Model fuzzy tvorby rozhodnutí je charakterizovaný množinou možných akcií/alternatív X, a množinou cieľov pre popri množine obmedzení pre . Každá z množín a je vyjadrená pomocou fuzzy množiny. Pre takýto model tvorby rozhodnutí navrhli Bellman a Zadeh [2] v ich priekopnickej práci, že fuzzy rozhodnutie je určené pomocou agregovania fuzzy množín a , pričom hlavným znakom je symetria medzi cieľmi a obmedzeniami. Na základe takéhoto prístupu doporučili použiť ako agregačný operátor fuzzy prienik. Preto fuzzy rozhodnutie D môže byť definované ako fuzzy množina , inými slovami je dané pomocou
Akonáhle je fuzzy rozhodnutie známe, môžeme definovať ako optimálne rozhodnutie, ak
Inou možnosťou je zvoliť stupeň (
a
Ďalej poznamenajme, že v tomto prístupe sú ciele a obmedzenia symetrické a preto môžeme zapísať ako a naopak. Podľa Bellmanovho a Zadehovho prístupu [2] je fuzzy rozhodnutie rovné a teda
Diagram (obrázok 1) znázorňuje fuzzy rozhodovací problém a identifikuje optimálne riešenie
Fig. 1. Grafická reprezentácia μD a x*
5. Ostrá účelová funkcia a fuzzy kapacitné podmienky
Teraz sa pokúsime riešiť úlohu o batohu s ostrou účelovou funkciou a fuzzy kapacitnou nerovnosťou , ktorú čítame fuzzy menšie alebo rovné ako, vo svetle Bellmanovho a Zadehovho princípu. Na riešenie použijeme nesymetrický Verdegayov prístup [7,8] rozšírený o symetrický Wernersov model [9], ktorý podľa Bellmanovho a Zadehovho symetrického prístupu doporučuje okrem vhodnej voľby funkcie príslušnosti nerovnosti [7,8], navrhnúť aj funkciu príslušnosti pre účelovú funkciu. Teda fuzzy kapacitná nerovnosť úlohy o batohu je vhodnou voľbou funkcie príslušnosti transformovaná na ostrú nerovnosť. Verdegay doporučuje voliť funkciu príslušnosti na základe nasledujúcej úvahy. Ak platí
potom je kapacitná podmienka absolútne splnená, ale ak
kde p predstavuje kapacitnú toleranciu batohu, potom je kapacitná podmienka absolútne porušená. Teraz môžeme definovať spojitú neklesajúcu lineárnu funkciu príslušnosti kapacitnej podmienky ako
Pre vhodnú voľbu funkcie príslušnosti účelovej funkcie doporučuje Werners vyriešiť nasledujúce dva modely klasickej úlohy o batohu
Hodnoty účelovej funkcie a predstavujú porade cenu batohu za najmenej a najviac priaznivých podmienok. Teraz môžeme pomocou hodnôt a definovať spojitú neklesajúcu lineárnu funkciu príslušnosti účelovej funkcie ako
Za pomoci funkcií príslušnosti a a podľa Bellmanovho a Zadehovho symetrického prístupu, môžeme fuzzy úlohu o batohu s ostrou účelovou funkciou a kapacitnou fuzzy nerovnosťou, riešiť pomocou nasledujúceho bivalentného lineárneho programovania
Dosadením funkcií príslušnosti a obdržíme nasledujúci problém
(7) |
Funkciu príslušnosti fuzzy kapacitnej podmienky a fuzzy účelovej funkcie môžeme vidieť na obrázku 2.
Fig.2 Podľa Bellmanovho a Zadehovho prístupu [2] je funkcia príslušnosti fuzzy rozhodnutia rovná prieniku funkcie príslušnosti fuzzy kapacitnej podmienky a funkcie príslušnosti fuzzy účelovej funkcie .
Príklad 4 (UB s ostrou účelovou funkciou a fuzzy nerovnosťou)
Pokračujme v príklade(2). Problém riešme pomocou fuzzy úlohy o batohu [9], pre ktorú definujeme ceny a váhu predmetov ako pre
a nosnosť batohu je rovná hodnote .
Po vyriešení úlohy LP1 obdržíme vektor rozhodnutí s hodnotou účelovej funkcie . Po vyriešení úlohy LP2 s parametrom tolerancie obdržíme vektor rozhodnutí s hodnotou účelovej funkcie . Teraz môžeme riešiť fuzzy úlohu o batohu 7, ktorej riešením je vektor rozhodnutí , premennou s rozvrhom
s mierou nerovnomernosti a s hodnotou účelovej funkcie . Funkciu príslušnosti fuzzy kapacitnej podmienky a fuzzy účelovej funkcie s optimálnym riešením môžeme vidieť na obrázku 3.
Fig. 3 Z dôvodu bivalentnoti premenných nie je optimálne riešenie rovné maximálnej hodnote prieniku fuzzy množiny cieľov a podmienky.
6. Fuzzy účelová funkcia a fuzzy kapacitné podmienky
Teraz sa pokúsime riešiť úlohu o batohu s fuzzy účelovou funkciou a fuzzy kapacitnou nerovnosťou. Na riešenie použijeme symetrický Zimmermannov prístup, v ktorom je funkcia príslušnosti kapacitnej podmienky volená rovnako ako pri predošlej Wernersovej metóde. V tomto prípade ale Zimmerman predpokladá, že fuzzyfikovaný operátor účelovej funkcie je chápaný v zmysle dosiahnutia čo možno najlepšie aspiračnej hladiny . Vzhľadom na tento predpoklad môžeme zapísať matematický model úlohy o batohu ako
(8) |
Na vyriešenie problému (8) musíme najskôr vhodne zvoliť funkciu príslušnosti pre obe fuzzy nerovnosti a aplikovať Bellmanov a Zadehov princíp na obdržanie fuzzy rozhodnutia.
Nech a predstavujú povolené tolerancie účelovej funkcie a kapacitnej podmienky. Nech značí funkciu príslušnosti účelovej funkcie a predstavuje funkciu príslušnosti kapacitnej podmienky fuzzy úlohy o batohu problému (8), ktoré môžeme písať ako
a
Teraz na základe Bellmanovho a Zadehovho princípu sme schopní identifikovať fuzzy rozhodnutie a vyriešiť problém systému fuzzy nerovností odpovedajúcich problému (8). Substitúciou funkcií príslušností obdržíme nasledujúci ostrí problém bivalentného lineárneho programovania,
(9) |
Ak dvojica je optimálnym riešením (9), potom povieme, že je optimálnym riešením problému (8) a je stupeň, s ktorím tvorca rozvrhu dosiahol aspiračný level .
Príklad 5 (s fuzzy účelovou funkciou a fuzzy nerovnosťou)
Aj tentoraz použime zadanie príkladu 2. Problém riešme pomocou fuzzy úlohy o batohu (9), pre ktorú môžeme definovať ceny a váhu predmetov ako pre
a nosnosť batohu je rovná hodnote .
Z nerovnosti (6) tentoraz nebudeme vypúšťať kapacitné obmedzenie batohu, ale použijeme ho ako aspiračný level . Pre toleranciu aspiračného levelu ceny batohu a toleranciu nosnosti batohu sú volené nasledujúce hodnoty a .
Dosadením hodnôt c, a, Z, b, a do matematického modelu (9) a jeho riešením obdržíme optimálny vektor rozhodnutí a . Funkciu príslušnosti fuzzy kapacitnej podmienky a fuzzy účelovej funkcie s optimálnym riešením môžeme vidieť na obrázku 4.
Fig. 4 Obrázok zobrazuje prienik funkcie príslušnosti účelovej funkcie s funkciou príslušnosti kapacitnej podmienky a optimálne riešenie úlohy.
7. Záver
Článok sa zaoberal problematikou tvorby rovnomerných rozvrhov. Táto problematika je taktiež známa pod menom “problém rovnomernosti riadkových súčtov stĺpcovo permutovanej matice”, ktorá je známa pod anglickým menom Matrix Permutation Problem, ktorý je výpočtovo jedným z najkomplexnejších matematických modelov súčastnosti. Zaujala nás hlavne dvojriadková matica MPP2r, ktorej riešenie je použiteľné v heuristických metódach. MPP2r sme pretransformovali na klasickú úlohu o batohu KUB.
Vďaka charakteru MPP2r a vhodného matematického tvaru úlohy o batohu, sa MPP2r stala vhodným ilustračným príkladom aplikácie Belmanovho a Zadehovho princípu fuzzy rozhodovania. Teda na riešenie MPP2r pretranformovaného na KUB sme použili najskôr nesymetrický Verdegayov prístup rozšírený o symetrický Wernersov model, pomocou ktorého sme riešili fuzzifikovanú úlohu o batohu s ostrou účelovou funkciou a fuzzy kapacitnou nerovnosťou. Potom sme MPP2r riešili pomocou symetrického Zimmermannovho prístupu s fuzzy účelovou funkciou a fuzzy kapacitnou nerovnosťou.
Poďakovanie
Táto práca vznikla s podporou grantovej agentúry VEGA vrámci riešenia projektu 1/0374/11 “Modelovanie a optimalizácia mobility a infraštruktúry v logistických sieťach.”.
References
- Bector, C.R., Chandra, S., Fuzzy Mathematical Programming and Fuzzy Matrix Games, Springer Berlin Heidelberg New York, ISBN 3-540-23729-1, 2005
- Bellman, R.E., Zadeh, L.A., Decision making in a fuzzy environment, Management Science, vol. 17, pp. 141-164, 1970
- Graham, R.L., Lawler, E.L., Lenstra, J.K., Rinnooy Kan, A.H.G., Optimization and Approximation in Deterministic Sequencing and Scheduling: A Survey, 1979
- Peško, Š., Optimalizácia NP-ťažkých dopravných rozvrhov, ŽU Žilina, Habilitačná práca, 2002
- Peško, Š., The Matrix Permutation Problem in Interval Arithmetic, Journal of Information, Control and Management Systems, vol. 1, num. 1, 2006
- Fiedler, M., Nedoma, J., Ramík, J., Rohn, J., Zimmermann, K., Linear Optimization Problems with Inexact Data, Springer, ISBN 0-387-32697-9, 2006
- Verdegay, J.L., Fuzzy mathematical programming, in M.M. Gupta and E. Sanches (eds.), Fuzzy Information and Decision Processes, North Holland, Amsterdam, 1982
- Verdegay, J.L., A dual approach to solve the fuzzy linear programming problem, Fuzzy Sets and Systems, vol. 14, pp. 131-141, 1984
- Werners, B., Interactive multiple objective programming subject to flexible contraints, European Journal of Operations research, vol. 31, pp. 342-349, 1987
- Zimmermann, H.J., Fuzzy Set Theory and Its Applications, 3. Edition, Kluwer Academic Publichers, Nowell, MA, USA, 1996
- GNU Linear Programming Kit (GLPK), Package for solving large-scale linear programming (LP) and mixed integer programming (MIP)