プレイヤーがオンラインチェスで不正行為をしているとどのように判断しますか?


40

プレーヤーが互いにリアルタイムでチェスをプレイできるオンラインWebサイトがたくさんあります。ほとんどのゲームの長さは5〜10分です。チェスソフトウェアが利用できるようになったため、FritzまたはRybkaを使用して彼の動きを提案することで、利点を活かすことができます。

たとえば、対戦相手のあらゆる動きを入力して、ソフトウェアが私に何を提案するかを見ることができます。

プレイヤーが不正行為をしていることを示唆するいくつかの機能について考えていました。

  • 彼が画面を切り替える回数
  • プレイの速度(簡単なポジションと非常に難しいポジション)
  • ゲームの精度

誰か他のアイデアはありますか?

PS:私にとっては、あなたがどの視点から考えているかは問題ではありません(サーバー側またはクライアント側)。


今日のすばらしい質問と関連する問題!しかし、アルゴリズムを使用してオンライン電撃の不正行為を検出することを意味しますか?
ラワンサギ14

不正行為を検出する戦略は、不正行為者が「愚かな」場合にのみ機能します。より巧妙な不正行為の状態を採用すると(NoviceProgrammerの答えに対する私のコメントを参照)、不正行為を推測することさえほとんど不可能になります。
アンドレアモリ14年

これはほとんど問題ではないと思います。私はchess.comでプレイしています。10人に1人が実際に不正行為をしていると思います。そして、相手が助けを得たのではないかと疑った場合、単に相手をブロックします。
ランディミン

回答:


33

これは実際には非常に複雑な質問であり、満足のいく方法で解決されたものではありません。私の知る限りです。基本的に、人間のプレイヤーとコンピューターを区別するために、一種の逆チューリングテストを実行するアルゴリズムを求めています。

まず、クライアント環境を完全に制御できない限り、クライアント側のチェックには常に弱点があります。最初のアイデアを考えてみましょう-ウィンドウ間の切り替えをチェックすると、いいですね。残念ながら、チェスエンジンを別のコンピューターで実行するか、エンジンをクライアントと統合して「ウィンドウの切り替え」が発生しないようにするか、ウィンドウを0回変更するようにクライアントを変更するか、...それはだことを確認するための現実的な方法あなたは本当に、クライアント上で実行されるコード。

残っているのは、物理的に厳密に制御されたクライアント環境(オンラインゲームでは発生しません)、またはサーバー側のチェック、つまり実際にプレイされた動き(そしておそらく動きと動きの間の時間)、あなたが言うように)、コンピュータまたは人間の側面を推測しようとしています。

サーバー側のチェックでは、いくつかの方法も分割できます。おそらく、「トップダウン」アプローチを試すことができます。これは、「過去の過去のゲームから、人間の2%だけが動き、コンピューターの50%が動きます」のようなものです。「任意の位置」に十分なデータがある場合、これは実際にそれを行うための非常に良い方法です。ただし、チェスの検索スペースは非常に大きいため、非常に大きなデータセットでも、ゲームの初期段階を過ぎると、自分の位置に一致するゲームの数が多くなりません。

方程式の人間側に信頼できる統計情報がないと仮定すると、多くのチェスエンジン(それぞれ異なる時間設定を使用)に位置を提示し、プレイヤーの動きがどれだけ一致するかを確認できますコンピューターのそれ。これだけでも多くの誤検知が発生しますが、同じチェスエンジンと時間設定に対して繰り返し正の検知を行うと、プレーヤーが不正行為をしている可能性がますます高くなります。これをさらに強化するために、チェスの位置を分析する「ボトムアップ」アプローチを検討します。要するに、人間とコンピューターのプレイが異なる理由を解明しようとしています。例えば、人間は一般的なパターンを認識する傾向があります。「奇妙な」パターン、またはありそうもない状況のゲームでは、人間が非常に正確にプレイできる可能性は低くなります。どれでもない、

あなたのリストにいくつかの詳細を追加するために、私は教授が論文の盗用をどのように検出するかという線に沿って進むでしょう-突然の変化を検出することによって。チェスでは、これを定義することは非常に困難ですが、プレイスタイルまたはプレイ強度の突然の変化は、不正行為を示す場合があります。具体的には、私はただ「うまくいく」傾向があり、プレイヤーにマイナス面がない(あまりにも正確な)特徴のない攻撃的な動きを探します。通常はボードの端などに騎士を置くプレイヤーからの4+以上の移動での強制合致(可能性があります...可能性は低いです)。しかし、これがどのように機能するかは、本全体(またはそれ以上)を占有する可能性があります。

編集:最近、トップレベルのチェスにチートと検出に関する記事がありました。


3
人間対コンピューターは、ゲームの開始時
誤検知を引き起こす可能性があり

@ ajax333221私は完全に同意します。ある程度まで、同様のことがエンドゲームにも当てはまる場合があります。エンドゲームでは、事前の知識に基づいて、人間が完全にほぼ完全にプレイする場合があります。とはいえ、ゲームで不正行為の可能性を検出できれば、追加情報と高度な分析があれば、コンピューターでも同じことができると確信しています。4+移動中に強制メイトは1050定格プレイヤーVS最近のオンラインゲームから実際の例だった-非常に示唆に富む、控えめに言っても...
ダニエルB

20

電撃戦では、彼らがどれだけの時間を使っているかを知ることができます。エンジンを使用している人は、ほとんどの通常のプレーヤーのようにオープニングを突破してミドルゲームのクロールに減速する代わりに、すべての動きに一定の時間を使用します。特に、彼らはオープニングの動きのたびにコンピューターボードを更新する必要があるため、オープニングを速くプレイできません。移動2で5秒、移動20で5秒かかる場合、おそらくエンジンを使用している可能性があります。


これは投稿の時に本当だったが、stockfishがで時間を過ごすために動くものを優先順位付けするための入力として、残りの時間を受け入れることができるかどうか私はわからないよ。
OganM

15

画面切り替えの数と再生速度は無意味です。これらを使用して、オンラインチェスをするWebサイトの主催者に文句を言うと、彼らはあなたを笑います。

誰かが不正行為を行っているかどうかを判断するには、2つの方法があります。最初は「喫煙銃」です。このゲームセクションを検討してください-

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

問題は、そのポジションで何をするかです。状況は、これでの最後のラウンドである勝利が、一連のグランドマスターの前にあなたにトーナメントで勝つということです。わずか1900でも悪くはありません。私たちのほとんどは、勝ち続けるために適度に堅実なものをプレイするだろうと思います。Rxb7やRd7、または(私のようなward病者向けの)Rxf6のような動き。Qa7は、動きを止めさせる喫煙銃です。フリッツはそのポジションで最高の動きとして評価し、次の最高の動きであるRd7の0.1を大きく上回る。

黒が辞任したときにゲームの最後に喫煙銃#2のゲームが1900の評価を受けたプレーヤーをトーナメントの完全勝者として残しました。その位置でカリニシェフに何を言いますか?

これが会話の流れです。

Allwermann:「8の仲間」

Kalinitschev:「そうは思わない」

Allwermann:「チェックしてください、私が正しいとわかるでしょう」

もちろん、オールウェルマンは正しかった。最終ポジションで8の仲間を見つけることができますか?シリコン支援なし?

それで、あなたはあなたの喫煙銃を持って、あなたはそれを主催者に持って行きます。彼らは何をしますか?

それでは、不正行為が行われているという合理的な疑いを超えて検出および証明する2番目の方法があります。

各チームは、少なくとも20の非データベースの移動を含む少なくとも20のゲームを収集し、チェックのためにエンジンにフィードする必要があります。基本的に、彼らが探しているのは、容疑者がエンジンの最初のピック、最初の2つのピック、最初の3つのピックのいずれかに一致する非データベース移動を選択する時間の割合です。「証明」のしきい値は次のとおりです-

トップ1 65%

トップ2 80%

上位3 90%

最近の例は、Borislav Ivanovのパフォーマンスをめぐる論争です。

ここに彼の統計があります-

Zadar 19日:Houdini 1.5a x64ハッシュ:256時間:30s最大深度:20ply {Borislav Ivanov(ゲーム:9)}

{トップ1マッチ:210/314(66.9%)対戦相手:150/313(47.9%)

{上位2試合:270/314(86.0%)対戦相手:207/313(66.1%)

{トップ3マッチ:285/314(90.8%)対戦相手:238/313(76.0%)

{上位4試合:293/314(93.3%)対戦相手:267/313(85.3%)

8ラウンド目でライブフィードがダウンし(これにより、彼の外部の助けが動きを得ることができたと思われる)、彼はGM Predojevicに敗れた。この結果が削除された場合、新しい統計は次のとおりです。

Zadar 19日:Houdini 1.5a x64ハッシュ:256時間:30s最大深度:20ply {Borislav Ivanov(ゲーム:)}

{トップ1マッチ:197/287(68.6%)対戦相手:135/286(47.2%)

{上位2試合:252/287(87.8%)対戦相手:188/286(65.7%)

{上位3試合:265/287(92.3%)対戦相手:218/286(76.2%)

{上位4試合:272/287(94.8%)対戦相手:242/286(84.6%)

ご覧のように、両方の統計情報セットにより、彼はチェスサーバーを投げられます。比較のために、フィードがダウンしたときのゲーム8の分析を次に示します。

{白:ボリスラフ・イワノフ}

{トップ1マッチ:13/27(48.1%)

{上位2試合:18/27(66.7%)

{上位3試合:20/27(74.1%)

{上位4試合:22/27(81.5%)

{黒:Borki Predojevic}

{トップ1マッチ:15/27(55.6%)

{上位2試合:19/27(70.4%)

{上位3試合:20/27(74.1%)

{上位4試合:25/27(92.6%)

FIDEは、コンピューターの不正行為を検出して対処する方法を調査する委員会を設置していることに注意してください。彼らのガイドラインはこちらです。このセクションに注意してください。

E.インターネットベースのFIDEゲームスクリーニングツール

FIDEは、イン​​ターネットベースのゲームスクリーニングツールを提供します。このツールには、承認されたすべてのFIDE担当者(IO、IA、ACCメンバー)および全国連盟がアクセスできます。FIDE専用のWebページでホストされ、トーナメント内の潜在的な外れ値を識別する「高速テスト」のために、承認された当事者がPGN形式でゲームをアップロードできるようにします。「スクリーニング」により、これは判断値のない予備テストのみを提供することが理解されます。


1
素晴らしい分析!T3 / T4の結果は、特に彼の結果の確率が報告されている場合、説得力があります。ところで:あなたの投稿はしばらく前に作られたと思いますが、カリニチェフとアルウェルマンの会話の引用がまだあるのでしょうか?明らかに、1500が8の合致を確実に見つけることはありません。特に2500がそれを認識しない場合です。それができたときに、彼はこの点を提起していることが特にスマート鳴らない、それ自体で、彼が浮気だという疑いを引き起こします。
jaxter

1
ところで:私はQa7に同意しません!ハートストッパーです。1)ブラックのバックランクが弱いこと、2)彼はそのチームメイトに対して脆弱であるという2つの事実を利用しているだけです。したがって、バックランクからのルークの転換は、潜在的に勝つ戦術を可能にします。この場合、白は移動を使用してbポーンを攻撃し、7番目のクイーンとルークを調整してルークを防御します。ホワイトは、1 ... Qxf7 2.Qxa8 + Qg8 3.Qxb7の後、少なくともポーンに勝ちます。GMはQa7の動きを見るべきだったと思うし、Kalinitschevが見逃したことに非常に驚いた。Rxf6の後、ボード上で最も強い動きですか?!
jaxter

1
@jaxter情報はen.chessbase.com/post/a-history-of-cheating-in-che-3-から取得されます。注「Qa7が心臓ストッパーであることには同意しません」-記事を読むと、Vishy Anandがあなたに同意していないことがわかります:-)。記事から-「だから私たちのヒーローは何をするのか?31.Qa7?!! 「Fritzy!」はアナンドを怒鳴りつけ、これと次の動きを見たとき、制御不能な笑いに襲われました(私は彼の笑いを撮影し、ChessBase Magazine 69のマルチメディアレポートにそれを含めました)。'
ブライアンタワーズ

参照いただきありがとうございます。私はあなたの主張を受け入れます。私は確かにその動きに一撃を与えるつもりだったでしょうが、それは白がすべての線を計算することなく黒の反撃に耐えることができると判断したからかもしれません。それをしようとした場合、a)致命的な間違いを犯すと確信します。b)ヒッピージービーを獲得し、別の動きを選びます。直感を使っているからこそ、... Qa7!のような気まぐれな動きをよくします。それは間違いなく、私の評価が2000未満である理由にも貢献しています
...-jaxter

トップムーブは、多くのプレイヤーに期待されるサウンドムーブと、ほとんどのプレイヤーに見られない素晴らしい戦術との間には違いがあります。上記のホワイトのプレイには後者のいくつかがあります。
CashCow

9

私がこれにどのようにアプローチするかについて私の答えを与えるために、私は簡単なアイデアを使用します:

  • 帰無仮説検定

アイデアは、公開されているチェスエンジンの数は限られているというNことです。もちろん、この仮定は、詐欺師が独自のチェスエンジンを書いた(または公的に入手できないチェスエンジンを使用している)可能性を排除しますが、カジュアルな詐欺師を捕まえるには、これは十分に強い仮定である必要があります。

Null Hypothesis Testの適用は非常に簡単です。チェスエンジンXごとに、現在のゲームの動きのサブシーケンスごとに、プレイヤーがチェスエンジンを使用して移動していないという帰無仮説仮定しp、プレイされたサブシーケンス観察する確率を計算します彼らのために。ナイーブな仮定は、(上部移動の選択された数から、またはランダムに選択するランダムにプレイヤが移動することを作ることができる)、次に長さの所与のサブシーケンスの確率マッチング移動がチェスエンジンになるだろうが、として計算される場合の数であります可能な(上)の動きはXd_ikX(d_1)/(n_1) * (d_2)/(n_2) * (d_3)/(n_3) *...* (d_k)/(n_k)d_iithエンジンによって評価されるように、ターンXおよびn_iターンにおけるプレイヤに利用可能な全移動の数であるi(またはいくつかの合理的なサブセット)。

その後、単に計算する

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

p*特定のしきい値よりも小さい場合、プレーヤーが所望の確率を下回っていない可能性をもたらすサブシーケンスyとチェスエンジンが存在するため、プレーヤーを詐欺師としてラベル付けします。 X


8

試合後の分析により、プレイヤーが不正行為を行っているかどうかを特定できる可能性が最も高いと思います。これは、T3 / T4分析と呼ばれるものを使用して実行できます。

これは基本的に、プレーヤーがエンジンによって提案されたトップ3またはトップ4の動きの1つを選ぶ頻度を測定します。これにより、使用中のターゲットエンジンを識別する必要性が大幅に排除されます(優先順位が異なっていても上位4/5の動きに通常同意するため)。

エンジンの上位nの動きに対してユーザーのゲームのセットを実行するソフトウェアがあります。編集:

このような分析を行うために使用できるChessAnalyseを知っています。30日間の試用版を試すことができます。


2
これは、次のようなチェスの知識を備えたインテリジェントな詐欺師によって対抗することができます。あなたがGMの強さでない誰かに対して5から15分の電撃戦をしているならば、これは遅かれ早かれ間違いなく起こるでしょう。さらに、時折悪い動きを投げたり、すべてのゲームに勝つことを主張しない場合、あなたの不正行為は検出されないでしょう。
アンドレアモリ14年

@AndreaMori:私はあなたがいくつかの状況を回避できることに同意しますが、彼/彼女の評価が向上するにつれて、彼はますます調べることを強いられ、最終的には検出されます。
sidprasher 14年

ありがとう、あなたは利用可能なソフトウェアがあると述べました。例を挙げていただけますか?
サルバドールダリ14年

6

ゲームの実行中にサイトでユーザーがワンクリックでFENポジションまたはPGN 取得できるようにする場合、これらの追跡を検討する必要があります。

不正行為者の中には最初から不正行為を行う人もいますが、問題が発生したときにのみ不正行為を開始することを好みます。また、手動で位置を設定するのは時間がかかるため、明らかにFEN / PGNコピー機能を使用します。

どういうわけか、それを彼がコピーしたときの動きとともに保存する必要があります。この方法で、その時点から次の動きと比較し、チェスエンジンの助けを借りて彼の強さが大幅に増加したかどうかを確認できます。

しかし、彼が不正行為をしているかどうかを判断するためだけに使用することは非常に重要です。人間の介入を使用しないスクリプトを使用することは不公平です。たとえば、ゲームを検索したり、PGNから正確な動きを見つけたりする必要なく、後で分析するためにプレイしています。また、クリップボードに上書きするのではないかと心配してクリップボードに残しているわけではないので、メモ帳に移動します(つまり、コピーした直後にウィンドウを切り替えます)。


2
これは、「相手が不正行為をしているのではなく」「サーバーを管理する方法」の観点に取り組んでいるようです。1つ(OPが彼にとって重要なケースについて何かを言ったことではない)。プレイヤーのPOVから考えて、あなたが何を意味するのか理解するのに少し時間がかかったので、言及する価値があるかもしれません。(良い答え…これが理解されたら^ _ ^ ')
ニカナレクラウィクス

1
ありがとう@ajax。私は、位置がコピーされた動きを保存することを考えず、前後の強さの違いを分析しました。
サルバドールダリ

もちろん、不正行為者はその追跡を見つけて無効にします。または独自のコピー機能を実行しても、それほど難しくありません:codegolf.stackexchange.com/questions/89647/chess-conversion
Sarge Borsch

3

FWIW、リプトンのブログへのポインターは彼の仕事を議論するチェスライフの別の記事説明していますが、誰もケン・リーガン博士に名前を挙げていません。

この記事は、Reganの仕事、2014年に有効だった検出技術の状態、TDが不正行為を排除するのを支援する標準、ツール、および技術を定義および公表する委員会を設置するFIDEの仕事について非常に有益です。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.