Problém rovnomerných rozvrhov a stochastické programovanie
22. August, 2011, Autor článku: Ladovský Tomáš, Informačné technológie
Ročník 4, číslo 8
Pridať príspevok
Článok sa venuje problému tvorby rovnomerných rozvrhov pri neistote. Tieto rovnomerné rozvrhy môžeme zovšeobecniť a riešiť ako problém rovnomernosti riadkových súčtov stĺpcovo permutovanej matice. Nás zaujíma výhradne dvojriadkový variant problému, pričom prvky matice sú modelované náhodnými premennými normálneho rozdelenia pravdepodobnosti. Dvojriadkovú stochastickú maticu vieme riešiť exaktne transformáciou na bivalentný program známy pod názvom stochastická úloha o batohu. Pre každý prezentovaný problém je riešený ilustračný príklad.
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ť turnusy1 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 [2], 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 verejnej doprave, predstavujú jednotlivé premenné x1 až xm plánované kumulované pracovné zaťaženia m vodičov a je ideálnym pracovným zaťažením. V tomto prípade priemernou hodnotou, ktorú spočítame ako
(2) |
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
2. Matematická formulácia
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 [4]. Vhodným preusporiadaním stĺpcov matice môžeme docieliť väčšiu rovnomernosť riadkových súčtov matice/rozvrhu.
Definícia 2.1. (Matrix permutation problem [3])
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 $latex {\mathbb A}^\psi = (a_{\psi_{ij},j})
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 [3,4].
Príklad 2.1. (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ň a vektor predstavuje štyri riadkové súčty matice
(3) |
Hodnota ideálneho kumulovaného výkonu vodiča je podľa (2) rovná hodnote . 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 je miera nerovnomernosti rovná hodnote s odpovedajúcimi riadkovými súčtami S (3). Hodnota miery nerovnomernosti nás informuje o tom, že týždenné výkony vodičov sú priemerne odchýlené od ideálnej hodnoty o 5,6%. Rozvrh môžeme vidieť na obrázku 1(a) a riadkové súčty na obrázku 1(b).
(a) Nerovnomerný rozvrh – týždenný
(b) Nerovnomerný rozvrh – kumulované pracovné časy
Obr. 1: Nezrovnomernený rozvrh služieb vodičov autobusov. Modrá horizontálna čiara predstavuje ideálny kumulovaný výkon vodiča
Teraz tvorca rozvrhu použije stochastickú-dekompozičnú metódu [3,4] a pomocou nej vygeneruje nasledovnú maticu permutácií , výsledný rozvrh reprezentovaný maticou a vektor riadkových súčtov matice .
(4) |
Pre tento rozvrh získavame nasledujúcu hodnotu miery nerovnomernosti s odpovedajúcimi riadkovými súčtami (4). Vidíme, že rozvrh získaní heuristickou metódou je viac zrovnomernený. Rozvrh môžeme vidieť na obrázku 2(a) a riadkové súčty na obrázku 2(b).
(a) Rovnomerný rozvrh – týždenný
(b) Rovnomerný rozvrh – kumulované pracovné časy
Obr. 2: Zrovnomernený rozvrh služieb vodičov autobusov. Modrá horizontálna čiara predstavuje ideálny kumulovaný výkon vodiča
Veľmi zaujímavé varianta problému () vzniká pre dvojriadkovú variantu matice $\mathbb A$. Exaktné riešenie problému môže poslúžiť v heuristických metódach na získanie dobrého riešenia problému . Nasledujúci text objasňuje problematiku riešenia problému pomocou klasickej úlohy o batohu.
3. Dvojriadková matica
Klasická úloha o batohu je jednou z najznámejších a najpoužívanejších úloh matematického lineárneho programovania a tvorí jadro mnohých heuristických metód. Jej matematická formulácia je nasledovná.
Definícia 3.1. (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 N, |N| = n 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.
(5) |
Problém rovnomernosti riadkových súčtov stĺpcovo permutovanej \textit{dvojriadkovej matice} môžeme exaktne riešiť pomocou nie zložitej transformácie na klasickú úlohu o batohu .
Veta 3.1. (Transformácia na )
Pre danú maticu typu a maticu permutácií množiny môžeme úlohu $layex {\mathcal MPP2r}$ pretransformovať na klasickú úlohu o batohu pomocou substitúcie
(6) |
a
(7) |
kde vektor rozhodnutí priradenia predmetu do batohu formulujeme ako
Dôkaz (Transformácia na )
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 x, pre ktoré platí nasledujúca rovnosť
ktorú môžeme po dosadení a pomocou substitúcií
prepísať na tvar
Bez ujmy na všeobecnosti môžeme rovnosť rozpísať na nerovnosti
(8) |
(8) |
Aby sme úspešne transformovali zadanú úlohu na model úlohy o batohu, môžeme z ľavej strany nerovnosti (9) vypustiť konštantu b a použiť nerovnosť ako účelovú funkciu, ktorú maximalixujeme. Prvá nerovnosť (8) zaručuje, že súčet prvého riadku nepresiahne hodnotu b. Druhá nerovnosť (9) (úč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 (5).
Príklad 3.1. (Ilustračný príklad problému )
Príkladom aplikácie 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 predstavuje rozhodnutia, ktoré môžeme formulovať ako: xj
- 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á pätica c = a = (10,15,3,15,-15) predstavuje cenu a váhu predmetu a b=14 predstavuje nosnosť batohu. Riešením úlohy (5) získame nasledujúcu usporiadanú päticu rozhodnutí x = (1, 1, 1, 0, 1). Potom matica permutácií je rovná
a riadkové súčty sú rovné .
4. Neistá veľkosť aktivít
V praxi dochádza k odchýleniu plánovaných pracovných časov turnusov, od skutočne sa zrealizovaných časov jázd vodičov, čo môže mať zásadný dopad na celkovú rovnomernosť rozvrhu. Tento nedostatok sa pokúsime vyriešiť robustnejším modelovaním pracovných časov turnusov. Ak máme k dispozícií štatistiku minulých realizácií turnusov, tak môžeme pomocou teórie pravdepodobnosti modelovať plánované časy turnusov pomocou náhodných premenných. Ak štatistiku k dispozícií nemáme, tak pravdepodobnostné rozdelenia navrhujeme pomocou dosiahnutých skúseností v danom obore, čo je prípad nasledujúceho textu.
Pravdepodobné správanie sa náhodných premenných môžeme popísať zákonom rozdelenia pravdepodobnosti. Kvôli jednoduchosti sa obmedzíme v nasledujúcom texte na normálne rozdelenie pravdepodobnosti [5].
Definícia 4.1. (Normálne rozdelenie pravdepodobnosti)
Náhodná premenná X má normálne rozdelenie pravdepodobnosti s parametrami a , ak jej funkcia hustoty pravdepodobnosti (pdf) je
(10) |
Zapisujeme: . Parametrami normálneho rozdelenia sú: – stredná hodnota a – smerodajná odchýlka.
Pri transformácií problému na sme použili operácie sčítania a odčítania dvoch alebo viacerých reálnych hodnôt. V nasledujúcom texte ale potrebujem tieto operácie vykonávať s náhodnými premennými. Nasledujúca veta formalizuje spôsob sčítania (odčítania) dvoch náhodných premenných.
Veta 4.1. (Vlastnosti normálneho rozdelenia [6, 7])
Ak X a Y sú nezávislé náhodné premenné normálneho rozdelenia, potom X+Y je taktiež normálneho rozdelenia, t.j. ak a a X a Y sú nezávislé, potom .
Ak X je náhodná premenná normálneho rozdelenia, t.j. , potom lineárna forma aX+b, pre , je taktiež normálneho rozdelenia, t.j. .
Ak X a Y sú nezávislé náhodné premenné normálneho rozdelenia, potom je taktiež normálneho rozdelenia, t.j. ak a a X a Y sú nezávislé, potom .
Dôkaz. (Vlastnosti normálneho rozdelenia)
Dôkaz môžeme nájsť na internetovej stránke otvorenej slovenskej online encyklopédie so slobodným obsahom [6], [7].
V predošlom texte sme v probléme modelovali pracovné časy turnusov pomocou reálnych čísel. Následne sme tento problém transformovali pomocou vety 3.1 na klasickú úlohu o batohu s reálnymi koeficientami v účelovej funkcii a podmienkach. Teraz ale chceme modelovať v probléme pracovné časy turnusov pomocou náhodných premenných normálneho rozdelenia (4.1) a transformovať ho na stochastickú úlohu o batohu , ktorú vieme riešiť pomocou teórie stochastického programovania [2]. Pre ľahšie porozumenie problematiky uvádzame nasledujúci ilustračný príklad.
Príklad 4.1. (Ilustračný príklad stochastického problému)
Uvažujme rozvrhovaciu úlohu (príklad 3.1) pre dvoch vodičov na týždeň (5 pracovných dní), kde prvok matice rozmeru predstavuje \textbf{plánované} pracovné časy i-teho turnusu, ktorý máme prejsť v j-ty deň
Pre každý deň päť dňového obdobia máme rozhodnúť o tom, v akom poradí pridelíme dvojicu turnusov dvojici vodičov, tak aby celkové kumulované výkony oboch vodičov, boli čo najviac rovné ideálnemu výkonu za celé časové obdobie.
Nech je množina indexov vodičov a nech je množina indexov dní. Modelujme predpokladané odchýlky plánovaných časov (viď. matica ) od skutočne sa zrealizovaných časov jázd vodičov autobusov pomocou náhodnej matice rozmeru a predpokladajme, že pre každý nasledujúci deň je náš odhad pracovných časov turnusov viac nepresný. Prvkami tejto matice sú náhodné premenné normálneho rozdelenia, tzv.
(11) |
kde a .
Pretransformujme teraz problém na stochastickú úlohu o batohu pomocou nasledujúcich výpočtov:
1. Cenu a váhu j-teho predmetu vyjadríme ako
kde je náhodný vektor s realizáciami , ktorého prvky spočítame ako
a podľa vety 4.1 platí . Pretože je normálne rozdelenie neohraničené, obmedzíme sa s realizáciami náhodného vektora na 99% konfidenčné intervaly
(12) |
Teraz môžeme vektor zapísať ako
a plati
2. Nosnosť batohu spočítame ako
a plati
Matematický model stochastickej úlohy o batohu môžeme teraz formulovať ako:
(13) |
kde predstavuje priemernú hodnotu vzhľadom na pravdepodobnostné rozdelenie .
Aby sme si pri riešení problému (13) ušetrili nepríjemnosti spojené so spojitým normálnym rozdelením, aproximujme toto spojité rozdelenie diskrétnym [2]. Pre tento účel
- generujme pre každé súbor realizácií obmedzených na 99% konfidenčné intervaly. Veľkosť súborov je K = 15000;
- ekvidištančne rozdeľme 99% konfidenčné intervaly (12) na r=15 podintervalov, r je počet realizácií
- pre každý podinterval , kde spočítajme aritmetický priemer , kde a sú porade súčet a počet realizácií obsiahnutých v
- pre každý podinterval spočítajme relatívnu frekvenciu
Tieto diskrétne pravdepodobnostné rozdelenia
(14) |
sú ďalej použité ako aproximácie daných normálnych rozdelení a môžeme ich vidieť na obrázku 3.
Obr. 3: Diskrétne pravdepodobnostné rozdelenia, ktoré vznikli diskretizáciou spojitých normálnych rozdelení (11), ktorých realizácie patria do 99% konfidenčných intervalov (12).
Nech je množina indexov realizácií náhodného vektora diskrétneho pravdepodobnostného rozdelenia (14). Teraz môžeme prepísať stochastickú úlohu o batohu (13) na klasický deterministický bivalentný problém
(15) |
kde vzhľadom na vzájomnú nezávislosť prvkov náhodného vektora , môžeme vypočítať pravdepodobnosť realizácie ako
Riešením stochastického problému (15) je vektor rozhodnutí x = (1,1,1,0,1), pre ktorý je matica permutácií je rovná
Poznámka 1. (Ilustračný príklad stochastického problému)
Z (11) vidíme, že pre každý nasledujúci deň rozvrhovania je väčší rozptyl normálneho rozdelenia pravdepodobnosti, čo vedie k predpokladu, že pre každý nasledujúci deň je náš odhad pracovných časov turnusov viac nepresný. Otázkou ostáva, či stratégia ktorá pre každý nasledujúci deň zväčšuje tento rozptyl, alebo stratégia ktorá zmenšovať tento rozptyl, vedie na optimálny rozvrh vzhľadom na optimalizačné kritérium
kde je miera nerovnomernosti (1) a je vektor riadkových súčtov rozvrhu s naplánovanými časmi turnusov a je vektor skutočne sa zrealizovaných časov jázd vodičov.
Od počtu realizácií r náhodného vektora v j-tom dni sa môže stať program (15) príliš veľkým a komplexným.
5. Záver
Článok sa venoval problematike riešenia rovnomerných rozvrhov, kde veľkosť aktivít pridelených zdrojom v danom čase je modelovaná pomocou náhodných premenných normálneho rozdelenia. Náhodné premenné sú zvolené namiesto reálnych čísel kvôli ich schopnosti zachytiť dostatočné množstvo informácie potrebnej na vytvorenie požadovaného optimálneho rozvrhu, ktorý je vhodný pre každú realizáciu náhodnej premennej. Problematiku rovnomerných rozvrhov vieme zovšeobecniť a matematicky formulovať pomocou problému rovnomernosti riadkových súčtov stĺpcovo permutovanej matice [3,4], ktorý v angličtine vystupuje pod názvom “Matrix Permutation Problem”.
Pre nás zaujímavou variantou je problematika dvojriadkovej matice, ktorej prvky modelujem pomocou náhodných premenných. Problematiku rovnomernosti riadkových súčtov stĺpcovo permutovanej stochastickej dvojriadkovej matice transformujeme na stochastickú úlohu o batohu a riešiť pomocou teórie stochastického programovania [2] zmenou na vhodný deterministický model bivalentného programovania.
Poďakovanie
á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
- Graham, R.L., Lawler, E.L., Lenstra, J.K., Rinnooy Kan, A.H.G., Optimization and Appro- ximation in Deterministic Sequencing and Scheduling: A Survey, 1979
- Kall, P., Wallace, S.W., Stochastic programming, ISBN 0471951080, 1994
- 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
- Teória pravdepodobnosti, Internetový zdroj, http://www.graduate.sk/Handlers/ Download.ashx?Id=136
- Sum of normally distributed random variables, From Wikipedia, the free encyclopedia, 2011
- Normal distribution, From Wikipedia, the free encyclopedia, 2011
1Turnus je denný pracovný cyklus, ktorý má byť odjazdený vodičom v danom dni a pozostáva z postupnosti trás. Trasa je súbor jázd a jazda pozostáva z príslušného času (miesta) odchodu a príchodu autobusu.