27/01/2017


CQM doet ook dit jaar weer mee aan de Kaggle Santa Challenge, een internationale data science wedstijd waar we al onze kennis en kunde van statistiek, simulatie en optimalisatie in kwijt kunnen. Begin januari schreven we al dat we helemaal klaar waren voor de strijd, maar: hoe is het nu na een maand in- en uitpakken van al die zakken vol cadeaus? En vooral: is het CQM team nog op koers voor het podium?

Het probleem: de gewichtstabel van de cadeaus is kwijt

Elk jaar levert de Kerstman samen met z’n elfjes duizenden cadeaus aan lieve kindjes over de hele wereld. En elk jaar gaat er wel iets mis. Dit jaar is de gewichtstabel van de cadeautjes kwijtgeraakt. Dat betekent dat het niet duidelijk is hoeveel ieder cadeautje weegt en daarmee is dus ook niet bekend welke cadeautjes bij elkaar in de zak kunnen. Een zak mag niet meer wegen dan 50 pond.

Zakken boven de 50 pond worden afgekeurd en in beslag genomen door het Noordpoolse ministerie van werk. Aan de deelnemende teams van de Santa Challenge de uitdaging om de cadeautjes zo over de zakken te verdelen dat er zo min mogelijk zakken worden afgekeurd en dat er qua gewicht zo veel mogelijk cadeaus bij de kindjes terecht komen. 

Waar zit de variatie?

Ook de Kerstman weet: focus is belangrijk bij het inkoopbeleid. Daarom hanteert hij maar negen verschillende categorieën voor cadeaus. Daar kan Sinterklaas nog jaloers op zijn J. Maar dan nog: er zijn natuurlijk heel veel verschillende speelgoedpaarden, en niet ieder paard weegt evenveel. Gelukkig weten we wel hoeveel een speelgoedpaard gemiddeld weegt en hoe het ongeveer verdeeld is. Maar de precieze gewichten van paard_1, paard_2 en paard_3, die zijn onbekend.

Hoe pakken we het aan?

Ieder team mag drie keer per dag een ‘oplossing’ insturen naar de wedstrijdcommissie. Een oplossing bestaat uit maximaal 1000 zakken met in iedere zak minstens drie specifieke cadeautjes. Je ontvangt vervolgens één getal, namelijk het totaal gewicht aan cadeautjes in de toegelaten zakken.

Zodra de challenge bekend was, begon het op CQM overal te zoemen: wat is handig? Hoe schat je nu in welk cadeautje hoeveel weegt? Geheel volgens onze CQM manier proberen we het probleem af te pellen en te structureren. Het CQM team is begonnen met het opstellen en analyseren van patronen. Een patroon bevat het aantal cadeautjes van ieder type dat in de zak gaat. Een patroon kan dus zijn: 2 paarden, 1 fiets, 3 treinen en een bal. Vervolgens bepalen we van ieder patroon het verwachte gewicht van de zak en de bijbehorende verdeling. Op deze manier krijgen we zicht op welke combinaties van cadeautjes een goede kans hebben om door de controle te komen. Met deze kansverdelingen in handen zijn we gaan optimaliseren. We wijzen de cadeautjes toe aan de zakken waarbij we proberen de te verwachten waarde te maximaliseren.

En: wordt het wat?

De hierboven beschreven methode is heel geschikt om een basisoplossing te maken die het gemiddeld best goed doet. Echter, het gaat in deze challenge niet om een best goede oplossing, maar om de zoektocht naar één specifieke uitzonderlijk goede oplossing.

Een hoge verwachte waarde is leuk, maar in dit geval is het interessanter om de kans op een uitschieter te verhogen. En om die uitschieter te verkrijgen, moeten we ook meer weten over het specifieke gewicht van de cadeautjes. Daarom zijn we nu bezig om te leren uit de ingestuurde oplossingen. We zoeken naar combinaties van zakken die een goede opbrengst hebben of juist een slechte. De goede combinaties laten we in tact. De slechte zakken proberen we te verbeteren via slimme wisselingen en de overvolle zakken proberen we op een slimme manier te elimineren.

Zo wordt onze oplossing elke dag een beetje beter. En omdat we lokaal aan het verbeteren zijn zie je dat nog niet direct op de ranglijst, maar we weten al dat we een flink betere score achter de hand hebben!

Op naar de eindstreep!

Het leuke van deze challenge is dat we onze verschillende vakgebieden kunnen combineren. Statistische analyses, simulatie, optimalisatie, zoekmethodes en natuurlijk veel logisch denkvermogen. Er ontstaan nieuwe samenwerkingen tussen collega’s en onvermoede talenten komen naar boven. Aanstaande dinsdag 31 januari om middernacht moet de definitieve oplossing binnen zijn. Dan gaan we zien wie dit jaar de grootste vriend van de Kerstman is.

Sander, Lieneke, Jeroen, Daphne, Johan, Tom, Jacob Jan en Marijke: heel veel succes met de laatste loodjes! 

 

Lees ook:

Jacob Jan Paulus
Jacob Jan Paulus helpt je graag verder Neem contact op