De voorafgaande artikelen gaan over AlphaZero. AlphaZero is een van die z.g. "algoritmes" waar men het tegenwoordig vaak over heeft. Bijna net zo vaak zonder verstand van zaken overigens. Kunstmatige intelligentie, daar hebben we het hier over, maakt in tegenstelling tot traditionele programma's nu juist geen gebruik van "algoritmes". Maar genoeg daarover. Het bijzondere van AlphaZero is dat het kan leren zonder dat er voorbeelden nodig zijn. Het is volledig zelflerend. Alleen de spelregels hoeven te worden ingevoerd. Onlangs heeft men bij Google AlphaZero op schaken losgelaten. En het lukte Google om het systeem, binnen 4 uur(!), zo goed te laten schaken dat het beste “gewone” schaakprogramma (ELO 3500) werd verpletterd. From scratch! Dus zonder er ook maar een milimeter schaakkennis in te pompen. (Voor de geïnteresseerden zijn hier wat Youtube filmpjes over het principe wat door de firma Deepmind werd bedacht. Hier een wat meer conceptueel/technische omschrijving voor iedereen met wiskunde in zijn pakket.)
Voor mij een reden om me daar ook eens in te verdiepen en nu wil het toeval dat ik toch al bezig was om een door mij verzonnen spelletje in een app te gieten. Dat schoot niet echt op. Je moet je maar eens voorstellen dat er nog geen schaken bestaat en dat jij daarvoor, op een dag, de spelregels bedenkt. Dan ben je echt nog nergens.
Het lastigste: je weet niet wat je niet weet. En je weet zelfs niet waar je dat zou moeten zoeken. Stel dat je slechts de spelregels weet van schaken. Dan vermoed je echt nog niet dat het handig is om het centrum te bezetten, te rokeren en je stukken te ontwikkelen om tot winst te komen. Kom er maar eens op.
AlphaZero echter, leent zich bij uitstek om deze leemte te vullen. Het is alsof een buitenaards wezen je hier een handje bij helpt. En, het lost een probleem op waar ik zelf altijd heel snel tegen aanloop: je wordt niet langer gehinderd door de grenzen van je eigen kunnen. Vooral om deze reden ben ik erg blij dat het mij gelukt is om mijn spelletje aan aan de principes van AlphaZero te koppelen. Uiteraard niet met de speculaire resultaten als die van Google. Die doet het met apparatuur van 25.000.000 Euro en met een leger aan afgestudeerde wiskundigen. Wat dat betreft heb ik, als amateurtje uit Eemnes, nog een factortje of 10.000 in te halen. Maar het systeem van mij leert absoluut al iets.
Het spel waar ik mee bezig ben kan op vrijwel elk bordformaat worden gespeeld. 4*4, 4*6, 8*8 enzovoort. Waarschijnlijk ook asymetrisch, dus 5*5 met verschillende aantallen velden voor elk van de spelers. Het aantal verschillende stukken staat ook (nog) niet vast maar waarschijnlijk >2. Zelfs het bereik van de stukken is nog niet bepaald. In tegenstelling tot schaken is alles is dus super schaalbaar. Voor mijn experimenten met AlphaZero is dat een uitermate handige eigenschap. Hieronder een beschrijving:
Dujoku:
Het spel is een soort van Sudoku. Niet gewoon Sudoku, maar Sudoku wat je tegen elkaar kan spelen. In de versie waarmee ik geregeld expirimenteer heeft het ook iets met het 8-Dame probleem. Die dames mogen elkaar niet “raken”. Voort heb je een zwart-wit bord en je bent zelf wit of zwart. Er zijn verschillend gekleurde stukken die je net zoals de nummers bij Sudoku in willekeurige volgorde op het bord plaatst. Je hebt eigenlijk geen eigen stukken maar wel eigen velden. Mits je kan zetten zet je om en om op een veld van je eigen kleur (wit of zwart). Je speelt dus als wit op de witte velden en als zwart op de zwarte. Het spel begint met een leeg bord en stukken die geplaatst zijn blijven op hun plek.
Het spel gaat als volgt:
Bij Sudoko mag je een "stuk", bijvoorbeeld een 8, niet op een horizontale- of verticale lijn en niet in hetzelfde “vak” zetten als daar al een andere 8 staat. Dit spel is ietsje anders. In de variant hieronder heeft een stuk hetzelfde bereik als een dame bij schaken. En je mag geen stuk van dezelfde kleur binnen dit damebereik zetten. Dus:
1. Wit begint en zet een stuk op een wit veld
2. Zwart zet daarna een stuk. Op een zwart veld. Als dit stuk van dezelfde kleur heeft als waar wit mee heeft gezet, mag zwart dit stuk niet binnen het (dame)bereik zetten van dat stuk.
Dit blijft zich herhalen. Als iemand niet meer kan zetten gaat zijn beurt voorbij en mag zijn tegenstander opnieuw zetten. Mits hij wél kan zetten uiteraard. Dit gaat door totdat ook hij niet meer kan zetten. Als beide spelers niet meer kunnen zetten worden de stukken op de witte en zwarte velden geteld. Een uitslag is dan bijvoorbeeld 10-6 en wit wint met 4 punten verschil.
Hier een voorbeeld op een 6*6 bord met maximaal 3 verschillende stukken. Die verschilende stukken hebben hier allemaal het bereik van een dame.
Zet 01 R.f1 Wit zet altjd op een wit veld Zet 02 -R.d2 Zwart zet altijd op een zwart veld Zet 03 R.b3 Zet 04 -B.b4 Zet 05 B.f3 Zet 06 -B.c1 Zet 07 G.f5 Zet 08 -G.a3 Zet 09 G.d1 Zet 10 -G.b6 Zet 11 B.e6 Zet 12 -R.c5 Het verlies wordt nu duidelijk, -R.e5 had hetzelfde resultaat gehad. Zet 13 R.e4 Zwart kan hierna niet zetten, dus wit mag verder Zet 14 G.c4 Hierna kan ook wit niet meer zetten. De stukken worden getelt en wit wint met 2 punten verschil.
Is dit een goed spel?
Ik heb geen flauw benul. Wat is dat eigenlijk “een goed spel”? Schaken ontleent, denk ik, een deel van zijn charme aan het feit hoe het er uitziet, maar vooral aan de vele mogelijkheden die het heeft. Dus aan de hoeveelheid verschillende spelletjes die er mee gespeeld kunnen worden. Is dat ook bij dit spel het geval? Dat lijkt er wel op. Als je dit spel op en 8*8 bord speelt, met 8 verschillende stukken, is het aantal mogelijkheden na de eerste 2 zetten groter bij schaken waar dat ongeveer 400 is. Maar het aantal mogelijkheden loopt bij mijn spel na elke zet sterk terug. Dat, dat woekeren met de ruimte, is nu eenmaal het wezenskenmerk van het spel.
Een spel moet simpel zijn en ingewikkeld is dit spel zeker niet. Aan een beetje schaker kan ik het principe binnen 5 minuten uitleggen. Maar een spel is slechts leuk totdat je het door hebt. Een spel mag dus niet zo simpel zijn dat het “oplosbaar” is. Of althans niet te snel oplosbaar. Boter, kaas en eieren is zo’n “oplosbaar” spel en daardoor vervelend. Als beide spelers het spel goed spelen wordt het altijd remise. Men heeft overigens het vermoeden dat schaken ook “oplosbaar” is. Bij dit spel weet ik dat nog allemaal niet. Ik hoop dat ik met AlphaZero een antwoord op deze vraag krijg.
Verder heeft het spel wel wat elementen waardoor het zich onderscheidt. Eigen velden per speler bijvoorbeeld en geen eigen stukken. Ook de uitslagen als 6-9 en de schaalbaarheid van bord en stukken is bijzonder. Er zijn voorts nog talloze varianten te bedenken. Bijvoorbeeld met stukken die het bereik van torens hebben. In mijn expirimenten blijkt die variant heel goed te werken. Ook paardenvarianten of combinaties van bereik is mogelijk. Of iets met 3 spelers. Misschien is het wel wat.
K. de Jong Ⓒ