¿Cuál sería el elo de un programa de computadora que se reproduce al azar?

11

¿Cuál sería el Elo de un programa de computadora que juega movimientos aleatorios?

En aras de la simplicidad, suponga que nunca pide un sorteo o renuncia y nunca acepta una oferta de sorteo.

fotipute
fuente
Imagina todas las piezas en el tablero y atacas a la reina de la computadora. Tiene una probabilidad de 1 en 16 de mover a la reina y quizás una pequeña posibilidad de defender con otra pieza.
ZL1Corvette
44
Me resulta difícil imaginar que un jugador humano juegue peor que al azar.
Dag Oskar Madsen
Prefiero hacerlo científicamente
MikhailTal
Para mi clase de IA, íbamos a crear una IA de ajedrez. La primera fase de la asignación fue movimientos válidos al azar. Cuando estas IA lucharon, la mayoría terminó en empate. Una IA codiciosa que ataca la pieza más valiosa si corresponde, de lo contrario, al azar vence a la IA aleatoria cada vez.
Harrichael

Respuestas:

13

Justo en la parte inferior de la Lista de clasificación de ajedrez de computadora para el control de tiempo 40/4 se encuentra Brutus RND, un motor que simplemente selecciona movimientos legales aleatorios.

http://www.computerchess.org.uk/ccrl/404/cgi/engine_details.cgi?print=Details&each_game=1&eng=Brutus%20RND#Brutus_RND

Tiene una calificación de 205 (a partir del 6/6/2018). Por supuesto, esta no es una calificación FIDE, pero está utilizando el sistema Elo.

Tiene 0 victorias, 242 derrotas y 64 empates. Los sorteos se deben a programas defectuosos que causan sorteos accidentalmente por repetición u ocasionalmente estancamiento, aunque generalmente tienen una ventaja material sustancial cuando esto ocurre.

La FIDE tiene un piso de calificación de 1000. Brutus RND simplemente no lograría establecer una calificación tan alta y no tendría calificación.

Si ignoramos el piso de calificación FIDE, es posible tener una calificación negativa bajo el sistema Elo.

Un punto a mencionar es que la FIDE usa una tabla para calcular los cambios de calificación y si la diferencia de calificación es mayor a 735, no ocurre ningún cambio cuando el jugador más fuerte gana. Esto significa que Brutus nunca podría tener una calificación de -5000 o algo así porque necesitaría perder puntos para jugadores espectacularmente incompetentes que no serían capaces de entregar jaque mate.

https://www.fide.com/component/handbook/?view=article&id=197

Nos quedamos adivinando aquí. 1000 jugadores con calificación Elo podrían bajar la calificación de Brutus a 265, pero dado que no hay jugadores con peores calificaciones, no podemos decir exactamente cuánto más podrían presionar la calificación de Brutus si existieran.

Supongo que los jugadores que son 500 Elo o peor tendrían problemas para entregar mate constantemente, al igual que los programas defectuosos. Los sorteos por repetición de 3 veces o la regla de 50 movimientos no son automáticos según las reglas de la FIDE y solo ocurrirían si Brutus los reclamara. Pero un humano podría perder al quedarse sin tiempo, así como al dibujar por un punto muerto accidental.

Así que supongo que en algún lugar en el rango de -200 a 200 si la FIDE permitió calificaciones por debajo de 1000 y permitió que Brutus compita.

James Hollis
fuente
Suena alto Hubiera adivinado más cerca de 100 si los movimientos son realmente aleatorios.
Edwina Oliver
6

El problema con el juego aleatorio es que en una posición de ajedrez promedio hay muchos movimientos (desde 20 en la apertura hasta fácilmente 50 o más en finales complicados), pero solo unos pocos son aceptables. Los movimientos aleatorios resultarán en una descoordinación total desde el comienzo del juego. Además, capturar piezas menos valiosas sería muy común, especialmente en el medio juego. Dicho esto, incluso contra una oposición extremadamente débil, la computadora, a la larga, cometerá un error: se intercambiarán toneladas de material y posiblemente no sean muy buenas para la computadora, la computadora sin duda estará poco desarrollada, su rey no estará a salvo y posiblemente ni siquiera enrocado ...

Tantas cosas malas que se acumulan, y extremadamente rápido, resultarán en una derrota segura para la máquina. Su Elo probablemente será 0 FIDE.

Pablo S. Ocal
fuente
2
¡Sería incluso difícil perder contra tal motor! Incluso si QUIERES ser emparejado, puede pasar una eternidad hasta que el motor lo gestione. La única forma realista de ganar un motor aleatorio es si el oponente renuncia.
Peter
Si sabes un poco sobre el juego, estoy completamente de acuerdo. Pero si solo sabes cómo mover las piezas, ni siquiera su valor, o cualquier estrategia ... Bueno, entonces el humano y la computadora están jugando en términos más o menos iguales.
Pablo S. Ocal
Creo que incluso un novato que acaba de aprender las reglas hoy jugaría mejor que al azar. El novato podría usar una heurística como "vamos a capturar piezas", que funciona muy bien contra el motor aleatorio, porque puedes capturar cualquier pieza, incluso si está protegida, o simplemente dejar tus piezas colgando, y es muy poco probable que el motor capture ya que tiene muchos otros movimientos inútiles para elegir. Al final, la única dificultad posible para el novato es descubrir cómo aparearse, pero no debería ser demasiado difícil dada la probable ventaja material.
itub
No, no es difícil perder contra un jugador aleatorio si quieres perder. Puede probarlo con la aplicación Play Magnus configurada para niños de 5 años. Solo tiene que forzar una situación en la que el único movimiento legal que puede hacer es entregar el jaque mate. La forma más fácil de hacer esto es capturar todas sus piezas excepto 1 peón, atrapar a su rey para que solo pueda avanzar el peón, dejar a su rey en el primer rango y organizar sus otras piezas para evitar que su rey escape cuando el peón asciende y llama cheque. Esto funciona si asciende a reina o torre, por lo que tiene un 50% de posibilidades de perder (o 100% si nunca sube de nivel).
Silas S. Brown
5

El juego verdaderamente aleatorio es mucho peor de lo que probablemente pensarías. El piso absoluto de USCF es 100 y este programa nunca se elevaría por encima de eso.

Cleveland
fuente
1

No estoy seguro de cómo se comparan las clasificaciones de Go con el ajedrez, pero el juego aleatorio es de aproximadamente -3500 allí . Dado que el factor de ramificación para el ajedrez es menor, esperaría que el jugador aleatorio elo sea mayor, tal vez entre -2000 y -500.

Akababa
fuente
1
Como se señaló en la respuesta en chess.stackexchange.com/a/6509/9025 , el piso de calificación de USCF es 100, por lo que sería imposible tener una calificación negativa.
Herb Wolfe
Solo una perspectiva diferente sobre la pregunta. No especificó qué sistema de calificación utilizar, y elo estadístico no tiene un "límite inferior".
Akababa
1

Peor que un principiante absoluto que apenas conoce las reglas del juego, porque al menos el principiante pone un poco de pensamiento en la elección de un movimiento. Sus movimientos aún pueden ser en su mayoría aleatorios, pero al menos hay una evaluación de las posiciones en curso.

Por lo tanto, la calificación de este motor estaría en el piso más bajo posible de cualquier sistema de calificación que elija. Eventualmente podría ganar o empatar un juego contra un oponente igualmente malo, y luego aumentar en algunos puntos. Sin embargo, puede esperar que la calificación del motor vuelva rápidamente al piso mínimo después.

En "Programación de una computadora para jugar ajedrez" de Shannon, señala que la probabilidad de que un juego aleatorio venza a Botvinnik es del orden de 10 ^ -75. Por lo tanto, si esta computadora aleatoria fuera a jugar Botvinnik (o incluso un maestro regular) sin parar durante toda la vida humana, razonablemente podemos esperar que nunca gane.

Sin embargo, Shannon continúa diciendo que el juego aleatorio no es la peor estrategia; La peor estrategia es jugar movimientos deliberadamente que ayuden al oponente. Si bien es posible que un principiante completo pueda hacer esto, lo más probable es que intenten jugar movimientos que mejoren su propia posición.

Ignorancia inercial
fuente
0

Una muy buena respuesta sería hacer esto:

Use numpy, un motor de juego muy débil, 1500 ELO más o menos, y adjunte un script de python. Hay muchas bibliotecas que le proporcionan los posibles movimientos en una posición, por lo que podemos elegir uno al azar. Publicaré los resultados más tarde.

http://creative-co.de/random_chess/

También deberías revisar esto.

MikhailTal
fuente
3
Numpy es una biblioteca científica matemática, no un motor de ajedrez.
svineet
También es un motor de ajedrez
MikhailTal
2
chess.stackexchange.com/questions/6034/… Parece ser llamado numpty
MikhailTal 01 de
1
@MikhailTal: ¿Hay alguna razón por la que no edita esta respuesta para corregir el nombre?
GreenMatt
2
@ SmallChess: nombres similares , pero no iguales.
GreenMatt