Je geeft een softwarebedrijf een gecompliceerde opdracht voor optimalisatie van enkele belangrijke processen via algoritmen. Grote kans dat dit bedrijf aanklopt bij CODeS, een onderzoeksgroep van het Departement Computerwetenschappen, KU Leuven. Professor Greet Vanden Berghe leidt de afdeling op de Technologiecampus in Gent.
Haar team en haar studenten zijn gespecialiseerd in planning- en optimalisatiealgoritmen, liefst in praktische situaties. Het zijn echte toppers, die in de rest van de wereld worden beschouwd als absolute voorlopers. ‘Wat wij doen is complexe logistieke processen zodanig organiseren dat er ergens KPI’s verbeterd worden. We behalen met algoritmen gemakkelijk 20 procent verbetering in efficiency, maar die KPI’s moeten dan wel gedefinieerd worden.’ En daar wringt het eerste schoentje al.
De KPI die meestal verbeterd moet worden, is de kost. Alleen blijkt dat niet altijd duidelijk is waardoor kosten nu precies worden bepaald. ‘Veel ondernemers zien het verband niet tussen de facturen die ze betalen en de activiteiten die daarop invloed uitoefenen. Wat volgens het bedrijf moet gebeuren, komt niet altijd overeen met wat nu echt impact heeft op het verminderen van de kosten. Als transportbedrijf denk je dat je met het beter beladen van je vrachtwagens de kosten omlaag kan brengen. ‘Het kan best zijn dat wij door een halve dag met een halflege vrachtwagen rond te rijden een betere oplossing vinden. Wat dit bedrijf in feite wil minimaliseren is de kostprijs van de chauffeurs en de kostprijs per kilometer.’
Ander voorbeeld: een geautomatiseerd magazijn werkt overdag met kranen en pickers. Het bedrijf vraagt om ‘s nachts de kranen in te zetten voor optimalisatie van het magazijn. Het was immers flinke investering en zo kunnen de kranen ook ‘s nachts nuttig worden gebruikt. ‘Wij hebben dan achterhaald wat de werkelijke kost is, dat zijn de pickers. De kraan brengt een bak waar de pickers een onderdeel uithalen, een tweede kraan brengt een bak waar ze een onderdeel uithalen en dan moeten ze eventjes wachten op de derde kraan voor ze alles ineen kunnen steken. De wachttijd van die mensen, dat is de kost, of een kraan ‘s nachts werkt of niet, dat doet er eigenlijk niet toe. Werken met algoritmen vraagt een andere manier van kijken naar je processen en dat is niet gemakkelijk.’
‘De problemen die algoritmen oplossen zijn zo moeilijk dat je niet kan verwachten dat mensen met een goede oplossing komen’, geeft de prof aan. ‘Als wij manueel dozen in een container laden, dan is de vraag hoe je die zodanig schikt dat er zoveel mogelijk in kunnen. Wij zouden de zwaarste eerst in de container zetten, gevolgd door de grootste, enzovoort. Voor ons is dat logisch, maar zo kom je op een oplossing uit die heel ver naast de oplossing van het algoritme zit. Algoritmen gebruiken nu eenmaal geen stappenplannen zoals wij.’
Een container laden, is dan nog peanuts vergeleken bij een vliegtuig. Dan gaat het over het maximaliseren van de plaatsing van ULD’s, de containers of pallets voor luchtvracht. Daarbij komen niet alleen heel wat ingewikkelde veiligheidscriteria kijken. ‘De klant wil ook dat het zwaartepunt van het vliegtuig na het laden zo dicht mogelijk bij het optimale zwaartepunt van de constructeur blijft. Zo zijn er minder correcties nodig en is het brandstofgebruik ook minder. Het probleem is dat gedurende de vlucht dat zwaartepunt voortdurend verschuift. De brandstof wordt uit de vleugels gehaald en ook als dat vliegtuig even scheef hangt, zit dat zwaartepunt ergens anders. Voor mensen is dat allemaal heel lang rekenen en puzzelen. Wij hebben het in enkele milliseconden kunnen oplossen en zelfs nog een aantal containers kunnen bijvoegen. Dat algoritme is nu opgenomen in de software van B.Rekencentra die wordt gebruikt voor verschillende grote luchtvaartmaatschappijen.’
Niet iedereen is blij met de resultaten van de algoritmen, weet Vanden Berghe uit ervaring. ‘Het algoritme maakt de juiste keuze op basis van kosten en/of capaciteit, maar de mensen kunnen de uitkomst niet altijd verdragen. Ik heb er zelf geen problemen mee om vroeg les te geven, maar niet iedereen wil dat graag. Een algoritme zou mij dan iedere morgen om 8 uur inplannen. Sommige collega’s zouden daar blij mee zijn, maar ik niet, want dat is voor mij niet te combineren met andere verplichtingen voor de faculteit. Ieder project zit zo vol met verborgen criteria.’
Ze geeft het voorbeeld van truckdispatching op een terminal voor minerale oliën in een Vlaamse haven. De tankwagens worden bij een laadstation aan- en losgekoppeld, en operatoren superviseren dit proces. De doorlooptijd van die vrachtwagens moest geminimaliseerd worden. ‘Wij stelden voor om de operatoren over de hele terminal in te plannen. Maar we kregen daar een nee op, omdat ze dan te veel moesten stappen. Ze zouden beter bij hun zone blijven. Dat zijn dus verborgen criteria. Het is ook een typische reactie van menselijke planners die zo hun manier van werken hebben, maar wij werken nu eenmaal anders. Uiteindelijk bleek dat er met ons algoritme nog wat speling in de planning zat. Ons systeem zou ook nog werken als een operator ziek zou vallen. De opdrachtgever zag echter een mogelijkheid om met minder personeel te werken. Nog zo’n verborgen criterium: eigenlijk wilde hij de personeelskosten omlaag.’
Bedrijven kiezen er soms bewust voor om de voorgestelde optimalisatie niet in te voeren, op basis van dergelijke verborgen criteria. Transportbedrijven hebben moeite om chauffeurs te vinden, geeft ze nog een voorbeeld. ‘Sommige bedrijven laten dan chauffeurs alle dagen dezelfde rit doen, omdat dat rust geeft en ze dan niet weglopen. Wij zeggen dan dat die ritten echt niet efficiënt zijn, dat ze hun wagen die dag beter anders laten rijden. Daar is het voordeel dan dat ze een chauffeur minder nodig hebben en dat ze iemand een dag verlof kunnen geven. Ze gaan dat soms niet doen, omdat ze weten dat de mensen dat niet graag hebben. Dat soort dingen moeten we ook weten voor het ontwikkelen van een algoritme.’
Bedrijven willen altijd graag weten wat zo’n algoritme oplevert. Daarvoor moet je wel de juiste data hebben. En daar komt heel wat bij kijken, zo blijkt uit het voorbeeld van een Vlaamse rederij. Hun binnenvaartschepen halen containers op van terminals en brengen die naar Antwerpen, Zeebrugge of Rotterdam.
‘Ze doen elke week hetzelfde, maar dat is niet efficiënt want de vraag is niet elke week hetzelfde. Wij hebben daar een optimalisatiemethode voor uitgewerkt, maar we wilden ook bewijzen dat wij het beter konden doen dan zij. De enige informatie die dat bedrijf kon geven, was de brandstofprijs gedurende één maand van zes lichters. Voor ons had dat geen enkele waarde, want we weten niet wat die schepen hebben vervoerd. Zijn ze overal op tijd gekomen of niet? Hoeveel brandstof zat er in die schepen aan het begin en aan het einde van de maand? En uit welke richting kwam de wind? Moeten wij werkelijk op die dag leveren, of mogen wij ook een dag te laat komen? Het is dus verschrikkelijk moeilijk om een model te vergelijken met de praktijk.’
De prof heeft er ook alle begrip voor dat het voor bedrijven moeilijk is om die data aan te leveren. ‘Maar als ze het doen, gaan ze wel winnen. Dat is absoluut zo. Het probleem bij de bedrijven is vaak tijd. Ze loggen wel van alles van data, maar we moeten er soms ook iemand bij hebben om uit te leggen hoe het zit. Wat mag er nu wel en wat mag er niet? Sommige beperkingen zijn er, omdat het fysiek niet toegelaten is om iets te doen. Andere zijn er omdat de machines het niet aankunnen of omdat het te veel moeite kost om de configuratie aan te passen.’
‘Wij komen nooit met vuistregels en dat vinden bedrijven moeilijk. Wij stellen alles in vraag en dat zijn bedrijven ook niet gewoon. Wij vragen niet wat er mag, wij vragen waarom er iets niet mag. Als er geen goede reden voor is, dan denken wij dat het mag. Daardoor halen we met algoritmen efficiencywinsten die ongelooflijk zijn. En toch zetten sommige bedrijven liever een nieuw magazijn in plaats van het oude te optimaliseren. De stap is dan gewoon te groot.’
De prof kan het soms niet laten om een experiment te doen, waarin onzinnige beperkingen toch worden opgeheven, vertelt ze. Sportteams doen bijvoorbeeld heel wat kilometers voor de competitie. ‘Met een algoritme kunnen we hier honderdduizenden kilometers schrappen. Wij kunnen dat ook aantonen, maar in de praktijk kan het niet, omdat we de provinciale grenzen niet mogen overschrijden.’
‘We hebben voor een organisatie examens en examinatoren ingepland op diverse locaties. Het doel was om het tijdsbeslag van de betrokken mensen te verminderen. Een groot deel van de kostprijs werd ook bepaald door de huur van de lokalen, en de examentijd stond vast, van 9 tot 12 uur. Dat snapten we niet. Konden de uren niet een beetje opschuiven? Nee, dat kon niet. Daardoor zagen we dat er heel veel lokalen nodig waren, en dat voor maar één examen. Mochten we de examens combineren? Nee, dat mocht ook niet. Wij hebben een optimalisatiemodel gemaakt waarin we toelieten dat de examens een half uur opschoven. De kostprijs zakte in elkaar. Als we een uur opschoven, dan halveerden we zelfs het benodigde aantal lokalen. Wij zijn het dan toch voorzichtig gaan presenteren aan het bedrijf. Met succes, want de CEO was meteen overtuigd.’