Als planner wil je een planning zo optimaal mogelijk maken. Dus is het logisch om daarbij te kiezen voor een hulpmiddel als ‘de optimizer’. Wil je deze effectief kunnen toepassen, dan moet je daarvoor eerst de voorwaarden scheppen. Kies je voor het automatiseren van een optimale planning, dan is het essentieel om de planregels en doelstellingeneisen heel
precies vast te leggen. Dit klinkt eenvoudig, maar in de praktijk is het vaak een stuk
ingewikkelder. Ik zal uitleggen hoe je dat het beste kunt doen.
Laten we een veelvoorkomend scenario als voorbeeld nemen: stel je voor dat een opdracht een duidelijk tijdvenster heeft. Een klant kiest voor de bezorging van een pakketje of boodschappen tussen 16:00 en 20:00 uur. Dit lijkt op het eerste gezicht een eenvoudige en duidelijke regel.
Combinaties maken planning snel complexer
De complexiteit neemt echter snel toe als een verlader of logistieke partij niet één, maar
meerdere pakketjesopdrachten tegelijkertijd moet afhandelen of bezorgen. Daarbij wil je
natuurlijk dat voor de afhandeling van de pakketjes zo min mogelijk busjes nodig zijn. Hoe combineer je de tijdsrestricties met de behoefte aan het efficiënt gebruik van middelen? Dat is waar de echte uitdaging begint!
Voorbeeld: wel of geen inzet extra busje?
Een voorbeeld: Je kunt een bepaalde opdracht om 19:45 leveren, maar hebt daarvoor wel
een extra busje en chauffeur nodig. Zonder dat extra busje arriveer je pas om 20:15 bij de
klant. Volgens de strikte regels is 20:15 te laat, maar het inzetten van een extra busje brengt aanzienlijke kosten met zich mee.
Harde versus zachte regel
Vanuit menselijk perspectief is hier snel een compromis te vinden: de harde regel om op tijd te zijn verandert in een zachte regel. Je doet je best om op tijd te zijn, maar niet tegen elke prijs. Het vertalen van een zachte regel naar een wiskundig model is natuurlijk niet
eenvoudig. Dat vereist dat een algoritme een balans moet vinden tussen de zachte regel en de andere geldende doelen.
Overigens is er theoretisch gezien een voor de hand liggende oplossing voor deze
balanceeract. Je kunt strafpunten toevoegen voor het te laat zijn en de doelstellingsfunctie
aanpassen. Vanuit optimalisatieoogpunt wil je uiteraard niet alleen het aantal busjes en de
kilometers minimaliseren, maar ook het aantal strafpunten. Dit lijkt een eenvoudige en
praktische oplossing. Hij voldoet aan de eisen van de klant, is eenvoudig te implementeren
en maakt het algoritme niet nodeloos ingewikkelder.
De uitdaging van meerdere doelstellingen
Toch schuilt er ondanks de op het oog eenvoudige oplossing een flinke adder onder het gras. De uitdaging is daarbij géén technische. Er is een doelstellingsfunctie met drie doelen ontstaan: een minimaal aantal busjes, zo min mogelijk kilometers en minimale strafpunten. Iemand, vaak de eindgebruiker, moet nu bepalen hoe deze doelen tegen elkaar af te wegen. En dat is bijzonder moeilijk. Hoeveel minuten te laat staan tegenover 100 extra kilometers? Hoe verhouden extra busjes zich tot een kilometerbesparing? En is deze afweging elke dag hetzelfde?
Algoritme zoekt oplossing voor het verkeerde probleem
In veel realistische planningsproblemen loopt het aantal doelen al snel op tot tien of zelfs
meer. Voor gebruikers wordt het dan bijna onmogelijk om de juiste wegingsfactoren te
bepalen. Het resultaat? Het algoritme zoekt naar de optimale oplossing voor het verkeerde
probleem.
De simpele oplossing: houd het eenvoudig
Wat is dan de juiste oplossing? Het probleem is geen technisch probleem, dus de oplossing hoeft dat ook niet per se te zijn. In plaats van te werken met zachte regels en tegenstrijdige doelstellingen is het beter om te streven naar eenvoud binnen het algoritme. In ons voorbeeld geldt: te laat is te laat. Dit lijkt misschien niet optimaal, maar dat is het wel. In complexe scenario’s met meerdere doelstellingen blijft het model altijd een benadering van de werkelijkheid, geen exacte weergave.
Er is nog een reden waarom dit optimaal is: in een goede planapplicatie blijft de planner altijd eindverantwoordelijk en niet het optimalisatie algoritme. In tegenstelling tot het algoritme mag de menselijke planner best beslissen dat 15 minuten te laat te zijn mag, als daarmee de inzet van een extra busje te voorkomen is. Het algoritme biedt de optimale oplossing binnen een vereenvoudigde modelwereld. De menselijke planner voegt zijn expertise en afwegingen toe en creëert zo de werkelijk optimale oplossing: de ‘More Optimal’-oplossing.
Spelen met zowel harde als zachte regels
Uiteraard is het ook niet zo dat we in een algoritme nooit zachte regels mogen toevoegen. Maar we moeten ons wel goed realiseren wat de nadelen hiervan zijn. Sommige planningsproblemen vragen nu eenmaal om een afweging tussen verschillende prioriteiten. Het is de kunst om te weten wanneer deze uitzonderingen echt nodig zijn. Het is dat spel, die balanceeract, waar we bij More Optimal van genieten.