Inferenčná miera nerovnomernosti
22. Jún, 2011, Autor článku: Ladovský Tomáš, Informačné technológie
Ročník 4, číslo 6
Pridať príspevok
Miera nerovnomernosti () plní dôležitú úlohu kritériálnej funkcie pri tvorbe rovnomerných rozvrhov (). Špeciálne typy rozvrhy vieme matematicky formulovať pomocou maticového zápisu, v ktorom prvok predstavuje aktivity, stĺpec predstavuje časový horizont, riadok predstavuje postupnosť aktivít pridelených zdroju na spracovanie a jednotlivé riadkové súčty predstavujú kumulované výkony aktivít pridelené k zdrojom.
Tieto riadkové súčty predstavujú vstupný argument . Čim je menšia, tým je rozvrh viac rovnomerný. Ak sú rozvrhované aktivity reprezentované pomocou neistých čísel, potom je tvorca rozvrhu vedený k výskumu a vývoji nových tvarov , ktoré sú schopné prijať a vyhodnotiť vstupný argument neistých riadkových súčtov. Veľkosti aktivít modelujeme v tomto prípade pomocou fuzzy čísel. Vzhľadom na tento predpoklad sme navrhli inferenčnú mieru nerovnomernosti za pomoci teórie fuzzy inferenčných systémov.
1. Úvod
Rovnomerné rozvrhy () získavame pomocou procesu rozhodovania optimalizáciou kritériálnej funkcie, ktorú nazývame miera nerovnomernosti. Vzhľadom na Grahamovú klasifikáciu môžeme problematiku tvorby rovnomerných rozvrhov rozdeliť na štandardné a neštandardné rovnomerné rozvrhy. Medzi štandardné rozvrhy patrí rozvrhovanie úloh špecifickým paralelným strojom a rozvrhovanie úloh v sériovej/zákazkovej/otvorenej výrobe. Medzi neštandardné rovnomerné rozvrhy zaraďujeme problematiku rozpisovania služieb vodičom autobusov, letcom, letuškám, sestričkám v nemocnici a veľa iných.
Veľké množstvo neštandardných rozvrhov vieme matematicky formulovať pomocou matice, ktorej stĺpec predstavuje časový horizont, riadok predstavuje postupnosť pridelených aktivít danému zdroju a prvky predstavujú plánované výkony aktivít. Riadkové súčty matice predstavujú kumulované výkony zdrojov, na základe ktorých vyhodnocujeme mieru nerovnomernosti a ktoré sa v práci snažíme zrovnomerniť. Túto rovnomernosť rozvrhu vieme získať permutovaním prvkov v stĺpcoch tak, aby čo najlepšie optimalizovali mieru nerovnomernosti, ktorá môže nadobúdať nasledujúce tvary
(1) |
(2) |
Za predpokladu, že vytvárame rozvrh v doprave, môžu jednotlivé premenné až predstavovať plánované pracovné zaťaženia m vodičov a je ideálnym pracovným zaťažením vodičov, 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 [1] klasifikáciu ide o neštandardný typ rozvrhov.
Táto maticová formulácia neštandardných rozvrhov je vďaka predošlému výskumu u nás a v zahraničí známa pod menom problém rovnomernosti riadkových súčtov stĺpcovo permutovanej matice, a ktorá je v anglosaskej literatúre známa pod menom “The Matrix Permutation Problem”, [3].
S neistotou sa v rovnomerných rozvrhoch stretávame napr. pri plánovaní budúcej realizácie výkonu aktivity. Takéto rozvrhy nazývame pri neistote. Z pohľadu problematiky to znamená, že prvky matice sú neisté čísla. Pod neistými číslami si predstavujeme reálne intervaly, fuzzy čísla a náhodné premenné. V nasledujúcom texte sa zameriame iba na fuzzy čísla.
2. Súčasný stav
Rovnomerné rozvrhy môžeme zovšeobecniť a matematicky formulovať ako kombinatorický problém rovnomernosti riadkových súčtov stĺpcovo permutovanej matice. 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 [2])
Nech a sú konečné neprázdne množiny a nech je reálna matica rozmeru . Hľadá sa taká matica permutácií stĺpcov matice 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 je matica
Problematiku vieme riešiť pomocou heuristických metód. Za zmienku stojí veľmi rýchla a kvalitná stochastická dekompozičná metóda [2] a metóda deň-po-dni [4] (stĺpec-po-stĺpci) . Stochastická dekompozičná metóda pracuje na princípe rozkladu problému na dvojstĺpcovú variantu problém, jej riešením a následným spätným vytváraním všeobecnej matice. Metóda stĺpec-po-stĺpci najskôr pridelí aktivity riadkom pre prvý stĺpec, potom pre druhý a takto pokračuje až po posledný stĺpec. Toto prideľovanie uskutočňujeme s ohľadom na mieru nerovnomernosti.
Veľmi zaujímavá varianta problému vzniká pri dvojstĺpcovej matici, tzv. n=2, ktorú označujeme . Túto variantu vieme riešiť exaktne v polynomiálnom čase pomocou \textit{priraďovacej úlohy} bivalentného lineárneho programovania, kde maticu priradení definujeme ako
Definícia2 (Klasická priraďovacia úloha KPU)
Medzi najznámejšie inštancie rozvrhovacích úloh patrí klasická priraďovacia úloha. Nech je konečná množina, typu je daná matica reálnych čísel a typu je hľadaná matica priradení. Potom priraďovaciu úlohu možno formulovať ako nasledujúcu úlohu bivalentného lineárneho programovania.
Aby sme vyriešili pomocou , potrebujeme správne navrhnúť účelovú funkciu, t.j. prvky matice . Pre štandardný postup [2] nám poslúži miera nerovnomernosti (2). Po jednoduchej úprave získavame nasledujúci tvar
(4) |
Za predpokladu že permutácia prvého stĺpca je identická, je . Hodnoty a sú konštantné a neovplyvňujú výsledok optimalizácie, preto ich z účelovej funkcie môžeme vypustiť. Za predpokladu , môžeme písať prvok matice ako pre všetky
Exaktné výsledky dvojstĺpcovej varianty používajú na výpočet všeobecnejšieho problému heuristické metódy riešenia (viď. stochastická dekompozičná metóda).
Čo ale ak potrebujeme nahradiť niektoré alebo všetky prvky matice neistými hodnotami (fuzzy číslami, fuzzy intervalmi)? V takomto prípade potrebujeme definovať novú mieru nerovnomernosti, ktorá vie pracovať s neistými číslami. S touto problematikou sa zaoberá nasledujúca sekcia.
3. Inferenčná miera nerovnomenosti
Navrhnime teraz nerovnomernosti, ktorej vstupným argumentom môže byť ako vektor reálnych čísel, tak aj vektor fuzzy čísel a intervalov. Na návrh takejto miery nerovnomernosti požijeme fuzzy inferenčný systém.
Aby sme mohli vyriešiť problém pomocou , potrebujeme správne navrhnúť účelovú funkciu, t.j. prvky matice . Postup návrhu inferenčnej miery nerovnomernosti uvedieme v nasledovnom príklade na problematike .
Príklad 1 (Ilustračný príklad riešenia pomocou )
Majme už existujúci s-dňový rozvrh pre piatich vodičov a pre -vý deň chceme nájsť také priradenie i-teho vodiča k j-temu turnusu, aby index preferencie spojený s týmto priradením bol maximálny, pričom musíme každému vodičovi priradiť práve jeden turnus (h1) a každému turnusu priradiť práve jedného vodiča (h2). Nech prvý stĺpec dvojstĺpcovej matice odpovedá kumulovaným výkonom [min] piatich vodičov po s-tý deň a druhý stĺpec matice odpovedá pracovným časom [min] piatich turnusov, o ktorých ešte len máme rozhodnúť, ktorému vodičovi budú priradené.
Zadanie chceme riešiť pomocou priraďovacej úlohy (3), pre ktorú sú obe podmienky (h1,h2) splnené. Ostáva nám iba správne navrhnúť účelovú funkciu, t.j. prvky matice , ktoré spočítame pomocou fuzzy inferenčného systému, pre každé a pre každé samostatne, tzn., že vykonáme 25 fuzzy inferencií.
Výhodou použitia fuzzy inferenčného systému je, že vyjadrí hodnoty matice aj pre fuzzy vstupy, tzv. pre fuzzy maticu . Teda nemusíme navrhovať žiadnu novú mieru nerovnomernosti pracujúcu s fuzzy číslami. Pre jednoduchosť riešme túto úlohu pre reálnu maticu, ktorej prvky sú fuzzy singletony
Nami navrhovaný fuzzy inferenčný systém má dve reálne vstupné hodnoty a , ktoré sa zobrazujú do príslušných fuzzy množín (hodnôt fuzzy lingvistických premenných) a jednu reálnu výstupnú hodnotu y.
Báza dát pozostáva z dvoch fuzzy lingvistických premenných , ktoré sú potrebné pri fuzzyfikácií, t.j. pri určovaní stupňa, ktorým jednotlivé vstupy prislúchajú fuzzy lingvistickým hodnotám, ktoré definujeme pomocou funkcií príslušnosti. Nech je fuzzy lingvistická premenná vyjadrujúca denný kumulovaný pracovný čas vodiča nadobúdajúca nasledujúce hodnoty (obr. 1(a)):
- VS – Very short working cumulated time
- S – Short working cumulated time
- A – Average working cumulated time
- L – Long working cumulated time
- VL – Very long working cumulated time
(a) Fuzzy lingvistická premenná vyjadrujúca kumulovaný denný pracovný čas vodiča s danými funkciami členstva fuzzy množín VS, S, A, L, VL
(b) Fuzzy lingvistická premenná vyjadrujúca denný pracovný čas turnusu a jej funkcie členstva fuzzy množín VS, S, A, L, VL
Fig.1 Vstupné fuzzy lingvistické premenné
Nech je fuzzy lingvistická premenná vyjadrujúca denný pracovný čas turnusu, ktorá nadobúda nasledujúce hodnoty (obr. 1(b)):
- VS – Very short working time
- S – Short working time
- A – Average working time
- L – Long working time
- VL – Very long working time
Ďalej báza dát pozostáva z fuzzy lingvistickej premennej , ktorá je potrebná v procese inferencie na získanie výslednej hodnoty (plochy) uvažovaného lingvistického pravidla (AK – POTOM). Nech je fuzzy lingvistická premenná vyjadrujúca index preferencie a nadobúda nasledujúce hodnoty (obr. 2).
- VLP – Very low preference
- LP – Low preference
- MP – Medium preference
- HP – High preference
- VHP – Very high preference
Fig. 2. Fuzzy lingvistická premenná C vyjadrujúca index preferencie a jej funkcie členstva fuzzy množín VLP, LP, MP, HP, VHP
Báza lingvistických pravidiel pozostáva z nasledujúcich piatich pravidiel:
Vidíme, že takto zapísaná báza lingvistických pravidiel je dosť nečitateľná a preto ju zjednodušíme a zapíšeme pomocou nasledujúcej tabuľky:
Báza pravidiel
y | x2 | |||||
VS | S | A | L | VL | ||
x1 | VS | VLP | LP | MP | HP | VHP |
S | LP | VLP | LP | MP | HP | |
A | MP | LP | VLP | LP | MP | |
L | HP | MP | LP | VLP | LP | |
VL | VHP | HP | MP | LP | VLP |
Zadefinujme si teraz dve vstupné a jednu výstupnú hodnotu fuzzy inferenčného systému:
- Prvou vstupnou hodnotou je ,
- druhou vstupnou hodnotou je a
- výstupnou hodnotou je .
Tieto vstupy a výstupy definujeme pre každé . Teraz môžeme použiť nástroj [7] (aplikáciu), ktorým vyriešime takto navrhnutý fuzzy inferenčný systém aplikovaním Mamdamiho inferenčnej metódy. Postup inferencie pre dané vstupy a s výslednou hodnotou môžeme vidieť na obrázku 3. Výsledok inferencie y patriaci do intervalu [0,100] pre všetky vstupné hodnoty a sme spočítali pomocou balíčka pyFuzzy [6] v programovacom prostredí Python [5] a môžeme ho vidieť na obrázku 4. A matica je rovná hodnotám
Po vyriešení priraďovacej úlohy získame maticu priradení
pre ktorú podľa predpisu
spočítame usporiadanú dvojicu (maticu permutácií (1)) optimálnych permutácií
pre ktoré obdržíme nasledujúci rozvrh
s kumulovanými pracovnými časmi vodičov .
Fig.3 Inferenčný proces Mamdamiho metódy pre dané vstupné hodnoty a s výslednou hodnotou
Fig.4 Výsledný graf fuzzy inferencie pre všetky vstupy.
4 Záver
Článok sa venoval problematike návrhu miery nerovnomernosti v problematike rovnomerných rozvrhoch pri neistote a to za pomoci fuzzy inferenčného systému. Výhoda tohoto prístupu spočíva v tom, že vstupný argument môže obsahovať reálne hodnoty a aj fuzzy čísla. Použitie inferenčnej miery nerovnomernosti sme demonštrovali na ilustračnom príklade riešenia problematiky, kvôli jednoduchosti, s reálnou maticou a za pomoci Mamdamiho inferenčnej metódy.
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
- 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
- Teodorovič, D., Lučić, P., A fuzzy set theory approach to the aircrew rostering problem, Fuzzy Sets and Systems, vol. 95, num. 3, pp. 261-277, 1998
- Python, Python Programming Language, Programming Language,
www.python.org - pyFuzzy, Python fuzzy package,
pyfuzzy.sourceforge.net - MATLAB, numerical computing environment, the matlab fuzzy toolbox