Jeu (0.1) Solveur?

sinn tu peut appliquer les principe de l’isomorphisme pour réduire le nombre de combo à calcule, pareille pour les turn et river, et ca ne changerai rien à la strat GTO.

Yep c’est en cours d’implémentation mais je vais devoir trouver pleins d’astuces supplémentaires car même ça, ça sera loin d’être suffisant. Je n’ai malheureusement pas des milliers d’années de temps CPU à disposition, ni le budget pour faire les calculs nécessaires (ceux qui ont fait l’IA libratus pour le no limit heads up ont utilisé 25 millions d’heures CPU pour les calculs).

GL ta du pain sur la planche

1 « J'aime »

Pour le jeu kuhn poker, c’est assez simple à comprendre image , car si alpha > à 33, il lui faudrait un nombre de K > à 1 à bet pour inciter les Q de IP à fold
du coup les J miss de l’EV, et il ne rend pas suffisamment d’EV au K pour compenser.

dans la ligne ou les K bet il vont récupérer 0.67 / 2 d’EV des Q, soit 1/3. si il check il vont récupérer l’EV des bluff des J, soit 1/3 / 1
donc les K sont indifférent entre c’est 2 ligne.

et pour les J quelle que soit la ligne il auront une EV de 0, quand il bet il vont gagner 2 * 1/3, et il vont perde 1 * 2/3, et si il check, il vont jamais gagner au showdown, et toujours fold.

de même si on mets une ante de 0.5 unité a la place de 1, alors l’équilibre de nash s’effondre

sinn si je solve le jeu mathématiquement, en donnant l’option au deux joueur le chois de fair n’importe quelle action, avec n’importe quelle sizing

j’ai OOP bet 38.8 % avec un sizing d’environ 0.25 % des K, il bet 15.6 % des Q (meme size), et bet 7.81 % de J

apres un check IP va bet un size d’environ 0.54 avec 100 % des K, et 35.16 % des J.

Est ce que ton algo trouve ca ?

Je peux pas donner à mon algo la possibilité de choisir parmi n’importe quel sizings car l’arbre de décision serait infini, je dois comme dans un solveur lui définir des sizings sur lesquels il pourra travailler.

Je viens de relire notre discussion d’hier à tête reposée, je n’ai pas compris comment tu calculais l’ev.

Pour EV des J = -1 c’est évident mais prenons l’exemple de l’EV des K.

Dans ta formule tu as EV des K = 2+1 * P bet une Q - 1, comment tu trouves ça? P bet une Q devrait être égale à 0 non? Car si vilain bet une Q et qu’on a un J on fold 100% et si on a un K on call 100%.

Par contre vilain va bet en fréquence ses J en bluff. Comme on bet 1/2 vilain doit avoir une fréquence de bet bluff de 1/4. Comme il va bet uniquement ses J et K avec une fréquence de 100% de bet pour ses K, il doit bet 1/3 de ses J pour avoir 1/4 de bluffs dans sa range de bet. Du coup comme on a nous même le K et que vilain ne bet pas les Q, il va bet à une fréquence de 1/6 et check 5/6.

Perso j’avais calculé de cette façon EV des K = 1 * pCheck + 2 * pBet = 1 * 5/6 + 2 * 1/6 = 7/6 = 1.16666…

1 « J'aime »

Pour l’EV des K dans la ligne bet, on aura pour EV :

– 1 (notre ante initiale) + 2 (le pot (on à 100 % d’équiter), et la Probabilité de se faire call par une Q.

La probabilité qu’une Q call est ((2 / (1 + 2) * 2 – 1) / 2

Le 2 / (1+2) peut être trouvé par des équation d’indifférence, c’est la fréquence de call GTO du jeu, car si ‘il call moins on peut l’exploiter en bluffant tout nos J, et s’il call plus on arrête de bluff, et on gagne de l’EV. Le fois 2 c’est la range qu’il doit défendre soit c’est K + Q = 2, et on retire 1 ce qui correspond au K, ainsi il nous reste 1/3 Q, il à deux combo dans sa range (on block les K, donc il call 1/6

Oui je me suis emmêlé les pinceau avec le jeu AKQ, dans le jeu AKQ la Q = J.

pour la ligne check on à - 1 + 2 + P bet un J, soit 1/3 et on divise par 2, car il à 2 combo donc 1/6, il va bet 1 / (2 + 1) des J

1 « J'aime »

j’ai oublier de redivisé par 2, mais j’ai le meme résultat que toi si je redivise par 2, soit 7/6.
EDIT c’est bon j’ai corrigé

J’ai essayer de regarder sur internet vite fait, j’ai rien trouvé sur le duc poker

du coup si je comprend bien chaque joueur à une chance équiprobable de ce voir réservoir un J, Q, et un K.

Il y’a un tours d’enchère preflope,

Pour les K on à ;
évènement A : K qui hit paire est gagne vs Q et J, donc 100 % * 1/3
évènement B : K qui miss, un J tombe, il perd vs J, mais gagne contre Q, donc 1/2 * 0 + 1/2 * 1 = 1/2
évènement C : K qui miss, Q qui tombe, il perd vs Q, et gagne vs J, donc 1/2 * 0 + 1/2 * 1 = 1/2

Total equity = P(A) * EQhA + P (B) * EQhB + P (C) * EQhC, soit 1/3 + 1/6 + 1/6 = 2/3

Pour la Q
Q qui hit pair , 100 % d’équity, donc 1/3
Q qui miss, un J tombe, il perd vs J, et vs K, donc 0
Q qui miss, K tombe, il perd vs K, et gagne vs J, donc 1/2

Total equity = P(A) * EQhA + P (B) * EQhB + P (C) * EQhC, soit 1/3 + 0 + 1/6 = 1/2

pour le J
J hit , 100 % d’équity
J miss, K qui tombe, 0 %
J miss, Q qui tombe, 0 %

Total equity = P(A) * EQhA + P (B) * EQhB + P (C) * EQhC, soit 1/3 + 0 + 0 = 1/3

Range equity = 1/3 * 2/3 + 1/3 * 1/2 + 1/3 * 1/3 = 50 (logique les joueur on la même range.)

ensuite le flop tombe soit un K, Q , ou un J tous on une proba équivalente de tomber.

un autre tour d’enchère à lieu.
ensuite le jeu s’arête, on un paire > full no mad hand, et no ma hand la plus haute > no mad hand la plus base.

Est- ce que j’ai bien comprit les règle du jeu ?

Est- ce que les mise sont limté à une unité à chaque street, on à un % du pot, peut ont raise ?

1 « J'aime »

@Xenoeus tu dois kiffé grave là :rofl: :innocent: :stuck_out_tongue:

Tu es dans ton élément ^^

1 « J'aime »

Le jeu Leduc Hold’em a été introduit pour la première fois dans ce papier: https://arxiv.org/ftp/arxiv/papers/1207/1207.1411.pdf

Deck de 6 cartes KKQQJJ, le deck est mélangé et chaque joueur reçoit une carte au hasard avec la même probabilité. Au départ, chaque joueur place une ante dans le pot.

Dans la version classique les sizings sont fixé à 2 pour le premier tour et 4 pour le second tour. Maximum un raise (pas de reraise). Après il existe aussi les variantes du leduc hold’em en no limit.

Premier tour d’enchère

Les joueurs peuvent check ou bet 2. Si il y a double check, une carte communautaire est mise sur la table. Si un joueur bet 2, l’autre joueur peut call ou raise de 2. Si un joueur raise, on ne peut pas reraise, juste call ou fold.

Second tour d’enchère:

La même chose sauf que le bet et raise sizing est fixé à 4.

Leduc Hold’em is a two player poker game. The deck used in Leduc Hold’em contains six cards, two jacks, two queens and two kings, and is shuffled prior to playing a hand. At the beginning of a hand, each player pays a one chip ante to the pot and receives one private card. A round of betting then takes place starting with player one. After the round of betting, a single public card is revealed from the deck, which both players use to construct their hand. This card is called the flop. Another round of betting occurs after the flop, again starting with player one, and then a showdown takes place. At a showdown, if either player has paired their private card with the public card they win all the chips in the pot. In the event neither player pairs, the player with the higher card is declared the winner. The players split the money in the pot if they have the same private card.

Each betting round follows the same format. The first player to act has the option to check or bet. When betting the player adds chips into the pot and action moves to the other player. When a player faces a bet, they have the option to fold, call or raise. When folding, a player forfeits the hand and all the money in the pot is awarded to the opposing player. When calling, a player places enough chips into the pot to match the bet faced and the betting round is concluded. When raising, the player must put more chips into the pot than the current bet faced and action moves to the opposing player. If the first player checks initially, the second player may check to conclude the betting round or bet. In Leduc Hold’em there is a limit of one bet and one raise per round. The bets and raises are of a fixed size. This size is two chips in the first betting round and four chips in the second.

Oui c’est pas mal :nerd_face:

1 « J'aime »

Tu as aussi K qui miss, un J ou une Q tombe et K split contre K vu qu’il y a 2 K dans le deck.

1 « J'aime »

Ok merci
du coup en carte on à K1, K2, Q1, Q2, J1, J2.

K1 block K1, mais block pas K2 donc K1 peut rencontrer K2, et split.

si une pair tombe alors il y’a jamais de split, car on block K1, et la carte du board block K2.

du coup pareille pour Q1Q2, J1J2.

Je vais regarder les lien que tu ma envoyer pour vérifier.

Quand j’aurai un peut de temps je vais essayer de trouver toute les équation du jeu, ca à l’air intéressant.

1 « J'aime »

Si tu réussis à calculer l’ev théorique de OOP tiens moi au courant, ça m’intéresse pour vérifier mes résultats :slight_smile:

1 « J'aime »

Ok, j’essayerai de faire ca quand j’aurai un peu de temps.

1 « J'aime »

Tu vas en avoir besoin, il y a 288 états d’information dans cette configuration du leduc hold’em, pour le kuhn poker il n’y en avait que 12. Pour l’ev de OOP, je tourne aux alentours de -0.118…

1 « J'aime »

En effet ça risque en effet d’être plus long et compliqué que ce que je penser.

En enlevant tous les starts dominés je pense que je pourrai réduire les points de décision.

Je vais me réserver une journée pour essayer de le résoudre.

1 « J'aime »

Je viens de lancer l’algo dans la config du jeu que je t’ai donné, voici la strat que j’obtiens sur 1M iterations pour les 288 états, ça n’a peut être pas totalement convergé vers nash sur si peu d’iterations mais l’ev d’oop ne bouge déjà plus des masses et reste entre -0.118 et -0.124.

Les stratégies de gauche à droite sont toujours classée en fonction de l’action autorisée de la plus passive à la plus aggro, donc pass, call, bet, raise.






1 « J'aime »

Intéressant, si je comprend bien, preflope
le J va check 86 %, bet 13 %.
vs bet il va fold 88 %, call 12 %, et raise epsilon (proche de zéro)

post flop dans la ligne bet call flop J, il check 70 %, bet 30 %

1 « J'aime »

Je suppose que dans ce jeu, il doit il y’avoir plusieurs équilibre de nash ?

C’est exactement ça.

Comme dans le kuhn poker oui, j’obtiens des strats différentes parfois avec la même ev de oop.

1 « J'aime »