Як би ви визначили, що гравець обманює шахи в Інтернеті?


40

Існує дуже багато веб-сайтів, де гравці можуть грати в шахи в режимі реального часу один з одним. Більшість ігор триває 5-10 хвилин. Завдяки наявності шахового програмного забезпечення можна скористатися, скориставшись Фріцем або Рибкою, щоб запропонувати йому перейти.

Наприклад, я можу просто вводити кожен крок свого опонента і бачити, що програмне забезпечення для мене запропонує.

Я думав про кілька функцій, які можуть підказати, що гравець обманює:

  • кількість разів, коли він перемикає екран
  • швидкість гри (в легкій і в дуже важкій позиції)
  • точність гри

У когось є якісь інші ідеї?

PS: Для мене не важливо, з якої точки зору ви думаєте (сервер чи клієнт).


Відмінне питання та відповідна проблема сьогодні! Але ви маєте на увазі виявлення онлайн-обману на блиц за допомогою алгоритму чи виявляти лише гравця людини під час гри противника?
Рауан Сагіт

Стратегії виявлення обману працюють лише тоді, коли шахрай "дурний". Прийняття більш розумних махінацій (див. Мій коментар до відповіді NoviceProgrammer) зробило б обман майже неможливим навіть здогадатися.
Андреа Морі

Я думаю, це в значній мірі не питання. Я граю на chess.com. Я б здогадався, що, можливо, 1 людина на 10 насправді обманює. І якщо я підозрюю, що опонент отримав якусь допомогу, я просто блокую їх.
Ренді Міндер

Відповіді:


33

Насправді це дуже складне питання, а не те, яке було вирішено задоволено, наскільки мені відомо. По суті, ми просимо алгоритм виконати певний зворотний тест Тьюрінга, щоб розмежувати гравців людини та комп'ютери.

По-перше, перевірки на стороні клієнта завжди матимуть слабкі місця, якщо ви не повністю контролюєте клієнтське середовище. Візьмемо першу ідею - перевірка на перемикання між вікнами, це звучить добре. На жаль, це тривіально обійшлося за допомогою запуску шахового двигуна на окремому комп’ютері або інтеграції мого двигуна з клієнтом, щоб не відбулося «перемикання вікон», або змінивши клієнта, щоб повідомити про зміни у вікні, або ... Немає реальний спосіб бути впевненим, що це ваш код працює на клієнті, насправді.

Те, що нам залишається, - це фізично чітко контрольоване клієнтське середовище (що не відбудеться для жодних онлайн-ігор) або перевірка на стороні сервера, тобто перегляд реальних кроків, які були відтворені (і, можливо, час між рухами, як ви кажете), і намагаєтесь вивести комп'ютерний чи людський аспект.

Перевірка на стороні сервера також може розділити кілька способів. Можливо, ви могли б спробувати підхід "зверху вниз", який би був чимось "за минулими іграми в історії, лише 2% людей зробили цей рух, а 50% комп'ютерів - це". Це було б насправді досить хорошим способом зробити це, якби у нас було достатньо даних для "будь-якої заданої позиції". Простір пошуку шахів настільки великий, що навіть дуже великі набори даних не матимуть значної кількості ігор, що відповідають вашій позиції, як тільки ви пройдете минулу середину гри.

Якщо припустити, що у нас немає достовірної статистики щодо людського боку рівняння, ви все ще можете представити позицію на декількох шахових двигунах (з різними налаштуваннями часу в кожному) і подивитися, наскільки тісно рухаються гравці комп'ютер. Це само по собі призведе до багатьох помилкових позитивних результатів, однак, повторні позитиви для одного шахового двигуна та налаштування часу зробить все більш імовірним, що гравець обманює. Для подальшого вдосконалення цього я, певно, розглядаю підхід "знизу вгору" аналізу шахових позицій; коротше кажучи, намагаючись з’ясувати, чому люди та комп’ютери грають по-різному. Наприклад, люди схильні розпізнавати загальні закономірності. У грі з «чудернацькими» візерунками, або малоймовірними ситуаціями, людина буде менше шансів грати дуже точно. Ніщо з цього,

Щоб додати декілька специфік до вашого списку, я б хотів розповісти про те, як професори виявляють плагізм у роботах - виявляючи раптові зміни. У шахах це надзвичайно важко визначити, але раптова зміна стилю гри чи сили гри може свідчити про обман. Зокрема, я б шукав нехарактерні агресивні рухи, які мають тенденцію просто "працювати" і не мають недоліків для гравця (занадто точні). Примусові товариші в 4+ рухаються від гравця, який, як правило, ставить лицарів на край дошки тощо (це можливо ... просто не вірогідно). Як саме це буде працювати, звучить так, що це може зайняти цілу книгу (або більше).

EDIT: Нещодавно з’явилася стаття про шахрайство та виявлення шахів верхнього рівня .


3
люди проти комп’ютерів можуть дати помилкові позитиви у відкритті гри, дуже легко запам’ятати найкращі п’єси
ajax333221

@ ajax333221 Я повністю згоден. До певної міри щось подібне може стосуватися ендгра, де людина може грати в нього досить близько до ідеального, просто на основі попередніх знань. Однак, якщо я можу виявити можливе обман у грі, я впевнений, що за допомогою додаткової інформації та складного аналізу комп'ютер міг би зробити те саме. Вимушений товариш у 4 + ходах був фактичним прикладом недавньої онлайн-гри проти гравця з рейтингом 1050 - дуже натякнутий, якщо не менше ...
Daniel B

20

У бліці ви можете визначити, скільки часу вони використовують. Люди, що використовують двигуни, використовують постійний проміжок часу для кожного ходу, замість того, щоб прошивати відкриття і сповільнюватися до повзання в середній грі, як більшість звичайних гравців. Зокрема, вони не можуть зіграти відкриття швидко, оскільки їм доведеться оновлювати плату комп'ютера після кожного відкриття. Якщо вони займають п'ять секунд у русі дві та п’ять секунд на ходу двадцять, вони, ймовірно, використовують двигун.


Я не впевнений, що це було правдою під час публікації, але риба-тварин може прийняти час, який залишається як вхід, щоб визначити, на що рухається, щоб провести час.
OganM,

15

Кількість перемикачів екрану та швидкість відтворення безглузді. Якщо ви використовуєте ці скарги до організаторів веб-сайту, що грає в шахи, вони з вас будуть сміятися.

Є два способи сказати, чи хтось обманює. Перший - «курильний пістолет». Розглянемо цей розділ гри -

Allwermann, Clemens (1900) - Калінічев, Сергій (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 або (для трусів, як я ;-) Rxf6. Qa7 - це зупинка серця, куріння. Фріц оцінює як найкращий хід у позиції, колосальних 0,1 попереду наступного найкращого кроку, Rd7.

Гра в курінні №2 в кінці гри, коли чорні подали у відставку, залишивши гравця 1900 року, який був переможцем турніру. Що б ви сказали Калінічеві на цій посаді?

Ось як пішла розмова:

Олверманн: "Пару в 8"

Калінічев: "Я так не думаю"

Allwermann: "" Перевірте це, ви зрозумієте, що я маю рацію "

Алверманн мав рацію, звичайно. Чи можете ви знайти пару в 8 в остаточному положенні? Без допомоги кремнію?

Отже, у вас є ваш курильний пістолет, і ви забираєте його організаторам. Що вони робитимуть?

Що ж, тоді з'являється другий спосіб виявлення і доведення поза розумним сумнівом, що обман триває.

Їм потрібно буде зібрати щонайменше 20 ігор у кожній із щонайменше 20 рухами без баз даних і подати їх у двигун для перевірки. В основному те, що вони шукають, це відсоток часу, коли підозрюваний обирає хід, не підданий базі даних, який відповідає першому вибору двигуна, одному з перших 2 вибору, одному з перших 3 вибору. Порогові значення "доказ" -

Топ 1 65%

Топ 2 80%

Топ 3 90%

Недавній приклад - фурор щодо виступу Борислава Іванова .

Ось його статистика -

Задар 19-й: Худіні 1,5а х64 Хеш: 256 Час: 30-ти Макс. Глибина: 20в. {Борислав Іванов (Ігри: 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-му турі жива подача знизилася (підозрюється, що це дозволило його зовнішній допомозі отримати рухи), і він програв ГМ Предоєвичу. Якщо цей результат буде видалено, то нові статистичні дані:

Задарм 19: Houdini 1.5a x64 Хеш: 256 Час: 30s Максимальна глибина: 20ply {Борислав Іванов (Ігри:)}

{Матч 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%)

{Чорний: Боркі Предоевич}

{Матч 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 для «швидкого тестування», що визначатиме потенційних гравців на турнірі. Під «скринінг» розуміється, що це дає лише попередній тест без значення судження, за винятком того, що він може бути цитований, відкидаючи твердження та відмовляючись переходити до ручного повного тесту.


1
Чудовий аналіз! Результати T3 / T4 переконливі, особливо коли повідомляється про ймовірність його результатів. BTW: Я усвідомлюю, що ваш пост був зроблений деякий час тому, але чи трапляється у вас ще цитування для розмови між Калінічев та Алверверманом? Зрозуміло, що жоден 1900 не збирається надійно знайти пару у 8, особливо коли 2500 не бачить цього. Для нього не звучить особливо розумно, коли він підняв цю точку, коли це само по собі може викликати підозру, що він обманює.
jaxter

1
BTW: Я не згоден з цим Q7! є пробкою серця. Це просто використання двох фактів, які: 1) Задній рейтинг Блека слабкий, і 2) він вразливий для свого партнера. Таким чином, будь-яка відволікання граду від заднього рангу дозволить потенційно виграти тактику. У цьому випадку Білий використовує хід для нападу на б-пешку і для координації своєї королеви та ладьою на сьомому, щоб грак захищався. Білі виграють принаймні пішака після 1 ... Qxf7 2.Qxa8 + Qg8 3.Qxb7. Я думаю, що будь-який ГМ повинен був бачити хід Qa7, і я дуже здивований, що Калінічев пропустив його. Це найсильніший крок на дошці, після Rxf6 ?!
jaxter

1
@jaxter Інформація надходить із en.chessbase.com/post/a-history-of-cheating-in-che-3- . Примітка "Я не погоджуюся, що Qa7! - це пробка серця" - якщо ви прочитаєте статтю, то побачите, що Віші Ананд не погоджується з вами :-). Зі статті - «Отже, що грає наш герой? 31.Qa7? !! "Фрітці!" - скрикнув Ананд і впав у нестримний приплив сміху, коли побачив це та наступні кроки (я зняв його радість і включив це до свого мультимедійного звіту в журналі ChessBase 69). '
Брайан Тауерс

Дякую за довідку. Я приймаю вашу думку. Я, безумовно, був би готовий дати хід, але це частково тому, що я вважав би, що Білий міг пережити контратаку Блек без розрахунку всіх ліній . Якби я спробував це зробити а) я був би впевнений, що допустив би фатальну помилку, і б) я би дістав хебі-джибі і вибрав інший крок. Саме тому, що я використовую інтуїцію, я часто граю нахабні рухи, як ... Qa7 !. Це, безсумнівно, також і фактор, чому мій рейтинг нижче 2000 ...
jaxter

Існує різниця між верхнім ходом, який є надійним кроком, якого ви очікуєте, що знайдеться багато гравців, і блискучою тактикою, яку ви не очікуєте, що бачить більшість гравців. Гра Білих вище має кілька останніх.
CashCow

9

Щоб дати відповідь щодо того, як я підходитиму до цього, я б застосував просту ідею:

  • Тест нульової гіпотези

Ідея полягає в тому, що шахові двигуни є загальнодоступними, але скажімо Nпро них. Це припущення, звичайно, виключає можливість того, що шахрай написав свій власний шаховий двигун (або використовує якийсь публічно недоступний шаховий двигун), але для лову випадкових шахраїв це має бути досить сильним припущенням.

Застосування тесту гіпотези Null було б дуже простим: для кожного шахового двигуна 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обороту, за оцінкою двигуна, Xі n_iце кількість загальних рухів, доступних гравцеві на ходу i(або якийсь розумний підмножина.)

Потім просто обчислити

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

Якщо p*поріг менший за певний поріг, гравець називає шахрая, оскільки існує yмеханізм Xпідпорядкування та шахів, який приносить ймовірність того, що гравець не обманює нижче бажаної ймовірності.


8

Я думаю, що аналіз після гри дає найкращі шанси визначити, чи грав гравець. Це можна зробити, використовуючи, що називається, аналіз T3 / T4.

Це, в основному, вимірює частоту, з якою гравець вибирає один з перших 3 або топ-4 ходів, запропонованих двигуном. Це значною мірою виключає необхідність виявлення цільового двигуна, який використовується (оскільки вони, як правило, домовляються про перші 4/5 кроків, навіть якщо порядок уподобань відрізняється).

Існує програмне забезпечення, яке буде запускати набір ігор користувача проти верхніх n рухів двигуна. Редагувати:

Мені відомо про ChessAnalyse, який можна використовувати для проведення такого аналізу. Ви можете спробувати 30-денну пробну версію.


2
Цьому можна протидіяти розумному шахраю, який має деякі шахові знання: грайте рухами, які просто не погіршують вашу позицію, і чекайте помилки опонента, яка б загрожує його / її позиції. Якщо ви граєте від 5 до 15 хвилин блиц проти того, хто не має сили GM, це, безумовно, станеться рано чи пізно. Якщо ви ще раз піддаєтеся поганому ходу і / або не наполягаєте на перемозі в кожній грі, я впевнений, що ваш обман залишиться непоміченим.
Андреа Морі

@AndreaMori: Я погоджуюся, що ви можете уникнути кількох ситуацій, але коли його / її рейтинг покращується, він буде змушений шукати все більше і більше, і врешті-решт його виявлять.
sidprasher

Дякую, ви згадали, що є програмне забезпечення. Чи можете ви навести приклад?
Сальвадор Далі

6

Якщо ваш сайт дає користувачам одним клацанням миші отримати позиції FEN або PGN під час гри , слід розглянути можливість їх відстеження.

Деякі шахраї обманюють з самого початку, але інші вважають за краще обманювати тільки тоді, коли їм трапляються проблеми, і вони, очевидно, використовуватимуть функцію копіювання FEN / PGN, оскільки це забирає багато часу, щоб налаштувати позицію вручну.

Вам слід якось зберігати, що поряд з ходом у той час, коли він його копіював, таким чином ви можете порівняти з цього моменту наступні кроки і побачити, чи сильно зросла його сила за допомогою шахових двигунів.

Але дуже важливо, щоб ви використовували його лише для того, щоб вирішити, чи він обманював, було б несправедливо використовувати скрипт, який не використовує втручання людини, може бути багато помилкових позицій, наприклад, я часто люблю копіювати позиції поки я граю, щоб пізніше їх аналізувати, не потребуючи пошуку моєї гри або пошуку точного переходу від PGN. І я не завжди залишаю його у своєму кліп-дошці, тому що бояюся його перезаписати, тому я переміщу його в блокнот (це означає, що я перемикаю вікна відразу після копіювання).


2
Це, здається, стосується точки зору "як керувати сервером", а не "чи мого опонента обманює?" один (не те, щоб ОП нічого не сказала про те, яка справа має значення для нього). Можливо, варто це згадати, оскільки мені знадобилося небагато часу, щоб зрозуміти, що ти маєш на увазі, думаючи про це з гравця POV. (Гарна відповідь… як тільки це зрозуміє ^ _ ^ ')
Нікана Реклавікс

1
дякую @ajax. Я не замислювався над тим, щоб врятувати хід, при якому позиція була скопійована, і проаналізувати різницю між силою до і після.
Сальвадор Далі

і, звичайно, шахраї виявлять і відключать це відстеження. або робити власну функцію копіювання, це не так складно: codegolf.stackexchange.com/questions/89647/chess-conversion
Sarge

3

FWIW, ніхто не згадував доктора Кен Реган за іменем, хоча вказівник до блогу Ліптона описує ще одну статтю в Chess Life, яка обговорює його роботу.

Ця стаття є дуже інформативною про роботу Регана, про стан методів виявлення, які діяли в 2014 році, та роботу FIDE у створенні комітету з визначення та оприлюднення стандартів, інструментів та методів для допомоги ТД у викритті обману.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.