Mathematik online lernen im Mathe-Forum. Nachhilfe online
Startseite » Forum » Blackjack KI Entscheidung nächsten Zug

Blackjack KI Entscheidung nächsten Zug

Universität / Fachhochschule

Tags: Blackjack, Entscheidung, Statistik, Wahrscheinlichkeit

 
Antworten Neue Frage stellen Im Forum suchen
Neue Frage
Volrath

Volrath aktiv_icon

17:20 Uhr, 01.08.2018

Antworten
Hallo liebe Community,

ich möchte eine kleine KI für Black Jack entwickeln und brauche eine Art Formel oder Berwertungsfunktion um den nächstbesten Zug zu berechnen

Ich erläutere das am Besten anhand eines Beispiels:

Dealerhand =2

Spielerhand=16

Mein Programm hat auf Basis der vorhanden Karten errechnet, dass es eine Wahrscheinlichkeit von 38,46% gibt, dass der nächste Punktestand für den Spieler zwischen 17 und 21 beträgt. Die Wahrscheinlichkeit dass der Spieler bustet, also mehr als 21 zieht beträgt dann 61,53%. Beim Spieler handelt es sich um die Wahrscheinlichkeit des nächsten Zuges, beim Dealer allerdings um die Wahrscheinlichkeiten aller möglichen Kombinationen, die zu einem Punktestand zwischen 17 und 21 führen können. Wobei beide Spieler stehen bleiben sobald die 17 oder größer erreicht ist. Das ist deshalb so, weil der Dealer prinzipiell immer bis mind. 17 ziehen muss, der Spieler allerdings kann nach jedem Zug neu entscheiden.

Für den Dealer habe ich berechnet, dass die Wahrscheinlichkeit einen Punktestand zwischen 17 und 21 zu erhalten 62,44% beträgt und die Wahrscheinlichkeit zu busten (über 21) beträgt 37,55%. Es ist noch zu beachten, dass wenn der Spieler bustet, das Spiel automatisch als verloren gilt, d.h. der Dealer spielt nicht mehr.

Wie kann ich nun diese Werte sinnvoll in Zusammenhang bringen und daraus eine Entscheidung, ob eine Karte gezogen werden soll oder lieber keine weitere Karten gezogen werden soll mit der Hoffnung, dass der Dealer bustet, ableiten?

Klar für den Spieler beträgt die Wahrscheinlichkeit zu busten deutlich höher als die Wahrscheinlichkeit eine Karte zwischen 1-5 zu erhalten. Doch wenn dieser auf der 16 stehen bleibt bedeutet das dann, dass der Dealer eine 62,44% Wahrscheinlichkeit hat zu gewinnen (also noch höher). Ich muss die Werte also irgendwie in Zusammenhang bringen weiss aber nicht wie. Gemäß der Basic Strategie die für BlackJack gilt, sollte der Spieler bei einem 16 zu 2 Punktestand stehen bleiben. Mein Programm sollte ebenfalls auf Basis einer Berechnung zu diesem Ergebnis kommen, und nicht hartcodiert.

Ich mache noch ein Spiel

Erläuterung:

Spieler Score bedeutet Punktestand für den Spieler bei dem eine Entscheidung getroffen werden soll. (Karte ziehen oder stehen bleiben)

Spieler Winrate bedeutet die Chance eine 17-21 zu erreichen.

Spiele Bustrate bedeutet die Chance zu busten also zu überziehen (>21)

Analog dann die selben Bedeutung für den Dealer

Situation1:

Spieler Score: 16
Dealer Score: 2
Spieler WinRate: 38,46%
Spieler BustRate: 61,53%
Dealer WinRate: 62,44%
Dealer BustRate: 37,55%
Basic Strategie Empfehlung: Stehen bleiben



Situation2:

Spieler Score: 16
Dealer Score: 10
Spieler WinRate: 38,46%
Spieler BustRate: 61,53%
Dealer WinRate: 78,75%
Dealer BustRate: 21,24%
Basic Strategie Empfehlung: Karte ziehen



Situation3:


Spieler Score: 12
Dealer Score: 6
Spieler WinRate: 38,46%
Spieler BustRate: 30,76%
Dealer WinRate: 57,70%
Dealer BustRate: 42,29%
Basic Strategie Empfehlung: Stehen bleiben



Situation4:

Spieler Score: 12
Dealer Score: 10
Spieler WinRate: 38,46%
Spieler BustRate: 30,76%
Dealer WinRate: 78,75%
Dealer BustRate: 21,24%
Basic Strategie Empfehlung: Karte Ziehen

Vielen Dank für Eure Unterstzüung!

Volrath

Für alle, die mir helfen möchten (automatisch von OnlineMathe generiert):
"Ich möchte die Lösung in Zusammenarbeit mit anderen erstellen."
Online-Nachhilfe in Mathematik
Antwort
Roman-22

Roman-22

17:52 Uhr, 01.08.2018

Antworten
> Mein Programm sollte ebenfalls auf Basis einer Berechnung zu diesem Ergebnis kommen,
Nicht unbedingt, wiewohl sehr wahrscheinlich bei einem Stand von 2:16.
Dein Programm weiß ja offenbar genau, welche Karten noch im Schlitten sind und kann daher u.U. auch zu einem anderen Ergebnis kommen als die Faustregel.
Zur Bewertung der Situation müsstest du dann aber schon für jeden möglichen Ausgang die WKTen berechnen.
Also nicht nur Spieler bustet oder bekommt 1-5, sondern für jeden Fall. Denn die WKT, dass der Dealer bustet, hängt ja auch davon ab, ob der Spieler noch eine Karte nimmt oder nicht.
Du müsstest also für jedes Szenario bis zum Spielende genau die WKTen berechnen und danach die bestmögliche Option wählen.
Einfach nur die WKTen Spieler-bust, Dealer-bust zu betrachten, kann nicht die optimale Entscheidung liefern.
Volrath

Volrath aktiv_icon

19:15 Uhr, 01.08.2018

Antworten
> Dein Programm weiß ja offenbar genau, welche Karten noch im Schlitten sind und kann daher u.U. auch zu einem anderen Ergebnis kommen als die Faustregel. <

Die genannten Wahrscheinlichkeiten stammen von einem frischem Deck, d.h. es wurden noch keine Karten gezogen.

An sich brauche ich nicht die Wahrscheinlichkeiten für jeden möglichen Ausgang, da bis einschließlich 11 der Spieler immer eine Karte zieht. Erst ab 12 gibt es überhaupt die Möglichkeit zu busten. Und ab 17 wird definitiv keine weitere Karte mehr gezogen. Der Dealer spielt in jedem Fall bis mind. 17 und hört auf sobald er die 17 erreicht hat oder verloren hat.

Wie kann ich deiner Meinung nach die obigem Wahrscheinlichkeit am Besten in Zusammenhang setzen um eine Entscheidung zu treffen?

Prinzipiell siegt der Spieler immer in folgenden Situationen:

1. Stehen bleiben und Dealer bustet
2. Karte ziehen ohne zu busten und Dealer bustet oder hat weniger Punkte

Verlieren tut man dann wenn:

1. Stehen bleiben und Dealer erreicht zwischen 17-21
2. Karte ziehen und busten

VG
Volrath
Volrath

Volrath aktiv_icon

19:15 Uhr, 01.08.2018

Antworten
sry, Doppelpost
Volrath

Volrath aktiv_icon

02:43 Uhr, 02.08.2018

Antworten
Vielleicht habe ich auch eine falsche Methode um die Wahrscheinlichkeiten auszurechnen.

Weiss jemand wie man sowas "richtig" macht? Also die Wahrscheinlichkeit auszurechnen eine 17 bis 21 und darüber zu erhalten?

Dafür muss ich dich die WaTen von allen möglichen Kombinationen zwischen 17-21 und >21 ausrechnen oder?

Sprich die erste Reihe wäre dann:

W(2)W(2)W(2)W(2)W(2)W(2)W(2)W(2)W(2)

quasi die Wahrscheinlichkeit, dass 9 mal hintereinander die 2 gezogen wird, wobei natürlich mit jedem Zug die nächste Wahrscheinlichkeit eine 2 zu ziehen sinkt. Den Wert addiere ich dann auf die Wahrscheinlichkeit dass eine 18 erreicht wird. nächstes Beispiel wäre dann z.b:

W(2)W(2)W(2)W(2)W(2)W(2)W(2)W(4)

Dies ergibt ebenfalls 18 und wird mit der vorherigen WaTen addiert. Dies wiederhole ich dann im Grunde für jede Kombination.

Ist das richtig?
Volrath

Volrath aktiv_icon

22:32 Uhr, 02.08.2018

Antworten
Ich bin noch dabei das ganze zu Optimieren um die Beste Entscheidung zu treffen. Prinzipiell sind wir ja von einem "Sieg" ausgegangen wenn wir 17 bis 21 erreichen, was ja nicht ganz richtig ist. Denn eine 21 schlägt natürlich die anderen Zahlen. Deswegen habe ich nun die Wahrscheinlichkeiten für die einzelnen Augenzahlen zwischen 17 und 21 berechnet. Nehmen wir mal an das wären die konkreten Wahrscheinlichkeiten
für die Augenzahlen 17 - 21 und darüber. Wie kann ich jetzt anhand dieser WaTen errechnen, ob die Augenzahl des Spielers höher sein wird als die des Dealers. Was natürlich auch noch ganz gut wäre, ist wenn ich auch wissen könnte um wie viel % es besser oder schlechter sein wird. Hat da jemand eine Idee zu?

-------Player -- Dealer

17----21,88%-----22,92%
18----23,56%-----20,90%
19----27,96%-----18,01%
20----7,99%------14,40%
21----9,04%------11,40%

>21---9,5%-------12,33%
Antwort
Roman-22

Roman-22

01:23 Uhr, 03.08.2018

Antworten
Jetzt sollte es einfach sein. Wir gehen davon aus, dass deine angegebenen WKTen richtig sind (dass sie sich nicht genau zu jeweils 100% addieren liegt vermutlich nur an den Rundungen).
Wie hast du die WKTen den berechnet. Hast du bei den 18,01% für das erreichen von 19 auch den Fall inkludiert, dass er mit der nächsten Karte 17 erreicht und dann noch eine riskiert und eine 2 erhält? Das müsstest du eigentlich. Nur dazu müsstest du bereits eine Regel implementiert haben, wann er bei Stand von 17 noch eine Karte nimmt. Du müsstest also fiktiv die WKT beim Stand von 17 durch Nehmen einer weiteren Karte zu gewinnen berechnen und wenn diese >50% dann die WKT eine 2 zu erhalten in die WKT für die 19 inkludieren.

Nehmen wir also mal an, dass deine WKTen alle korrekt ermittelt sind.
Man berechnet nun einfach die WKT des Spielers, zu gewinnen, wenn er eine Karte nimmt, und wenn diese WKT größer als 50% ist, soll er eine nehmen.
Einen tie (bust), wenn also Spieler und Dealer die gleiche Punktzahl haben, rechne ich zum Gewinn für den Spieler dazu, da er ja auch hier zumindest keinen Verlust einfährt und das somit kein Grund ist, keine Karte zu nehmen und sich damit die Chance auf einen Gewinn zu verderben.

Gewinnen kann der Spieler nun auf 5 Arten:

1) Er erreicht 17 und der Dealer erreicht auch 17 oder er bustet.
Die WKT dafür ist 0,2188(0,2292+0,1233)

2) Er erreicht 18 und der Dealer erreicht 17,18 oder bustet
Die Wkt dafür ist 0,2356(0,2292+0,2090+0,1233)

...

5) Er erreicht 21 und was der Dealer erreicht is egal
Die WKT dafür ist 0,09041

Zählst du nun diese 5 WKTen zusammen, erhältst du 57,793% woraus folgt, dass der Spieler eine Karte nehmen sollte.
Auch, wenn er tatsächlich nur mit WKT 40,633% einen Gewinn einfährt und mit WKT 17,16% nur pushed (Gleichstand).
Volrath

Volrath aktiv_icon

02:00 Uhr, 03.08.2018

Antworten
Prinzipiell ziehe ich zunächst ein bis zwei Karten und multipliziere dann die Wahrscheinlichkeiten aller Karten hinzu bis ich mind. 17 erreicht habe, da nach der 17 nicht mehr gezogen wird. Nehmen wir also an, dass folgende Kartenreihenfolge bei einem vollen Deck (52 Karten) gezogen wird: (Jede Karte kommt 4mal im Deck vor, ausser die 10, die kommt 4*4=16 mal vor da B,Q und K auch als 10 zählen)

3, 6, 2, 5,3

Somit ergibt sich folgende Wahrscheinlichkeit


4/52 * 4/51 * 4/50 * 4/49 * 3/48 = Wkt

(die 3 wurde zweimal gezogen)

Nun addiere ich diese Wkt auf den Punktestand 19.

Weiteres Beispiel:

5,3,10

5/47 * 2/46 * 16/45 = Wkt

Diese Wahrscheinlichkeit addiere ich dann der 18 hinzu usw..
Als Bust addiere ich die Wkt jedes Punktestandes über 21. Das ist doch so richtig?

Ich habe nur ein Problem mit dem Ass da diese 4 mal vorkommt und sowohl für eine 1 als auch eine 11 gelten kann. Nun weiss ich nicht wie ich diesen Umstand korrekt beachten muss, um die Wahrscheinlichkeiten richtig auszurechnen. Hast du eine Idee?

Dein Ansatz klingt sehr interessant und vielversprechend. Ich werde das mal gleich implementieren und berichten wie sich die Quote geändert hat.


Volrath

Volrath aktiv_icon

02:51 Uhr, 03.08.2018

Antworten
Ich hab das mal getestet. Leider ist die Gewinnquote wesentlich niedriger als die der BasicStrategy. Hier mal ein zwei Entscheidungen, die anhand des Scores gefallen sind und sich von der Empfehlung der Basic Strategie unterscheiden. In beiden Fällen hätte laut BasicStrategy eine Karte gezogen werden müssen. Es handelte sich stets um ein frisches Deck.

Anmerkung: Vielleicht muss man beachten, dass der Spieler verliert sobald er bustet, d.h. der Dealer spielt dann nicht mehr. Muss man das evtl. noch mit in die Berechnung miteinbeziehen, weil es ja die Gewinnchancen des Spielers neg. beeinflusst.

Entscheidung1:

Stand On 7 vs 12

Score: 0.43021873622043694
PlayWin: 0.5163203899802444
PlayBust: 0.4836796100197557
DealWin: 0.7389263032138763
DealBust: 0.26107369678612397

Player erreicht:
17:0.1045421960305869
18:0.1043138867358868
19:0.10163596014604828
20:0.10441489226968245
21:0.10141345479803997
22>: 0.4836796100197557

Dealer erreicht:
17:0.36910593119821394
18:0.13856198503797787
19:0.0780479827766283
20:0.07903830055911451
21:0.07417210364194167
22>: 0.26107369678612397



Entscheidung2

Stand On 8 vs 14

Score: 0.34938046501151077
PlayWin: 0.4490234648789928
PlayBust: 0.5509765351210071
DealWin: 0.759243212285502
DealBust: 0.24075678771449827

Player erreicht:
17: 0.09052504626369352
18: 0.09030938404381593
19: 0.09056320188721032
20: 0.08731644864045707
21: 0.09030938404381592
22>: 0.5509765351210071

Dealer erreicht:
17: 0.1297439819117179
18: 0.3624591241246656
19: 0.12895291500796807
20: 0.06896267552675348
21: 0.06912451571439683
22>: 0.24075678771449827
Antwort
Roman-22

Roman-22

11:39 Uhr, 03.08.2018

Antworten
Deine WKTen scheinen nur für den Beginn zu gelten, also wenn noch keine Karten ausgespielt sind.
Natürlich müssen nach jeder ausgespielten Karten alle WKTen neu berechnet werden unter Berücksichtigung der Tatsache, welche Karten nun nicht mehr im Spiel ist.
Wenn eine Variante mit tw verdeckten Karten gespielt wird, muss auch das berücksichtigt werden (wird zieml. umfangreich).
Auch die besondere Stellung des Asses muss Berücksichtigung finden (indem beide Möglichkeiten "durchgespielt" werden) und auch Splitting und eventuell das in Europa eher unübliche Surrender sollte eingearbeitet werden.
Das Ganze wird dann ziemlich aufwändig werden, nehme ich an. Es ist ähnlich wie bei einem Brettspiel, bei dem der Computer möglichst viele Züge voraus"denken" muss um eine Stellung bewerten zu können. Bei dir muss das Spiel bis zum Ende durchgedacht werden mit allen Möglichkeiten und bei jeder Verzweigung die entsprechende WKT berücksichtig werden.
> da nach der 17 nicht mehr gezogen wird.
Ja, aber das gilt doch nur für den Dealer. Für den Spieler sollte sich eine solche Strategie bestenfalls automatisch durch deine Bewertungsfunktion ergeben. Wenn du anfängst, für den Spieler feste Verhaltensregeln einzubauen, dann kannst du doch gleich eine der vielen im Netz verfügbaren, teilweise recht umfangreichen, Tabellen implementieren, die angeben, bei welchem Spielstand wie zu optimal reagieren ist. Da haben andere schon die WKTen (hoffentlich richtig) durchgerechnet.

Außerdem scheint dein Ansatz zu sein, dass es nur einen Spieler und den Dealer gibt, also keine weiteren Mitspieler (deren Karten natürlich auch Berücksichtigung finden müssten) - eine eher krasse Einschränkung.

Single Deck Blackjack ist heute auch sehr selten anzutreffen und wenn, dann meist mit einer niedrigeren Blackjack Quote von 6:5 anstelle der sonst üblichen 3:2. Üblicherweise werden mehrere Spiele, meist 6, manchmal auch 8 oder 10, vermischt und in den Schlitten eingelegt. Viele Casinos verwenden auch automatische Mischmaschinen, in die bereits nach wenigen Spielen die ausgespielten Karten wieder reinkommen und mit den dort noch vorhandenen so vermischt werden, dass sie u.U. auch gleich wieder ausgespielt werden könnten - sie kommen also nicht einfach hinten dran. Das wird einerseits gemacht, um Kartenzählen zu unterbinden und andererseits, weil es schneller ist und mehr Spiele bedeutet mehr Geld fürs Casino.
Wie Online-Casinos das simulieren weiß ich nicht. Logisch wäre es, so zu tun, als wären unendlich viele Spiele miteinander vermischt. Damit wäre, auch wenn bereits 20 Asse ausgespielt wurden, die WKT, dass die nächste Karte ein Ass ist trotzdem noch immer 452.

Die Ermittlung der Wahrscheinlichkeiten ist also nicht so einfach und straightforward wie man anfangs vielleicht glauben möchte und ohne dass man das sauber hinbekommt wird man auch keine sinvollen KI-Entscheidungen erwarten dürfen.

Volrath

Volrath aktiv_icon

13:35 Uhr, 03.08.2018

Antworten
> Außerdem scheint dein Ansatz zu sein, dass es nur einen Spieler und den Dealer gibt, also keine weiteren Mitspieler (deren Karten natürlich auch Berücksichtigung finden müssten) - eine eher krasse Einschränkung. <

Jeder Spieler hat nur den Dealer als Gegner, also muss diesen besiegen. Es gibt also keinen Grund noch weitere Spieler zu implementieren.

Also mir ist bewusst, dass es auch noch Optimierungspotential bei den Einsätzen, ob Double oder Split gibt. Im ersten Schritt wollte ich es einfach halten und habe das ganze nur auf 2 Ereignisse beschränkt nämlich Karte ziehen oder keine Karte ziehen. Die WKT der einzelnen Karternkombinationen werden natürlich nach jedem Zug neu berechnet. Es ist aber so, dass bei einem frischen Deck die BasicStrategy die Beste ist d.h. die KI muss in solch einem Fall auf dieselben Entscheidungen kommen. Deswegen war das erste Ziel, dass die KI bei einem frischen Deck anhand der Bewertungen auf dieselbe Ergebnisse kommt. Klar ist natürlich, dass es im späteren Spielverlauf dann Unterscheidungen geben wird, weil unsere KI ja die Karten zählt und deren WKT kennt.

Das Problem ist nur, dass sich die Entscheidungen der KI schon bei einem frischen Deck von der BasicStrategy unterscheiden. Darin ist wohl die negative Gewinnquote begründet und natürlich ziehen sich diese Fehlentscheidungen dann im späteren Verlauf durch. (Zwei dieser Fehlentscheidungen habe ich ja genannt)

Das Problem ist also mit dem Wissen der Wkt die richtige Entscheidung zu treffen. Anbei hänge ich noch die Spielzüge der BasicStrategy an (Stands on Soft 17). Wobei wir nur die HardHands beachten. SoftHands und Splits beachten wir aktuell der Einfachheithalber nicht.
wizardofodds.com/games/blackjack/strategy/4-decks

> Die Ermittlung der Wahrscheinlichkeiten ist also nicht so einfach und straightforward wie man anfangs vielleicht glauben möchte und ohne dass man das sauber hinbekommt wird man auch keine sinvollen KI-Entscheidungen erwarten dürfen. <

Hmm, ja das dachte ich auch. Deswegen habe ich die Berechnungen der WKT mehrfach geprüft und konnte keinen Fehler feststellen. Allerdings habe ich noch die Besonderheit der Asses nicht berücksichtigt.
Also wie schon beschrieben multipliziere ich ja die WKTs der einzlenen Karten miteinander und addiere das Ergebnisse dann auf die 19, falls die gezogenen Karten 19 ergeben. So ergeben sich dann meine Wkts. Das ist doch richtig oder?


Antwort
Roman-22

Roman-22

13:52 Uhr, 03.08.2018

Antworten
> Jeder Spieler hat nur den Dealer als Gegner, also muss diesen besiegen. Es gibt also keinen Grund noch weitere Spieler zu implementieren.
Gerade in deiner One Deck only Variante ist das aber wichtig, welche Karten die Mitspieler bekommen haben.
Was meinst du eigentlich andauernd mit "frischem Deck"?
Zu Beginn sinds also nur die kompletten 52 Karten, aber ab dann ändern sich doch die WKTen je nachdem, welche Karten gezogen werden.

> Das Problem ist nur, dass sich die Entscheidungen der KI schon bei einem frischen Deck von der BasicStrategy unterscheiden. Darin ist wohl die negative Gewinnquote begründet

Casinos bieten doch keine Spiele an, bei denen der Spieler einen positive Erwartungswert hat!
Ganz zu Beginn muss doch der Spieler eine negative Gewinnerwartung haben. Das liegt doch in der Natur des Spiels und im Wesentlichen darin begründet, dass eben, wie du vorhin selbst geschrieben hast, der Spieler beginnt und der Dealer nicht mehr weiter spielen muss, wenn der Spieler gebustet hat. Durch Mitzählen kann man dann seine Chancen um 1 bis 2 Prozent erhöhen (hier hat man bei der single deck Variante natürlich Vorteile).
Volrath

Volrath aktiv_icon

14:31 Uhr, 03.08.2018

Antworten
>Gerade in deiner One Deck only Variante ist das aber wichtig, welche Karten die Mitspieler bekommen haben.
Was meinst du eigentlich andauernd mit "frischem Deck"?
Zu Beginn sinds also nur die kompletten 52 Karten, aber ab dann ändern sich doch die WKTen je nachdem, welche Karten gezogen werden.<

wie schon bereits beschrieben, zähle ich jede gezogene Karte mit und berechne nach jedem Zug die Wahrscheinlichkeiten neu. Mit frischem Deck meine ich, dass das Deck vor dem Match nochmal neu gemischt wird, d.h. gezogene Karten werden zurückgelegt. Das habe ich testweise mal ausprobiert in der Hoffnung, dass bei einem "frischem" Deck die Entscheidungen der KI mit der der BasicStrategy übereinstimmen. Das ist nämlich das erste Ziel, denn die Entscheidungen der BasicStrategy sind bei einem frischem Dekcn nun mal die Besten. Vielleicht können wir ja anhand der Tabelle der BasicStrategy ableiten, was die Rechenbasis ist?

> Casinos bieten doch keine Spiele an, bei denen der Spieler einen positive Erwartungswert hat! <

Ziel ist es nicht einen positive Gewinnquote zu erzielen, sondern nur eine bessere als die der BasicStrategy. Selbst die BasicStrategy hat nur eine Gewinnquote nahe der 50, weil das Casino selbstverständlich im Vorteil ist.

Ich habe mit einem Simulator mehrere Millionen Matches gespielt. Splits und Doubles habe ich nicht berücksichtigt. Hierbei hat der Spieler der nach der Basic Strategie geht und die Karten nicht zählt eine Gewinnquote von 46,7% gehabt. Unsere KI die, die Karten zählt und basierend darauf eine Entscheidung trifft hatte eine Gewinnquote von 46,5%. Das was ich erwartet hätte, ist dass die KI leicht besser sein sollte als der BasicSpieler.
Antwort
Roman-22

Roman-22

15:27 Uhr, 03.08.2018

Antworten
Ich weiß nicht, ob diese Abweichung von zwei Zehntel Prozentpunkten bei nur ein paar Millionen Spielen so signifikant ist.

Beinhaltet "Gewinnquote" nur die Info, ob ein Spiel gewonnen (= gewonnen oder tie) wurde oder beinhaltet es den monetären Gewinn. Anders gefragt, ist dabei auch die höhere Auszahlungsquote (3:2 oder 6:5) bei einem BlackJack beinhaltet?

Wie berechnest du eigentlich die WKT, dass der Dealer zB 18 erreicht?
Berücksichtigtst du dabei auch die fiktiven Karten, die der Spieler bekommt?
Ich meine damit, dass du eigentlich keine fixe WKT dafür angeben kannst, dass nach einem bestimmten Spielverlauf der Dealer eine bestimmte Punktesumme erhält (für den Spieler ist das sehr wohl möglich).
Du müsstest für jede fiktive Möglichkeit der zukünftigen Spieler-Karten die WKT, dass der Dealer gewinnt, extra berechnen. Denn ja nachdem, welche Karten der Spieler bekommen wird, ändert sich ja die WKT für das Erreichen einer bestimmten Punktzahl beim Dealer.
Ich denke, dass das das Problem bei deinem Ansatz ist.
Einfaches Bsp: Dealerstand ist 15, Spielerstand ist 16. Die WKT, dass der Spieler eine gewisse Punkteanzahl erreicht lässt sich so wie du es skizziert hattest leicht ermitteln.
Um die WKT zu bestimmen, dass der Spieler genau 18 erreicht musst du die WKTen, dass 1-3,3-1,2-2 oder 4 gezogen wird. Der Dealer verliert nun, wenn er nur 17 erreicht oder über 21 kommt. Die WKT, dass er 17 erreicht kannst du an dieser Stelle aber nicht so einfach ermitteln, wie du es vermutlich getan hast.
Was du berechnen kannst und musst ist die bedingte WKT dafür, dass der Dealer 17 erreicht unter der Voraussetzung, dass der Spieler 18 erreicht hat.
Dazu musst du die WKT, dass der Spieler 1-3 bekommen wird, multiplizieren mit der WKT, dass unter dieser Voraussetzung (1,3 sind nun zusätzlich nicht mehr vorhanden) der Dealer eine 3 oder 2-1 bekommt. Dazu musst du das Produkt aus WKT Spieler bekommt 2-2 mit der unter dieser Voraussetzung berechneten WKT, dass der Dealer 3 oder 2-1 bekommt addieren usw.

Das meinte ich auch erst damit, dass du eigentlich alle Möglichkeiten voruasberechnen müsstest.
Volrath

Volrath aktiv_icon

16:18 Uhr, 03.08.2018

Antworten
> Beinhaltet "Gewinnquote" nur die Info, ob ein Spiel gewonnen (= gewonnen oder tie) wurde oder beinhaltet es den monetären Gewinn. Anders gefragt, ist dabei auch die höhere Auszahlungsquote (3:2 oder 6:5) bei einem BlackJack beinhaltet? <

Die Gewinnquote ist die Anzahl der Siege durch die Anzahl der Siege plus Anzahl der Niederlagen. Gleichstand wird somit rausgerechnet. Wenn also 10 Spiele gespielt wurden, 3 davon waren ein Sieg und 5 davon eine Niederlage und 2 Pushes ergibt die Gewinnquote:
38=0,375.
Die getätigten Einsätze und der Kontostand spielen erstmal keine Rolle, da wir das Ziel haben die Gewinnquote zu verbessern. Einsätze, Splits und Doubles würden hinzukommen, sobald wir mit der KI eine solide Basis erreicht haben und diese muss höher sein als die der BasicStrategie.

> Du müsstest für jede fiktive Möglichkeit der zukünftigen Spieler-Karten die WKT, dass der Dealer gewinnt, extra berechnen <

Du hast in diesem Punkt recht. Das habe ich tatsächlich nicht so gemacht. Ich rechne aktuell die Wahrscheinlichkeit auf Basis der aktuellen Kartensituation aus und nicht mit der Bedingung, dass der Spieler bereits gezogen. Dies werde ich noch ergänzen.
Was ic aber bei der Ausführung nicht verstehe, sind die Karten die du ziehst.
Es steht ja 16 zu 15 und wir wollen die WKT errechnen, dass der Spieler 18 bekommt. Dann gibt es eigentlich nur noch die Kombination 1+1, oder 2. Warum schreibst du dann folgendes? "..genau 18 erreicht musst du die WKTen, dass 1−3,3−1,2−2 oder 4 gezogen wird?" . 16+4 ergibt doch 20.
Ich habe aber verstanden, dass ich für jede Kombination die den Spieler zwischen 17-21 bringt die bedingte Wahrscheinlichkeit des Dealers errechnen muss. Dann habe ich die Wahrscheinlichkeiten des Dealers die AUgenzahlen 17-21 zu erhalten in Abhängigkeit zu der Wahrscheinlichkeit , dass der Spieler 17,18,19,20,21 erhält. Das wären dann

(P17uD17 bedeutet = WKT dass D17 erhält unter der Voraussetzung dass der Spieler eine 17 hat)

P17uD17
P17uD18
P17uD19
P17uD20
P17uD21
P17uD>22

P18uD17
P18uD18
...
...
...
P21uD>21

Dann natürlich auch noch die Wahrscheinlichkeit, dass der Spieler bustet, wobei dann die Hand des Dealers egal ist.
Das wären dann jetzt viel mehr Wahrscheinlichkeiten und die Frage ist nun wie die KI daraus eine Entscheidung ableiten kann. Funktioniert dann noch der Ansatz den du vorgeschlagen hast?
Antwort
Roman-22

Roman-22

17:39 Uhr, 03.08.2018

Antworten
>16+4 ergibt doch 20.
Ähmm, ja, du hast Recht. Ist aber auch eine schwierige Rechnung :-D)

> Ich habe aber verstanden, dass ich für jede Kombination die den Spieler zwischen 17−21 bringt die bedingte Wahrscheinlichkeit des Dealers errechnen muss.

Ich würde es, wenn man diesen Aufwand schon betreibt, gleich so machen, dass du für jede Situation, die für den Spieler eintreten kann, die (bedingte) WKT berechnest, dass der Dealer verliert.

Oder noch besser, weil weniger Aufwand - Berechne die WKT, dass der Dealer gewinnt (oder verliert), wenn der Spieler keine Karte mehr nimmt. Es geht ja nur um die Entscheidung, ob noch eine Karte genommen werden soll, oder nicht.

Allerdings würde die KI dann vermutlich intelligenterweise gleich Beginn empfehlen, die Finger vom Spiel zu lassen ;-)
Jedenfalls dürfte man so nicht die 50%-Grenze zur Entscheidung heranziehen.

Nein, ich denke, man wird doch nicht drum herumkommen, alle Varianten zu bewerten und dann die mit dem geringsten Verlust zu wählen. Das wird umso schwieriger, wenn du eine Variante mit mehr als nur einem Spieler andenkst, weil im Gegensatz zum Dealer und dir als Spieler, die beide einer festen Strategie folgen, die anderen Spieler in ihrem Verhalten ja unberechenbar sind und alle Möglichkeiten berücksichtigt werden müssen. Auch die, dass ein Spieler beim Stand von 20 noch eine Karte nimmt - die fehlt dann, wenn es darum geht, die WKT des Dealers, dich zu schlagen, zu kalkulieren.

Schätze du wirst die Entscheidungsfunktion der Einfachheit halber rekursiv ausführen.
Denn um in einer bestimmten Situation zu entscheiden, ob noch eine Karte genommen werden soll, wirst du in einer Schleife mal die möglichen 11 Fälle die es beim Nehmen eine Karte gibt (mit Ass =1 oder 11 sind es dann 12 Fälle) durchgehen und für jeden Fall die Gewinnwahrscheinlichkeit ermitteln.
Wenn du dann zB den Fall "Karte ist eine 5" behandelst, so ist der nächste Schritt, zu entscheiden, ob eine weitere Karte genommen wird oder nicht. Also muss die Entscheidungsfunktion sich nun mit geänderten Bedingungen selbst aufrufen.

Volrath

Volrath aktiv_icon

18:16 Uhr, 04.08.2018

Antworten
Ich werde dies a.s.a.p implementieren und das Ergebnis dann mitteilen.

Danke für deine Hilfestellung :-)
Antwort
Roman-22

Roman-22

19:49 Uhr, 04.08.2018

Antworten
Hier noch ein paar Links
Habe sie allerdings nur kurz überflogen, aber vl ist was Brauchbares für dich dabei.
Viel Erfolg!

Maturaarbeiten
www.ksasz.ch/images/PDF-Dokumente/Maturaarbeiten/2012/4A/4a_suter_david.pdf
http//wmisargans.ch/html_css/2012/dario/index.html

BJ Wahrscheinlichkietsrechner
www.card-counting.com/CVDPC.htm

Geogebra Applet
www.geogebra.org/m/yMTuDhHj#material/fdf46PGu

Vortrag Steven Wu
www.youtube.com/watch?time_continue=30&v=BP0XrWciTew

Sammlung von WKT-Tabellen
http//de.casinopope.com/blackjack-tabelle.html

Facharbeit
www.grin.com/document/149576

Eine Modellierung der Basic Strategy
www.epubli.de/shop/buch/Erwartungswerte-f%C3%BCr-Black-Jack-Yannis-Maronidis-9783745074314/70763#beschreibung
Volrath

Volrath aktiv_icon

19:33 Uhr, 11.08.2018

Antworten
Danke für die Links. Die waren echt hilfreich.

Ich hab den Algorithmus zur Berechnung der Wahrscheinlichkeit geändert und bin dabei auf ein Problem gestoßen.

Wir wollten ja jetzt die Wahrscheinlichkeiten des Dealers unter der Bedingung ausrechnen, dass der Spieler bereits gezogen hat. Nehmen wir mal an es steht 9 zu 9 und es gibt im Deck nur noch 5x die Karte 4 und 5x die Karte 8.

Dann ist die Wahrscheinlichkeit der ersten Runde, dass der Spieler eine 17 zieht

9+4+4=1751049=0.22%

Jetzt rechne ich alle Wahrscheinlichkeiten des Dealers aus unter der Bedingung , dass der Spieler eine 17 hat und berücksichtige die bereits gezogenen Karten, d.h. dann:

9+4+4=173827=0.11%

und noch zusätzlich

9+8=1758=0.62%

Somit ergibt sich für den Dealer die Wahrscheinlichkeit von 0.73%(0,11+0,62) eine 17 zu erreichen unter der Voraussetzung das der Spieler mit den Karten 4 und 4 eine 17 erreicht.

Jetzt spielen wir die nächste Runde für den Spieler mit der 8.

9+8=17510=0,5%

Nun ist wieder der Dealer dran

9+4+4=175948=0.28%

sowie

9+8=1749=0.44%

Hier ergibt sich für den Dealer eine Wahrscheinlichkeit von 0.72%(0.28+0.44) eine 17 zu erreichen unter der Voraussetzung das der Spieler mit der Karte 8 eine 17 erreicht.

Um die Gesamtwahrscheinlichkeit des Dealers eine 17 zu erreichen unter der Voraussetzung dass der Spieler eine 17 hat zu berechnen, muss ich doch wie folgt rechnen:

S17uD17 =(0.730.11)+(0.720.5)=0.44%

Dann noch zusätzlich die Wahrscheinlichkeit, dass der Dealer eine 17 erreicht unter den Voraussetzungen, dass der Spieler eine 14 und 18 hat analog wie oben aufgeführt.

Ist das so richtig?

Antwort
Roman-22

Roman-22

21:56 Uhr, 11.08.2018

Antworten
Zunächst mal schreibe bitte nicht 0,22%, wenn du 22,.. % meinst! Diesen Fehler hast du durchgehend gemacht. Also entweder 0,73214, oder 73,214%.

In deiner zusammenfassenden Rechnung sollte statt (0.730.11) wohl eher (0,730,22) stehen und das Ergebnis dann 52,381% sein.
Das ist allerdings die Wahrscheinlichkeit dafür, dass beide 17 erreichen, also P(S17P17).

Die bedingte WKT dafür, dass der Dealer 17 erreicht unter der Vss, dass der Spieler 17 erreicht hat, liegt bei 669172,527%. Mit der Ergänzung auf 100%, also mit WKT 27,473% gewinnt der Dealer mit 21, wenn der Spieler bis 17 spielt und dann stoppt.

Bei all dem hast du aber bereits vorausgesetzt, dass der Spieler bei 13 noch eine Karte nimmt und bei 17 passt. Das darfst du aber nicht fix als Regel vorgeben, sondern das müsste dein Algorithmus dem Spieler raten. Genau das meinte ich, als ich schrieb, dass deine Entscheidungsroutine sich selbst aufruft, also rekursiv zu implementieren sein müsste.
Diese Funktion sollte auch keine Wahrscheinlichkeiten als Ergebnis retournieren, sondern nur die Entscheidung, ob in einer bestimmten Situation noch eine Karte genommen werden soll oder nicht. Ich denke auch, dass zur Entscheidungsfindung nicht die WKTen zu gewinnen herangezogen werden sollte, sondern der Erwartungswert des Gewinns, also E (Einsatz) im Falle des Gewinns, 32E im Falle von BJ (oder was immer die Tischregel da ist), 0 im Fall von Gleichstand und -E im Falle eines Verlusts. Die Strategie ist, den Gewinn zu maximieren, oder besser gesagt den Verlust zu minimieren, also jene Variante zu wählen, die den geringsten Verlust verspricht.

> Dann noch zusätzlich die Wahrscheinlichkeit, dass der Dealer eine 17 erreicht unter den Voraussetzungen, dass der Spieler eine 14 und 18 hat analog wie oben aufgeführt.

Wie kann der Spieler in der von dir dargelegten Situation denn 14 oder 18 erreichen??
Er kann doch nur auf 9 bleiben, 13,17 oder 21 erreichen, oder busten.
Der Dealer hat nur die Optionen 17 oder 21 in dieser Situation, denn im Gegensatz zum Spieler MUSS er bei 13 noch eine Karte nehmen und DARF bei 17 keine mehr nehmen.


Diese Frage wurde automatisch geschlossen, da der Fragesteller kein Interesse mehr an der Frage gezeigt hat.