Como você determinaria que o jogador está trapaceando no xadrez online?

40

Existem muitos sites online, onde os jogadores podem jogar xadrez em tempo real entre si. A maioria dos jogos tem entre 5 e 10 minutos. Com a disponibilidade do software de xadrez, pode-se tirar vantagem usando Fritz ou Rybka para sugerir uma mudança para ele.

Por exemplo, posso apenas inserir todos os movimentos do meu oponente e ver o que o software irá sugerir para mim.

Eu estava pensando em alguns recursos que podem sugerir que o jogador está trapaceando:

  • número de vezes que ele muda de tela
  • velocidade de jogo (em posições fáceis e muito difíceis)
  • precisão do jogo

Alguém tem outras idéias?

PS: Não importa para mim, em qual perspectiva você está pensando (servidor ou cliente).

Salvador Dalí
fonte
Excelente pergunta e problema relevante hoje! Mas você quer dizer detectar batota de blitz online usando um algoritmo ou detectar apenas como jogador humano enquanto joga com um oponente?
Rauan Sagit
As estratégias de detecção de trapaça só funcionam quando o trapaceiro é "estúpido". A adoção de estratégias de trapaça mais inteligentes (veja meu comentário na resposta do NoviceProgrammer) tornaria quase impossível adivinhar a trapaça.
Andrea Mori
Eu acho que isso é praticamente um problema. Eu jogo no chess.com. Eu acho que talvez uma pessoa em cada 10 realmente trapaceie. E se eu suspeito que meu oponente recebeu alguma ajuda, simplesmente os bloqueio.
Randy Minder

Respostas:

33

Esta é realmente uma questão muito complexa, e que não foi resolvida de maneira satisfatória, pelo que sei. Essencialmente, estamos solicitando um algoritmo para executar um tipo de teste de Turing reverso, para diferenciar jogadores humanos e computadores.

Primeiro, as verificações do lado do cliente sempre terão pontos fracos, a menos que você esteja no controle completo do ambiente do cliente. Vamos tomar a primeira idéia - verificar se há alternância entre janelas, parece bom. Infelizmente, é trivialmente contornado executando um mecanismo de xadrez em um computador separado ou integrando meu mecanismo ao cliente para que não ocorra "troca de janela" ou alterando o cliente para relatar 0 alterações na janela ou ... Não há maneira real de ter certeza de que é o seu código em execução no cliente, realmente.

O que nos resta são ambientes de clientes fisicamente controlados (o que não acontecerá em nenhum jogo online) ou verificação no servidor, ou seja, observando as jogadas reais que foram jogadas (e talvez o tempo entre as jogadas, como você diz) e tentando deduzir o aspecto humano ou do computador.

A verificação no servidor também pode ser dividida de duas maneiras. Você provavelmente poderia tentar uma abordagem "de cima para baixo", que seria algo parecido com "de jogos anteriores da história, apenas 2% dos humanos fizeram esse movimento, enquanto 50% dos computadores o fizeram". Essa seria realmente uma maneira muito boa de fazer isso, se tivéssemos dados suficientes para "qualquer posição". O espaço de busca do xadrez é tão grande, no entanto, que mesmo conjuntos de dados muito grandes não terão um número significativo de jogos correspondentes à sua posição, assim que você passar do início do meio do jogo.

Supondo que não tenhamos estatísticas confiáveis ​​sobre o lado humano da equação, você ainda poderá apresentar a posição a vários mecanismos de xadrez (com várias configurações de tempo diferentes cada) e ver com que precisão os movimentos dos jogadores coincidem o de um computador. Por si só, isso também levaria a muitos falsos positivos, no entanto, repetidos positivos para o mesmo mecanismo de xadrez e configurações de tempo tornariam cada vez mais provável que o jogador estivesse trapaceando. Para melhorar ainda mais isso, eu provavelmente examinaria uma abordagem "de baixo para cima" de analisar posições de xadrez; em resumo, tentando descobrir por que humanos e computadores funcionam de maneira diferente. Por exemplo, os seres humanos tendem a reconhecer padrões comuns. Em um jogo com padrões "ímpares" ou situações improváveis, um ser humano teria menos probabilidade de jogar com muita precisão. Nenhum desses,

Para adicionar alguns detalhes específicos à sua lista, eu seguiria as linhas de como os professores detectam o plagarismo nos documentos - detectando uma mudança repentina. No xadrez, isso é extremamente difícil de definir, mas uma mudança repentina no estilo ou na força do jogo pode indicar trapaça. Especificamente, eu procuraria movimentos incomumente agressivos, que tendem a "dar certo" e não têm desvantagem para o jogador (muito preciso). Companheiros forçados em 4 ou mais movimentos de um jogador que normalmente coloca cavaleiros no limite do tabuleiro, etc. (é possível ... mas não é provável). Como exatamente isso funcionaria parece que poderia levar um livro inteiro (ou mais), no entanto.

EDIT: Houve recentemente um artigo sobre trapaça e detecção no xadrez de nível superior .

Daniel B
fonte
3
os seres humanos contra os computadores podem dar falsos positivos na abertura do jogo, é muito fácil de memorizar melhores jogadas
ajax333221
@ ajax333221 Concordo plenamente. Até certo ponto, algo semelhante pode se aplicar ao final do jogo, onde um humano pode jogá-lo quase perfeitamente, apenas com base no conhecimento prévio. Dito isso, se eu conseguir detectar possíveis trapaceiros em um jogo, tenho certeza de que, com informações adicionais e análises sofisticadas, um computador poderá fazer o mesmo. O mate forçado em 4+ movimentos era um exemplo real de uma recente jogo online vs um jogador avaliado 1050 - altamente sugestivo, para dizer o mínimo ...
Daniel B
20

Em blitz, você pode dizer quanto tempo eles estão usando. As pessoas que usam motores usam uma quantidade consistente de tempo para cada movimento, em vez de passar pela abertura e desacelerar para um rastreamento no meio do jogo, como a maioria dos jogadores normais. Em particular, eles não podem jogar a abertura rapidamente, porque precisam atualizar a placa do computador após cada movimento de abertura. Se eles levam cinco segundos no movimento dois e cinco segundos no movimento vinte, provavelmente estão usando um mecanismo.

Andrew Latham
fonte
Não tenho a certeza se isso era verdade no momento da postagem, mas stockfish pode aceitar tempo restante como uma entrada para priorizar o que se move para passar o tempo.
OganM
15

O número de trocas de tela e a velocidade de reprodução não têm sentido. Se você os usar para reclamar com os organizadores de um site de xadrez online, eles rirão de você.

Existem duas maneiras de saber se alguém está trapaceando. O primeiro é a "arma de fumar". Considere esta seção do jogo -

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

A questão é o que você jogaria nessa posição? A situação é que uma vitória nesta última rodada da competição ganhará o torneio à frente de uma série de grandes mestres. Nada mal para um mero 1900. Suspeito que a maioria de nós jogaria algo razoavelmente sólido que mantém a vitória. Movimentos como Rxb7 ou Rd7 ou (para covardes como eu ;-) Rxf6. Qa7 é uma parada para um movimento, uma arma de fumar. Fritz classifica como a melhor jogada na posição, uma gritante 0,1 à frente da próxima melhor jogada, Rd7.

Jogo de arma de fumo nº 2 no final do jogo, quando o preto se demitiu, deixando o jogador classificado em 1900 como vencedor absoluto do torneio. O que você diria a Kalinitschev nessa posição?

Foi assim que a conversa foi:

Allwermann: "É companheiro em 8"

Kalinitschev: "Acho que não"

Allwermann: "" Confira, você descobrirá que estou certo "

Allwermann estava certo, é claro. Você consegue encontrar o companheiro em 8 na posição final? Sem assistência de silicone?

Então, você tem sua arma de fumar e a leva para os organizadores. O que eles farão?

Bem, então vem a segunda maneira de detectar e provar, sem sombra de dúvida, que a trapaça está acontecendo.

Eles precisarão coletar pelo menos 20 jogos cada um com pelo menos 20 movimentos que não sejam do banco de dados e alimentá-los em um mecanismo para verificação. Basicamente, o que eles procuram é a porcentagem de vezes que o suspeito escolhe uma movimentação que não é do banco de dados que corresponde à primeira escolha do mecanismo, uma das 2 primeiras escolhas, uma das 3 primeiras escolhas. Os limites de "prova" são -

Top 1 65%

2 principais 80%

Top 3 90%

Um exemplo recente é o furor do desempenho de Borislav Ivanov .

Aqui estão as estatísticas dele -

Zadar 19: Houdini 1.5a x64 Hash: 256 Tempo: 30s Profundidade máxima: 20ply {Borislav Ivanov (Jogos: 9)}

{Top 1 Jogo: 210/314 (66,9%) Oponentes: 150/313 (47,9%)

{2 principais resultados: 270/314 (86,0%) Oponentes: 207/313 (66,1%)

{3 principais resultados: 285/314 (90,8%) Oponentes: 238/313 (76,0%)

{4 principais resultados: 293/314 (93,3%) Oponentes: 267/313 (85,3%)

Na 8ª rodada, o feed ao vivo caiu (suspeita-se que isso tenha permitido que sua ajuda externa fizesse as jogadas) e ele perdeu para o GM Predojevic. Se esse resultado for removido, as novas estatísticas serão:

Zadar 19: Houdini 1.5a x64 Hash: 256 Tempo: 30s Profundidade máxima: 20ply {Borislav Ivanov (Jogos:)}

{Top 1 Jogo: 197/287 (68,6%) Oponentes: 135/286 (47,2%)

{2 principais resultados: 252/287 (87,8%) Oponentes: 188/286 (65,7%)

{3 principais resultados: 265/287 (92,3%) Oponentes: 218/286 (76,2%)

{4 principais resultados: 272/287 (94,8%) Oponentes: 242/286 (84,6%)

Como você vê, ambos os conjuntos de estatísticas o levariam a um servidor de xadrez. Para comparação, aqui está a análise do jogo 8 quando o feed foi desativado:

{Branco: Borislav Ivanov}

{Top 1 Jogo: 13/27 (48,1%)

{2 principais correspondências: 18/27 (66,7%)

{3 principais correspondências: 20/27 (74,1%)

{4 principais jogos: 22/27 (81,5%)

{Preto: Borki Predojevic}

{1 partida principal: 15/27 (55,6%)

{2 principais correspondências: 19/27 (70,4%)

{3 principais correspondências: 20/27 (74,1%)

{4 principais correspondências: 25/27 (92,6%)

Observe que a FIDE criou uma comissão para investigar maneiras de detectar e combater trapaças em computadores. Suas diretrizes estão aqui . Observe esta seção:

E. A ferramenta de seleção de jogos baseada na Internet da FIDE

A FIDE fornecerá uma Ferramenta de Triagem de Jogos baseada na Internet, acessível a todos os funcionários autorizados da FIDE (membros de OI, IA, ACC) e Federações Nacionais. Ele deverá estar hospedado em uma página da Web dedicada à FIDE e permitirá que as partes autorizadas enviem jogos no formato PGN para um "teste rápido" que identificará possíveis discrepantes em um torneio. Por "triagem", entende-se que isso fornece apenas um teste preliminar sem valor de julgamento, exceto que pode ser citado ao rejeitar alegações e recusar-se a prosseguir com um teste manual completo.

Brian Towers
fonte
11
Ótima análise! Os resultados T3 / T4 são convincentes, especialmente quando a probabilidade de seus resultados é relatada. BTW: Sei que sua postagem foi feita há algum tempo, mas você ainda tem a citação da conversa entre Kalinitschev e Allwermann? Claramente, nenhum 1900 vai encontrar um companheiro em 8 de forma confiável, especialmente quando um 2500 não o vê. Não parece particularmente inteligente para ele ter levantado esse ponto quando por si só poderia causar a suspeita de que ele estava trapaceando.
Jaxter
11
BTW: Eu discordo que Qa7! é uma parada para o coração. É simplesmente explorar os dois fatos que: 1) o ranking traseiro do preto é fraco e 2) ele é vulnerável a um parceiro nele. Portanto, qualquer desvio da torre na classificação traseira permitirá táticas potencialmente vencedoras. Nesse caso, as brancas usam o movimento para atacar o peão-b e coordenar sua rainha e torre no sétimo, para que a torre seja defendida. As brancas vencem pelo menos um peão após 1 ... Qxf7 2.Qxa8 + Qg8 3.Qxb7. Acho que qualquer GM deveria ter visto o movimento Qa7, e estou muito surpreso que Kalinitschev tenha perdido. É a jogada mais violenta no tabuleiro, depois do Rxf6 ?!
Jaxter
11
@jaxter As informações são de en.chessbase.com/post/a-history-of-cheating-in-che-3- . Nota "Eu discordo que Qa7! É um impedimento para o coração" - se você ler o artigo, verá que Vishy Anand discorda de você :-). Do artigo - 'Então, o que nosso herói interpreta? 31.Qa7? !! “Fritzy!”, Gritou Anand e caiu em gargalhadas incontroláveis ​​quando viu isso e os seguintes movimentos (eu filmei sua alegria e a incluí no meu relatório multimídia na ChessBase Magazine 69). '
Brian Towers
Obrigado pela referência. Eu entendi seu ponto. Eu certamente estaria disposto a tentar a jogada, mas isso é em parte porque eu teria julgado que as brancas poderiam sobreviver ao contra-ataque das pretas sem calcular todas as linhas . Se eu tentasse fazer isso a) teria certeza de que cometeria um erro fatal eb) pegaria os heebie-jeebies e escolheria uma jogada diferente. É justamente por usar a intuição que eu sempre jogo movimentos esquisitos como ... Qa7 !. É também, sem dúvida, um fator que contribui para isso a minha avaliação é inferior a 2000 ...
Jaxter
Há uma diferença entre a jogada principal ser uma jogada sonora que você espera que muitos jogadores encontrem e uma tática brilhante que você não espera que a maioria dos jogadores veja. O jogo de White acima tem vários destes últimos.
CashCow 18/03/19
9

Para dar minha resposta sobre como eu abordaria isso, usaria uma idéia simples:

  • Teste de Hipótese Nula

A idéia é que existe um número limitado de mecanismos de xadrez disponíveis ao público, digamos assim N. Essa suposição, é claro, exclui a possibilidade de que o trapaceiro tenha escrito seu próprio mecanismo de xadrez (ou esteja usando algum mecanismo de xadrez publicamente indisponível), mas para capturar trapaceiros casuais, essa deve ser uma premissa suficientemente forte.

A aplicação do Teste de Hipótese Nula seria muito simples: para cada mecanismo de xadrez Xe para cada subsequência de movimentos do jogo atual calcule a probabilidade pde observar a subsequência jogada assumindo a hipótese nula de que o jogador não está usando o mecanismo de xadrez Xpara fazer os movimentos. para eles. Uma suposição ingênua pode ser feita de que o jogador se move aleatoriamente (ou escolhe aleatoriamente um número selecionado de movimentos principais d_i); então, a probabilidade de uma determinada subsequência de kmovimentos de correspondência de comprimento que um mecanismo de xadrez Xfaria seria computada como (d_1)/(n_1) * (d_2)/(n_2) * (d_3)/(n_3) *...* (d_k)/(n_k)onde d_iestá o número de possíveis movimentos (superiores) para fazer noithturno, conforme classificado pelo mecanismo Xe n_ié o número total de jogadas disponíveis para o jogador no turno i(ou algum subconjunto razoável).

Então simplesmente calcule

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

Se p*for menor que um determinado limite, rotule o jogador como trapaceiro, pois existe um ymecanismo de subsequência e xadrez Xque traz a probabilidade de que o jogador não trapaceie abaixo da probabilidade desejada.

ldog
fonte
8

Acho que a análise pós-jogo oferece a melhor chance de identificar se um jogador estava trapaceando. Isso pode ser feito usando o que é chamado de análise T3 / T4.

Isso basicamente mede a frequência com que um jogador escolhe um dos 3 ou 4 melhores movimentos sugeridos por um mecanismo. Isso elimina amplamente a necessidade de identificar o mecanismo de destino em uso (pois eles geralmente concordam com os movimentos 4/5 superiores, mesmo que a ordem de preferência seja diferente).

Existem softwares disponíveis que executarão um conjunto de jogos do usuário contra os n movimentos principais do mecanismo. Editar:

Estou ciente do ChessAnalyse que pode ser usado para fazer essa análise. Você pode experimentar a versão de avaliação de 30 dias.

sidprasher
fonte
2
Isso pode ser combatido por um trapaceiro inteligente que possui algum conhecimento de xadrez da seguinte maneira: jogue movimentos que simplesmente não pioram sua posição e aguarde o erro do seu oponente que comprometeria sua posição. Se você estiver jogando de 5 a 15 minutos contra alguém que não tem força GM, isso definitivamente acontecerá, mais cedo ou mais tarde. Se, além disso, você faz uma jogada ruim ocasional e / ou não insiste em vencer todos os jogos, tenho certeza de que sua trapaça não será detectada.
Andrea Mori
@AndreaMori: eu concordo que você pode evitar algumas situações, mas, à medida que sua classificação melhorar, ele será obrigado a procurar cada vez mais e, eventualmente, será detectado.
sidprasher
Obrigado, você mencionou que há software disponível. Você pode dar um exemplo?
Salvador Dali
6

Se o seu site fornecer aos usuários um clique para obter posições FEN ou PGN enquanto o jogo estiver em execução , considere rastrear essas informações.

Alguns trapaceiros trapaceiam desde o início, mas outros preferem começar a trapacear apenas quando estão com problemas, e obviamente usarão o recurso FEN / PGN de ​​cópia, pois é demorado configurar a posição manualmente.

De alguma forma, você deve guardar isso junto com o movimento no momento em que ele o copiou, dessa forma você pode comparar desse ponto aos movimentos seguintes e ver se a força dele aumentou muito com o auxílio de máquinas de xadrez.

Mas é muito importante que você o use apenas para ajudá-lo a decidir se ele estava trapaceando, seria injusto usar um script que não use intervenção humana; pode haver muitos falsos positivos, por exemplo, eu geralmente gosto de copiar posições enquanto jogo para analisá-los mais tarde, sem a necessidade de procurar meu jogo ou encontrar o movimento exato do PGN. E nem sempre o deixo na minha área de transferência por medo de sobrescrevê-lo, então o movo para o bloco de notas (o que significa que troco de janela logo após copiá-lo).

ajax333221
fonte
2
Isso parece abordar o ponto de vista "como gerenciar um servidor", em vez do "meu oponente está trapaceando?" um (não que o OP tenha dito algo sobre qual caso importava para ele). Pode valer a pena mencioná-lo, pois levei um pouco de tempo para entender o que você queria dizer, pensando no ponto de vista do jogador. (Boa resposta ... uma vez que isto é compreendido ^ _ ^ ')
Nikana Reklawyks
11
obrigado @ajax. Não pensei em salvar o movimento em que a posição foi copiada e analisar a diferença entre a força antes e depois.
Salvador Dali
e, é claro, os trapaceiros descobrirão e desativarão esse rastreamento. ou fazer a sua própria funcionalidade de cópia, não é tão difícil: codegolf.stackexchange.com/questions/89647/chess-conversion
Sarge Borsch
3

FWIW, ninguém mencionou o Dr. Ken Regan pelo nome, embora o ponteiro para o blog de Lipton descreva outro artigo no Chess Life que discute seu trabalho.

Esse artigo é muito informativo sobre o trabalho de Regan, o estado das técnicas de detecção que estavam em vigor em 2014 e o trabalho da FIDE na criação de um comitê para definir e promulgar padrões, ferramentas e técnicas para ajudar os TDs a combater fraudes.

jaxter
fonte