플레이어가 온라인 체스에서 부정 행위를하고 있다고 어떻게 판단하십니까?


40

플레이어들이 서로 실시간으로 체스를 할 수있는 많은 온라인 웹 사이트가 있습니다. 대부분의 게임은 5-10 분 길이입니다. 체스 소프트웨어를 사용할 수있게되면 프리츠 (Fritz) 나 립카 (Rybka)를 사용하여 자신의 움직임을 제안 할 수 있습니다.

예를 들어, 나는 상대방의 모든 움직임을 입력하고 소프트웨어가 나에게 어떤 제안을하는지 볼 수 있습니다.

플레이어가 바람을 피우고 있음을 암시 할 수있는 몇 가지 기능에 대해 생각하고있었습니다.

  • 그가 화면을 전환 한 횟수
  • 플레이 속도 (쉽고 어려운 위치에서)
  • 게임의 정확성

다른 아이디어가 있습니까?

추신 : 당신이 생각하는 관점 (서버 또는 클라이언트 측)은 중요하지 않습니다.


오늘 훌륭한 질문과 관련 문제! 그러나 알고리즘을 사용하여 온라인 블리츠 부정 행위를 감지하거나 상대방을 플레이하는 동안 인간 플레이어로 감지하는 것을 의미합니까?
Rauan Sagit

부정 행위 탐지 전략은 부정 행위자가 "멍청한"경우에만 작동합니다. 더 영리한 속임수 상태를 채택하면 (NoviceProgrammer의 답변에 대한 나의 의견 참조) 속임수를 추측하기가 거의 불가능 해집니다.
Andrea Mori

나는 이것이 거의 문제가 아니라고 생각합니다. 저는 chess.com에서 게임을합니다. 아마 10 명 중 1 명이 속임수 일 것입니다. 상대방이 도움을 받았다고 생각되면 간단히 차단합니다.
랜디 마인더

답변:


33

이것은 실제로 매우 복잡한 질문이며 만족스럽게 해결 된 질문이 아닙니다. 본질적으로 우리는 사람과 컴퓨터를 구별하기 위해 일종의 역 튜링 테스트를 수행하는 알고리즘을 요구하고 있습니다.

첫째, 클라이언트 환경 을 완전히 제어 하지 않으면 클라이언트 측 검사는 항상 약점을 갖습니다 . 첫 번째 아이디어를 생각해 봅시다-창 사이의 전환을 확인하는 것이 좋습니다. 불행히도 별도의 컴퓨터에서 체스 엔진을 실행하거나 "창 전환"이 발생하지 않도록 클라이언트와 엔진을 통합하거나 창에서 0 개의 변경 사항을보고하도록 클라이언트를 변경하면 사소한 문제가 발생합니다. 실제 방법은 그것의 있는지 확인하기 위해 당신 정말, 클라이언트에서 실행되는 코드입니다.

우리가 남긴 것은 물리적으로 엄격하게 통제되는 클라이언트 환경 (온라인 게임에서는 발생하지 않을 것) 또는 서버 측 확인, 즉 실제 이동 한 동작 (그리고 아마도 이동 사이의 시간, 당신이 말한대로), 컴퓨터 또는 인간의 측면을 추론하려고합니다.

서버 측 검사는 몇 가지 방법으로 나눌 수도 있습니다. "역사상"접근 방식을 시도해 볼 수 있습니다. "역사상 과거 게임에서 2 %만이 움직 였지만 컴퓨터의 50 %는 그랬습니다." 만약 우리가 "어떤 주어진 위치"에 대한 충분한 데이터를 가지고 있다면 이것은 실제로 그것을하기에 아주 좋은 방법 일 것입니다. 그러나 체스의 검색 공간은 너무 커서 매우 큰 데이터 세트조차도 게임 중반을 지나면 자신의 위치와 일치하는 게임 수가 많지 않습니다.

우리가 방정식의 인간 측면에 대한 신뢰할만한 통계가 없다고 가정하면, 여전히 여러 체스 엔진에 위치를 제시 할 수 있으며 (각각 다른 시간 설정이 있음) 플레이어의 움직임이 얼마나 밀접하게 일치하는지 볼 수 있습니다 컴퓨터의 것. 그 자체만으로도 많은 오탐 (false positive)이 발생할 수 있지만 동일한 체스 엔진에 대해 반복적으로 긍정적 인 반응을 보이며 시간 설정으로 인해 플레이어가 바람을 피우고있을 가능성이 높아졌습니다. 이를 더욱 강화하기 위해, 아마도 체스 위치를 분석하는 "하향식"접근법을 살펴볼 것입니다. 한마디로 인간과 컴퓨터가 다른 방식으로 플레이하는 이유를 알아 내려고 노력합니다. 예를 들어 인간은 일반적인 패턴을 인식하는 경향이 있습니다. "홀수"패턴을 가진 게임에서 또는 드물게 상황에서, 인간은 매우 정확하게 게임을 할 수 없을 것입니다. 이것들 중 아무것도 아닌,

목록에 몇 가지 세부 사항을 추가하기 위해 급격한 변화를 감지하여 교수가 논문에서 표절을 감지하는 방법에 대해 설명하겠습니다. 체스에서는 이것이 정의하기가 매우 어렵지만, 플레이 스타일이나 플레이 강도의 갑작스런 변화는 부정 행위를 나타낼 수 있습니다. 특히, 나는 단지 "운동"하는 경향이 있고, 선수에게 단점이없는 (특이한) 특징적이지 않은 공격적인 움직임을 찾고자합니다. 일반적으로 기사를 보드의 가장자리에 놓는 플레이어의 4 + 이동으로 강제 동료가 가능합니다 (가능하지는 않습니다). 그러나 이것이 정확히 어떻게 작동하는지는 책 전체를 차지할 수있는 것처럼 들립니다.

편집 : 최근 최상위 체스의 부정 행위 및 탐지에 대한 기사가있었습니다 .


3
컴퓨터 대 인간이에 잘못된 반응을 줄 수있는 개방 게임, 그것은 최선의 플레이를 기억하는 것은 매우 간단합니다
ajax333221

전적으로 동의합니다. 어느 정도까지는, 유사한 지식이 최종 게임에 적용될 수 있으며, 여기서 인간은 단지 사전 지식에 기초하여 완벽하게 가까이서 게임을 할 수 있습니다. 즉, 게임에서 부정 행위를 감지 할 수 있으면 추가 정보와 정교한 분석을 통해 컴퓨터가 동일한 작업을 수행 할 수 있다고 확신합니다. 4 개 + 이동의 강제 동료는 1,050 평가 플레이어 대 최근 온라인 게임에서 실제 예를했다 - 매우 암시, 적어도 말을 ...
다니엘 B

20

블리츠에서는 그들이 얼마나 많은 시간을 사용하고 있는지 알 수 있습니다. 엔진을 사용하는 사람들은 대부분의 일반 플레이어와 마찬가지로 미들 게임의 시작을 늦추고 크롤링 속도를 늦추지 않고 모든 움직임에 일관된 시간을 사용합니다. 특히 그들은 오프닝을 할 때마다 컴퓨터 보드를 업데이트해야하기 때문에 오프닝을 빠르게 플레이 할 수 없습니다. 20 초 이동하는데 5 초가 걸리고 20 초 이동하면 엔진을 사용하고있을 것입니다.


게시 시점에 이것이 사실인지 확신 할 수 없지만
저장 어는

15

화면 스위치 수와 재생 속도는 의미가 없습니다. 당신이 온라인 체스 게임 웹 사이트의 조직자에게 불평하기 위해 이것들을 사용한다면 그들은 당신을 비웃을 것입니다.

누군가 부정 행위를하는지 확인하는 방법에는 두 가지가 있습니다. 첫 번째는 "흡연 총"입니다. 이 게임 섹션을 고려하십시오-

Allwermann, Clemens (1900)-Kalinitschev, Sergey (2505) 보블 링겐 (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 또는 (나 같은 겁쟁이 ;-) Rxf6처럼 움직입니다. Qa7은 흡연 총의 움직임을 막는 심장 마비입니다. 프리츠 (Fritz)는 그 포지션에서 가장 좋은 움직임으로, 다음으로 가장 좋은 움직임 (Rd7)보다 0.1 % 앞서고 있습니다.

블랙이 사임했을 때 게임 종료시 흡연 총 # 2 게임은 1900 등급 플레이어를 토너먼트 아웃 라이트 우승자로 남겨 두었습니다. 그 위치에서 Kalinitschev에게 무엇을 말 하시겠습니까?

이것이 대화가 진행된 방식입니다.

Allwermann : "8 명의 배우자"

Kalinitschev : "그렇지 않다"

Allwermann : ""알아 봐라, 내가 옳다는 것을 알 것이다 "

물론 Allwermann이 옳았습니다. 최종 위치에서 8 번의 배우자를 찾을 수 있습니까? 실리콘 지원이 없습니까?

그래서, 당신은 당신의 흡연 총을 가지고 주최자에게 가져갑니다. 그들은 무엇을 할 것인가?

그렇다면 부정 행위가 진행되고 있다는 합리적인 의심을 넘어서 감지하고 증명하는 두 번째 방법이 있습니다.

그들은 적어도 20 개의 비 데이터베이스 이동으로 각각 20 개 이상의 게임을 수집하고이를 확인하기 위해 엔진에 공급해야합니다. 그들이 찾는 것은 기본적으로 용의자가 엔진의 첫 번째 픽, 첫 2 개의 픽 중 하나, 처음 3 개의 픽 중 하나와 일치하는 비 데이터베이스 이동을 선택한 시간의 백분율입니다. "증거"임계 값은-

상위 1 65 %

상위 2 80 %

상위 3 90 %

최근의 예는 Borislav Ivanov의 성능에 대한 열망 입니다.

그의 통계는 다음과 같습니다.

자 다르 19 일 : 후디니 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으로졌습니다. 이 결과가 제거되면 새 통계는 다음과 같습니다.

자 다르 19 일 : 후디니 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에 대한 분석입니다.

{화이트 : Borislav Ivanov}

{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 전용 웹 페이지에서 호스팅되며 권한있는 당사자가 토너먼트에서 잠재적 인 이상 치를 식별하는 "빠른 테스트"를 위해 PGN 형식으로 게임을 업로드 할 수 있습니다. "스크리닝 (screening)"에 의해, 이것은 혐의를 기각하고 수동 풀 테스트를 진행하는 것을 거부하는 동안 인용 될 수 있다는 점을 제외하고는 판단 값이없는 예비 테스트만을 제공하는 것으로 이해된다.


1
훌륭한 분석! T3 / T4 결과는 특히 그의 결과 확률이보고 될 때 설득력이 있습니다. BTW : 귀하의 게시물이 얼마 전에 작성되었음을 알고 있지만 Kalinitschev와 Allwermann 간의 대화에 대한 인용을 여전히 가지고 있습니까? 분명히 1900은 8, 특히 2500이 보이지 않을 때 친구를 안정적으로 찾지 못할 것입니다. 그에게이 점을 제기 할 때 수는 특히 스마트 소리를하지 않습니다 그 자체로 자신의 부정 행위가 의심 원인이됩니다.
jaxter

1
BTW : Qa7에 동의하지 않습니다! 심장 마비입니다. 그것은 단지 두 가지 사실을 악용하는 것입니다. 1) 블랙 백 랭크가 약하고 2) 그에 대한 배우자에 취약합니다. 따라서, 랭크에서 루크의 전환은 잠재적으로 이길 수있는 전술을 허용합니다. 이 경우 White는 움직임을 사용하여 b-pawn을 공격하고 일곱 번째 여왕과 루크를 조율하여 루크를 방어합니다. 백색은 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!"는 Anand를 비명을 질렀고 다음과 같은 움직임을 보았을 때 제어 할 수없는 웃음을 터뜨 렸습니다. '
Brian Towers

참조 주셔서 감사합니다. 나는 당신의 포인트를 가져 가라. 나는 분명히 기꺼이 움직임을 원했지만, 이는 White가 모든 라인을 계산하지 않고 Black의 역습에서 살아남을 수 있다고 판단했기 때문 이다 . 내가 그렇게하려고하면 a) 치명적인 실수를 저지를 것이라고 확신합니다. b) 나는 heebie-jeebies를 얻고 다른 움직임을 선택할 것입니다. 정확히 내가 ... Qa7!과 같은 이상한 행동을하는 직감을 사용하기 때문입니다. 또한 내 등급이 2000 미만인 이유에 의심 할 여지가없는 요인입니다.
jaxter

상단 이동은 많은 플레이어가 찾을 것으로 예상되는 사운드 이동과 대부분의 플레이어가 볼 것으로 예상하지 않는 훌륭한 전술 사이에는 차이가 있습니다. 위의 화이트 플레이에는 후자의 몇 가지 플레이가 있습니다.
CashCow

9

내가 어떻게 접근 할 것인지에 대한 대답을하기 위해 간단한 아이디어를 사용합니다.

  • 귀무 가설 검정

아이디어는 공개적으로 사용 가능한 체스 엔진이 제한되어 있다는 N것입니다. 물론 이러한 가정은 사기꾼이 자체 체스 엔진을 작성했을 가능성이 있거나 (또는 ​​공개적으로 사용할 수없는 일부 체스 엔진을 사용하고있는) 가능성을 배제하지만, 캐주얼 사기꾼을 잡기 위해서는 충분히 강력한 가정이어야합니다.

의 응용 프로그램 귀무 가설 테스트는 각 체스 엔진 : 매우 간단한 것 X및 현재 게임의 움직임의 각 서브의 확률 계산 p연주 서브를 관찰 가정 귀무 가설을 플레이어가되어 있지 체스 엔진을 사용하여 X움직임을 만들기 위해를 그들을 위해. 본래의 가정 (위쪽으로 이동하는 선택 번호 나 무작위로 선택한다면 임의의 플레이어가 이동하는 것이 이루어질 수있다 d_i), 그 다음 길이의 소정의 시퀀스에 대한 확률 k정합 움직임이 체스 엔진 X할 것 같이 계산 될 (d_1)/(n_1) * (d_2)/(n_2) * (d_3)/(n_3) *...* (d_k)/(n_k)d_i의 개수 에서 가능한 (위) 이동ith엔진에 의해 평가로서, 회전 Xn_i턴에서 플레이어에게 가능한 총 이동할 수있다 i(또는 적절한 서브 세트).

그런 다음 간단히 계산

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

경우 p*서브 순서가 존재하기 때문에 사기꾼 같은 플레이어 특정 임계 값 레이블보다 작은 y체스 엔진 X플레이어가 될 확률 제공 하지 원하는 probabiity 아래 부정 행위를.


8

게임 후 분석은 플레이어가 부정 행위를했는지 확인하는 가장 좋은 기회라고 생각합니다. 이것은 T3 / T4 분석이라고하는 것을 사용하여 수행 할 수 있습니다.

이것은 기본적으로 플레이어가 엔진이 제안한 상위 3 또는 상위 4 이동 중 하나를 선택하는 빈도를 측정합니다. 이렇게하면 사용중인 대상 엔진을 식별 할 필요가 없습니다 (기본 설정 순서가 다른 경우에도 상위 4/5 이동에 일반적으로 동의하므로).

엔진의 상단 n 이동에 대해 사용자 게임 세트를 실행할 소프트웨어가 있습니다. 편집하다:

이러한 분석을 수행하는 데 사용할 수있는 ChessAnalyse 를 알고 있습니다. 30 일 평가판을 사용해 볼 수 있습니다.


2
이것은 다음과 같은 체스 지식이있는 지능적인 사기꾼에 의해 반박 될 수 있습니다. 당신이 GM 힘이 아닌 누군가에 대해 5-15 분의 공세를한다면, 이것은 조만간 일어날 것입니다. 또한 가끔씩 나쁜 움직임에 빠지거나 모든 게임에서 이길 것을 고집하지 않으면 부정 행위가 감지되지 않을 것입니다.
Andrea Mori

@AndreaMori : 나는 당신이 몇 가지 상황을 피할 수 있다는 데 동의하지만, 그의 등급이 향상됨에 따라 그는 점점 더 많이 찾아야하며 결국 발견 될 것입니다.
sidprasher

사용 가능한 소프트웨어가 있다고 언급했습니다. 예를 들어 줄 수 있습니까?
살바도르 달리

6

게임이 실행되는 동안 사이트에서 사용자에게 한 번의 클릭으로 FEN 위치 또는 PGN 받으면 이를 추적하는 것이 좋습니다.

일부 사기꾼은 처음부터 속임수이지만 다른 사기꾼은 문제가있을 때만 속임수를 시작하는 것을 선호하며 수동으로 위치를 설정하는 데 시간이 걸리기 때문에 FEN / PGN 복사 기능을 사용합니다.

그가 그것을 복사했을 때의 움직임과 함께 그것을 어떻게 저장해야하는지, 이런 식으로 당신은 그 시점에서 다음 움직임으로 비교하고 체스 엔진의 도움으로 그의 힘이 크게 증가했는지 확인할 수 있습니다.

그러나 그가 부정 행위인지 여부를 결정하는 데 도움을주기 위해서만 사용하는 것이 매우 중요합니다. 사람의 개입이없는 스크립트를 사용하는 것은 불공평합니다. 게임을 검색하거나 PGN에서 정확한 움직임을 찾을 필요없이 나중에 분석하기 위해 게임을하고 있습니다. 그리고 클립 보드에 덮어 쓰는 것에 대한 두려움 때문에 클립 보드에 항상 두지는 않습니다. 그래서 메모장으로 옮깁니다.


2
이것은 "상대방이 바람을 피우고 있습니까?"보다는 "서버를 관리하는 방법"의 관점을 다루는 것 같습니다. 하나는 (OP가 어떤 사건에 대해 그에게 중요하다고 말한 것이 아님). 플레이어의 POV에서 생각한 것을 이해하는 데 약간의 시간이 걸렸으므로 언급 할 가치가 있습니다. (좋은 답변… 일단 이것이 이해되면 ^ _ ^ ')
Nikana Reklawyks

1
감사합니다 @ajax. 나는 위치가 복사 된 움직임을 저장하는 것에 대해 생각하지 않았고 전후 강도의 차이를 분석했습니다.
살바도르 달리

물론 사기꾼은 해당 추적을 찾아서 비활성화합니다. :하거나 어려운 일이 아니다, 자신의 복사 기능을 codegolf.stackexchange.com/questions/89647/chess-conversion
사지 (Sarge) 러시아 식 수프의 일종

3

FWIW, Dr. Ken Regan은 아무도 언급하지 않았지만 Lipton의 블로그에 대한 포인터 Chess Life의 다른 기사 를 설명합니다.

이 기사는 Regan의 작업, 2014 년에 시행 된 탐지 기술의 상태 및 TD가 부정 행위를 해결할 때 도움이되는 표준, 도구 및 기술을 정의하고 공표하는위원회를 설립하는 FIDE의 작업에 대해 매우 유익합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.