Hay muchos sitios web en línea, donde los jugadores pueden jugar ajedrez en tiempo real entre ellos. La mayoría de los juegos duran entre 5 y 10 minutos. Con la disponibilidad del software de ajedrez, uno puede aprovechar el uso de Fritz o Rybka para sugerirle un movimiento.
Por ejemplo, puedo ingresar cada movimiento de mi oponente y ver qué software me sugerirá.
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 juego (en posiciones fáciles y realmente difíciles)
- precisión del juego
¿Alguien tiene alguna otra idea?
PD: No me importa, desde qué perspectiva está pensando (servidor o cliente).
analysis
online-chess
Salvador Dalí
fuente
fuente
Respuestas:
Esta es en realidad una pregunta muy compleja, y no una que haya sido resuelta de manera satisfactoria, que yo sepa. Esencialmente, estamos pidiendo 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 tenga el control completo del entorno del cliente. Tomemos la primera idea: comprobar si cambia 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 un "cambio de ventana", o cambiando el cliente para informar 0 cambios en la ventana, o ... No hay forma real de asegurarse de que realmente se trata de su código que se ejecuta en el cliente.
Lo que nos queda es entornos de cliente controlados físicamente (que no 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 dices), y tratando de deducir la computadora o el aspecto humano.
La comprobación del lado del servidor también puede dividirse de dos maneras. Probablemente podría intentar un enfoque "de arriba hacia abajo", que sería algo similar a "de juegos pasados en la historia, solo el 2% de los humanos hizo ese movimiento, mientras que el 50% de las computadoras lo hicieron". En realidad, esta sería una muy buena manera de hacerlo, si tuviéramos suficientes datos para "cualquier posición dada". Sin embargo, el espacio de búsqueda del ajedrez es tan grande que incluso los 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 primera mitad del juego.
Suponiendo que no tenemos estadísticas confiables sobre el lado humano de la ecuación, aún podría presentar la posición a varios motores de ajedrez (con una cantidad de configuraciones de tiempo diferentes cada uno) y ver qué tan cerca coinciden los movimientos de los jugadores el de una computadora. Por sí solo, esto también conduciría a muchos falsos positivos, sin embargo, los repetidos positivos para el mismo motor de ajedrez y la configuración del tiempo harían más y 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 de ajedrez; en resumen, tratando de descubrir por qué los humanos y las computadoras juegan de manera diferente. Por ejemplo, los humanos tienden a reconocer patrones comunes. En un juego con patrones "extraños" o situaciones poco probables, sería menos probable que un humano pueda jugar con mucha precisión. Ninguno de esos,
Para agregar algunos detalles a su lista, seguiría la línea de cómo los profesores detectan el plagarismo en los documentos, al detectar un cambio repentino. En ajedrez, esto es extremadamente difícil de definir, pero un cambio repentino en el estilo de juego o la fuerza de juego puede indicar trampa. Específicamente, buscaría movimientos agresivos inusualmente que tienden a "funcionar" y no tienen inconvenientes para el jugador (demasiado precisos). Compañeros forzados en más de 4 movimientos de un jugador que normalmente pone caballeros en el borde del tablero, etc. (es posible ... simplemente no es probable). Sin embargo, cómo funcionaría exactamente esto parece que podría ocupar un libro completo (o más).
EDITAR: Hubo un artículo sobre trampa y detección en el ajedrez de alto nivel recientemente.
fuente
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 rápidamente por la apertura y reducir la velocidad para arrastrarse en el medio juego como la mayoría de los jugadores normales. En particular, no pueden jugar la apertura rápidamente, porque tienen que actualizar su tablero de la 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.
fuente
El número de cambios de pantalla y la velocidad de juego no tienen sentido. Si los utiliza para quejarse ante los organizadores de un sitio web de ajedrez en línea, se reirán de usted.
Hay dos formas de saber si alguien está haciendo trampa. El primero es la "pistola humeante". Considera esta sección del juego:
La pregunta es ¿qué jugarías en esa posición? 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. No está mal para un mero 1900. Sospecho que la mayoría de nosotros jugaríamos algo razonablemente sólido que mantiene la victoria. Se mueve como Rxb7 o Rd7 o (para cobardes como yo ;-) Rxf6. Qa7 es el corazón 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, Rd7.
El juego de la pistola humeante n. ° 2 al final del juego cuando las negras renunciaron, dejando al jugador clasificado en 1900 como el ganador absoluto del torneo. ¿Qué le dirías a Kalinitschev en esa posición?
Así fue la conversación:
Allwermann: "Es compañero en 8"
Kalinitschev: "No lo creo"
Allwermann: "" Compruébalo, verás que tengo razón "
Allwermann tenía razón, por supuesto. ¿Puedes encontrar al compañero en 8 en la posición final? Sin asistencia de silicio?
Entonces, tienes tu pistola humeante y la llevas a los organizadores. ¿Qué harán ellos?
Bueno, entonces viene la segunda forma de detectar y probar más allá de toda duda razonable que está ocurriendo el engaño.
Tendrán que recopilar al menos 20 juegos cada uno con al menos 20 movimientos que no sean de la base de datos y alimentarlos en un motor para su verificación. Básicamente, lo que están buscando es el porcentaje de veces que el sospechoso elige un movimiento que no pertenece a la base de datos que coincide con la primera selección del motor, una de las primeras 2 selecciones, una de las primeras 3 selecciones. Los umbrales de "prueba" son:
Top 1 65%
Top 2 80%
Top 3 90%
Un ejemplo reciente es el furor sobre el desempeño de Borislav Ivanov .
Aquí están sus estadísticas:
Zadar 19th: Houdini 1.5a x64 Hash: 256 Tiempo: 30s Profundidad máxima: 20ply {Borislav Ivanov (Juegos: 9)}
{Top 1 Match: 210/314 (66.9%) Oponentes: 150/313 (47.9%)
{Top 2 Match: 270/314 (86.0%) Oponentes: 207/313 (66.1%)
{Top 3 Match: 285/314 (90.8%) Oponentes: 238/313 (76.0%)
{Top 4 Match: 293/314 (93.3%) Oponentes: 267/313 (85.3%)
En la octava ronda, la transmisión en vivo se redujo (se sospecha que esto permitió que su ayuda externa obtuviera los movimientos) y perdió ante GM Predojevic. Si se elimina este resultado, las nuevas estadísticas son:
Zadar 19th: Houdini 1.5a x64 Hash: 256 Tiempo: 30s Profundidad máxima: 20ply {Borislav Ivanov (Juegos:)}
{Top 1 Match: 197/287 (68.6%) Oponentes: 135/286 (47.2%)
{Top 2 Match: 252/287 (87.8%) Oponentes: 188/286 (65.7%)
{Top 3 Match: 265/287 (92.3%) Oponentes: 218/286 (76.2%)
{Top 4 Match: 272/287 (94.8%) Oponentes: 242/286 (84.6%)
Como puede ver, ambos conjuntos de estadísticas lo echarían de un servidor de ajedrez. A modo de comparación, aquí está el análisis para el juego 8 cuando el feed estaba inactivo:
{Blanco: Borislav Ivanov}
{Top 1: 13/27 (48.1%)
{Top 2 Match: 18/27 (66.7%)
{Top 3 Match: 20/27 (74.1%)
{Top 4 Match: 22/27 (81.5%)
{Negro: Borki Predojevic}
{Top 1 Match: 15/27 (55.6%)
{Top 2 Match: 19/27 (70.4%)
{Top 3 Match: 20/27 (74.1%)
{Top 4 Match: 25/27 (92.6%)
Tenga en cuenta que la FIDE ha establecido una comisión para investigar formas de detectar y combatir el engaño informático. Sus pautas están aquí . Tenga en cuenta esta sección:
fuente
Para dar mi respuesta sobre cómo abordaría esto, usaría una idea simple:
La idea es que hay un número limitado de motores de ajedrez disponibles al público, 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é utilizando algún motor de ajedrez que no esté disponible públicamente), pero para atrapar tramposos casuales esto debería ser una suposición lo suficientemente fuerte.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 probabilidadp
de observar la subsecuencia jugada asumiendo la hipótesis nula de que el jugador no está utilizando el motor de ajedrezX
para realizar los movimientos. para ellos. Se podría hacer una suposición ingenua de que el jugador se mueve al azar (o elige al azar de un número seleccionado de movimientos superioresd_i
), entonces la probabilidad de una subsecuencia dada dek
movimientos de coincidencia de longitudX
que haría un motor de ajedrez se calcularía como(d_1)/(n_1) * (d_2)/(n_2) * (d_3)/(n_3) *...* (d_k)/(n_k)
dónded_i
está el número de posibles movimientos (superiores) para hacer en elith
turno, según la clasificación del motorX
yn_i
es el número total de movimientos disponibles para el jugador en el turnoi
(o algún subconjunto razonable).Entonces simplemente calcule
Si
p*
es menor que un cierto umbral, etiqueta al jugador como tramposo, ya que existe una subsecuenciay
y un motor de ajedrezX
que aumenta la probabilidad de que el jugador no esté haciendo trampa por debajo de la probabilidad deseada.fuente
Creo que el análisis posterior al juego te da la mejor oportunidad de identificar si un jugador estaba haciendo trampa. Esto se puede hacer usando lo que se llama el análisis T3 / T4.
Básicamente, esto mide la frecuencia con la que un jugador elige uno de los 3 mejores o 4 mejores movimientos sugeridos por un motor. Esto elimina en gran medida la necesidad de identificar el motor de destino en uso (ya que generalmente acordarán 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 principales movimientos del motor. Editar:
Soy consciente de ChessAnalyse que se puede utilizar para hacer dicho análisis. Puedes probar la versión de prueba de 30 días.
fuente
Si su sitio le da a los usuarios un clic para obtener posiciones FEN o PGN mientras el juego se está ejecutando , debería considerar rastrearlos.
Algunos tramposos hacen trampa desde el principio, pero otros prefieren comenzar a hacer trampa solo cuando están en problemas, y obviamente usarán la función de copia FEN / PGN, ya que lleva mucho tiempo configurar la posición manualmente.
De alguna manera deberías almacenar eso junto con el movimiento en el momento en que lo copió, de esta manera puedes comparar desde ese punto con los siguientes movimientos y ver si su fuerza aumentó enormemente con la ayuda de los motores de ajedrez.
Pero es muy importante que lo use solo para ayudarlo a decidir si estaba haciendo trampa, sería injusto usar un guión que no use intervención humana, puede haber muchos falsos positivos, por ejemplo, a menudo me gusta copiar posiciones mientras juego para luego analizarlos sin la necesidad de buscar mi juego o encontrar el movimiento exacto de la PGN. Y no siempre lo dejo en mi portapapeles porque temo sobrescribirlo, así que lo muevo al bloc de notas (lo que significa que cambio las ventanas justo después de copiarlo).
fuente
FWIW, nadie ha mencionado al Dr. Ken Regan por su nombre, aunque el puntero al blog de Lipton describe otro artículo en Chess Life que analiza su trabajo.
Ese artículo es muy informativo sobre el trabajo de Regan, el estado de las técnicas de detección que estaban vigentes 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 los TD a eliminar las trampas.
fuente