Python Stochastik (künstliche Intelligenz)

r0b0t schrieb:
Die oben genannten Wahrscheinlichkeiten wären nur dann gleich, wenn 6 werfen und nicht 6 Werfen beide 50% Wahrscheinlichkeiten hätten. Bei einem zweiseitigen Würfel (Münze) wäre das so. Hier ist aber die Wahrscheinlichkeit in der Startaufstellung hängen zu bleiben höher als einen Durchmarsch zu schaffen.
Stimmt natürlich. Es ist recht wahrscheinlich, dass du drin hocken bleibst... Macht das Spiel nur um so gemeiner...

Die Wahrscheinlichkeit, dass im nächsten Spiel rot fällt ist also zum Zeitpunkt T(5) = 50%. Für den Roulettespieler, der ja von Spiel zu Spiel neu entscheidet, besteht also gar kein Grund die Vergangenheit zu betrachten und seine Wahl von den vorhergehenden Spielen abhängig zu machen. Diese sind ja bereits eingetreten und somit zu einem sicheren Ereignis mit der Wahrscheinlichkeit 1 geworden. Es ist aber nicht immer einfach diese Zusammenhänge zu sehen, weshalb es sicherlich Roulettespieler geben wird, die sich so wie oben zitiert verhalten. Eine ganze Industrie lebt schließlich davon.

Schön auf den Punkt gebracht, worums hier geht: Die Vergangenheit kümmert uns nicht, uns interessiert nur der nächste Wurf und ob es sich für uns lohnt, noch einmal zu würfeln.
Bei 5/6 ist es eigentlich ne recht sichere Sache, unsere Risikobereitschaft kann also nur durch den bereits erzielten Gewinn geschmälert werden... oder wie beim Glücksspiel allgemein: noch weiter angestachelt werden.

Hier wird jede KI, die man "mal eben" programmiert, versagen: Sie kann nicht zwischen Vernunft und Reiz entscheiden. Vernünftig wäre, bei einem halbwegs stabilen Vorsprung abzubrechen. Aber wenn man schon 5-6 Runden gewonnen hat, ist es dann nicht doch lecker, noch eine Runde mit noch mehr Punkten zu riskieren? Es kommt immer darauf an, ob die Belohnung für noch mehr Punkte irgendwie das Risiko wert zu sein scheint.
Menschliche Gier ist ein Charakterzug, den man kaum in eine KI pferchen kann. Wie oft sind schon Leute bei Wer wird Millionär mit 500€ nach Hause gegangen, weil sie unbedingt bei den hohen Fragen raten mussten?
 
Nur um das mal korrekt zu verstehen:

Ein Spiel kann also z.B. so aussehen:

Code:
Spieler:
Runde 1:
0 Punkte, gewürfelt 3, 4 --> Weiter/Fertig? Weiter
7 Punkte, gewürfelt 1, 5 --> Weiter/Fertig? Weiter
13 Punkte, gewürfelt 6, 2 --> 0 Punkte!

Computer:
Runde 1:
0 Punkte, gewürfelt 1, 2 --> Weiter/Fertig? Fertig

Computer gewinnt mit 3 zu 0 Punkten!

Stimmt das so?

Die Frage ist dann noch, ob in der nächsten Runde der computer mit 0 oder mit 3 Punkten beginnt.

Auf jeden Fall ist ein Fall schon mal klar:
Dein Computer _muss_ sicher so lange weiter spielen, bis er mehr Punkte als der Spieler am Konto hat. Wenn Punkte über die Runden hinweg behalten werden, muss man eben mind. so lange spielen, bis man mehr Punkte mit fixem + Rundenkonto zusammen als der Spieler am fixen Konto hat. Alles andere wäre einfach dumm, und würde ja auch nicht anspornen.

Gibt es keinen Punkteübertrag zwischen den Runden, ist es auch klar, dass der Computer, sobald er mehr Punkte als der Spieler hat, abbrechen muss, da der Sieg ohnehin schon klar in der Tasche ist.

Mit Punkteübertrag wird die Sache schon interessanter, aber da würde ich gerne nochmal vom TE bestätigt wissen, ob das wirklich der Fall ist.
 
Ich find die Regeln auch viel zu unklar formuliert.
- Wie viele Runden wird gespielt?
- Wer fängt an?
- Weiß man immer wie viele Punkte der Gegner hat?
Das sind alles sehr wichtige Fragen!

Ansonsten würde ich für den ersten Wurf vorschlagen die Punktzahl des Gegners immer bis auf im letzten Zug zu ignorieren und einfach eine zugweise optimal spielende KI bauen. Dh immer genau so viel Risiko wie die Gewinnerwartung erlaubt.
In der letzten Runde darf sie natürlich erst aufhören wenn sie mehr Punkte hat als der Spieler auch wenn die Gewinnerwartung zu gering ist als dass ein Weiterspielen gerechtfertigt wäre.
 
Zuletzt bearbeitet:
Die Wahrscheinlicheit für keinen 6er bei 2 Würfeln liegt übrigens bei 11/12 (3 von 36 möglichen Würfen beinhalten mind. einen 6er).

Für einen Wurf hast du also eine Wahrscheinlichkeit von 11/12^1 keinen 6er zu würfeln, bei 2 Würfen 11/12^2, bei 3 11/12^3 etc. wie schon vorher gesagt.

Der Erwartungswert liegt übrigens bei 7 (im Schnitt solltest du 7 Punkte mit jedem Wurf erreichen, 1 Million Würfe sollten also ~7 Millionen Punkte ergeben).

Beim ersten Wurf hast du also eine Wahrscheinlichkeit von 11/12^1 ~7 Punkte zu gewinnen (Standardabweichung hab ich jetzt mal beiseite gelassen)
Beim zweiten Wurf ist es 11/12^2 * 7 Punkte * 2

Beim 8. Wurf hast du schon eine knapp unter 50%ige Wahrscheinlichkeit noch keine 6 gewürfelt zu haben --> nach 7 Würfen sollte also z.B. Schluss sein.

Hast du mit diesen 7 Würfen mehr als 49 Punkte ergattert, hattest du Glück - hast du weniger, hattest du Pech.

Nur zur Sicherheit:
Die Chance den Zug zu gewinnen ist nach 7 Zügen immer noch 11/12! Allerdings ist die Wahrscheinlichkeit alle bisher gesammelten Punkte zu verlieren nach 7 Zügen größer als 50%.

Meine KI würde daher immer 7 Mal würfeln und danach (solange sie nicht vorher verliert, was in 45,6% der Fälle eintritt) den Zug beenden. Das setzt allerdings vorraus, dass man eine vordefinierte Anzahl von Zügen spielt (z.B. jeder spielt 10 Mal und wer dann die meisten Punkte hat, hat gewonnen).
Spielt man "Open end" muss man immer sicherstellen, mehr Punkte als der Spieler zu erreichen, da dieser ja jederzeit sagen könnte, er habe gewonnen (außer man hat ein Onlinecasino, dann sollte man immer noch nur 7 Mal spielen) - sobald man vorne liegt, setzt man wieder max. 7 Mal.

Um ein bisschen Zufall reinzubringen kannst du ja ab und zu auch 8 Mal zocken (da ist die Warscheinlichkeit zu gewinnen auch noch immer 49,85%) - ganz geschickt wäre es, wenn du meistens 8 Mal spielst, aber oft genug nur 7 Mal um im Mittel knapp über 50% der Spiele zu gewinnen. Das kann man dann noch weiter ausbauen, indem du z.B. selten auf 9 Mal "hochzockst", dafür aber entweder öfter bis 7 oder auch nur 6 spielst.

Im Realfall wird aber kein menschlicher Spieler so lange an deiner Maschine hocken um da ordentliche Ergebnisse zu liefern - du bräuchtest schon ein Onlinecasino um dann Tausende oder Millionen von Spielen auszuwerten und dann einen Gewinn einzufahren.

P.S.:
Öfter als 12 Mal würde ich nie spielen, warum kannst du dir ja mal ausrechnen! ;)

P.P.S.:
Die KI die ich beschrieben habe, spielt nicht 100% optimal, aber implementiere doch einfach mal eine KI die stur bis zu 4,5,6,7,8... Runden spielt, lass die 10 000 Spiele spielen und dann vergleiche mal, wer am meisten Punkte hat.

Edit:
Ok, nochmal überlegt und es ist ein ziemlicher Blödsinn, was da steht:
Die Wahrscheinlichkeit ist NICHT 11/12, da es ja natürlich mehr als 3 Möglichkeiten mit 6ern gibt, nämlich genau 11 Möglichkeiten (jede Zahl von 1-5 + ein 6er als erste oder 2. Zahl + 6er Pasch). Die Wahrscheinlichkeit zu gewinnen liegt also bei 1-11/36 oder 25/36.

Multiplizierst du nun den Erwartungswert von 2 Würfeln ohne 6er (= Würfel mit Zahlen von 1 bis 5, Erwartungswert ist also 6) mit 25/36^k hast du ein Maximum bei k=3, öfter (oder seltener) als 3 Mal solltest du also nie spielen, wenn du gewinnen willst.

Da der Erwartungswert sogar leicht über 6 liegt, gewinnst du im Schnitt jedes Spiel ~0,03 Punkte dazu - das Spiel wäre also (in umgekehrter Weise) durchaus auch für Casinos geeignet. ;)
 
Zuletzt bearbeitet:
Zurück
Oben