Computer ontdekt handige wiskundige stellingen
Een zelflerend computerprogramma van het Engelse bedrijf DeepMind heeft nieuwe wiskundige resultaten gevonden, bericht het tijdschrift Nature. Ze gaan over iets dat veel mensen van de middelbare school kennen: matrixvermenigvuldiging.
Het programma, AlphaTensor geheten, liet zien dat die vermenigvuldiging in een aantal gevallen sneller kan dan bekend was. Het nieuwe programma is gebaseerd op AlphaZero, het programma van DeepMind dat een aantal jaar geleden furore maakte door in schaken en in het Chinese bordspel go de sterkste computer- en menselijke tegenstanders te verslaan.
Een matrix is niets anders dan een tabel met getallen. Het vermenigvuldigen van twee matrices houdt in dat er een nieuwe, derde tabel wordt opgesteld door de oorspronkelijke getallen volgens een vast voorschrift met elkaar te vermenigvuldigen en op te tellen.
Matrixvermenigvuldiging
Matrixvermenigvuldiging komt veel voor in allerlei soorten computerberekeningen. Er zit dan ook een praktisch belang aan het zo efficiënt mogelijk te doen.
Pionier daarin was de Duitse wiskundig Volker Strassen, die in 1969 een manier ontdekte om twee willekeurige 2 x 2-matrices te vermenigvuldigen waarbij maar zeven vermenigvuldigingen nodig waren. Sindsdien hebben andere wiskundigen soortgelijke versnellingen gevonden voor matrices van andere formaten.
Betere strategie dan mensen konden verzinnen
Nu heeft AlphaTensor dat onderzoek voor een reeks formaten nog eens overgedaan. In de meeste gevallen herontdekte het programma de snelste door mensen gevonden strategie.
Maar er waren ook een paar gevallen waarin AlphaTensor het beter deed. Zo stond het snelheidsrecord voor de vermenigvuldiging van een 4 x 5- met een 5 x 5-matrix op tachtig vermenigvuldigingen. AlphaTensor heeft dat nu verbeterd tot 76.
Diep neuraal netwerk
Net als AlphaZero is AlphaTensor een zogeheten diep neuraal netwerk, een computerprogramma dat zichzelf een taak kan leren op een manier die is afgekeken van het menselijk brein. En ook AlphaTensor benadert zijn taak als een spel – in dit geval voor één speler.
Bij dat spel zijn de twee te vermenigvuldigen matrices bekend, evenals de outputmatrix. Elke ‘zet’ die de speler doet is een vrij te kiezen vermenigvuldiging of optelling van twee getallen – die uit de beginmatrices komen of het resultaat van de vorige zet zijn. De opgave is om in zo weinig mogelijk stappen de outputmatrix te bereiken.
Succesvolle keuze
Het programma doet een groot aantal complete runs achter elkaar. Ondertussen houdt het bij wat voor soorten keuzes blijken te helpen om het aantal stappen kleiner te maken. Elke keer stelt het programma zichzelf een beetje bij om de kans te vergroten dat het de volgende keer meer van zulke succesvolle keuzen maakt.
Blijkbaar werkt die aanpak ook in de wiskunde. Het resultaat maakt nieuwsgierig wat er op dat gebied nog meer in het vat zit.
Tekst: Timo Können
Beeld: Depositphotos