„A legritkábban előforduló szünetminta”- elvén működő szünetbeosztó algoritmus

Hatékony szünetbeosztás a munkahelyi terhelés kiegyensúlyozásáért: egy új megközelítés a munkahelyi pihenőidők diverzifikálására.

Szünetbeosztó szoftver képernyőképe, amely a leírásban ismertetett algoritmus eredményét vizualizálja. A Gantt-diagramon látható, ahogy a dolgozók rövid (sötétzöld) és hosszú (világoszöld) szünetei eloszlanak a nap folyamán.

Legyen N db szünetmintánk (egymástól lényegesen eltérőek). Az egyszerűség kedvéért színeket rendeljünk az egyes mintákhoz. (piros, kék, sárga, zöld…)

Egy új, még szünet nélküli műszak gerendájának színét szeretnénk meghatározni, úgy, hogy a csoportjába tartozó k db gerendának már van színe. A vezérlő elv: Az új gerenda színe legyen a gerenda időintervallumában legritkábban előforduló szín. Ehhez a többi már kiszínezett gerenda azon részeit (ami lehet az egész gerenda is, ha közös kezdésűek) vesszük figyelembe, amelyek a színezendő új gerenda időintervallumába esnek (eleje és vége közé). Megszámoljuk, hogy hány db időatomú rész (pl. 10 perces) milyen színnel van reprezentálva. Ezeket színek szerint összesítjük és a legkisebb végösszegű szín lesz a keresett új szín. Ha több ilyen is van (főleg a beosztás elején fordulhat ez elő), akkor véletlen szám generátorral kisorsoljuk a keresett színt. Ez az ebédidők diverzifikálása szempontjából hasznos. Tehát ha pl. az első gerenda szünetei minden óra 10-20-ig tartanak, akkor a második gerenda ne feltétlenül a 20-30 mintájú legyen, hanem pl. lehet a 40-50 is!

A hosszú vagy „ebédszünet” idejét a következő definíció jelöli ki:

Megadható külön a délelőttös/délutános műszakokhoz egy-egy időpont, amelyhez „legközelebbi” rövid szünetet hosszabbítjuk meg a végidőpont kitolásával. A legközelebbi rövid szünet nem lehet a műszak sem első sem utolsó szünete. A délelőttös-délutános műszak csoportosítás választó időpontja, valamint az ezekhez tartozó hosszú szünet középérték időpont szabálytípusonként adható meg.

A fejlesztendő JavaScript függvénynek meg kell kapnia a szünetcsoport már beosztott gerendáinak elejét, hosszát és színét, valamint a beosztandó új gerenda elejét és hosszát. A függvény eredményül az új gerenda színét adja meg.