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).
analysis
online-chess
Salvador Dali
quelle
quelle
Antworten:
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 .
quelle
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.
quelle
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 -
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:
quelle
Um meine Antwort zu geben, wie ich das angehen würde, würde ich eine einfache Idee verwenden:
Die Idee ist, dass es eine begrenzte Anzahl von öffentlich verfügbaren Schachengines gibt, sagen wir
N
von 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
X
und für jede Teilfolge von Bewegungen des aktuellen Spiels berechnet die Wahrscheinlichkeitp
der gespielten Teilfolge Beobachtung vorausgesetzt die Nullhypothese , dass der Player nicht Schach - Engine ,X
die 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ähltd_i
), dann würde die Wahrscheinlichkeit für eine gegebene Folge von Längenanpassungszügenk
, die eine SchachmaschineX
machen würde, berechnet werden, wie(d_1)/(n_1) * (d_2)/(n_2) * (d_3)/(n_3) *...* (d_k)/(n_k)
hochd_i
die Anzahl ist mögliche (top) bewegungen machen amith
Zug, bewertet nach MotorX
undn_i
gibt die Anzahl der Zugbewegungen an, die dem Spieler in einem Zugi
(oder einer angemessenen Untergruppe) zur Verfügung stehen.Dann einfach rechnen
Wenn
p*
ein bestimmter Schwellenwert unterschritten wird, bezeichnet der Spieler den Betrüger als Betrüger, da eine Subsequenz-y
und Schachengine vorhanden istX
, die die Wahrscheinlichkeit, dass der Spieler nicht betrügt, unter eine gewünschte Wahrscheinlichkeit bringt.quelle
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.
quelle
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).
quelle
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.
quelle