Hoe werkt de rekenmodule waarmee PlanUp roosters berekent, en waarom rekent PlanUp zo?
De rekenmodule ziet een rooster als een grote verzameling ja/nee-keuzes met voorwaarden. Zij zoekt het rooster dat aan de harde regels voldoet en de zachte regels het best volgt.
Door het PlanUp-team ·
De rekenmodule van PlanUp ziet een rooster als een grote verzameling ja/nee-keuzes. Staat deze persoon op deze dag in deze activiteit, of niet? De regels van uw team gaan mee als voorwaarden. De rekenmodule zoekt het rooster dat aan alle harde regels voldoet en de zachte regels zo goed mogelijk volgt.
Met rekenmodule bedoelen we het onderdeel van PlanUp dat het rooster doorrekent binnen uw regels. Dit artikel legt uit hoe dat rekenen werkt. Wat het voor u als planner verandert ten opzichte van Excel, staat in het artikel over het verschil tussen een rooster in Excel en een berekend rooster (zie de verwante artikelen).
Uit welke onderdelen bestaat een roosterprobleem?
Een roosterprobleem heeft drie onderdelen.
- Keuzes. Voor elke medewerker, elke datum en elke activiteit is er een keuze: wel of niet ingepland.
- Harde voorwaarden. Dat zijn regels die niet gebroken mogen worden. Welke dat zijn, hangt af van de regels die uw team aan heeft.
- Een doel. Dat is wat de rekenmodule zo klein mogelijk wil maken: open plekken en strafpunten.
Voorbeelden van harde voorwaarden zijn:
- geen inzet tijdens goedgekeurd verlof;
- rust en compensatie na een dienst;
- een maximum aantal opeenvolgende diensten;
- geen twee activiteiten die elkaar in tijd overlappen;
- alleen inzet als iemand de vereiste bevoegdheid heeft.
Hoe weegt de rekenmodule de keuzes?
Open plekken wegen het zwaarst. Het gewicht verschilt per activiteit: een veiligheidsdienst weegt zwaarder dan een gewone activiteit. Daarnaast kosten zachte regels strafpunten als ze niet lukken. Denk aan een ongelijke weekendverdeling, te weinig tijd tussen twee weekenden of te veel diensten kort na elkaar.
De rekenmodule zoekt het rooster met de laagste totale score. Alle mensen en weken zitten in één model. Zo ziet de rekenmodule gevolgen die een planner in Excel pas later merkt.
Waarom niet gewoon een slim script?
Een eenvoudig script kiest week voor week de eerste vrije persoon. Dat loopt vroeg of laat vast. In de laatste weken zijn dan alleen nog mensen over die al veel diensten hebben. Of er blijven plekken open die met een andere keuze in week 1 wel te vullen waren. De rekenmodule kijkt naar het geheel en weegt alle keuzes tegen elkaar af.
Wat gebeurt er als er geen oplossing is?
Soms past het niet, bijvoorbeeld door veel verlof of te weinig bevoegde mensen. Dan zet PlanUp een vaste reeks minder belangrijke regels een voor een uit, tot er een rooster mogelijk is. Het begint bij optionele regels over locaties. Welke regels zijn losgelaten, staat bij het rooster.
Twee soorten regels laat PlanUp op deze manier nooit los. Dat zijn rust en compensatie na een dienst, en het verbod op overlappende activiteiten.
Komt er helemaal geen toewijzing uit terwijl er wel plekken te vullen zijn? Dan markeert PlanUp de berekening als mislukt. U krijgt dus geen leeg concept.
Wat is het noodventiel bij een harde regel?
Bij een aantal harde regels staat standaard een noodventiel aan. Kan zo'n regel echt niet worden gehaald, dan mag de rekenmodule hem bij hoge uitzondering breken. Dat ziet u als harde regelschending in de roostersamenvatting. U kunt dit per regel uitzetten. Wat de samenvatting verder toont, leest u in waarom uw rooster zo is gemaakt.
Waarom kost het rekenen tijd?
De rekenmodule blijft zoeken naar een beter rooster. Zij stopt als zij kan bewijzen dat het niet beter kan, of als de rekentijd op is. Bij grote roosters is dat bewijs zelden haalbaar. Daarom geldt een maximale rekentijd.
U stelt die per team in bij de teaminstellingen, tussen 30 en 3600 seconden. De standaard is 600 seconden, dus tien minuten. Het veld heet daar Max. rekentijd AI, maar het gaat om de rekentijd van de rekenmodule.
Is de tijd op zonder bewezen beste rooster, dan rekent PlanUp kort na. Zijn er bij de veiligheidsdiensten meer plekken open gebleven dan nodig? Dan markeert PlanUp het rooster als onvolledig. Meer over de duur leest u in hoe lang het genereren duurt.
Hoe helpt PlanUp hierbij?
PlanUp zet de regels van uw team om in een rekenmodel. De rekenmodule zoekt daarin het beste rooster binnen de rekentijd. Harde regels zijn voorwaarden, zachte regels zijn strafpunten, en open plekken wegen het zwaarst. Moet er een regel wijken, dan ziet u welke.
Voor de technisch geïnteresseerde
De rekenmodule is de CP-SAT-solver uit Google OR-Tools, een open-source bibliotheek voor optimalisatie. Vindt CP-SAT geen oplossing (infeasible), dan versoepelt PlanUp achtereenvolgens X-31 tot en met X-34 (locatieregels), R-10, R-04, R-06 en R-03. R-02 (rust en compensatie na een dienst) en R-08 (conflicten tussen activiteiten) worden nooit versoepeld. Het noodventiel heet in de regelinstellingen Zachte fallback als hard onhaalbaar.
Wilt u zien hoe PlanUp dit voor uw vakgroep oplost?
In dertig minuten bespreken we uw eigen teams, activiteiten en regels.
Plan een kennismakingsgesprek