De beste strategie voor een gok-drank-lieg spel

Goed. Heb het op mijn hart gekregen om het te hebben over gokken, drinken en valsspelen. Kortom, mijn onderzoekje samen met Nico over blufpoker. Dit word een nerd-post van de bovenste plank. Dus keep walking mensen, nothing to see here. Maar ook: hele spacy geanimeerde gifjes op het eind. Aanrader.

Blufpoker dus. Er zijn meerdere varianten van blufpoker. Common hand, of individual hand. Dus ieder met z'n eigen dobbelstenen of dobbelstenen die doorgegeven worden. Ook zijn er varianten met en zonder geld. En er is, uiteraard, een variant waarbij je moet drinken elke keer als je verliest. Deze variant heet "mexicanen" en is vooral populair in studentenhuizen. Tot zover niets verrassends.

Wat wel verrassend is, dit soort computer-gegenereerde kunst is onderdeel van onze methode om een goede strategie te vinden voor blufpoker:

Ons doel is om een strategie te bepalen voor blufpoker die het beste presteert. Waarom? Nou, zoals Nico het zo treffend omschrijft

The advantages of a winning strategy for Liar's Dice are quite clear. Such a strategy could lead to financial gains or quite serious hangover-reduction.

Dit onderzoekje is overigens onderdeel van een vak over speltheorie. We proberen deze optimale strategie te bepalen door een simulatie te schrijven waarbij twee strategiën automatisch een heel lange wedstrijd tegen elkaar spelen. Wie blufpoker kent weet dat er 4 keuzes zijn die je afwisselend moet maken (spelregels hier):

  1. Mijn tegenspeler zegt een bepaalde worp te hebben gegooid: geloof ik hem of niet
  2. Met hoeveel dobbelstenen gooi ik.
  3. Ik heb hoog genoeg gegooid: misschien wil ik alsnog bluffen. Let op: als je te laag gegooid hebt MOET je bluffen, dat is dus geen keuze. Maar soms is het slim om, zelfs al heb je hoog genoeg gegooid, alsnog te bluffen.
  4. Als ik bluf: hoe hard bluf ik dan.

Nu. Puntje 2 is makkelijk. Er is voor elke denkbare situatie in het spel te beredeneren wat het beste aantal dobbelstenen is om te gooien. Hier hebben we een grote tabel van gemaakt. We gaan er van uit dat elke speler, altijd, dit perfect doet. Bij puntje 1,3,4 komt wat meer kijken (zie stuk tussen haakjes) maar de uitkomst is dat we voor elk van deze 3 keuzes een variabele hebben bedacht die we een waarde kunnen geven. Een strategie bestaat dus uit 3 waarden voor deze variabelen. Daarmee kunnen heel veel strategiën in 3 waarden vatten. Een strategie zou bijvoorbeeld kunnen zijn {-1;0;0} dit is in woorden "als iemand een getal zegt zeg ik ALTIJD dat hij bluft, zelf bluf ik nooit en als ik moet bluffen doe ik maar een heel klein beetje bluffen". We kunnen dus een strategie opzetten door 3 waardes te kiezen.

(Even heel technisch de omschrijving van strategiën voor wie dat interessant vind. Sla dit over indien het je niet boeit. Een strategie bestaat uit {CBCM;BC;BA} dat werkt als volgt
CBCM: call bluf chance mod. waarde tussen -1 en 1. Tegenspeler zegt iets gegooid te hebben. Ik bereken de kans dat hij dat, of hoger gegooid heeft. Die is, laten we zeggen, 0.3. Dat betekent dat ik met 1-0.3=0.7=70% zeker weet dat hij LAGER gegooid heeft, dus bluft. Wat ik nu doe is ik ga met 0.7 kans zeggen dat hij bluft. Dit betekent dat als de kans groter word dat iemand bluft dat de kans ook groter word dat ik zeg dat hij bluft. CBCM is een waarde die dit proces een beetje tweaked. We tellen CBCM bij de uitgerekende kans op. Dus stel dat iemand met kans 0.3 deze worp of hoger gegooid heeft dan maken we daarvan 0.3+CBCM. Laten we zeggen, dat word 0.8 (CBCM is dan 0.5). We gaan nu met een kans van 0.2 (in plaats van 0.7) zeggen dat de tegenspeler bluft. Kortom. Een hogere waarde voor CBCM betekent defensiever spelen. Minder vaak zeggen dat iemand bluft. -1 is dus ALTIJD zeggen dat iemand bluft en 1 is NOOIT zeggen dat iemand bluft.
BC: bluff chance. Is eenvoudiger. We hebben hoog genoeg gegooid. Met een bepaalde kans gaan we alsnog bluffen. Waarde tussen 0 en 1 dus. Deze waarde is BC. Dus als BC 0.05 is gaan we met een kans van 5% bluffen, zelfs al is dat niet nodig.
BA: bluff agression. We gaan bluffen. Deze waarde zegt hoe hard. Hiervoor gebruiken we de kansdichtheid (zelfde als bij CBCM) om een bepaalde waarde te gooien, rekeninghoudend met de vorige worp. We pakken de worp die een kansdichtheid heeft zo groot mogelijk maar kleiner dan BA. Dus bij 0 pakken we de eerstvolgende hogere worp. Bij 1 pakken we altijd de worp 666. En bij 0.5 zitten we halverwege qua kansdichtheid.)

Nu willen we deze strategiën nog tegen elkaar laten spelen. Daarvoor gebruiken we evolutionairy game theory. Dat is een vakgebied dat uit de biologie is over komen waaien naar de wiskunde. Dus je komt allerlei termen tegen uit de biologie nog. Boeiende stuff. Het idee is als volgt. We hebben een genenpoule van 1000 cellen. Al deze cellen hebben een bepaalde strategie. We pakken nu 2 cellen er uit, die laten we tegen elkaar spelen. Dan is er een winnaar. Deze winnaar die plant zichzelf voort, dus die stoppen we twee keer terug in de genenpoule. De verliezer sterft uit, dus die verdwijnt uit de genenpoule. Je kan ook doen dat je bij heel-hard-winnen de winnaar zich vaker laat voortplanten. Op deze manier zal, door evolutie, de beste strategie overblijven.

Nu. Laat ik een voorbeeld geven van zo'n genenpoule. Kijk. Zo ziet een genenpoule er uit.

In deze genenpoule zitten 75*75=5625 cellen. Die cellen hebben een kleur. Rood, geel of groen. Die kleur correspondeerd met een strategie. Dus in deze genenpoule zijn 3 strategiën aanwezig. In de versie die wij gebruiken laten we niet cellen tegen willekeurige andere cellen spelen. Maar. We laten ze tegen hun buren spelen. Dus de cel linksboven (rood) speelt tegen de cel onder hem, rechts van hem en schuin onder hem (rood, groen en geel respectievelijk). Na al deze potjes berekenen we voor elke cel welke strategie daar het beste was. Die strategie neemt de cel over. En dat geeft hele leuke plaatjes.

Laten we bijvoorbeeld bovenstaande genenpoule bekijken. De strategieën rood, groen en geel zijn alle drie exact gelijk. Ze maken dus in vergelijkbare situaties vergelijkbare keuzes. Dat betekenent dat ze alle drie een even grote kans hebben om te winnen. Laten we eens kijken hoe die genenpoule zich ontwikkeld door de tijd heen:

De strategiën clusteren. Dat is niet zo gek. Want groepen cellen met dezelfde strategie worden minder snel overgenomen dan losse strategiën. Omdat cellen in het midden alleen maar tegen dezelfde strategie hoeven spelen (dus nooit overgenomen worden) en cellen aan de rand van een cluster grenzen alsnog allemaal aan 3 of 4 cellen van dezelfde strategie. Kortom. Hoe langer je wacht, hoe groter de clusters worden.

Goed. Werkt dit model een beetje? Nou, laten we kijken of er uitkomsten uitkomen die we zouden verwachten. Wat gebeurd er als we twee "redelijke" en één "stomme" strategie in een genenpoule stoppen. Laten we dat proberen. Kun jij zien welke van de strategiën (rood, blauw of groen) een stomme strategie is?

En wat nu als één iemand altijd bluft, en de ander altijd zegt dat zijn tegenspeler bluft. Dan wint nummer twee lijkt me. In onderstaand voorbeeld is groen allways-call en rood allways-bluff

En in onderstaand voorbeeld is groen never-bluff en is rood allways-call. Dus nooit bluffen tegen altijd zeggen dat je tegenspeler bluft.

Goed. Nu we dat gedaan hebben willen we nog weten wat de optimale strategie is. Om die te bepalen hebben we elk van onze 3 variabelen 21 waarden gegeven. Dat zijn dus in totaal 21*21*21≃10000 strategieën. Die hebben we in een heel groot toernooi tegen elkaar laten spelen. Elke keer tien strategieën tegen elkaar. En dan de winnaars daarvan tegen elkaar. En die winnaars ook tegen elkaar, etc. Tot er één winnaar over bleef. Van al die wedstrijdjes heb ik de plaatjes bewaard. Dus ik heb 2 gig aan vreemde kleur-vorm combinaties. Bijna kunst. Paar geanimeerde voorbeelden:

Aan het einde van dit tournooi waren er een paar winnaars. Die hebben we tegen elkaar laten spelen. Lang. Erg lang. Eindeloos lang. Dat heeft onderstaande speelfilm opgeleverd. Onze laatste stap gaat zijn om te kijken of we een strategie kunnen verzinnen die van rood wint. Dat zou mogelijk moeten zijn. Als je precies weet hoe iemand speelt kan je zo bluffen dat hij het niet door heeft, en weet je wanneer hij bluft.

Ik ben er van overtuigd dat deze winnende strategie het beste gespeeld word na enkele glazen alcohol. Kortom, ik ga een bittertje pakken. Iemand zin in een potje blufpoker?

Reacties

Plaats een reactie

Email lijst

Schrijf je in voor de email lijst en ontvang een berichtje elke keer als er iets nieuws op dinandmentink.com staat.