Verplaatsingen van leerkrachten en klassen beperken
Verplaatsingen regelen van klassen en leerkrachten kwam al aan bod in het hoofdstuk over waardespreidingen (Waardespreidingen – Verplaatsingen vermijden tussen locaties) en volgordespreidingen. Lokalen zijn (optioneel) verbonden met een locatie (gebouw) en omdat lesopdrachten doorgaan in lokalen kennen we ook de locaties en kunnen we bepaalde beperkingen opleggen aan die opdrachten. Er zijn 2 essentiële beperkingen:
- Momenten bepalen waarom een klas of leerkracht zich kan verplaatsen naar een andere locatie. Meestal wordt dat tijdens een speeltijd of middagpauze toegelaten, of wanneer er een lesvrij uur is. Met een waardespreiding die gebaseerd is op locaties kunnen we de momenten verbieden waarop een klas of leerkracht zich verplaatst. Men kan ervoor kiezen om verplaatsingen enkel tijdens de middagpauze toe te laten of ook op meerdere (recreatie)momenten in de dag. Dit soort beperking werd al besproken bij toepassingen van waardespreidingen. In het kort voor locaties A en B: we koppelen gewicht 1 aan locatie A en 2 aan B. Dan definiëren we de koppels van roosterpunten waarop we niet mogen verplaatsen. Op die koppels van roosterpunten leggen we een cumulatieve niet-3-waardespreiding voor alle opdrachten van een leerkracht. Op die manier kunnen nooit 2 opdrachten met een verschillende locatie op zo een koppel vallen voor die leerkracht. Heeft hij op één of beide roosterpunten geen les, dan kan hij zich verplaatsen. Op de roosterpunten waar dergelijke spreidingen niet gedefinieerd zijn kunnen verplaatsingen dan ongeacht of men er geplaatst is of niet.
- Aantal verplaatsingen die een klas of leerkracht mag doen binnen een bepaalde periode (meestal dag). Het is meestal niet aangewezen om verschillende keren per dag van locatie te veranderen. Scholen laten meestal 1 verplaatsing per dag toe (dus les op 2 verschillende plaatsen). Indien men toelaat dat er op verschillende momenten van de dag verplaatst kan worden, dan bestaat de mogelijkheid dat een leerkracht ook verschillende verplaatsingen per dag moet doen na het plannen. Laat men maar 1 moment toe (bv enkel op de middag) dan kan een leerkracht zich maar 1 keer verplaatsen en is er verder geen probleem. Om te vermijden dat meerdere verplaatsingen per dag gebeuren tussen bijvoorbeeld 2 locaties kunnen we “geen overlap” volgordespreidingen gebruiken. In het kort voor locaties A en B: via een “geen overlap” volgordespreiding stellen we dat binnen 1 dag alle opdrachten die doorgaan in A ofwel voor ofwel na alle opdrachten die doorgaan in B moeten vallen voor een leerkracht. Op die manier kan een leerkracht binnen 1 dag de patronen AB en BA volgen maar niet ABA of BAB.
Deze techniek is redelijk eenvoudig en bruikbaar voor gevallen waarbij er maar 2 locaties zijn. Van zodra er 3 of meer locaties gebruikt worden, is het niet meer zo evident om al die spreidingsregels goed neer te schrijven zonder fouten te maken en er tegelijk een waterdicht systeem van te maken. Ook het onderhoud van die spreidingsregels en uurlijsten, wanneer er aan opdrachten gesleuteld wordt, is niet eenvoudig.
Mondriaan voorziet een mechanisme dat (een heel groot deel van) de administratie van dergelijke spreidingsregels (en aanverwanten) voor het regelen van verplaatsingen op zich neemt. De verantwoordelijkheden zijn dan als volgt verdeeld:
- De gebruiker schrijft zelf de regels uit om de momenten te beperken waarop verplaatst mag worden. Dit is gekende materie.
- Mondriaan genereert de regels die nodig zijn om het aantal locaties te beperken tot 2 en de gebruiker vult een aantal ontbrekende elementen aan.
We laten maximaal 2 locaties per dag toe.
Voorwaarde opdat dit mechanisme zou werken:
- Lokalen moeten met een locatie gekoppeld zijn. Indien niet wordt er geen rekening mee gehouden.
- Indien een opdracht uit keuzelokalen mag kiezen, dan moeten alle lokalen in die keuzegroep tot dezelfde locatie behoren.
Inhoud
- Verplaatsingen beperken via labels (CC kolom)
- Automatisch aanmaken van elementen nodig om verplaatsingen te beperken
Verplaatsingen beperken via labels (CC kolom)
Stel dat we volgende opdrachten hebben met een aantal leerkrachten, klassen en lokalen. De lokalen worden uit keuzegroepen gekozen. We hebben 3 locaties: JJ, RIV en BRIA. We hebben ook een aantal lokaalgroepen en die hebben we een naam gegeven die verwijst naar de locatie waar die lokalen zich bevinden:
De lokaalgroepen werden hier door de gebruiker gedefinieerd:
En de lokalen zelf staan hier met hun locatie:
Als we dit schaalvoorbeeld zouden plannen, kunnen we volgende situatie bekomen voor bijvoorbeeld LKR_01: We zien meerdere verplaatsingen per dag en ook meer dan 2 verschillende locaties per dag. De cellen werden ingekleurd op basis van de locaties van de betrokken lokalen.
Automatisch aanmaken van elementen nodig om verplaatsingen te beperken
Via de knop “Tools | Verplaatsingen | Verplaatsingsspreidingen” gaat Mondriaan een aantal zaken toevoegen aan het bestand.
Drukt men op die knop, dan zal men vervolgens in een aantal tabbladen zien dat er zaken zijn toegevoegd aan het bestand:
- Varia: voor elke leerkracht zal per locatie een varia aangemaakt worden (<lkr>_<loc>). Handig om minimumspreidingen aan te maken per leerkracht en locatie.
- Groepen | Klassen: groepen van klassen die onderhevig zijn aan verplaatsingen.
- Groepen | Leerkrachten: groepen van leerkrachten die onderhevig zijn aan verplaatsingen.
- Groepen | Varia: per locatie wordt een groep van varia (<loc>_LKR) aangemaakt die alle leerkrachten vertegenwoordigt die in die locatie kunnen zitten.
- Opdrachtentabblad: labels onder de vorm van custom kolommen die aanduiden op welke locatie de opdracht doorgaat.
- Opdrachtentabblad: een variatype wordt toegevoegd om aan te geven dat een leerkracht zich op een bepaalde locatie bevindt.
- Volgordespreidingen: voor zowel klassen als leerkrachten worden deze voorzien om het aantal locaties per dag te beperken tot 2. Moeten verder aangevuld worden door de gebruiker.
Wat de gebruiker zelf nog kan aanmaken:
- Waardespreidingen: beperken van de momenten waarop de overgang van de ene naar de andere locatie gebeurt voor leerkrachten en/of klassen.
- Minimumspreidingen: eisen dat een leerkracht x aantal uren, geen uren, of meer dan x aantal uren op een locatie moet zijn.
De verplaatsingsgroepen, custom-kolommen en varia kan men nadien nog up-to-date brengen door op de knop “Tools | Verplaatsingen | Verplaatsingsgroepen” de drukken. De knop “Verplaatsingsspreidingen” gebruikt men normaal maar éénmalig omdat het effect telkens opnieuw een toevoeging gaat zijn van de volgordespreidingsregels. Heeft men er dus verschillende keren op gedrukt, dan zullen die ook telkens aangemaakt worden. Men kan ze dan best zelf eerst verwijderen.
Toevoegingen aan opdrachten
Opdrachtentabblad: er worden Custom-kolommen toegevoegd:
- Locaties: de locatie wordt afgeleid van de lokalen in de opdracht. Indien er conflicterende locaties zouden zijn in de lokalen gekoppeld aan de opdracht, dan zal voor die opdracht Locaties leeg gelaten worden. Dat is een aandachtspunt. De opdracht zal dan een ongewenst eindresultaat geven. Merk op dan men in theorie deze kolom ook zelf kan vullen/aanpassen nadat hij gegenereerd is. De controle via spreidingen blijft via de locaties gaan die op de lokalen zelf gedefinieerd zijn.
- Niet_<locatie>: Voor elke locatie wordt deze kolom toegevoegd en aangevinkt indien de opdracht NIET in die locatie doorgaat. Ook deze kolom wordt gegenereerd ingevuld, kan manueel aangepast worden en zal in de spreidingen gebruikt worden. Dit wordt enkel gedaan indien de school meer dan 2 locaties heeft. Voor de verplaatsingsproblematiek met 2 locaties hebben we deze CC-kolommen niet nodig.
- Varia: voor de leerkracht en locatie wordt een varia in de Varia kolom opgenomen. Via deze varia (bv LKR_01_BRIA) kunnen we tellen hoe vaak die op een dag op BRIA geplaatst wordt en kunnen we daar een minimumspreiding voor aanmaken.
Toevoegingen aan elementen en groepen
Klasgroepen: voor klassen die onderhevig zijn aan verplaatsingen.
- KlassenMetVerplaatsing_<locatie>: Klassen die opdrachten op deze locatie kunnen hebben.
- KlassenMetVerplaatsing_<locatie_locatie>: Klassen die opdrachten op deze 2 locaties kunnen hebben.
- KlassenMetVerplaatsing_<locatie_locatie_locatie>: Klassen die opdrachten op deze 3 locaties kunnen hebben. (deze groep wordt in onderstaand voorbeeld niet gebruikt)
- …
Leerkrachtgroepen: voor leerkrachten die onderhevig zijn aan verplaatsingen.
- LeerkrachtenMetVerplaatsing_<locatie>: Leerkrachten die opdrachten op deze locatie kunnen hebben.
- LeerkrachtenMetVerplaatsing_<locatie_locatie>: Leerkrachten die opdrachten op deze 2 locaties kunnen hebben.
- LeerkrachtenMetVerplaatsing_<locatie_locatie_…>: Leerkrachten die opdrachten op deze 3 locaties kunnen hebben. (deze groep wordt in onderstaand voorbeeld niet gebruikt)
- …
Varia en Variagroepen: voor leerkrachten en hun locaties:
In het tabblad “Elementen | Varia” worden volgende varia aangemaakt:
Het zijn deze varia die in het opdrachtentabblad geplaatst worden in de kolom Varia. Nuttig voor eventuele minimumspreidingen.
In het tabblad “Elementen | [Groepen] | [Varia]” worden volgende varia aangemaakt:
Deze groepen kunnen gebruikt worden in minimumspreidingen.
Volgordespreidingen
Extra spreidingen – Volgordespreidingen: zorgen ervoor dat men niet 2 keer naar eenzelfde locatie kan gaan.
Per leerkracht of klas wordt ervoor gezorgd dat, indien ze op een bepaalde locatie X meerdere uren moeten zijn, dat dit ononderbroken zal zijn. Het kan dus niet zijn dat men eerst op locatie A zit, daarna op B en vervolgens terug op A.
Merk op dat de kolom “Uurlijsten” niet gevuld is. Die wordt niet automatisch gevuld en moet door de gebruiker aangevuld worden. In dit geval zouden we bijvoorbeeld ELKE_DAG kunnen aanmaken als uurlijst en die gebruiken. Ook het vlagje “Actief” moet men zelf nog aanvinken. Dit vlagje staat uit omdat de gebruiker de spreidingsregels nog moet aanvullen met de uurlijsten. Pas daarna kan men ze actief maken en zullen ze ook als geldige spreidingen aanzien worden.
De selectie van opdrachten in “Selectie 1” is op basis van de leerkracht en de locatie (BRIA is gekend als locatie in Lokalen). De selectie van opdrachten in “Selectie 2” is op basis van leerkrachten en de CC-vlaggetjes in het opdrachtentabblad. (Indien de school maar 2 locaties heeft wordt dit opgelost zonder CC_Niet_xxx. In dat geval wordt gewoon de andere locatie gebuikt in selectie 2.)
Uurlijsten aangevuld en spreidingen actief gemaakt:
Het is ook aan de gebruiker om te beslissen of hij het systeem wil activeren voor zowel leerkrachten als klassen of enkel voor een van beide. Dit kan door de spreidingsregels te verwijderen of inactief te maken.
De eerste regel wordt opgesplitst volgens LeerkrachtenMetVerplaatsing_BRIA. Als LKR in die groep zit, moet men die volgordespreiding als volgt lezen:
- Neem alle opdrachten van LKR die in BRIA doorgaan (op een dag).
- Neem alle opdrachten van LKR die NIET in BRIA doorgaan (op die zelfde dag).
- Zorg er voor dat alle opdrachten uit die eerste lijst (BRIA) ofwel allemaal VOOR ofwel allemaal NA de opdrachten uit die tweede lijst vallen. Dit zorgt ervoor dat BRIA opdrachten voor LKR in 1 blok voor of na de andere staan.
- Zorg er voor dat alle opdrachten uit die tweede lijst (Niet-BRIA) ofwel allemaal VOOR ofwel allemaal NA de opdrachten uit die eerste lijst vallen. Dit zorgt ervoor dat ook alle Niet-BRIA opdrachten in 1 blok voor of na de BRIA opdrachten staan. Druk je die regels uit voor alle 3 de locaties dan impliceert dat ook meteen dat men nooit in meer dan 2 locaties op 1 dag geplaatst kan worden.
Plannen we met deze regels, dan kan dit een mogelijke oplossing zijn voor klas K1 (en LKR_01 in dit geval). Er is nu voldaan aan de regel dat we maar 2 locaties per dag hebben en dat er maar 1 verplaatsing gemaakt wordt. Wat hiermee nog niet geregeld is, zijn de momenten waarop de verplaatsing mag gebeuren.
Waardespreidingen
Extra spreidingen – Waardespreidingen: de momenten beperken waarop een klas of leerkracht zich mag/kan verplaatsen.
De momenten waarop NIET verplaatst mag worden, kan de gebruiker zelf toevoegen via eenvoudige waardespreidingen. We geven hier enkele voorbeelden van extra waardespreidingen die van toepassing kunnen zijn:
- ID1: klassen en leerkrachten mogen maximaal 1 uur les hebben tijdens de middagpauze van 2 uur. MIDDAG bevat telkens uur 5 en 6 van elke dag.
- ID2..ID4: belet leerkrachten zich te verplaatsen tussen locaties op de uurlijst VPL_ALGEMEEN. Deze uurlijst bevat een OF-lijst van alle roosterpuntkoppels waarop verplaatsing verboden is. We drukken dat steeds uit per paar locaties die we de gewichten 1 en 2 geven en waarop we een NIET-waardespreiding loslaten. Merk op dat we hier ook telkens de lijst van betrokken leerkrachten bij vermelden. De volledige lijst LEERKRACHTEN zou ook een optie zijn, maar dat is minder zuinig.
- ID5..ID10: zorgt ervoor dat leerkrachten zowel een middagpauze als een verplaatsingsuur kunnen hebben, indien ze zich verplaatsen. De uurlijst 456 zijn de uren 4,5,6 van elke dag. Zelfde voor uurlijst 567. Merk op dat we deze 2 uurlijsten ook in een gecombineerde OF-uurlijst hadden kunnen stoppen.
Mogelijk resultaat LKR_01:
- Op maandag eerst verplaatsing, dan uur les en dan middagpauze.
- Op dinsdag keuze om eerst pauze of eerst verplaatsing te doen.
Minimumspreidingen
Extra spreidingen – Minimumspreidingen: als een leerkracht op een locatie komt, dan minimum voor x uur.
We kennen een minimumspreiding voor leerkrachten in het algemeen. Men wenst bijvoorbeeld dat een leerkracht niet voor minder dan 2 uur per dag naar school moet komen. Stel nu dat die leerkracht inderdaad 2 uur les geeft, maar dat het 1 uur op BRIA is en 1 uur op JJ. Dat is ook niet wenselijk. Om dat op te lossen, wil men de minimumspreiding uitdrukken per locatie. Dan kan als we de daarvoor bedoelde varia gebruiken in plaats van de leerkrachten zelf. LKR_01_BRIA gaat telkens in het rooster staan als LKR_01 op locatie BRIA staat. Dus gebruiken we LKR_01_BRIA voor die minimumspreiding, dan klopt het plaatje.
In dit voorbeeld gebruiken we de variagroepen en per locatie kunnen we dan een andere minimumspreiding opleggen.