Есть много онлайн-сайтов, где игроки могут играть в шахматы в реальном времени друг с другом. Большинство игр длится 5-10 минут. С доступностью шахматного программного обеспечения можно получить преимущество, используя Фрица или Рыбку, чтобы предложить ему ход.
Например, я могу просто ввести каждое движение своего оппонента и посмотреть, что программа предложит мне.
Я думал о нескольких особенностях, которые могут предположить, что игрок обманывает:
- сколько раз он переключает экран
- скорость игры (в легком и очень сложном положении)
- точность игры
У кого-нибудь есть другие идеи?
PS: для меня не имеет значения, с какой точки зрения вы думаете (на стороне сервера или на стороне клиента).
analysis
online-chess
Сальвадор Дали
источник
источник
Ответы:
На самом деле это очень сложный вопрос, и, насколько мне известно, он не решен удовлетворительным образом. По сути, мы просим алгоритм для выполнения своего рода обратного теста Тьюринга, чтобы различать игроков и компьютеры.
Во-первых, проверки на стороне клиента всегда будут иметь недостатки, если вы не полностью контролируете клиентскую среду. Давайте возьмем первую идею - проверка переключения между окнами, это звучит хорошо. К сожалению, это тривиально, обходя шахматный движок на отдельном компьютере, или интегрируя мой движок с клиентом, чтобы не происходило «переключение окон», или меняя клиента, чтобы он сообщал о 0 изменениях в окне, или ... Там нет реальный способ быть уверенным, что ваш код работает на клиенте.
Нам остается физически жестко контролируемая клиентская среда (чего не случится ни в одной онлайн-игре), или проверка на стороне сервера, т. Е. Просмотр реальных ходов (и, возможно, времени между ходами, как ты говоришь) и пытаешься вывести компьютер или человеческий аспект.
Проверка на стороне сервера также может быть разделена несколькими способами. Вероятно, вы можете попробовать подход «сверху вниз», который будет чем-то вроде «из прошлых игр в истории, только 2% людей сделали это, а 50% компьютеров сделали это». На самом деле это был бы довольно хороший способ сделать это, если бы у нас было достаточно данных для «любой заданной позиции». Однако пространство для поиска в шахматах настолько велико, что даже в очень больших наборах данных не будет значительного числа игр, соответствующих вашей позиции, как только вы пройдете раннюю середину игры.
Предполагая, что у нас нет надежной статистики по человеческой стороне уравнения, вы все равно можете представить позицию нескольким шахматным движкам (с различными настройками времени для каждого) и посмотреть, насколько точно совпадают ходы игроков. это компьютера. Само по себе это также приведет к множеству ложных срабатываний, однако повторные срабатывания для того же шахматного движка и настроек времени сделают все более вероятным, что игрок обманывал. Чтобы еще больше улучшить это, я, вероятно, рассмотрю «восходящий» подход к анализу шахматных позиций; Короче говоря, пытаясь понять, почему люди и компьютеры играют по-разному. Например, люди склонны распознавать общие закономерности. В игре с «странными» паттернами или маловероятными ситуациями человек с меньшей вероятностью сможет играть очень точно. Ни один из них,
Чтобы добавить несколько деталей в ваш список, я бы пошел по пути того, как профессора обнаруживают плагиат в газетах - обнаруживая внезапные изменения. В шахматах это очень сложно определить, но внезапное изменение стиля игры или силы игры может указывать на обман. В частности, я бы искал нехарактерно агрессивные движения, которые, как правило, просто «работают» и не имеют недостатка для игрока (слишком точный). Вынужденные помощники в 4+ ходах от игрока, который обычно ставит коней на край доски и т. Д. (Это возможно ... просто маловероятно). Как именно это будет работать, звучит так, будто это может занять целую книгу (или даже больше).
РЕДАКТИРОВАТЬ: Недавно была статья о мошенничестве и обнаружении в шахматах высшего уровня .
источник
В блице вы можете определить, сколько времени они используют. Люди, использующие движки, тратят одинаковое количество времени на каждый ход, вместо того, чтобы прыгать сквозь дебют и замедляться до ползунка в средней игре, как большинство обычных игроков. В частности, они не могут играть быстро на открытии, потому что они должны обновлять свою компьютерную доску после каждого хода открытия. Если они занимают пять секунд на ходу две и пять секунд на ходу двадцать, они, вероятно, используют двигатель.
источник
Количество экранных переключателей и скорость воспроизведения не имеют смысла. Если вы воспользуетесь ими, чтобы пожаловаться организаторам онлайн-шахматного сайта, они будут смеяться над вами.
Есть два способа узнать, кто-то обманывает. Первый - это «дымящийся пистолет». Рассмотрим этот игровой раздел -
Вопрос в том, что бы вы сыграли на этой позиции? Ситуация такова, что победа в этом, последнем туре соревнований, выиграет вас в турнире, опередив ряд гроссмейстеров. Неплохо только для 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%)
Обратите внимание, что ФИДЕ создала комиссию для расследования способов обнаружения и борьбы с компьютерным мошенничеством. Их рекомендации здесь . Обратите внимание на этот раздел:
источник
Чтобы дать свой ответ о том, как я бы подошел к этому, я бы использовал простую идею:
Идея заключается в том, что существует ограниченное количество общедоступных шахматных движков, скажем так
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*
меньше определенного порога, пометьте игрока как мошенника, так как существует подпоследовательностьy
и шахматный движок,X
который повышает вероятность того, что игрок не обманывает, ниже желаемой вероятности.источник
Я думаю, что пост-игровой анализ дает вам наилучшую возможность определить, обманул ли игрок. Это можно сделать с помощью так называемого анализа T3 / T4.
Это в основном измеряет частоту, с которой игрок выбирает один из трех лучших или четырех лучших ходов, предлагаемых двигателем. Это в значительной степени устраняет необходимость определения целевого двигателя в использовании (так как они обычно соглашаются на верхние 4/5 ходов, даже если порядок предпочтений отличается).
Доступно программное обеспечение, которое будет запускать множество игр пользователя против первых n ходов движка. Редактировать:
Мне известно о ChessAnalyse, который можно использовать для такого анализа. Вы можете попробовать 30-дневную пробную версию.
источник
Если ваш сайт дает пользователям один щелчок, чтобы получить позиции FEN или PGN во время игры , вам следует рассмотреть их отслеживание.
Некоторые мошенники обманывают с самого начала, но другие предпочитают начинать мошенничество только тогда, когда у них проблемы, и они, очевидно, будут использовать функцию копирования FEN / PGN, поскольку установка позиции вручную занимает много времени.
Вы должны каким-то образом хранить это вместе с ходом в то время, когда он копировал его, таким образом, вы можете сравнить от этой точки до следующих ходов и посмотреть, значительно ли увеличилась его сила с помощью шахматных движков.
Но очень важно, чтобы вы использовали его только для того, чтобы помочь вам решить, обманывал ли он, было бы несправедливо использовать сценарий, не требующий вмешательства человека, может быть много ложных срабатываний, например, мне часто нравится копировать позиции пока я играю, чтобы потом проанализировать их без необходимости искать свою игру или находить точный ход из PGN. И я не всегда оставляю это в своем буфере обмена, потому что боюсь перезаписать его, поэтому я перемещаю его в блокнот (что означает, что я переключаю окна сразу после копирования).
источник
FWIW, никто не упомянул д-ра Кена Ригана по имени, хотя указатель на блог Липтона описывает другую статью в Chess Life, в которой обсуждается его работа.
Эта статья очень информативна о работе Риган, о состоянии методов обнаружения, которые действовали в 2014 году, и о работе ФИДЕ по созданию комитета по определению и опубликованию стандартов, инструментов и методов, чтобы помочь ТД в борьбе с мошенничеством.
источник