Een mislukte roostergeneratie diagnosticeren
De roostergeneratie “mislukt” wanneer het algoritme er niet in slaagt alles onder te brengen: het levert het beste gedeeltelijke rooster op dat het gevonden heeft, en de lessen die het heeft moeten opofferen blijven in de balk met te plaatsen post-its staan (een rode banner vat de blokkade samen). Het probleem is bijna altijd een overmaat aan beperkingen: te veel lessen voor de openstaande tijdsloten, of beperkingen die te strak zijn om in elkaar te passen. De remedie bestaat erin te versoepelen wat versoepeld kan worden — daarover gaat deze pagina. Wilt u begrijpen hoe het algoritme prioriteiten stelt en wat het opoffert, zie dan Automatische roostergeneratie; voor de catalogus van conflicten op een al opgesteld rooster, zie Conflicten en diagnose.
De diagnose is een aanwijzing, geen oordeel
Wanneer een les niet geplaatst kan worden, zet Omniscol de entiteit die tijdens de pogingen de meeste problemen heeft veroorzaakt op de voorgrond — “deze docent heeft niet genoeg tijdsloten”, “deze klas past niet in haar tijdraster”. Dat is een heuristiek: de gemelde entiteit is degene die het vaakst in de blokkades terugkeert, niet noodzakelijk de enige oorzaak. De beperkingen zijn onderling verweven — elders versoepelen kan alles vlottrekken. Vat de melding dus op als een zoekrichting: de echte remedie is vaak om de algemene overmaat aan beperkingen te verlichten (wat meer tijdsloten, minder strikte beschikbaarheid) in plaats van u vast te bijten in de aangewezen entiteit.
Meest voorkomende oorzaken
1. Te beperkende beschikbaarheid
Een docent heeft zoveel tijdvakken als onmogelijk gemarkeerd dat er niet genoeg tijdsloten overblijven om zijn lessen te plaatsen.
Diagnose: bekijk het beschikbaarheidsscherm van de betrokken docent. Tel de vrije tijdsloten en vergelijk die met zijn urenvolume.
Oplossingen:
- Bepaalde tijdvakken versoepelen (van zwart naar rood — ongewenst maar niet onmogelijk),
- De lessen herverdelen (een deel aan een andere docent toewijzen),
- Met de docent overleggen als de beschikbaarheid bespreekbaar is.
2. Geen passend lokaal
Een vak vereist een specialisatie waarvoor geen enkel lokaal is aangemaakt, of alle overeenkomstige lokalen zijn bezet op de enige mogelijke tijdsloten.
Oplossingen:
- De ontbrekende specialisatie op een geschikt lokaal aanmaken,
- De specialisatiebeperking afzwakken,
- Een lokaal toevoegen.
3. Onvoldoende capaciteit
Het aantal leerlingen van een groep / een klas overschrijdt de capaciteit van alle in aanmerking komende lokalen.
Oplossingen:
- Een groter lokaal toewijzen,
- Meerdere lokalen aan dezelfde les toewijzen (de totale capaciteit is de som),
- De klas / de groep opsplitsen.
4. Structureel onmogelijke groepsuitlijning
De urenvolumes van de uitgelijnde groepen verschillen, of de bovenliggende klassen hebben onverenigbare tijdrasters, of een uitgelijnde docent kan maar op één plaats tegelijk zijn.
Oplossingen:
- De urenvolumes tussen de uitgelijnde groepen gelijktrekken,
- De uitlijning opheffen en één les per klas aanmaken,
- Controleren of de vestigingen van de uitgelijnde klassen op het beoogde tijdslot een gemeenschappelijk tijdraster delen.
5. Te veel lessen voor het tijdraster
Wanneer een klas of een docent duidelijk meer uren heeft dan er tijdsloten openstaan, wordt dat vooraf door een waarschuwing gemeld (tabblad Roostergeneratie, tellers uren tegenover tijdsloten). Het lastige geval is verraderlijker: afzonderlijk bekeken is er geen zichtbare overschrijding, maar de opeenstapeling van de beperkingen tussen docenten en klassen — en hun onderlinge kruisingen — blijkt uiteindelijk niet meer te passen.
Oplossingen:
- De ingevoerde urenvolumes verlagen,
- Het tijdraster uitbreiden (bijvoorbeeld de woensdagmiddag openstellen),
- Enkele onbeschikbaarheden versoepelen, en daarbij mikken op de tijdvakken die veel entiteiten tegelijk vermijden: de opeenstapeling verzadigt het tijdraster.
6. Te veel incompatibiliteiten
Beperkingen van het type “geen X na Y” opstapelen kan een systeem zonder oplossing opleveren.
Oplossing: enkele incompatibiliteiten vervangen door soepelere pedagogische gewichten.
7. Te weinig lokalen (knelpunt)
Komt heel vaak voor: ook al voldoen alle lokalen afzonderlijk, hun aantal volstaat niet om de vraag op hetzelfde moment op te vangen. De lessen stapelen zich op dezelfde tijdsloten op en het tekort aan lokalen wordt het knelpunt waardoor het geheel niet meer past.
Oplossingen:
- Lokalen toevoegen (of ze tussen klassen delen),
- De vraag spreiden door het tijdraster te verruimen,
- De beperkingen verminderen die de lessen op weinig tijdsloten concentreren.
8. Meerdere vestigingen: de verplaatsingen knagen aan de uren
Met meerdere vestigingen verkleinen de reistijden tussen de locaties het aantal tijdsloten dat een docent (of een klas) werkelijk kan gebruiken: van vestiging wisselen kost tijd, en die tijd is niet meer beschikbaar om een les te plaatsen. De werkelijke beschikbaarheid wordt krapper en de puzzel wordt ingewikkelder.
Oplossingen:
- De lessen van een docent binnen één dag op dezelfde vestiging bundelen,
- De opgegeven reistijden tussen vestigingen controleren,
- Het heen en weer reizen tussen vestigingen op dezelfde dag beperken.
Checklist voordat u de roostergeneratie opnieuw start
- Hebben alle klassen een toegewezen vestiging?
- Hebben alle klassen hun vakken en hun docenten?
- Hebben alle groepen die in lessen worden gebruikt een theoretisch aantal leerlingen of een hanteerbare capaciteit?
- Is de beschikbaarheid van alle docenten gevalideerd?
- Geen kritieke (rode) melding op het tabblad Roostergeneratie?
Ingebouwde diagnosehulpmiddelen
- Tabblad Roostergeneratie — vooraf: statistieken (lessen / uren per docent, per klas, per vestiging) en waarschuwingen (uren tegenover tijdsloten, kritieke meldingen die u vóór de start moet oplossen).
- Niet-geplaatste lessen (post-its, rechts) — na een mislukking: het resultaat van een onvolledige roostergeneratie. De plaatsingsknop (punaise) op elke les laat via de gekleurde tijdsloten zien waarom geen enkele plaats voldoet.
- Opsporing van vergeten groepen: groepen die zijn gedefinieerd maar waaraan geen enkele les is toegewezen.
Stappenplan
Een mislukte roostergeneratie diagnosticeren
-
Wanneer de roostergeneratie mislukt, toont Omniscol een rode banner, houdt het gedeeltelijke rooster zichtbaar en zet het de lessen die het niet kon onderbrengen in de balk met post-its, rechts.
-
Lees de banner: die geeft een richting aan (een heuristiek, zie hierboven), geen oordeel.
-
Vertrek van de niet-geplaatste lessen, niet van “conflicten”. De roostergeneratie maakt nooit een conflict: ze legt gewoon opzij wat er niet in past. Neem een les uit de post-its en klik op haar plaatsingsknop (punaise, Plaatsen in het rooster).
-
Lees de gekleurde tijdsloten. Omniscol toont alle kandidaat-tijdsloten; voor een les die niet te plaatsen is, zijn ze allemaal geblokkeerd. Zoek waarom, in de volgorde van de drie gebruikelijke blokkades: de docent die bezet of niet beschikbaar is, de klas (of de groep) die bezet is, of geen enkel lokaal dat vrij en passend is. De reden verschijnt wanneer u de muisaanwijzer over het tijdslot beweegt.
-
Versoepel de beperking die blokkeert — afhankelijk van het geval: beschikbaarheid versoepelen, een lokaal toevoegen of vrijmaken, een groepsuitlijning gelijktrekken, het tijdraster verruimen (zie de oorzaken hierboven) — en start daarna opnieuw.
-
Loop vóór het opnieuw starten de checklist hierboven door (vestigingen toegewezen, vakken en docenten aanwezig, aantallen leerlingen ingevuld, beschikbaarheid gevalideerd, geen kritieke melding op het tabblad Roostergeneratie).