플레이어가 서로 실시간으로 체스를 둘 수있는 온라인 웹 사이트가 많이 있습니다. 대부분의 게임은 5-10 분 길이입니다. 체스 소프트웨어를 사용할 수있게되면 Fritz 또는 Rybka를 사용하여 그에게 움직임을 제안함으로써 이점을 얻을 수 있습니다.
예를 들어, 상대방의 모든 움직임을 입력하고 어떤 소프트웨어가 나를 위해 제안하는지 볼 수 있습니다. .
플레이어가 속임을 시사 할 수있는 몇 가지 기능에 대해 생각하고있었습니다.
- 화면 전환 횟수
- 속도 플레이 (쉽고 어려운 위치에서)
- 게임의 정확성
다른 아이디어가있는 사람이 있습니까?
PS : 그렇습니다. 당신이 생각하는 관점 (서버 또는 클라이언트 측)은 중요하지 않습니다.
댓글
- 오늘 훌륭한 질문과 관련 문제! 하지만 알고리즘을 사용하여 온라인 블리츠 부정 행위를 감지하거나 상대방을 플레이하는 동안 인간 플레이어처럼 감지한다는 의미인가요?
- 부정 행위 감지 전략은 부정 행위자가 ” 멍청한 “. 더 영리한 속임수 상태 (NoviceProgrammer ‘의 답변에 대한 내 의견 참조)를 채택하면 속임수를 추측조차 불가능하게 만들 것입니다.
- 나는 이것이 거의 불가능하다고 생각합니다. 문제 없음. 나는 chess.com에서 플레이합니다. 10 명 중 1 명이 실제로 속임수를 쓰게 될 것 같습니다. 상대방이 도움을 받았다고 생각되면 간단히 차단합니다.
답변
이것은 실제로 내 지식에 만족스러운 방식으로 해결되지 않은 매우 복잡한 질문입니다. 본질적으로 우리는 인간 플레이어와 컴퓨터를 구별하기 위해 일종의 역 튜링 테스트를 수행하는 알고리즘을 요청합니다.
첫째, 클라이언트 측 검사는 완전한 클라이언트 환경 제어입니다. 첫 번째 아이디어를 보겠습니다. 창 전환을 확인하는 것이 좋습니다. 안타깝게도 별도의 컴퓨터에서 체스 엔진을 실행하거나 내 엔진을 클라이언트와 통합하여 “창 전환”이 발생하지 않도록하거나 클라이언트를 창에서 0 개의 변경 사항을보고하도록 변경하는 등 사소하게 해결되었습니다. 실제로 클라이언트에서 실행되는 귀하의 코드인지 확인할 수있는 실제 방법이 없습니다.
남은 것은 물리적으로 엄격하게 제어되는 클라이언트 환경입니다. 온라인 게임에서는 일어나지 않을 것입니다.) 또는 서버 측 확인, 즉 플레이 된 실제 동작 (그리고 아마도 동작 사이의 시간)을보고 컴퓨터 나 인간적인 측면을 추론하려고합니다. .
서버 측 검사도 몇 가지 방법으로 나눌 수 있습니다. “역사상 과거 게임에서 불과 2 %에 불과한” “하향식”접근 방식을 시도 할 수 있습니다. 컴퓨터의 50 %가 그렇게했습니다. “”모든 위치 “에 대한 충분한 데이터가 있다면 이것은 실제로 그렇게하는 꽤 좋은 방법이 될 것입니다. 하지만 체스의 속도가 너무 커서 게임 중반을 지나고 나면 매우 큰 데이터 세트에서도 사용자의 위치와 일치하는 게임 수가 많지 않습니다.
그렇지 않다고 가정합니다. 방정식의 인간 측에 대한 신뢰할 수있는 통계를 가지고 있으면 여전히 여러 체스 엔진 (각각 다른 여러 시간 설정)에 위치를 표시하고 플레이어의 움직임이 컴퓨터의 움직임과 얼마나 가깝게 일치하는지 확인할 수 있습니다. 그 자체로도 많은 오탐으로 이어질 수 있지만, 동일한 체스 엔진과 시간 설정에 대해 반복 된 긍정은 플레이어가 부정 행위를하고있을 가능성을 점점 더 높입니다. 이를 더욱 향상시키기 위해 나는 체스 포지션을 분석하는 “상향식”접근 방식을 살펴볼 것입니다. 요컨대, 인간과 컴퓨터가 다르게 플레이하는 이유를 알아 내려고합니다. 예 : 인간은 일반적인 패턴을 인식하는 경향이 있습니다. “이상한”패턴을 가진 게임이나 예상치 못한 상황에서 인간은 매우 정확하게 플레이 할 가능성이 적습니다. 이 중 그 자체로는 특별히 끔찍한 것은 아니지만 많은 게임을 감안할 때 관리자에게 트렌드를 강조 할 수 있습니다.
목록에 몇 가지 세부 사항을 추가하기 위해 교수의 방법을 설명하겠습니다. 갑작스러운 변화를 감지하여 논문에서 표절을 감지합니다. 체스에서 이것은 정의하기 매우 어렵지만 플레이 스타일이나 플레이 강도가 갑자기 변경되면 부정 행위를 나타낼 수 있습니다. 특히, 나는 단지 “운동”하는 경향이 있고 플레이어에게 단점이없는 (너무 정확함) 특이하지 않은 공격적인 동작을 찾고 있습니다. 일반적으로 보드 가장자리에 기사를 배치하는 플레이어로부터 4+ 동작의 강제 메이트 , 등 (가능합니다 … 가능성이 없습니다). 이것이 정확히 어떻게 작동하는지는 책 전체 (또는 그 이상)를 차지할 수있는 것처럼 들립니다.
편집 : 속임수 및 탐지에 대한 기사가있었습니다. 최근에 최상위 체스 에서.
댓글
- 인간 대 컴퓨터는 게임의 오프닝 에서 오 탐지를 줄 수 있습니다. 최고의 연극 외우기
- @ ajax333221 전적으로 동의합니다. 어느 정도 비슷한 것이 최종 게임에 적용될 수 있으며, 인간은 사전 지식을 기반으로 거의 완벽하게 플레이 할 수 있습니다. 즉, 게임에서 부정 행위 가능성을 감지 할 수 있다면 ‘ 추가 정보와 정교한 분석을 통해 컴퓨터도 똑같이 할 수 있습니다. 4 개 이상의 동작에서 강제 메이트는 최근 온라인 게임 대 1050 등급의 플레이어의 실제 예였습니다. 아주 암시 적이지만 …
답변
블리츠에서 얼마나 많은 시간을 사용하는지 알 수 있습니다. 엔진을 사용하는 사람들은 매번 움직일 때마다 일정 시간을 사용합니다. 대부분의 일반 플레이어와 마찬가지로 중간 게임에서 크롤링 할 수 있습니다. 특히 개봉 할 때마다 컴퓨터 보드를 업데이트해야하기 때문에 개막을 빨리 할 수 없습니다. 이동하는 데 5 초, 이동하는 데 5 초가 걸리고 20 초가 걸린다면 아마 엔진을 사용하고있을 것입니다.
댓글
- 이것은 게시 당시에는 사실 이었지만, stockfish는 남은 시간을 입력으로 받아 시간을 소비 할 이동의 우선 순위를 지정할 수 있습니다.
답변
화면 전환 횟수와 플레이 속도는 무의미합니다.이를 사용하여 온라인 체스 게임 웹 사이트 주최자에게 불만을 표시하면 웃을 것입니다.
두 가지 방법이 있습니다. 누군가가 바람을 피우고 있는지 알 수 있습니다. 첫 번째는 “흡연 총”입니다.이 게임 섹션을 고려하십시오.-
[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은 심장을 멎게하는 움직임의 총입니다. Fritz는 그 위치에서 최고의 수로 평가하고 있으며, 다음 최고의 수인 Rd7보다 0.1 배 앞서 있습니다.
검은 색이 사임했을 때 게임이 끝날 때 흡연 건 # 2 게임은 1900 등급의 선수를 토너먼트 완전 승자. 그 자리에서 Kalinitschev에게 뭐라고 말하겠습니까?
대화는 다음과 같이 진행되었습니다.
Allwermann : “It”s mate in 8 “
Kalinitschev : “나는 그렇게 생각하지 않는다”
Allwermann : “”확인해보세요. 내가 옳다는 것을 알게 될 것입니다 “
물론 Allwermann이 옳았습니다. 최종 위치에서 8 번 짝을 찾을 수 있습니까? 실리콘 지원이 없으신가요?
당신은 담배 총을 가지고 주최자에게 가져 가세요. 그들은 무엇을할까요?
그러면 부정 행위가 진행되고 있음을 합리적으로 의심 할 여지없이 탐지하고 증명하는 두 번째 방법이 있습니다.
그들은 각각 최소 20 개의 게임을 수집해야합니다. 적어도 20 개의 비 데이터베이스 이동을 확인을 위해 엔진에 공급합니다. 기본적으로 그들이 찾고있는 것은 용의자가 엔진의 첫 번째 선택, 처음 2 개 선택 중 하나, 처음 3 개 선택 중 하나와 일치하는 비 데이터베이스 이동을 선택한 시간의 비율입니다. “증거”임계 값은-
상위 1 65 %
상위 2 80 %
상위 3 90 %
최근 예는 Borislav Ivanov의 성능에 대한 분노 .
그의 통계는 다음과 같습니다.
Zadar 19th : Houdini 1.5a x64 Hash : 256 Time : 30s Max Depth : 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 라운드에서 라이브 피드가 감소했습니다 (이로 인해 외부 도움이 허용 된 것으로 의심됩니다. 이 결과가 제거되면 새 통계는 다음과 같습니다.
Zad ar 19th : Houdini 1.5a x64 Hash : 256 Time : 30s Max Depth : 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에 대한 분석입니다.
{White : Borislav Ivanov}
{Top 1 Match : 13/27 (48.1 %)
{상위 2 개 경기 : 18/27 (66.7 %)
{상위 3 개 경기 : 20/27 (74.1 %)
{상위 4 개 경기 : 22/27 (81.5 %)
{Black : Borki Predojevic}
{Top 1 Match : 15/27 (55.6 %)
{Top 2 Match : 19 / 27 (70.4 %)
{상위 3 개 경기 : 20/27 (74.1 %)
{상위 4 개 경기 : 25/27 (92.6 %)
FIDE는 컴퓨터 부정 행위를 탐지하고 대처하는 방법을 조사하기 위해위원회를 설립했습니다. 가이드 라인은 여기 에 있습니다. 다음 섹션을 참고하십시오.
E. FIDE 인터넷 기반 게임 심사 도구
FIDE는 모든 공인 FIDE 공무원 (IO, IA, ACC 회원) 및 국가 연맹이 액세스 할 수있는 인터넷 기반 게임 심사 도구를 제공합니다. FIDE 전용 웹 페이지에서 호스팅되며 승인 된 당사자가 토너먼트에서 잠재적 인 이상 점을 식별하는 “빠른 테스트”를 위해 PGN 형식으로 게임을 업로드 할 수 있습니다. “심사”를 통해 이는 혐의를 거부하고 수동 전체 테스트 진행을 거부하는 동안 인용 될 수 있다는 점을 제외하고는 판단 값이없는 예비 테스트만을 제공한다는 것을 이해합니다.
댓글
- 훌륭한 분석입니다! T3 / T4 결과는 특히 그의 결과 확률이보고 될 때 설득력이 있습니다. BTW : 귀하의 게시물이 얼마 전에 작성되었다는 것을 알고 있지만 Kalinitschev와 Allwermann 간의 대화에 대한 인용문이 여전히 있습니까? 분명히 1900은 8에서 메이트를 안정적으로 찾을 수 없습니다. 특히 2500 명이 보지 못하는 경우 ‘ ‘ 그가 그 자체로 의혹을 불러 일으킬 수있을 때이 지점을 제기 한 것이 특히 현명하게 들리지 않습니다. ‘ s cheating.
- BTW : Qa7에 동의하지 않습니다! 심장 마비입니다. ‘ 단순히 1) Black ‘의 백 랭크가 약하고 2) 그는 ‘이 (가) 동료에게 취약합니다. 따라서 백 랭크에서 루크를 전환하면 잠재적으로 전술을 이길 수 있습니다. 이 경우 White는 이동을 사용하여 b-pawn을 공격하고 그의 여왕과 루크를 일곱 번째로 조정하여 루크를 방어합니다. White는 1 … Qxf7 2.Qxa8 + Qg8 3.Qxb7 이후에 적어도 폰을 얻습니다. 나는 모든 GM이 Qa7의 움직임을 보았어야한다고 생각하고, Kalinitschev가 그것을 놓친 것에 대해 ‘ 매우 놀랐습니다. Rxf6?!
- @jaxter div에서 정보를 가져옵니다. ‘가 보드에서 가장 강력한 움직임입니다. > en.chessbase.com/post/a-history-of-cheating-in-che-3- . 참고 ” Qa7에 동의하지 않습니다! 은 마음을 멈 춥니 다 “-기사를 읽으면 Vishy Anand가 동의하지 않는다는 것을 알 수 있습니다. :-). 기사에서-‘ 그럼 우리 영웅은 무엇을할까요? 31. Qa7? !! “Fritzy!” Anand는 비명을 질렀고, 그가 이것을보고 다음과 같은 움직임을 보았을 때 통제 할 수없는 웃음에 빠졌습니다 (나는 그의 환희를 촬영했고 그것을 ChessBase Magazine 69의 멀티미디어 보고서에 포함 시켰습니다). ‘
- 참조 해 주셔서 감사합니다. 나는 당신의 요점을 받아들입니다. 나는 확실히 기꺼이 움직일 수 있었지만 ‘ 부분적으로는 화이트가 블랙에서 살아남을 수 있다고 판단했기 때문입니다. ‘의 역습 모든 라인을 계산하지 않고 . 그렇게하려고하면 a) ‘ 나는 치명적인 실수를 할 것이라고 확신하고 b) ‘ heebie-jeebies와 다른 움직임을 선택하십시오. ‘ 정확히 … Qa7!처럼 이상한 동작을 자주하는 직감을 사용하기 때문입니다. 이는 ‘ 의심 할 여지없이 내 평점이 2000 미만인 이유에 영향을 미치는 요인이기도합니다 …
- 저기 ‘ sa 많은 플레이어가 찾을 수있을 것으로 기대되는 ‘ 톱 무브와 ‘ t의 뛰어난 전술의 차이 대부분의 플레이어가 볼 수 있습니다. 위의 White ‘ 플레이에는 후자가 몇 가지 있습니다.
Answer
어떻게 접근할지에 대한 답을 제공하기 위해 다음과 같은 간단한 아이디어를 사용합니다.
- Null Hypothesis Test
공개적으로 사용할 수있는 체스 엔진의 수가 제한되어 있다는 생각입니다. N
그들의. 물론이 가정은 사기꾼이 자신의 체스 엔진을 작성했을 가능성을 배제하지만 (또는 공개적으로 사용할 수없는 체스 엔진을 사용하고 있음) 캐주얼 사기꾼을 잡기 위해서는 충분히 강력한 가정이어야합니다.
Null Hypothesis Test 의 적용은 매우 간단합니다. 각 체스 엔진에 대해 X
및 현재 게임 이동의 각 하위 시퀀스에 대해 재생 된 하위 시퀀스를 관찰 할 확률 p
을 계산합니다. 가정 id = “e540d8dada”>
null 가설 플레이어가 아닌 체스 엔진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*
가 특정 임계 값보다 작 으면 플레이어를 사기꾼으로 분류합니다. 플레이어가 및 체스 엔진 X
원하는 확률 이하로 부정 행위를하지 않습니다.
답변
게임 후 분석을 통해 플레이어가 부정 행위를했는지 확인할 수있는 가장 좋은 기회를 얻을 수 있다고 생각합니다. 이것은 T3 / T4 분석이라고하는 것을 사용하여 수행 할 수 있습니다.
이것은 기본적으로 플레이어가 엔진에서 제안하는 상위 3 개 또는 상위 4 개 동작 중 하나를 선택하는 빈도를 측정합니다. 이렇게하면 사용중인 대상 엔진을 식별 할 필요가 거의 없습니다 (선호 순서가 다르더라도 일반적으로 상위 4/5 이동에 동의하므로).
A를 실행할 수있는 소프트웨어가 있습니다. 엔진의 상위 n 개 움직임에 대한 사용자의 게임 세트. 편집 :
이러한 분석을 수행하는 데 사용할 수있는 ChessAnalyse 를 알고 있습니다. 30 일 평가판을 사용해 볼 수 있습니다.
댓글
- 다음과 같은 체스 지식이있는 지능적인 사기꾼이이 문제에 대응할 수 있습니다. 단순히 위치를 악화시키지 않고 상대방의 위치를 훼손 할 수있는 ‘의 실수를 기다립니다. 만약 당신이 GM의 힘이없는 사람을 상대로 5 ~ 15 분 블리츠를한다면 조만간 확실히 일어날 것입니다. 또한 가끔씩 나쁜 행동을 취하거나 모든 게임에서 승리를 고집하지 않는다면 ‘ 당신의 부정 행위가 감지되지 않을 것이라고 확신합니다.
- @AndreaMori : 몇 가지 상황을 피할 수 있다는 데 동의합니다.하지만 등급이 올라감에 따라 그는 점점 더 찾아보아야하며 결국 발각 될 것입니다.
- 감사합니다. 사용 가능한 소프트웨어가 있습니다. 예를 들어 줄 수 있습니까?
답변
사이트에서 사용자에게 원 클릭을 제공하면 FEN 위치를 얻거나 PGN 게임이 실행되는 동안 이를 추적하는 것을 고려해야합니다.
일부 사기꾼은 처음부터 속임수를 쓰지만 다른 사기꾼은 문제가있을 때만 속임수를 시작하는 것을 선호합니다. 위치를 수동으로 설정하는 데 시간이 많이 걸리므로 복사 FEN / PGN 기능을 사용하십시오.
복사 할 때 이동과 함께 어떻게 든 저장해야합니다. 다음 동작을 가리키고 체스 엔진의 도움으로 그의 힘이 크게 증가했는지 확인하십시오.
그러나 그가 속임수를 쓰는지 여부를 결정하는 데 도움을주기 위해서만 사용하는 것이 매우 중요합니다. 사람의 개입을 사용하지 않는 스크립트를 사용하려면 많은 오 탐지가있을 수 있습니다. 예를 들어, 게임을 검색하거나 검색 할 필요없이 나중에 위치를 분석하기 위해 플레이하는 동안 위치를 복사하는 것을 좋아합니다. e PGN에서 정확한 이동. 그리고 덮어 쓸까 봐 두렵기 때문에 항상 클립 보드에 두지 않고 메모장으로 옮깁니다 (복사 직후 창을 전환한다는 의미입니다).
댓글
- 이것은 ” 서버 관리 방법 ” 관점이 아닌 ” 내 상대가 속이고 있습니까? ” 하나 (OP가 그에게 중요한 사건에 대해 아무 말도하지 않았 음). 언급 할 가치가있을 수 있습니다. 플레이어의 ‘ 시점에서 생각하면서 의미를 이해하는 데 약간의 시간이 걸렸습니다.(좋은 대답… 일단 이해되면 ^ _ ^ ‘)
- @ajax에게 감사드립니다. 나는 위치가 복사 된 움직임을 저장하고 이전과 이후의 힘의 차이를 분석하는 것에 대해 생각하지 않았습니다.
- 물론 사기꾼은 그 추적을 찾아서 비활성화 할 것입니다. 또는 자체 복사 기능을 수행하면 ‘ 그렇게 어렵지 않습니다. codegolf.stackexchange.com/questions/89647/chess-conversion
답변
FWIW, 아무도 Ken Regan 박사의 이름을 언급하지 않았습니다. Lipton의 블로그에 대한 포인터는 그의 작업을 논의하는 Chess Life 의 다른 기사 를 설명합니다.
이 기사는 Regan의 작업, 2014 년에 유효한 탐지 기술 상태 및 TD를 지원하는 표준, 도구 및 기술을 정의하고 발표하는위원회를 구성하는 FIDE의 작업에 대해 매우 유익합니다. ” 속임수를 제거합니다.