Как бы вы определили, что игрок обманывает в онлайн-шахматах?

40

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

Например, я могу просто ввести каждое движение своего оппонента и посмотреть, что программа предложит мне.

Я думал о нескольких особенностях, которые могут предположить, что игрок обманывает:

  • сколько раз он переключает экран
  • скорость игры (в легком и очень сложном положении)
  • точность игры

У кого-нибудь есть другие идеи?

PS: для меня не имеет значения, с какой точки зрения вы думаете (на стороне сервера или на стороне клиента).

Сальвадор Дали
источник
Отличный вопрос и актуальная проблема сегодня! Но вы имеете в виду обнаружение обмана онлайн-блиц с использованием алгоритма или обнаружение просто как игрока-человека во время игры противника?
Рауан Сагит
Обнаружение мошеннических стратегий работает только тогда, когда мошенник "глуп". Принятие более умных мошеннических состояний (см. Мой комментарий к ответу NoviceProgrammer) сделало бы обмана почти невозможным даже догадываться.
Андреа Мори
Я думаю, что это в значительной степени не проблема. Я играю на chess.com. Я предполагаю, что, возможно, 1 человек из 10 на самом деле обманывает. И если я подозреваю, что мой противник получил некоторую помощь, я просто блокирую их.
Рэнди Миндер

Ответы:

33

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

Во-первых, проверки на стороне клиента всегда будут иметь недостатки, если вы не полностью контролируете клиентскую среду. Давайте возьмем первую идею - проверка переключения между окнами, это звучит хорошо. К сожалению, это тривиально, обходя шахматный движок на отдельном компьютере, или интегрируя мой движок с клиентом, чтобы не происходило «переключение окон», или меняя клиента, чтобы он сообщал о 0 изменениях в окне, или ... Там нет реальный способ быть уверенным, что ваш код работает на клиенте.

Нам остается физически жестко контролируемая клиентская среда (чего не случится ни в одной онлайн-игре), или проверка на стороне сервера, т. Е. Просмотр реальных ходов (и, возможно, времени между ходами, как ты говоришь) и пытаешься вывести компьютер или человеческий аспект.

Проверка на стороне сервера также может быть разделена несколькими способами. Вероятно, вы можете попробовать подход «сверху вниз», который будет чем-то вроде «из прошлых игр в истории, только 2% людей сделали это, а 50% компьютеров сделали это». На самом деле это был бы довольно хороший способ сделать это, если бы у нас было достаточно данных для «любой заданной позиции». Однако пространство для поиска в шахматах настолько велико, что даже в очень больших наборах данных не будет значительного числа игр, соответствующих вашей позиции, как только вы пройдете раннюю середину игры.

Предполагая, что у нас нет надежной статистики по человеческой стороне уравнения, вы все равно можете представить позицию нескольким шахматным движкам (с различными настройками времени для каждого) и посмотреть, насколько точно совпадают ходы игроков. это компьютера. Само по себе это также приведет к множеству ложных срабатываний, однако повторные срабатывания для того же шахматного движка и настроек времени сделают все более вероятным, что игрок обманывал. Чтобы еще больше улучшить это, я, вероятно, рассмотрю «восходящий» подход к анализу шахматных позиций; Короче говоря, пытаясь понять, почему люди и компьютеры играют по-разному. Например, люди склонны распознавать общие закономерности. В игре с «странными» паттернами или маловероятными ситуациями человек с меньшей вероятностью сможет играть очень точно. Ни один из них,

Чтобы добавить несколько деталей в ваш список, я бы пошел по пути того, как профессора обнаруживают плагиат в газетах - обнаруживая внезапные изменения. В шахматах это очень сложно определить, но внезапное изменение стиля игры или силы игры может указывать на обман. В частности, я бы искал нехарактерно агрессивные движения, которые, как правило, просто «работают» и не имеют недостатка для игрока (слишком точный). Вынужденные помощники в 4+ ходах от игрока, который обычно ставит коней на край доски и т. Д. (Это возможно ... просто маловероятно). Как именно это будет работать, звучит так, будто это может занять целую книгу (или даже больше).

РЕДАКТИРОВАТЬ: Недавно была статья о мошенничестве и обнаружении в шахматах высшего уровня .

Даниэль Б
источник
3
люди против компьютеров могут давать ложные срабатывания при открытии игры, очень легко запомнить лучшие игры
ajax333221
@ ajax333221 Я полностью согласен. В некоторой степени нечто подобное может относиться к эндшпилю, где человек может сыграть его довольно близко к идеалу, основываясь только на предварительных знаниях. Тем не менее, если я могу обнаружить возможный обман в игре, я уверен, с дополнительной информацией и сложным анализом, компьютер мог бы сделать то же самое. Вынужденный помощник в 4+ ходах был реальным примером из недавней онлайн-игры против 1050-го игрока - очень многообещающий, если не сказать больше ...
Даниэль Б.
20

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

Эндрю Латам
источник
Я не уверен, было ли это так во время публикации, но вяленая рыба может принять оставшееся время в качестве входных данных, чтобы расставить приоритеты в том, что движется, чтобы провести время.
OganM
15

Количество экранных переключателей и скорость воспроизведения не имеют смысла. Если вы воспользуетесь ими, чтобы пожаловаться организаторам онлайн-шахматного сайта, они будут смеяться над вами.

Есть два способа узнать, кто-то обманывает. Первый - это «дымящийся пистолет». Рассмотрим этот игровой раздел -

Allwermann, Clemens (1900) - Калиничев Сергей (2505) Бёблинген (9), 30.12.1999
1. QA7 Rg8 2. Qxb7 Be4 3. Nf4 Qf5 4. Qd7 QE5 5. KH1 g5 6. МН3 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"

Калиничев: «Я так не думаю»

Олверманн: «Проверьте это, вы обнаружите, что я прав»

Олверманн был прав, конечно. Можете ли вы найти помощника в 8 в окончательной позиции? Без помощи кремния?

Итак, у вас есть курящий пистолет, и вы отдаете его организаторам. Что они будут делать?

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

Им нужно будет собрать не менее 20 игр, каждая из которых должна содержать как минимум 20 ходов, не относящихся к базе данных, и передать их в механизм для проверки. По сути, они ищут процент времени, в течение которого подозреваемый выбирает ход, не связанный с базой данных, который совпадает с первым выбором двигателя, одним из первых 2 выборов, одним из первых 3 выборов. «Доказательство» пороговых значений -

Топ 1 65%

Топ 2 80%

Топ 3 90%

Недавний пример - фурор по поводу выступления Борислава Иванова .

Вот его статистика -

Задар 19-е: Гудини 1.5a x64 Хэш: 256 Время: 30 с Максимальная глубина: 20 раз {Борислав Иванов (Игры: 9)}

{Top 1 Match: 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-е: Гудини 1.5a x64 Хэш: 256 Время: 30 с Максимальная глубина: 20 раз {Борислав Иванов (Игры:)}

{Топ 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, когда канал не работал:

{Белый: Борислав Иванов}

{Первый матч: 13/27 (48,1%)

{Топ 2 матча: 18/27 (66,7%)

{Топ 3 матча: 20/27 (74,1%)

{Топ 4 матча: 22/27 (81,5%)

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

{Первый матч: 15/27 (55,6%)

{Топ 2 матча: 19/27 (70,4%)

{Топ 3 матча: 20/27 (74,1%)

{Топ 4 матча: 25/27 (92,6%)

Обратите внимание, что ФИДЕ создала комиссию для расследования способов обнаружения и борьбы с компьютерным мошенничеством. Их рекомендации здесь . Обратите внимание на этот раздел:

E. Интернет-инструмент для проверки игр FIDE

ФИДЕ предоставит Интернет-инструмент для скрининга игр, который будет доступен всем уполномоченным должностным лицам ФИДЕ (IO, IA, члены ACC) и национальным федерациям. Он должен быть размещен на веб-странице, посвященной ФИДЕ, и позволит уполномоченным сторонам загружать игры в формате PGN для «быстрого теста», который определит потенциальные выбросы в турнире. Под «скринингом» понимается, что это обеспечивает только предварительный тест без значения суждения, за исключением того, что на него можно ссылаться при отклонении утверждений и отказе перейти к полному тесту вручную.

Брайан Тауэрс
источник
1
Отличный анализ! Результаты T3 / T4 убедительны, особенно когда сообщается о вероятности его результатов. КСТАТИ: Я понимаю, что ваш пост был сделан некоторое время назад, но у вас все еще есть цитата для разговора между Калиничевым и Allwermann? Понятно, что ни один из 1900-х не сможет найти надежного помощника в восьмерке, особенно когда 2500 не видит его. Для него не слишком умно поднимать этот вопрос, когда это само по себе может вызвать подозрение, что он обманывает.
Jaxter
1
Кстати, я не согласен, что Qa7! это остановка сердца. Это просто использование двух фактов: 1) у черных слабый ранг, и 2) они уязвимы для партнера. Таким образом, любое отклонение ладьи от заднего ряда позволит потенциально выиграть тактику. В этом случае белые используют ход, чтобы атаковать пешку b и координировать свою ферзя и ладью седьмого, чтобы ладья была защищена. Белые выигрывают как минимум пешку после 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? !! «Fritzy!» Завопил Ананд и впал в неконтролируемый приступ смеха, когда он увидел этот и следующие шаги (я снял его веселье и включил его в свой мультимедийный отчет в ChessBase Magazine 69). '
Брайан Тауэрс
Спасибо за ссылку. Я понимаю вашу точку зрения. Я, конечно, был бы готов дать ход, но это отчасти потому, что я бы решил, что белые могут пережить контратаку черных, не рассчитав все линии . Если бы я попытался сделать это а) я был бы уверен, что совершил бы роковую ошибку, и б) я бы получил хиби-джиби и выбрал бы другой ход. Именно потому, что я использую интуицию, я часто играю причудливые движения вроде ... 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ход, в зависимости от двигателя Xи n_iобщее количество ходов, доступных игроку на ходу i(или некоторое разумное подмножество).

Тогда просто вычисли

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

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

ldog
источник
8

Я думаю, что пост-игровой анализ дает вам наилучшую возможность определить, обманул ли игрок. Это можно сделать с помощью так называемого анализа T3 / T4.

Это в основном измеряет частоту, с которой игрок выбирает один из трех лучших или четырех лучших ходов, предлагаемых двигателем. Это в значительной степени устраняет необходимость определения целевого двигателя в использовании (так как они обычно соглашаются на верхние 4/5 ходов, даже если порядок предпочтений отличается).

Доступно программное обеспечение, которое будет запускать множество игр пользователя против первых n ходов движка. Редактировать:

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

sidprasher
источник
2
Этому может противостоять умный мошенник, обладающий некоторыми знаниями в шахматах: играйте ходы, которые просто не ухудшают вашу позицию, и ждите ошибки оппонента, которая может поставить под угрозу его / ее позицию. Если вы играете блиц от 5 до 15 минут против кого-то, кто не имеет силы GM, это обязательно произойдет, рано или поздно. Более того, если вы иногда делаете плохой ход и / или не настаиваете на победе в каждой игре, я уверен, что ваш обман останется незамеченным.
Андреа Мори
@AndreaMori: я согласен, что вы можете избежать нескольких ситуаций, но по мере того, как его / ее рейтинг улучшится, он будет вынужден искать все больше и больше и в конечном итоге будет обнаружен.
Сидпрашер
Спасибо, вы упомянули, что есть программное обеспечение. Можете привести пример?
Сальвадор Дали
6

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

Некоторые мошенники обманывают с самого начала, но другие предпочитают начинать мошенничество только тогда, когда у них проблемы, и они, очевидно, будут использовать функцию копирования FEN / PGN, поскольку установка позиции вручную занимает много времени.

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

Но очень важно, чтобы вы использовали его только для того, чтобы помочь вам решить, обманывал ли он, было бы несправедливо использовать сценарий, не требующий вмешательства человека, может быть много ложных срабатываний, например, мне часто нравится копировать позиции пока я играю, чтобы потом проанализировать их без необходимости искать свою игру или находить точный ход из PGN. И я не всегда оставляю это в своем буфере обмена, потому что боюсь перезаписать его, поэтому я перемещаю его в блокнот (что означает, что я переключаю окна сразу после копирования).

ajax333221
источник
2
Это похоже на точку зрения «как управлять сервером», а не на «обманывает ли мой оппонент»? один (не то, чтобы ОП сказал что-либо о том, какое дело имело для него значение). Возможно, стоит упомянуть об этом, так как мне потребовалось немного времени, чтобы понять, что вы имели в виду, подумав об этом из POV игрока. (Хороший ответ… как только это поймут ^ _ ^ ')
Никана Рекламикс
1
спасибо @ajax. Я не думал о сохранении хода, на котором была скопирована позиция, и проанализировал разницу между силой до и после.
Сальвадор Дали
и, конечно, читеры обнаружат и отключат это отслеживание. или сделать свою собственную функцию копирования, это не так сложно: codegolf.stackexchange.com/questions/89647/chess-conversion
Sarge Borsch
3

FWIW, никто не упомянул д-ра Кена Ригана по имени, хотя указатель на блог Липтона описывает другую статью в Chess Life, в которой обсуждается его работа.

Эта статья очень информативна о работе Риган, о состоянии методов обнаружения, которые действовали в 2014 году, и о работе ФИДЕ по созданию комитета по определению и опубликованию стандартов, инструментов и методов, чтобы помочь ТД в борьбе с мошенничеством.

jaxter
источник