Il existe un nouveau bot de poker Open Source appelé PokerPirate . Je suis intéressé par toutes les manières créatives dont une application Web pourrait détecter / contrecarrer / vaincre un robot de poker. (Il s'agit d'une discussion purement académique, dans le même esprit que PokerPirate a été écrit.)
107
Réponses:
Vaincre un bot du point de vue du serveur
De nombreux sites de poker en ligne utilisent des entrées Captcha contextuelles qui sont déclenchées par une activité suspecte.
Certains sites de poker surveillent les temps de jeu et les schémas (c'est-à-dire que le pire des cas est un joueur qui joue 24x7 et 16 tables en continu, il y a une infime chance que ce soit un vrai humain. (Cependant, certains joueurs ont la capacité de jouer de très grosses mains). volumes qui à l'œil inexpérimenté sembleraient être un bot)
Jetez-le des pépins. Si vous pensez qu'un joueur est un robot, changez toutes les positions de ses cartes à jouer de quelques pixels à l'écran, faites-leur des couleurs / dessins / motifs différents pour 1/100 mains et voyez si cela les lance. S'il ne peut pas faire de capture d'écran, toutes ses décisions expireront et c'est une preuve de bot assez concluante.
Le timing indique que si un joueur d'ordinateur répond aux options en millisecondes à la fois sans réfléchir à des décisions importantes, cela pourrait être suspect
Auto-surveillance. Les données du site de poker pokertableratings.com exploitent un grand nombre de grands sites. Il a rencontré un accueil mitigé, certains aiment la transparence, d' autres la détestent . L'avantage est, cependant, qu'il y a eu des cas où des statistiques de joueurs suspects (pourcentages VPIP, pourcentages PFR sont quelques-unes des nombreuses statistiques quantifiables pouvant être enregistrées) ont conduit à des conclusions de triche.
Des réseaux de classification artificiellement intelligents pourraient surveiller des statistiques quantifiables pour classer les joueurs malhonnêtes ou robotiques.
À l'époque où le poker en ligne était une entité relativement nouvelle, il y avait des rumeurs et des discussions avec des preuves limitées selon lesquelles certains logiciels clients de poker faisaient des captures d'écran des bureaux de joueurs suspects pour voir s'ils exécutaient des programmes qui les aidaient. Cependant (même si cela était vrai) exécuter deux ordinateurs pour effectuer les deux tâches indépendamment permettrait de contourner ce problème.
Le partage d'informations entre récidivistes entre plusieurs sites serait bénéfique pour l'industrie, si seulement ils étaient honorables et dirigés par des personnes compétentes et responsables
Certains robots seraient probablement assez simples de par leur conception, si vous pouviez découvrir leur style de jeu et voir comment ils agissent dans des situations identiques (notez que cela n'est possible qu'avec des robots peu sophistiqués jouant une stratégie très basique), vous pourriez les découvrir assez rapidement.
Une utilisation incohérente des fonctionnalités du programme tendrait vers l'authenticité d'un joueur. Prenons par exemple de nombreux sites de poker dans le jeu qui ont un bouton «Pliez quand c'est mon tour». Si vous recevez une mauvaise main et attendez qu'un autre joueur décide quoi faire, beaucoup de joueurs cocheront ce bouton. Un bot peut utiliser ces boutons. La différence est qu'un robot serait aux extrémités de la fréquence d'utilisation, il les utiliserait probablement tout le temps ou pas du tout. Un joueur peut généralement appuyer sur «repli automatique», mais parfois il cliquera quand même pour se replier, même dans les conditions les plus favorables. Par exemple, un joueur authentique appuie généralement sur le repli automatique, mais cette fois, ce n'est pas le cas. Il leur est plié sans qu'aucun autre joueur n'agisse, maintenant ils ont été présentés dans la condition la plus favorable possible. Maintenant, s'ils appuyaient sur le pli, ils auraient été fortement enclins à appuyer sur le pliage automatique dès le début. C'est un comportement inconsistant / non optimisé / aléatoire, conforme au fait d'être un humain. Le timing indique le moment où ces fonctionnalités sont cliquées sont d'autres indicateurs. Il est important de reconnaître que ce sont tous des indicateurs et non des preuves concluantes. Tous ces indicateurs comportementaux peuvent être simulés facilement.
Vaincre un bot du point de vue des joueurs
Essayez de vous connecter et de collecter autant de données que possible en utilisant un logiciel comme PokerTracker
Tentative d'identifier des modèles dans son style de jeu
Tentative de recherche de relations entre la taille de la mise en proportion du pot / du nombre de joueurs et de la force de la main
Essayez de calculer ses gammes de mains . Un bot à faibles enjeux ne bluffera probablement pas assez fréquemment pour être un problème stratégique important, donc construire des gammes de mains très précises ne devrait pas être trop difficile.
Tenter de trouver des fuites dans son jeu via l'analyse des données et les essais et erreurs Une fois que les fuites / modèles ont été trouvés, essayez de les exploiter de manière répétitive et d'éviter toute autre situation.
Là où un humain est capable de s'adapter , les robots le sont probablement moins, et où les humains sont pondérés par les chaînes d' inclinaison , la pensée orientée vers les résultats et les frustrations , les robots ne le sont pas. Vous pouvez utiliser ça à votre avantage.
Donc, en substance, vous ne pouvez rien faire pour l'arrêter si le robot est assez intelligent pour simuler des retards de synchronisation réels pendant les décisions, ainsi que pour créer des modèles de jeu raisonnables et réalistes. Ajoutez quelques conditions aléatoires et un simple back-chat (le lexique des joueurs de poker est généralement assez limité ) et vous avez un joueur IA qui sera assez difficile à détecter.
Ce que les robots peuvent faire pour éviter la détection
La clé pour éviter la détection serait de penser au problème sous autant d'angles que possible. Vous essayez de simuler un comportement humain intelligent dans un monde très petit et restrictif. La plupart des simulations comportementales que vous pouvez exécuter sont assez évidentes, mais plus votre bot est incohérent et imprévisible, moins il est susceptible d'être découvert.
Créez des horaires de jeu réalistes (c.-à-d. 3 à 5 fois par semaine, 4 heures par session avec la semaine impaire ici et là pendant l'année).
Exécutez des programmes pour prendre des décisions sur un ordinateur séparé, en contrôlant un ordinateur zombie au cas où des sites de capture d'écran.
Temps d'action aléatoire (n'agissez pas immédiatement, attendez 0,5 à 2 secondes par action)
Temps écoulé sur les grandes décisions. Si une décision est limite, calculez la décision puis attendez un moment pour simuler la pensée.
Utilisation aléatoire des fonctionnalités du logiciel client. Simulez des pauses toilettes en cliquant sur le bouton «distribuez-moi» sur toutes les tables et faites une pause de 5 minutes de temps en temps.
Le chat simulé, le chat de poker est souvent très simple, une discussion ou un débat. Dites des choses comme «malchanceux» ou «stfu» aux moments détectables appropriés. Ou même demander au codeur de surveiller son bot et de discuter pendant l'exécution.
Assurez-vous que les mouvements de la souris sont réalistes. Si les tableaux sont en mosaïque , ne prenez pas de décision sur le tableau en haut à gauche, puis faites instantanément sur le tableau en bas à droite. La plupart des logiciels de sites proposent désormais des raccourcis clavier, ceux-ci peuvent être préférables à utiliser comme supposé pour le déplacement de la souris.
Faites des choses auxquelles les classificateurs IA ne s'attendent tout simplement pas. Par exemple, téléphonez-leur une fois par an avec une simple requête non complexe ("Aidez-moi, je ne peux pas me connecter aujourd'hui!" Ou "Internet est en panne!") Peu de chances de faire une grande différence, mais si la personne travaillant pour le La société de poker est suffisamment intelligente pour qu'elle l'ait reconnu comme un indicateur fiable.
Séances perdantes sporadiques. L'inclinaison peut être simulée et le bot peut mal jouer et perdre de l'argent de temps en temps. Tout le monde s'incline à un moment donné.
Le problème est également que les sites Web de poker ne se soucient pas particulièrement de savoir si des bots fonctionnent sur leurs réseaux, chaque joueur vaut une grosse somme en rake et théoriquement d'un point de vue purement cynique, le seul inconvénient serait une mauvaise presse s'il était découvert. .
Même lorsque des exploits flagrants ont été découverts, (recherchez sur Google les scandales du réseau Cereus ou Absolute Poker Scandal , c'est assez choquant), l'entreprise semble survivre et rester en bonne santé, ne perdant que des joueurs bien éduqués et gagnants (dont il n'y en a pas beaucoup). Cela augmente la proportion de joueurs moins qualifiés dans le réseau, ce qui à son tour attire les bons joueurs. C'est une bonne vieille prise 22. Un excellent argument pour une bonne régulation du marché.
Il est important de noter que pour chaque jeu, un équilibre nash existe . Le poker en ligne a une chronologie de la façon dont il fonctionne maintenant, il va devoir passer à quelque chose de plus social (webcam / voip) pour que quiconque lui fasse confiance à l'avenir (si les gens lui font confiance) car les bots finiront par prendre le dessus mathématiquement. supérieur et psychologiquement immunisé. La communauté de poker AI est très active , alimentée par le monde universitaire et / ou par des bénéfices en capital.
Des versions plus simples du poker telles que le poker limit ont été presque résolues dans de petits espaces de recherche. Ce n'est qu'une question de temps avant que des versions plus complexes du jeu (variations No Limit / Pot Limit Omaha, etc.) ne deviennent battables pour les joueurs artificiels.
Conclusion
Les robots sophistiqués ne peuvent tout simplement pas être détectés jusqu'à ce que l'industrie passe à un environnement de jeu en ligne plus social. Cela ne résoudra pas le problème, mais rendra certainement plus difficile la victoire des bots aux niveaux inférieurs. Nous avons déjà vu un léger changement avec la sortie de PKR , 3D et un plus interactif , moins de mains par heure des autres sites où le multitabling est assez délicat à réaliser pour un joueur.
Le problème souffre également de la nature de l'industrie, une raison de plus de s'en tenir aux sites Web plus grands et plus réputés où la réputation est de plus en plus intégrée dans leur modèle commercial. Le manque de transparence et la feinte transarancy n'aident pas la cause.
Le vrai défi actuellement pour les développeurs de bots est d'écrire un algorithme gagnant, ce n'est pas aussi trivial qu'il n'y paraît. Tout le monde qui joue au poker se considère bon, gagnant ou un joueur au seuil de rentabilité, ce qui n'est tout simplement pas vrai. C'est pourquoi les gens continuent à jouer, même lorsqu'ils perdent de l'argent car ils sont sous l'illusion qu'ils sont tout simplement malchanceux ou que leur style de jeu est mal compris. Cette arrogance et cette faiblesse de la psychologie humaine ont coûté beaucoup d'argent aux joueurs perdants et sont la raison fondamentale pour laquelle le poker peut encore être rentable.
Le poker est un jeu extrêmement compliqué qui prend des années pour devenir bon (le vieil adage reste vrai, "Dix minutes pour apprendre, une vie à maîtriser"). L'élément chance est extrêmement limité sur le long terme.
Comme toute autre profession, pour devenir bon, vous devez étudier pendant des centaines et des centaines d'heures et jouer pendant plusieurs milliers. Vous comprendrez des choses que les joueurs moins expérimentés ne comprendront pas, repérez les choses que les moins expérimentés ne repéreront pas. L'apprentissage dure très très longtemps, peut-être plus longtemps que nous ne pourrons jamais vivre. C'est un jeu compliqué.
Combien de fois avez-vous vu un cash game à enjeux élevés à la télévision et entendu quelqu'un lui crier "C'est un appel facile!" ainsi prouver que les amateurs ne comprennent ou ne reconnaissent vraiment pas la sophistication dans le jeu, et croient vraiment que le jeu à ce niveau est encore finalement simple. Ça ne l'est pas. Ces joueurs à enjeux élevés (la plupart du temps) sont là à la télévision parce qu'ils sont vraiment vraimentbien. Il y a aussi probablement un méta-jeu compliqué en cours de lecture, dont notre Amauer ne peut pas reconnaître l'existence. L'amateur ne voulait pas se tenir devant un maître d'échecs et lui crier de bouger son chevalier, mais à cause de la dynamique du poker étant une information imparfaite, leur psychologie les fait vraiment croire ce qu'ils disent. Comme aux échecs, les décisions peuvent être complexes, sensibles et extrêmement importantes pour l'ensemble du jeu. Au fur et à mesure que le jeu devient de plus en plus complexe, les décisions triviales ne sont plus si triviales, car votre adversaire les attend.
Une fois que vous avez fait monter votre bot ou votre jeu dans les niveaux, vous rencontrerez inévitablement un plus grand nombre de joueurs plus qualifiés. Ensuite, la complexité de votre stratégie va devoir passer au niveau supérieur, en tenant compte des images de table , de l'équilibrage des plages , le bluff sophistiqué et intelligent (c'est-à-dire pas seulement bluffer à la faiblesse, bluffer à distance et bluffer sur l'image, etc.), avec une analyse plus détaillée de la portée des mains. C'est vraiment un jeu différent à mesure que vous progressez.
Une fois qu'un bot gagnant a été écrit, le codeur aura sans aucun doute suffisamment de compétences, de connaissances et de bon sens pour appliquer le bot de manière indétectable. C'est trivial pour eux.
Vous ne pouvez donc vraiment rien faire. Si vous souhaitez jouer en ligne, comprenez les risques. Ne risquez jamais plus d'argent que vous ne pouvez vous le permettre et essayez de tenir des registres précis des dépenses afin de ne pas avoir une surestimation erronée, irréaliste et finalement dommageable de votre propre capacité. Ayez des stop loss et quittez la table si vous n'avez pas d'avantage, ou si vous n'êtes pas sûr d'avoir un avantage! Bien sûr, si tout le monde faisait cela, personne ne gagnerait, c'est la nature prédatrice et exploitante du jeu, c'est de là que vient la concurrence et c'est ce qui le rend amusant.
la source
Il y a trois domaines distincts à considérer. Le bot doit déterminer l'état de la table, prendre une décision et renvoyer la décision à l'hôte.
Il est beaucoup plus facile de déterminer l'état du tableau s'il est envoyé à travers le fil sous une forme reconnaissable ou affiché à l'utilisateur sous forme de texte standard. Tout d'abord, faites de la reconnaissance d'image la seule option, puis rendez-la aussi difficile que possible. Affichez les cartes en 3D et modifiez lentement l'orientation et la position des cartes. Animez de petits scintillements ou des feux d'artifice devant les cartes afin que toute capture d'écran donnée puisse être illisible, mais cela prend même un certain temps pour le déterminer.
Il n'y a rien à faire pour prendre la décision. Essayer de décider si une décision a été prise par un humain ou non est comme un test de turing avec presque aucune information.
Le renvoi de la décision peut être rendu difficile en utilisant à nouveau la 3D. Rendre difficile l'envoi de paquets directement ou soumettre une décision par tout autre moyen que de cliquer sur un bouton avec la souris. Déplacez légèrement les boutons à chaque action ou faites-les flotter lentement autour de l'aire de jeu en attendant une décision. Désactivez toutes les fonctionnalités de type d'accessibilité qui permettent de trouver ou de manipuler des boutons.
la source
PokerPirate, comme presque tous les robots de poker jamais écrits, fonctionne en grattant l'écran et en simulant des clics de souris dans une application de poker Windows. Par conséquent, la cheville ouvrière du système est sa capacité à reconnaître les objets dans le jeu et à effectuer des actions dans la fenêtre. Aussi intelligent que cela puisse être au poker, il a probablement encore des problèmes avec ces opérations de base.
Par conséquent, les moyens évidents de contrecarrer ce bot incluent:
la source
Idéalement, la seule solution valable est de créer une logique de pot de miel qui attire un bot engagé en offrant la tentation d'une condition logique plus favorable qui favorise les réponses comportementales les plus idéales du bot. Une fois que le bot est engagé dans le pot de miel, vous devez continuellement alimenter les conditions du bot qu'il préfère en supposant que le bot n'a pas de délai d'expiration défini. Ensuite, le bot peut être mesuré, enregistré et étudié. En plus du bot, vous auriez également le réseau et les données de session isolés pour étude à condition que le bot ne se connecte pas via TOR.
Dans cette situation, les considérations déterministes appropriées pour différencier un bot d'un humain sont moins sévères, cependant, la considération déterministe lors de l'identification du comportement du bot devient plus sévère. Malheureusement, le propriétaire du bot peut apporter des modifications au bot pour empêcher une telle identification si ce propriétaire est conscient de l'état du pot de miel ou de sa considération logique.
la source
Vaincre les robots de poker peut prendre deux formes: vous pouvez essayer de les identifier et les bannir du système, ou vous pouvez simplement les battre au poker. Les battre au poker est la question académique la plus intéressante. :-)
Voir ici quelques articles sur la lutte contre les bots de poker: http://www.cs.cmu.edu/~sganzfri/
la source
Regardez ce post
Cet article contient également de bons conseils pour les contrecarrer.
la source
Une autre pensée sur le fait de jouer avec l'écran pour le rendre difficile à numériser:
Faites la carte de toute une série de couleurs différentes - proches en termes d'oeil humain mais pas les mêmes. Cela rendrait plus difficile la sélection des éléments à lire. D'un autre côté, mettez une fausse écriture sur la carte dans des couleurs que l'œil humain ne séparera pas de l'arrière-plan.
la source
Le problème avec les bots est-il le fait qu'ils jouent mieux que des joueurs humains décents, ou qu'ils peuvent attendre 24 heures sur 24, 7 jours sur 7, que de mauvais joueurs apparaissent et ensuite essayer de les traire?
De plus, serait-il «légitime» ou «tricheur» pour quelqu'un d'avoir un ordinateur assis à côté de lui pendant qu'il jouait au poker, consultant cet autre ordinateur pour obtenir des conseils?
Je ne sais pas comment on peut prétendre que l'espace de solution pour le poker limité est "résolu" lorsque la stratégie optimale pour un joueur sera influencée par ce que l'on sait des adversaires. Comment une tentative d'analyse des joueurs peut-elle prétendre être si parfaite qu'elle ne pourrait pas être améliorée?
la source
Si vous avez accès à de nombreuses correspondances, vous pouvez adopter une approche d'exploration de données. La force de jeu d'une IA devrait être assez cohérente, alors qu'il existe probablement des modèles simples pour les humains - plus faibles lors des premiers tours d'échauffement, et la force se détériore après avoir joué pendant longtemps. De plus, les temps de décision humains augmentent probablement lorsqu'il y a plus d'argent en jeu.
Si vous avez accès aux mouvements de la souris (ou au moins aux emplacements des clics, ce qui est vrai même pour les applications Web), il devrait être assez simple de reconnaître les bots, à l'exception des plus sophistiqués. Les humains ne déplacent pas la souris en ligne droite exacte, ils ont des périodes d'accélération et de ralentissement, des distributions d'emplacement de clic statistiquement descriptibles, etc.
la source
Jetez un œil à Ajax Control Toolkit NoBot :
la source
Une solution à 100% est impossible, ce que je propose est une solution qui permettra d'économiser de l'argent en utilisant l'IA contre elle-même. Faites tourner une instance de l'IA de PokerPirate côté serveur et jouez en tant que joueur invisible dans chaque partie. Si un joueur effectue trop d'actions identiques, il exécute probablement une instance de PokerPirate. C'est une sorte de pot de miel ou de piège dans lequel l'attaquant peut tomber. L'attaquant peut se défendre contre ce pot de miel en rendant son bot moins performant. Ainsi , cela crée un est venu de « Chat et souris » dans lequel l'attaquant peut toujours voler un peu d' argent et le défenseur peut toujours sauver un peu d' argent.
la source
"We've been working on categorizing and understanding styles of play, [...] it gets more difficult in games against top players because they mix up their play deliberately to confuse you." Being unpredictable is a good strategy, he adds. "If our computer is going to beat the world champion, it's got to do something similar."
Il existe des moyens beaucoup plus simples. Oui. beaucoup de suggestions sont justes et nécessaires. mais environ 90% des fraudes sont détectées de manière trop simple.
si quelqu'un laisse un robot travailler pour lui, il voudra, après un certain temps, qu'un deuxième robot travaille pour lui. (une autre machine ou quoi que ce soit) mais: il utilisera le même mot de passe, car il est difficile de s'en souvenir 2 (<--- sarcastique)
ce qui reste: vérifiez les comptes avec le même comportement de jeu et le même hachage de mot de passe.
la source