FAQ — Gedrag van het algoritme voor roostergeneratie
Veelgestelde vragen over het gedrag van de automatische roostergeneratie. Voor een beschrijving van het algoritme zelf, zie Roostergeneratie; voor de praktische uitwerking, zie Automatische roostergeneratie.
Op welke soorten roosters werkt de roostergeneratie?
Op weekroosters, cyclische roosters en kalenderroosters. In de kalendermodus worden de lessen op werkelijke datums geplaatst en bevatten de opties van de roostergeneratie ook datumgrenzen.
Hoe werkt het algoritme?
Omniscol start een berekening op de achtergrond. Het algoritme beoordeelt de te plaatsen lessen, de opgegeven beperkingen en de voorkeuren voor de roostergeneratie. Het resultaat hangt vooral af van de kwaliteit van de gegevens: urenvolumes, docenten, lokalen, groepen, beschikbaarheid, incompatibiliteiten en beperkingen tussen vestigingen.
Elke roostergeneratie start een eigen, geparallelliseerde rekenomgeving. De school hoeft geen wachtrij te beheren; de initialisatie duurt vaak een tiental seconden voordat de eigenlijke berekening begint. In de module Roosterbeheer start u met de knop Rooster genereren de berekening, volgt u de status ervan en inspecteert u het resultaat.
De motor is een optimalisatie-AI van het type neurosymbolische Monte-Carlo-metaheuristiek: stochastisch zoeken, symbolische beperkingen en stapsgewijze optimalisatie van de scores. Dat is geen belofte van succes bij een onmogelijke set beperkingen; in dat geval geeft Omniscol een diagnose terug.
Hoe lang duurt een roostergeneratie?
De duur hangt af van de omvang van het rooster, het aantal lessen, het aantal beperkingen en de gekozen opties. Ter indicatie: een middelbare school met ongeveer 550 leerlingen, 45 docenten en 16 klassen, met ruime beschikbaarheid, kan in minder dan een minuut een volledig rooster krijgen, met heel weinig of geen tussenuren, mits de gegevens consistent zijn. Een dichter bezette situatie, met veel beperkingen of met rekenintensieve optimalisaties, kan aanzienlijk langer duren.
Houdt de roostergeneratie zich aan alle beperkingen?
De harde beperkingen worden strikt nageleefd:
- een docent op maar één plaats tegelijk;
- een klas zonder dubbele plaatsing, behalve groepen in een klasverdeling;
- beschikbaarheid en tijdsloten die als niet beschikbaar zijn gemarkeerd;
- een gewoon lokaal dat door maar één les tegelijk wordt bezet;
- een groot lokaal dat alleen binnen zijn grenzen voor capaciteit en aantal klassen wordt gebruikt;
- passende gespecialiseerde lokalen, capaciteiten, materiële resources en verplaatsingen tussen vestigingen;
- vergrendelde lessen die op hun plaats blijven.
De zachte beperkingen (ongewenste beschikbaarheid, voorkeuren, pedagogisch gewicht, balans van de dagen, aantal aanwezigheidsdagen, tussenuren in de roosters) worden zo goed mogelijk geoptimaliseerd. Ze leveren strafpunten op: het algoritme zoekt de oplossing met de minste strafpunten, maar kan er enkele laten staan als dat het beste compromis is dat verenigbaar is met de harde beperkingen.
Wat te doen als de roostergeneratie mislukt?
Wordt er geen volledige oplossing gevonden, dan geeft Omniscol het beste berekende rooster terug en laat het de niet-geplaatste lessen in de balk met post-its staan. Het gedeeltelijke rooster blijft raadpleegbaar om te zien wat er geplaatst is, en om vervolgens de beperkingen te corrigeren of bepaalde lessen handmatig te verplaatsen. De meest voorkomende oorzaken staan beschreven op de pagina Een mislukte roostergeneratie diagnosticeren.
Kunt u de positie van een les handmatig afdwingen?
Ja, via de vergrendeling van een les na handmatige plaatsing. Bij een nieuwe roostergeneratie verplaatst het algoritme een vergrendelde les niet, maar past het de andere eromheen aan. Handig om onwrikbare lessen te verankeren (externe sprekers op een vaste datum, examens met een vaste datum).
Waarom stelt de roostergeneratie niet meerdere oplossingen voor?
Het algoritme optimaliseert volgens de opgegeven beperkingen en voorkeuren en levert de beste gevonden oplossing op. Wilt u meerdere oplossingen kunnen vergelijken, dupliceer het rooster dan vóór elke roostergeneratie en pas de beperkingen of de gewichten tussen twee berekeningen licht aan.
Houdt de roostergeneratie rekening met de gemelde afwezigheden?
Het algoritme werkt op het structurele rooster, los van de afwezigheden. Afwezigheden worden achteraf afgehandeld in de module Afwezigheidsbeheer (zie Overzicht van de module Afwezigheidsbeheer), met gevolgen voor de weergave van het gepubliceerde rooster en voor de statistieken van het Dashboard (niet voor de onderliggende structuur).
Bewust conflict en blokkerend conflict
Niet alle conflicten zijn gelijkwaardig:
- Niet-blokkerende conflicten — mogen zo blijven staan als dat een bewuste keuze is (bijvoorbeeld een lokaal waarvan het getoonde aantal deelnemers de capaciteit overschrijdt omdat u weet dat niet alle ingeschrevenen komen). De waarschuwing blijft zichtbaar, maar blokkeert niets.
- Blokkerende conflicten — verhinderen dat de automatische roostergeneratie slaagt (geen geschikt lokaal, een inconsistente groepsuitlijning enzovoort). De knop Rooster genereren blijft uitgeschakeld zolang deze conflicten bestaan.
Zie Conflict.