Dag 4 - 25 juni

De tweede score is de 'danger score' van het bord, welke rekening houdt met toekomstige omstandigheden. Het is bij Monopoly heel belangrijk om vooruit te denken. Op korte termijn kan het kopen van een straat heel gunstig zijn (de score van de speler gaat heel erg vooruit), maar op iets langere termijn is het wellicht desastreus als dit leidt tot het faillissement van de speler. Om met mogelijke toekomstige posities rekening te houden, is gekozen om een Markovketen te gebruiken. De verschillende hokjes op het bord kunnen dan gezien worden als staten en de kans om op een bepaalde positie terecht te komen als overgangen. Dus gegeven een bepaalde positie kan berekend worden wat de kans is om binnen een aantal beurten op een andere positie uit te komen. Deze posities zijn als kolomvector te representeren waarin alleen de huidige plek kans 1 heeft.Het is eenvoudig om een matrix te maken van één worp met de dobbelstenen. Door deze matrix herhaaldelijk toe te passen, kan ook uitgerekend worden wat de kans is om op een bepaalde positie te komen na bijvoorbeeld drie zetten. We zijn echter geïnteresseerd in de kans dat de speler op een positie belandt binnen drie beurten. Om dit de berekenen worden al de kansen nog eens bij elkaar opgeteld: de kans om na één zet op die positie te belanden, de kans daar te eindigen na twee zetten en die na drie zetten. Door die uiteindelijke kans te vermenigvuldigen met het bedrag dat de speler moet betalen aan de tegenstander als hij erop komt, en dit voor alle vakjes te doen en dit bij elkaar op te tellen, kan een ‘danger score’ worden uitgerekend. Deze wordt vervolgens meegegeven en wordt meegewogen in de beslissing om bijvoorbeeld een huis te kopen (de threshold ligt anders hierdoor).

De markovketen is ook voor te stellen door dit als een boom te visualizeren, zoals te zien in de figuur hiernaast. De branching factor is dan gelijk aan het aantal ogen dat er gegooid kan worden per beurt en de kans op elke mogelijkheid kan worden uitgerekend door telkens de kans op die edge keer elkaar te doen. Matrices zijn uiteindelijk wel veel sneller, aangezien deze boom een exponentiële complexiteit heeft, wat bij de matrices veel minder het geval is.

Parameters fine-tunen en situaties testen

Zoals we eerder al hadden gevonden, kan het spel op meerdere manieren gespeeld worden. Het kan zeer agressief gespeeld worden, waarbij er grote risico’s genomen worden (op een hotel belanden met weinig geld), maar waarbij het voor de tegenstander ook lastiger wordt gemaakt. Maar natuurlijk kan ook zeer defensief gespeeld worden, zodanig dat er altijd geld achter de hand blijft in geval van nood. Deze tactiek is zeer eenvoudig in te stellen en aan te passen in de implementatie door de ‘threshold’ te veranderen.

Uiteindelijk zijn we bij dit testen erop uitgekomen dat de threshold afhankelijk is van welke speler aan de winnende hand is. Als de AI-speler heel erg voorstaat, kan hij het beste geen risico’s nemen en het spel gewoon zo laten uitspelen (de andere speler kan zo niet makkelijk terugkomen), maar als de AI-speler achterstaat, moet er soms juist wel risico genomen worden om de achterstand in te kunnen halen. Voor een goed en intelligent spel is het echter van belang dat er een goede balans tussen agressief en defensief spelen wordt gevonden. Hiervoor hebben we allerlei verschillende Monopoly-configuraties geanalyseerd. Zowel extreme gevallen, waarin het normaal gesproken duidelijk zou zijn wat er gekozen moet worden, als in twijfelsituaties waarin beide keuzes wel te beargumenteren zijn (maar het juist interessant is om te zien wat de AI doet). Deze situaties zijn (deels met de hand, deels met de computer) verder uitgespeeld en aan de hand hiervan zijn de waardes bijgesteld.

Zoals al eerder beschreven, wordt er een score bijgehouden voor elke speler die aangeeft hoe ‘gunstig’ de speler ervoor staat. Door het verschil tussen deze scores te bekijken, kan onderscheid gemaakt worden tussen situaties waarin een AI voorstaat of achterstaat en kan hierop ingespeeld worden door agressiever of juist meer defensief te spelen.

Danger score : vooruitdenken met Markovketens