Wachtrijmodel van de kantine
De schoolkantine heeft twee balies. Ongeveer 300 van de 900 leerlingen eten tussen 12:15 en 13:15 in de kantine. Een leerling bouwt een simulatiemodel in Python met tijdstappen van één minuut. Aankomsten zijn geprogrammeerd als Poisson-proces met gemiddeld 5 leerlingen per minuut, gelijkmatig verdeeld over de 60 minuten; de bedieningstijd is vast 20 seconden. Het model voorspelt een gemiddelde wachttijd van 5,5 minuut en een maximale rij van 14 leerlingen. In de werkelijkheid meet de leerling op drie dagen een gemiddelde wachttijd van 11 minuten; om 12:25 reikt de rij tot buiten de deur. Uit handmatige tellingen blijkt dat 60 % van de kantinebezoekers in de eerste 20 minuten arriveert en dat een balie gemiddeld 25 seconden per leerling nodig heeft, met uitschieters naar 60 seconden bij pinnen. De teamleider wil op basis van het model concluderen dat een derde balie niet nodig is; de conciërge wil juist een extra balie.
1. Noem drie aannames in het model en beredeneer welke het verschil tussen 5,5 en 11 minuten kan verklaren. Welke data verzamel je om het model te verbeteren?
Read the worked answer
Aannames: (a) aankomsten zijn gelijkmatig verdeeld over 60 minuten; (b) de bedieningstijd is constant 20 seconden; (c) de tijdstap van één minuut is fijn genoeg; (d) niemand haakt af bij een lange rij; (e) beide balies zijn altijd open.
Verklaring: de capaciteit is 2 × (60/20) = 6 leerlingen per minuut, dus 360 per uur. Gemiddeld is de bezettingsgraad 300/360 ≈ 0,83. Maar in de eerste 20 minuten arriveren 180 leerlingen, dus 9 per minuut tegen een capaciteit van 6 per minuut. De rij groeit dan met 3 per minuut tot ongeveer 60 leerlingen; die 60 moeten vervolgens worden weggewerkt, wat bij 6 per minuut nog 10 minuten kost. Dat verklaart de gemeten 11 minuten, terwijl het model met een vlakke aankomst een kleine 6 minuten vindt. De variabele bedieningstijd (25 s gemiddeld, uitschieters naar 60 s) verergert dit.
Benodigde data: aankomsttijden per leerling per minuut, bedieningstijden per transactie, aantal afhakers en de tijdstippen waarop balies sluiten. Meet die op minimaal vijf dagen, inclusief een drukke dag.
2. Leg het verschil uit tussen verificatie en validatie van dit model en bepaal welke stap de leerling als eerste moet zetten.
Read the worked answer
Verificatie vraagt: doet het model wat ik bedoelde? Test met extreme gevallen: nul aankomsten moet een lege rij geven; één balie met een aankomst van 1 per minuut moet een oplopende rij geven; het totaal aantal bediende leerlingen plus de rij moet altijd gelijk zijn aan het aantal aangekomen leerlingen (behoudswet). Zo vind je programmeerfouten zoals een tijdstap die aankomsten dubbel telt.
Validatie vraagt: lijkt het model op de werkelijkheid? Vergelijk de voorspelde wachttijd en rij lengte per 5 minuten met de gemeten waarden, en niet alleen het gemiddelde over de hele pauze. Een model kan een aardig gemiddelde geven en toch het patroon volledig missen.
Eerste stap: valideren op het tijdspatroon. Zet de gemeten aankomstverdeling en de gemeten bedieningstijden in het model en kijk of de piek om 12:25 terugkomt. Pas daarna is het zinvol om scenario's te draaien. Verificatie zonder validatie levert een correct werkend model op dat de verkeerde werkelijkheid beschrijft.
3. De teamleider wil met het model beslissen over een derde balie. Beargumenteer welke uitspraken het model wel en niet onderbouwt en hoe je met een prototype of aangepast model tot een besluit komt.
Read the worked answer
Wel onderbouwd: de richting van het probleem. Met een piekbelasting van 9 aankomsten per minuut tegen 6 bedieningen per minuut is de rij structureel en kan een derde balie de wachttijd sterk verkorten. Ook de conclusie dat het gemiddelde over de hele pauze misleidend is, volgt uit de data.
Niet onderbouwd: de uitspraak dat een derde balie niet nodig is, en elk exact getal in minuten. Het model is niet gevalideerd op het tijdspatroon, heeft een te grove tijdstap, gaat uit van constante bedieningstijd en negeert afhakers. Met een tijdstap van één minuut bij 9 aankomsten per minuut zijn aankomsten te sterk gebundeld, wat de rij systematisch vertekent.
Aanpak: bouw het model om met de gemeten aankomstverdeling, een variabele bedieningstijd (driehoeksverdeling met gemiddelde 25 s en maximum 60 s) en een tijdstap van 5 seconden. Draai scenario's: twee balies, drie balies, en een voorafbestel-of ophaalbalie. Voer een gevoeligheidsanalyse uit op het aandeel piekaarivisten. Test daarna de goedkoopste optie in de praktijk als prototype, bijvoorbeeld twee weken een mobiele ophaalbalie, en meet opnieuw wachttijd en rij lengte. Het model stuurt de keuze, de meting beslist.