Quel serait l'élo d'un programme informatique qui joue au hasard?


11

Quel serait l'Elo d'un programme informatique qui joue des coups aléatoires?

Par souci de simplicité, supposons qu'il ne demande jamais un tirage ou démissionne et n'accepte jamais une offre de tirage.


Imaginez toutes les pièces du plateau et vous attaquez la reine de l'ordinateur. Il a 1 chance sur 16 de déplacer la reine et peut-être une faible chance de défendre avec une autre pièce.
ZL1Corvette du

4
J'ai du mal à imaginer un joueur humain jouant pire que le hasard.
Dag Oskar Madsen du

Je préfère le faire scientifiquement
MikhailTal

Pour mon cours d'IA, nous devions créer une IA d'échecs. La première phase de l'affectation était des mouvements valides aléatoires. Lorsque ces IA se sont battues, cela s'est principalement terminé par un match nul. Une IA gourmande qui attaque la pièce la plus précieuse le cas échéant, sinon battez au hasard une IA aléatoire à chaque fois.
Harrichael

Réponses:


13

Tout en bas de la liste de classement des échecs informatiques pour le contrôle du temps 40/4 se trouve Brutus RND, un moteur qui sélectionne simplement les mouvements légaux aléatoires.

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

Il a une cote de 205 (au 6/6/2018). Ce n'est pas une cote FIDE bien sûr, mais il utilise le système Elo.

Il a 0 victoires, 242 défaites et 64 nuls. Les tirages sont dus à des programmes défectueux qui provoquent accidentellement des tirages par répétition ou parfois une impasse, bien qu'ils aient généralement un avantage matériel substantiel lorsque cela se produit.

La FIDE a un plancher de notation de 1000. Brutus RND ne parviendrait tout simplement pas à établir une cote aussi élevée et ne serait pas évalué.

Si nous ignorons le plancher de notation FIDE, il est possible d'avoir une note négative sous le système Elo.

Un point à mentionner est que la FIDE utilise un tableau pour calculer les changements de note et si la différence de note est supérieure à 735, aucun changement ne se produit lorsque le joueur le plus fort gagne. Cela signifie que Brutus ne pourrait jamais avoir une cote de -5000 ou quelque chose comme ça, car il aurait besoin de perdre des points face à des joueurs spectaculairement incompétents qui ne seraient pas capables de livrer échec et mat.

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

Il nous reste à deviner ici. 1000 joueurs classés Elo pourraient réduire la note de Brutus à 265, mais comme il n'y a pas de joueurs avec de moins bonnes notes, nous ne pouvons pas dire exactement jusqu'à quel point ils pourraient pousser la note de Brutus vers le bas s'ils existaient.

Je suppose que les joueurs de 500 Elo ou moins auraient du mal à livrer leur compagnon de manière cohérente, tout comme les programmes défectueux. Les tirages par répétition triple ou la règle des 50 coups ne sont pas automatiques selon les règles FIDE et ne se produiraient que si Brutus les réclamait. Mais un humain pourrait perdre en manquant de temps, ainsi qu'en dessinant par impasse accidentelle.

Je suppose donc quelque part entre -200 et 200 si la FIDE autorisait des cotes inférieures à 1000 et permettait à Brutus de rivaliser.


Cela semble élevé. J'aurais deviné plus proche de 100 si les mouvements étaient vraiment aléatoires.
edwina oliver

6

Le problème avec le jeu aléatoire est que sur une position d'échecs moyenne, il y a beaucoup de nombreux mouvements (de 20 en ouverture à facilement 50 ou plus dans des finales compliquées), mais seulement une poignée d'entre eux sont acceptables. Des mouvements aléatoires entraîneront une discoordination totale dès le début du jeu. De plus, la capture de pièces moins précieuses serait très courante, surtout au milieu du jeu. Cela dit, même contre une opposition extrêmement faible, l'ordinateur sera, à long terme, une erreur: des tonnes de matériel seront échangées et peut-être pas beaucoup de bien pour l'ordinateur, l'ordinateur sera sans aucun doute sous-développé, son roi ne sera pas en sécurité et peut-être même pas chiné ...

Tant de mauvaises choses s'accumulant, et extrêmement rapidement, entraîneront une défaite certaine pour la machine. Son Elo sera probablement 0 FIDE.


2
Il serait même difficile de perdre contre un tel moteur! Même si vous VOULEZ être maté, cela peut prendre une éternité jusqu'à ce que le moteur le gère. Le seul moyen réaliste de gagner un moteur au hasard est que l'adversaire démissionne.
Peter

Si vous ne connaissez qu'un peu le jeu, je suis entièrement d'accord. Mais si vous savez juste comment déplacer les pièces, pas même leur valeur, ou n'importe quelle stratégie ... Eh bien, l'humain et l'ordinateur jouent en termes plus ou moins égaux.
Pablo S.Ocal

Je pense que même un novice qui vient d'apprendre les règles aujourd'hui jouerait mieux que le hasard. Le novice peut utiliser une heuristique telle que «capturons des morceaux», qui fonctionne très bien contre le moteur aléatoire, car vous pouvez capturer n'importe quel morceau, même s'il est protégé, ou simplement laisser vos morceaux suspendus, et le moteur est très peu susceptible de capturer car il a tellement d'autres choix inutiles à choisir. En fin de compte, la seule difficulté possible pour le novice est de comprendre comment s'accoupler, mais cela ne devrait pas être trop difficile compte tenu de l'avantage matériel probable.
itub

Non, ce n'est pas difficile de perdre contre un joueur aléatoire si vous voulez perdre. Vous pouvez l'essayer avec l'application Play Magnus réglée sur 5 ans. Il suffit de forcer une situation où le seul geste légal qu'il peut faire est de livrer un échec et mat. La façon la plus simple de le faire est de capturer toutes ses pièces sauf 1 pion, de piéger son roi afin qu'il ne puisse que faire avancer le pion, de laisser votre roi au premier rang et d'organiser vos autres pièces pour empêcher votre roi de s'échapper lorsque le pion se promeut et appelle vérifier. Cela fonctionne si elle est promue reine ou tour, vous avez donc 50% de chances de perdre (ou 100% si elle ne sous-promeut jamais).
Silas S. Brown

5

Un jeu vraiment aléatoire est bien pire que vous ne le pensez probablement. Le plancher absolu de l'USCF est de 100 et ce programme ne dépassera jamais ce seuil.


1

Je ne sais pas comment les notes de Go se comparent aux échecs, mais le jeu aléatoire est d'environ -3500 là-bas . Étant donné que le facteur de branchement pour les échecs est plus faible, je m'attends à ce que l'élo du joueur aléatoire soit plus élevé, peut-être entre -2000 et -500.


1
Comme indiqué dans la réponse sur chess.stackexchange.com/a/6509/9025 , le plancher de notation USCF est de 100, il serait donc impossible d'avoir une note négative.
Herb Wolfe

Juste une perspective différente sur la question. Il n'a pas précisé le système de notation à utiliser, et elo statistique n'a pas de "borne inférieure".
Akababa

1

Pire qu'un débutant absolu qui connaît à peine les règles du jeu, car au moins le débutant met un peu la pensée dans le choix d' un déménagement. Leurs mouvements peuvent encore être principalement aléatoires, mais au moins il y a une évaluation des positions en cours.

La cote de ce moteur serait donc au plancher le plus bas possible de tout système de cote que vous choisiriez. Il pourrait éventuellement gagner ou tirer un match contre un adversaire tout aussi mauvais, puis augmenter de quelques points. Cependant, vous pouvez vous attendre à ce que la cote du moteur retombe rapidement au plancher minimum par la suite.

Dans "Programmation d'un ordinateur pour jouer aux échecs" de Shannon, il note que la probabilité qu'un jeu aléatoire bat Botvinnik est de l'ordre de 10 ^ -75. Ainsi, si cet ordinateur aléatoire devait jouer à Botvinnik (ou même à un maître régulier) sans arrêt pendant toute une vie humaine, nous pouvons raisonnablement nous attendre à ce qu'il ne gagne jamais.

Cependant, Shannon poursuit en disant que le jeu aléatoire n'est pas la pire stratégie; la pire stratégie consiste à jouer délibérément des coups qui aident l'adversaire. Bien qu'il soit possible qu'un débutant complet puisse le faire, il est probable qu'il essaiera de jouer des mouvements qui améliorent sa propre position.


0

Une très bonne réponse serait de faire ceci:

Utilisez numpy, un moteur de jeu très faible, 1500 ELO ou plus, et attachez-y un script python. Il existe de nombreuses bibliothèques qui vous fournissent les mouvements possibles dans une position, nous pouvons donc en choisir un au hasard. Je publierai les résultats plus tard.

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

Vous devriez également vérifier cela.


3
Numpy est une bibliothèque de mathématiques scientifiques, pas un moteur d'échecs.
svineet

C'est aussi un moteur d'échecs
MikhailTal

2
chess.stackexchange.com/questions/6034/… Il semble être appelé numpty
MikhailTal

1
@MikhailTal: Y a-t-il une raison pour laquelle vous ne modifiez pas cette réponse pour corriger le nom?
GreenMatt

2
@SmallChess: Noms similaires , mais pas les mêmes.
GreenMatt
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.