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

たとえば、対戦相手のすべての動きを入力して、どのソフトウェアが私に提案するかを確認できます。 。

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

  • 画面を切り替える回数
  • 速度プレイ(簡単で本当に難しいポジションで)
  • ゲームの正確さ

他に何かアイデアはありますか?

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

コメント

  • 今日のすばらしい質問と関連する問題!しかし、アルゴリズムを使用してオンラインの電撃攻撃を検出するのか、それとも対戦相手をプレイしているときに人間のプレーヤーと同じように検出するのか?
  • 不正行為の検出戦略は、詐欺師が”愚かな”。より巧妙な不正行為の状態を採用すると(NoviceProgrammer ‘の回答に対する私のコメントを参照)、不正行為を推測することすらほぼ不可能になります。
  • これはほとんど不可能だと思います。問題ありません。私はchess.comでプレイします。たぶん10人に1人が実際にチートしていると思います。そして、対戦相手が助けを得たと思われる場合は、単にブロックします。

回答

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

まず、クライアント側のチェックには、クライアント環境の完全な制御。最初のアイデアを考えてみましょう。ウィンドウ間の切り替えをチェックするのは良いことです。残念ながら、別のコンピューターでチェスエンジンを実行するか、「ウィンドウの切り替え」が行われないようにエンジンをクライアントと統合するか、ウィンドウの変更が0であると報告するようにクライアントを変更することで、簡単に回避できます。クライアントで実行されているコードが であることを確認する実際の方法はありません。

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

サーバー側のチェックもいくつかの方法に分けることができます。おそらく「トップダウン」アプローチを試すことができます。これは、「過去のゲームの歴史から、わずか2%」に沿ったものです。人間の50%がそれを実行し、コンピュータの50%がそれを実行しました」。「任意の位置」に十分なデータがあれば、これは実際にはかなり良い方法です。ただし、チェスのペースは非常に大きいため、ゲームの途中の早い段階を過ぎると、非常に大きなデータセットでも、自分の位置に一致するゲームの数が少なくなります。

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

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

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

コメント

  • 人間とコンピューターは、ゲームのオープニングで誤検知を引き起こす可能性があります。非常に簡単です。最高のプレーを覚える
  • @ ajax333221私は完全に同意します。ある程度、同様のことがエンドゲームにも当てはまる可能性があります。エンドゲームでは、事前の知識に基づいて、人間がほぼ完全にプレイする可能性があります。とはいえ、ゲームで不正行為の可能性を検出できれば、’追加情報と高度な分析があれば、コンピューターでも同じことができると確信しています。 4回以上の動きでの強制メイトは、最近のオンラインゲームと1050レーティングのプレーヤーの実際の例でした。控えめに言っても、非常に示唆に富んでいます…

回答

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

コメント

  • わからないこれは投稿の時点では当てはまりましたが、stockfishは残り時間を入力として受け入れて、時間を費やす動きに優先順位を付けることができます。

回答

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

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

[White "Allwermann,Clemens (1900) "] [Black "Kalinitschev,Sergey (2505) Boeblingen (9), 30.12.1999"] [FEN "r6k/1p3Rpp/p2p1bq1/3N4/2P5/1P6/P1b2QPP/5RK1 w - - 0 1"] 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のように動くまたは(私のような臆病者の場合;-) Rxf6。 Qa7は動きの心臓ストッパー、煙を吐く銃です。フリッツはそのポジションでの最高の動きとして評価し、次の最高の動きであるRd7よりもなんと0.1進んでいます。

黒が辞任したときのゲーム終了時の喫煙銃#2ゲームは、1900年の評価を受けたプレーヤーをトーナメントの完全な勝者。その立場でKalinitschevに何を言いますか?

これが会話の流れです:

Allwermann:「8歳で仲間です」

Kalinitschev: 「私はそうは思わない」

Allwermann:「チェックしてみてください。私が正しいことがわかります」

もちろん、Allwermannは正しかったです。最終位置で8の仲間を見つけることができますか?シリコンの助けがなければ?

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

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

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

上位165%

上位280%

上位390%

最近の例はボリスラフイワノフのパフォーマンスをめぐる。

彼の統計は次のとおりです-

ザダール19日:Houdini 1.5a x64ハッシュ:256時間:30秒最大深さ: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に負けました。この結果が削除された場合、新しい統計は次のようになります。

Zad ar 19日:Houdini 1.5a x64ハッシュ:256時間:30秒最大深度: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形式でゲームをアップロードできるようにします。 「スクリーニング」により、これは判断値のない予備テストのみを提供することが理解されます。ただし、申し立てを拒否し、手動の完全テストに進むことを拒否する場合を除きます。

コメント

  • すばらしい分析です! T3 / T4の結果は、特に彼の結果の確率が報告されている場合、説得力があります。ところで:あなたの投稿は少し前に行われたと思いますが、KalinitschevとAllwermannの間の会話の引用はまだありますか?明らかに、特に2500が’見えない場合、1900が8の相手を確実に見つけることはできません。 ‘ ‘彼が’の不正行為。
  • BTW:Qa7に同意しません。ハートストッパーです。 ‘は、1)黒’のバックランクが弱いこと、および2)彼’はその上の仲間に対して脆弱です。したがって、ルークをバックランクから転用すると、勝つ可能性のある戦術が可能になります。この場合、ホワイトはこの動きを使用してbポーンを攻撃し、7日にクイーンとルークを調整して、ルークが防御されるようにします。白は1 … Qxf7 2.Qxa8 + Qg83.Qxb7の後に少なくともポーンに勝ちます。 GMなら誰でもQa7の動きを見るべきだったと思いますが、’カリニチェフがそれを見逃したことに非常に驚いています。 ‘ Rxf6に続いて、ボード上で最も強制的な動きですか?!
  • @jaxter情報は en.chessbase.com/post/a-history-of-cheating-in-che-3- 。 ” Qa7に同意しません。はハートストッパーです”-記事を読むと、VishyAnandがあなたに同意しないことがわかります:-)。記事から-‘では、私たちのヒーローは何を演じていますか? 31.Qa7?!! 「フリッツィ!」彼がこれと次の動きを見たとき、アナンドを鳴らし、制御できないほどの笑い声を上げました(私は彼の笑い声を撮影し、ChessBase Magazine 69のマルチメディアレポートに含めました)。 ‘
  • 参照していただきありがとうございます。私はあなたの主張を受け入れます。私は確かに動きを試してみようと思っていたでしょうが、それは’の理由の一部は、白が黒を生き残ることができると判断したためです’ すべての行を計算せずに反撃します。それを行おうとすると、a)’致命的な間違いを犯すと確信し、b)’ heebie-jeebiesと別の動きを選びます。 ‘は、私が直感を使っているからこそ、… Qa7!のような気紛れな動きをすることがよくあります。 ‘も間違いなく私の評価が2000を下回っている要因です…
  • そこに’ saトップムーブがサウンドムーブであることの違いは、’多くのプレーヤーが見つけることを期待していることと、’ tではない素晴らしい戦術です。ほとんどのプレイヤーが見ることを期待してください。上記のホワイト’のプレイには、後者のいくつかがあります。

回答

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

  • ヌル仮説検定

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

ヌル仮説検定の適用は、非常に簡単です。チェスエンジンごとにXそして、現在のゲームの動きのサブシーケンスごとに、pが再生されたサブシーケンスを観察する確率を仮定計算します。 id = “e540d8dada”>

プレーヤーがではないではないという帰無仮説 / div>チェスエンジンXを使用して移動します。プレーヤーがランダムに移動する(または選択した数のトップ移動d_iからランダムに選択する)という単純な仮定を立ててから、長さkマッチングにより、チェスエンジンXは、(d_1)/(n_1) * (d_2)/(n_2) * (d_3)/(n_3) *...* (d_k)/(n_k)として計算されます。ここでd_iは、エンジンXによって評価された、ithターンで可能な(上)移動の数です。n_iは、ターンi(またはいくつかの合理的なサブセット)でプレイヤーが利用できる合計移動数です。

次に、単純に計算します

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

p*が特定のしきい値未満の場合、プレーヤーが存在するため、チェスとしてラベルを付けますサブシーケンスyとチェスエンジンXは、プレーヤーが not 希望の確率を下回る不正行為。

回答

ゲーム後の分析は、プレーヤーが不正行為をしていたかどうかを特定するための最良のチャンスだと思います。これは、T3 / T4分析と呼ばれるものを使用して行うことができます。

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

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

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

コメント

  • これは、次のようにチェスの知識を持っているインテリジェントな詐欺師によって対抗できます。それは単にあなたの立場を悪化させず、対戦相手の’の失態が彼/彼女の立場を危うくするのを待つだけです。 GMの力がない人に対して5〜15分の電撃戦をしている場合、遅かれ早かれこれは間違いなく起こります。さらに、たまに悪い動きをしたり、すべてのゲームに勝つことを主張したりしない場合は、’不正行為が検出されないことを確信しています。
  • @AndreaMori:いくつかの状況を回避できることに同意しますが、彼/彼女の評価が向上するにつれて、彼/彼女はますます検索することを余儀なくされ、最終的には検出されます。
  • ありがとうございます。利用可能なソフトウェアがあること。例を挙げていただけますか?

回答

サイトでユーザーにワンクリックでFENの位置を取得するか、 PGN ゲームの実行中では、これらを追跡することを検討する必要があります。

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

コピーしたときの移動と一緒に保存する必要があります。これにより、次のように比較できます。それは次の動きを指し、チェスエンジンの助けを借りて彼の強さが大幅に増加したかどうかを確認します。

しかし、彼が不正行為をしていたかどうかを判断するためにのみ使用することが非常に重要です。それは不公平です。人間の介入を使用しないスクリプトを使用するには、多くの誤検知が発生する可能性があります。たとえば、プレイ中に位置をコピーして、後でゲームを検索したり見つけたりすることなく位置を分析することがよくあります。 ePGNからの正確な移動。また、上書きする恐れがあるため、クリップボードに常に残しておくとは限らないので、メモ帳に移動します(つまり、コピーした直後にウィンドウを切り替えます)。

コメント

  • これは、サーバーの管理方法”ではなく、”の観点に対処しているようです。 “は私の対戦相手がだましているのですか?” 1つです(OPが彼にとって重要なケースについて何も言っていないわけではありません)。言及する価値があるかもしれません。それは、あなたが何を意味するのかを理解するのに少し時間がかかったので、プレイヤーの’のPOVから考えました。(良い答え…これが理解されたら^ _ ^ ‘)
  • @ajaxに感謝します。位置がコピーされた動きを保存して、前後の強さの違いを分析することは考えていません。
  • もちろん、詐欺師はその追跡を見つけて無効にします。または、独自のコピー機能を実行する場合は、’それほど難しくありません: codegolf.stackexchange.com/questions/89647/chess-conversion

回答

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

その記事は、リーガンの仕事、2014年に有効だった検出技術の状態、およびTDを支援するための標準、ツール、および技術を定義および公表するための委員会の設立におけるFIDEの仕事について非常に有益です。」 s不正行為を撲滅すること。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です