Algoritmes voor alledag

Slim én lui | Moeite met de chaos in je klerenkast? De stapels papier op je bureau? De aankoop van een huis? Ga dan te werk als een computer. Opruimen of snel handelen is niet altijd het beste.

Je doet de deur van je kledingkast open en schrikt van de chaos. De kast staat op ploffen, truien, T-shirts en onderbroeken liggen kriskras door elkaar en daartussenin vind je die ene verloren sok. Je wilt opruimen, maar er moeten twee besluiten worden genomen: Welke kleding gooi je weg? En hoe ga je de kledingstukken organiseren zodat je niets meer kwijtraakt?

Het ligt misschien niet voor de hand een computerprogrammeur om hulp te vragen, maar de kledingkast lijkt meer op het geheugen van een computer dan je zou denken. En de makers van die computer houden zich bijna obsessief bezig met de vraag hoe ze zo efficiënt mogelijk van opslagruimte gebruik kunnen maken. Want opslag kost in de machine denkkracht, ruimte en geld.

Cache

Neem de cache (spreek uit: kesj) van je computer, een plek waar gegevens tijdelijk worden opgeslagen om er zo snel mogelijk gebruik van te kunnen maken. Als deze cache vol raakt moet de computer besluiten data te verplaatsen naar een minder goed bereikbare plek. Om te bepalen welke informatie wordt verplaatst gebruiken programmeurs algoritmes, zoals het LRU-principe: Least Recently Used. De informatie die je het langst geleden hebt gebruikt, wordt het eerst uit de cache gegooid om plaats te maken voor nieuwe data. Het zou zomaar een tip kunnen zijn voor die overvolle kledingkast.

Mensen moeten, net als computers, dagelijks besluiten nemen die te maken hebben met een gebrek aan tijd, ruimte en informatie. Koop ik dit huis of ga ik nog meer huizen bezichtigen? Welke klusjes hebben vandaag prioriteit? De slimste computerwetenschappers buigen zich dagelijks over problemen die daar verdacht veel op lijken nu computers steeds complexer worden.

Informatica is eigenlijk de kunst van het omgaan met beperkingen, bespraken studievrienden Tom Griffiths en Brian Christian toen ze op een avond aan het diner zaten. Ze schreven er een boek over: 'Algorithms to Live By', dat je op een heel nieuwe manier naar de computer doet kijken.

Optimale oplossing

Computers hebben het zwaar. We vragen ze om een miljoen complexe taken uit te voeren, en dat dan zo snel mogelijk, want we houden niet van wachten. Toch hebben ze geen reden tot klagen, want ze gebruiken algoritmes waarmee ze steeds afwegen wat de optimale oplossing is, vertelt Griffiths op een vroege ochtend vanuit zijn werkkamer.

Algoritmes zijn reeksen instructies om problemen stap voor stap op te lossen, een soort rekenrecepten. Als je een trui breit of een recept uit een kookboek maakt, gebruik je een algoritme, zou je kunnen zeggen. Het woord algoritme komt van de Perzische wiskundige Al-Chwarizmi, die in de negende eeuw een boek schreef over rekenen met Indiase cijfers. Mensen maken al eeuwen gebruik van algoritmes in wiskunde en statistiek, maar ze worden nog veel gretiger ingezet in computers. Griffiths: "Een goed algoritme zorgt ervoor dat je de beste oplossing vindt met zo min mogelijk rekenwerk."

Samen optrekken

Griffiths is professor in psychologie en cognitieve wetenschappen aan de universiteit van Berkeley in Californië, waar hij leiding geeft aan het Computational Cognitive Science Lab. De cognitieve psychologie en de informatica trekken al heel lang samen op, zegt hij, "maar de afgelopen jaren groeien ze steeds verder naar elkaar toe". Hij legt uit waarom dat helemaal niet vreemd is: cognitieve wetenschappen gaan over het verwerken van informatie en ons vermogen om problemen op te lossen, en dat is precies waar computers steeds beter in worden. De twee raken steeds verder vervlochten en zijn niet los van elkaar te zien. Genoeg reden voor hem om eens te kijken of de probleemoplossingsmechanismen van computers niet ook nuttig kunnen zijn in ons dagelijks leven.

Zo onderzocht Griffiths wat we kunnen leren van de manier waarop computers hun prioriteiten stellen. Iedere computer doet aan scheduling, wat betekent dat taakjes waar de processor aandacht aan besteedt op de juiste manier worden verdeeld, om zo overmatige belasting van de processor te voorkomen. Daar hebben programmeurs algoritmes voor gevonden zoals shortest-job-first-scheduling, het proces dat het kortste duurt wordt het eerst gedaan om zo ruimte te maken voor langere processen. Je zou je werkdag ook zo kunnen plannen: eerst alle kleine klusjes doen, en daarna de grote taken waarvoor je veel denkkracht nodig hebt.

Het mooie aan het zoeken naar een oplossing voor een computer is volgens Griffiths dat je het probleem altijd eerst in kleine stukjes moet knippen en het simpeler moet maken om het op te lossen. "Dat dwingt ons vragen te overdenken die we anders niet zouden stellen, zoals: Wat is nu het probleem dat we willen oplossen?"

Misschien klinkt het nog steeds niet zo aanlokkelijk om als een computer te gaan denken. De associatie met kil, berekenend en efficiënt dringt zich op. Maar als je het zo ziet begrijp je de computer niet goed, zegt Griffiths. Computerwetenschappers gaan volgens hem niet op zoek naar de perfecte oplossing, omdat die doorgaans niet bestaat. Ze moeten constant concessies doen in snelheid, tijd en denkkracht, en rekening houden met hun omgeving. "Dit gaat ook over je zorgen maken en heel veel denkkracht verspillen, terwijl dat soms helemaal niet nodig is," zegt Griffiths.

Rekenkundige last

Zelfs computerwetenschappers laten algoritmes gebruikmaken van het toeval, of van het benaderen van een getal als een precieze berekening te lang zou duren, vertelt Griffiths. Hij besluit zijn boek met het begrip van 'rekenkundige vriendelijkheid'. Denk aan dit scenario: je staat met een groep vrienden in de stad en wilt iets gaan eten. Je wilt je mening niet te veel opdringen en zegt: 'Het maakt me niet uit waar we naartoe gaan'. Daarmee leg je de rekenkundige last bij de anderen, want die moeten vervolgens gaan bedenken wat de bedoeling is. Bedenk in plaats daarvan gewoon een restaurant, dan kan de ander ja of nee zeggen. Zo volg je een van de belangrijkste principes van computerwetenschappers: hoe minder rekenkracht er nodig is, hoe beter.

Vrijdenken

Soms loopt ook een computerprogrammeur vast: het probleem wil maar niet opgelost worden, het algoritme loopt spaak. Dan is er altijd nog constraint relaxation, oftewel: denken zonder beperkingen. Schakel bepaalde functies uit, en probeer het opnieuw. Zo kunnen vragen als 'Hoe zou ik dit doen als ik heel veel geld had?' of 'Wat als ik geen angst zou hebben?' tot verrassende inzichten leiden.

Wie is Tom Griffiths?

Tom Griffiths is hoogleraar psychologie en cognitieve wetenschappen aan de Universiteit van Berkeley, Californië, en directeur van het Institute of Cognitive and Brain Sciences aan deze universiteit. Hij houdt zich bezig met de rekenkundige problemen waar mensen in het dagelijks leven tegenaan lopen, hoe ze daarmee omgaan, en wat dat betekent voor de cognitiewetenschap. Samen met computerwetenschapper en filosoof Brian Christian schreef hij Algorithms to Live By: The Computer Science of Human Decisions (uitg. Henry Holt, 2016).

Stapels papier

Het lijkt erg ongeorganiseerd: die grote stapel papieren op uw bureau. De verleiding is misschien groot om die te gaan sorteren, allemaal in verschillende categorieën op kleine stapeltjes. Doe het niet, het kost meer tijd dan al die papieren simpelweg op de stapel te laten liggen. Steeds als u iets nodig heeft, plukt u het uit de stapel en legt u het daarna weer bovenop. Zo ontstaat er vanzelf een systeem van de meest gebruikte papieren bovenop de stapel, en de minst gebruikte documenten onderop.

Kijk, kijken, niet kopen

Dit is nog eens een nuttig percentage voor iedereen op huizenjacht: 37. Bepaal eerst hoeveel huizen u wilt bekijken of hoeveel tijd u wilt besteden aan het zoeken naar een nieuw huis. Volgens het algoritme van de optimale-stop theorie, ook bekend uit de kansrekening, is het verstandig om eerst 37 procent van de huizen te bekijken of 37 procent van de tijd te besteden zonder daarbij een besluit te nemen. Wees pas bereid uw portemonnee te trekken als u na die 37 procent een huis ziet dat beter bevalt dan alle voorgaande huizen. Zo maximaliseert u de kans om de beste woning te vinden.

Meer over

Wilt u iets delen met Trouw?

Tip hier onze journalisten

Op alle verhalen van Trouw rust uiteraard copyright. Linken kan altijd, eventueel met de intro van het stuk erboven.
Wil je tekst overnemen of een video(fragment), foto of illustratie gebruiken, mail dan naar copyright@trouw.nl.
© 2020 DPG Media B.V. - alle rechten voorbehouden