Wie würden Sie feststellen, dass der Spieler im Online-Schach betrügt?


40

Es gibt viele Online-Websites, auf denen die Spieler in Echtzeit miteinander Schach spielen können. Die meisten Spiele dauern 5-10 Minuten. Mit der Verfügbarkeit von Schachsoftware kann man einen Vorteil daraus ziehen, Fritz oder Rybka zu benutzen, um ihm einen Zug vorzuschlagen.

Zum Beispiel kann ich einfach jede Bewegung meines Gegners eingeben und sehen, welche Software für mich vorgeschlagen wird.

Ich habe über ein paar Features nachgedacht, die darauf hindeuten können, dass der Spieler betrügt:

  • Häufigkeit, mit der er den Bildschirm wechselt
  • Spielgeschwindigkeit (in leichten und sehr schweren Stellungen)
  • Genauigkeit des Spiels

Hat jemand noch andere Ideen?

PS: Es spielt für mich keine Rolle, aus welcher Perspektive Sie denken (Server- oder Client-Seite).


Ausgezeichnete Frage und relevantes Problem heute! Aber meinst du damit, dass du Online-Blitz-Betrug mithilfe eines Algorithmus oder als menschlicher Spieler beim Spielen eines Gegners erkennst?
Rauan Sagit

Betrugserkennungsstrategien funktionieren nur, wenn der Betrüger "dumm" ist. Wenn Sie cleverere Betrugsstrategien anwenden (siehe meinen Kommentar zur Antwort von NoviceProgrammer), wäre das Betrügen fast unmöglich zu erraten.
Andrea Mori

Ich denke, das ist so ziemlich kein Thema. Ich spiele auf chess.com. Ich würde vermuten, dass vielleicht 1 von 10 Personen tatsächlich betrügt. Und wenn ich den Verdacht habe, dass mein Gegner Hilfe bekommen hat, blockiere ich sie einfach.
Randy Minder

Antworten:


33

Dies ist eine sehr komplexe Frage, die meines Wissens nicht zufriedenstellend gelöst wurde. Im Wesentlichen fordern wir einen Algorithmus, der eine Art Reverse-Turing-Test durchführt, um zwischen menschlichen Spielern und Computern zu unterscheiden.

Erstens weisen clientseitige Überprüfungen immer Schwachstellen auf, es sei denn, Sie haben die vollständige Kontrolle über die Clientumgebung. Lassen Sie uns die erste Idee aufgreifen - nach einem Wechsel zwischen den Fenstern zu suchen, hört sich gut an. Leider ist es trivial, eine Schach-Engine auf einem separaten Computer auszuführen oder meine Engine in den Client zu integrieren, sodass kein "Fensterwechsel" stattfindet, oder den Client so zu ändern, dass 0 Änderungen im Fenster gemeldet werden, oder ... Es gibt keine echte Art und Weise sicher zu sein, dass es Ihr Code ist, der auf dem Client ausgeführt wird.

Was bleibt, sind physisch streng kontrollierte Client-Umgebungen (was bei Online-Spielen nicht der Fall sein wird) oder serverseitige Überprüfungen, dh die tatsächlichen Spielzüge (und möglicherweise die Zeit zwischen den Spielzügen). wie Sie sagen), und versuchen, den Computer oder menschlichen Aspekt abzuleiten.

Die serverseitige Überprüfung kann auf verschiedene Arten erfolgen. Sie könnten wahrscheinlich einen "Top-down" -Ansatz ausprobieren, der in etwa so aussieht wie "bei früheren Spielen in der Geschichte haben nur 2% der Menschen diesen Schritt gemacht, während 50% der Computer ihn schaffen". Dies wäre eigentlich eine ziemlich gute Möglichkeit, wenn wir genügend Daten für "eine bestimmte Position" hätten. Der Suchraum von Schach ist jedoch so groß, dass selbst bei sehr großen Datenmengen nicht mehr viele Partien zu Ihrer Position passen, sobald Sie die frühe Spielmitte überschritten haben.

Angenommen, wir haben keine verlässlichen Statistiken zur menschlichen Seite der Gleichung, könnten Sie die Position dennoch einer Reihe von Schachengines (mit jeweils verschiedenen Zeiteinstellungen) anzeigen und sehen, wie genau die Züge der Spieler übereinstimmen das eines Computers. Dies würde für sich genommen auch zu vielen Fehlalarmen führen, jedoch würden wiederholte Positive für dieselbe Schachengine und Zeiteinstellungen es immer wahrscheinlicher machen, dass der Spieler betrügt. Um dies weiter zu verbessern, würde ich wahrscheinlich einen "Bottom-up" -Ansatz zur Analyse von Schachpositionen untersuchen. kurz gesagt, um herauszufinden, warum Menschen und Computer unterschiedlich spielen. ZB neigen Menschen dazu, gemeinsame Muster zu erkennen. In einem Spiel mit "seltsamen" Mustern oder unwahrscheinlichen Situationen ist es weniger wahrscheinlich, dass ein Mensch sehr genau spielen kann. Keiner von diesen,

Um ein paar Details zu Ihrer Liste hinzuzufügen, gehe ich in etwa so vor, wie Professoren Plagarismus in Zeitungen erkennen - indem sie eine plötzliche Veränderung feststellen. Im Schach ist dies extrem schwierig zu definieren, aber eine plötzliche Änderung des Spielstils oder der Spielstärke kann auf Betrug hindeuten. Insbesondere würde ich nach ungewöhnlich aggressiven Zügen Ausschau halten, die dazu neigen, nur zu "trainieren" und keine Nachteile für den Spieler haben (zu genau). Erzwungene Gefährten in 4+ Zügen von einem Spieler, der normalerweise Ritter auf den Rand des Brettes legt, usw. (es ist möglich ... nur nicht wahrscheinlich). Wie genau dies funktionieren würde, hört sich jedoch so an, als ob es ein ganzes Buch (oder mehr) aufnehmen könnte.

EDIT: Vor kurzem gab es einen Artikel über Betrug und Aufdeckung im Top-Level-Schach .


3
die Menschen vs Computer Fehlalarme in der geben kann Öffnung des Spiels, ist es sehr einfach , am besten Stücke auswendig zu lernen
ajax333221

@ ajax333221 da stimme ich voll zu. Bis zu einem gewissen Grad kann etwas Ähnliches für das Endspiel gelten, bei dem ein Mensch es auf der Grundlage von Vorkenntnissen nahezu perfekt spielen kann. Das heißt, wenn ich in einem Spiel einen möglichen Betrug feststellen kann, kann ein Computer mit zusätzlichen Informationen und einer ausgeklügelten Analyse dasselbe tun. Die erzwungene Kumpel in 4+ bewegt war ein aktuelles Beispiel aus einer aktuellen Online - Spiel gegen einen 1050 bewertet Spieler - sehr suggestiv, gelinde gesagt ...
Daniel B

20

In Blitz kann man daran erkennen, wie viel Zeit sie verbrauchen. Leute, die Motoren benutzen, verwenden für jede Bewegung eine gleichbleibende Zeit, anstatt durch die Öffnung zu blitzen und wie die meisten normalen Spieler im Mittelspiel langsamer zu kriechen. Insbesondere können sie die Eröffnung nicht schnell spielen, da sie ihre Computerplatine nach jedem Eröffnungszug aktualisieren müssen. Wenn sie in Bewegung zwei und in Bewegung zwanzig fünf Sekunden brauchen, verwenden sie wahrscheinlich einen Motor.


Ich bin mir nicht sicher, ob dies zum Zeitpunkt der Veröffentlichung der Fall war, aber Stockfisch kann die verbleibende Zeit als Eingabe akzeptieren, um zu priorisieren, in welchen Schritten Zeit verbracht werden soll.
OganM

15

Die Anzahl der Bildschirmschalter und die Wiedergabegeschwindigkeit sind bedeutungslos. Wenn Sie diese verwenden, um sich bei den Organisatoren einer Online-Schachspiel-Website zu beschweren, werden sie Sie auslachen.

Es gibt zwei Möglichkeiten, um festzustellen, ob jemand betrügt. Das erste ist die "rauchende Waffe". Betrachten Sie diesen Spielabschnitt -

Allwermann, Clemens (1900) - Kalinitschev, Sergey (2505) Böblingen (9), 30.12.1999
1. QA7 Tg8 2. Qxb7 Be4 3. Sf4 Df5 4. Dd7 QE5 5. Kh1 g5 6. Nh3 g4 7. Nf2 Lf5 8. Nxg4 Be4 9. R7xf6 Bxg2 + 10. Kxg2 Qe4 + 11. Kh3

Die Frage ist, was würden Sie in dieser Position spielen? Die Situation ist, dass ein Sieg in dieser, der letzten Runde des Wettbewerbs, Sie das Turnier vor einer Reihe von Großmeistern gewinnen wird. Nicht schlecht für ein Jahr vor 1900. Ich vermute, die meisten von uns würden etwas ziemlich Solides spielen, das den Sieg aufrechterhält. Bewegungen wie Rxb7 oder Rd7 oder (für Feiglinge wie mich ;-) Rxf6. Qa7 ist ein Herzstopper eines Zuges, eine rauchende Waffe. Fritz bewertet die Position als besten Zug, satte 0,1 vor dem nächstbesten Zug, Rd7.

Smoking Gun # 2-Spiel am Ende des Spiels, als Schwarz zurücktrat und den 1900-Spieler als Gesamtsieger des Turniers zurückließ. Was würden Sie Kalinitschev in dieser Position sagen?

So lief das Gespräch ab:

Allwermann: "Es ist Kumpel in 8"

Kalinitschev: "Das glaube ich nicht"

Allwermann: "Schau es dir an, du wirst feststellen, dass ich Recht habe."

Allwermann hatte natürlich recht. Finden Sie den Kumpel in 8 in der Endposition? Ohne Silikonhilfe?

Also hast du deine rauchende Waffe und bringst sie zu den Organisatoren. Was werden sie tun?

Nun, dann kommt die zweite Möglichkeit, zweifelsfrei zu erkennen und zu beweisen, dass betrogen wird.

Sie müssen mindestens 20 Spiele mit jeweils mindestens 20 Zügen ohne Datenbank sammeln und diese zur Überprüfung in eine Engine einspeisen. Grundsätzlich suchen sie nach dem Prozentsatz der Zeit, in der der Verdächtige eine Bewegung ohne Datenbank auswählt, die mit der ersten Auswahl der Engine übereinstimmt, einer der ersten beiden Auswahlmöglichkeiten, einer der ersten drei Auswahlmöglichkeiten. Die "Beweis" -Schwellen sind -

Top 1 65%

Top 2 80%

Top 3 90%

Ein aktuelles Beispiel ist die Aufregung über die Leistung von Borislav Ivanov .

Hier sind seine Statistiken -

Zadar 19.: Houdini 1.5a x64 Hash: 256 Zeit: 30s Max. Tiefe: 20ply {Borislav Ivanov (Spiele: 9)}

{Top 1-Spiel: 210/314 (66,9%) Gegner: 150/313 (47,9%)

{Top 2-Spiel: 270/314 (86,0%) Gegner: 207/313 (66,1%)

{Top 3-Spiel: 285/314 (90,8%) Gegner: 238/313 (76,0%)

{Top 4-Spiel: 293/314 (93,3%) Gegner: 267/313 (85,3%)

In der achten Runde ging der Live-Feed zurück (es wird vermutet, dass dies seiner Hilfe von außen den Einzug ermöglichte) und er verlor gegen GM Predojevic. Wenn dieses Ergebnis entfernt wird, lauten die neuen Statistiken:

Zadar 19.: Houdini 1.5a x64 Hash: 256 Zeit: 30s Max. Tiefe: 20ply {Borislav Ivanov (Games:)}

{Top 1-Spiel: 197/287 (68,6%) Gegner: 135/286 (47,2%)

{Top 2-Spiel: 252/287 (87,8%) Gegner: 188/286 (65,7%)

{Top 3-Spiel: 265/287 (92,3%) Gegner: 218/286 (76,2%)

{Top 4-Spiel: 272/287 (94,8%) Gegner: 242/286 (84,6%)

Wie Sie sehen, würden beide Statistiksätze ihn von einem Schachserver werfen lassen. Zum Vergleich hier die Analyse für Spiel 8, als der Feed ausgefallen war:

{Weiß: Borislav Ivanov}

{Top 1-Übereinstimmung: 13/27 (48,1%)

{Top 2-Übereinstimmung: 18/27 (66,7%)

{Top 3-Übereinstimmung: 20/27 (74,1%)

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

{Schwarz: Borki Predojevic}

{Top 1-Übereinstimmung: 15/27 (55,6%)

{Top 2-Übereinstimmung: 19/27 (70,4%)

{Top 3-Übereinstimmung: 20/27 (74,1%)

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

Beachten Sie, dass die FIDE eine Kommission eingerichtet hat, die nach Wegen sucht, um Computer-Betrug zu erkennen und zu bekämpfen. Ihre Richtlinien sind hier . Beachten Sie diesen Abschnitt:

E. Das internetbasierte Spiel-Screening-Tool der FIDE

Die FIDE wird ein internetbasiertes Game Screening Tool bereitstellen, das allen autorisierten FIDE-Vertretern (IO, IA, ACC-Mitgliedern) und nationalen Verbänden zugänglich sein wird. Es soll auf einer FIDE-eigenen Webseite gehostet werden und autorisierten Parteien das Hochladen von Spielen im PGN-Format für einen „schnellen Test“ ermöglichen, der potenzielle Ausreißer in einem Turnier identifiziert. Unter "Screening" wird verstanden, dass dies nur einen vorläufigen Test ohne Beurteilungswert darstellt, mit der Ausnahme, dass dieser angeführt werden kann, während Vorwürfe zurückgewiesen und die Durchführung eines manuellen vollständigen Tests abgelehnt werden.


1
Großartige Analyse! Die T3 / T4-Ergebnisse überzeugen, insbesondere wenn die Wahrscheinlichkeit seiner Ergebnisse angegeben wird. BTW: Mir ist klar, dass Ihr Beitrag vor einiger Zeit erstellt wurde, aber haben Sie immer noch das Zitat für das Gespräch zwischen Kalinitschev und Allwermann? Es ist klar, dass kein 1900 in 8 zuverlässig einen Partner finden wird, besonders wenn ein 2500 es nicht sieht. Es klingt nicht besonders klug für ihn , diesen Punkt angehoben zu haben , wenn es kann selbst den Verdacht , dass er betrügt verursachen.
Jaxter

1
BTW: Ich bin nicht der Meinung, dass Qa7! ist ein Herzstopper. Die beiden Tatsachen werden einfach ausgenutzt: 1) Der hintere Rang von Schwarz ist schwach und 2) er ist anfällig für einen Gefährten. Jede Ablenkung des Turms vom hinteren Rang ermöglicht also potenziell gewinnbringende Taktiken. In diesem Fall benutzt Weiß den Zug, um den b-Bauern anzugreifen und seine Dame und den Turm auf dem siebten zu koordinieren, damit der Turm verteidigt wird. Weiß gewinnt mindestens einen Bauern nach 1 ... Dxf7 2.Dxa8 + Dg8 3.Dxb7. Ich denke, jeder GM hätte den Zug Qa7 sehen sollen, und ich bin sehr überrascht, dass Kalinitschev ihn verpasst hat. Es ist der forcierteste Zug auf dem Brett nach Rxf6 ?!
Jaxter

1
@jaxter Die Informationen stammen von en.chessbase.com/post/a-history-of-cheating-in-che-3- . Hinweis "Ich bin nicht der Meinung, dass Qa7! Ein Herzstillstand ist" - wenn Sie den Artikel lesen, werden Sie feststellen, dass Vishy Anand nicht mit Ihnen übereinstimmt :-). Aus dem Artikel - 'Also, was spielt unser Held? 31.Da7? !! "Fritzy!", Quietschte Anand und bekam unkontrollierbare Lachanfälle, als er diese und die folgenden Bewegungen sah (ich filmte seine Heiterkeit und nahm sie in meinen Multimedia-Bericht im ChessBase-Magazin 69 auf). '
Brian Towers

Danke für den Hinweis. Ich nehme deinen Punkt. Ich wäre sicherlich bereit gewesen, den Zug zu versuchen, aber das liegt zum Teil daran, dass ich beurteilt hätte, dass Weiß den Gegenangriff von Schwarz überstehen könnte, ohne alle Linien zu berechnen . Wenn ich das versuchen würde, a) wäre ich sicher, dass ich einen fatalen Fehler machen würde, und b) würde ich die heebie-jeebies bekommen und einen anderen Zug wählen. Gerade weil ich Intuition benutze, spiele ich oft ausgeflippte Moves wie ... Qa7 !. Es ist zweifellos auch ein Faktor, warum meine Bewertung unter 2000 liegt ...
Jaxter

Es gibt einen Unterschied zwischen einem guten Zug, den viele Spieler erwarten, und einer brillanten Taktik, die die meisten Spieler nicht erwarten würden. Das obige Spiel von Weiß hat mehrere davon.
CashCow

9

Um meine Antwort zu geben, wie ich das angehen würde, würde ich eine einfache Idee verwenden:

  • Nullhypothesentest

Die Idee ist, dass es eine begrenzte Anzahl von öffentlich verfügbaren Schachengines gibt, sagen wir Nvon ihnen. Diese Annahme schließt natürlich die Möglichkeit aus, dass der Betrüger eine eigene Schachengine geschrieben hat (oder eine öffentlich nicht verfügbare Schachengine verwendet), aber dies sollte eine hinreichend starke Annahme sein, um Gelegenheitsbetrüger zu fangen.

Die Anwendung des Nullhypothese - Tests würde sehr einfach sein: für jeden Motor Schach Xund für jede Teilfolge von Bewegungen des aktuellen Spiels berechnet die Wahrscheinlichkeit pder gespielten Teilfolge Beobachtung vorausgesetzt die Nullhypothese , dass der Player nicht Schach - Engine , Xdie Bewegungen zu machen für Sie. Man könnte naiv annehmen, dass der Spieler sich zufällig bewegt (oder zufällig aus einer ausgewählten Anzahl von Top-Zügen auswählt d_i), dann würde die Wahrscheinlichkeit für eine gegebene Folge von Längenanpassungszügen k, die eine Schachmaschine Xmachen würde, berechnet werden, wie (d_1)/(n_1) * (d_2)/(n_2) * (d_3)/(n_3) *...* (d_k)/(n_k)hoch d_idie Anzahl ist mögliche (top) bewegungen machen amithZug, bewertet nach Motor Xund n_igibt die Anzahl der Zugbewegungen an, die dem Spieler in einem Zug i(oder einer angemessenen Untergruppe) zur Verfügung stehen.

Dann einfach rechnen

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

Wenn p*ein bestimmter Schwellenwert unterschritten wird, bezeichnet der Spieler den Betrüger als Betrüger, da eine Subsequenz- yund Schachengine vorhanden ist X, die die Wahrscheinlichkeit, dass der Spieler nicht betrügt, unter eine gewünschte Wahrscheinlichkeit bringt.


8

Ich denke, dass die Analyse nach dem Spiel die beste Chance bietet, festzustellen, ob ein Spieler betrogen hat. Dies kann mit der sogenannten T3 / T4-Analyse erfolgen.

Dies misst im Wesentlichen die Häufigkeit, mit der ein Spieler eine der Top 3 oder Top 4 Bewegungen auswählt, die von einer Engine vorgeschlagen werden. Dadurch entfällt die Notwendigkeit, die verwendete Zielmaschine zu identifizieren (da sie sich im Allgemeinen auf die oberen 4/5-Züge einigen, auch wenn die Reihenfolge der Präferenzen unterschiedlich ist).

Es gibt Software, die eine Reihe von Spielen des Benutzers gegen die Top-n-Moves der Engine ausführt. Bearbeiten:

Mir ist ChessAnalyse bekannt , mit dem eine solche Analyse durchgeführt werden kann. Sie können die 30-Tage-Testversion ausprobieren.


2
Dem kann ein intelligenter Betrüger entgegenwirken, der einige Schachkenntnisse wie folgt besitzt: Spielzüge, die Ihre Position nicht verschlechtern und auf den Fehler Ihres Gegners warten, der seine Position gefährden würde. Wenn Sie 5 bis 15 Minuten gegen jemanden spielen, der nicht GM-fähig ist, wird dies auf jeden Fall früher oder später passieren. Wenn Sie außerdem gelegentlich einen schlechten Zug ausführen und / oder nicht auf dem Gewinn jedes einzelnen Spiels bestehen, bin ich mir sicher, dass Ihr Betrug unentdeckt bleiben würde.
Andrea Mori

@AndreaMori: Ich stimme zu, dass Sie einige Situationen vermeiden können, aber wenn sich seine / ihre Bewertung verbessert, wird er gezwungen sein, mehr und mehr nachzuschlagen und irgendwann entdeckt zu werden.
Sidprasher

Vielen Dank, Sie haben erwähnt, dass Software verfügbar ist. Kannst du ein Beispiel geben?
Salvador Dali

6

Wenn die Benutzer auf Ihrer Website mit einem Klick FEN-Positionen oder PGN erhalten, während das Spiel ausgeführt wird , sollten Sie diese nachverfolgen.

Einige Betrüger betrügen von Anfang an, andere ziehen es jedoch vor, nur zu betrügen, wenn sie in Schwierigkeiten sind, und sie werden offensichtlich die Kopierfunktion FEN / PGN verwenden, da es zeitaufwändig ist, die Position manuell einzurichten.

Sie sollten das zusammen mit dem Zug zum Zeitpunkt des Kopierens irgendwie speichern. Auf diese Weise können Sie von diesem Punkt an die folgenden Züge vergleichen und feststellen, ob seine Stärke mithilfe von Schach-Engines erheblich zugenommen hat.

Aber es ist sehr wichtig, dass Sie es nur verwenden, um zu entscheiden, ob er betrogen hat. Es wäre unfair, ein Skript zu verwenden, das keine menschlichen Eingriffe erfordert. Es kann viele Fehlalarme geben. Ich kopiere häufig gerne Positionen während ich spiele, um sie später zu analysieren, ohne nach meinem Spiel suchen oder den genauen Zug aus dem PGN herausfinden zu müssen. Und ich lasse es nicht immer in meiner Zwischenablage, weil ich befürchte, es zu überschreiben und es in den Notizblock zu verschieben (was bedeutet, dass ich das Fenster gleich nach dem Kopieren wechsle).


2
Dies scheint eher die Sichtweise "Wie verwalte ich einen Server?" Als die Sichtweise "Betrügt mein Gegner?" eine (nicht, dass das OP irgendetwas darüber sagte, welcher Fall für ihn von Bedeutung war). Könnte erwähnenswert sein, da ich ein wenig Zeit brauchte, um zu verstehen, was Sie meinten, und über das POV des Spielers nachgedacht habe. (Gute Antwort… sobald dies verstanden ist ^ _ ^ ')
Nikana Reklawyks

1
danke @ajax. Ich habe nicht daran gedacht, den Zug zu speichern, in dem die Position kopiert wurde, und den Unterschied zwischen der Stärke davor und danach zu analysieren.
Salvador Dali

und natürlich werden Betrüger diese Verfolgung herausfinden und deaktivieren. oder machen ihre eigene Kopierfunktion
Sarge Borsch

3

FWIW, niemand hat Dr. Ken Regan beim Namen genannt, obwohl der Verweis auf Liptons Blog einen anderen Artikel in Chess Life beschreibt , der seine Arbeit beschreibt.

Dieser Artikel ist sehr informativ über Regans Arbeit, den Stand der Erkennungstechniken, die 2014 in Kraft waren, und die Arbeit der FIDE bei der Einrichtung eines Komitees zur Definition und Verbreitung von Standards, Tools und Techniken, die TDs bei der Bekämpfung von Betrug unterstützen.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.