<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Tips &amp; Tricks &#8211; time-tech</title>
	<atom:link href="https://time-tech.be/wiki/tips-tricks/feed/" rel="self" type="application/rss+xml" />
	<link>https://time-tech.be</link>
	<description>Lessenroostersoftware zoals u die wenst</description>
	<lastBuildDate>Tue, 19 Aug 2025 11:15:05 +0000</lastBuildDate>
	<language>nl-NL</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.1.2</generator>
	<item>
		<title>Verplaatsingen van leerkrachten en klassen beperken</title>
		<link>https://time-tech.be/handleiding/verplaatsingen-regelen/</link>
		
		<dc:creator><![CDATA[Peter]]></dc:creator>
		<pubDate>Thu, 27 Apr 2023 13:51:16 +0000</pubDate>
				<guid isPermaLink="false">https://time-tech.be/?post_type=manual_kb&#038;p=10756</guid>

					<description><![CDATA[]]></description>
										<content:encoded><![CDATA[<div class="wpb-content-wrapper"><div  class=" pg-custom-vc    vc_row wpb_row section vc_row-fluid " style="text-align:left;  margin-left:0px;margin-right:0px;"     ><div class="container" style="padding: 0px 0px; display: block;    "><div class="wpb_column vc_column_container vc_col-sm-12"><div class="vc_column-inner"><div class="wpb_wrapper">
	<div class="wpb_text_column wpb_content_element" >
		<div class="wpb_wrapper">
			<h1>Verplaatsingen van leerkrachten en klassen beperken</h1>
<p>Verplaatsingen regelen van klassen en leerkrachten kwam al aan bod in het hoofdstuk over waardespreidingen (<a href="https://time-tech.be/handleiding/opdrachten-beperken-door-waardespreidingen/#Verplaastingen_vermijden_tussen_locaties_als_voorbeeld_van_Partities_met_Waardespreidingen">Waardespreidingen &#8211; Verplaatsingen vermijden tussen locaties</a>) 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:</p>
<ul>
<li><strong>Momenten bepalen waarom een klas of leerkracht zich kan verplaatsen naar een andere locatie</strong>. 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. <span style="text-decoration: underline;">In het kort voor locaties A en B</span>: 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.</li>
<li><strong>Aantal verplaatsingen die een klas of leerkracht mag doen binnen een bepaalde periode (meestal dag)</strong>. 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 &#8220;geen overlap&#8221; volgordespreidingen gebruiken. <span style="text-decoration: underline;">In het kort voor locaties A en B</span>: via een &#8220;geen overlap&#8221; 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.</li>
</ul>
<p>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.</p>
<p>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:</p>
<ul>
<li>De gebruiker schrijft zelf de regels uit om de momenten te beperken waarop verplaatst mag worden. Dit is gekende materie.</li>
<li>Mondriaan genereert de regels die nodig zijn om het aantal locaties te beperken tot 2 en de gebruiker vult een aantal ontbrekende elementen aan.</li>
</ul>
<p>We laten maximaal 2 locaties per dag toe.</p>
<p><strong>Voorwaarde opdat dit mechanisme zou werken:</strong></p>
<ul>
<li>Lokalen moeten met een locatie gekoppeld zijn. Indien niet wordt er geen rekening mee gehouden.</li>
<li>Indien een opdracht uit keuzelokalen mag kiezen, dan moeten alle lokalen in die keuzegroep tot dezelfde locatie behoren.</li>
</ul>
<hr />
<h2>Inhoud</h2>
<ul>
<li><a href="#Verplaatsingen_beperken_via_labels_CC_kolom">Verplaatsingen beperken via labels (CC kolom)</a></li>
<li><a href="#Automatisch_aanmaken_van_elementen_nodig_om_verplaatsingen_te_beperken">Automatisch aanmaken van elementen nodig om verplaatsingen te beperken</a>
<ul>
<li><a href="#Toevoegingen_aan_opdrachten">Toevoegingen aan opdrachten</a></li>
<li><a href="#Toevoegingen_aan_elementen_en_groepen">Toevoegingen aan elementen en groepen</a></li>
<li><a href="#Volgordespreidingen">Volgordespreidingen</a></li>
<li><a href="#Waardespreidingen">Waardespreidingen</a></li>
<li><a href="#Minimumspreidingen">Minimumspreidingen</a></li>
</ul>
</li>
</ul>
<hr />
<h2><a id="Verplaatsingen_beperken_via_labels_CC_kolom"></a>Verplaatsingen beperken via labels (CC kolom)</h2>
<p>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:</p>
<p><img fetchpriority="high" decoding="async" class="alignnone wp-image-10769 size-full" src="https://time-tech.be/wp-content/uploads/2023/04/2023-04-27-18_14_40-time-tech-mondriaan-versie-2023.1.0.24_-VPL-met-CC-Peter.zttxml.png" alt="" width="1020" height="454" srcset="https://time-tech.be/wp-content/uploads/2023/04/2023-04-27-18_14_40-time-tech-mondriaan-versie-2023.1.0.24_-VPL-met-CC-Peter.zttxml.png 1020w, https://time-tech.be/wp-content/uploads/2023/04/2023-04-27-18_14_40-time-tech-mondriaan-versie-2023.1.0.24_-VPL-met-CC-Peter.zttxml-300x134.png 300w, https://time-tech.be/wp-content/uploads/2023/04/2023-04-27-18_14_40-time-tech-mondriaan-versie-2023.1.0.24_-VPL-met-CC-Peter.zttxml-768x342.png 768w" sizes="(max-width: 1020px) 100vw, 1020px" /></p>
<p>De lokaalgroepen werden hier door de gebruiker gedefinieerd:</p>
<p><img decoding="async" class="alignnone wp-image-10770 size-full" src="https://time-tech.be/wp-content/uploads/2023/04/2023-04-27-18_16_35-time-tech-mondriaan-versie-2023.1.0.24_-VPL-met-CC-Peter.zttxml.png" alt="" width="1020" height="202" srcset="https://time-tech.be/wp-content/uploads/2023/04/2023-04-27-18_16_35-time-tech-mondriaan-versie-2023.1.0.24_-VPL-met-CC-Peter.zttxml.png 1020w, https://time-tech.be/wp-content/uploads/2023/04/2023-04-27-18_16_35-time-tech-mondriaan-versie-2023.1.0.24_-VPL-met-CC-Peter.zttxml-300x59.png 300w, https://time-tech.be/wp-content/uploads/2023/04/2023-04-27-18_16_35-time-tech-mondriaan-versie-2023.1.0.24_-VPL-met-CC-Peter.zttxml-768x152.png 768w" sizes="(max-width: 1020px) 100vw, 1020px" /></p>
<p>En de lokalen zelf staan hier met hun locatie:</p>
<p><img decoding="async" class="alignnone wp-image-10768 size-full" src="https://time-tech.be/wp-content/uploads/2023/04/2023-04-27-18_15_26-time-tech-mondriaan-versie-2023.1.0.24_-VPL-met-CC-Peter.zttxml.png" alt="" width="1015" height="433" srcset="https://time-tech.be/wp-content/uploads/2023/04/2023-04-27-18_15_26-time-tech-mondriaan-versie-2023.1.0.24_-VPL-met-CC-Peter.zttxml.png 1015w, https://time-tech.be/wp-content/uploads/2023/04/2023-04-27-18_15_26-time-tech-mondriaan-versie-2023.1.0.24_-VPL-met-CC-Peter.zttxml-300x128.png 300w, https://time-tech.be/wp-content/uploads/2023/04/2023-04-27-18_15_26-time-tech-mondriaan-versie-2023.1.0.24_-VPL-met-CC-Peter.zttxml-768x328.png 768w" sizes="(max-width: 1015px) 100vw, 1015px" /></p>
<p>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.</p>
<p><img loading="lazy" decoding="async" class="alignnone wp-image-10772 size-full" src="https://time-tech.be/wp-content/uploads/2023/04/2023-04-27-18_23_18-time-tech-mondriaan-versie-2023.1.0.24_-VPL-met-CC-Peter.zttxml.png" alt="" width="556" height="467" srcset="https://time-tech.be/wp-content/uploads/2023/04/2023-04-27-18_23_18-time-tech-mondriaan-versie-2023.1.0.24_-VPL-met-CC-Peter.zttxml.png 556w, https://time-tech.be/wp-content/uploads/2023/04/2023-04-27-18_23_18-time-tech-mondriaan-versie-2023.1.0.24_-VPL-met-CC-Peter.zttxml-300x252.png 300w" sizes="auto, (max-width: 556px) 100vw, 556px" /></p>
<hr />
<h2><a id="Automatisch_aanmaken_van_elementen_nodig_om_verplaatsingen_te_beperken"></a>Automatisch aanmaken van elementen nodig om verplaatsingen te beperken</h2>
<p>Via de knop &#8220;Tools | Verplaatsingen | <strong>Verplaatsingsspreidingen</strong>&#8221; gaat Mondriaan een aantal zaken toevoegen aan het bestand.</p>
<p><strong><img loading="lazy" decoding="async" class="alignnone wp-image-10818 size-full" src="https://time-tech.be/wp-content/uploads/2023/04/2023-05-06-16_10_09-time-tech-mondriaan-versie-2023.1.0.26_-VPL-Leeg.zttxml-1.png" alt="" width="1162" height="141" srcset="https://time-tech.be/wp-content/uploads/2023/04/2023-05-06-16_10_09-time-tech-mondriaan-versie-2023.1.0.26_-VPL-Leeg.zttxml-1.png 1162w, https://time-tech.be/wp-content/uploads/2023/04/2023-05-06-16_10_09-time-tech-mondriaan-versie-2023.1.0.26_-VPL-Leeg.zttxml-1-300x36.png 300w, https://time-tech.be/wp-content/uploads/2023/04/2023-05-06-16_10_09-time-tech-mondriaan-versie-2023.1.0.26_-VPL-Leeg.zttxml-1-1024x124.png 1024w, https://time-tech.be/wp-content/uploads/2023/04/2023-05-06-16_10_09-time-tech-mondriaan-versie-2023.1.0.26_-VPL-Leeg.zttxml-1-768x93.png 768w" sizes="auto, (max-width: 1162px) 100vw, 1162px" /></strong></p>
<p>Drukt men op die knop, dan zal men vervolgens in een aantal tabbladen zien dat er zaken zijn toegevoegd aan het bestand:</p>
<ul>
<li><strong>Varia:</strong> voor elke leerkracht zal per locatie een varia aangemaakt worden (&lt;lkr&gt;_&lt;loc&gt;). Handig om minimumspreidingen aan te maken per leerkracht en locatie.</li>
<li><strong>Groepen | Klassen</strong>: groepen van klassen die onderhevig zijn aan verplaatsingen.</li>
<li><strong>Groepen | Leerkrachten</strong>: groepen van leerkrachten die onderhevig zijn aan verplaatsingen.</li>
<li><strong>Groepen | Varia</strong>: per locatie wordt een groep van varia (&lt;loc&gt;_LKR) aangemaakt die alle leerkrachten vertegenwoordigt die in die locatie kunnen zitten.</li>
<li><strong>Opdrachtentabblad</strong>: labels onder de vorm van custom kolommen die aanduiden op welke locatie de opdracht doorgaat.</li>
<li><strong>Opdrachtentabblad</strong>: een variatype wordt toegevoegd om aan te geven dat een leerkracht zich op een bepaalde locatie bevindt.</li>
<li><strong>Volgordespreidingen</strong>: 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.</li>
</ul>
<p>Wat de gebruiker zelf nog kan aanmaken:</p>
<ul>
<li><strong>Waardespreidingen:</strong> beperken van de momenten waarop de overgang van de ene naar de andere locatie gebeurt voor leerkrachten en/of klassen.</li>
<li><strong>Minimumspreidingen:</strong> eisen dat een leerkracht x aantal uren, geen uren, of meer dan x aantal uren op een locatie moet zijn.</li>
</ul>
<p>De verplaatsingsgroepen, custom-kolommen en varia kan men nadien nog up-to-date brengen door op de knop &#8220;Tools | Verplaatsingen | <strong>Verplaatsingsgroepen</strong>&#8221; de drukken. De knop &#8220;<strong>Verplaatsingsspreidingen</strong>&#8221; 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.</p>
<hr />
<h3><a id="Toevoegingen_aan_opdrachten"></a>Toevoegingen aan opdrachten</h3>
<p><strong>Opdrachtentabblad</strong>: er worden Custom-kolommen toegevoegd:</p>
<ul>
<li><strong>Locaties:</strong> 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.</li>
<li><strong>Niet_&lt;locatie&gt;</strong>: 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.</li>
<li><strong>Varia:</strong> 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.</li>
</ul>
<p><img loading="lazy" decoding="async" class="alignnone wp-image-10820 size-full" src="https://time-tech.be/wp-content/uploads/2023/04/2023-05-06-16_18_32-time-tech-mondriaan-versie-2023.1.0.26_-VPL-met-CC-met-Varia-Peter.zttxml.png" alt="" width="1018" height="391" srcset="https://time-tech.be/wp-content/uploads/2023/04/2023-05-06-16_18_32-time-tech-mondriaan-versie-2023.1.0.26_-VPL-met-CC-met-Varia-Peter.zttxml.png 1018w, https://time-tech.be/wp-content/uploads/2023/04/2023-05-06-16_18_32-time-tech-mondriaan-versie-2023.1.0.26_-VPL-met-CC-met-Varia-Peter.zttxml-300x115.png 300w, https://time-tech.be/wp-content/uploads/2023/04/2023-05-06-16_18_32-time-tech-mondriaan-versie-2023.1.0.26_-VPL-met-CC-met-Varia-Peter.zttxml-768x295.png 768w" sizes="auto, (max-width: 1018px) 100vw, 1018px" /></p>
<hr />
<h3><a id="Toevoegingen_aan_elementen_en_groepen"></a>Toevoegingen aan elementen en groepen</h3>
<p><strong>Klasgroepen:</strong> voor klassen die onderhevig zijn aan verplaatsingen.</p>
<ul>
<li><strong>KlassenMetVerplaatsing_&lt;locatie&gt;</strong>: Klassen die opdrachten op deze locatie kunnen hebben.</li>
<li><strong>KlassenMetVerplaatsing_&lt;locatie_locatie&gt;</strong>: Klassen die opdrachten op deze 2 locaties kunnen hebben.</li>
<li><strong>KlassenMetVerplaatsing_&lt;locatie_locatie_locatie&gt;</strong>: Klassen die opdrachten op deze 3 locaties kunnen hebben. <span style="color: #ff0000;"><span style="color: #000000;">(</span>deze groep</span> <span style="color: #ff0000;">wordt in onderstaand voorbeeld niet gebruikt</span>)</li>
<li>&#8230;</li>
</ul>
<p><img loading="lazy" decoding="async" class="alignnone wp-image-10779 size-full" src="https://time-tech.be/wp-content/uploads/2023/04/2023-04-27-18_45_43-time-tech-mondriaan-versie-2023.1.0.24_-VPL-met-CC-Peter.zttxml.png" alt="" width="1022" height="286" srcset="https://time-tech.be/wp-content/uploads/2023/04/2023-04-27-18_45_43-time-tech-mondriaan-versie-2023.1.0.24_-VPL-met-CC-Peter.zttxml.png 1022w, https://time-tech.be/wp-content/uploads/2023/04/2023-04-27-18_45_43-time-tech-mondriaan-versie-2023.1.0.24_-VPL-met-CC-Peter.zttxml-300x84.png 300w, https://time-tech.be/wp-content/uploads/2023/04/2023-04-27-18_45_43-time-tech-mondriaan-versie-2023.1.0.24_-VPL-met-CC-Peter.zttxml-768x215.png 768w" sizes="auto, (max-width: 1022px) 100vw, 1022px" /></p>
<p><strong>Leerkrachtgroepen:</strong> voor leerkrachten die onderhevig zijn aan verplaatsingen.</p>
<ul>
<li><strong>LeerkrachtenMetVerplaatsing_&lt;locatie&gt;</strong>: Leerkrachten die opdrachten op deze locatie kunnen hebben.</li>
<li><strong>LeerkrachtenMetVerplaatsing_&lt;locatie_locatie&gt;</strong>: Leerkrachten die opdrachten op deze 2 locaties kunnen hebben.</li>
<li><strong>LeerkrachtenMetVerplaatsing_&lt;locatie_locatie_&#8230;&gt;</strong>: Leerkrachten die opdrachten op deze 3 locaties kunnen hebben. (<span style="color: #ff0000;">deze groep wordt in onderstaand voorbeeld niet gebruikt</span>)</li>
<li>&#8230;</li>
</ul>
<p><img loading="lazy" decoding="async" class="alignnone wp-image-10780 size-full" src="https://time-tech.be/wp-content/uploads/2023/04/2023-04-27-18_44_34-time-tech-mondriaan-versie-2023.1.0.24_-VPL-met-CC-Peter.zttxml.png" alt="" width="1022" height="286" srcset="https://time-tech.be/wp-content/uploads/2023/04/2023-04-27-18_44_34-time-tech-mondriaan-versie-2023.1.0.24_-VPL-met-CC-Peter.zttxml.png 1022w, https://time-tech.be/wp-content/uploads/2023/04/2023-04-27-18_44_34-time-tech-mondriaan-versie-2023.1.0.24_-VPL-met-CC-Peter.zttxml-300x84.png 300w, https://time-tech.be/wp-content/uploads/2023/04/2023-04-27-18_44_34-time-tech-mondriaan-versie-2023.1.0.24_-VPL-met-CC-Peter.zttxml-768x215.png 768w" sizes="auto, (max-width: 1022px) 100vw, 1022px" /></p>
<p><strong>Varia en Variagroepen</strong>: voor leerkrachten en hun locaties:</p>
<p>In het tabblad &#8220;Elementen | Varia&#8221; worden volgende varia aangemaakt:</p>
<p><strong><img loading="lazy" decoding="async" class="alignnone wp-image-10824 size-full" src="https://time-tech.be/wp-content/uploads/2023/04/2023-05-06-16_41_27-time-tech-mondriaan-versie-2023.1.0.26_-VPL-met-CC-met-Varia-Peter.zttxml.png" alt="" width="1018" height="411" srcset="https://time-tech.be/wp-content/uploads/2023/04/2023-05-06-16_41_27-time-tech-mondriaan-versie-2023.1.0.26_-VPL-met-CC-met-Varia-Peter.zttxml.png 1018w, https://time-tech.be/wp-content/uploads/2023/04/2023-05-06-16_41_27-time-tech-mondriaan-versie-2023.1.0.26_-VPL-met-CC-met-Varia-Peter.zttxml-300x121.png 300w, https://time-tech.be/wp-content/uploads/2023/04/2023-05-06-16_41_27-time-tech-mondriaan-versie-2023.1.0.26_-VPL-met-CC-met-Varia-Peter.zttxml-768x310.png 768w" sizes="auto, (max-width: 1018px) 100vw, 1018px" /></strong></p>
<p>Het zijn deze varia die in het opdrachtentabblad geplaatst worden in de kolom Varia. Nuttig voor eventuele minimumspreidingen.</p>
<p>In het tabblad &#8220;Elementen | [Groepen] | [Varia]&#8221; worden volgende varia aangemaakt:</p>
<p><strong><img loading="lazy" decoding="async" class="alignnone wp-image-10825 size-full" src="https://time-tech.be/wp-content/uploads/2023/04/2023-05-06-16_42_30-time-tech-mondriaan-versie-2023.1.0.26_-VPL-met-CC-met-Varia-Peter.zttxml.png" alt="" width="1018" height="202" srcset="https://time-tech.be/wp-content/uploads/2023/04/2023-05-06-16_42_30-time-tech-mondriaan-versie-2023.1.0.26_-VPL-met-CC-met-Varia-Peter.zttxml.png 1018w, https://time-tech.be/wp-content/uploads/2023/04/2023-05-06-16_42_30-time-tech-mondriaan-versie-2023.1.0.26_-VPL-met-CC-met-Varia-Peter.zttxml-300x60.png 300w, https://time-tech.be/wp-content/uploads/2023/04/2023-05-06-16_42_30-time-tech-mondriaan-versie-2023.1.0.26_-VPL-met-CC-met-Varia-Peter.zttxml-768x152.png 768w" sizes="auto, (max-width: 1018px) 100vw, 1018px" /></strong></p>
<p>Deze groepen kunnen gebruikt worden in minimumspreidingen.</p>
<hr />
<h3><a id="Volgordespreidingen"></a>Volgordespreidingen</h3>
<p><strong>Extra spreidingen &#8211; Volgordespreidingen</strong>: zorgen ervoor dat men niet 2 keer naar eenzelfde locatie kan gaan.</p>
<p>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.</p>
<p>Merk op dat de kolom &#8220;Uurlijsten&#8221; 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 &#8220;Actief&#8221; 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.</p>
<p><img loading="lazy" decoding="async" class="alignnone wp-image-10789 size-full" src="https://time-tech.be/wp-content/uploads/2023/04/2023-04-29-15_57_35-Window.png" alt="" width="1046" height="218" srcset="https://time-tech.be/wp-content/uploads/2023/04/2023-04-29-15_57_35-Window.png 1046w, https://time-tech.be/wp-content/uploads/2023/04/2023-04-29-15_57_35-Window-300x63.png 300w, https://time-tech.be/wp-content/uploads/2023/04/2023-04-29-15_57_35-Window-1024x213.png 1024w, https://time-tech.be/wp-content/uploads/2023/04/2023-04-29-15_57_35-Window-768x160.png 768w" sizes="auto, (max-width: 1046px) 100vw, 1046px" /></p>
<p>De selectie van opdrachten in &#8220;Selectie 1&#8221; is op basis van de leerkracht en de locatie (BRIA is gekend als locatie in Lokalen). De selectie van opdrachten in &#8220;Selectie 2&#8221; 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.)</p>
<p>Uurlijsten aangevuld en spreidingen actief gemaakt:</p>
<p><img loading="lazy" decoding="async" class="alignnone wp-image-10793 size-full" src="https://time-tech.be/wp-content/uploads/2023/04/2023-04-29-16_24_48-Window.png" alt="" width="1058" height="218" srcset="https://time-tech.be/wp-content/uploads/2023/04/2023-04-29-16_24_48-Window.png 1058w, https://time-tech.be/wp-content/uploads/2023/04/2023-04-29-16_24_48-Window-300x62.png 300w, https://time-tech.be/wp-content/uploads/2023/04/2023-04-29-16_24_48-Window-1024x211.png 1024w, https://time-tech.be/wp-content/uploads/2023/04/2023-04-29-16_24_48-Window-768x158.png 768w" sizes="auto, (max-width: 1058px) 100vw, 1058px" /></p>
<p>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.</p>
<p>De eerste regel wordt opgesplitst volgens LeerkrachtenMetVerplaatsing_BRIA. Als LKR in die groep zit, moet men die volgordespreiding als volgt lezen:</p>
<ul>
<li>Neem alle opdrachten van LKR die in BRIA doorgaan (op een dag).</li>
<li>Neem alle opdrachten van LKR die NIET in BRIA doorgaan (op die zelfde dag).</li>
<li>Zorg er voor dat alle opdrachten uit die <span style="text-decoration: underline;">eerste</span> lijst (BRIA) ofwel allemaal VOOR ofwel allemaal NA de opdrachten uit die <span style="text-decoration: underline;">tweede</span> lijst vallen. Dit zorgt ervoor dat BRIA opdrachten voor LKR in 1 blok voor of na de andere staan.</li>
<li>Zorg er voor dat alle opdrachten uit die <span style="text-decoration: underline;">tweede</span> lijst (Niet-BRIA) ofwel allemaal VOOR ofwel allemaal NA de opdrachten uit die <span style="text-decoration: underline;">eerste</span> 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.</li>
</ul>
<p>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.</p>
<p><img loading="lazy" decoding="async" class="alignnone wp-image-10798 size-full" src="https://time-tech.be/wp-content/uploads/2023/04/2023-04-29-18_02_50-Window.png" alt="" width="649" height="470" srcset="https://time-tech.be/wp-content/uploads/2023/04/2023-04-29-18_02_50-Window.png 649w, https://time-tech.be/wp-content/uploads/2023/04/2023-04-29-18_02_50-Window-300x217.png 300w" sizes="auto, (max-width: 649px) 100vw, 649px" /></p>
<hr />
<h3><a id="Waardespreidingen"></a>Waardespreidingen</h3>
<p><strong>Extra spreidingen &#8211; Waardespreidingen</strong>: de momenten beperken waarop een klas of leerkracht zich mag/kan verplaatsen.</p>
<p>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:</p>
<ul>
<li>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.</li>
<li>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.</li>
<li>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.</li>
</ul>
<p><img loading="lazy" decoding="async" class="alignnone wp-image-10805 size-full" src="https://time-tech.be/wp-content/uploads/2023/04/2023-04-29-19_41_26-Window.png" alt="" width="1064" height="302" srcset="https://time-tech.be/wp-content/uploads/2023/04/2023-04-29-19_41_26-Window.png 1064w, https://time-tech.be/wp-content/uploads/2023/04/2023-04-29-19_41_26-Window-300x85.png 300w, https://time-tech.be/wp-content/uploads/2023/04/2023-04-29-19_41_26-Window-1024x291.png 1024w, https://time-tech.be/wp-content/uploads/2023/04/2023-04-29-19_41_26-Window-768x218.png 768w" sizes="auto, (max-width: 1064px) 100vw, 1064px" /></p>
<p>Mogelijk resultaat LKR_01:</p>
<ul>
<li>Op maandag eerst verplaatsing, dan uur les en dan middagpauze.</li>
<li>Op dinsdag keuze om eerst pauze of eerst verplaatsing te doen.</li>
</ul>
<p><img loading="lazy" decoding="async" class="alignnone wp-image-10804 size-full" src="https://time-tech.be/wp-content/uploads/2023/04/2023-04-29-19_39_20-Window.png" alt="" width="632" height="467" srcset="https://time-tech.be/wp-content/uploads/2023/04/2023-04-29-19_39_20-Window.png 632w, https://time-tech.be/wp-content/uploads/2023/04/2023-04-29-19_39_20-Window-300x222.png 300w" sizes="auto, (max-width: 632px) 100vw, 632px" /></p>
<hr />
<h3><a id="Minimumspreidingen"></a>Minimumspreidingen</h3>
<p><strong>Extra spreidingen &#8211; Minimumspreidingen</strong>: als een leerkracht op een locatie komt, dan minimum voor x uur.</p>
<p>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.</p>
<p>In dit voorbeeld gebruiken we de variagroepen en per locatie kunnen we dan een andere minimumspreiding opleggen.</p>
<p><img loading="lazy" decoding="async" class="alignnone wp-image-10829 size-full" src="https://time-tech.be/wp-content/uploads/2023/04/2023-05-06-16_46_08-time-tech-mondriaan-versie-2023.1.0.26_-VPL-met-CC-met-Varia-Peter.zttxml-2.png" alt="" width="1018" height="155" srcset="https://time-tech.be/wp-content/uploads/2023/04/2023-05-06-16_46_08-time-tech-mondriaan-versie-2023.1.0.26_-VPL-met-CC-met-Varia-Peter.zttxml-2.png 1018w, https://time-tech.be/wp-content/uploads/2023/04/2023-05-06-16_46_08-time-tech-mondriaan-versie-2023.1.0.26_-VPL-met-CC-met-Varia-Peter.zttxml-2-300x46.png 300w, https://time-tech.be/wp-content/uploads/2023/04/2023-05-06-16_46_08-time-tech-mondriaan-versie-2023.1.0.26_-VPL-met-CC-met-Varia-Peter.zttxml-2-768x117.png 768w" sizes="auto, (max-width: 1018px) 100vw, 1018px" /></p>

		</div>
	</div>
</div></div></div></div></div>
</div>]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Vrije klasuren op de randen van het rooster leggen</title>
		<link>https://time-tech.be/handleiding/vrije-uren-op-de-randen/</link>
		
		<dc:creator><![CDATA[Peter]]></dc:creator>
		<pubDate>Sun, 01 Mar 2020 17:41:12 +0000</pubDate>
				<guid isPermaLink="false">https://time-tech.be/?post_type=manual_kb&#038;p=6982</guid>

					<description><![CDATA[]]></description>
										<content:encoded><![CDATA[<div class="wpb-content-wrapper"><div  class=" pg-custom-vc    vc_row wpb_row section vc_row-fluid " style="text-align:left;  margin-left:0px;margin-right:0px;"     ><div class="container" style="padding: 0px 0px; display: block;    "><div class="wpb_column vc_column_container vc_col-sm-12"><div class="vc_column-inner"><div class="wpb_wrapper">
	<div class="wpb_text_column wpb_content_element" >
		<div class="wpb_wrapper">
			<h1>Vrije klasuren op de randen van het rooster leggen</h1>
<p>We illustreren dit probleem met een aantal gevallen uit de praktijk. Er worden op deze pagina verschillende oplossingen in detail uitgewerkt die niet niet alleen nuttig zijn om het probleem op zich op te lossen maar ook om inzicht te verschaffen in de manier waarop men de basisconcepten van Mondriaan kan combineren om roosterproblemen in het algemeen op te lossen.</p>
<p>Op het einde van de pagina kan men de voorbeeldbestanden vinden die gebruikt werden in de tekst.</p>
<h2>Probleemstelling</h2>
<p>Af en toe kan het niet anders dan dat we klasroosters moeten maken waarbij er meer uren in het rooster zitten dan dat er les gegeven moet worden. In dergelijke gevallen hebben we het probleem van de vrije uren. De vraag die dan beantwoord moet worden is waar we die vrije uren moeten/mogen inplannen. Wat meestal niet handig is, is dat er springuren ontstaan in het midden van een dag. Een betere oplossing is om ze aan het einde van een dag te leggen, aan het begin van een dag, of dat er een combinatie van beide toegelaten is. Op deze pagina zullen we een aantal praktijkvoorbeelden bekijken samen met de oplossingen die gebruikt werden.</p>
<p>We behandelen volgende voorbeelden:</p>
<ul>
<li><strong>Voorbeeld 1</strong> &#8211; Klassen met 33 uur les op een rooster van 35 uur (2 vrije uren te plannen)
<ul>
<li><span style="text-decoration: underline;">Oplossing 1</span>: we gebruiken énkel waardespreidingen. De vrije uren worden niet als aparte opdrachten geplaatst.</li>
<li><span style="text-decoration: underline;">Oplossing 2</span>: de vrije uren worden als aparte opdrachten ingevoerd. We gebruiken blokjes van 1 en van 2 uur met een techniek van overloop-resources om de keuze tussen blokjes van 1 of 2 uur te maken. Dit gaat in combinatie met een eenvoudige waardespreiding.</li>
</ul>
</li>
<li><strong>Voorbeeld 2</strong> &#8211; klassen met 33 uur les op een rooster van 41 uur en een variabele middagpauze (4 vrije uren te plannen)
<ul>
<li><span style="text-decoration: underline;">Oplossing 1</span>: we plaatsen de vrije uren als individuele opdrachten van 1 uur en drijven ze naar de randen via volgordespreidingen.</li>
<li><span style="text-decoration: underline;">Oplossing 2</span>: we plaatsen de vrije uren als individuele opdrachten van 1 uur en drijven ze per dag ofwel naar de bovenrand ofwel naar de onderrand via volgordespreidingen.</li>
</ul>
</li>
</ul>
<p>Voor elke van de 3 oplossing wordt het Mondriaan bestand meegeleverd.</p>
<h2>Voorbeeld 1 &#8211; Klassen met 33 uur les op een rooster van 35 uur</h2>
<p>We hebben een aantal klassen die 33 uur les hebben maar waarvoor het onmogelijk is om die 33 uur op een vast rooster van 35 uur te plannen. Door beperkingen die ontstaan door samenzettingen van klassen, lokalenproblematiek, beschikbaarheid van leerkrachten werd besloten om meer ruimte in het rooster te voorzien. Door 2 extra uren op te nemen in de roosterruimte ontstaat er meer zuurstof om de opdrachten te kunnen plannen. Door het invoeren van 2 extra uren in het rooster ontstaat wel het probleem van &#8220;springuren&#8221;. De vraag is of we die springuren niet kunnen vermijden door ze aan de bovenrand van het rooster te leggen zonder afbreuk te doen aan het vinden van een mogelijk oplossing voor het rooster.</p>
<p>Het rooster dat in dit voorbeeld gebruikt wordt is typisch een 5-daags rooster waarbij woensdagnamiddag vrij is. Voor maandag, dinsdag en donderdag worden 8 uur voorzien, voor vrijdag maar 7. Dat er op vrijdag liever niet tot het 8ste uur wordt gewerkt is een logische keuze. Er zijn dus 35 roosterpunten mogelijk waarop we 33 lesuren moeten plannen.</p>
<p>Volgende 3 plaatjes tonen mogelijke oplossingen waarbij de eerste niet aanvaardbaar is. In het tweede voorbeeld liggen de vrije uren op de rand en hebben we dus geen springuren. In het derde voorbeeld hebben we op donderdag 2 vrije uren op 7 en 8 wat ook aanvaardbaar is.</p>
<p><img loading="lazy" decoding="async" class="alignnone wp-image-6991 size-full" src="https://time-tech.be/wp-content/uploads/2020/03/2020-03-02-14_00_57-Window.png" alt="" width="371" height="504" srcset="https://time-tech.be/wp-content/uploads/2020/03/2020-03-02-14_00_57-Window.png 371w, https://time-tech.be/wp-content/uploads/2020/03/2020-03-02-14_00_57-Window-221x300.png 221w" sizes="auto, (max-width: 371px) 100vw, 371px" /> <img loading="lazy" decoding="async" class="alignnone wp-image-7033 size-full" src="https://time-tech.be/wp-content/uploads/2020/03/2020-03-03-11_52_25-Window.png" alt="" width="371" height="504" srcset="https://time-tech.be/wp-content/uploads/2020/03/2020-03-03-11_52_25-Window.png 371w, https://time-tech.be/wp-content/uploads/2020/03/2020-03-03-11_52_25-Window-221x300.png 221w" sizes="auto, (max-width: 371px) 100vw, 371px" /> <img loading="lazy" decoding="async" class="alignnone wp-image-6995 size-full" src="https://time-tech.be/wp-content/uploads/2020/03/2020-03-02-14_05_09-Window.png" alt="" width="371" height="504" srcset="https://time-tech.be/wp-content/uploads/2020/03/2020-03-02-14_05_09-Window.png 371w, https://time-tech.be/wp-content/uploads/2020/03/2020-03-02-14_05_09-Window-221x300.png 221w" sizes="auto, (max-width: 371px) 100vw, 371px" /></p>
<p>Voor elke klas kan de oplossing anders zijn maar de regel is dus eenvoudig. De 2 vrije uren liggen</p>
<ul>
<li>ofwel als 2 losse uren op ma8, di8, do8, vr7</li>
<li>ofwel als &#8220;blokje&#8221; van 2 uur op ma7, di7, do7</li>
</ul>
<p>Het is in dit voorbeeld niet toegelaten om een blokje van 2 vrije uren op vr6 te hebben. Dus, de 2 vrije uren liggen hoe dan ook op het het 7de en/of 8ste uren. We gaan ons dus focussen op dit deel van het rooster:</p>
<p><img loading="lazy" decoding="async" class="alignnone wp-image-6996 size-full" src="https://time-tech.be/wp-content/uploads/2020/03/2020-03-02-14_12_07-Window.png" alt="" width="371" height="168" srcset="https://time-tech.be/wp-content/uploads/2020/03/2020-03-02-14_12_07-Window.png 371w, https://time-tech.be/wp-content/uploads/2020/03/2020-03-02-14_12_07-Window-300x136.png 300w" sizes="auto, (max-width: 371px) 100vw, 371px" /></p>
<h3>Oplossing met enkel spreidingsregels</h3>
<p>Een mogelijke oplossing is om dit aan te pakken is via extra waardespreidingen. Dit vraagt wel wat denkwerk maar eens het patroon gekend is kan men variaties maken op het thema.</p>
<p>In de spreidingsregels die we hier uitleggen bevat de groep &#8220;Klassen-33u&#8221; alle klassen die aan deze regels moeten voldoen. De beschreven spreidingsregels zullen voor elke individuele klas uit deze groep gelden.</p>
<p>We beginnen met het forceren van de vrije uren naar het 7de en 8ste uur van de week. De manier om dat te doen via een spreiding is te stellen dat er maximum 5 uur les gegeven kunnen worden op deze uren. Als er maar 5 uur op de 7de en 8ste uren gegeven mogen worden dan kan het niet anders dan dat de 2 vrije uur daar komen liggen.</p>
<p><img loading="lazy" decoding="async" class="alignnone wp-image-6999 size-full" src="https://time-tech.be/wp-content/uploads/2020/03/2020-03-02-16_19_55-Window.png" alt="" width="1038" height="134" srcset="https://time-tech.be/wp-content/uploads/2020/03/2020-03-02-16_19_55-Window.png 1038w, https://time-tech.be/wp-content/uploads/2020/03/2020-03-02-16_19_55-Window-300x39.png 300w, https://time-tech.be/wp-content/uploads/2020/03/2020-03-02-16_19_55-Window-1024x132.png 1024w, https://time-tech.be/wp-content/uploads/2020/03/2020-03-02-16_19_55-Window-768x99.png 768w" sizes="auto, (max-width: 1038px) 100vw, 1038px" /></p>
<p>Het gaat om de eerste spreidingsregel. Voor elke klas maximaal 5 uur les op de uurlijst &#8220;ZevendeAchtste&#8221; die alle 7de en 8ste uren van het rooster bevat.</p>
<h2><img loading="lazy" decoding="async" class="alignnone wp-image-7000 size-full" src="https://time-tech.be/wp-content/uploads/2020/03/2020-03-02-16_24_02-Window.png" alt="" width="676" height="92" srcset="https://time-tech.be/wp-content/uploads/2020/03/2020-03-02-16_24_02-Window.png 676w, https://time-tech.be/wp-content/uploads/2020/03/2020-03-02-16_24_02-Window-300x41.png 300w" sizes="auto, (max-width: 676px) 100vw, 676px" /></h2>
<p>Een volgende beperking die we kunnen opleggen is eisen dat er maximaal 2 uur les op het 8ste uur gegeven wordt. Van zodra er 3 uur les gegeven wordt op het 8ste zijn we zeker dat er een springuur ontstaat (wetende dat er 5 uur op het 7de en 8ste gegeven wordt). We illustreren dit hier met een voorbeeld. We leggen 3 uur op het 8ste en wetende dat er 5 uur op het 7de en 8ste kunnen liggen kan het niet anders zijn dat dat er 1 of 2 springuren vallen op het 7de uur:</p>
<h2><img loading="lazy" decoding="async" class="alignnone wp-image-7001 size-full" src="https://time-tech.be/wp-content/uploads/2020/03/2020-03-02-16_28_22-Window.png" alt="" width="371" height="168" srcset="https://time-tech.be/wp-content/uploads/2020/03/2020-03-02-16_28_22-Window.png 371w, https://time-tech.be/wp-content/uploads/2020/03/2020-03-02-16_28_22-Window-300x136.png 300w" sizes="auto, (max-width: 371px) 100vw, 371px" /></h2>
<p>De eis dat de klassen maximaal 2 uur les hebben op het 8ste vertaalt zicht in de tweede spreidingsregel. De uurlijst &#8220;Achtste&#8221; is als volgt gedefinieerd:</p>
<h2><img loading="lazy" decoding="async" class="alignnone wp-image-7002 size-full" src="https://time-tech.be/wp-content/uploads/2020/03/2020-03-02-16_32_24-Window.png" alt="" width="676" height="92" srcset="https://time-tech.be/wp-content/uploads/2020/03/2020-03-02-16_32_24-Window.png 676w, https://time-tech.be/wp-content/uploads/2020/03/2020-03-02-16_32_24-Window-300x41.png 300w" sizes="auto, (max-width: 676px) 100vw, 676px" /></h2>
<p>Deze 2 spreidingsregels zijn nodige maar nog niet voldoende voorwaarden om te bekomen wat we graag hebben. Er zijn namelijk gevallen waarbij aan beide spreidingen voldaan is maar waarvoor nog steeds foute oplossingen kunnen bestaan. Volgend voorbeeld voldoet aan de 2 spreidingsregels maar is nog steeds fout omdat we een springuur hebben op do7:</p>
<h2><img loading="lazy" decoding="async" class="alignnone wp-image-7003 size-full" src="https://time-tech.be/wp-content/uploads/2020/03/2020-03-02-16_36_05-Window.png" alt="" width="371" height="168" srcset="https://time-tech.be/wp-content/uploads/2020/03/2020-03-02-16_36_05-Window.png 371w, https://time-tech.be/wp-content/uploads/2020/03/2020-03-02-16_36_05-Window-300x136.png 300w" sizes="auto, (max-width: 371px) 100vw, 371px" /></h2>
<p>We moeten de gevallen systematisch trachten te identificeren die nu fout kunnen gaan. Voor elk van die gevallen kunnen we dan een oplossing formuleren.</p>
<p>Voor het 8ste uur zijn er 2 mogelijkheden: ofwel staat er 1 uur, ofwel staan er 2 uren. Geen les op het 8ste is niet mogelijk en meer dan 2 ook niet. Kan er iets misgaan als er op het 8ste uur maar 1 uur les is? Neen. Als er op het 8ste uur maar 1 uur les is dan moeten de 7de uren allemaal gevuld zijn met lessen en liggen de vrije uren dus op het 8ste. Er kan dus alleen iets misgaan indien er exact 2 uur les gegeven wordt op het 8ste. Komt overeen met het voorbeeld dat hierboven gegeven is. Laat ons de foute situaties eens bekijken voor het geval dat er 2 uur op het 8ste staan. Stel dat er géén les gegeven wordt op vr7:</p>
<p><img loading="lazy" decoding="async" class="alignnone wp-image-7007 size-full" src="https://time-tech.be/wp-content/uploads/2020/03/2020-03-02-16_48_15-Window.png" alt="" width="371" height="168" srcset="https://time-tech.be/wp-content/uploads/2020/03/2020-03-02-16_48_15-Window.png 371w, https://time-tech.be/wp-content/uploads/2020/03/2020-03-02-16_48_15-Window-300x136.png 300w" sizes="auto, (max-width: 371px) 100vw, 371px" /></p>
<p>Als er geen les op vr7 is dan kan het niet fout gaan. Dus, de enige foute situaties kunnen maar ontstaan op voorwaarde dat er op vr7 wél les gegeven wordt er dat er op het 8ste 2 uur les gegeven wordt. We bekijken de mogelijke situaties waarbij vr7 les heeft en waarbij er op het 8ste 2 uur les zijn en het fout gaat:</p>
<p>geen les op <strong>do8:</strong></p>
<p><img loading="lazy" decoding="async" class="alignnone wp-image-7013 size-full" src="https://time-tech.be/wp-content/uploads/2020/03/2020-03-02-17_21_01-Window.png" alt="" width="371" height="168" srcset="https://time-tech.be/wp-content/uploads/2020/03/2020-03-02-17_21_01-Window.png 371w, https://time-tech.be/wp-content/uploads/2020/03/2020-03-02-17_21_01-Window-300x136.png 300w" sizes="auto, (max-width: 371px) 100vw, 371px" /> <img loading="lazy" decoding="async" class="alignnone wp-image-7014 size-full" src="https://time-tech.be/wp-content/uploads/2020/03/2020-03-02-17_20_42-Window.png" alt="" width="371" height="168" srcset="https://time-tech.be/wp-content/uploads/2020/03/2020-03-02-17_20_42-Window.png 371w, https://time-tech.be/wp-content/uploads/2020/03/2020-03-02-17_20_42-Window-300x136.png 300w" sizes="auto, (max-width: 371px) 100vw, 371px" /></p>
<p>geen les op <strong>di8:</strong></p>
<p><img loading="lazy" decoding="async" class="alignnone wp-image-7012 size-full" src="https://time-tech.be/wp-content/uploads/2020/03/2020-03-02-17_21_33-Window.png" alt="" width="371" height="168" srcset="https://time-tech.be/wp-content/uploads/2020/03/2020-03-02-17_21_33-Window.png 371w, https://time-tech.be/wp-content/uploads/2020/03/2020-03-02-17_21_33-Window-300x136.png 300w" sizes="auto, (max-width: 371px) 100vw, 371px" /> <img loading="lazy" decoding="async" class="alignnone wp-image-7017 size-full" src="https://time-tech.be/wp-content/uploads/2020/03/2020-03-02-17_21_53-Window.png" alt="" width="371" height="168" srcset="https://time-tech.be/wp-content/uploads/2020/03/2020-03-02-17_21_53-Window.png 371w, https://time-tech.be/wp-content/uploads/2020/03/2020-03-02-17_21_53-Window-300x136.png 300w" sizes="auto, (max-width: 371px) 100vw, 371px" /></p>
<p>geen les op <strong>ma8:</strong></p>
<p><img loading="lazy" decoding="async" class="alignnone wp-image-7016 size-full" src="https://time-tech.be/wp-content/uploads/2020/03/2020-03-02-17_22_19-Window.png" alt="" width="371" height="168" srcset="https://time-tech.be/wp-content/uploads/2020/03/2020-03-02-17_22_19-Window.png 371w, https://time-tech.be/wp-content/uploads/2020/03/2020-03-02-17_22_19-Window-300x136.png 300w" sizes="auto, (max-width: 371px) 100vw, 371px" /> <img loading="lazy" decoding="async" class="alignnone wp-image-7015 size-full" src="https://time-tech.be/wp-content/uploads/2020/03/2020-03-02-17_22_38-Window.png" alt="" width="371" height="168" srcset="https://time-tech.be/wp-content/uploads/2020/03/2020-03-02-17_22_38-Window.png 371w, https://time-tech.be/wp-content/uploads/2020/03/2020-03-02-17_22_38-Window-300x136.png 300w" sizes="auto, (max-width: 371px) 100vw, 371px" /></p>
<p>Dit zijn de 6 combinaties die nog mis kunnen gaan als we enkel de eerste 2 spreidingsregels gebruiken. Een eerste manier om dit op te lossen is op een eenvoudige manier deze 6 combinaties verbieden via spreidingsregels. Stel dat we de eerste willen vermijden via een waardespreiding:</p>
<ul>
<li>Maak een EN-uurlijst (bv U33-Fout-01) met de volgende 5 uren: <strong>ma7, ma8, di8, do7, vr7</strong></li>
<li>Maak een waardespreiding voor Klassen-33u die stelt dat je <strong>maximum 4</strong> uur mag bezetten op U33-Fout-01</li>
<li>Door dit te zeggen wordt nooit toegestaan dat op die 5 uur ook 5 uur lesgegeven wordt.</li>
</ul>
<p>Dit kunnen we herhalen voor elk van de 6 combinaties. We gebruiken dan volgende uurlijsten:</p>
<p><img loading="lazy" decoding="async" class="alignnone wp-image-7020 size-full" src="https://time-tech.be/wp-content/uploads/2020/03/2020-03-02-18_07_50-Window.png" alt="" width="853" height="218" srcset="https://time-tech.be/wp-content/uploads/2020/03/2020-03-02-18_07_50-Window.png 853w, https://time-tech.be/wp-content/uploads/2020/03/2020-03-02-18_07_50-Window-300x77.png 300w, https://time-tech.be/wp-content/uploads/2020/03/2020-03-02-18_07_50-Window-768x196.png 768w" sizes="auto, (max-width: 853px) 100vw, 853px" /></p>
<p>De spreiding om de foute combinaties te vermijden voor alle klassen wordt dan:</p>
<p><img loading="lazy" decoding="async" class="alignnone wp-image-7023 size-full" src="https://time-tech.be/wp-content/uploads/2020/03/2020-03-02-18_12_15-Window.png" alt="" width="1038" height="92" srcset="https://time-tech.be/wp-content/uploads/2020/03/2020-03-02-18_12_15-Window.png 1038w, https://time-tech.be/wp-content/uploads/2020/03/2020-03-02-18_12_15-Window-300x27.png 300w, https://time-tech.be/wp-content/uploads/2020/03/2020-03-02-18_12_15-Window-1024x91.png 1024w, https://time-tech.be/wp-content/uploads/2020/03/2020-03-02-18_12_15-Window-768x68.png 768w" sizes="auto, (max-width: 1038px) 100vw, 1038px" /></p>
<p>Dit geeft een perfect oplossing voor het probleem. Echter, als men het probleem nog eens in detail bekijkt zal men zien dat het korter kan, met minder spreidingsregels. Bekijken we bijvoorbeeld terug de eerste 2 combinaties waarbij geen les op <strong>do8</strong> gegeven wordt:</p>
<p><img loading="lazy" decoding="async" class="alignnone wp-image-7026 size-full" src="https://time-tech.be/wp-content/uploads/2020/03/2020-03-02-18_18_05-2020-03-02-17_21_01-01Window.png" alt="" width="371" height="168" srcset="https://time-tech.be/wp-content/uploads/2020/03/2020-03-02-18_18_05-2020-03-02-17_21_01-01Window.png 371w, https://time-tech.be/wp-content/uploads/2020/03/2020-03-02-18_18_05-2020-03-02-17_21_01-01Window-300x136.png 300w" sizes="auto, (max-width: 371px) 100vw, 371px" /> <img loading="lazy" decoding="async" class="alignnone wp-image-7025 size-full" src="https://time-tech.be/wp-content/uploads/2020/03/2020-03-02-18_18_49-2020-03-02-17_20_42-01Window.png" alt="" width="371" height="168" srcset="https://time-tech.be/wp-content/uploads/2020/03/2020-03-02-18_18_49-2020-03-02-17_20_42-01Window.png 371w, https://time-tech.be/wp-content/uploads/2020/03/2020-03-02-18_18_49-2020-03-02-17_20_42-01Window-300x136.png 300w" sizes="auto, (max-width: 371px) 100vw, 371px" /></p>
<p>In beide gevallen die hier fout gaan zien we dat we het al kunnen weten door te kijken naar <strong>ma8, di8, do7, vr7</strong>. Van zodra er op deze 4 uur lesgegeven wordt zal het fout gaan, eender waar het 5de uur geplaatst wordt (ma7 of di7). Hetzelfde kunnen we toepassen op de 4 andere gevallen. Passen we dit toe dan herleiden we het probleem naar in totaal 3 foute combinaties die we in een waardespreidingsregel kunnen opnemen. Dit zijn de 3 combinaties. De rode cirkels geven aan waar het 5de uur fout geplaatst zou worden.</p>
<p><img loading="lazy" decoding="async" class="alignnone wp-image-7009 size-full" src="https://time-tech.be/wp-content/uploads/2020/03/2020-03-02-16_55_57-Window.png" alt="" width="371" height="168" srcset="https://time-tech.be/wp-content/uploads/2020/03/2020-03-02-16_55_57-Window.png 371w, https://time-tech.be/wp-content/uploads/2020/03/2020-03-02-16_55_57-Window-300x136.png 300w" sizes="auto, (max-width: 371px) 100vw, 371px" /> <img loading="lazy" decoding="async" class="alignnone wp-image-7008 size-full" src="https://time-tech.be/wp-content/uploads/2020/03/2020-03-02-16_54_25-Window.png" alt="" width="371" height="168" srcset="https://time-tech.be/wp-content/uploads/2020/03/2020-03-02-16_54_25-Window.png 371w, https://time-tech.be/wp-content/uploads/2020/03/2020-03-02-16_54_25-Window-300x136.png 300w" sizes="auto, (max-width: 371px) 100vw, 371px" /> <img loading="lazy" decoding="async" class="alignnone wp-image-7010 size-full" src="https://time-tech.be/wp-content/uploads/2020/03/2020-03-02-16_55_16-Window.png" alt="" width="371" height="168" srcset="https://time-tech.be/wp-content/uploads/2020/03/2020-03-02-16_55_16-Window.png 371w, https://time-tech.be/wp-content/uploads/2020/03/2020-03-02-16_55_16-Window-300x136.png 300w" sizes="auto, (max-width: 371px) 100vw, 371px" /></p>
<p>We hebben dus 3 uurlijstjes nodig met telkens 4 uur waarop we de spreiding gaan definiëren:</p>
<p><img loading="lazy" decoding="async" class="alignnone wp-image-7028 size-full" src="https://time-tech.be/wp-content/uploads/2020/03/2020-03-02-18_30_43-Window.png" alt="" width="812" height="155" srcset="https://time-tech.be/wp-content/uploads/2020/03/2020-03-02-18_30_43-Window.png 812w, https://time-tech.be/wp-content/uploads/2020/03/2020-03-02-18_30_43-Window-300x57.png 300w, https://time-tech.be/wp-content/uploads/2020/03/2020-03-02-18_30_43-Window-768x147.png 768w" sizes="auto, (max-width: 812px) 100vw, 812px" /></p>
<p>Dat brengt ons dan terug bij de spreidingsregel die we eerder toonden.</p>
<p><img loading="lazy" decoding="async" class="alignnone wp-image-7029 size-full" src="https://time-tech.be/wp-content/uploads/2020/03/2020-03-02-18_33_19-Window.png" alt="" width="1038" height="134" srcset="https://time-tech.be/wp-content/uploads/2020/03/2020-03-02-18_33_19-Window.png 1038w, https://time-tech.be/wp-content/uploads/2020/03/2020-03-02-18_33_19-Window-300x39.png 300w, https://time-tech.be/wp-content/uploads/2020/03/2020-03-02-18_33_19-Window-1024x132.png 1024w, https://time-tech.be/wp-content/uploads/2020/03/2020-03-02-18_33_19-Window-768x99.png 768w" sizes="auto, (max-width: 1038px) 100vw, 1038px" /></p>
<p>We stellen dat er maximum 3 uur gepland mogen worden op de uurlijstjes vervat in U33. Van zodra er een 4de uur bijkomt weten we zeker dat het fout gaat.</p>
<p>Om nog wat meer inzicht te krijgen in de manier waarom men met waardespreidingen deze problemen kan oplossen hebben we in volgend MS Excel bestand een heel aantal voorbeelden opgenomen. Het gaat om het plannen van vrije uren op het 7de en 8ste uur van een basisrooster. De voorbeelden gaan van 1 vrij uur tot 7 vrije uren die moeten voorzien worden op de rand.</p>
<ul>
<li><a href="https://time-tech.be/wp-content/uploads/2020/03/Randuren-oplossen-door-waardespreidingen-Enkele-voorbeelden.xlsx">Randuren oplossen door waardespreidingen &#8211; Enkele voorbeelden</a></li>
</ul>
<h3>Oplossing met het plaatsen van randblokjes en waardespreidingen</h3>
<p>Een andere oplossing om springuren te vermijden en de vrij uren dus naar de randen van het rooster te drijven is door de vrije uren als extra opdrachten voor de klassen in te voeren. Men maakt de vrije uren expliciet en plaatst ze als het ware mee in het rooster. Dergelijke opdrachten zullen dan in principe enkel de klas als resource bevatten en een uurlijst waar de de vrije uren mogen staan. Als vak zou men bijvoorbeeld RAND kunnen meegeven om gemakkelijk te selecteren en om duidelijker het onderscheid te kunnen maken in het rooster.</p>
<p>In volgend voorbeeld zien we 2 klassen waarvoor we de vrije uren als blokjes op de rand gelegd hebben. Voor de klas links hebben we 2 vrije uren na elkaar op dinsdag 7 en 8. Voor de klas rechts hebben we maandag 8 en vrijdag 7 als vrije uren op de rand.</p>
<p><img loading="lazy" decoding="async" class="alignnone wp-image-7035 size-full" src="https://time-tech.be/wp-content/uploads/2020/03/2020-03-03-12_28_02-Window.png" alt="" width="764" height="504" srcset="https://time-tech.be/wp-content/uploads/2020/03/2020-03-03-12_28_02-Window.png 764w, https://time-tech.be/wp-content/uploads/2020/03/2020-03-03-12_28_02-Window-300x198.png 300w" sizes="auto, (max-width: 764px) 100vw, 764px" /></p>
<p>Op het eerste zicht lijkt dit een gemakkelijke oplossing te zijn maar dat is het niet. Het feit dat links een blokje van 2 op di7 staat en rechts 2 lossen blokjes op ma8 en vr7 illustreert het probleem al. Om de vrije uren op een correcte manier te plaatsen hebben we:</p>
<ul>
<li>ofwel 2 losse vrije uren nodig die op <strong>ma8, di8, do8, vr7</strong> kunnen staan</li>
<li>ofwel een blokje van 2 vrije uren die op <strong>ma7, di7, do8</strong> kunnen staan</li>
</ul>
<p>Mondriaan ondersteunt (momenteel) nog geen opdrachten die op deze manier uren kunnen plaatsen (2 uur plaatsen als ofwel 2 losse op een bepaalde uurlijst, ofwel als blok op nog een andere uurlijst). We gaan dus een manier moeten vinden om dit via een omweg toch te doen. (<em>Merk op dat we verder op deze pagina in Voorbeeld 2 een andere techniek bekijken om hetzelfde te bereiken.</em>)</p>
<p>Er zijn verschillende manieren om dat te doen waarvan we er hier één bekijken.</p>
<p>We beginnen met de uurlijsten waarop de vrije uren geplaatst mogen worden:</p>
<ul>
<li>RND_33_1 voor lossen vrije uren</li>
<li>RND_33_2 voor de blokjes van 2 vrije uren na elkaar</li>
</ul>
<p><img loading="lazy" decoding="async" class="alignnone wp-image-7037 size-full" src="https://time-tech.be/wp-content/uploads/2020/03/2020-03-03-12_47_36-Window.png" alt="" width="426" height="113" srcset="https://time-tech.be/wp-content/uploads/2020/03/2020-03-03-12_47_36-Window.png 426w, https://time-tech.be/wp-content/uploads/2020/03/2020-03-03-12_47_36-Window-300x80.png 300w" sizes="auto, (max-width: 426px) 100vw, 426px" /></p>
<p>Wat we willen bekomen is dat er voor elke klas ofwel 2 losse vrije uren geplaatst worden op RND_33_1, ofwel een blokje van 2 uur op RND_33_2. Stel dat we voor elke klas 3 opdrachten voorzien om dit te doen. Als voorbeeld nemen we de klas 3BM-1:</p>
<p><img loading="lazy" decoding="async" class="alignnone wp-image-7046 size-full" src="https://time-tech.be/wp-content/uploads/2020/03/2020-03-03-13_02_53-Window.png" alt="" width="625" height="156" srcset="https://time-tech.be/wp-content/uploads/2020/03/2020-03-03-13_02_53-Window.png 625w, https://time-tech.be/wp-content/uploads/2020/03/2020-03-03-13_02_53-Window-300x75.png 300w" sizes="auto, (max-width: 625px) 100vw, 625px" /></p>
<p>We hebben hier de juiste blokjes op de juiste uurlijsten maar het probleem is dat we nu niet 2 maar 4 vrije uren in het rooster proberen te plaatsen. Dit is niet de bedoeling en gaat ook niet lukken. We moeten een manier vinden om via deze 3 opdrachten exact 2 vrije uren te plaatsen in 3BM-1 zonder dat een van de opdrachten faalt. Het systeem zou dan moeten kunnen kiezen tussen ofwel 2 losse uren, ofwel het blokje van 2 vrije uren.</p>
<p>Een manier om dat te doen is door een &#8220;overloop&#8221; resource te voorzien. We gaan de 4 vrije uren niet alleen in 3BM-1 plaatsen maar we gaan elk van de opdrachten ook de mogelijkheid geven om ze op een ander rooster te plaatsen, een overloop rooster. Als we elke opdracht kunnen laten kiezen tussen 3BM-1 en bijvoorbeeld de overloop resource RND_3BM-1 dan kan dat wel lukken. Enige wat we dan nog wel moeten doen is er voor zorgen dat niet alle vrije uren naar de overloop resource gaan. Via een eenvoudige waardespreiding kunnen we dat beperken tot exact 2. Als zowel 3BM-1 als RND_3BM-1 2 vrije uurtjes krijgen dan is het opgelost.</p>
<p>Volgende 2 plaatjes tonen het resultaat voor de klassen die we eerder gebruikten.</p>
<p>Voor 3BM-1 gebruiken we de overloop resource RND_3BM-1 (als dummy klas gedefinieerd).  Hier zien we dat de echte klas het blokje van 2 gekregen heeft en de overloop resource heeft de 2 losse uren gekregen.</p>
<p><img loading="lazy" decoding="async" class="alignnone wp-image-7042 size-full" src="https://time-tech.be/wp-content/uploads/2020/03/2020-03-03-12_50_40-Window.png" alt="" width="765" height="504" srcset="https://time-tech.be/wp-content/uploads/2020/03/2020-03-03-12_50_40-Window.png 765w, https://time-tech.be/wp-content/uploads/2020/03/2020-03-03-12_50_40-Window-300x198.png 300w" sizes="auto, (max-width: 765px) 100vw, 765px" /></p>
<p>Voor 3EI gebruiken we de overloop resource RND_3EI (als dummy klas gedefinieerd). Hier zien we dat de echte klas de 2 losse uren gekregen heeft en de overloop resource heeft het blokje van 2 gekregen.</p>
<p><img loading="lazy" decoding="async" class="alignnone wp-image-7041 size-full" src="https://time-tech.be/wp-content/uploads/2020/03/2020-03-03-12_51_27-Window.png" alt="" width="765" height="504" srcset="https://time-tech.be/wp-content/uploads/2020/03/2020-03-03-12_51_27-Window.png 765w, https://time-tech.be/wp-content/uploads/2020/03/2020-03-03-12_51_27-Window-300x198.png 300w" sizes="auto, (max-width: 765px) 100vw, 765px" /></p>
<p>We bekijken nu wat we verder nodig hebben om dit systeem op te zetten.</p>
<p>Als overloop resources definiëren we voor elke klas een dummy klas met als prefix bijvoorbeeld &#8220;RND&#8221; om het onderscheid met de echte klassen te bewaren.</p>
<p><img loading="lazy" decoding="async" class="alignnone wp-image-7039 size-full" src="https://time-tech.be/wp-content/uploads/2020/03/2020-03-03-12_45_26-Window.png" alt="" width="584" height="202" srcset="https://time-tech.be/wp-content/uploads/2020/03/2020-03-03-12_45_26-Window.png 584w, https://time-tech.be/wp-content/uploads/2020/03/2020-03-03-12_45_26-Window-300x104.png 300w" sizes="auto, (max-width: 584px) 100vw, 584px" /></p>
<p>Voor elke klas maken we een OF-klasgroepje waarin de klas en zijn overloop resource zit. Deze groepjes gaan we kunnen gebruiken in de opdrachten voor de vrije uren. Elk van die opdrachten kan dan kiezen uit ofwel de echte klas, ofwel de overloop resource.</p>
<p><img loading="lazy" decoding="async" class="alignnone wp-image-7038 size-full" src="https://time-tech.be/wp-content/uploads/2020/03/2020-03-03-12_46_34-Window.png" alt="" width="619" height="223" srcset="https://time-tech.be/wp-content/uploads/2020/03/2020-03-03-12_46_34-Window.png 619w, https://time-tech.be/wp-content/uploads/2020/03/2020-03-03-12_46_34-Window-300x108.png 300w" sizes="auto, (max-width: 619px) 100vw, 619px" /></p>
<p>Om de waardespreiding op een eenvoudige manier te kunnen definiëren maken we ook nog een klasgroep aan waarin alle overloop resources zitten.</p>
<p><img loading="lazy" decoding="async" class="alignnone wp-image-7043 size-full" src="https://time-tech.be/wp-content/uploads/2020/03/2020-03-03-12_50_04-Window.png" alt="" width="730" height="118" srcset="https://time-tech.be/wp-content/uploads/2020/03/2020-03-03-12_50_04-Window.png 730w, https://time-tech.be/wp-content/uploads/2020/03/2020-03-03-12_50_04-Window-300x48.png 300w" sizes="auto, (max-width: 730px) 100vw, 730px" /></p>
<p>Vervolgens maken we de opdrachten aan voor iedere klas om de vrije uren te plannen. Als klas gebruiken we telkens het OF-groepje dat kan kiezen tussen de echte klas of de overloop resource.</p>
<p><img loading="lazy" decoding="async" class="alignnone wp-image-7040 size-full" src="https://time-tech.be/wp-content/uploads/2020/03/2020-03-03-12_44_19-Window.png" alt="" width="1038" height="158" srcset="https://time-tech.be/wp-content/uploads/2020/03/2020-03-03-12_44_19-Window.png 1038w, https://time-tech.be/wp-content/uploads/2020/03/2020-03-03-12_44_19-Window-300x46.png 300w, https://time-tech.be/wp-content/uploads/2020/03/2020-03-03-12_44_19-Window-1024x156.png 1024w, https://time-tech.be/wp-content/uploads/2020/03/2020-03-03-12_44_19-Window-768x117.png 768w" sizes="auto, (max-width: 1038px) 100vw, 1038px" /></p>
<p>Tenslotte willen we voorkomen dat voor een klas de vrije uren allemaal naar de overloop resource gaan. Dat doen we door een waardespreiding. Die gaat voor elke overloop resource tellen hoeveel uren er over gans de week (w1) geplaatst zijn. Die telling mag niet meer dan 2 opleveren. Niet meer dan 2 zal door de andere beperkingen in het systeem resulteren in exact 2.</p>
<p><img loading="lazy" decoding="async" class="alignnone wp-image-7044 size-full" src="https://time-tech.be/wp-content/uploads/2020/03/2020-03-03-12_48_43-Window.png" alt="" width="890" height="92" srcset="https://time-tech.be/wp-content/uploads/2020/03/2020-03-03-12_48_43-Window.png 890w, https://time-tech.be/wp-content/uploads/2020/03/2020-03-03-12_48_43-Window-300x31.png 300w, https://time-tech.be/wp-content/uploads/2020/03/2020-03-03-12_48_43-Window-768x79.png 768w" sizes="auto, (max-width: 890px) 100vw, 890px" /></p>
<p><strong><em>Kan dit ook via variatypes in plaats van met een dummy overloopklas?</em></strong></p>
<p>Enkel de dummy overloopklas vervangen door een variatype is niet mogelijk. De reden is dat we in een opdracht niet toelaten dat er gekozen wordt tussen een klas en een variatype. In de kolom &#8220;Klassen&#8221; kan men enkel klassen en groepen van klassen opnemen. Het is niet mogelijk om een groepje te maken van een klas en een variatype.</p>
<p>Wat wel zou kunnen is dat men 2 variatypes gaat gebruiken in de opdrachten voor de vrije uren. Voor elke klas maakt men dan 2 variatypes aan (bijvoorbeeld &#8220;V_&lt;klas&gt;&#8221; en &#8220;V_&lt;klas&gt;_overloop&#8221;) die de 2 blokjes van 1 uur en het blokje van 2 uur onderling verdelen. Dat is uiteraard niet voldoende omdat er dan geen koppeling meer is met die klas. Om de koppeling te maken zet men dan in elke lesopdracht van de klas het extra variatype &#8220;V_&lt;klas&gt;&#8221;.</p>
<p><em><strong>Kan dit ook zonder een overloop resource?</strong></em></p>
<p>Inderdaad, er is ook een oplossing mogelijk zonder deze overloop resources. Als men gebruik maakt van volgordespreidingen in plaats van waardespreidingen kan men het zonder deze constructie doen. Een dergelijke oplossing wordt besproken in Voorbeeld 2.</p>
<h3>Vergelijking tussen beide oplossingen voor Voorbeeld 1</h3>
<p>De oplossing met de spreidingen is moeilijker te begrijpen en op te stellen. Van zodra er variaties zijn in de hoeveelheid vrije uren en de structuur van de week moeten de spreidingen en bijhorende uurlijsten weer systematisch opgebouwd worden.</p>
<p>De oplossing met de expliciete blokjes is eenvoudiger van opzet en ook gemakkelijker aan te passen indien er variaties zijn.</p>
<p>Qua rekentijd is gebleken dat de oplossing met enkel spreidingen meestal te verkiezen valt boven de oplossing met de te plaatsen vrije uren. De keuze is aan de gebruiker. Uiteraard zijn er ook nog andere oplossingen te bedenken en dat is juist de kracht van Mondriaan. Via een aantal krachtige basisconcepten kan men erg veel constructies bedenken die tot een oplossing leiden. Het is goed om hier de nodige experimenten mee te doen.</p>
<h3>Extra bonus in voorbeeldbestand &#8211; Inhaalmomenten op het einde van de dag</h3>
<p>In de voorbeeldbestanden voor beide oplossingen werd ook nog een interessante constructie gebruikt voor het plannen van inhaalmomenten. Een inhaalmoment is een uurtje les op het einde van de dag. De klastitularis kan beslissen welk vak op dat moment gegeven wordt en aan welke leerlingen. Omdat niet alle leerlingen alle inhaalmomenten moeten volgen worden de inhaalmomenten aan het einde van de dag gepland. De leerlingen die er dan niet hoeven te zijn kunnen dat naar huis. In volgend voorbeeld zien we voor klas 3BM-1 dat het inhaalmoment op do8 valt en voor 3BM-2 op do7 (oranje ingekleurd). Het getoonde voorbeeld komt uit het bestand waar de vrije uren met opdrachten wordt opgelost.</p>
<h2><img loading="lazy" decoding="async" class="alignnone wp-image-7052 size-full" src="https://time-tech.be/wp-content/uploads/2020/03/2020-03-03-15_00_29-time-tech-mondriaan-versie-2020.2.0.1_-U33-randuren-randblokjes-plaatsen-v2..png" alt="" width="764" height="504" srcset="https://time-tech.be/wp-content/uploads/2020/03/2020-03-03-15_00_29-time-tech-mondriaan-versie-2020.2.0.1_-U33-randuren-randblokjes-plaatsen-v2..png 764w, https://time-tech.be/wp-content/uploads/2020/03/2020-03-03-15_00_29-time-tech-mondriaan-versie-2020.2.0.1_-U33-randuren-randblokjes-plaatsen-v2.-300x198.png 300w" sizes="auto, (max-width: 764px) 100vw, 764px" /></h2>
<p>Inhaalmomenten (vak INMO) zijn opdrachten die 1 uurtje plannen op het 7de of 8ste uur van de dag. Wat we willen afdwingen is dat de inhaalmomenten nooit voor een les vallen. Als er een inhaalmoment is, dan moet het op het einde van de dag komen. Het enige wat potentieel mag volgen op een inhaalmoment is een vrij uurtje (vak RAND).</p>
<p>In volgend overzicht ziet men de opdrachten  voor de klas 3BM-1. Het inhaalmoment (vak INMO) is een blokje van 1 uur dat op het 7de of 8ste uur kan liggen. We hebben nu ook een custom kolom ingevoerd (O_TYPE) van het type &#8220;lijst&#8221; met de waarden (LES, INHAAL, VRIJ). We hebben de opdrachten opgedeeld in deze kolom volgens hun type (voor alle klassen waarvoor dit nodig is). We gaan dit nodig hebben voor de spreidingen die moeten afdwingen dat INMO het laatste vak van de dag wordt.</p>
<p><img loading="lazy" decoding="async" class="alignnone wp-image-7053 size-full" src="https://time-tech.be/wp-content/uploads/2020/03/2020-03-03-15_08_37-time-tech-mondriaan-versie-2020.2.0.1_-U33-randuren-randblokjes-plaatsen-v2..png" alt="" width="1024" height="512" srcset="https://time-tech.be/wp-content/uploads/2020/03/2020-03-03-15_08_37-time-tech-mondriaan-versie-2020.2.0.1_-U33-randuren-randblokjes-plaatsen-v2..png 1024w, https://time-tech.be/wp-content/uploads/2020/03/2020-03-03-15_08_37-time-tech-mondriaan-versie-2020.2.0.1_-U33-randuren-randblokjes-plaatsen-v2.-300x150.png 300w, https://time-tech.be/wp-content/uploads/2020/03/2020-03-03-15_08_37-time-tech-mondriaan-versie-2020.2.0.1_-U33-randuren-randblokjes-plaatsen-v2.-768x384.png 768w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></p>
<p>Hoe kunnen we nu afdwingen dat INMO voor een klas het laatste vak van de dag is? Door de uurlijst die we met INMO meegeven (ZevendeAchtste) weten we al zeker dat het uur op het 7de of 8ste uur van de dag valt. Dat is al goed maar nog niet voldoende. Op het 7de en 8ste uur kan ook nog gewoon les vallen en er kunnen ook vrije uren vallen. Om dit op te lossen moeten we een spreidingen definiëren. Bekijken we <strong>maandag:</strong></p>
<ul>
<li>Als INHAAL en LES voorkomt in het tijdsinterval [ma7, ma8] voor 3BM-1 dan moet INHAAL steeds na LES volgen.</li>
</ul>
<p>Dit moeten we kunnen zeggen voor maandag, dinsdag, donderdag en vrijdag. We hebben hiervoor een aantal uurlijsten nodig.</p>
<p><img loading="lazy" decoding="async" class="alignnone wp-image-7060 size-full" src="https://time-tech.be/wp-content/uploads/2020/03/2020-03-03-15_34_22-time-tech-mondriaan-versie-2020.2.0.1_-U33-randuren-randblokjes-plaatsen-v2..png" alt="" width="676" height="301" srcset="https://time-tech.be/wp-content/uploads/2020/03/2020-03-03-15_34_22-time-tech-mondriaan-versie-2020.2.0.1_-U33-randuren-randblokjes-plaatsen-v2..png 676w, https://time-tech.be/wp-content/uploads/2020/03/2020-03-03-15_34_22-time-tech-mondriaan-versie-2020.2.0.1_-U33-randuren-randblokjes-plaatsen-v2.-300x134.png 300w" sizes="auto, (max-width: 676px) 100vw, 676px" /></p>
<p>De uurlijst &#8220;Rand&#8221; bevat 4 sub-uurlijstjes van telkens 2 uur. Ze stellen de intervallen voor waarbinnen we de volgordespreidingen gaan laten gelden. Bijvoorbeeld ma7-ma8 is het sub-uurlijstje dat het interval [ma7, ma8] definieert.</p>
<p>Als we dan volgende volgordespreiding definiëren voor 3BM-1 dan zal INMO steeds na LES komen, op eender welk van de 4 dagen.</p>
<p><img loading="lazy" decoding="async" class="alignnone wp-image-7055 size-full" src="https://time-tech.be/wp-content/uploads/2020/03/2020-03-03-15_10_00-time-tech-mondriaan-versie-2020.2.0.1_-U33-randuren-randblokjes-plaatsen-v2..png" alt="" width="864" height="154" srcset="https://time-tech.be/wp-content/uploads/2020/03/2020-03-03-15_10_00-time-tech-mondriaan-versie-2020.2.0.1_-U33-randuren-randblokjes-plaatsen-v2..png 864w, https://time-tech.be/wp-content/uploads/2020/03/2020-03-03-15_10_00-time-tech-mondriaan-versie-2020.2.0.1_-U33-randuren-randblokjes-plaatsen-v2.-300x53.png 300w, https://time-tech.be/wp-content/uploads/2020/03/2020-03-03-15_10_00-time-tech-mondriaan-versie-2020.2.0.1_-U33-randuren-randblokjes-plaatsen-v2.-768x137.png 768w" sizes="auto, (max-width: 864px) 100vw, 864px" /></p>
<p>Bekijken we de eerste spreiding (voor 3BM-1) dan zitten daar volgende elementen in:</p>
<ul>
<li>Selectie 1: definieert een eerste set opdrachten: alle opdrachten waar én 3BM-1 inzetten én waarvoor de custom-kolom O_TYPE de waarde INHAAL heeft. Merk op  dat het <strong>én</strong> is (&#8220;En Selectie 1&#8221; aangevinkt)</li>
<li>Selectie 2: definieert een tweede set opdrachten: alle opdrachten waar én 3BM-1 inzetten én waarvoor de custom-kolom O_TYPE de waarde LES heeft. Merk op  dat het <strong>én</strong> is (&#8220;En Selectie 2&#8221; aangevinkt)</li>
<li>Type: &#8220;Na&#8221;. Dit betekent dat alle opdrachten uit Selectie 1 NA de opdrachten uit Selectie 2 moeten komen.</li>
<li>Uurlijsten: &#8220;Rand&#8221; is een OF-uurlijst van 5 uurlijsten die elk op hun beurt een interval definiëren. Dus, de volgordespreiding geldt nu in elk van die 5 intervallen.</li>
</ul>
<p>Merk op dat we de opdrachten waarvoor O_TYPE = VRIJ niet meenemen in deze volgordespreiding. Moesten we die vrije uren bijvoorbeeld als LES behandelen dan konden we nooit een inhaalmoment en een vrij uur op dezelfde dag hebben. Vandaar dat we de opdeling gemaakt hebben via een custom-kolom. Merk op dat we in het oplossing met enkel spreidingen dit probleem van de vrije uren in combinatie met inhaalmomenten niet hebben omdat ze daar niet expliciet als opdrachten bestaan. Daar hoeven de volgordespreidingen voor de inhaalmomenten geen rekening te houden met de vrije uren.</p>
<h2>Voorbeeld 2 &#8211; Klassen met 33 uur les op een rooster van 41 uur</h2>
<p>In dit voorbeeld hebben we klassen die 33 uur les hebben op een rooster van 41 uur. Het gaat om klassen met een variabele middagpauze. Vanwege bepaalde beperkingen in de school is het niet mogelijk om iedereen op hetzelfde moment in middagpauze te laten gaan. In dat geval is het nodig om de middag mee in het rooster op te nemen. De middagpauze gaat door op het 5de of 6de uur. Blijkbaar is een variabele middag nog niet voldoende om alle lessen gepland te krijgen en heeft de school beslist om per klas 4 uur extra te voorzien waarop geen les gegeven wordt. Er ontstaan in elke klas 4 vrije uren. De vrije uren mogen niet overal liggen. De regels die de school oplegt zijn de volgende:</p>
<ul>
<li>De vrije uren mogen op eerste 2 uur van elke dag liggen (<strong>ma1, ma2, di1, di2, wo1, wo2, do1, do2, vr1, vr2</strong>).</li>
<li>De vrije uren mogen op de laatste 2 uur van elke dag liggen (<strong>ma8, ma9, di8, di9, wo4, wo5, do8, do9, vr8, vr9</strong>).</li>
<li>Er mag geen vrij uur na een lesuur liggen op dezelfde dag.</li>
</ul>
<p>In volgend voorbeeld zien we 2 klassen met telkens 4 vrije uren die aan deze regels voldoen. Zie ook de lege plaatsen die de middagpauze voorstellen.</p>
<p><img loading="lazy" decoding="async" class="alignnone wp-image-7066 size-full" src="https://time-tech.be/wp-content/uploads/2020/03/2020-03-03-17_22_30-time-tech-mondriaan-versie-2020.2.0.1_-Randuren-boven-en-onder.ttxml_.png" alt="" width="903" height="756" srcset="https://time-tech.be/wp-content/uploads/2020/03/2020-03-03-17_22_30-time-tech-mondriaan-versie-2020.2.0.1_-Randuren-boven-en-onder.ttxml_.png 903w, https://time-tech.be/wp-content/uploads/2020/03/2020-03-03-17_22_30-time-tech-mondriaan-versie-2020.2.0.1_-Randuren-boven-en-onder.ttxml_-300x251.png 300w, https://time-tech.be/wp-content/uploads/2020/03/2020-03-03-17_22_30-time-tech-mondriaan-versie-2020.2.0.1_-Randuren-boven-en-onder.ttxml_-768x643.png 768w" sizes="auto, (max-width: 903px) 100vw, 903px" /></p>
<p>Het plannen van een variabele middagpauze is niet echt het onderwerp van deze pagina maar laat ons dat eerst even bekijken voor we aan de vrije uren beginnen. Het probleem speelt zich af op het 5de en 6de uur van maandag, dinsdag, donderdag en vrijdag. Voor alle klassen moet gelden dat ze op elk van die dagen ofwel het 5de ofwel het 6de uur geen les hebben. Het is niet de bedoeling om daar de vrije uren te leggen, we gaan die momenten gewoon leeg roosteren. Dit kan eenvoudig door een waardespreiding. Als we bijvoorbeeld op de uren (ma5, ma6) tellen hoe vaak de klas 5ECWa daar gepland is dan mag dat maximum 1 uur zijn.</p>
<p>We hebben hiervoor volgende uurlijsten nodig.</p>
<p><img loading="lazy" decoding="async" class="alignnone wp-image-7074 size-full" src="https://time-tech.be/wp-content/uploads/2020/03/2020-03-03-18_50_20-time-tech-mondriaan-versie-2020.2.0.1_-U33-op-41-Randuren-boven-en-onder-B.png" alt="" width="789" height="176" srcset="https://time-tech.be/wp-content/uploads/2020/03/2020-03-03-18_50_20-time-tech-mondriaan-versie-2020.2.0.1_-U33-op-41-Randuren-boven-en-onder-B.png 789w, https://time-tech.be/wp-content/uploads/2020/03/2020-03-03-18_50_20-time-tech-mondriaan-versie-2020.2.0.1_-U33-op-41-Randuren-boven-en-onder-B-300x67.png 300w, https://time-tech.be/wp-content/uploads/2020/03/2020-03-03-18_50_20-time-tech-mondriaan-versie-2020.2.0.1_-U33-op-41-Randuren-boven-en-onder-B-768x171.png 768w" sizes="auto, (max-width: 789px) 100vw, 789px" /></p>
<p>Voor elke middag een uurlijstje van 2 uur en de OF-uurlijst VRIJ_MIDDAG_LKR zet deze samen om er handig gebruik van te kunnen maken in de waardespreidingen. Deze uurlijsten bevatten LKR in hun naam omdat ze oorspronkelijk bedoeld waren om enkel leerkrachten een middagpauze te kunnen geven maar ze kunnen evengoed voor de klassen gebruikt worden.</p>
<p>Ook is het handig om een groep van klassen te hebben zodat we de spreiding kort en bondig kunnen noteren. GR3 is een EN-groep van alle klassen waarvoor we de middagpauze moeten regelen. De spreidingsregel wordt dan:</p>
<p><img loading="lazy" decoding="async" class="alignnone wp-image-7075 size-full" src="https://time-tech.be/wp-content/uploads/2020/03/2020-03-03-18_57_23-time-tech-mondriaan-versie-2020.2.0.1_-U33-op-41-Randuren-boven-en-onder-B.png" alt="" width="990" height="92" srcset="https://time-tech.be/wp-content/uploads/2020/03/2020-03-03-18_57_23-time-tech-mondriaan-versie-2020.2.0.1_-U33-op-41-Randuren-boven-en-onder-B.png 990w, https://time-tech.be/wp-content/uploads/2020/03/2020-03-03-18_57_23-time-tech-mondriaan-versie-2020.2.0.1_-U33-op-41-Randuren-boven-en-onder-B-300x28.png 300w, https://time-tech.be/wp-content/uploads/2020/03/2020-03-03-18_57_23-time-tech-mondriaan-versie-2020.2.0.1_-U33-op-41-Randuren-boven-en-onder-B-768x71.png 768w" sizes="auto, (max-width: 990px) 100vw, 990px" /></p>
<p>Voor elke klas in GR3 en voor elk koppel van 5de en 6de uren eisen we dat er maximaal 1 uur gepland is. Dat lost het probleem van de variabele middagpauze op voor de klassen. Voor de leerkrachten wordt het trouwens op gelijkaardige wijze geregeld op volgende manier:</p>
<p><img loading="lazy" decoding="async" class="alignnone wp-image-7078 size-full" src="https://time-tech.be/wp-content/uploads/2020/03/2020-03-03-18_59_42-time-tech-mondriaan-versie-2020.2.0.1_-U33-op-41-Randuren-boven-en-onder-B.png" alt="" width="990" height="92" srcset="https://time-tech.be/wp-content/uploads/2020/03/2020-03-03-18_59_42-time-tech-mondriaan-versie-2020.2.0.1_-U33-op-41-Randuren-boven-en-onder-B.png 990w, https://time-tech.be/wp-content/uploads/2020/03/2020-03-03-18_59_42-time-tech-mondriaan-versie-2020.2.0.1_-U33-op-41-Randuren-boven-en-onder-B-300x28.png 300w, https://time-tech.be/wp-content/uploads/2020/03/2020-03-03-18_59_42-time-tech-mondriaan-versie-2020.2.0.1_-U33-op-41-Randuren-boven-en-onder-B-768x71.png 768w" sizes="auto, (max-width: 990px) 100vw, 990px" /></p>
<p>Merk op dat we voor leerkrachten als extra selectiecriterium LES gebruiken. Dit verzekert dat we geen wensopdrachten of eventueel optimalisatieopdrachten meenemen in de spreiding en dus enkel lesopdrachten. LES is criterium dat de gebruiker zelf niet kan manipuleren. Elke opdracht in het opdrachten tabblad is LES. Het gaat in dit geval dus niet om een custom kolom maar om een systeemlabel.</p>
<h3>Oplossing met losse blokjes en volgordespreidingen</h3>
<p>Nu de middagpauze geregeld is kunnen we de 4 vrije uren gaan plannen als randuren. In Voorbeeld 1 hadden we al een voorbeeldoplossing gezien met enkel waardespreidingen en ook een met het expliciet plaatsen van blokjes in combinatie met een overloop resource en waardespreidingen. Hier gaan we het op weer een andere manier aanpakken. We gaan de 4 blokjes allemaal als aparte uren plannen en via een volgordespreiding ervoor zorgen dat ze naar de randen gedreven worden.</p>
<p>Eerst beslissen we waar de randblokjes mogen liggen. Wat we weten moeten we niet overlaten aan Mondriaan. Als we weten dat het niet anders kan dan dat de randblokjes op de randen moeten liggen dan kunnen we dat ook best vastleggen. Ook indien andere beperkingen er automatisch voor zouden zorgen dat ze naar de randen gedreven worden is het toch nuttig om het expliciet te maken. Voor alle klassen moeten de randblokjes op volgende randen liggen:</p>
<p><img loading="lazy" decoding="async" class="alignnone wp-image-7081 size-full" src="https://time-tech.be/wp-content/uploads/2020/03/2020-03-04-12_02_16-time-tech-mondriaan-versie-2020.2.0.1_-U33-op-41-Randuren-boven-en-onder-B.png" alt="" width="441" height="506" srcset="https://time-tech.be/wp-content/uploads/2020/03/2020-03-04-12_02_16-time-tech-mondriaan-versie-2020.2.0.1_-U33-op-41-Randuren-boven-en-onder-B.png 441w, https://time-tech.be/wp-content/uploads/2020/03/2020-03-04-12_02_16-time-tech-mondriaan-versie-2020.2.0.1_-U33-op-41-Randuren-boven-en-onder-B-261x300.png 261w" sizes="auto, (max-width: 441px) 100vw, 441px" /></p>
<p>De uurlijst RAND definieert deze uren. Alle opdrachten die vrije uren plaatsen zullen met deze uurlijst werken.</p>
<p><img loading="lazy" decoding="async" class="alignnone wp-image-7082 size-full" src="https://time-tech.be/wp-content/uploads/2020/03/2020-03-04-12_03_05-time-tech-mondriaan-versie-2020.2.0.1_-U33-op-41-Randuren-boven-en-onder-B.png" alt="" width="676" height="92" srcset="https://time-tech.be/wp-content/uploads/2020/03/2020-03-04-12_03_05-time-tech-mondriaan-versie-2020.2.0.1_-U33-op-41-Randuren-boven-en-onder-B.png 676w, https://time-tech.be/wp-content/uploads/2020/03/2020-03-04-12_03_05-time-tech-mondriaan-versie-2020.2.0.1_-U33-op-41-Randuren-boven-en-onder-B-300x41.png 300w" sizes="auto, (max-width: 676px) 100vw, 676px" /></p>
<p>Bekijken we de opdrachten voor klas 5ECWa. De vrije uren worden hier gewoon als 1 opdracht van 4 uur opgevoerd. Het vak is &#8220;vrij&#8221; en de uurlijst is &#8220;RAND&#8221;. Merk op dat we in het tabblad een custom kolom (vlagje) &#8220;LES&#8221; hebben toegevoegd. Voor de opdrachten die echt les zijn is dit aangevinkt. Voor de vrije uren is het uitgevinkt. Verwar in dit voorbeeld de custom kolom &#8220;LES&#8221; niet met de systeemlabel LES die Mondriaan standaard aan alle opdrachten uit het tabblad &#8220;Opdrachten&#8221; toekent.</p>
<p><img loading="lazy" decoding="async" class="alignnone wp-image-7083 size-full" src="https://time-tech.be/wp-content/uploads/2020/03/2020-03-04-12_09_27-time-tech-mondriaan-versie-2020.2.0.1_-U33-op-41-Randuren-boven-en-onder-B.png" alt="" width="877" height="385" srcset="https://time-tech.be/wp-content/uploads/2020/03/2020-03-04-12_09_27-time-tech-mondriaan-versie-2020.2.0.1_-U33-op-41-Randuren-boven-en-onder-B.png 877w, https://time-tech.be/wp-content/uploads/2020/03/2020-03-04-12_09_27-time-tech-mondriaan-versie-2020.2.0.1_-U33-op-41-Randuren-boven-en-onder-B-300x132.png 300w, https://time-tech.be/wp-content/uploads/2020/03/2020-03-04-12_09_27-time-tech-mondriaan-versie-2020.2.0.1_-U33-op-41-Randuren-boven-en-onder-B-768x337.png 768w" sizes="auto, (max-width: 877px) 100vw, 877px" /></p>
<p>Zetten we het filter op &#8220;vrij&#8221; dan zien we alle opdrachten om vrije uren te plannen voor alle klassen die dat nodig hebben.</p>
<p><img loading="lazy" decoding="async" class="alignnone wp-image-7084 size-full" src="https://time-tech.be/wp-content/uploads/2020/03/2020-03-04-12_10_22-time-tech-mondriaan-versie-2020.2.0.1_-U33-op-41-Randuren-boven-en-onder-B.png" alt="" width="877" height="533" srcset="https://time-tech.be/wp-content/uploads/2020/03/2020-03-04-12_10_22-time-tech-mondriaan-versie-2020.2.0.1_-U33-op-41-Randuren-boven-en-onder-B.png 877w, https://time-tech.be/wp-content/uploads/2020/03/2020-03-04-12_10_22-time-tech-mondriaan-versie-2020.2.0.1_-U33-op-41-Randuren-boven-en-onder-B-300x182.png 300w, https://time-tech.be/wp-content/uploads/2020/03/2020-03-04-12_10_22-time-tech-mondriaan-versie-2020.2.0.1_-U33-op-41-Randuren-boven-en-onder-B-768x467.png 768w" sizes="auto, (max-width: 877px) 100vw, 877px" /></p>
<p>Als we het rooster nu zouden plannen, zonder verder beperkingen op de vrije uren dan komen er bijvoorbeeld volgende roosters uit:</p>
<h2><img loading="lazy" decoding="async" class="alignnone wp-image-7085 size-full" src="https://time-tech.be/wp-content/uploads/2020/03/2020-03-04-12_18_24-time-tech-mondriaan-versie-2020.2.0.1_-U33-op-41-Randuren-boven-en-onder-B.png" alt="" width="905" height="756" srcset="https://time-tech.be/wp-content/uploads/2020/03/2020-03-04-12_18_24-time-tech-mondriaan-versie-2020.2.0.1_-U33-op-41-Randuren-boven-en-onder-B.png 905w, https://time-tech.be/wp-content/uploads/2020/03/2020-03-04-12_18_24-time-tech-mondriaan-versie-2020.2.0.1_-U33-op-41-Randuren-boven-en-onder-B-300x251.png 300w, https://time-tech.be/wp-content/uploads/2020/03/2020-03-04-12_18_24-time-tech-mondriaan-versie-2020.2.0.1_-U33-op-41-Randuren-boven-en-onder-B-768x642.png 768w" sizes="auto, (max-width: 905px) 100vw, 905px" /></h2>
<p>Er ontstaan nu springuren (rood omkaderde vrije uren) die we niet wensen. We hebben extra beperkingen nodig om dit te vermijden. Een perfecte manier om dat te doen is via volgordespreidingen.</p>
<p>Een volgordespreiding werk steeds binnen een tijdsinterval dat via een uurlijst aan de spreiding gekoppeld wordt. De uurlijst bevat steeds het begin- en eindpunt van het tijdsinterval waarbinnen de controle moet gebeuren. Omdat we de vrije uren enkel toelaten op de randen (via uurlijst RAND) kunnen we de intervallen waarbinnen we de controle moeten doen ook beperken tot die randzone.</p>
<p>Bekijken we bijvoorbeeld de ochtendrand van vrijdag voor de klas 5ECWa [vr1,vr2]. Als we in dit interval via een volgordespreiding kunnen zeggen dat opdrachten met het vak &#8220;vrij&#8221; steeds vóór opdrachten met &#8220;LES&#8221; aangevinkt moeten liggen dan is het opgelost. Bekijken we de vrijdagavondrand voor 6HWE [vr8,vr9]. Als we hier met een volgordespreiding kunnen zeggen dat opdrachten met het val &#8220;vrij&#8221; ná opdrachten met &#8220;LES&#8221; aangevinkt moeten liggen dan is het ook daar opgelost.</p>
<p>Passen we dit systeem toe voor elke klas en rand dan is het opgelost. Eerst maken we een inventaris van de randen:</p>
<ul>
<li>BOVENRAND: &#8220;vrij&#8221; vóór &#8220;LES&#8221;: [ma1,ma2], [di1,di2], [wo1,wo2], [do1,do2], [vr1,vr2]</li>
<li>ONDERRAND: &#8220;vrij&#8221; ná &#8220;LES&#8221;: [ma8,ma9], [di8,di9], [wo4,wo5], [do8,do9], [vr8,vr9]</li>
</ul>
<p>Voor deze randintervallen maken we de nodige uurlijsten aan:</p>
<p><img loading="lazy" decoding="async" class="alignnone wp-image-7087 size-full" src="https://time-tech.be/wp-content/uploads/2020/03/2020-03-04-13_01_48-time-tech-mondriaan-versie-2020.2.0.1_-U33-op-41-Randuren-boven-en-onder-B.png" alt="" width="676" height="323" srcset="https://time-tech.be/wp-content/uploads/2020/03/2020-03-04-13_01_48-time-tech-mondriaan-versie-2020.2.0.1_-U33-op-41-Randuren-boven-en-onder-B.png 676w, https://time-tech.be/wp-content/uploads/2020/03/2020-03-04-13_01_48-time-tech-mondriaan-versie-2020.2.0.1_-U33-op-41-Randuren-boven-en-onder-B-300x143.png 300w" sizes="auto, (max-width: 676px) 100vw, 676px" /></p>
<p>BOVENRAND groepeert de intervallen waar &#8220;vrij&#8221; vóór &#8220;LES&#8221; valt en ONDERRAND waar het &#8220;vrij&#8221; ná &#8220;LES&#8221; valt.</p>
<p>Per klas gaan we dan 2 volgordespreidingen moeten aanmaken. Bijvoorbeeld voor 5ECWa:</p>
<h2><img loading="lazy" decoding="async" class="alignnone wp-image-7088 size-full" src="https://time-tech.be/wp-content/uploads/2020/03/2020-03-04-13_06_20-time-tech-mondriaan-versie-2020.2.0.1_-U33-op-41-Randuren-boven-en-onder-B.png" alt="" width="865" height="239" srcset="https://time-tech.be/wp-content/uploads/2020/03/2020-03-04-13_06_20-time-tech-mondriaan-versie-2020.2.0.1_-U33-op-41-Randuren-boven-en-onder-B.png 865w, https://time-tech.be/wp-content/uploads/2020/03/2020-03-04-13_06_20-time-tech-mondriaan-versie-2020.2.0.1_-U33-op-41-Randuren-boven-en-onder-B-300x83.png 300w, https://time-tech.be/wp-content/uploads/2020/03/2020-03-04-13_06_20-time-tech-mondriaan-versie-2020.2.0.1_-U33-op-41-Randuren-boven-en-onder-B-768x212.png 768w" sizes="auto, (max-width: 865px) 100vw, 865px" /></h2>
<p>Volgordespreiding op de ONDERRAND:</p>
<ul>
<li>Controle wordt gedaan voor elk interval opgesomd in ONDERRAND (OF-uurlijst van koppels uren)</li>
<li>Selectie 1: een EN-selectie die de criteria &#8220;5ECWa&#8221; en &#8220;vrij&#8221; combineert om alle opdrachten te nemen die vrije uren voor 5ECWa plaatsen.</li>
<li>Selectie 2: een EN-selectie die de criteria &#8220;5ECWa&#8221; en custom kolom &#8220;LES&#8221; (vlagje aangevinkt) combineert om alle lesopdrachten voor 5ECWa te nemen.</li>
<li>Type: &#8220;Na&#8221;. Dit wil zeggen dat de opdrachten uit Selectie 1 steeds ná die van Selectie 2 moeten komen binnen elk interval dat vervat zit in ONDERRAND.</li>
</ul>
<p>Zelfde redenering voor BOVENRAND.</p>
<p>Merk op dat we dergelijke spreidingen per klas moeten neerschrijven. Momenteel bestaat er in Mondriaan geen kortere schijfwijze om dit te doen.</p>
<p>Dit lost dan het probleem op en zullen de vrije uren precies geplaatst worden zoals gevraagd.</p>
<p>Merk op dat het kan voorkomen dat alle randuren op woensdag vallen en dat er op woensdag dan maar 1 uur les gegeven zou worden. Wil men dit vermijden dan zou men nog een eenvoudige waardespreiding kunnen toevoegen die stelt dat elke klas op woensdag maximaal 2 vrije uren mag hebben.</p>
<p>Voorbeeld van een oplossing:</p>
<h3><img loading="lazy" decoding="async" class="alignnone wp-image-8248 size-full" src="https://time-tech.be/wp-content/uploads/2020/03/2020-09-11-11_29_00-Window.png" alt="" width="923" height="756" srcset="https://time-tech.be/wp-content/uploads/2020/03/2020-09-11-11_29_00-Window.png 923w, https://time-tech.be/wp-content/uploads/2020/03/2020-09-11-11_29_00-Window-300x246.png 300w, https://time-tech.be/wp-content/uploads/2020/03/2020-09-11-11_29_00-Window-768x629.png 768w" sizes="auto, (max-width: 923px) 100vw, 923px" /></h3>
<h3>Alternatief: Boven of onder maar niet beide</h3>
<p>Indien men niet graag heeft dat klassen op dezelfde dag later beginnen en vroeger stoppen dan is daar ook een oplossing voor. Een klas mag ofwel later beginnen, ofwel vroeger stoppen. We laten alles hetzelfde als in de vorige oplossing maar de volgordespreidingen schrijven we nu als volgt:</p>
<p><img loading="lazy" decoding="async" class="alignnone wp-image-8243 size-full" src="https://time-tech.be/wp-content/uploads/2020/03/2020-09-11-11_17_16-Window.png" alt="" width="698" height="197" srcset="https://time-tech.be/wp-content/uploads/2020/03/2020-09-11-11_17_16-Window.png 698w, https://time-tech.be/wp-content/uploads/2020/03/2020-09-11-11_17_16-Window-300x85.png 300w" sizes="auto, (max-width: 698px) 100vw, 698px" /></p>
<p>Waarbij ELKE_DAG een OF-uurlijst is van de 5 weekdagen.</p>
<p><img loading="lazy" decoding="async" class="alignnone wp-image-8244 size-full" src="https://time-tech.be/wp-content/uploads/2020/03/2020-09-11-11_18_46-Window.png" alt="" width="922" height="113" srcset="https://time-tech.be/wp-content/uploads/2020/03/2020-09-11-11_18_46-Window.png 922w, https://time-tech.be/wp-content/uploads/2020/03/2020-09-11-11_18_46-Window-300x37.png 300w, https://time-tech.be/wp-content/uploads/2020/03/2020-09-11-11_18_46-Window-768x94.png 768w" sizes="auto, (max-width: 922px) 100vw, 922px" /></p>
<p>Volgordespreiding op ELKE_DAG:</p>
<ul>
<li>Controle wordt gedaan voor elk dag opgesomd in ELKE_DAG (OF-uurlijst van koppels uren)</li>
<li>Selectie 1: een EN-selectie die de criteria &#8220;5ECWa&#8221; en &#8220;vrij&#8221; combineert om alle opdrachten te nemen die vrije uren voor 5ECWa plaatsen.</li>
<li>Selectie 2: een EN-selectie die de criteria &#8220;5ECWa&#8221; en custom kolom &#8220;LES&#8221; (vlagje aangevinkt) combineert om alle lesopdrachten voor 5ECWa te nemen.</li>
<li>Type: &#8220;<strong>Geen overlap</strong>&#8220;. Dit wil zeggen dat alle opdrachten uit Selectie 1 ofwel voor ofwel ná die van Selectie 2 moeten komen op elke dag. Resultaat is dat de de vrije uren ofwel allemaal onderaan, ofwel allemaal bovenaan op een dag liggen.</li>
</ul>
<p>Voorbeeld van een oplossing:</p>
<h2><img loading="lazy" decoding="async" class="alignnone wp-image-8245 size-full" src="https://time-tech.be/wp-content/uploads/2020/03/2020-09-11-11_21_16-Window.png" alt="" width="909" height="756" srcset="https://time-tech.be/wp-content/uploads/2020/03/2020-09-11-11_21_16-Window.png 909w, https://time-tech.be/wp-content/uploads/2020/03/2020-09-11-11_21_16-Window-300x250.png 300w, https://time-tech.be/wp-content/uploads/2020/03/2020-09-11-11_21_16-Window-768x639.png 768w" sizes="auto, (max-width: 909px) 100vw, 909px" /></h2>
<hr />
<h2>De uitgewerkte voorbeelden</h2>
<p>Om de bestanden te gebruiken download men de zipfile en pakt men het bestand uit. Elke zipfile bevat 1 zttxml-bestand.</p>
<ul>
<li><a href="https://time-tech.be/wp-content/uploads/2020/03/U33-op-35-Randuren-boven-Enkel-waardespreidingen.zip">U33 op 35 &#8211; Randuren boven &#8211; Enkel waardespreidingen</a></li>
<li><a href="https://time-tech.be/wp-content/uploads/2020/03/U33-op-35-Randuren-boven-Enkel-waardespreidingen.zip">U33 op 35 &#8211; Randuren boven &#8211; Blokjes met waardespreiding</a></li>
<li><a href="https://time-tech.be/wp-content/uploads/2020/03/U33-op-41-Randuren-boven-en-onder-Blokjes-met-volgordespreiding.zip">U33 op 41 &#8211; Randuren boven en onder &#8211; Blokjes met volgordespreiding</a></li>
<li><a href="https://time-tech.be/wp-content/uploads/2020/03/U33-op-41-Randuren-boven-of-onder-Blokjes-met-volgordespreiding.zip">U33 op 41 &#8211; Randuren boven of onder &#8211; Blokjes met volgordespreiding</a></li>
</ul>
<p><em>(PS. Deze bestanden zijn te gebruiken vanaf Mondriaan versie 2020.2.0)</em></p>

		</div>
	</div>
</div></div></div></div></div>
</div>]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Flexibele lessen organiseren</title>
		<link>https://time-tech.be/handleiding/flexibele-lessen-organiseren/</link>
		
		<dc:creator><![CDATA[Peter]]></dc:creator>
		<pubDate>Wed, 26 Feb 2020 11:00:50 +0000</pubDate>
				<guid isPermaLink="false">https://time-tech.be/?post_type=manual_kb&#038;p=6913</guid>

					<description><![CDATA[]]></description>
										<content:encoded><![CDATA[<div class="wpb-content-wrapper"><div  class=" pg-custom-vc    vc_row wpb_row section vc_row-fluid " style="text-align:left;  margin-left:0px;margin-right:0px;"     ><div class="container" style="padding: 0px 0px; display: block;    "><div class="wpb_column vc_column_container vc_col-sm-12"><div class="vc_column-inner"><div class="wpb_wrapper">
	<div class="wpb_text_column wpb_content_element" >
		<div class="wpb_wrapper">
			<h1>Flexibele lessen organiseren</h1>
<p>We illustreren dit probleem met een geval uit de praktijk. Op het einde van de pagina kan men de voorbeeldbestanden vinden die gebruikt werden om dit probleem te illustreren.</p>
<h2>Probleemstelling</h2>
<p>In de eerste graad hebben we 3 parallel klassen 1A1, 1A2, 1A3 die elk 32 uur les organiseren per week. De lessen moeten als volgt georganiseerd worden:</p>
<ul>
<li>12 uur: <strong>vaste</strong> vakken die alle leerlingen moeten volgen (AAR, GES, TECHN, LO, PRAKT, GODS, FLX_TIT). Klassen zitten <strong>apart</strong>.</li>
<li>4 uur: te kiezen <strong>optie</strong> uit 3 vakken (STEM, SPORT, LAB). Klassen zitten <strong>apart</strong>.</li>
<li>16 uur: <strong>flexibel</strong> in te plannen algemene vakken (WIS, NAT, NED, FRA, ENG). Klassen zitten <strong>samen</strong>.</li>
</ul>
<p>De 4 uur optie vakken is een klassieke opdeling die in principe op voorhand vastgelegd wordt door elke leerling. Een leerling die bijvoorbeeld de optie STEM kiest zal elke week 4 uur STEM krijgen en nooit SPORT of LAB volgen. Om dergelijke lessen in het rooster te plannen wordt klassiek gebruik gemaakt van een partitie. De klassen 1A1, 1A2, 1A3 worden uitgebreid met bijvoorbeeld een partitie &#8220;1A_Optie&#8221; die dan de partitie-elementen STEM, SPORT, LAB krijgt. Elke leerling kan dan beslissen in welk partitie-element hij valt. De partitie-elementen (=klasdelen) worden onafhankelijk van elkaar gepland.</p>
<p>De 17 uur die flexibel ingepland moeten worden is het voorwerp van deze pagina:</p>
<ul>
<li>In elke klas worden 16 uur in het rooster voorzien waar de flexuren gepland kunnen worden.</li>
<li>Per flexuur willen we een klas kunnen opdelen in 3 groepjes en aan elk groepje kan een andere flexles gegeven worden.</li>
<li>Voor een klas hebben we per week 16 uur * 3 groepjes = 48 flexlessen. Die 48 flexlessen worden als volgt ingevuld:
<ul>
<li>12 flexlessen FLX_WIS</li>
<li>12 flexlessen FLX_NED</li>
<li>12 flexlessen FLX_FRA</li>
<li>9 flexlessen FLX_NAT</li>
<li>3 flexlessen FLX_ENG</li>
</ul>
</li>
<li>In het begin van de week, vóór het moment dat de flexlessen beginnen, moet de titularis van de klas de kans krijgen om de leerlingen, voor die week, in te delen in die 48 flexlessen. De titularis gaat zal die opdeling doen op basis van de noden van elke leerling. De 48 flexlessen liggen dus vast maar wie elk van de 48 flexlessen volgt is iets wat flexibel per week en per leerling door de titularis bepaald wordt. Om die plannen te doen voorzien we één uur FLX_TIT in elke klas waarbij de titularis de planning voor de week maakt.</li>
</ul>
<p>In volgend plaatje zien we een voorbeeldrooster voor de klas 1A1. Op het eerste uur van maandag gaat het vak FLX_TIT door voor alle leerlingen. Tijdens dit uur wordt de planning gemaakt. Op het tweede uur zien we al een voorbeeld van een flexuur waarbinnen 3 flexlessen doorgaan. De klas is duidelijk opgedeeld in 3 groepjes.</p>
<p><img loading="lazy" decoding="async" class="alignnone wp-image-6918 size-full" src="https://time-tech.be/wp-content/uploads/2020/02/2020-02-26-12_41_47-Window.png" alt="" width="973" height="569" srcset="https://time-tech.be/wp-content/uploads/2020/02/2020-02-26-12_41_47-Window.png 973w, https://time-tech.be/wp-content/uploads/2020/02/2020-02-26-12_41_47-Window-300x175.png 300w, https://time-tech.be/wp-content/uploads/2020/02/2020-02-26-12_41_47-Window-768x449.png 768w" sizes="auto, (max-width: 973px) 100vw, 973px" /></p>
<p>Er worden nog eisen gesteld aan dit systeem:</p>
<ul>
<li><strong>Flexuren voor 3 klassen op het zelfde moment</strong>: Omdat we tijdens de flexuren de klassen 1A1, 1A2, 1A3 steeds opdelen in 3 kleinere groepjes is het handig om in de 3 klassen dezelfde flexlessen op dezelfde momenten te organiseren. Dit maakt de organisatie van die lessen veel eenvoudiger. Als de 3 klassen allemaal op het 2de uur van maandag de 3 zelfde flexlessen hebben dan hoeven we per flexles maar 1 leerkracht te voorzien (bijvoorbeeld INGE voor FLX_NED) en dan kunnen de leerlingen van 1A1, 1A2, en 1A3 die FLX_NED moeten volgen samengevoegd worden in een grotere groep.</li>
<li><strong>Flexuren in blokken in de week</strong>: Een leerkracht die flexuren geeft zal naar alle waarschijnlijkheid een aantal van die flexuren op dezelfde dag moeten geven. Het is handig om ze dan samen te houden in blokken. Het kan ook zijn dat op sommige momenten bepaalde flexuren niet moeten doorgaan omdat er geen nood aan is. Beter dat ze dan geblokt zijn. ook voor de klassen is het handiger dat de flexuren geblokt worden. In dit voorbeeld gaan we uit van volgende blokken waarin de flexuren moeten vallen:
<ul>
<li>3 blokken van 4 uur</li>
<li>1 blok van 3 uur</li>
<li>1 blok van 2 uur</li>
</ul>
</li>
<li>Merk op dat we dan 17 uur in blokken hebben. De reden voor het extra uur is dat we ook het planningsuurtje FLX_TIT aansluitend in zo&#8217;n blok wensen te plannen.</li>
</ul>
<p>In dit plaatje zien we 2 van de 3 klassen samen. Wat hier duidelijk te zien is, is dat de flexuren samenvallen en dat de flexuren inderdaad in die blokken gepland werden:</p>
<h2><img loading="lazy" decoding="async" class="alignnone wp-image-6920 size-full" src="https://time-tech.be/wp-content/uploads/2020/02/2020-02-26-12_44_48-Window.png" alt="" width="880" height="504" srcset="https://time-tech.be/wp-content/uploads/2020/02/2020-02-26-12_44_48-Window.png 880w, https://time-tech.be/wp-content/uploads/2020/02/2020-02-26-12_44_48-Window-300x172.png 300w, https://time-tech.be/wp-content/uploads/2020/02/2020-02-26-12_44_48-Window-768x440.png 768w" sizes="auto, (max-width: 880px) 100vw, 880px" /></h2>
<p>Voor de leerkrachten die flexuren moeten geven gaan we ook eisen dat ze niet meer dat 3 uur flexuren per dag geven. In dit plaatje zien we 2 leerkrachten die flexuren geven. AN is hier ook de titularis van 1A1.</p>
<p><img loading="lazy" decoding="async" class="alignnone wp-image-6925 size-full" src="https://time-tech.be/wp-content/uploads/2020/02/2020-02-26-14_00_34-Window.png" alt="" width="880" height="569" srcset="https://time-tech.be/wp-content/uploads/2020/02/2020-02-26-14_00_34-Window.png 880w, https://time-tech.be/wp-content/uploads/2020/02/2020-02-26-14_00_34-Window-300x194.png 300w, https://time-tech.be/wp-content/uploads/2020/02/2020-02-26-14_00_34-Window-768x497.png 768w" sizes="auto, (max-width: 880px) 100vw, 880px" /></p>
<h2>Mogelijke oplossing voor dit probleem</h2>
<p>Er is niet één oplossing voor problemen zoals deze. Mondriaan biedt een waaier aan basisconcepten aan die gecombineerd kunnen worden om dergelijke problemen op te lossen. basisconcepten die we kunnen gebruiken zijn o.a.:</p>
<ul>
<li>Klassen opdelen in partities</li>
<li>Extra resources (varia types) opnemen om opdrachten in een bepaalde richting te duwen of te bundelen</li>
<li>Vensters om opdrachten te bundelen</li>
<li>Waarde- en volgordespreidingen</li>
<li>Zelfde roosterpunt linken om opdrachten samen te zetten</li>
</ul>
<p>Met deze basisconcepten maken we een &#8220;design&#8221; van de oplossing en houden we rekening met volgende zaken:</p>
<ul>
<li>Het berekende resultaat moet aan de functionele eisen voldoen</li>
<li>De rekentijd moet binnen de perken blijven. Dit ziet men al snel aan een schaalmodel als dit. De ene oplossing kan veel sneller berekend worden dan de andere.</li>
<li>De invoer van de data moet handig blijven.</li>
<li>De rapporten moeten bruikbaar blijven.</li>
</ul>
<p>We zullen hier één design volledig uitwerken en gaandeweg een aantal alternatieven bespreken. Voor de grote alternatieven die besproken worden zullen achteraan ook voorbeeldbestanden geleverd worden.</p>
<h3>De vaste en de optie uren</h3>
<p>Voor de klas 1A1 (zelfde patroon voor andere klassen) hebben we in het opdrachten tabblad de 12 vaste uren rood omkaderd en de 4 optie-uren in het geel gezet. De vaste uren zijn klassiek. De vakken worden apart gegeven, geen samenzettingen. Voor de optie-uren (STEM, SPORT, LAB) maken we gebruik van een partitie. De klas 1A1 heeft een partitie 1A_Optie met partitie-elementen STEM, SPORT en LAB. Voor elk partitie-element plannen we een aparte opdracht van 4 uur met hun respectievelijke vakken, leerkrachten en lokalen.</p>
<h3><img loading="lazy" decoding="async" class="alignnone wp-image-6930 size-full" src="https://time-tech.be/wp-content/uploads/2020/02/2020-02-26-14_50_02-Window.png" alt="" width="1042" height="428" srcset="https://time-tech.be/wp-content/uploads/2020/02/2020-02-26-14_50_02-Window.png 1042w, https://time-tech.be/wp-content/uploads/2020/02/2020-02-26-14_50_02-Window-300x123.png 300w, https://time-tech.be/wp-content/uploads/2020/02/2020-02-26-14_50_02-Window-1024x421.png 1024w, https://time-tech.be/wp-content/uploads/2020/02/2020-02-26-14_50_02-Window-768x315.png 768w" sizes="auto, (max-width: 1042px) 100vw, 1042px" /></h3>
<p>Merk op dat partitie-elementen (=klasdelen) van dezelfde partitie en klas perfect op dezelfde plaats in het rooster kunnen staan. De reden hiervoor is dat ze per definitie disjunct zijn (Een leerling kan maar in 1 partitie-element van dezelfde partitie zitten dus een overlap kan er niet zijn. Dit in tegenstelling tot partitie-elementen van verschillende partities van dezelfde klas, die uit voorzorg als niet disjunct behandeld worden en dus nooit op dezelfde plaats kunnen staan). Echter, het is niet per definitie zo dat de partitie-elementen van 1A_Optie op dezelfde plaats staan, ze kunnen perfect op andere uren staan. In het geval van 1A_Optie willen we toch graag dat alle leerlingen tegelijkertijd hun optievakken hebben. We kunnen dit forceren door de 3 opdrachten te verbinden via een ZR-Link. In de kolom ZR-Link zien we ZR000 staan. Deze gaat ervoor zorgen dat de optie-vakken gelijktijdig gepland worden. Van elk van de 3 optie-vakken hebben we 2 blokken van 2 uur. Door de ZR-Link gaan telkens 3 blokken van 2 uur samenvallen. In het rooster van 1A1 zien we dat die per 3 samen staan op woensdag 3 en vrijdag 6. Voor 1A2 liggen ze op dinsdag 6 en donderdag 5.</p>
<p>De partitie 1A_Optie is als volgt gedefinieerd voor elke klas:</p>
<h3><img loading="lazy" decoding="async" class="alignnone wp-image-6931 size-full" src="https://time-tech.be/wp-content/uploads/2020/02/2020-02-26-14_53_10-Window.png" alt="" width="1053" height="435" srcset="https://time-tech.be/wp-content/uploads/2020/02/2020-02-26-14_53_10-Window.png 1053w, https://time-tech.be/wp-content/uploads/2020/02/2020-02-26-14_53_10-Window-300x124.png 300w, https://time-tech.be/wp-content/uploads/2020/02/2020-02-26-14_53_10-Window-1024x423.png 1024w, https://time-tech.be/wp-content/uploads/2020/02/2020-02-26-14_53_10-Window-768x317.png 768w" sizes="auto, (max-width: 1053px) 100vw, 1053px" /></h3>
<p>Andere manieren om die 1A_Optie blokken gelijktijdig te plannen (<em>achtergrondinformatie</em>):</p>
<ul>
<li>Stel dat we een rooster van 32 uur hebben en dat er reeds 28 uur gevuld zijn door andere vakken. Er schiet nog 4 uur over en het enige wat nog gepland moet worden zijn de optie-vakken. In dat geval kunnen die niet anders dan in dat gat van 4 uur vallen. Omdat partitie-elementen van dezelfde partitie elkaar niet in de weg zitten (op voorwaarde dat ze geen resources delen) gaan die 6 blokken van 2 uur zich dus perfect in dat gat van 4 kunnen nestelen. In dit geval is het in theorie niet nodig om een ZR-link te gebruiken. Het is echter handig om het wel te doen. We weten dat ze samen moeten gepland worden. Er is dan ook geen reden om daar onnodig rekenkracht aan te verspillen om uit te vinden dat het niet anders kan dan samen te staan.</li>
<li>In plaats van een ZR-link kan men bijvoorbeeld ook 2 keer 3 parallelle vensters van 2 uur gebruiken om ze samen te zetten. Men moet de opdrachten dan wel opsplitsen in 2 opdrachten van 2 uur of met vensters in of-takken werken. Dit is onnodig complex maar wel mogelijk. (Merk trouwens op dat een van de implementaties (achter de schermen) van een ZR-Link net bestaat uit een oplossing met parallelle vensters).</li>
<li>Ook via extra resources (varia types) kan men opdrachten samendrijven.</li>
</ul>
<h3>De flexibele uren</h3>
<p>Na deze nuttige informatie over het plannen van de optie-vakken komen we hier tot het echte probleem: het plannen van de flexuren.</p>
<p>We gaan het probleem via een partitie oplossen maar we wijken hier wel wat af van het klassieke gebruik ervan. We hebben 5 vakken die in de flexlessen gegeven moeten worden. We kunnen voor elke klas de partitie 1A_Flex definiëren met telkens de 5 partitie-elementen die de vakken voorstellen die in de flexlessen gegeven moeten worden. In het tabblad van de klassen ziet dat er als volgt uit:</p>
<p><img loading="lazy" decoding="async" class="alignnone wp-image-6940 size-full" src="https://time-tech.be/wp-content/uploads/2020/02/2020-02-26-17_46_00-Window.png" alt="" width="1132" height="450" srcset="https://time-tech.be/wp-content/uploads/2020/02/2020-02-26-17_46_00-Window.png 1132w, https://time-tech.be/wp-content/uploads/2020/02/2020-02-26-17_46_00-Window-300x119.png 300w, https://time-tech.be/wp-content/uploads/2020/02/2020-02-26-17_46_00-Window-1024x407.png 1024w, https://time-tech.be/wp-content/uploads/2020/02/2020-02-26-17_46_00-Window-768x305.png 768w" sizes="auto, (max-width: 1132px) 100vw, 1132px" /></p>
<p>Alhoewel we de klas nu in theorie op elk moment in 5 kunnen splitsen en aan elk van die 5 klasdelen apart les kunnen geven is dat hier NIET de bedoeling. Wat we willen bereiken is dat we voor klas 1A1 op elk flexuur de klas in 3 kunnen splitsen en dat er aan 3 groepjes lesgegeven kan worden, niet aan 5 groepjes. Wat we echter niet op voorhand willen/kunnen beslissen is welke opdeling we op elk flexuur maken. De ene keer kan het FRA/NED/ENG zijn, de andere keer WIS/ENG/FRA enz. We willen het systeem zelf laten beslissen welke combinatie van 3 flexlessen er op elk flexuur kan staan. We zien verder hoe wat dat kunnen afdwingen. Herinner u dat we 48 flexlessen gaan plannen voor elke klas en dat we dat dus gaan organiseren op 16 uur. 16 uur * 3 groepjes = 48 flexlessen. Het resultaat moet dus zijn dat er telkens exact 3 flexlessen doorgaan op elke flexuur. Als we geen beperking opleggen dan kan het zijn dat er op 1 flexuur 5 flexlessen vallen en op een ander flexuur maar 1 flexles, of zelfs helemaal geen.</p>
<p>Waar wijken we nu af van het klassieke gebruik van partities? Voor een klassieke partitie is de opdeling van de leerlingen in partitie-elementen statisch bepaald, op voorhand vastgelegd. Elke leerling is toegewezen aan een patitie-element en elk partitie-element bevat minstens 1 leerling. Dat is bijvoorbeeld zo voor 1A_Optie. Voor 1A_Flex is dat niet zo. Voor elk flexuur gaan we de leerlingen van de klas verdelen over 3 partitie-elementen en de andere 2 zijn dan per definitie leeg. Dus, voor elk flexuur zullen de leerlingen verdeeld worden over de partie-elementen die dan gepland zijn in het rooster, de andere worden niet gebruikt. Dat is dus een dynamische planning. Men zal dan ook een waarschuwing zien bij de klas die zegt dat we niet elk partitie-element evenveel uur plannen. Dat klopt inderdaad maar dat is geen probleem.</p>
<p><img loading="lazy" decoding="async" class="alignnone wp-image-6946 size-full" src="https://time-tech.be/wp-content/uploads/2020/02/2020-02-26-18_22_50-Window.png" alt="" width="507" height="206" srcset="https://time-tech.be/wp-content/uploads/2020/02/2020-02-26-18_22_50-Window.png 507w, https://time-tech.be/wp-content/uploads/2020/02/2020-02-26-18_22_50-Window-300x122.png 300w" sizes="auto, (max-width: 507px) 100vw, 507px" /></p>
<p>Op basis van de partitie-elementen, het aantal uur dat van elke flexles gegeven moet worden, het feit dat de flexlessen voor 1A1, 1A2, 1A3 moeten samenvallen, kunnen we dat naar opdrachten vertalen op de volgende manier:</p>
<p><img loading="lazy" decoding="async" class="alignnone wp-image-6941 size-full" src="https://time-tech.be/wp-content/uploads/2020/02/2020-02-26-14_50_02-2-Window.png" alt="" width="1042" height="428" srcset="https://time-tech.be/wp-content/uploads/2020/02/2020-02-26-14_50_02-2-Window.png 1042w, https://time-tech.be/wp-content/uploads/2020/02/2020-02-26-14_50_02-2-Window-300x123.png 300w, https://time-tech.be/wp-content/uploads/2020/02/2020-02-26-14_50_02-2-Window-1024x421.png 1024w, https://time-tech.be/wp-content/uploads/2020/02/2020-02-26-14_50_02-2-Window-768x315.png 768w" sizes="auto, (max-width: 1042px) 100vw, 1042px" /></p>
<p>Het vak FLX_FRA wordt steeds door ILSE gegeven aan het partitie-element FLEX_FRA voor elk van de 3 klassen tegelijk en dat voor 12 losse uurtjes. Voor de andere flexlessen ziet men ook de juiste aantallen. In totaal 48 uur. Stel dat we verder niets doen en dit geheel even plannen. Het resultaat zou er dan als volgt kunnen uitzien:</p>
<p><img loading="lazy" decoding="async" class="alignnone wp-image-6944 size-full" src="https://time-tech.be/wp-content/uploads/2020/02/2020-02-26-18_10_54-Window.png" alt="" width="966" height="569" srcset="https://time-tech.be/wp-content/uploads/2020/02/2020-02-26-18_10_54-Window.png 966w, https://time-tech.be/wp-content/uploads/2020/02/2020-02-26-18_10_54-Window-300x177.png 300w, https://time-tech.be/wp-content/uploads/2020/02/2020-02-26-18_10_54-Window-768x452.png 768w" sizes="auto, (max-width: 966px) 100vw, 966px" /></p>
<p>Er wordt aan een heel aantal voorwaarden nog niet voldaan. Enkele voorbeelden van zaken die niet goed zijn:</p>
<ul>
<li>Er wordt maar op 13 uur flexlessen gegeven en niet op de geplande 16 uur, er zijn 3 uur zonder les.</li>
<li>Niet op elk gebruikt flexuur staan 3 flexlessen gepland. Sommige hebben er 5, 4, 2 en zelfs 1.</li>
<li>Er zijn leerkrachten die meer dan 3 uur flexlessen per dag geven.</li>
<li>Het planningsuur FLX_TIT ligt toevallig voor de flexuren maar had er ook midden in of na kunnen liggen. het sluit ook niet aan.</li>
<li>De flexlessen zijn niet in blokken gepland.</li>
</ul>
<p>We lossen eerst het probleem op van het aantal flexlessen per uur op. Dit gaan we doen via een waardespreiding. Omdat het over klassen gaat die in partities opgedeeld zijn komen we nog een interessante complexiteit tegen waar we rekening mee moeten houden bij waardespreidingen.</p>
<p>Wat we willen kunnen uitdrukken in een waardespreiding is dat het aantal flexlessen op elk uur van de week niet meer dan 3 mag zijn. Dus, voor een willekeurig uur tellen we het aantal flexlessen (opdrachten) die daar gepland zijn en dat mag niet groter dan 3 zijn. Door dit max van 3 te stellen zorgen we voor een mooie verdeling over de 16 flexuren. De vraag is hoe we die opdrachten in de waardespreiding gaan selecteren. Laat ons eerst naar een correcte oplossing kijken.</p>
<p><img loading="lazy" decoding="async" class="alignnone wp-image-6949 size-full" src="https://time-tech.be/wp-content/uploads/2020/02/2020-02-26-18_33_30-Window.png" alt="" width="901" height="113" srcset="https://time-tech.be/wp-content/uploads/2020/02/2020-02-26-18_33_30-Window.png 901w, https://time-tech.be/wp-content/uploads/2020/02/2020-02-26-18_33_30-Window-300x38.png 300w, https://time-tech.be/wp-content/uploads/2020/02/2020-02-26-18_33_30-Window-768x96.png 768w" sizes="auto, (max-width: 901px) 100vw, 901px" /></p>
<p>We selecteren de opdrachten op basis van een custom kolom (vlagje) &#8220;FLEX&#8221; die in het opdrachten tabblad aangemaakt werd. In deze kolom hebben we de opdrachten aangeduid die flexlessen zijn. Met deze spreiding actief plannen we opnieuw:</p>
<p><img loading="lazy" decoding="async" class="alignnone wp-image-6951 size-full" src="https://time-tech.be/wp-content/uploads/2020/02/2020-02-26-20_40_45-Window.png" alt="" width="966" height="569" srcset="https://time-tech.be/wp-content/uploads/2020/02/2020-02-26-20_40_45-Window.png 966w, https://time-tech.be/wp-content/uploads/2020/02/2020-02-26-20_40_45-Window-300x177.png 300w, https://time-tech.be/wp-content/uploads/2020/02/2020-02-26-20_40_45-Window-768x452.png 768w" sizes="auto, (max-width: 966px) 100vw, 966px" /></p>
<p>Dit lost inderdaad het probleem op, er zijn nu exact 3 flexlessen per flexuur gepland. Merk op de ELK_UUR een OF-uurlijst is waarin elk uurt apart vermeld wordt.</p>
<p>Waarom hebben we die customkolom &#8220;FLEX&#8221; nodig om de opdrachten te selecteren? Inderdaad een goede vraag. We hadden bijvoorbeeld ook gewoon de naam van de klas als selectiecriterium kunnen gebruiken. Het probleem hiermee is dat als je een klasnaam gebruikt dat dit een speciale betekenis heeft van zodra de klassen opgedeeld zijn in partities. In dat geval gaan de spreidingsregels gelden per partitie-element en niet meer voor de ganse klas. We gaan m.a.w. per partitie-element de opdrachten bekijken en de telling doen. Dat gaat natuurlijk niet het gewenste resultaat geven omdat we net alle opdrachten voor alle partitie-elementen willen samentellen op elk uur om de controle te doen. Zie de pagina &#8220;<a href="https://time-tech.be/handleiding/opdrachten-beperken-door-waardespreidingen/#Waardespreidingen_in_combinatie_met_Partities_van_klassen">Opdrachten beperken door waardespreidingen</a>&#8221; voor meer info over dit topic.</p>
<p>Wat we wel hadden kunnen doen is een opsomming maken van alle flex vakken om de spreiding uit te drukken:</p>
<p><img loading="lazy" decoding="async" class="alignnone wp-image-6952 size-full" src="https://time-tech.be/wp-content/uploads/2020/02/2020-02-26-20_54_34-Window.png" alt="" width="1084" height="113" srcset="https://time-tech.be/wp-content/uploads/2020/02/2020-02-26-20_54_34-Window.png 1084w, https://time-tech.be/wp-content/uploads/2020/02/2020-02-26-20_54_34-Window-300x31.png 300w, https://time-tech.be/wp-content/uploads/2020/02/2020-02-26-20_54_34-Window-1024x107.png 1024w, https://time-tech.be/wp-content/uploads/2020/02/2020-02-26-20_54_34-Window-768x80.png 768w" sizes="auto, (max-width: 1084px) 100vw, 1084px" /></p>
<p>Dit zou hetzelfde resultaat geven. We selecteren hier dezelfde opdrachten mee en we vermelden geen klasnamen waardoor de spreiding niet per partitie-element bekeken wordt.</p>
<p>Wat indien er meerdere klasgroepen zijn die elk hun eigen flex-regelingen moeten hebben? In dat geval gaan we bijvoorbeeld de FLEX kolom aanpassen en er geen vlagje maar een lijst van maken waardoor we flex-opdrachten kunnen onderverdelen in bijvoorbeeld 1A_flex, 2C_flex, etc. We kunnen die &#8220;labels&#8221; dan gebruiken in de spreidingsregels.</p>
<p>Het volgende probleem dat we moeten oplossen is dat van het aantal uur flexles dat leerkrachten per dag mogen geven. Kijken we nu naar het rooster van twee flex leerkrachten dan heeft die duidelijk teveel uur per dag.</p>
<h2><img loading="lazy" decoding="async" class="alignnone wp-image-6954 size-full" src="https://time-tech.be/wp-content/uploads/2020/02/2020-02-26-21_03_10-Window.png" alt="" width="903" height="569" srcset="https://time-tech.be/wp-content/uploads/2020/02/2020-02-26-21_03_10-Window.png 903w, https://time-tech.be/wp-content/uploads/2020/02/2020-02-26-21_03_10-Window-300x189.png 300w, https://time-tech.be/wp-content/uploads/2020/02/2020-02-26-21_03_10-Window-768x484.png 768w" sizes="auto, (max-width: 903px) 100vw, 903px" /></h2>
<p>Dit kunnen we eenvoudig oplossen door volgende waardespreiding (er zijn meerdere manieren om dit te doen):</p>
<h2><img loading="lazy" decoding="async" class="alignnone wp-image-6955 size-full" src="https://time-tech.be/wp-content/uploads/2020/02/2020-02-26-21_05_38-Window.png" alt="" width="1084" height="134" srcset="https://time-tech.be/wp-content/uploads/2020/02/2020-02-26-21_05_38-Window.png 1084w, https://time-tech.be/wp-content/uploads/2020/02/2020-02-26-21_05_38-Window-300x37.png 300w, https://time-tech.be/wp-content/uploads/2020/02/2020-02-26-21_05_38-Window-1024x127.png 1024w, https://time-tech.be/wp-content/uploads/2020/02/2020-02-26-21_05_38-Window-768x95.png 768w" sizes="auto, (max-width: 1084px) 100vw, 1084px" /></h2>
<p>We gebruiken hier weer de CC_FLEX custom kolom omdat dat nu makkelijk selecteert. In het extra selectiecriterium zetten we de groep LKR_FLEX. Dat is gewoon een groep van de 5 leerkrachten die in het flexsysteem zitten. Via deze constructie zal voor elk van de 5 leerkrachten de spreiding apart gecontroleerd worden. het resultaat:</p>
<h2><img loading="lazy" decoding="async" class="alignnone wp-image-6956 size-full" src="https://time-tech.be/wp-content/uploads/2020/02/2020-02-26-21_09_55-Window.png" alt="" width="903" height="569" srcset="https://time-tech.be/wp-content/uploads/2020/02/2020-02-26-21_09_55-Window.png 903w, https://time-tech.be/wp-content/uploads/2020/02/2020-02-26-21_09_55-Window-300x189.png 300w, https://time-tech.be/wp-content/uploads/2020/02/2020-02-26-21_09_55-Window-768x484.png 768w" sizes="auto, (max-width: 903px) 100vw, 903px" /></h2>
<p>Nu zijn er max 3 flexlessen per dag voor elke leerkracht. Merk op dat de uurlijst ELKE_DAG een OF-uurlijst is die de uren van elke dag van de week opsomt in 5 lijstjes. Per dag worden de flexuren dan geteld. We zien voor AN dat er ook het FLX_TIT uur op de rooster staat. Deze hebben we niet opgenomen als flexuur in de spreiding. We zouden dit ook kunnen doen als dat nodig is maar omdat het over de planning zelf gaat van de flexlessen en niet zozeer over de flexlessen zelf hebben we die erbuiten gehouden.</p>
<p>Wat ook duidelijk nog niet klopt is dat het planningsuur (FLX_TIT) niet vóór de flexlessen zelf staan.</p>
<p>We kunnen een volgordespreiding gebruiken om het planningsuur voor de titularis vóór de flexuren in de respectievelijke klas te krijgen. Dat kan op volgende manier:</p>
<p><img loading="lazy" decoding="async" class="alignnone wp-image-6959 size-full" src="https://time-tech.be/wp-content/uploads/2020/02/2020-02-26-21_22_12-time-tech-mondriaan-versie-2020.2.0.1_-Flex-3-klassen-v4-Partities-en-Varia..png" alt="" width="961" height="155" srcset="https://time-tech.be/wp-content/uploads/2020/02/2020-02-26-21_22_12-time-tech-mondriaan-versie-2020.2.0.1_-Flex-3-klassen-v4-Partities-en-Varia..png 961w, https://time-tech.be/wp-content/uploads/2020/02/2020-02-26-21_22_12-time-tech-mondriaan-versie-2020.2.0.1_-Flex-3-klassen-v4-Partities-en-Varia.-300x48.png 300w, https://time-tech.be/wp-content/uploads/2020/02/2020-02-26-21_22_12-time-tech-mondriaan-versie-2020.2.0.1_-Flex-3-klassen-v4-Partities-en-Varia.-768x124.png 768w" sizes="auto, (max-width: 961px) 100vw, 961px" /></p>
<p>Kijken we naar titularis AN dan zien we dat alle opdrachten waarin FLX_TIT én AN voorkomen gepland moeten worden vóór alle opdrachten die het label CC_FLEX hebben en dat binnen het interval [w1_maandag1&#8230;w1_vrijdag8].</p>
<p>Het resultaat voor 2 van de titularissen:</p>
<h2><img loading="lazy" decoding="async" class="alignnone wp-image-6958 size-full" src="https://time-tech.be/wp-content/uploads/2020/02/2020-02-26-21_20_56-time-tech-mondriaan-versie-2020.2.0.1_-Flex-3-klassen-v4-Partities-en-Varia..png" alt="" width="927" height="569" srcset="https://time-tech.be/wp-content/uploads/2020/02/2020-02-26-21_20_56-time-tech-mondriaan-versie-2020.2.0.1_-Flex-3-klassen-v4-Partities-en-Varia..png 927w, https://time-tech.be/wp-content/uploads/2020/02/2020-02-26-21_20_56-time-tech-mondriaan-versie-2020.2.0.1_-Flex-3-klassen-v4-Partities-en-Varia.-300x184.png 300w, https://time-tech.be/wp-content/uploads/2020/02/2020-02-26-21_20_56-time-tech-mondriaan-versie-2020.2.0.1_-Flex-3-klassen-v4-Partities-en-Varia.-768x471.png 768w" sizes="auto, (max-width: 927px) 100vw, 927px" /></h2>
<p>Het rooster van de klas 1A1 ziet er ondertussen als volgt uit:</p>
<h2><img loading="lazy" decoding="async" class="alignnone wp-image-6960 size-full" src="https://time-tech.be/wp-content/uploads/2020/02/2020-02-26-21_26_14-time-tech-mondriaan-versie-2020.2.0.1_-Flex-3-klassen-v4-Partities-en-Varia..png" alt="" width="966" height="569" srcset="https://time-tech.be/wp-content/uploads/2020/02/2020-02-26-21_26_14-time-tech-mondriaan-versie-2020.2.0.1_-Flex-3-klassen-v4-Partities-en-Varia..png 966w, https://time-tech.be/wp-content/uploads/2020/02/2020-02-26-21_26_14-time-tech-mondriaan-versie-2020.2.0.1_-Flex-3-klassen-v4-Partities-en-Varia.-300x177.png 300w, https://time-tech.be/wp-content/uploads/2020/02/2020-02-26-21_26_14-time-tech-mondriaan-versie-2020.2.0.1_-Flex-3-klassen-v4-Partities-en-Varia.-768x452.png 768w" sizes="auto, (max-width: 966px) 100vw, 966px" /></h2>
<p>Er rest nog 1 probleem dat opgelost moet worden. De flexlessen zijn helemaal nog niet in blokken gepland. In de eisen stond vermeld dat we die 16 flexuren (+1 planningsuur) in volgende blokken moesten plannen: 4, 4, 4, 3, 2. Volgend plaatje toont deze 5 blokken en hoe ze bijvoorbeeld in de week zouden kunnen geplaatst worden. We willen dat de flexuren in een dergelijk patroon vallen.</p>
<p><img loading="lazy" decoding="async" class="alignnone wp-image-6963 size-full" src="https://time-tech.be/wp-content/uploads/2020/02/2020-02-26-21_32_31-time-tech-mondriaan-versie-2020.2.0.1_-Flex-3-klassen-v4-Partities-en-Varia..png" alt="" width="351" height="484" srcset="https://time-tech.be/wp-content/uploads/2020/02/2020-02-26-21_32_31-time-tech-mondriaan-versie-2020.2.0.1_-Flex-3-klassen-v4-Partities-en-Varia..png 351w, https://time-tech.be/wp-content/uploads/2020/02/2020-02-26-21_32_31-time-tech-mondriaan-versie-2020.2.0.1_-Flex-3-klassen-v4-Partities-en-Varia.-218x300.png 218w" sizes="auto, (max-width: 351px) 100vw, 351px" /></p>
<p>Er zijn opnieuw verschillende manier om dit op te lossen. We kunnen het niet oplossen door de flexopdrachten zelf als blokken te definiëren, elk flexuur kan tenslotte een heel andere inhoud hebben dan elk ander. Als je uren in blokken plant dan is de inhoud voor elk uur in dat blok hetzelfde. Dat helpt ons dus niet verder. We gaan dit moeten oplossen door de flexopdrachten samen te drijven in deze blokpatronen via andere constructies. Dit zijn 2 manieren om dat te doen:</p>
<ul>
<li><strong>Vensters:</strong> We kunnen vensters definiëren waarin de flexopdrachten moeten vallen. Vensters met als grootte 4, 4, 4, 3, en 2. Echter, omdat we op elk uur 3 flexopdrachten moeten plannen hebben we dus per blok 3 vensters nodig die telkens parallel liggen. We hebben 15 vensters nodig die samen de 48 + 3 gaten voorzien waarin de 48 flexlessen en de 3 planningsuurtjes moeten vallen. Elke flexopdracht krijgt dan een keuzelijst van 15 vensters. Dergelijke constructie is rekenintensief en dus niet te verkiezen indien er een betere oplossing bestaat. Bij deze vensteroplossing kunnen we wel de extra waardespreiding laten vallen die eist dat er max 3 flexlessen per flexuur gegeven mogen worden. Dat wordt automatisch opgelost via die vensters.</li>
<li><strong>Varia resources</strong>: een beter alternatief (qua rekentijd) is het probleem aanpakken door extra variatypes te gebruiken. De redenering is als volgt:
<ul>
<li>We voeren 3 variatypes in (1A_flex1, 1A_flex2, 1A_flex3).</li>
<li>We maken opdrachten aan die deze 3 variatypes in blokken samenzet zoals voorgesteld in het plaatje hierboven. De 3 variatypes staan dan steeds samen in de 3 blokken van 4, 1 blok van 3 en 1 blok van 2. De opdrachten waarmee we dat doen zijn onafhankelijke opdrachten die niets anders dan de 3 variatypes bevatten. Ze leggen dus het patroon uit dat we willen bereiken. De reden waarom we 3 variatypes samen nodig hebben wordt dadelijk duidelijk.</li>
<li>Als we nu alle NIET-flex opdrachten van klas 1A1 uitbreiden met variatype 1A_flex1, die van 1A2 met 1A_flex2, en die van 1A3 met 1A_flex3 dan kunnen daardoor al deze NIET-flex opdrachten enkel plaatsen liggen waar de eerder gelegde patroonblokken NIET liggen.</li>
<li>We hebben door die variatypes de NIET-flexopdrachten in zulk een posititie gedreven dat de enige open plekken in het rooster voor de 1A klassen net de patroonblokken zijn. Als we dan de flexopdrachten plaatsen kunnen die niet anders dan in die open ruimte vallen. In de flexopdrachten zelf hoeven we dus helemaal geen variatypes meer op te nemen.</li>
<li>Deze oplossing maakt geen gebruik van of-takken en de rekentijd zal hierdoor merkelijk beter zijn dan met de vensteroplossing.</li>
</ul>
</li>
</ul>
<p>In wat volgt zullen we de versie met de variatypes verder uitwerken. De versie met de vensters wordt ook meegegeven om het verschil te kunnen zien.</p>
<p>In het opdrachtentabblad definiëren we de opdrachten om de 3 variatypes samen in de gewenste blokken te roosteren. Merk op dat we ook als extra nog uurlijsten opgegeven hebben waar deze blokken mogen vallen (EERSTE, w1_WOENSDAG). Kan een extra eis zijn maar hoeft niet.</p>
<p>Het getoonde beeld filtert op alle opdrachten waar 1A_flex1 en 1A1 inzitten. We zien dat alle NIET-flexopdrachten van 1A1 nu ook als variatype 1A_flex1 hebben.</p>
<h2><img loading="lazy" decoding="async" class="alignnone wp-image-6969 size-full" src="https://time-tech.be/wp-content/uploads/2020/02/2020-02-27-17_47_32-Window.png" alt="" width="1066" height="473" srcset="https://time-tech.be/wp-content/uploads/2020/02/2020-02-27-17_47_32-Window.png 1066w, https://time-tech.be/wp-content/uploads/2020/02/2020-02-27-17_47_32-Window-300x133.png 300w, https://time-tech.be/wp-content/uploads/2020/02/2020-02-27-17_47_32-Window-1024x454.png 1024w, https://time-tech.be/wp-content/uploads/2020/02/2020-02-27-17_47_32-Window-768x341.png 768w" sizes="auto, (max-width: 1066px) 100vw, 1066px" /></h2>
<p>Als we dit geheel roosteren maar we vinken de flexopdrachten nog even uit dan krijgen we voor 1A1 en 1A_flex1 de volgende mogelijke oplossing:</p>
<h2><img loading="lazy" decoding="async" class="alignnone wp-image-6968 size-full" src="https://time-tech.be/wp-content/uploads/2020/02/2020-02-27-17_44_28-Window.png" alt="" width="926" height="681" srcset="https://time-tech.be/wp-content/uploads/2020/02/2020-02-27-17_44_28-Window.png 926w, https://time-tech.be/wp-content/uploads/2020/02/2020-02-27-17_44_28-Window-300x221.png 300w, https://time-tech.be/wp-content/uploads/2020/02/2020-02-27-17_44_28-Window-768x565.png 768w" sizes="auto, (max-width: 926px) 100vw, 926px" /></h2>
<p>Wat hier mooi te zien is, is hoe het variatype 1A_flex1 plaatsen &#8220;reserveert&#8221; in het rooster van 1A1 waarin de flexopdrachten nu gepland kunnen worden. Zie ook in het 1A_flex1 rooster hoe de 3 variatypes samen geplaatst zijn in die blokken. Als we nu de flexopdrachten meeroosteren gaan die mooi in de gereserveerde ruimte vallen:</p>
<p>1A1 naast 1A_flex1: flexlessen vallen mooi in de gereserveerde ruimte.</p>
<p><img loading="lazy" decoding="async" class="alignnone wp-image-6970 size-full" src="https://time-tech.be/wp-content/uploads/2020/02/2020-02-27-18_04_00-Window.png" alt="" width="920" height="681" srcset="https://time-tech.be/wp-content/uploads/2020/02/2020-02-27-18_04_00-Window.png 920w, https://time-tech.be/wp-content/uploads/2020/02/2020-02-27-18_04_00-Window-300x222.png 300w, https://time-tech.be/wp-content/uploads/2020/02/2020-02-27-18_04_00-Window-768x568.png 768w" sizes="auto, (max-width: 920px) 100vw, 920px" /></p>
<p>1A1 naast 1A3: flexlessen van alle klassen vallen samen.</p>
<p><img loading="lazy" decoding="async" class="alignnone wp-image-6971 size-full" src="https://time-tech.be/wp-content/uploads/2020/02/2020-02-27-18_04_47-Window.png" alt="" width="920" height="681" srcset="https://time-tech.be/wp-content/uploads/2020/02/2020-02-27-18_04_47-Window.png 920w, https://time-tech.be/wp-content/uploads/2020/02/2020-02-27-18_04_47-Window-300x222.png 300w, https://time-tech.be/wp-content/uploads/2020/02/2020-02-27-18_04_47-Window-768x568.png 768w" sizes="auto, (max-width: 920px) 100vw, 920px" /></p>
<p>Had het nog zuiniger gekund? Ja, maar&#8230;</p>
<ul>
<li>We hebben 3 variatypes ingevoerd, voor elke klas een. Maar dat is in feite niet nodig.</li>
<li>We weten dat de flexopdrachten zelf steeds hetzelfde partitie-element van de 3 klassen meenemen. Het is dus onmogelijk dat de flexlessen voor de verschillende klassen op andere momenten zouden vallen. De flexopdrachten zelf maken de koppeling tussen de 3 klassen.</li>
<li>We zouden dus in plaats van 3 variatypes ook één variatype kunnen gebruiken. Stel dat we alleen 1A_flex als variatype gebruiken. Met dit variatype maken we de blokken zoals eerder met de 3 samen en we plaatsen dit enige varitype enkel in de NIET-flexopdrachten van 1A1.</li>
<li>In dit geval gaat 1A_flex lege plaatsen reserveren in 1A1. In 1A2 en 1A3 maken we die reservaties niet. Maar, doordat de flexopdrachten enkel in de gereserveerde ruimte van 1A1 kunnen vallen moeten de klassen 1A2 en 1A3 wel volgen.</li>
</ul>
<p>Dus, met 1 variatype kan het evengoed opgelost worden. Echter, er is een &#8220;maar&#8221; wat de rekentijd betreft. Door van 3 naar 1 variatype te gaan halen we redundantie weg maar dat is niet altijd de beste oplossing. Net door die redundantie gaat veel onnodig zoekwerk niet gebeuren. Als we de (rode) blokken reserveren dan doen we dat in het eerste geval meteen voor de 3 klassen samen en in het tweede geval enkel voor 1A1 terwijl we eigenlijk wel weten dat we dat meteen ook voor 1A2 en 1A3 moeten doen. Door de koppeling via de flexopdrachten komt dat uiteindelijk ook wel goed maar via een omweg.</p>
<p>Dus, in dit geval houden we beter de redundantie. Dit voorbeeld leveren we ook mee om te bekijken.</p>
<h2>De uitgewerkte voorbeelden</h2>
<p>Om de bestanden te gebruiken download men de zipfile en pakt men het bestand uit. Elke zipfile bevat 1 zttxml-bestand.</p>
<ul>
<li><a href="https://time-tech.be/wp-content/uploads/2020/02/Flex-3-klassen-Partities-en-3-Variatypes.zip">Flex 3 klassen &#8211; Partities en 3 Variatypes</a></li>
<li><a href="https://time-tech.be/wp-content/uploads/2020/02/Flex-3-klassen-Partities-en-1-Variatype.zip">Flex 3 klassen &#8211; Partities en 1 Variatype</a></li>
<li><a href="https://time-tech.be/wp-content/uploads/2020/02/Flex-3-klassen-Partities-en-Vensters.zip">Flex 3 klassen &#8211; Partities en Vensters</a></li>
<li><a href="https://time-tech.be/wp-content/uploads/2020/02/Flex-3-klassen-Geen-Partities.zip">Flex 3 klassen &#8211; Geen Partities</a></li>
</ul>
<p>Het laatste voorbeeld werd niet in de tekst besproken maar is een alternatief zonder vensters en zonder partities voor de flexlessen. Voor de 3 klassen worden gewoon 5 FLEX blokken les gepland zonder dat in het rooster van de klas te zien is welke flexlessen er op elk uur doorgaan. Die informatie kan men dan wel uit de rooster halen van de leerkrachten bijvoorbeeld. Het is ook een alternatief dat bruikbaar is.</p>
<p><em>(PS. Deze bestanden zijn te gebruiken vanaf Mondriaan versie 2020.2.0)</em></p>

		</div>
	</div>
</div></div></div></div></div>
</div>]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Afdwingen zelfde lokaal bij meerdere deelopdrachten van verschillende grootte</title>
		<link>https://time-tech.be/handleiding/zelfde-lokaal-verschillende-grootte/</link>
		
		<dc:creator><![CDATA[Peter]]></dc:creator>
		<pubDate>Sun, 17 Mar 2019 14:18:56 +0000</pubDate>
				<guid isPermaLink="false">https://time-tech.be/?post_type=manual_kb&#038;p=5962</guid>

					<description><![CDATA[]]></description>
										<content:encoded><![CDATA[<div class="wpb-content-wrapper"><div  class=" pg-custom-vc    vc_row wpb_row section vc_row-fluid " style="text-align:left;  margin-left:0px;margin-right:0px;"     ><div class="container" style="padding: 0px 0px; display: block;    "><div class="wpb_column vc_column_container vc_col-sm-12"><div class="vc_column-inner"><div class="wpb_wrapper">
	<div class="wpb_text_column wpb_content_element" >
		<div class="wpb_wrapper">
			<h1>Afdwingen zelfde lokaal bij deelopdrachten van verschillende grootte</h1>
<p>We illustreren dit probleem met een geval uit de praktijk.</p>
<h2>Probleemstelling</h2>
<p>Een school heeft 24 klassen die het praktijkvak &#8220;koken&#8221; hebben en waarvoor ze een keuken (=lokaal) nodig hebben. De kooklessen worden steeds in blokken gegeven op de volgende manier:</p>
<ul>
<li>12 3de jaars klassen hebben één blok van 5 en één blok van 3 uur koken (8 uur)</li>
<li>12 4de jaars klassen hebben één blok van 4 en één blok van 3 uur koken (7 uur)</li>
</ul>
<p>Elke klas heeft dus 2 blokken van ongelijke grootte verspreid over de week (op verschillende dagen) en het is de bedoeling dat een klas steeds in dezelfde keuken zit. De school heeft 7 keukens ter beschikking en de 24 klassen mogen gebruik maken van eender welke keuken. Maar, als een klas X voor haar eerste blok keuken Y toegewezen krijgt, dan moet klas X ook voor het tweede blok keuken Y toegewezen krijgen. Dat is het probleem dat we hier willen oplossen.</p>
<h2>Oplossing indien het dezelfde blokgrootte was</h2>
<p>Stel dat we een klas hebben die 2 blokken van 4 uur koken heeft in een willekeurig te kiezen keuken uit de set van 7 keukens. Stel dat we willen dat Mondriaan voor elk van die 2 blokken dezelfde keuze maakt. De manier om dit af te dwingen in Mondriaan is als volgt:</p>
<ul>
<li>Maak 1 opdracht van 8 uur in 2 blokken van 4 uur voor de betreffende klas met zijn vak en leerkracht.</li>
<li>We maken een lokalengroep van 7 keukens en definiëren die als een OF-groep. We zetten die groep in de kolom &#8220;Lokalen&#8221; van de opdracht.</li>
<li>Het vlagje &#8220;Ontdubbelen&#8221; laten we uitgevinkt.</li>
<li>Eis via een opdrachtspreiding dat er maximaal 4 uur op één dag geplaatst wordt.</li>
</ul>
<p><a href="https://time-tech.be/wp-content/uploads/2019/03/2019-03-17-15_59_04-Window.png"><img loading="lazy" decoding="async" class="alignnone wp-image-5966 size-full" src="https://time-tech.be/wp-content/uploads/2019/03/2019-03-17-15_59_04-Window.png" alt="" width="978" height="113" srcset="https://time-tech.be/wp-content/uploads/2019/03/2019-03-17-15_59_04-Window.png 978w, https://time-tech.be/wp-content/uploads/2019/03/2019-03-17-15_59_04-Window-300x35.png 300w, https://time-tech.be/wp-content/uploads/2019/03/2019-03-17-15_59_04-Window-768x89.png 768w" sizes="auto, (max-width: 978px) 100vw, 978px" /></a></p>
<p><a href="https://time-tech.be/wp-content/uploads/2019/03/2019-03-17-16_08_15-Window.png"><img loading="lazy" decoding="async" class="alignnone wp-image-5968 size-full" src="https://time-tech.be/wp-content/uploads/2019/03/2019-03-17-16_08_15-Window.png" alt="" width="1086" height="106" srcset="https://time-tech.be/wp-content/uploads/2019/03/2019-03-17-16_08_15-Window.png 1086w, https://time-tech.be/wp-content/uploads/2019/03/2019-03-17-16_08_15-Window-300x29.png 300w, https://time-tech.be/wp-content/uploads/2019/03/2019-03-17-16_08_15-Window-768x75.png 768w, https://time-tech.be/wp-content/uploads/2019/03/2019-03-17-16_08_15-Window-1024x100.png 1024w" sizes="auto, (max-width: 1086px) 100vw, 1086px" /></a></p>
<p>De oplossing zou er voor 3VVa als volgt kunnen uitzien (kleuring blokken op &#8220;Lokaal&#8221;):</p>
<p><a href="https://time-tech.be/wp-content/uploads/2019/03/2019-03-17-16_03_24-Window.png"><img loading="lazy" decoding="async" class="alignnone wp-image-5967 size-full" src="https://time-tech.be/wp-content/uploads/2019/03/2019-03-17-16_03_24-Window.png" alt="" width="441" height="406" srcset="https://time-tech.be/wp-content/uploads/2019/03/2019-03-17-16_03_24-Window.png 441w, https://time-tech.be/wp-content/uploads/2019/03/2019-03-17-16_03_24-Window-300x276.png 300w" sizes="auto, (max-width: 441px) 100vw, 441px" /></a></p>
<p>We hebben hier 2 deelopdrachten van 4 uur met dezelfde blokgrootte. Er is in de definitie geen enkel verschil tussen beide deelopdrachten. Dat kan men zien in de tab deelopdrachten omdat daar ook maar 1 lijn te zien is voor beide deelopdrachten. Voor dergelijke deelopdrachten waarbij de volledige definitie gelijk is kan het concept NIET &#8220;Ontdubbelen&#8221; gebruikt worden. Bij niet &#8220;Ontdubbelen&#8221; worden beide deelopdrachten door de MBE synchroon gehouden wat betreft de keuze-elementen in de opdracht. Kiest een deelopdracht voor lokaal C dan moet de andere ook voor lokaal C kiezen en omgekeerd. Dit soort beperking is enkel mogelijk voor deelopdrachten die in de definitie volledig gelijk zijn en dus in de tab &#8220;Deelopdrachten&#8221; ook als 1 lijn voorgesteld worden. Het vinkje &#8220;Ontdubbelen&#8221; wordt op het niveau van de opdracht gezet maar is enkel lokaal afdwingbaar binnen deelopdrachten die dezelfde definitie hebben (op 1 lijn staan in de tab &#8220;Deelopdrachten&#8221;). Heeft men bijvoorbeeld een opdracht van 10 uur in 2 keer een blok van 2 en 2 keer een blok van 3 dan zouden dit bijvoorbeeld 2 lijnen in de deelopdrachten kunnen zijn. Eén deelopdracht van 4 uur in blokken van 2, en één deelopdracht van 6 uur in blokken van 3. Niet &#8220;Ontdubbelen&#8221; zal hier dus ook zijn effect hebben maar enkel binnen de deelopdrachten. De 2 blokken van 2 lopen synchroon, en de 2 blokken van 3 lopen synchroon maar onderling kan er geen koppeling zijn tussen een blok van 2 en een blok van 3.</p>
<h2>Niet &#8220;Ontdubbelen&#8221; heeft geen effect bij verschillende deelopdracht definities</h2>
<p>We wijzigen de opdracht van 8 uur in blokken van 4 uur naar 2 deelopdrachten: één van 5 uur en één van 3 uur. Verder wijzigen we enkel de opdrachtspreiding naar max 5 uur per dag om de spreiding te garanderen.</p>
<p><a href="https://time-tech.be/wp-content/uploads/2019/03/2019-03-17-16_23_42-Window.png"><img loading="lazy" decoding="async" class="alignnone wp-image-5971 size-full" src="https://time-tech.be/wp-content/uploads/2019/03/2019-03-17-16_23_42-Window.png" alt="" width="1202" height="291" srcset="https://time-tech.be/wp-content/uploads/2019/03/2019-03-17-16_23_42-Window.png 1202w, https://time-tech.be/wp-content/uploads/2019/03/2019-03-17-16_23_42-Window-300x73.png 300w, https://time-tech.be/wp-content/uploads/2019/03/2019-03-17-16_23_42-Window-768x186.png 768w, https://time-tech.be/wp-content/uploads/2019/03/2019-03-17-16_23_42-Window-1024x248.png 1024w" sizes="auto, (max-width: 1202px) 100vw, 1202px" /></a></p>
<p>De oplossing zou er voor 3VVa als volgt kunnen uitzien (kleuring blokken op &#8220;Lokaal&#8221;):</p>
<p><a href="https://time-tech.be/wp-content/uploads/2019/03/2019-03-17-16_26_00-Window.png"><img loading="lazy" decoding="async" class="alignnone wp-image-5973 size-full" src="https://time-tech.be/wp-content/uploads/2019/03/2019-03-17-16_26_00-Window.png" alt="" width="441" height="406" srcset="https://time-tech.be/wp-content/uploads/2019/03/2019-03-17-16_26_00-Window.png 441w, https://time-tech.be/wp-content/uploads/2019/03/2019-03-17-16_26_00-Window-300x276.png 300w" sizes="auto, (max-width: 441px) 100vw, 441px" /></a></p>
<p>Hier zien we dat Mondriaan toch 2 verschillende lokalen gekozen heeft. Dit is een correcte oplossing omdat we weten dat Niet &#8220;Ontdubbelen&#8221; op de deelopdrachten van eenzelfde soort effect heeft en niet tussen deelopdrachten met een andere definitie.</p>
<p>Dit is echter niet wat we willen. We willen zowel verschillende blokgroottes als dezelfde keukens per klas.</p>
<h2>Oplossing met één deelopdrachtype en de hulp van variatypes</h2>
<p>Indien we toch gebruik willen maken van Niet &#8220;Ontdubbelen&#8221; kan dan enkel via opdrachten van hetzelfde deelopdrachttype. Stel dat we de 8 uur van 3VVa als losse uren in de opdracht zetten.</p>
<p><a href="https://time-tech.be/wp-content/uploads/2019/03/2019-03-17-16_48_44-Window.png"><img loading="lazy" decoding="async" class="alignnone wp-image-5976 size-full" src="https://time-tech.be/wp-content/uploads/2019/03/2019-03-17-16_48_44-Window.png" alt="" width="1191" height="270" srcset="https://time-tech.be/wp-content/uploads/2019/03/2019-03-17-16_48_44-Window.png 1191w, https://time-tech.be/wp-content/uploads/2019/03/2019-03-17-16_48_44-Window-300x68.png 300w, https://time-tech.be/wp-content/uploads/2019/03/2019-03-17-16_48_44-Window-768x174.png 768w, https://time-tech.be/wp-content/uploads/2019/03/2019-03-17-16_48_44-Window-1024x232.png 1024w" sizes="auto, (max-width: 1191px) 100vw, 1191px" /></a></p>
<p>De oplossing zou er voor 3VVa als volgt kunnen uitzien (kleuring blokken op &#8220;Lokaal&#8221;):</p>
<p><a href="https://time-tech.be/wp-content/uploads/2019/03/2019-03-17-16_49_57-Window.png"><img loading="lazy" decoding="async" class="alignnone wp-image-5977 size-full" src="https://time-tech.be/wp-content/uploads/2019/03/2019-03-17-16_49_57-Window.png" alt="" width="441" height="406" srcset="https://time-tech.be/wp-content/uploads/2019/03/2019-03-17-16_49_57-Window.png 441w, https://time-tech.be/wp-content/uploads/2019/03/2019-03-17-16_49_57-Window-300x276.png 300w" sizes="auto, (max-width: 441px) 100vw, 441px" /></a></p>
<p>Goed aan deze oplossing is dat elk blokje dezelfde keuken gebruikt maar de blokken worden nu niet gerespecteerd. De spreiding van max 5 uur per dag is wel ok maar dat is verre van voldoende. We moeten een manier bedenken om deze losse uurtjes <span style="text-decoration: underline;">samen te drijven</span> in een blok van 5 en een blok van 3 uur. We definiëren hiervoor 2 extra variatypes per klas. Variatypes zijn gewoon resources zoals klassen, leekrachten, of lokalen en kunnen dus ook geroosterd worden.</p>
<ul>
<li><strong>Var1_3VVa</strong> (noemen we verder V1): zetten we als variatype mee in de opdracht van 8 uur koken voor 3VVa. Hierdoor kan 3VVa enkel geroosterd worden op momenten waarop dit variatype het nog toelaat.</li>
<li><strong>Var2_3VVa</strong> (noemen we verder V2): dit variatype gebruiken we om het eerste variatype in een patroon te dwingen.</li>
</ul>
<p>Geroosterd zou het resultaat er als volgt kunnen uitzien. We tonen hier de roosters van 3VVa en de 2 nieuwe variatypes (kleuring blokken op &#8220;Lokaal&#8221;):</p>
<p><a href="https://time-tech.be/wp-content/uploads/2019/03/2019-03-17-16_55_15-Window.png"><img loading="lazy" decoding="async" class="alignnone wp-image-5979 size-full" src="https://time-tech.be/wp-content/uploads/2019/03/2019-03-17-16_55_15-Window.png" alt="" width="1116" height="406" srcset="https://time-tech.be/wp-content/uploads/2019/03/2019-03-17-16_55_15-Window.png 1116w, https://time-tech.be/wp-content/uploads/2019/03/2019-03-17-16_55_15-Window-300x109.png 300w, https://time-tech.be/wp-content/uploads/2019/03/2019-03-17-16_55_15-Window-768x279.png 768w, https://time-tech.be/wp-content/uploads/2019/03/2019-03-17-16_55_15-Window-1024x373.png 1024w" sizes="auto, (max-width: 1116px) 100vw, 1116px" /></a></p>
<p>In deze roosters zien we het volgende:</p>
<ul>
<li><strong>3VVa:</strong> de uren zijn nu mooi samengedreven in een blok van 5 en een blok van 3 uur. Elke apart uurtje is samengeroosterd met variatype Var1_3VVa.</li>
<li><strong>V1:</strong> In de rode blokjes is V1 steeds met V2 geroosterd. In de groene blokjes is V1 met de klas 3VVa geroosterd.</li>
<li><strong>V2:</strong> In de losse uurtjes is V2 steeds met V1 geroosterd. In de rode blokken van 5 en 3 uur is V2 alleen geroosterd. Dit wil zeggen dat op die plaatsen van 5 en 3 het andere variatype V1 dus vrij is om met de klas 3VVa te staan.</li>
</ul>
<p>Dus, door een slimme combinatie van deze 2 variatypes en de klas kunnen we het patroon dat we wensen afdwingen. Bekijken we dit in het opdrachtentablad:</p>
<p><a href="https://time-tech.be/wp-content/uploads/2019/03/2019-03-17-17_22_06-Window.png"><img loading="lazy" decoding="async" class="alignnone wp-image-5980 size-full" src="https://time-tech.be/wp-content/uploads/2019/03/2019-03-17-17_22_06-Window.png" alt="" width="1038" height="359" srcset="https://time-tech.be/wp-content/uploads/2019/03/2019-03-17-17_22_06-Window.png 1038w, https://time-tech.be/wp-content/uploads/2019/03/2019-03-17-17_22_06-Window-300x104.png 300w, https://time-tech.be/wp-content/uploads/2019/03/2019-03-17-17_22_06-Window-768x266.png 768w, https://time-tech.be/wp-content/uploads/2019/03/2019-03-17-17_22_06-Window-1024x354.png 1024w" sizes="auto, (max-width: 1038px) 100vw, 1038px" /></a></p>
<p>De opdracht van 8 uur krijgt als variatype V1 toegewezen op elk uur. V1 is dus een extra resource die meegeroosterd wordt met de klas, het lokaal en de leerkracht. Vervolgens zien we een heel nieuwe extra (&#8220;dummy&#8221;) opdracht waar we het patroon afdwingen. De opdracht wordt als volgt geconstrueerd:</p>
<ul>
<li>Het rooster bevat 50 uur. We maken een opdracht van 50 uren voor variatype V2.</li>
<li>42 van deze uren roosteren we als losse uurtjes we zetten V2 samen met variatype V1.</li>
<li>Vervolgens maken we 2 deelopdrachten, één met een blok van 5 uur en één met een blok van 3 uur waarin V2 alleen (zonder V1) geroosterd wordt. We geven meteen goede startuurlijsten mee van deze blokken.</li>
</ul>
<p>Doordat V1 enkel in die eerste 42 uur meegeroosterd wordt met V2 is V1 vrij in de andere 8 uur om samen te staan met de klas 3VVa. Maar, omdat V2 (zonder V1) in een blok van 5 en in een blok van 3 geroosterd wordt kan de klas 3VVa (samen met V1) enkel op de plaats van die 2 blokken staan. Dit zorgt er dus voor dat we het juiste patroon afdwingen.</p>
<p>Merk op dat Niet &#8220;Ontdubbelen&#8221; hier duidelijk speelt voor de keukenkeuze in de kookopdracht van 8 uur voor 3VVa. Voor de extra &#8220;dummy&#8221; opdracht die we nodig hebben om de variatypes in een patroon te dwingen heeft die nu geen betekenis. De reden dat ze geen betekenis heeft is omdat er hier geen of-takken zijn.</p>
<h3>Hadden we ook vensters kunnen gebruiken in plaats van 2 variatypes?</h3>
<p>Een terechte vraag. Stel dat we voor 3VVa 2 extra vensters zouden definiëren, een van 5 uur en een van 3 uur groot. Vervolgens maken we een keuzegroep van deze 2 vensters en we zetten die keuzegroep in de kolom &#8220;Vensters&#8221; van de opdracht. Je zou dan verwachten dat elk van de 8 losse uurtjes een plaats zou vinden in ofwel het venster van 5, ofwel in het venster van 3 uur. Echter, door de keuze NIET &#8220;Ontdubbelen&#8221; moet elke deelopdracht dezelfde keuze maken voor alle keuzes, dus ook voor de vensters. Dus alle 8 uurtjes gaan ofwel proberen in het venster van 5 of allemaal in het venster van 3 te gaan staan en dat kan uiteraard niet.</p>
<p>Dus neen, dit zou geen oplossing bieden.</p>
<h2>Het uitgewerkte voorbeeld</h2>
<p>In het uitgewerkte voorbeeld kan men zien hoe dit systeem toegepast werd op 24 klassen.</p>
<p>Download volgende zip-file. Hij bevat het bestand &#8220;<strong>KeukensMet2Variatypes.ttxml</strong>&#8221;</p>
<ul>
<li><a href="https://time-tech.be/wp-content/uploads/2019/03/KeukensMet2Variatypes.zip">KeukensMet2Variatypes</a></li>
</ul>

		</div>
	</div>
</div></div></div></div></div>
</div>]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
