Hay muchos sitios web en línea, donde los jugadores pueden jugar al ajedrez en tiempo real entre ellos. La mayoría de los juegos duran entre 5 y 10 minutos. Con la disponibilidad de software de ajedrez, uno puede aprovechar al usar Fritz o Rybka para sugerirle un movimiento.

Por ejemplo, puedo ingresar cada movimiento de mi oponente y ver qué software me sugiere. .

Estaba pensando en algunas características que pueden sugerir que el jugador está haciendo trampa:

  • número de veces que cambia la pantalla
  • velocidad de jugar (en posiciones fáciles y realmente difíciles)
  • precisión del juego

¿Alguien tiene alguna otra idea?

PD: Sí no importa para mí, desde qué perspectiva estás pensando (del lado del servidor o del cliente).

Comentarios

  • ¡Excelente pregunta y problema relevante hoy! ¿Pero te refieres a detectar trampas relámpago en línea usando un algoritmo o detectar solo como un jugador humano mientras juega contra un oponente?
  • Las estrategias de detección de trampas solo funcionan cuando el tramposo es » estúpido «. Adoptar estrategias de trampa más inteligentes (ver mi comentario a NoviceProgrammer ‘ s respuesta) haría que la trampa sea casi imposible de adivinar.
  • Creo que esto es bastante sin problema. Juego en chess.com. Supongo que tal vez 1 persona de cada 10 realmente hace trampa. Y si sospecho que mi oponente recibió ayuda, simplemente lo bloqueo.

Responder

Esto es en realidad un pregunta muy compleja, y no una que haya sido resuelta de manera satisfactoria, que yo sepa. Esencialmente, estamos solicitando un algoritmo para realizar una especie de prueba de Turing inversa, para diferenciar entre jugadores humanos y computadoras.

Primero, las verificaciones del lado del cliente siempre tendrán debilidades, a menos que esté en control completo del entorno del cliente. Tomemos la primera idea: comprobar el cambio entre ventanas, suena bien. Desafortunadamente, se soluciona trivialmente ejecutando un motor de ajedrez en una computadora separada, o integrando mi motor con el cliente para que no se produzca ningún «cambio de ventana», o cambiando el cliente para que informe 0 cambios en la ventana, o … No hay forma real de estar seguro de que es su código ejecutándose en el cliente, en realidad.

Lo que nos queda son entornos de cliente físicamente controlados (que no va a suceder para ningún juego en línea), o verificación del lado del servidor, es decir, mirar los movimientos reales que se jugaron (y tal vez el tiempo entre los movimientos, como usted dice), y tratar de deducir el aspecto de la computadora o el humano .

La verificación del lado del servidor también se puede dividir en un par de formas. Probablemente podría probar un enfoque «de arriba hacia abajo», que sería algo así como «de juegos anteriores en la historia, solo el 2% de los humanos hicieron ese movimiento, mientras que el 50% de las computadoras lo hacen «. Esta sería una manera bastante buena de hacerlo, si tuviéramos suficientes datos para» cualquier posición dada «. La búsqueda El ritmo del ajedrez es tan grande, sin embargo, que incluso conjuntos de datos muy grandes no tendrán un número significativo de juegos que coincidan con su posición, una vez que pase la mitad del juego temprano.

Suponiendo que no Si tiene alguna estadística confiable en el lado humano de la ecuación, aún puede presentar la posición a varios motores de ajedrez (con una cantidad de configuraciones de tiempo diferentes cada uno) y ver qué tan cerca los movimientos de los jugadores coinciden con los de una computadora. Por sí solo, esto también daría lugar a muchos falsos positivos; sin embargo, los positivos repetidos para el mismo motor de ajedrez y la configuración de tiempo harían cada vez más probable que el jugador estuviera haciendo trampa. Para mejorar aún más esto, probablemente buscaría un enfoque «de abajo hacia arriba» para analizar las posiciones del ajedrez; en resumen, intentar averiguar por qué los humanos y las computadoras juegan de manera diferente. P.ej. los humanos tienden a reconocer patrones comunes. En un juego con patrones «extraños» o situaciones poco probables, es menos probable que un humano pueda jugar con mucha precisión. Ninguno de estos, por sí mismo, es particularmente condenatorio, pero dada la gran cantidad de juegos, destacaría las tendencias para los administradores.

Para agregar algunos detalles a su lista, iría en la línea de cómo los profesores Detecte el plagarismo en los papeles, detectando un cambio repentino. En el ajedrez, esto es extremadamente difícil de definir, pero un cambio repentino en el estilo de juego o en la fuerza del juego puede indicar una trampa. Específicamente, buscaría movimientos inusualmente agresivos que tienden a «funcionar» y no tienen inconvenientes para el jugador (demasiado precisos). Forzar mates en 4+ movimientos de un jugador que normalmente pone a los caballos en el borde del tablero. , etc (es posible … simplemente no probable). Sin embargo, cómo funcionaría exactamente esto parece que podría ocupar todo un libro (o más).

EDITAR: Había un artículo sobre trampa y detección en el ajedrez de alto nivel recientemente.

Comentarios

  • los humanos contra las computadoras pueden dar falsos positivos en la apertura del juego, es muy fácil memorizar las mejores jugadas
  • @ ajax333221 Estoy completamente de acuerdo. Hasta cierto punto, algo similar puede aplicarse al final del juego, donde un humano podría jugarlo casi a la perfección, solo con base en el conocimiento previo. Dicho esto, si puedo detectar posibles trampas en un juego, estoy ‘ seguro de que con información adicional y un análisis sofisticado, una computadora podría hacer lo mismo. El mate forzado en más de 4 movimientos fue un ejemplo real de un juego en línea reciente frente a un jugador con una calificación de 1050: muy sugerente, por decir lo menos …

Responder

En blitz, puedes saber cuánto tiempo están usando. Las personas que usan motores usan una cantidad constante de tiempo para cada movimiento, en lugar de pasar por la apertura y ralentizar a un crawl en el medio juego como la mayoría de los jugadores normales. En particular, no pueden jugar la apertura rápido, porque tienen que actualizar su tablero de computadora después de cada movimiento de apertura. Si tardan cinco segundos en el movimiento dos y cinco segundos en el movimiento veinte, probablemente estén usando un motor.

Comentarios

  • No estoy seguro si esto era cierto en el momento de la publicación, pero stockfish puede aceptar el tiempo restante como una entrada para priorizar en qué movimientos pasar el tiempo.

Responder

La cantidad de cambios de pantalla y la velocidad del juego no tienen sentido. Si los usa para quejarse a los organizadores de un sitio web de ajedrez en línea, se reirán de usted.

Hay dos formas para saber si alguien está haciendo trampa. La primera es la «pistola humeante». Considere esta sección del juego –

[White "Allwermann,Clemens (1900) "] [Black "Kalinitschev,Sergey (2505) Boeblingen (9), 30.12.1999"] [FEN "r6k/1p3Rpp/p2p1bq1/3N4/2P5/1P6/P1b2QPP/5RK1 w - - 0 1"] 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 

La pregunta es a qué jugarías en ese La situación es que una victoria en esta, la última ronda de la competencia, te hará ganar el torneo por delante de una serie de grandes maestros. Nada mal para un mero 1900. Sospecho que la mayoría de nosotros jugaría algo razonablemente sólido que mantiene el ganar. Movimientos como Txb7 o Td7 o (para cobardes como yo 😉 Txf6. Qa7 es un freno de un movimiento, una pistola humeante. Fritz califica como el mejor movimiento en la posición, un enorme 0.1 por delante del siguiente mejor movimiento, Td7.

Juego de pistola humeante # 2 al final del juego cuando las negras renunciaron dejando al jugador clasificado 1900 como el mejor ganador absoluto del torneo. ¿Qué le dirías a Kalinitschev en esa posición?

Así fue la conversación:

Allwermann: «Es mate en 8»

Kalinitschev: «No lo creo»

Allwermann: «» Fíjate, encontrarás que «tengo razón»

Allwermann tenía razón, por supuesto. ¿Puedes encontrar al mate en 8 en la posición final? ¿Sin asistencia de silicona?

Entonces, tienes tu pistola humeante y la llevas a los organizadores. ¿Qué harán?

Bueno, entonces viene la segunda forma de detectar y probar más allá de toda duda razonable que se está haciendo trampa.

Deberán recolectar al menos 20 juegos cada uno con al menos 20 movimientos que no son de base de datos y los alimenta a un motor para su verificación. Básicamente, lo que buscan es el porcentaje de tiempo que el sospechoso elige un movimiento que no pertenece a la base de datos y que coincide con la primera elección del motor, una de las 2 primeras elecciones, una de las 3 primeras. p>

Top 1 65%

Top 2 80%

Top 3 90%

Un ejemplo reciente es el furor por la actuación de Borislav Ivanov .

Aquí están sus estadísticas:

Zadar 19: Houdini 1.5a x64 Hash: 256 Tiempo: 30 s máx. Profundidad: 20ply {Borislav Ivanov (Juegos: 9)}

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

{Top 2 Partido: 270/314 (86,0%) Rivales: 207/313 (66,1%)

{Top 3 partido: 285/314 (90,8%) Rivales: 238/313 (76,0%)

{Top 4 Match: 293/314 (93.3%) Opponents: 267/313 (85.3%)

En la octava ronda la transmisión en vivo se redujo (se sospecha que esto permitió su ayuda externa obtener los movimientos) y perdió ante el GM Predojevic. Si se elimina este resultado, las nuevas estadísticas son:

Zad 19 de ar: Houdini 1.5a x64 Hash: 256 Tiempo: 30 s Profundidad máxima: 20ply {Borislav Ivanov (Juegos:)}

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

{Partido de los 2 primeros: 252/287 (87,8%) Oponentes: 188/286 (65,7%)

{Partido de los 3 primeros: 265/287 (92,3%) Oponentes: 218/286 (76,2%)

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

Como ves, ambos conjuntos de las estadísticas lo sacaría de un servidor de ajedrez. A modo de comparación, aquí está el análisis del juego 8 cuando el feed no funcionaba:

{Blanco: Borislav Ivanov}

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

{Partido de los 2 mejores: 18/27 (66,7%)

{Partido de los 3 mejores: 20/27 (74,1%)

{Partido de los 4 mejores: 22/27 (81,5%)

{Negro: Borki Predojevic}

{Partido Top 1: 15/27 (55,6%)

{Partido Top 2: 19 / 27 (70,4%)

{Partido de los 3 primeros: 20/27 (74,1%)

{Partido de los 4 primeros: 25/27 (92.6%)

Tenga en cuenta que la FIDE ha creado una comisión para investigar formas de detectar y combatir las trampas informáticas. Sus pautas están aquí . Tenga en cuenta esta sección:

E. La herramienta de selección de juegos basada en Internet de la FIDE

La FIDE proporcionará una herramienta de selección de juegos basada en Internet, a la que podrán acceder todos los funcionarios autorizados de la FIDE (miembros IO, IA, ACC) y las federaciones nacionales. Se alojará en una página web dedicada a la FIDE y permitirá a las partes autorizadas cargar juegos en formato PGN para una «prueba rápida» que identificará posibles valores atípicos en un torneo. Por «selección» se entiende que esto proporciona solo una prueba preliminar sin valor de juicio, excepto que se puede citar mientras se rechazan las acusaciones y se niega a proceder a una prueba completa manual.

Comentarios

  • ¡Excelente análisis! Los resultados de T3 / T4 son convincentes, especialmente cuando se informa la probabilidad de sus resultados. Por cierto: me doy cuenta de que su publicación se hizo hace un tiempo, pero ¿todavía tiene la cita para la conversación entre Kalinitschev y Allwermann? Claramente, ningún 1900 encontrará un compañero en 8 de manera confiable, especialmente cuando un 2500 no ‘ no lo ve. No ‘ suena particularmente inteligente para él haber planteado este punto cuando podría por sí mismo causar la sospecha de que él ‘ s haciendo trampa.
  • Por cierto: ¡No estoy de acuerdo con Qa7! es un freno al corazón. Es ‘ simplemente explotar los dos hechos que: 1) el rango de ‘ negro es débil, y 2) él ‘ es vulnerable a un compañero en él. Entonces, cualquier desvío de la torre de la última fila permitirá tácticas potencialmente ganadoras. En este caso, las blancas usan el movimiento para atacar el peón b y coordinar su dama y torre en el séptimo para que la torre esté defendida. Las blancas ganan al menos un peón después de 1 … Dxf7 2.Dxa8 + Dg8 3.Dxb7. Creo que cualquier DJ debería haber visto el movimiento Qa7, y yo ‘ estoy muy sorprendido de que Kalinitschev no lo haya visto. ¿Es ‘ el movimiento más forzado en el tablero, después de Txf6?
  • @jaxter La información proviene de en.chessbase.com/post/a-history-of-cheating-in-che-3- . Nota » ¡No estoy de acuerdo con Qa7! es un freno » – si lees el artículo verás que Vishy Anand no está de acuerdo contigo :-). Del artículo: ‘ Entonces, ¿a qué juega nuestro héroe? 31.Qa7? !! «¡Fritzy!» chilló Anand y se echó a reír incontrolablemente cuando vio esto y los siguientes movimientos (filmé su alegría y la incluí en mi informe multimedia en ChessBase Magazine 69). ‘
  • Gracias por la referencia. Entiendo tu punto. Ciertamente habría estado dispuesto a intentarlo, pero eso ‘ es en parte porque habría juzgado que las blancas podrían sobrevivir a las negras ‘ s contraataque sin calcular todas las líneas . Si intentara hacer eso a) ‘ me aseguraría de cometer un error fatal, yb) ‘ obtendría el heebie-jeebies y elige un movimiento diferente. Es ‘ precisamente porque utilizo la intuición de que a menudo juego movimientos extraños como … ¡Qa7 !. Es ‘ también, sin duda, un factor que contribuye a que mi calificación sea inferior a 2000 …
  • Hay ‘ sa la diferencia entre el movimiento superior es un movimiento sólido que ‘ esperarías que encontraran muchos jugadores y una táctica brillante que no ‘ t Espere que la mayoría de los jugadores lo vean. El juego de ‘ blanco de arriba tiene varios de estos últimos.

Responder

Para dar mi respuesta sobre cómo abordaría esto, usaría una idea simple:

  • Prueba de hipótesis nula

La idea es que hay un número limitado de motores de ajedrez disponibles públicamente, digamos N de ellos. Esta suposición, por supuesto, excluye la posibilidad de que el tramposo haya escrito su propio motor de ajedrez (o esté usando algún motor de ajedrez no disponible públicamente), pero para atrapar a los tramposos casuales, esto debería ser una suposición suficientemente sólida.

La aplicación de la Prueba de hipótesis nula sería muy simple: para cada motor de ajedrez X y para cada subsecuencia de movimientos del juego actual, calcule la probabilidad p de observar la subsecuencia reproducida asumiendo el hipótesis nula de que el jugador es no usando el motor de ajedrez X para hacer los movimientos por ellos. Se podría hacer una suposición ingenua de que el jugador se mueve al azar (o elige al azar entre un número selecto de movimientos principales d_i), luego la probabilidad de una subsecuencia dada de longitud k movimientos coincidentes que un motor de ajedrez X haría se calcularía como (d_1)/(n_1) * (d_2)/(n_2) * (d_3)/(n_3) *...* (d_k)/(n_k) donde d_i es el número de movimientos posibles (superiores) que se pueden realizar en el ith giro, según la clasificación del motor X y n_i es el número total de movimientos disponibles para el jugador en el turno i (o algún subconjunto razonable).

Luego, simplemente calcule

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

Si p* es menor que un cierto umbral, etiquete al jugador como tramposo ya que existe una subsecuencia y y un motor de ajedrez X que brinda la probabilidad de que el jugador sea no hacer trampa por debajo de una probabilidad deseada.

Respuesta

Creo que el análisis posterior al juego te brinda la mejor oportunidad de identificar si un jugador estaba haciendo trampa. Esto se puede hacer usando lo que se llama análisis T3 / T4.

Esto básicamente mide la frecuencia con la que un jugador elige uno de los 3 primeros o 4 primeros movimientos sugeridos por un motor. Esto elimina en gran medida la necesidad de identificar el motor de destino en uso (ya que generalmente estarán de acuerdo en los 4/5 movimientos principales incluso si el orden de preferencia es diferente).

Hay software disponible que ejecutará un conjunto de juegos del usuario contra los n primeros movimientos del motor. Editar:

Estoy al tanto de ChessAnalyse que se puede utilizar para realizar dicho análisis. Puede probar la versión de prueba de 30 días.

Comentarios

  • Esto puede ser contrarrestado por un tramposo inteligente que tenga algunos conocimientos de ajedrez de la siguiente manera: eso simplemente no empeora su posición y espera a que su oponente ‘ cometa un error que comprometa su posición. Si estás jugando relámpago de 5 a 15 minutos contra alguien que no tiene la fuerza de GM, esto definitivamente sucederá, tarde o temprano. Si además realiza una mala jugada ocasional y / o no insiste en ganar todos los juegos, ‘ estoy seguro de que su trampa no será detectada.
  • @AndreaMori: estoy de acuerdo en que puedes evitar algunas situaciones, pero a medida que su calificación mejore, se verá obligado a buscar más y más y eventualmente será detectado.
  • Gracias, has mencionado que hay software disponible. ¿Puede dar un ejemplo?

Responder

Si su sitio les da a los usuarios un clic, obtenga posiciones FEN o PGN mientras se ejecuta el juego , deberías considerar rastrearlos.

Algunos tramposos hacen trampa desde el principio, pero otros prefieren comenzar a hacer trampas solo cuando están en problemas, y lo harán obviamente use la función de copiar FEN / PGN, ya que se necesita mucho tiempo para configurar la posición manualmente.

De alguna manera, debe almacenar eso junto con el movimiento en el momento en que lo copió, de esta manera puede comparar desde eso apunte a los siguientes movimientos y vea si su fuerza aumentó mucho con la ayuda de motores de ajedrez.

Pero es muy importante que lo use solo para ayudarlo a decidir si estaba haciendo trampa, sería injusto Para usar un script que no utiliza intervención humana, puede haber muchos falsos positivos, por ejemplo, a menudo me gusta copiar posiciones mientras juego para analizarlas luego sin necesidad de buscar mi juego o encontrar el El movimiento exacto de la PGN. Y no siempre lo dejo en mi portapapeles por miedo a sobrescribirlo, así que lo muevo al bloc de notas (lo que significa que cambio de ventana justo después de copiarlo).

Comentarios

  • Esto parece estar abordando el » cómo administrar un » punto de vista del servidor, en lugar de el » ¿está haciendo trampa mi oponente? » uno (no es que el OP dijera nada sobre qué caso le importaba). eso, ya que me tomó un poco de tiempo entender lo que querías decir, pensando en el punto de vista del ‘ del jugador.(Buena respuesta … una vez que se entienda esto ^ _ ^ ‘)
  • gracias @ajax. No he pensado en guardar el movimiento en el que se copió la posición y analizar la diferencia entre la fuerza antes y después.
  • y, por supuesto, los tramposos descubrirán y deshabilitarán ese seguimiento. o hacer su propia función de copia, ‘ no es tan difícil: codegolf.stackexchange.com/questions/89647/chess-conversion

Respuesta

FWIW, nadie ha mencionado al Dr. Ken Regan por su nombre, aunque el El puntero al blog de Lipton describe otro artículo en Chess Life que trata sobre su trabajo.

Ese artículo es muy informativo sobre el trabajo de Regan, el estado de las técnicas de detección que estaban en vigor en 2014 y el trabajo de la FIDE en la creación de un comité para definir y promulgar estándares, herramientas y técnicas para ayudar a TD » s en acabar con las trampas.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *