mardi 23 mars 2010

Autumn leaves and spring blossoms.

Spring blossoms in my garden. The winter snow has melted for good, and the brown and yellow oak leaves that had been caught by surprise five months ago lie all around outside my house. I gotta spend a little time to prepare the next season.

Being successful in a poker festival is like gardening. It requires a little preparation every day before the season starts, in order to be ready when the right time comes. Planting seeds, monitoring the growth, harvesting the fruits, taking care of the flowers, cleaning and cutting the trees : all these tasks have to be planned.

The SCOOP Poker Festival will take place in May, forty days from now : the time is right to prepare my plan. A poker festival requires free time, money, and goals. Time is important, as playing from four to ten hours every day for almost two weeks is a constraint on your life. Money is important, whether you are playing for fun or for money. And if my goal is to be successful in the tournaments I play, I have to compete in a field that is not too big. Beating 10000 skilled and not-so-skilled players is quite more difficult than beating 500 skilled players.

The poker tournaments that meet these requirements are listed below. Low-stakes tournaments will have a huge field, I cross that; so will the no-limit Hold'em medium stakes tournaments, I cross that; high-stakes tournaments are out of my budget, I cross that. I can play middle-stakes, non-Texas games, I check that. Eighteen tournaments are on my list.

04-M Badugi $162, limit
06-M Draw Poker $109, pot-limit
10-M 7-Stud $320, limit
11-M Omaha HU $215, pot-limit
13-M Hold'em Ante-Up $162, no-limit
14-M Omaha HiLo $530, limit
16-M Hold'em Triple Shoutout $215, no-limit
18-M Hold'em $215, limit
24-M 2-7 triple $109, limit
25-M 7 HiLo $215, limit
27-M Razz $215, limit
29-M 8-game $320
30-M Omaha HiLo $109, pot-limit
32-M Hold'em $530, limit
33-M Omaha HiLo $215, no-limit
34-M Omaha $530, pot-limit
35-L Hold'em HU $270, no-limit
36-M HORSE $215

Should I have extra money to spend, I will play the main event (38-M Hold'em, $1050, no-limit). April will be a month of satellites for these events.

lundi 22 mars 2010

Enfin une tendance qui me plaît

Depuis début 2010, je suis reparti de zéro pour reconstruire une bankroll. Une mise de départ, qu'on essaie de faire fructifier, puis lorsqu'on a de la réussite, qu'il s'agit de gérer avec un BRM approprié.

Or, jusque-là, malgré mes tentatives, j'avais surtout réussi à obtenir la case broke. Les tentatives de décollage agressif se sont soldées par la case broke quand je n'avais pas le niveau, et par la case bad-beat-broke quand j'avais le niveau mais pas la profondeur pour absorber les fluctuations.

Alors, fort de quelques articles mathématiques que j'ai écrits (je rapatrierai sur ce blog ceux que j'ai postés ailleurs, sur Grenoble Poker ou sur Club Poker), je me suis dit qu'il était temps de prouver que les mathématiques ont raison, qu'il existe des variantes de jeu où je suis assez fort pour être rentable malgré le rake.

Alors, grande nouvelle : je suis rentable sur les tournois à 45 ou 90 joueurs, structure 5 minutes, à un dollar et dix cents. Ma bankroll a désormais 120 buy-in ($132), j'arrive à faire un petit volume en multitablant 16-20 tables en continu sans nuire à la qualité de mon jeu, tout ça sans tracker. Je vais continuer encore un peu à cette limite, avant de mixer ces tournois avec le niveau au-dessus, à trois dollars et vingt-cinq cents (rake 8,33% au lieu de 10%, youpi!). Puis il sera temps, avec l'accumulation des tournois, de faire quelques mesures statistiques pour calculer mon estimateur d'edge, et l'écart pratique entre la structure winner-take-all (utilisée dans mes calculs théoriques) et celle de ces tournois.



Il y a un facteur psychologique très important dans le tournoi : le buy-in s'oublie très facilement, seuls comptent les jetons. Dr. Taamer or : How I stopped worrying and loved the bubble.

jeudi 18 mars 2010

Stratégie probabiliste shortstack

Une fois que l'on a établi le classement push des mains, et que l'on est familiarisé avec leur force, il n'y a plus qu'à savoir quand miser son tapis avec telle ou telle main : avec quel tapis, et à quelle position à la table?.

Le jeu push-or-fold a été résolu en heads-up par Sklansky et Chubukov. Ils calculent la taille maximale du tapis (appelé nombre de S-C) qu'un joueur peut pousser pour gagner un pot de 3 unités, en situation de heads-up. C'est une situation d'équilibre entre les nombreux petits vols, couplé aux situations moins fréquentes où votre adversaire vous paie avec une meilleure main. Mais tout le monde sait qu'au Hold'em, même la main la plus faible conserve une certaine équité.

Il nous faut donc résoudre le jeu push-or-fold avec plus d'un adversaire à parler derrière nous, ce qui augmente la probabilité qu'une meilleure main que la nôtre soit distribuée chez l'un des joueurs restants à parler. On ne s'étonnera donc pas que la taille maximale du tapis que l'on puisse miser, avec une main donnée, dans une position donnée, diminue drastiquement par rapport au calcul heads-up.

Comment faire les calculs? Il s'agit de savoir ce que l'on calcule. Si j'ai par exemple QQ en main, le dénombrement qui m'intéresse est de savoir combien de fois l'un de mes adversaires pourra avoir AA ou KK en main, qui sont les seules mains que je craigne vraiment.

Il y a 1326 mains au poker, dont six fois AA et six fois KK. Si je tire deux cartes dans un paquet de 52, la probabilité que j'obtienne AA ou KK est de 12 / 1326. Si j'effectue plusieurs donnes, j'obtiens une probabilité combinée, que l'on appelle tirage multiple avec retirage. Avoir au moins une fois AA ou KK en n donnes vaut 1-(1314/1326)^n.

Lorsque je veux savoir si n adversaires peuvent avoir AA ou KK sur la même donne, la procédure est différente : je prends deux cartes dans le paquet de 50 cartes pour le premier adversaire, puis deux cartes dans le paquet de 48 pour le second adversaire, et je continue ainsi de suite, sans remettre les cartes déjà distribuées dans le paquet. C'est évident pour vous, qui avez déjà vu une donne de poker. Nous avons cette fois un tirage multiple sans retirage.

Lorsqu'on tire des boules blanches et des boules noires, les calculs restent assez simples, que l'on fasse ou pas des retirages. Mais au poker, on tire des cartes une par une, et on compare leur association en combinaison de deux cartes. Ce dernier point complique le problème pour compter les combinaisons! En effet, si le tirage pour le premier adversaire est le 5 de Pique et le Roi de Coeur, j'ai obtenu une combinaison qui n'est ni AA ni KK, mais cette combinaison modifie le nombre de combinaisons favorables pour les tirages des joueurs suivants, puisque le Roi de Coeur aura été retiré du paquet. C'est ce calcul de corrélations qui donne toute sa complexité, dans le calcul, au problème qui nous intéresse.

Pour ceux qui aimeraient creuser ce problème, voici quelques pistes. Le nombre de façons de distribuer deux cartes à un joueur, à partir d'un paquet de 52 cartes, est de C(52,2)=52*51/2, c'est à dire 1326. Le nombre de façons de distribuer deux cartes chacun à deux joueurs, vaut C(52,4)*3!!, où la notation 3!! représente le produit des nombres impairs jusqu'à 3. 1!!=1, 2!!=2, 3!!=3*1, 4!!=4*2, 5!!=5*3*1, 6!!=6*4*2, etc. Ce nombre représente les associations possibles des cartes tirées, deux à deux. Par exemple, le nombre de choix possibles pour une journée de calendrier de championnat de football, à 20 équipes s'affrontant deux à deux, vaut 19!!. Une fois qu'on a le nombre de semi-donnes, c'est à dire le nombre de façons de répartir 2n cartes tirées d'un paquet de N cartes et distribuées à n joueurs, la difficulté est de calculer les corrélations pour appliquer la méthode d'inclusion-exclusion pour déterminer le nombre de donnes où aucun adversaire n'a AA ni KK. C(2n, N)*(2n-1)!! est le nombre de semi-donnes, je vous laisse commencer les calculs de corrélation, c'est facile quand il n'y a que des paires, c'est plus compliqué lorsqu'il y a les combinaisons ont des cartes en commun. Soyez rigoureux.

Tout ça pour dire que j'ai contourné la difficulté du calcul - même s'il s'agit d'une difficulté de bien organiser le compte des corrélations - en utilisant une approximation. Il se trouve que la loi statistique des tirages avec retirage s'appelle la loi hypergéométrique. Cette loi admet trois paramètres : le nombre total d'éléments que l'on peut tirer (A), le nombre de tirages successifs (n), et la fraction de résultats favorables (p). Cette loi possède un certain nombre de propriétés, dont une qui m'intéresse : lorsque n est petit devant A, la loi hypergéométrique converge vers la loi binômiale, qui est celle des tirages successifs avec retirage. Ici, A vaut 1326, n vaut au maximum 9, tout roule.

mercredi 17 mars 2010

Rétroclassement : ordre de push, ordre de call.

(suite du billet précédent) Le tableau de rétroclassement nous apprend plusieurs choses. D'abord, que l'on peut déterminer un classement des mains. Ce classement n'est pas un ordre au sens mathématique, car la non-transitivité réfute toute idée d'ordre. Qu'une main soit mieux classée qu'une autre indique juste que cette main se comporte mieux face à un range donné, par construction du classement. C'est un ordre de push : plus vous avez une main forte, plus vous pouvez pousser votre tapis pour prendre le pot tout de suite, et avoir de l'équité si vous êtes payé.

Le tableau de rétroclassement nous apprend aussi que les ranges de push doivent être connexes en stratégie push-fold. Si dans une situation à la table donnée, décrite par votre siège, par votre M, et les actions faites avant vous, vous misez votre tapis avec la main qui est classée 31ème, alors cela signifie que votre range de push théorique est composé d'au moins les 31 premières mains de ce classement. Vous poussez de la même manière avec les As, avec les Rois, avec la 9ème, la 15ème ou la 31ème main. Ces mains sont positives en termes de risque/récompense : vous poussez. De la 32ème à la 169ème main, vous passez : votre main a trop peu d'équité pour que votre mise à tapis soit rentable. Savoir quand vous devez pousser votre tapis et quand vous devez conserver vos jetons devient alors la décision la plus simple que vous ayez à prendre au poker. La suite dans un prochain article.

Savoir quand payer une mise adverse à tapis est, en revanche, l'une des décisions les plus difficiles que vous aurez à prendre. J'ai alors étudié ce que le tableau de rétroclassement nous permettait d'apprendre pour classer les mains en terme de call. J'ai choisi d'établir le critère de classification suivant : a) je choisis une équité arbitraire parmi les valeurs 0,52; 0,53; 0,54; 0,55; 0,56 et 0,57; qui détermine le plancher à partir duquel un bon joueur de poker se sent serein pour payer; b) je détermine pour chaque main du classement, le range minimum de l'adversaire pour atteindre ce plancher; c) je classe alors les mains par taille croissante du range adverse nécessaire au plancher d) je départage d'éventuels ex-aequo en comparant le range adverse nécessaire à l'obtention d'une équité de 0,40. J'obtiens alors un tableau qui ressemble à cela - la valeur plancher choisie vaut ici 0,52:

Comme c'est le tableau entier du rétroclassement, ordonné pour le call, c'est un grand tableau et il est illisible sur cette image. Je l'ai fait exprès, mais j'ai mis des couleurs pour illustrer ce qu'il y a à voir. Le tableau a été transposé pour des raisons de lisibilité : votre main est sur la première ligne du haut, et il faut lire colonne par colonne, ligne 1 vous jouez contre AA, ligne 2 contre {KK+}, ligne 3 vous jouez contre {KK+ AKs}, ligne 4 vous jouez contre {QQ+ AKs}, ligne 5 contre {QQ+ AKo}, ligne 169 contre any two. De haut en bas, on atteint d'abord une case verte, qui indique le classement de la main selon l'ordre de push. L'équité de votre main contre le range qui lui est supérieur (au sens du push) est aux environs de 0,35; c'est un peu plus (0,39) en milieu de tableau et un peu moins (0,33) pour les poubelles du bas de tableau. La case orange, en bas, indique que l'équité de la main atteint 0,52. Entre les deux, en jaune, l'équité de votre main se situe quelque part entre 0,40 et 0,52 - plus proche de 0,40 à proximité de la case verte, plus proche de 0,52 à proximité de la case orange.

Vous pouvez observer que seule la partie gauche du tableau, représentant une fraction des mains de départ, a une certaine valeur pour payer un tapis. La partie droite contient un paquet de poubelles, en zone jaune contre any two (je n'ai pas jauni cette partie du tableau sur le graphique), et une équité inférieure à 0,33 contre la moitié haute du tableau.

Tout l'art du call consiste à estimer le range de push adverse. Est-ce qu'il envoie avec top10, top20, top30, any two? Là est la question, et vous seul pouvez y répondre. Ou alors, vous pouvez regarder comment votre main se comporte dans le tableau. Je vais donner plusieurs exemples, en considérant que le tournoi est dans une phase shortstack : il n'y a pas de profondeur pour jouer en plusieurs mises, vous pouvez être shortstack vous-même ou payer un shortstack, et la cote du pot n'est pas évidente (si vous avez 300 jetons à rajouter pour 5000 au milieu contre un seul adversaire, vous payez évidemment avec any 2 en grosse blinde).

Vous avez 99. Son équité est de 0,33 contre {99+ AK AQs}, si votre adversaire est plus tight que ce range, vous devez envisager de passer. Son équité est de 0,52 contre {44+ ATs+ AJo+ KJs+}, si votre adversaire est plus loose que ce range, vous devez envisager de payer. Si le range supposé de votre adversaire est entre les deux, vous êtes dans la zone jaune, où votre jugement doit s'inspirer des facteurs annexes du coup : quelle cote du pot (quelque part entre 1,5:1 et 1:1), est-ce que vous payez son tapis (vous avez encore des jetons derrière) ou le vôtre (perte=bust), quelle position (êtes-vous le dernier à parler?).

Vous avez JTs. JTs a besoin d'un range adverse de 70% pour atteindre une équité de 0,52. Cela veut dire que votre adversaire envoie avec toutes les mains comme 96o, 84s, 53s, 94s, J3o, 74s, T2s, ou mieux. C'est large. Mais JTs est assez robuste en défense, puisqu'elle atteint l'équité de 0,40 dès que votre adversaire pousse avec {22+ A5s+ A9o+ KTs+ KQo QTs+ JTs} ou moins bien. Selon que votre adversaire pousse top20, top30, top40, et de la cote du pot, vous pourrez prendre votre décision en connaissance de cause.

Vous avez AKo. Call évident, me direz-vous? Je ne sais pas, à vous de voir. AKo a une équité de 0,52 contre {66+ ATs+ AJo+ KQs}. Et si votre adversaire pousse avec {TT+ AKs AKo}, votre équité est de 0,40. Entre les deux, c'est 0,43 contre {99+ AQs+}, mais dès que votre adversaire ajoute AQo à son range de push, votre équité passe à 0,487. Le problème de payer ou de ne pas payer reste entier, à vous de juger.

mardi 16 mars 2010

Tableaux pokeromathématiques

Je vais présenter dans ce post mes premiers calculs autour du jeu de poker. A l'époque, j'avais été intéressé par la lecture des tableaux de Sklansky-Chubukov. Le problème est le suivant : au poker texas hold'em no-limit, heads-up, deux joueurs s'affrontent. Le premier des deux a posté la petite blinde (1), et le second la grosse blinde (2). Le premier a le choix entre miser son tapis ou passer. S'il mise son tapis, il ouvre ses cartes, ce qui permet à son adversaire de faire un call parfait (si la force de sa main ou la cote du pot le permet) ou un fold parfait. Les nombres de Sklansky-Chubukov déterminent la taille maximale du tapis que vous pouvez miser en petite blinde, qui justifie le vol de la blinde adverse, tout en restant globalement EV+ si vous êtes payé. Vous pouvez trouver ce tableau ici. Sklansky a alors affirmé que, puisque les calculs montrent qu'il est avantageux de miser son tapis (jusqu'à une certaine taille) en ouvrant ses cartes, que ça l'est davantage de miser son tapis sans montrer ses cartes.

C'est alors que je suis tombé sur un autre tableau (le lien a disparu, il était également sur le site berkeley.edu/~chubukov cité plus haut), de 169 lignes par 169 colonnes, qui donnait les chances de gain d'une classe de main contre une autre, à tapis préflop. Voici un extrait de ce tableau : votre main est sur la colonne de gauche, la main de votre adversaire est sur la ligne en haut, à l'intersection des deux se trouve votre espérance (pour être plus exact : la somme de votre espérance de gain et de la moitié de votre espérance de partage du pot):Chaque élément de la grande diagonale vaut 0,5; et deux éléments symmétriques dans leur placement par rapport à la grande diagonale ont pour somme 1.
C'est alors que mes calculs ont commencé. J'ai réalisé un tableau des coefficients C(i,j), qui décrit le nombre d'occurrence d'une main adverse lorsque vous connaissez vos deux cartes. Par exemple, si vous avez deux Dames en main (la Dame de Trèfle et la Dame de Carreau), votre adversaire a 1225 autres mains possibles, parmi lesquelles 6 paires d'As, 6 paires de Rois, 1 paire de Dames (Dame de Pique et Dame de Coeur), 4 As-Roi colorés, 12 As-Roi dépareillés, 2 As-Dame de la même couleur, 6 As-Dame dépareillés, et ainsi de suite.J'ai mal choisi mon exemple, alors je reprends : le nombre (3) dans la case à l'intersection de AKs (à gauche) et de AA (en haut) signifie : nombre de fois (sur 1225) où votre adversaire aura deux As, sachant que vous avez As-Roi coloré en main. Le tableau C a la propriété suivante : la somme sur chaque ligne du tableau C vaut 1225.Les sommes de chaque colonne du tableau C n'ont pas de propriété particulière.

Etape suivante : faire le produit case à case des deux tableaux obtenus. Ce n'est pas un produit matriciel, c'est juste une somme pondérée, comme les barycentres en quatrième, comme les combinaisons linéaires au lycée. Je vais réaliser des combinaisons linéaires sur deux tableaux, l'un est le tableau C où chaque élément vaut C(i,j), et l'autre est un tableau CP où chaque élément vaut CP(i,j)=C(i,j)*P(i,j). Les combinaisons linéaires sont des sommes partielles, où les termes généraux sont SCP(i,j) et SC(i,j) définis par : et Je prie le lecteur habitué aux notations mathématiques d'excuser cette notation lourde, P, C, CP, SCP et SC ne sont pas des notations traditionnelles, mais mon éditeur de blog ne comprend rien aux lettres grecques, et je ne voulais pas donner un nom à tous mes tableaux, puisque comme vous allez le voir, la plupart d'entre eux ne sont que des intermédiaires de calcul. Le tableau final qui nous intéresse est R, dont le terme général est

R(i,j) est l'espérance de la main i (colonne de gauche) confrontée au range adverse composé des mains numérotée de 1 à j (ligne en haut). Notre tableau final est homogène, ses valeurs sont comprises entre 0 et 1. J'ajoute immédiatement une remarque : si vous permutez deux lignes (et les deux colonnes associées) dans le tableau P et dans le tableau C, votre tableau R prendra de nouvelles valeurs, puisque son mode de construction dépend de j. Bon, parler d'ordonner les variables de départ, c'est plus de l'algorithmique que des mathématiques, car un mathématicien se serait contenté de prendre des combinaisons linéaires différentes pour réaliser le bon ordonnancement. Mais ça, je ne pouvais pas le programmer dans mon tableur, alors qu'une macro pour permuter lignes et colonnes, si.

C'est ainsi que j'ai construit le tableau R appelé rétroclassement, pour lequel l'ordre des mains, numérotées de 1 à 169, commence par 1=AA 2=KK 3=AKs 4=QQ 5=AKo 6=JJ 7=TT 8=AQs 9=99 10=AQo et se termine par 165=72o 166=52o 167=62o 168=42o 169=32o (ce n'est pas une erreur de frappe). Vous lirez ici une ébauche d'article à son sujet. Et vous savez désormais comment ce tableau a été construit. Mon prochain article donnera des pistes d'interprétation, pour le poker, des données qu'il contient.