Bagaimana Anda menentukan bahwa pemain itu curang dalam catur online?

40

Ada banyak situs web online, di mana pemain dapat bermain catur secara real time satu sama lain. Sebagian besar permainan berlangsung 5-10 menit. Dengan ketersediaan perangkat lunak catur, seseorang dapat mengambil keuntungan dengan menggunakan Fritz atau Rybka untuk menyarankan langkah baginya.

Misalnya, saya bisa memasukkan setiap gerakan lawan saya dan melihat perangkat lunak apa yang akan menyarankan untuk saya.

Saya sedang memikirkan beberapa fitur yang dapat menunjukkan bahwa pemain itu curang:

  • berapa kali ia mengganti layar
  • kecepatan bermain (dalam posisi yang mudah dan sangat sulit)
  • akurasi permainan

Apakah ada yang punya ide lain?

PS: Tidak masalah bagi saya, dari perspektif mana Anda berpikir (server atau sisi klien).

Salvador Dali
sumber
Pertanyaan luar biasa dan masalah yang relevan hari ini! Tapi apakah maksud Anda mendeteksi kecurangan blitz online menggunakan algoritme atau mendeteksi sebagai pemain manusia saat bermain lawan?
Rauan Sagit
Strategi mendeteksi kecurangan hanya berfungsi ketika penipu itu "bodoh". Mengadopsi undang-undang kecurangan yang lebih cerdik (lihat komentar saya untuk jawaban NoviceProgrammer) akan membuat kecurangan itu hampir mustahil untuk ditebak.
Andrea Mori
Saya pikir ini bukan masalah. Saya bermain di chess.com. Saya kira mungkin 1 orang dari 10 benar-benar curang. Dan jika saya curiga lawan saya mendapat bantuan, saya cukup memblokirnya.
Randy Minder

Jawaban:

33

Ini sebenarnya adalah pertanyaan yang sangat kompleks, dan bukan yang telah diselesaikan dengan cara yang memuaskan, setahu saya. Pada dasarnya, kami meminta algoritma untuk melakukan semacam tes Turing terbalik, untuk membedakan antara pemain manusia dan komputer.

Pertama, cek sisi klien akan selalu memiliki kelemahan, kecuali Anda berada dalam lengkap kontrol dari lingkungan klien. Mari kita ambil ide pertama - memeriksa pergantian antar windows, kedengarannya bagus. Sayangnya, itu sepele bekerja dengan menjalankan mesin catur pada komputer terpisah, atau mengintegrasikan mesin saya dengan klien sehingga tidak ada "pergantian jendela" yang terjadi, atau mengubah klien untuk melaporkan 0 perubahan di jendela, atau ... Tidak ada cara nyata untuk memastikan bahwa itu kode Anda berjalan pada klien, sungguh.

Yang tersisa adalah lingkungan klien yang dikontrol secara fisik (yang tidak akan terjadi untuk game online), atau pengecekan sisi server, yaitu melihat gerakan aktual yang dimainkan (dan mungkin waktu di antara gerakan tersebut, seperti yang Anda katakan), dan mencoba menyimpulkan aspek komputer atau manusia.

Pemeriksaan sisi server juga dapat membagi beberapa cara. Anda mungkin bisa mencoba pendekatan "top-down", yang akan menjadi sesuatu di sepanjang garis "dari game masa lalu dalam sejarah, hanya 2% dari manusia yang membuat langkah itu, sementara 50% dari komputer membuatnya". Ini sebenarnya akan menjadi cara yang cukup baik untuk melakukannya, jika kami memiliki cukup data untuk "posisi apa pun yang diberikan". Ruang pencarian catur sangat besar, namun set data yang sangat besar sekalipun tidak akan memiliki banyak game yang cocok dengan posisi Anda, setelah Anda melewati pertengahan permainan awal.

Dengan asumsi bahwa kami tidak memiliki statistik yang dapat diandalkan di sisi manusia dari persamaan, Anda masih bisa mempresentasikan posisi ke sejumlah mesin catur (dengan masing-masing pengaturan waktu yang berbeda), dan melihat seberapa dekat pergerakan para pemain dengan pertandingan. bahwa dari komputer. Dengan sendirinya, ini juga akan menyebabkan banyak kesalahan positif, namun, pengulangan positif untuk mesin catur yang sama dan pengaturan waktu akan membuatnya semakin mungkin bahwa pemain itu curang. Untuk lebih meningkatkan ini, saya mungkin akan melihat pendekatan "bottom-up" untuk menganalisis posisi catur; singkatnya, mencoba mencari tahu mengapa manusia dan komputer bermain secara berbeda. Misalnya manusia cenderung mengenali pola umum. Dalam gim dengan pola "ganjil", atau situasi yang tidak biasa, manusia cenderung tidak bisa bermain dengan sangat akurat. Tidak satupun,

Untuk menambahkan beberapa spesifik ke daftar Anda, saya akan mengikuti garis bagaimana profesor mendeteksi plagarisme di koran - dengan mendeteksi perubahan mendadak. Dalam catur, ini sangat sulit untuk didefinisikan, tetapi perubahan mendadak dalam gaya bermain atau kekuatan bermain mungkin menunjukkan kecurangan. Secara khusus, saya akan mencari gerakan agresif yang biasanya tidak biasanya "berolahraga", dan tidak memiliki kelemahan untuk pemain (terlalu akurat). Pasangan paksa dalam 4+ gerakan dari pemain yang biasanya menempatkan ksatria di tepi papan, dll (mungkin saja ... tidak mungkin). Namun, bagaimana tepatnya ini bisa bekerja terdengar seperti mengambil seluruh buku (atau lebih).

EDIT: Ada artikel tentang kecurangan dan deteksi di catur tingkat atas baru- baru ini.

Daniel B
sumber
3
manusia vs komputer dapat memberikan positif palsu dalam pembukaan permainan, sangat mudah untuk menghafal permainan terbaik
ajax333221
@ ajax333221 Saya sepenuhnya setuju. Pada tingkat tertentu, sesuatu yang serupa mungkin berlaku untuk endgame, di mana manusia mungkin memainkannya cukup dekat, hanya berdasarkan pada pengetahuan sebelumnya. Yang mengatakan, jika saya dapat mendeteksi kemungkinan kecurangan dalam permainan, saya yakin dengan informasi tambahan dan analisis canggih, komputer dapat melakukan hal yang sama. Pasangan yang dipaksa dalam 4+ gerakan adalah contoh nyata dari game online terbaru vs 1050 pemain dinilai - sangat sugestif, untuk sedikitnya ...
Daniel B
20

Dalam blitz, Anda dapat mengetahui berapa banyak waktu yang mereka gunakan. Orang-orang yang menggunakan mesin menggunakan jumlah waktu yang konsisten untuk setiap gerakan, alih-alih melakukan blitz melalui pembukaan dan memperlambat hingga merangkak di midgame seperti kebanyakan pemain normal. Secara khusus, mereka tidak dapat memainkan pembukaan cepat, karena mereka harus memperbarui papan komputer mereka setelah setiap gerakan pembukaan. Jika mereka mengambil lima detik bergerak dua dan lima detik bergerak dua puluh, mereka mungkin menggunakan mesin.

Andrew Latham
sumber
Saya tidak yakin apakah ini benar pada saat posting tetapi stockfish dapat menerima waktu yang tersisa sebagai masukan untuk memprioritaskan apa yang harus dilakukan untuk menghabiskan waktu.
OganM
15

Jumlah sakelar layar dan kecepatan putar tidak ada artinya. Jika Anda menggunakan ini untuk mengeluh kepada penyelenggara situs bermain catur online, mereka akan menertawakan Anda.

Ada dua cara untuk mengetahui apakah seseorang curang. Yang pertama adalah "pistol merokok". Pertimbangkan bagian permainan ini -

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

Pertanyaannya adalah apa yang akan Anda mainkan di posisi itu? Situasinya adalah bahwa kemenangan dalam hal ini, putaran terakhir kompetisi, akan memenangkan Anda turnamen di depan serangkaian grandmaster. Tidak buruk hanya untuk tahun 1900. Saya menduga sebagian besar dari kita akan memainkan sesuatu yang cukup solid yang membuat kemenangan. Bergerak seperti Rxb7 atau Rd7 atau (untuk pengecut seperti saya ;-) Rxf6. Qa7 adalah penghenti jantung dari gerakan, senjata merokok. Fritz menilai sebagai langkah terbaik di posisi, 0,1 kekalahan di depan langkah terbaik berikutnya, Rd7.

Permainan Smoking gun # 2 pada akhir pertandingan ketika hitam mengundurkan diri meninggalkan pemain berperingkat 1900 sebagai turnamen pemenang langsung. Apa yang akan Anda katakan kepada Kalinitschev dalam posisi itu?

Beginilah percakapan berlangsung:

Allwermann: "Ini pasangan dalam 8"

Kalinitschev: "Saya tidak berpikir begitu"

Allwermann: "" Coba lihat, Anda akan menemukan bahwa saya benar "

Allwermann benar, tentu saja. Dapatkah Anda menemukan pasangan dalam 8 di posisi terakhir? Tanpa bantuan silikon?

Jadi, Anda memiliki senjata merokok dan membawanya ke panitia. Apa yang akan mereka lakukan

Nah, kemudian datang cara kedua untuk mendeteksi dan membuktikan tanpa keraguan bahwa kecurangan sedang terjadi.

Mereka harus mengumpulkan setidaknya 20 game masing-masing dengan setidaknya 20 gerakan non-database dan memasukkannya ke dalam mesin untuk diperiksa. Pada dasarnya yang mereka cari adalah persentase waktu tersangka memilih langkah non-database yang cocok dengan pick pertama engine, salah satu dari 2 pick pertama, salah satu dari 3 pick pertama. Ambang "bukti" adalah -

Top 1 65%

2 80% Teratas

3 90% Teratas

Contoh baru-baru ini adalah kehebohan atas kinerja Borislav Ivanov .

Berikut ini statistiknya -

Zadar 19: Houdini 1.5a x64 Hash: 256 Waktu: 30s Max Kedalaman: 20ply {Borislav Ivanov (Game: 9)}

{Pertandingan 1 Teratas: 210/314 (66,9%) Penentang: 150/313 (47,9%)

{Pertandingan 2 Teratas: 270/314 (86,0%) Penentang: 207/313 (66,1%)

{Pertandingan 3 Teratas: 285/314 (90,8%) Penentang: 238/313 (76,0%)

{Pertandingan 4 Teratas: 293/314 (93,3%) Penentang: 267/313 (85,3%)

Pada ronde ke-8 pakan hidup turun (diduga bahwa ini memungkinkan bantuan luarnya bergerak) dan dia kalah dari GM Predojevic. Jika hasil ini dihapus maka statistik baru adalah:

Zadar 19: Houdini 1.5a x64 Hash: 256 Waktu: 30-an Kedalaman Maks: 20ply {Borislav Ivanov (Game:)}

{Pertandingan 1 Teratas: 197/287 (68,6%) Penentang: 135/286 (47,2%)

{Pertandingan 2 Teratas: 252/287 (87,8%) Penentang: 188/286 (65,7%)

{Pertandingan 3 Teratas: 265/287 (92,3%) Penentang: 218/286 (76,2%)

{Pertandingan 4 Teratas: 272/287 (94,8%) Penentang: 242/286 (84,6%)

Seperti yang Anda lihat, kedua set statistik akan membuatnya terlempar dari server catur. Untuk perbandingan di sini adalah analisis untuk game 8 ketika umpannya turun:

{Putih: Borislav Ivanov}

{Pertandingan 1 Teratas: 13/27 (48,1%)

{Pertandingan 2 Teratas: 18/27 (66,7%)

{Pertandingan 3 Teratas: 20/27 (74,1%)

{Pertandingan 4 Teratas: 22/27 (81,5%)

{Hitam: Borki Predojevic}

{Pertandingan 1 Teratas: 15/27 (55,6%)

{Pertandingan 2 Teratas: 19/27 (70,4%)

{Pertandingan 3 Teratas: 20/27 (74,1%)

{Pertandingan 4 Teratas: 25/27 (92,6%)

Perhatikan bahwa FIDE telah membentuk komisi untuk menyelidiki cara mendeteksi dan memerangi kecurangan komputer. Pedoman mereka ada di sini . Perhatikan bagian ini:

E. Alat Skrining Game Berbasis Internet FIDE

FIDE akan menyediakan Alat Skrining Game berbasis Internet, yang akan dapat diakses oleh semua pejabat FIDE resmi (IO, IA, anggota ACC) dan Federasi Nasional. Ini akan di-host di halaman web khusus-FIDE dan akan memungkinkan pihak yang berwenang untuk mengunggah game dalam format PGN untuk "tes cepat" yang akan mengidentifikasi pencilan potensial dalam turnamen. Dengan "penyaringan" dipahami bahwa ini hanya memberikan tes pendahuluan tanpa nilai penilaian, kecuali bahwa itu dapat dikutip sambil menolak tuduhan dan menolak untuk melanjutkan ke tes penuh manual.

Menara Brian
sumber
1
Analisis hebat! Hasil T3 / T4 meyakinkan, terutama ketika probabilitas hasilnya dilaporkan. BTW: Saya menyadari posting Anda dibuat beberapa waktu yang lalu, tetapi apakah Anda masih memiliki kutipan untuk percakapan antara Kalinitschev dan Allwermann? Jelas, tidak ada 1900 yang akan menemukan pasangan dalam 8 andal, terutama ketika 2500 tidak melihatnya. Kedengarannya tidak terlalu pintar baginya untuk mengangkat poin ini ketika itu bisa dengan sendirinya menyebabkan kecurigaan bahwa dia selingkuh.
Jaxter
1
BTW: Saya tidak setuju bahwa Qa7! adalah penghenti jantung. Itu hanya mengeksploitasi dua fakta bahwa: 1) pangkat belakang Black lemah, dan 2) dia rentan terhadap pasangannya. Jadi, setiap pengalihan rook off the back rank akan memungkinkan taktik yang berpotensi menang. Dalam hal ini, White menggunakan langkah untuk menyerang b-pion dan mengoordinasikan ratu dan mengayuh ketujuh sehingga benteng dipertahankan. Putih menang setidaknya pion setelah 1 ... Qxf7 2.Qxa8 + Qg8 3.Qxb7. Saya pikir setiap GM seharusnya melihat langkah Qa7, dan saya sangat terkejut bahwa Kalinitschev melewatkannya. Ini langkah paling memaksa di papan, setelah Rxf6 ?!
Jaxter
1
@jaxter Informasi ini berasal dari en.chessbase.com/post/a-history-of-cheating-in-che-3- . Catatan "Saya tidak setuju bahwa Qa7! Adalah penghalang hati" - jika Anda membaca artikel Anda akan melihat bahwa Vishy Anand tidak setuju dengan Anda :-). Dari artikel - 'Jadi, apa yang dimainkan pahlawan kita? 31.Qa7? !! "Fritzy!" Pekik Anand dan tertawa terbahak-bahak ketika dia melihat ini dan langkah-langkah berikut (saya memfilmkan kegembiraannya dan memasukkannya ke dalam laporan multimedia saya di ChessBase Magazine 69). '
Brian Towers
Terima kasih untuk referensi. Aku mengerti maksudmu. Aku pasti akan bersedia untuk memberikan kesempatan, tetapi itu sebagian karena aku akan menilai bahwa White bisa bertahan dari serangan balik Black tanpa menghitung semua garis . Jika saya mencoba melakukan itu a) saya akan yakin akan melakukan kesalahan fatal, dan b) saya akan mendapatkan heebie-jeebies dan mengambil langkah lain. Justru karena saya menggunakan intuisi saya sering memainkan gerakan aneh seperti ... Qa7 !. Ini juga tidak diragukan lagi merupakan faktor penyebab mengapa peringkat saya di bawah 2000 ...
jaxter
Ada perbedaan antara gerakan teratas menjadi gerakan suara yang Anda harapkan akan ditemukan banyak pemain, dan taktik cemerlang yang tidak akan Anda harapkan sebagian besar pemain lihat. Permainan White di atas memiliki beberapa yang terakhir.
CashCow
9

Untuk memberikan jawaban saya tentang bagaimana saya akan mendekati ini, saya akan menggunakan ide sederhana:

  • Tes Hipotesis Null

Idenya adalah bahwa ada sejumlah mesin catur yang tersedia untuk umum, katakan saja Ndari mereka. Asumsi ini tentu saja menghalangi kemungkinan bahwa penipu telah menulis mesin catur mereka sendiri (atau menggunakan mesin catur yang tidak tersedia untuk umum) tetapi untuk menangkap penipu kasual ini harus menjadi asumsi yang cukup kuat.

Penerapan Null Hipotesis Uji akan sangat sederhana: untuk setiap mesin catur Xdan untuk setiap subsequence bergerak dari permainan saat menghitung probabilitas pdari mengamati subsequence dimainkan dengan asumsi yang hipotesis nol bahwa pemain tidak menggunakan mesin catur Xuntuk membuat bergerak untuk mereka. Asumsi naif dapat dibuat bahwa pemain bergerak secara acak (atau secara acak memilih dari sejumlah gerakan teratas yang dipilih d_i), maka probabilitas untuk gerakan panjang kpencocokan panjang tertentu yang Xakan dibuat oleh mesin catur akan dihitung sebagai di (d_1)/(n_1) * (d_2)/(n_2) * (d_3)/(n_3) *...* (d_k)/(n_k)mana d_ijumlah mungkin (atas) bergerak untuk dilakukan diithgilirannya, seperti yang dinilai oleh mesin Xdan n_iadalah jumlah total gerakan yang tersedia untuk pemain pada gilirannya i(atau beberapa bagian yang masuk akal.)

Maka cukup hitung

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

Jika p*kurang dari batas tertentu label pemain sebagai penipu karena ada mesin berikutnya ydan catur Xyang membawa kemungkinan bahwa pemain tidak curang di bawah probabilitas yang diinginkan.

ldog
sumber
8

Saya pikir analisis pasca-pertandingan memberi Anda peluang terbaik untuk mengidentifikasi apakah seorang pemain curang. Ini dapat dilakukan dengan menggunakan apa yang disebut sebagai analisis T3 / T4.

Ini pada dasarnya mengukur frekuensi di mana seorang pemain mengambil salah satu dari 3 gerakan teratas atau 4 gerakan teratas yang disarankan oleh mesin. Ini sebagian besar menghilangkan kebutuhan untuk mengidentifikasi mesin target yang digunakan (karena mereka umumnya akan menyetujui 4/5 atas bergerak bahkan jika urutan preferensi berbeda).

Ada perangkat lunak yang tersedia yang akan menjalankan satu set permainan pengguna terhadap gerakan n atas mesin. Edit:

Saya menyadari ChessAnalyse yang dapat digunakan untuk melakukan analisis seperti itu. Anda dapat mencoba versi uji coba 30 hari.

sidprasher
sumber
2
Ini dapat dilawan oleh penipu yang cerdas yang memiliki pengetahuan catur sebagai berikut: memainkan gerakan yang tidak membuat posisi Anda lebih buruk dan menunggu kesalahan lawan yang akan membahayakan posisinya. Jika Anda bermain 5 sampai 15 menit melawan seseorang yang bukan kekuatan GM, ini pasti akan terjadi, cepat atau lambat. Jika lebih dari itu Anda sesekali melakukan langkah buruk dan / atau Anda tidak bersikeras memenangkan setiap pertandingan, saya yakin kecurangan Anda tidak akan terdeteksi.
Andrea Mori
@AndreaMori: saya setuju bahwa Anda dapat menghindari beberapa situasi, tetapi ketika peringkatnya meningkat, ia akan terdorong untuk mencari lebih banyak dan lebih banyak lagi dan pada akhirnya akan terdeteksi.
sidprasher
Terima kasih, Anda telah menyebutkan bahwa ada perangkat lunak yang tersedia. Bisakah Anda memberi contoh?
Salvador Dali
6

Jika situs Anda memberi pengguna sekali klik mendapatkan posisi FEN atau PGN saat game sedang berjalan , Anda harus mempertimbangkan untuk melacaknya.

Beberapa penipu curang sejak awal, tetapi yang lain lebih suka untuk mulai curang ketika mereka dalam masalah, dan mereka jelas akan menggunakan fitur copy FEN / PGN karena memakan waktu untuk mengatur posisi secara manual.

Entah bagaimana Anda harus menyimpannya bersamaan dengan gerakan pada saat ia menyalinnya, dengan cara ini Anda dapat membandingkan dari titik itu dengan gerakan berikut dan melihat apakah kekuatannya meningkat pesat dengan bantuan mesin catur.

Tetapi sangat penting bahwa Anda menggunakannya hanya untuk membantu Anda memutuskan jika dia curang, itu akan tidak adil untuk menggunakan skrip yang tidak menggunakan intervensi manusia, mungkin ada banyak kesalahan positif, misalnya, saya sering suka menyalin posisi sementara saya bermain untuk kemudian menganalisisnya tanpa perlu mencari permainan saya atau menemukan langkah yang tepat dari PGN. Dan saya tidak selalu meninggalkannya di clip-board saya karena takut menimpanya jadi saya memindahkannya ke notepad (yang berarti saya mengganti windows setelah menyalinnya).

ajax333221
sumber
2
Ini tampaknya lebih menekankan pada sudut pandang "bagaimana mengelola server", daripada "apakah lawan saya selingkuh?" satu (bukan berarti OP mengatakan sesuatu tentang kasus mana yang penting baginya). Mungkin layak disebutkan, karena saya butuh sedikit waktu untuk memahami apa yang Anda maksud, memikirkannya dari POV pemain. (Jawaban bagus ... setelah ini dipahami ^ _ ^ ')
Nikana Reklawyks
1
terima kasih @ajax. Saya belum berpikir tentang menyelamatkan gerakan di mana posisi itu disalin dan menganalisis perbedaan antara kekuatan sebelum dan sesudah.
Salvador Dali
dan tentu saja curang akan mengetahui dan menonaktifkan pelacakan itu. atau melakukan fungsi salin sendiri, tidak terlalu sulit: codegolf.stackexchange.com/questions/89647/chess-conversion
Sarge Borsch
3

FWIW, tidak ada yang menyebut nama Dr. Ken Regan, meskipun penunjuk ke blog Lipton menggambarkan artikel lain di Chess Life yang membahas karyanya.

Artikel itu sangat informatif tentang pekerjaan Regan, keadaan teknik deteksi yang berlaku pada tahun 2014, dan karya FIDE dalam membentuk komite untuk menetapkan dan menyebarluaskan standar, alat, dan teknik untuk membantu TD dalam menghilangkan kecurangan.

Jaxter
sumber