Comment détermineriez-vous que le joueur triche aux échecs en ligne?

40

Il existe de nombreux sites Web en ligne, où les joueurs peuvent jouer aux échecs en temps réel les uns avec les autres. La plupart des jeux durent entre 5 et 10 minutes. Avec la disponibilité du logiciel d’échecs, on peut prendre avantage en utilisant Fritz ou Rybka pour lui suggérer un déménagement.

Par exemple, je peux simplement entrer chaque mouvement de mon adversaire et voir ce que le logiciel me proposera.

Je pensais à quelques fonctionnalités qui peuvent suggérer que le joueur triche:

  • nombre de fois qu'il change d'écran
  • vitesse de jeu (dans des positions faciles et très difficiles)
  • précision du jeu

Quelqu'un a-t-il d'autres idées?

PS: Peu importe pour moi, quelle perspective vous envisagez (côté serveur ou côté client).

Salvador Dali
la source
Excellente question et problème pertinent aujourd'hui! Mais voulez-vous dire détecter la triche en ligne en utilisant un algorithme ou détecter simplement en tant que joueur humain tout en jouant un adversaire?
Rauan Sagit
Les stratégies de détection de triche ne fonctionnent que lorsque le tricheur est "stupide". Adopter des stratégies de triche plus intelligentes (voir mon commentaire à la réponse de NoviceProgrammer) rendrait la triche presque impossible à deviner.
Andrea Mori
Je pense que c'est à peu près pas un problème. Je joue sur chess.com. Je suppose que peut-être une personne sur dix triche réellement. Et si je soupçonne que mon adversaire a reçu de l'aide, je le bloque tout simplement.
Randy Minder

Réponses:

33

A ma connaissance, cette question est en réalité très complexe et n’a pas été résolue de manière satisfaisante. Nous demandons essentiellement un algorithme pour effectuer une sorte de test de Turing inverse, afin de différencier les joueurs humains des ordinateurs.

Premièrement, les contrôles côté client auront toujours des faiblesses, à moins que vous ne maîtrisiez totalement l'environnement du client. Prenons la première idée - vérifier que vous passez d’une fenêtre à l’autre, cela sonne bien. Malheureusement, cela fonctionne trivialement en exécutant un moteur d’échecs sur un ordinateur séparé, ou en intégrant mon moteur au client afin qu’aucun "changement de fenêtre" ne se produise, ou en modifiant le client pour signaler 0 changement de fenêtre, ou ... Il n’existe aucun moyen réel de s’assurer que c’est bien votre code qui tourne sur le client.

Ce qui nous reste est un environnement client strictement contrôlé (ce qui ne se produira pas pour les jeux en ligne), ou une vérification côté serveur, c’est-à-dire en regardant les coups réellement joués (et peut-être le temps entre les coups, comme vous le dites), et en essayant de déduire l’aspect informatique ou humain.

La vérification côté serveur peut également être divisée de plusieurs manières. Vous pourriez probablement essayer une approche "du haut vers le bas", qui ressemblerait à "des jeux passés de l'histoire, seulement 2% des humains ont fait ce mouvement, alors que 50% des ordinateurs l'ont fait". Ce serait en fait un très bon moyen de le faire si nous avions assez de données pour "n'importe quel poste". L'espace de recherche des échecs est si vaste que même les très grands ensembles de données n'auront pas un nombre important de jeux correspondant à votre position, une fois que vous aurez dépassé le début de la mi-partie.

En supposant que nous ne disposions pas de statistiques fiables sur le côté humain de l'équation, vous pouvez toujours présenter la position à un certain nombre de moteurs d'échecs (avec un certain nombre de réglages de temps différents) et voir à quel point les mouvements des joueurs correspondent. celui d'un ordinateur. En soi, cela conduirait également à de nombreux faux positifs, cependant, des positifs répétés pour le même moteur d'échecs et les mêmes réglages de l'heure rendraient de plus en plus probable que le joueur trichait. Pour améliorer encore cela, je rechercherais probablement une approche «ascendante» d’analyse des positions d’échecs; en bref, essayer de comprendre pourquoi les humains et les ordinateurs jouent différemment. Par exemple, les humains ont tendance à reconnaître des modèles communs. Dans un jeu avec des schémas "étranges" ou des situations improbables, un humain aurait moins de chances de pouvoir jouer avec une grande précision. Aucun d'eux,

Pour ajouter quelques détails à votre liste, j'irais dans le sens de la façon dont les professeurs détectent le plagarisme dans les journaux - en détectant un changement soudain. Aux échecs, cela est extrêmement difficile à définir, mais un changement soudain de style de jeu ou de force de jeu peut indiquer une triche. Plus précisément, je rechercherais des mouvements inhabituellement agressifs qui ont tendance à "fonctionner" et ne présentent aucun inconvénient pour le joueur (trop précis). Les compagnons forcés dans 4+ mouvements d'un joueur qui met normalement des chevaliers sur le bord du tableau, etc. (c'est possible ... mais c'est peu probable). Cependant, comment cela fonctionnerait-il? Cela pourrait prendre un livre entier (ou plus).

EDIT: Il y a eu récemment un article sur la triche et la détection dans les échecs de haut niveau .

Daniel B
la source
3
les humains contre les ordinateurs peuvent donner de faux positifs dans l' ouverture du jeu, il est très facile de mémoriser les meilleurs jeux
ajax333221
@ ajax333221 Je suis tout à fait d'accord. Dans une certaine mesure, quelque chose de similaire peut s’appliquer à la phase finale, où un humain pourrait la jouer presque parfaitement, sur la base de connaissances préalables. Cela dit, si je peux détecter une éventuelle tricherie dans un jeu, avec des informations supplémentaires et une analyse sophistiquée, un ordinateur pourrait faire de même. Le coéquipier forcé dans 4+ mouvements était un exemple réel d'un jeu en ligne récent contre un joueur noté 1050 - très suggestif, c'est le moins qu'on puisse dire ...
Daniel B
20

En blitz, vous pouvez dire par combien de temps ils utilisent. Les personnes utilisant des moteurs utilisent une quantité de temps constante pour chaque coup, au lieu de passer en blitz à travers l'ouverture et de ralentir au ralenti, comme la plupart des joueurs normaux. En particulier, ils ne peuvent pas jouer rapidement parce qu’ils doivent mettre à jour leur ordinateur après chaque coup d’ouverture. S'ils mettent cinq secondes pour bouger, deux à cinq secondes pour vingt, ils utilisent probablement un moteur.

Andrew Latham
la source
Je ne suis pas sûr que cela soit vrai au moment de l'envoi du message, mais stockfish peut accepter le temps qu'il lui reste pour
définir les
15

Le nombre de commutateurs d'écran et la vitesse de jeu n'ont pas de sens. Si vous les utilisez pour vous plaindre auprès des organisateurs d'un site Web de jeu d'échecs en ligne, ils se moqueront de vous.

Il y a deux façons de savoir si quelqu'un triche. Le premier est le "pistolet fumant". Considérez cette section de jeu -

Allwermann, Clemens (1900) - Kalinitschev, Sergey (2505) Boeblingen (9), 30.12.1999
1. Qa7 Rg8 2. Qxb7 Be4 3. Nf4 Qf5 4. Qd7 Qe5 5. Kh1 g5 6. Nh3 g4 7. Nf2 Bf5 8. Nxg4 Be4 9. R7xf6 Bxg2 + 10. Kxg2 Qe4 + 11. Kh3

La question est de savoir quel rôle joueriez-vous dans cette position? La situation est qu’une victoire dans cette dernière manche de la compétition vous permettra de gagner le tournoi devant une série de grands maîtres. Pas mal pour un simple 1900. Je suppose que la plupart d’entre nous jouerions quelque chose de raisonnablement solide qui maintiendrait la victoire. Se déplace comme Rxb7 ou Rd7 ou (pour les lâches comme moi ;-) Rxf6. Qa7 est un coup de cœur pour un déménagement, une arme à feu. Fritz estime que le meilleur mouvement de la position, avec une avance colossale de 0,1% sur le prochain meilleur mouvement, Rd7.

Jeu de pistolet à fumer n ° 2 à la fin du jeu lorsque Black a démissionné, laissant le joueur classé au classement 1900 comme vainqueur du tournoi. Que diriez-vous à Kalinitschev dans cette position?

Voici comment s'est déroulée la conversation:

Allwermann: "C'est un pote dans 8"

Kalinitschev: "Je ne pense pas"

Allwermann: "" Regarde, tu verras que j'ai raison "

Allwermann avait raison, bien sûr. Pouvez-vous trouver le second dans la position 8? Sans assistance en silicium?

Donc, vous avez votre arme à feu et vous le remettez aux organisateurs. Qu'est-ce qu'ils vont faire?

Vient ensuite la deuxième façon de détecter et de prouver au-delà de tout doute raisonnable que la tricherie est en cours.

Ils devront collecter au moins 20 jeux comportant chacun au moins 20 mouvements non liés à une base de données et les alimenter dans un moteur de contrôle. Ce qu’ils recherchent, c’est essentiellement le pourcentage de fois où le suspect choisit un déplacement ne faisant pas partie de la base de données, qui correspond au premier choix du moteur, l’un des 2 premiers choix et l’un des 3 premiers choix. Les seuils de "preuve" sont -

Top 1 65%

Top 2 80%

Top 3 90%

Un exemple récent est le tollé suscité par la performance de Borislav Ivanov .

Voici ses statistiques -

Zadar 19ème: Houdini 1.5a x64 Hash: 256 Temps: 30s Profondeur Max: 20ply {Borislav Ivanov (Jeux: 9)}

{Top 1 Match: 210/314 (66,9%) Adversaires: 150/313 (47,9%)

{Top 2 Match: 270/314 (86.0%) Adversaires: 207/313 (66.1%)

{Top 3 Match: 285/314 (90,8%) Adversaires: 238/313 (76,0%)

{Top 4 Match: 293/314 (93.3%) Adversaires: 267/313 (85.3%)

Au 8e tour, la transmission en direct s’est arrêtée (il est soupçonné que cela a permis à son aide extérieure de prendre les choses de main) et il a perdu face à GM Predojevic. Si ce résultat est supprimé, les nouvelles statistiques sont les suivantes:

Zadar 19ème: Houdini 1.5a x64 Hash: 256 Temps: 30s Profondeur Max: 20ply {Borislav Ivanov (Jeux:)}

{Top 1 Match: 197/287 (68,6%) Adversaires: 135/286 (47,2%)

{Top 2 Match: 252/287 (87,8%) Adversaires: 188/286 (65,7%)

{Top 3 Match: 265/287 (92.3%) Adversaires: 218/286 (76.2%)

{Top 4 Match: 272/287 (94,8%) Adversaires: 242/286 (84,6%)

Comme vous le voyez, les deux ensembles de statistiques le feraient lancer un serveur d’échecs. À titre de comparaison, voici l’analyse du jeu 8 lorsque le flux était en panne:

{Blanc: Borislav Ivanov}

{Top 1 Match: 13/27 (48,1%)

{Top 2 Match: 18/27 (66,7%)

{Top 3 Match: 20/27 (74,1%)

{Top 4 Match: 22/27 (81,5%)

{Noir: Borki Predojevic}

{Top 1 Match: 15/27 (55,6%)

{Top 2 Match: 19/27 (70,4%)

{Top 3 Match: 20/27 (74,1%)

{Top 4 Match: 25/27 (92,6%)

Notez que la FIDE a mis en place une commission chargée d’examiner les moyens de détecter et de combattre la triche informatique. Leurs lignes directrices sont ici . Notez cette section:

E. L’outil de sélection de jeux Internet FIDE

La FIDE fournira un outil de sélection de jeux sur Internet, qui sera accessible à tous les responsables autorisés de la FIDE (membres IO, IA, ACC) et aux fédérations nationales. Il sera hébergé sur une page Web dédiée à la FIDE et permettra aux parties autorisées de télécharger des jeux au format PGN pour un «test rapide» qui identifiera les valeurs aberrantes potentielles dans un tournoi. Par «filtrage», il est entendu qu'il ne s'agit que d'un test préliminaire sans valeur d'appréciation, sauf qu'il peut être cité tout en rejetant les allégations et en refusant de passer à un test complet manuel.

Brian Towers
la source
1
Excellente analyse! Les résultats T3 / T4 sont convaincants, en particulier lorsque la probabilité de ses résultats est rapportée. BTW: Je me rends compte que votre message a été publié il y a un moment, mais avez-vous toujours la citation pour la conversation entre Kalinitschev et Allwermann? Clairement, aucun 1900 ne trouvera un partenaire sur 8 de manière fiable, surtout quand un 2500 ne le verra pas. Cela ne semble pas particulièrement intelligent pour lui d’avoir soulevé ce point alors que cela pourrait à lui seul faire croire à une tromperie.
Jaxter
1
BTW: Je ne suis pas d'accord que Qa7! est un coup de cœur. Il exploite simplement les deux faits suivants: 1) le rang dans l’arrière de Black est faible et 2) il est vulnérable à un compagnon. Ainsi, tout détournement de la tour au dernier rang permettra des tactiques potentiellement gagnantes. Dans ce cas, Blanc utilise ce mouvement pour attaquer le pion B et coordonner sa reine et sa tour le septième afin que la tour soit défendue. Les Blancs gagnent au moins un pion après 1 ... Qxf7 2.Qxa8 + Qg8 3.Qxb7. Je pense que n'importe quel directeur général aurait dû voir le mouvement Qa7, et je suis très surpris que Kalinitschev l'ait manqué. C'est le mouvement le plus contraignant sur le tableau, après Rxf6?!
Jaxter
1
@jaxter Les informations proviennent de en.chessbase.com/post/a-history-of-cheating-in-che-3- . Remarque "Je ne suis pas d'accord sur le fait que Qa7! Est un coup de cœur" - si vous lisez l'article, vous verrez que Vishy Anand est en désaccord avec vous :-). De l'article: «Alors, que joue notre héros? 31.Qa7? !! «Fritzy!» Cria Anand et s'énerva de rire quand il vit cela et les mouvements suivants (je filmai sa joie et l'inclu dans mon reportage multimédia dans ChessBase Magazine 69). »
Brian Towers
Merci pour la référence. Je comprends ton raisonnement. J'aurais certainement voulu tenter le coup, mais c'est en partie parce que j'aurais jugé que les Blancs pourraient survivre à la contre-attaque de Black sans calculer toutes les lignes . Si j'essayais de le faire, a) je serais sûr de commettre une erreur fatale, et b) j'aurais les heebie-jeebies et choisirais un déménagement différent. C'est précisément parce que j'utilise l'intuition que je joue souvent des mouvements bizarres comme ... Qa7 !. C'est aussi sans aucun doute un facteur qui explique pourquoi ma note est inférieure à 2000 ...
jaxter
Il y a une différence entre le coup haut et le son que l'on s'attend à trouver beaucoup de joueurs, et une tactique brillante que la plupart des joueurs ne devraient pas voir. Le jeu de White ci-dessus a plusieurs de ces derniers.
CashCow
9

Pour donner ma réponse quant à la manière dont j'aborderais cela, j'utiliserais une idée simple:

  • Test d'hypothèses nulles

L'idée est qu'il existe un nombre limité de moteurs d'échecs disponibles au public, disons Nd'eux. Bien entendu, cette hypothèse exclut la possibilité que le tricheur ait écrit son propre moteur d’échecs (ou qu’il utilise un moteur d’échecs indisponible publiquement), mais cela devrait être une hypothèse suffisamment solide pour attraper les tricheurs occasionnels.

L'application du test d'hypothèse nulle serait très simple: pour chaque moteur d'échecs Xet pour chaque sous-séquence de coups du jeu en cours, calculez la probabilité pd'observer la sous-séquence jouée en supposant l' hypothèse nulle que le joueur n'utilise pas le moteur d'échecs Xpour effectuer les coups. pour eux. Une hypothèse naïve pourrait être fait que le joueur se déplace au hasard (choisit ou au hasard à partir d' un certain nombre de premiers mouvements d_i), la probabilité d'une séquence donnée de longueur kse déplace correspondant un moteur d'échecs Xrendrait seraient calculés comme (d_1)/(n_1) * (d_2)/(n_2) * (d_3)/(n_3) *...* (d_k)/(n_k)d_iest le nombre de possibles (top) mouvements à faire à laithtour, évalué par le moteur Xet n_iest le nombre total de coups disponibles pour le joueur à son tour i(ou un sous-ensemble raisonnable).

Ensuite, calculez simplement

p* = minimum p over all chess engine X, all subsequences y.

Si p*est inférieur à un certain seuil, étiquetez le joueur en tant que tricheur puisqu'il existe un ymoteur de sous-séquence et d'échecs Xqui porte la probabilité que le joueur ne triche pas en dessous d'une probabilité souhaitée.

ldog
la source
8

Je pense que l'analyse post-match vous donne la meilleure chance d'identifier si un joueur a triché. Cela peut être fait en utilisant ce qu'on appelle l'analyse T3 / T4.

Cela mesure essentiellement la fréquence à laquelle un joueur choisit l’un des 3 ou 4 meilleurs mouvements suggérés par un moteur. Ceci élimine en grande partie le besoin d'identifier le moteur cible utilisé (car ils s'accorderont généralement sur les 4/5 premiers mouvements même si l'ordre de préférence est différent).

Il existe des logiciels disponibles qui exécuteront un ensemble de jeux de l'utilisateur contre les n meilleurs mouvements du moteur. Modifier:

Je suis conscient de ChessAnalyse qui peut être utilisé pour faire une telle analyse. Vous pouvez essayer la version d'essai de 30 jours.

sidprasher
la source
2
Cela peut être contré par un tricheur intelligent qui possède les connaissances suivantes en matière d'échecs: jouez des mouvements qui n'aggravent tout simplement pas votre position et attendez la gaffe de votre adversaire qui compromettrait sa position. Si vous jouez un blitz de 5 à 15 minutes contre une personne qui n’est pas au pouvoir de GM, cela se produira certainement, tôt ou tard. Si en plus vous jouez un mauvais coup occasionnel et / ou si vous n'insistez pas pour gagner chaque match, je suis sûr que votre triche irait sans être détectée.
Andrea Mori
@AndreaMori: Je suis d'accord pour dire que vous pouvez éviter quelques situations, mais à mesure que son classement s'améliorera, il sera obligé de rechercher de plus en plus et finalement d'être détecté.
sidprasher
Merci, vous avez mentionné qu'il existe des logiciels disponibles. Pouvez-vous donner un exemple?
Salvador Dali
6

Si votre site donne aux utilisateurs un seul clic pour obtenir les positions FEN ou PGN pendant le jeu , vous devez envisager de les suivre.

Certains tricheurs trichent depuis le début, mais d’autres préfèrent ne commencer à tricher que s’ils rencontrent des difficultés et ils utiliseront évidemment la fonction de copie FEN / PGN car il est fastidieux de configurer la position manuellement.

Vous devriez en quelque sorte stocker cela avec le coup au moment où il l'a copié, de cette façon vous pouvez comparer à partir de ce point aux coups suivants et voir si sa force a considérablement augmenté avec l'aide de moteurs d'échecs.

Mais il est très important que vous l'utilisiez uniquement pour vous aider à décider s'il trichait, il serait injuste d'utiliser un script qui n'utilise aucune intervention humaine, il peut y avoir beaucoup de faux positifs, par exemple, j'aime souvent copier des positions. pendant que je joue, je les analyserai plus tard sans avoir besoin de chercher mon jeu ou de trouver le coup exact du PGN. Et je ne le laisse pas toujours dans mon presse-papiers, par crainte de l'écraser, je le déplace donc vers le bloc-notes (ce qui signifie que je change de fenêtre juste après l'avoir copié).

ajax333221
la source
2
Cela semble concerner le point de vue "Comment gérer un serveur" plutôt que "Est-ce que mon adversaire triche?" un (pas que l'OP ait dit quoi que ce soit qui importait pour lui). Cela vaut peut-être la peine de le mentionner, car il m'a fallu un peu de temps pour comprendre ce que vous vouliez dire, en pensant au POV du joueur. (Bonne réponse… une fois que cela est compris ^ _ ^ ')
Nikana Reklawyks
1
Merci @ AJAX. Je n'ai pas pensé à sauvegarder le mouvement où la position a été copiée et à analyser la différence entre la force avant et après.
Salvador Dali
et bien sûr, les tricheurs découvriront et désactiveront ce suivi. ou faites leur propre fonctionnalité de copie, ce n'est pas si difficile: codegolf.stackexchange.com/questions/89647/chess-conversion
Sarge Borsch
3

FWIW, personne n’a mentionné le nom du Dr Ken Regan, bien que le pointeur sur le blog de Lipton décrive un autre article de Chess Life qui traite de son travail.

Cet article est très instructif sur le travail de Regan, l'état des techniques de détection en vigueur en 2014 et le travail de la FIDE dans la mise en place d'un comité chargé de définir et de promulguer des normes, des outils et des techniques pour aider le TD à enrayer la triche.

jaxter
la source