„Can’t Stop!“ oder „Pig“
„Can’t Stop!“ ist ein alter Spieleklassiker von Sid Sackson,
der immer wieder in neuen Auflagen auf den Markt gebracht wird. Das Grundprinzip des Spieles
wird von vielen anderen Spielen genutzt, so auch vom Würfelspiel „Pig“, das in etwas
abgewandelter Form mehrfach bei „Schlag den Raab“ gespielt wurde.
Was ist das Spielprinzip?
Ein Spieler kann während seines Zuges eine zufallsbedingte Aktion
„beliebig“ oft durchführen oder seinen Zug beenden und seinen Status absichern. Führt
man eine Aktion durch, so hat sie als Ergebnis entweder eine Verbesserung der Spielposition zur
Folge oder die Beendigung des Zuges mit Verlust aller in diesem Zug erworbenen Vorteile.
Betrachten wir hier das Beispiel aus der Fernsehsendung „Schlag den
Raab“:
Das Ziel dieses 2-Personenspieles ist es, als
erster 50 Punkte zu erreichen.
Ein Zug jedes Spielers besteht aus dem
mehrmaligen Würfeln eines normalen 6-seitigen Würfels. Beide Spieler wechseln sich
nacheinander ab, bis einer mit 50 Punkten das Spiel gewinnt.
Während des Zuges eines Spielers hat dieser nach dem Würfelwurf immer 2
Möglichkeiten: Beenden des Zuges oder noch einmal Würfeln – mit diesen
Ergebnismöglichkeiten:
1) Der Spieler
hat eine 6 gewürfelt: der Zug ist sofort beendet und der Gegner ist am Zug. Die gesamte
Zwischensumme dieses Zuges ist verloren!
2) Der Spieler
hat 1..5 gewürfelt: Der Wurf wird zur Zwischensumme dieses Zuges addiert. Der Spieler hat das
Recht, noch einmal zu würfeln.
3) Falls der
Spieler aber nicht noch einmal würfeln sondern seinen Zug beenden will, so wird die Zwischensumme
dieses Zuges zu seinen Siegpunkten hinzugezählt und der Gegner ist am Zug. Diese Siegpunkte können
jetzt nicht mehr verloren gehen!
Bei dieser Art von Spiel steht man also ständig vor dem „Can’t
Stop!“ Dilemma: Soll ich jetzt meinen Zug abbrechen und mein bisheriges Ergebnis absichern,
oder soll ich doch noch ein oder zwei weitere Würfelwürfe riskieren??
Ich möchte in diesem Artikel die Vorgehensweise für die Entwicklung einer
optimalen Strategie für den „Can´t Stop! Effekt“ darlegen:
Wir werden diese Strategie weiter unten entwickeln und erkennen müssen, dass
die exakte, optimale Strategie manchmal recht umfangreich und komplex sein kann. Hat man allerdings
die exakte Strategie, so kann man daraus dann eine verbesserte Faustregel ableiten!
Daher wollen wir als erstes eine ganz einfache und nachvollziehbare Faustregel
für das oben beschriebene Würfelspiel entwickeln.
Fakten:
– ich kann pro Wurf im Mittel 3
Punkte gewinnen ( = (1+2+3+4+5) / 5 )
– ich riskiere bei jedem Wurf
meine aktuelle Zwischensumme
– meine Gewinnchancen stehen
5:1
Bei einer Wette mit Gewinnchancen von 5:1 kann ich also bis zu 15 Punkte
einsetzen um im Mittel jeweils 3 Punkte zusätzlich zu gewinnen!!
Die einfache Faustregel heißt also:
Falls deine Zwischensumme weniger als 15 Punkte beträgt, so würfle noch
einmal; anderenfalls beende deinen Zug sofort!
Was bewirkt diese Faustregel nun und warum
ist sie nicht optimal?
Einfach ausgedrückt:
Diese Regel maximiert den Ertrag pro einzelnem Zug – sie maximiert
aber nicht die Gewinnwahrscheinlichkeit des Spielers!
Dies erkennt man leicht an folgendem
Beispiel:
Spieler1 ist am Zug und hat noch keinen
Siegpunkt; sein Gegner hat aber schon 49 Punkte. Man sieht leicht ein, dass man hier viel mehr als
nur 15 Punkte riskieren sollte, da der Gegner schon so nahe am Sieg ist. Bei optimaler Strategie
sollte man hier tatsächlich versuchen ohne abzubrechen in einem Zug die 50 Punkte zu erreichen!
(Aber auch das kann man nicht verallgemeinern: Manchmal ist es auch bei einem großen Vorsprung des
Gegners besser, nicht zuviel auf einmal zu versuchen …)
In Einzelfällen weicht die Faustregel also
extrem von der optimalen Strategie ab – im Mittel über viele Spiele erzielt sie aber nur etwa
5% schlechtere Gewinnwahrscheinlichkeiten!
Um nun die optimale Strategie zu
berechnen, vereinfachen wie die Spielregeln noch ein klein wenig:
1) Der Spieler
hat eine 6 gewürfelt: der Zug ist sofort beendet und der Gegner ist am Zug. Die gesamte
Zwischensumme dieses Zuges ist verloren!
wird geändert zu
1a) Der
Spieler hat eine 6 gewürfelt: der Zug ist sofort beendet und der Gegner ist am Zug. Der Spieler
bekommt einen Siegpunkt gutgeschrieben(auch wenn er ohne zu Würfeln abbricht)!
Wir machen diese Änderung im Moment deshalb, um Zyklen zu vermeiden; wir
gelangen also im Laufe des Spieles nie zu einem früheren Zustand zurück.
Jetzt können wir uns daran machen und die Gewinnwahrscheinlichkeiten eines
Spielers zu maximieren, wenn er am Zug ist; sei
P(i,j,k)
= Wahrscheinlichkeit zu gewinnen, wenn ich <i> Siegpunkte habe,
mein Gegner <j> Siegpunkte hat und meine aktuelle Zwischensumme <k> beträgt.
P(i,j,k,W) =
Wahrscheinlichkeit zu gewinnen, wenn ich mich entschieden habe, noch einmal zu Würfeln
(i,j,k wie oben).
P(i,j,k,S) =
Wahrscheinlichkeit zu gewinnen, wenn ich mich entschieden habe, NICHT noch einmal zu Würfeln, also
zu Stoppen, (i,j,k wie oben). Ich habe dann i+k Siegpunkte.
Zu jedem Entscheidungszeitpunkt wähle ich die Aktion W oder S mit der höheren
Gewinnwahrscheinlichkeit P(i,j,k,W) oder P(i,j,k,S), also
P(i,j,k) = MAX{ P(i,j,k,W) ,
P(i,j,k,S) }
Wenn ich stoppe, kommt mein Gegenspieler(der die gleiche Strategie nutzt) dran
und ich gewinne nur dann, wenn er verliert:
P(i,j,k,S) = 1 –
P(j,i+k,0) , k > 0
= 1
– P(j,i+1,0) , k = 0
Wenn ich weiter würfle, gilt:
P(i,j,k,W) =
1/6 * [ P(i,j,k+1) + P(i,j,k+2) + P(i,j,k+3) + P(i,j,k+4) + P(i,j,k+5) + ( 1 –
P(j,i+1,0))]
denn wenn ich eine 1..5 würfle hat sich meine Zwischensumme entsprechend
erhöht; wenn ich eine 6 würfle, bekomme ich einen Siegpunkt gutgeschrieben und mein Gegner ist
dran, der mit P(j,i+1,0) gewinnt.
Bei den Summanden auf den rechten Seiten der Gleichungen für P(i,j,k,S) und
P(i,j,k,W) ist nun entweder der Parameter <k> größer geworden bei gleichem <i>
und <j> oder die Summe der Parameter <i> und <j> ist größer
geworden! Man kann also die Werte für P(i,j,k,S) und P(i,j,k,W) nacheinander rückwärts berechnen;
zuerst die Werte mit maximalem i+j und maximalem k, dann das nächst kleinere k bis k=0, dann die
Summe i+j um 1 reduzieren , usw. (Dieses Verfahren nennt man in der Mathematik „dynamische
Programmierung“).
Im Beispiel:
P(49,49,0) =
1 (man bekommt ja mindestens
einen Punkt und gewinnt)
P(49,j,k) =
1
(dito)
P(48,49,2) =
1 (ich habe ja 48+2 Punkte beim
Stoppen)
P(48,49,1,S) =
1 – P(49,49,0) = 1 – 1 = 0
P(48,49,1,W) =
1/6 * [ 1+1+1+1+1+ ( 1 – P(49,49,0)] = 5/6
Also P(48,49,1) = MAX { 0 ,
5/6} = 5/6
P(48,49,0,S) =
0 (wenn der Gegner dran kommt, macht er aus 49 Punkten
mindestens 50)
P(48,49,0,W) =
1/6 * [P(48,49,1) + 1+1+1+1+ ( 1 – P(49,49,0) ] = 1/6 * [ 5/6 + 4 ] =
29/36
also P(48,49,0) = 29/36
!
usw.
Diese Berechnungen sind langwierig und aufwendig, daher gibt es am Ende auch
ein kleines Programm, mit welchem man diese Strategien berechnen und testen kann!
Zuguterletzt möchte ich nun die Regel 1a) von oben wieder fallen lassen und
zurück auf Regel 1) gehen. Wir können jetzt tatsächlich auch Schleifen bekommen:
P(i,j,k,W) =
1/6 * [ P(i,j,k+1) + P(i,j,k+2) + P(i,j,k+3) + P(i,j,k+4) + P(i,j,k+5) + ( 1 –
P(j,i,0))]
Die Summe der Parameter <i> und <j> auf der rechten Seite
ist jetzt größer oder gleich der Summe auf der linken Seite. Trotzdem kann man diese
Gleichungen (wenn auch aufwendiger) lösen; ein mögliches (Näherungs-)Verfahren hierzu ist die
Werte-Iteration. Wir werden dieses Verfahren hier nicht näher erklären, da das etwas zu weit führen
würde; das Programm am Ende dieses Artikels benutzt aber dieses Verfahren.
Im Beispiel:
P(49,49,1)
= 1
P(49,49,0,S) = 1 – P(49,49,0);
P(49,49,0,W) = 1/6 * [ 1+1+1+1+1+ ( 1 – P(49,49,0))] = 1
– 1/6 * P(49,49,0)
P(49,49,0) =
MAX { 1 – P(49,49,0) , 1 – 1/6 * P(
49,49,0)} = 1 – 1/6 * P(49,49,0)
Also P(49,49,0) = 6/7
! ( und damit P(49,49,S) = 1/7 )
(es ist natürlich klar, dass ich immer mindestens
einmal Würfeln muss!)
Ein weiteres, kleines Münzwurf-Beispiel:
Eine Münze wird geworfen: Bei Zahl erhält man einen Siegpunkt in die
Zwischensumme; bei Kopf geht die komplette Zwischensumme verloren und der Mitspieler ist am Zug.
Man kann jederzeit stoppen; wer zuerst 3 Siegpunkte hat, gewinnt!
Anbei alle Wahrscheinlichkeiten P(i,j,k,S) und P(i,j,k,W);
Wahrscheinlichkeiten: I=Ich, G=Gegner, Z=Zwischensumme
I-G-Z ==
W(Stop)–W(Wurf)
2-2-0 == 33,3%–66,7%
2-1-0 == 60,0%–80,0%
2-0-0 == 77,8%–88,9%
1-2-1 == 33,3%–60,0%
1-2-0 == 20,0%–40,0%
1-1-1 == 60,0%–71,4%
1-1-0 == 42,9%–57,1%
1-0-1 == 77,8%–81,8%
1-0-0 == 63,6%–72,7%
0-2-2 == 33,3%–55,6%
0-2-1 == 20,0%–33,3%
0-2-0 == 11,1%–22,2%
0-1-2 == 60,0%–63,6%
0-1-1 == 42,9%–45,5%
0-1-0 == 27,3%–36,4%
0-0-2 == 77,8%–72,7%—– nur hier
0-0-1 == 63,6%–61,6%—– und hier sind W(Stop)
> W(Wurf)
0-0-0 ==
45,5%–54,5%
Nur für den Startspieler ganz am Anfang beim Stand 0:0 lohnt es sich nach dem
Wurf einer Zahl zu stoppen; ansonsten sollte man immer weiter spielen!
Damit bin ich nun am Ende; die vollständige Strategie-Beschreibung für das
„Schlag den Raab“ Beispiel findet ihr unter diesem Link <HIER>. Hieraus kann man sich selbst verbesserte Faustregeln generieren;
z.B. in den in der folgenden Tabelle aufgeführten Fällen weiterwürfeln – sonst stoppen:
|
Ich |
Gegner |
Zwischensumme |
|
>= 30 |
Egal |
Egal |
|
20 … 30 |
>= 20 |
Egal |
|
20 … 30 |
< 20 |
<=10 |
|
10 … 20 |
> 30 |
Egal |
|
10 … 20 |
<= 30 |
<= 17 |
|
0 … 10 |
> 35 |
Egal |
|
0 … 10 |
20 … 35 |
<= 20 |
|
0 … 10 |
< 20 |
<= 17 |
(diese Strategie ist im Mittel etwa 1% schlechter
als die optimale Strategie)
Mit dem folgenden kleinen Programm könnt ihr Strategien berechnen und gegen
den Computer spielen (Genauigkeit der Berechnungen: 0,1%; Strategien können in diesem
Rahmen also minimal vom Optimum abweichen)!
Die folgenden Parameter kannst du nur vor dem Start eines neuen Spieles ändern:
- Startspieler: ankreuzen, wenn Du den ersten Zug machen willst.
- Seitenanzahl des Würfels: Willst du einen anderen als den normalen 6-seitigen Würfel benutzen,
so kannst du das hier einstellen - Endpunktzahl: Der Spieler, der diese Siegpunktzahl zuerst erreicht, hat gewonnen.
- Würfelzahl für Abbruch: Würfelt ein Spieler diese Zahl, so ist sein Zug sofort beendet; alle in
diesem Zug erreichten Punkte gehen verloren.
Dann den Start/Reset Button drücken – ein neues Spiel wird begonnen! (beim ersten Spiel mit
neuen Parametern kann dies etwas dauern, da die Computerstrategien neu berechnet werden) Drücke den
“Würfeln”-Button, solange du weiterwürfeln möchtest. Möchtest du abbrechen und deine
Zwischensumme sichern, so drücke den “Stop!”-Button.
Falls du die “Würfelzahl für Abbruch” gewürfelt hast, so wird dein Zug automatisch
beendet – du mußt aber noch den “Stop!”-Button drücken, damit dann der Computer seinen
Zug beginnt.
Unter “Wurfserie” wird immer die letzte Wurfserie der Spieler angezeigt. Deine aktuell
gewürfelte Zahl und deine Gewinnwahrscheinlichkeit(bei optimalen Folgezügen) wird links neben dem
Würfel-Button angezeigt.
Links:
1) T.W. Neller, C.G.M. Presser: Optimal Play of the Dice Game Pig
3) T.W. Neller, …: Pedagogical
Possibilities for the Dice Game Pig