Aplikácia fuzzy dispečerských prioritných pravidiel
09. Máj, 2011, Autor článku: Ladovský Tomáš, Informačné technológie
Ročník 4, číslo 5
Pridať príspevok
Článok sa venuje problému rozvrhovania úloh identickým paralelným strojom pomocou konštrukčnej heuristiky, známej pod názvom dispečérske prioritné pravidlá, pričom optimalizačným kritériom je zrovnomernenie pracovného zaťaženia strojov. Technika dispečerských prioritných pravidiel patrí medzi prvé techniky, ktoré boli použité na riešenie problému identických paralelných strojov.
Princíp dispečerských prioritných pravidiel spočíva v pridelení priority nerozvrhnutým úlohám a následnom vytváraní rozvrhu postupne od úlohy s najväčšou prioritou po úlohu s najmenšou prioritou. Prioritu prideľujeme úlohám vzhľadom na ich dobu spracovania, pričom časy spracovania jednotlivých úloh sú neisté a modelované pomocou fuzzy trojuholníkových čísel. Pre pridelenie priority potrebujeme vedieť porovnať medzi sebou jednotlivé časy spracovania, čo sa u fuzzy čísel nedá urobiť jednoznačne (kvôli neistote).
Výsledok rozvrhovacieho problému je preto ovplyvnený rozhodnutím voľby metódy porovnania. Najskôr teda preskúmame a porovnáme metódy porovnania fuzzy trojuholníkových čísel a následne ich použijeme v dispečérskych prioritných pravidlách, ktoré aplikujeme na problém rozvrhovania úloh identickým paralelným strojom.
1. Úvod
Problém umiestnenia/priradenia úloh identickým paralelným strojom môžeme formulovať nasledujúco: Máme priradiť úloh na identických strojov tak, aby sme neporušili obmedzenia a optimalizovali zadané optimalizačné kritéria. Platí, že , kde predstavuje identické paralelné stroje, je počet strojov a je miera nerovnomernosti. Je dokázané, že minimalizácia času skončenia poslednej úlohy , čo sa dá taktiež formulovať ako minimalizácia maximálneho zaťaženia [20], vedie k zrovnomerňovaniu pracovnej záťaže. Takýto systém môžeme klasifikovať ako a ide o jeden z najviac študovaných systémov v literatúre. V článku ale používame na určenie miery rovnomernosti rozvrhu inú funkciu.
Garey a Johnson 1979 [6] ukázali, že problém rozvrhovania úloh identickým paralelným strojom je pre -ťažký. Z tohoto dôvodu prehľadávanie hrubou silou, dynamické programovanie, celočíselné programovanie a metóda vetiev a hraníc sa používajú na získanie optimálneho riešenia len pre malé a stredne veľké inštancie problému. Pre veľké inštancie sú nepoužiteľné.
Doposiaľ sa nenašiel efektívny polynomiálny algoritmus s optimálnym riešením a to viedlo veľa výskumníkov k vytváraní heuristík. Aj keď heuristiky negarantujú nájdenie optimálneho riešenia, tak poskytujú približné (aproximačné) riešenia, ktoré sú skoro tak dobré ako optimálne riešenia. Tieto je možné rozdeliť zhruba na zlepšujúce heuristiky a konštruktívne heuristiky. Do prvej kategórie patria algoritmy založené na lokálnom prehľadávaní okolia prípustného riešenia. Aplikácie takýchto algoritmov na riešenie problému môžeme nájsť v ([2],[1],[5])
Väčšina algoritmov patriacich do druhej kategórie majú známe pomery najhoršieho riešenia, získaného heuristikou, k optimálnemu riešeniu (worst case performance ratio). Medzi ne patria aj dispečerské prioritné pravidlá. Dispečérske pravidlo LPT (longet processing time first) bolo prvý krát predstavené Grahamom [7] v roku 1969. Toto dispečérske pravidlo sa stalo kritériom pri navrhovaní efektívnych algoritmov. Je známe, že zrovnomerňuje jednotlivé výkony strojov. Zrovnomerňovanie spôsobuje ponechanie najmenších časov spracovania na koniec rozvrhovania.
Ľudský faktor, výrobné chyby alebo výskyt porúch zapríčiňujú, že časy spracovania sú neistého charakteru. Takéto neisté časy spracovania môžeme modelovať pomocou fuzzy čísel. Pre porovnanie fuzzy čísel neexistuje univerzálna metóda, pomocou ktorej by sme ich vedeli porovnať a zoradiť. Veľa dispečérskych pravidiel prideľuje prioritu úlohám na základe relácie usporiadania časov spracovania úloh. Prideľovanie priority vyžaduje reláciu lineárneho usporiadania, ktorá pre fuzzy čísla nie je lineárne usporiadaná.
Pojem fuzzy množiny bol prvý krát predstavený americkým expertom na automatizáciu L. A. Zadehom [22] a pojem fuzzy čísla predstavili Jain [9] a Dubois a Prade [3]. Výskum porovnania fuzzy čísel je jednou z veľmi dôležitých tém teórie fuzzy množín a aplikuje sa na všetky oblasti rozhodovania. Napríklad poňatie optimality alebo najlepšieho výberu je kompletne založené na porovnaní (poradí). Fuzzy čísla nevieme ľahko usporiadať v poradí ich veľkosti, pretože predstavujú neisté a neurčité hodnoty, ktoré vyjadrujeme možnostnými rozdeleniami a môžu sa navzájom prekrývať. Ak sa dve fuzzy čísla prekrývajú, potom ich nemožno považovať za absolútne usporiadateľné [11]. To znamená, že jedenkrát môžeme považovať fuzzy číslo za väčšie ako ostatné, no pri inej metóde porovnania ho môžeme považovať za menšie ako ostatné. Dôsledkom je, že aj keď uvažujeme iba dve fuzzy čísla, potom výsledkom ich porovnanie sú dve postupnosti poradia v danom čase.
Ak usporiadame fuzzy čísla z obrázka 1a podľa ťažiska, Yager [21], tak získame výstupnú postupnosť , kde je najmenšie a najväčšie fuzzy číslo. U fuzzy čísel a je ihneď jasné, že fuzzy číslo je absolútne väčšie ako . Ak sa ale fuzzy čísla navzájom prekrývajú, potom ich nemôžeme považovať za absolútne usporiadateľné. Napríklad, fuzzy čísla a sa navzájom prekrývajú a tak nemôžeme považovať fuzzy číslo za absolútne väčšie ako . Stále totiž existuje možnosť, že je väčšie ako .
Veľké množstvo prioritných pravidiel je založené na porovnaní čísel. Článok prezentuje problém prideľovania úloh paralelným strojom, ktorých časy spracovania sú modelované pomocou trojuholníkových fuzzy čísel, ktoré sú vytvorené na základe štatistického súboru (tréningových dát) a snažíme sa nimi popísať očakávané časy spracovania úloh.
Na porovnanie fuzzy hodnôt neexistuje univerzálna metóda, tak ako sme zvyknutí u reálnych čísel. V dnešnej dobe existuje veľké množstvo metód, pomocou ktorých sme schopní porovnať fuzzy čísla. Rozdielne prístupy porovnania fuzzy čísel môžeme podľa Nasseriho [14] a Ramliho [18] kategorizovať do štyroch hlavných tried: relácie preferencie, posibilitné1 rozdelenia fuzzy priemeru a rozptylu, fuzzy bodovanie a lingvistické vyjadrovanie. My sa zameriame na centroidné metódy, ktoré patria do skupiny fuzzy bodovania. K týmto skupinám pridáme lexikografický a agregačný prístup porovnania fuzzy trojuholníkových čísel.
Cieľom článku je prezentovanie metód porovnania fuzzy čísel, dispečérskych prioritných pravidiel a ich aplikovania na riešenie problému prideľovania úloh paralélnym strojom. Taktiež nás zaujíma vplyv výberu metódy porovnania na optimalitu riešenia (rovnomernosť) a vplyv výberu dispečérskeho prioritného pravidla na rovnomernosť rozvrhu. Nasledujúca sekcia definuje pojem fuzzy čísla.
2. Fuzzy čísla
Nech je množina reálnych čísel. Fuzzy množinu definujeme na pomocou funkcie príslušnosti , kde predstavuje stupeň príslušnosti elementu vo fuzzy množine . Fuzzy podmnožina definovaná na je normálna, ak a iba ak
kde je výška fuzzy množiny . Fuzzy podmnožina množiny je konvexná, ak a iba ak
kde a . Nosič množiny je definovaný ako
Fuzzy množinu sa nazýva fuzzy číslo, ak a iba ak je normálna, konvexná a nosič množiny je ohraničený na . Trojuholníkové fuzzy číslo je fuzzy číslom so spojitou lineárnou funkciou príslušnosti definovanou ako:
kde je striktne rastúca funkcia a je striktne klesajúca funkcia. V nasledujúcom texte používame namiesto pojmu trojuholníkové fuzzy číslo skrátený tvar fuzzy číslo. Fuzzy číslo môžeme taktiež značiť ako usporiadanú trojicu , kde a . Hodnota je nazývaná infimom, je nazývaná modusom a je nazývaná suprémom.
Taktiež sa používajú označenia pre ako ľavá hodnota, spodná hodnota, pre sa používajú označenia ako centrálna hodnota, stredná hodnota a pre sa používajú označenia ako pravá hodnota, horná hodnota. V nasledujúcom texte sa obmedzíme na také trojuholníkové fuzzy čísla, ktorých hodnoty usporiadanej trojice sa nerovnajú. Definujme množinu všetkých fuzzy čísel s prirodzenými hodnotami ako
kde .
Iný spôsob porovnania fuzzy čísel je založený na vypočítaní súradníc ťažiska a porovnaní fuzzy čísel vzhľadom na hodnoty alebo vzdialenosti ťažísk od počiatku súradnicovej sústavy . Taktiež existujú rôzne modifikácie tejto metódy, ktorá sa označuje ako metóda porovnania indexov ťažiska alebo jednoducho ako centroidné metódy porovnania fuzzy čísel (angl. centroid index ranking methods).
Ako prvý prispel do metód porovnania fuzzy čísel s pojmom index ťažiska Yager v roku 1980 [21]. Vypočítal horizontálnu pozíciu ťažiska fuzzy čísla a túto hodnotu použil ako index porovnania. Túto hodnotu spočítame ako
kde predstavuje funkciu váh významu hodnoty . Pre sa horizontálna súradnica ťažiska stáva ťažiskom (COG). Čím je index väčší, tým je fuzzy číslo hodnotené ako väčšie. Pre definujeme Yagerov index ako
Murakami a kol. v roku 1983 prezentovali horizontálne a vertikálne súradnice bodu ťažiska. Horizontálna súradnica je rovnaká ako pri Yagerovi. Čím je index a/alebo väčší, tým je fuzzy číslo väčšie. Podľa Bortolan a Degani (1985) je logická iba voľba horizontálnej súradnice, pretože vertikálna hodnota je rovnaká pre všetky normálne trojuholníkové fuzzy čísla . Teda podľa Murakamiovho indexu sa na súradnicu pozeráme ako na hlavný index a na súradnicu pozeráme ako na pomocný index. Cheng v roku 1998 navrhol index vzdialenosti, ktorý je založený na oboch súradniciach ťažiska a môžeme ho definovať ako
Horizontálna súradnica je totožná s Yagerom a Murakamiom a pre fuzzy číslo je vertikálna súradnica rovná
Pôvodná Chengova metóda je špecializovaná pre porovnanie lichobežníkových fuzzy čísel, ale môže byť taktiež aplikovaná na všeobecné fuzzy čísla, pokiaľ je ľavá a pravá funkcia príslušnosti invertabilná. Nevýhodou metódy je, že nevie porovnávať negatívne fuzzy čísla. Chu a Tsao navrhol v roku 2002 ako index porovnania plochu medzi bodom ťažiska a stredom súradnicovej sústavy , ktorú definoval ako
kde a je totožné s Chengom. Väčšia plocha reprezentuje väčšie fuzzy číslo. Chen a Chen v roku 2003 zistili, že Chengová (1998), Murakamiová a kol. (1983) a Yagerová (1980) metóda nevie v určitých situáciách porovnať rozdielne fuzzy čísla a taktiež nevedia spočítať poradie pre ostré hodnoty. Z tohoto dôvodu Chen a Chen odvodili novú metódu, založenú na súradniciach ťažiska a smerodajnej odchýlke . Chen a Chenov index porovnania pre fuzzy čísla je definované ako
kde horizontálna súradnica je rovná hodnote
a vertikálna súradnica je buď rovná hodnote
ak alebo ak . Čím je hodnota väčšia, tým je fuzzy číslo väčšie. Pôvodná Chen a Chenová metóda je špecializovaná pre porovnanie zovšeobecnených lichobežníkových fuzzy čísel. Liang a kol. predstavili v roku 2006 dva indexy a to index vzdialenosti, ktorý je podobný k Chengovmu indexu vzdialenosti a RV index. Horizontálna súradnica je rovnaká ako u Chenga a vertikálna súradnica je rovná hodnote . RV index definujeme ako
kde je index vzdialenosti a pre fuzzy číslo platí
kde
Pre index vzdialenosti platí, že čím je väčší, tým je fuzzy číslo väčšie a pre RV index platí, že čím je menší, tým je fuzzy číslo väčšie. Navyše Liang a kol. ukázali ako voliť hlavný a pomocný index. Pre fuzzy čísla, ktoré sú obe normálne je potreba voliť RV index ako hlavný index a index vzdialenosti ako pomocný index. Túto metódu môžeme zaradiť ako medzi centroidné metódy, tak aj medzi lexikografické metódy. asledujúca sekcia formuluje dispečerské prioritné pravidlá a popisuje algoritmické kroky dispečérskych prioritných pravidiel RPT, SPT a LPT.
4. Dispečerské prioritné pravidlá
Technika dispečerských prioritných pravidiel2 bola jedna z prvých techník, ktorá sa použila na riešenie problému identických paralelných strojov. Jej výhody spočívajú v ľahkej implementácií a v polynomiálnom čase riešenia úlohy. Princíp metódy spočíva v tom, že v každom kroku pridelíme nerozvrhnutým operáciám prioritu a operácia s najväčšou prioritou sa pridá do rozvrhu. O dispečerských prioritných pravidlách pojednávajú napr. Pinedo [17], Palúch [15] a Mičunek [13]. Najznámejšími prioritnými dispečerskými pravidlami, ktoré sa používajú na prideľovanie úloh k identickým paralélnym strojom, sú:
Pravidlo | Popis dispečerského pravidla |
---|---|
RPT | (random processing time first) priorita je úlohám pridelená náhodne; |
LPT | (longest processing time first) úloha s väčším časom spracovania má väčšiu prioritou; |
WLPT | (weighted longest processing time first) úloha s váženým väčším časom spracovania má väčšiu prioritou; |
LRPT | (largest remaining processing time first) úloha so zostávajúcim väčším časom spracovania má väčšiu prioritu; |
SPT | (shortest processing time first) úloha s menším časom spracovania má väčšiu prioritou; |
WSPT | (weighted shortest processing time first) úloha s váženým menším časom spracovania má väčšiu prioritou; |
SRPT | (shortest remaining processing time first) úloha so zostávajúcim menším časom spracovania má väčšiu prioritu; |
FCFS | (first come first serve) úloha ktorá príde prvá, bude spracovaná prvá. |
Nasledujúci algoritmus popisuje algoritmické kroky dispečerského prioritného pravidla RPT (random processing time first).
Algoritmus: Dispečerské prioritné pravidlo RPT
1. Krok Inicializácia
- Poradie úloh vytvoríme náhodne
2. Krok Prideľovanie úloh
- V tomto poradí priraďujme úlohy strojom , ktoré sa najskôr uvoľnia.
Nech je permutácia množiny . Nasledujúci algoritmus popisuje algoritmické kroky dispečerského prioritného pravidla LPT (longest processing time first).
Algoritmus: Dispečerské prioritné pravidlo LPT
1. Krok Inicializácia
- Vytvoríme poradie úloh
(1) |
2. Krok Prideľovanie úloh
- V tomto poradí priraďujme úlohy strojom , ktoré sa najskôr uvoľnia.
Dôležitou vlastnosťou dispečerského prioritného pravidla LPT je, že zrovnomerňuje pracovné výkony strojov. Nasledujúci algoritmus popisuje algoritmické kroky dispečerského prioritného pravidla SPT (shortest processing time first).
Algoritmus: Dispečerské prioritné pravidlo SPT
1. Krok Inicializácia
- Vytvoríme poradie úloh
(1) |
2. Krok Prideľovanie úloh
- V tomto poradí priraďujme úlohy strojom , ktoré sa najskôr uvoľnia.
Priraďovanie priorít (1) a (2) úlohám robíme na základe porovnania časov spracovania všetkých úloh a to za pomoci metód porovnania fuzzy čísel. Nasledujúca sekcia aplikuje získané poznatky predošlých sekcií na probléme rozvrhovania identických paralelných strojov.
5. Identické paralelné stroje
Rozvrhovanie je optimálna alokácia/priradenie strojov množine úloh v čase. Nech je množina identických paralelných strojov a nech je množina úloh, kde sú kladné celé čísla. Podľa Graham a kol. [8] môžeme takýto systém klasifikovať ako , kde je miera nerovnomernosti. Rozvrhovanie je obmedzované viacerými predpismi a pravidlami pomocou nasledujúcich ťažkých podmienok:
- (h1) Každý stroj v jednom časovom okamžiku môže vykonávať nanajvýš jednu úlohu
- (h2) Každú úlohu v jednom časovom okamžiku môže spracovať nanajvýš jeden stroj
- (h3) Každú úlohu nie je možné pri jej spracovávaní prerušiť.
- (h4) Každá úloha je k dispozícii pre spracovanie už v čase 0.
- (h5) Nezáleží na poradí spracovania úloh, t.j. neexistuje precedenčná relácia medzi úlohami.
Nazývajú sa ťažkými podmienkami, pretože sa pri vytváraní rozvrhu nesmú porušiť. Ďalej je dobrý rozvrh charakterizovaný ľahkými podmienkami. V našom prípade ide o jednu ľahkú podmienku, a to zrovnomerňovanie celkových kumulovaných pracovných časov strojov, čo môžeme taktiež formulovať ako minimalizáciu miery nerovnomernosti . V ľahkých podmienkach sú zahrnuté ciele rozvrhovania a tie optimalizujeme.
Fuzzy čas spracovania úlohy budeme značiť ako , pre všetky . Doba spracovania úlohy je na všetkých strojoch rovnaká.
6. Experimentálne porovnanie
Najskôr vygenerujeme množinu fuzzy čísel, ktorých pravá hodnota je menšia alebo rovný hodnote . Tieto fuzzy čísla chceme použiť na modelovanie fuzzy časov spracovania úloh. Definujeme ju ako
, kde hodnota nepresiahne parameter , môžeme vidieť na obrázku 3. Z tejto množiny fuzzy trojuholníkových čísel vyberieme rovnomerne fuzzy čísel a vytvoríme tak množinu časov spracovania -úloh. Indexy porovnania fuzzy čísel značíme ako až .
Dispečérskym prioritným pravidlom pri nasledujúcom experimente je LPT pravidlo. O tomto pravidle je všeobecne známe, že zrovnomerňuje pracovné zaťaženia strojov. Preferenčnú permutáciu priraďovania úloh (1) sme vytvárali postupne pre metódy porovnania čísel až . Mierou nerovnomernosti, pomocou ktorej určujeme kvalitu výberu metódy porovnania a kvalitu výberu dispečérskeho prioritného pravidla, je nasledujúca upravená miera nerovnomernosti, ktorá bola prezentovaná v článkoch [16], [10]:
kde Vektor predstavuje pracovných zaťažení strojov. Miera nerovnomernosti (3) je tvorená sumou trojice hodnôt, pričom prvá suma vyjadruje mieru nerovnomernosti pre ľavé hodnoty fuzzy trojuholníkových pracovných zaťažení strojov, druha suma hodnôt vyjadruje mieru nerovnomernosti pre modálne hodnoty fuzzy trojuholníkových pracovných zaťažení strojov a tretia suma hodnôt vyjadruje mieru nerovnomernosti pre pravé hodnoty fuzzy trojuholníkových pracovných zaťažení strojov. Agregačná metóda () má váhy nastavené na hodnoty a . Nasledujúca tabuľka obsahuje priemerné hodnoty mier nerovnomerností pre 1000 vstupných inštancií: , , , kde je počet úloh, je počet strojov a je maximálna hodnota, ktorá ohraničuje fuzzy trojuholníkové čísla sprava.
Menšia miera nerovnomernosti vyjadruje viac zrovnomernený rozvrh. Najlepší prípad by nastal, keby miera nerovnomernosti (3) bola nulová. Vykonanie 1000 experimentov trvalo 4 hodiny a 38 minút. Najlepšie sa umiestnila Chen-Chenová metóda porovnania fuzzy čísel a najhoršie sa umiestnila Dvořáková metóda. Nasledujúca tabuľka obsahuje výsledky pre ďalších 1000 experimentov, v ktorých sme použili dispečérske prioritné pravidlo SPT. Parametre inštancie sú rovnaké ako v predchádzajúcom experimente. Priemerné výsledky experimentov sú v nasledujúcej tabuľke.
Vykonanie 1000 experimentov trvalo 6 hodín a 31 minút. Aj v tomto prípade sa najlepšie umiestnila Chen-Chenová metóda porovnania fuzzy čísel a najhoršie Dvořáková metóda. Výsledky ďalších 1000 experimentov, v ktorých použijeme dispečérske prioritné pravidlo RPT, sú zapísané v nasledujúce tabuľke.
Vykonanie 1000 experimentov trvalo 1 hodinu a 27 minút. V tomto prípade sa najlepšie umiestnil agregačný prístup porovnania fuzzy čísel a najhoršie sa umiestnila Dvořáková metóda. Ak porovnáme obdržané miery nerovnomernosti, ktoré sú vypočítané po použití dispečérskeho prioritného pravidla LPT s mierami nerovnomernosti po použití dispečérskeho prioritného pravidla SPT a RPT, tak dôjdeme k záveru, že dispečérske prioritné pravidlo LPT viac zrovnomerňuje rozvrh. 7. Záver Článok prezentoval problém prideľovania úloh strojom pomocou prioritných dispečérskych prioritných pravidiel. Každá úloha je reprezentovaná časom spracovania, ktorý je neistý. Túto neistotu modelujeme pomocou fuzzy trojuholníkových čísel. Veľké množstvo dispečérskych prioritných pravidiel pracuje na princípe porovnania časov spracovania jednotlivých úloh. Keďže ale časy spracovania obsahujú neistotu je potreba zvoliť (navrhnúť) metódu porovnania, ktorá je schopná porovnať takéto dve neisté čísla, v našom prípade ide o porovnanie trojuholníkových fuzzy čísel. V článku sme prezentovali 10 metód porovnania fuzzy trojuholníkových čísel. Zaujímalo nás, ako jednotlivé metódy porovnania fuzzy čísel ovplyvňujú rovnomernosť rozvrhu. Dospeli sme k názoru, že z uvedených desiatich metód porovnania fuzzy čísel sa najlepšie umiestnila Chen-Chenová metóda. Pri vyhodnocovaní výsledkov porovnávaní metód sme zanedbali optimalizačné vlastnosti, klady a zápory jednotlivých metód a taktiež sme zanedbali neúspešnosť s akou jednotlivé metódy porovnávajú fuzzy čísla. Pod pojmom neúspešnosť si môžeme predstaviť počet rôznych fuzzy čísel, ktoré daná metóda považuje za totožné. Taktiež nás zaujímalo, ktoré z dispečérskych prioritných pravidiel dokáže lepšie zrovnomerniť rozvrh. Experimentálne sme dokázali, že dispečérske prioritné pravidlo LPT lepšie zrovnomerňuje plánovaný rozvrh. Toto zrovnomerňovanie spôsobuje ponechanie najmenších časov spracovania na koniec rozvrhovania. 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. Literatúra
Napísať príspevok |