Wiskunde is soms erg abstract. Hierdoor is het soms moeilijk om het aan anderen uit te leggen. Wanneer wiskundigen met een bepaald abstract onderwerp bezig zijn, hebben ze vaak wel een bepaald beeld in hun hoofd. Dit beeld uittekenen en tot leven brengen helpt dan vaak bij het overbrengen van zulke ideeën.
Ik vind het zelf altijd leuk om animaties te maken om abstracte wiskundige ideeën over te brengen. Voor de Network Pages, een website van mijn onderzoeksinstituut waar we netwerkwetenschap proberen uit te leggen aan niet-wiskundigen, maak ik ook vaak zulke visualisaties.
Bottleneckdetectie
Zo maakte ik bijvoorbeeld onderstaande visualisatie van een algoritme dat de ‘bottleneck’ in een netwerk vindt. In het begin geeft het algoritme iedere knoop van het netwerk een willekeurig gewicht. Vervolgens update het algoritme deze gewichten. Het nieuwe gewicht van een knoop wordt gekozen op basis van de gewichten van de knopen die met deze knoop zijn verbonden. Als je dit vaak genoeg herhaalt, hebben de knopen aan de ene kant van de bottleneck uiteindelijk alleen maar positieve gewichten, terwijl de gewichten aan de andere kant van de bottleneck negatief zijn. Als je deze uitleg leest, geloof je dat misschien nog niet direct. Maar als je het uitbeeldt met een animatie zoals hieronder, wordt het idee duidelijker.
Zulke visualisaties helpen bij het begrijpen van abstracte wiskundige ideeën. Maar een visualisatie is niet hetzelfde als een bewijs dat dit idee ook klopt. Als je het algoritme van deze visualisatie vaak ‘afspeelt’ en ziet dat dit algoritme iedere keer de bottleneck weet te vinden, krijg je steeds meer vertrouwen in het feit dat dit algoritme inderdaad werkt. Maar door alleen te kijken weet je het nooit helemaal zeker. Om het wél zeker te weten, is een wiskundig bewijs nodig. Hiervoor moet je de wiskundige bewering eerst heel precies formuleren, en daarna op basis van logische redeneringen deduceren dat dit waar is. Maar om zo’n bewijs te vinden, helpt het om eerst intuïtie te krijgen bij het algoritme. Dit kan bijvoorbeeld door met zo’n visualisatie te spelen.
Verspreiding van meningen
Visualisaties helpen ook om een inzicht te krijgen in de werking van wiskundige modellen. Laatst maakte ik bijvoorbeeld ook nog een visualisatie van een versimpeld model dat beschrijft hoe mensen elkaars meningen beïnvloeden. In de werkelijkheid werkt dat natuurlijk niet zo simpel, omdat niet iedereen zich zo eenvoudig laat ompraten. Maar bij dit vereenvoudigde model is dat voor het gemak wel even zo. Iedere persoon is een knoop in het netwerk en en een verbinding tussen twee personen betekent dat deze elkaars mening kunnen beïnvloeden. We nemen aan dat er twee meningen zijn (bijvoorbeeld ‘voor’ of ‘tegen’) en kleuren iedere knoop groen of rood aan de hand van de mening die de persoon op dat moment heeft.
De meningen veranderen als volgt: op iedere stap kiezen we een willekeurige knoop X en kiezen we een willekeurige knoop Y die met X verbonden is. Als Y een andere kleur heeft dan X, veranderen we de kleur van Y in de kleur van X. Je kan dit model als volgt inbeelden: op iedere stap print een willekeurige persoon een superovertuigende flyer uit en deelt deze uit aan een bekende.
Na genoeg stappen hebben alle knopen uiteindelijk dezelfde kleur. Maar het aantal stappen is willekeurig en hangt af van het netwerk. Hieronder zie je een visualisatie van dit model op een klein netwerk van vijf knopen. Je ziet dat met zo’n klein netwerkje, de knopen vaak al na een klein aantal stappen allemaal dezelfde kleur hebben, maar dat dit niet per se de kleur is die op het begin in de meerderheid was.
Willekeurige netwerken
Vaak worden deze modellen gesimuleerd op willekeurig gegenereerde netwerken. De meest gebruikte manier om zo’n willekeurig netwerk te bouwen is als volgt: eerst teken je voor iedere knoop een aantal ‘uiteinden’ (het aantal buren dat deze knoop uiteindelijk moet hebben). Vervolgens verbind je deze uiteinden willekeurig met elkaar. Op deze manier is het mogelijk dat knopen met zichzelf worden verbonden of dat sommige knopen meerdere keren met elkaar zijn verbonden. Maar als het aantal knopen groot genoeg is, is het aantal van zulke ‘rare’ verbindingen verwaarloosbaar. In onderstaande visualisatie zie je hoe zo’n netwerk wordt gegenereerd. Vervolgens kun je ook simuleren hoe lang het duurt voordat alle knopen dezelfde kleur hebben.
Als je hier een tijdje mee speelt, valt het je misschien op dat het erg lang duurt voordat alle knopen dezelfde kleur hebben. Ook valt je misschien op dat de knopen met veel verbindingen in dit model niet zo veel invloed hebben op de kleur die het netwerk uiteindelijk krijgt.
Naast dat zulke visualisaties helpen met het overbrengen van wiskunde, zijn ze natuurlijk ook leuk om te zien. Je kan je misschien wel voorstellen dat tijdens een presentatie vol met wiskundige formules, het publiek blij is om af en toe wat bewegende beelden te zien. Het brengt wiskunde tot leven.