Nouveau programme d'échecs

Nouveau programme d'échecs - Java - Programmation

Marsh Posté le 11-04-2018 à 19:20:26    

Bonjour,
 
Il y a 2 semaines j’ai publié le code d’un programme de jeu d’échecs écrit en 2013, il peut être utile si on veut comprendre quelques techniques de programmation des échecs.
 
Il suffit d’avoir Java sur son PC pour le lancer :
https://github.com/Bretwawork/JavaChess4
 
J’espère que vous apprécierez.
 
Cordialement,
Bretwa

Reply

Marsh Posté le 11-04-2018 à 19:20:26   

Reply

Marsh Posté le 12-04-2018 à 14:41:28    

Algo A* ou deep learning ?


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 12-04-2018 à 20:51:55    

rufo a écrit :

Algo A* ou deep learning ?


MinMax  ;)

Reply

Marsh Posté le 13-04-2018 à 11:06:08    

Bref, l'algo de base qui ne doit quasiment plus être utilisé par les jeux d'échecs modernes.


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 13-04-2018 à 21:31:48    

rufo a écrit :

Bref, l'algo de base qui ne doit quasiment plus être utilisé par les jeux d'échecs modernes.


 
 
À ma connaissance, tous les programmes d'échecs utilisent le MinMax, y compris ceux basés sur un réseau de neurones.


Message édité par BretwaAgain le 14-04-2018 à 01:42:40
Reply

Marsh Posté le 14-04-2018 à 09:26:32    

Le minmax est basé sur un arbre d'une très grande largeur et profondeur impossible à explorer jusqu'au bout (temps de calcul trop long), raison pour laquelle il n'est pas super efficace (il arrêtait son exploration dans une branche qui parfois, se révélait pas être le bon choix au final). C'est pour ça qu'on a jouté une BD de partie aux algos pour leur permettre de rechercher si une partie avec un emplacement des pièces identiques existait. Dans le cas contraire -> minmax.
 
Aujourd'hui, on est parti sur des réseaux de neurones et du deep learning. Le dernier algo d'IA de Google a d'ailleurs appris tout seul les règles du jeu d'échecs et a battu facilement une IA dédie aux échecs. Du coup, j'en déduit que son algo ne doit pas être basé sur du minmax puisque cet algo est spécifique aux jeux à 2 joueurs avec un coup par tour. Mais je me trompe peut-être...


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 14-04-2018 à 11:46:09    

rufo a écrit :

Le minmax est basé sur un arbre d'une très grande largeur et profondeur impossible à explorer jusqu'au bout (temps de calcul trop long), raison pour laquelle il n'est pas super efficace (il arrêtait son exploration dans une branche qui parfois, se révélait pas être le bon choix au final). C'est pour ça qu'on a jouté une BD de partie aux algos pour leur permettre de rechercher si une partie avec un emplacement des pièces identiques existait. Dans le cas contraire -> minmax.
 
Aujourd'hui, on est parti sur des réseaux de neurones et du deep learning. Le dernier algo d'IA de Google a d'ailleurs appris tout seul les règles du jeu d'échecs et a battu facilement une IA dédie aux échecs. Du coup, j'en déduit que son algo ne doit pas être basé sur du minmax puisque cet algo est spécifique aux jeux à 2 joueurs avec un coup par tour. Mais je me trompe peut-être...


 
Un programme d'échecs doit anticiper les coups de l'adversaire, avec ou sans réseau de neurones, pour cela le MinMax/MCTS est requis. Il n'existe pas de base de données avec des parties complètes sur lesquelles un moteur se baserait car la divergence des positions arrive trop vite. Une des techniques d'optimisation est l'emploi d'une table de transposition qui va être modifiée à chaque coup en cours de partie pour éviter de recalculer des positions déjà évaluées (jusqu'à 1TB pour Stockfish).
 
Dans le match AlphaZero/Stockfish, les règles étaient données à AlphaZero. Il a appris une manière de faire des coupes dans l'arbre de recherche différente de l'apha-bêta, dans les deux cas il est impossible d'explorer l'arbre entièrement et un programme avec un réseau de neurones peut aussi se tromper dû à une profondeur trop faible. L'arbre d'AlphaZero est plus fin avec un nombre de nœuds/seconde plus faible, 80K pour AlphaZero contre 70M pour Stockfish.


Message édité par BretwaAgain le 14-04-2018 à 20:09:50
Reply

Marsh Posté le 21-04-2018 à 12:26:16    

rufo a écrit :

Le minmax est basé sur un arbre d'une très grande largeur et profondeur impossible à explorer jusqu'au bout (temps de calcul trop long), raison pour laquelle il n'est pas super efficace (il arrêtait son exploration dans une branche qui parfois, se révélait pas être le bon choix au final). C'est pour ça qu'on a jouté une BD de partie aux algos pour leur permettre de rechercher si une partie avec un emplacement des pièces identiques existait. Dans le cas contraire -> minmax.

 

Aujourd'hui, on est parti sur des réseaux de neurones et du deep learning. Le dernier algo d'IA de Google a d'ailleurs appris tout seul les règles du jeu d'échecs et a battu facilement une IA dédie aux échecs. Du coup, j'en déduit que son algo ne doit pas être basé sur du minmax puisque cet algo est spécifique aux jeux à 2 joueurs avec un coup par tour. Mais je me trompe peut-être...


Les programmes d'échec en deep learning, ils se comptent sur les doigts d'une main. 99% des programmes existants sont basés sur de la recherche dans un arbre de coups.

Message cité 1 fois
Message édité par el muchacho le 21-04-2018 à 12:27:33

---------------
Les aéroports où il fait bon attendre, voila un topic qu'il est bien
Reply

Marsh Posté le 10-02-2019 à 19:04:24    

el muchacho a écrit :


99% des programmes existants sont basés sur de la recherche dans un arbre de coups.


ça serait selon moi de la tricherie.  Un programme doit pouvoir choisir lui-même sans aide extérieure.   Sinon pourquoi jouer contre une machine qui gagne tout le temps ?


Message édité par ballista le 10-02-2019 à 19:04:37
Reply

Marsh Posté le 10-02-2019 à 20:40:58    

Je confirme que la majeure partie des programmes d'échecs utilisent une BD. C'est bien pour ça que plus aucun maître d'échec joue contre un programme. Le mec se ferait battre facilement :o


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 10-02-2019 à 20:40:58   

Reply

Marsh Posté le 11-02-2019 à 08:02:41    

rufo a écrit :

Je confirme que la majeure partie des programmes d'échecs utilisent une BD. C'est bien pour ça que plus aucun maître d'échec joue contre un programme. Le mec se ferait battre facilement :o


 
En deep learning je me demande comment le programme apprend à jouer en jouant 44 millions de parties.  
 
S'il apprend par essai et erreurs, ce n'est pas une IA car les humains jouent sur la base de la logique.  Un truc abstrait qu'une machine est incapable d'en saisir le sens n'étant faite que de bit 0 et 1.

Message cité 1 fois
Message édité par ballista le 11-02-2019 à 08:04:23
Reply

Marsh Posté le 11-02-2019 à 11:56:37    

ballista a écrit :


 
En deep learning je me demande comment le programme apprend à jouer en jouant 44 millions de parties.  
 
S'il apprend par essai et erreurs, ce n'est pas une IA car les humains jouent sur la base de la logique.  Un truc abstrait qu'une machine est incapable d'en saisir le sens n'étant faite que de bit 0 et 1.


Pour sortir des bêtises pareilles, tu ne dois pas être très familier des IA et de la façon dont le cerveau d'un humain fonctionne et apprend. :/ Tout humain apprend en grande partie via une succession d'échecs et succès. C'est flagrant avec les bébés (apprendre à marcher en trouvant l'équilibre, apprendre à nommer les choses, apprendre à compter, faire des opérations +-*/...). Du reste, un proverbe dit qu'on apprend rien dans la victoire et que ce n'est que dans l'échec qu'on apprend.
 
En informatique, on appelle ça l'apprentissage par renforcement. La différence avec un humain, c'est que l'humain va probablement avoir moins besoin d'échecs/succès pour arriver à un bon résultat. C'est particulièrement vrai en reconnaissance de formes ou l'humain est très performant par rapport à une IA.
 
Récemment, l'IA AlphaGo a fait preuve de créativité avec le coup n°37 qui a été déterminant dans sa victoire face au meilleur joueur du monde de Go. A tel point qu'aujourd'hui, les grands joueurs l'étudient pour comprendre comment pouvoir le réutiliser dans d'autres cas. La créativité était pourtant clairement considérée comme une spécificité humaine. Or, ces derniers mois, d'autres IA ont fait preuve de créativité dans d'autres domaines comme la musique ou la peinture.
 
Si le sujet t'intéresse, je te recommande les vidéos de Science4All sur Youtube : https://www.youtube.com/watch?v=Drj [...] GU38miqdrC
Sinon, sur la créativité des IA, tu as la vidéo de Science étonnante qui explique en détail mon propos sur le jeu de Go (mais pas que) : https://www.youtube.com/watch?v=xuBzQ38DNhE


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 12-02-2019 à 14:53:05    

il y a quand même une nuance fondamentale
on a appris à une IA à jouer aux echecs
on ne leur a pas donnė une conscience.
L'IA qui serait la plus évoluée qui pourrait tout  
faire échouerait le test de Turing. tu te pètes les bretelles  
avec la créativité.


Message édité par ballista le 12-02-2019 à 14:53:47
Reply

Marsh Posté le 12-02-2019 à 16:27:49    

A voir si l'IA conversationnelle de Google (celle qui permet de prendre des RDV par téléphone par ex) passe le test de Turing. Quand on voit la conversation, si on sait pas qu'on parle à une IA, je doute qu'on puisse le deviner. Dans la démo, c'est présenté comme une réservation faite dans une resto pris au hasard, donc la personne en face n'est normalement pas un complice.
 
J'ai pas compris ton expression "tu te pètes les bretelles avec la créativité". :??:
 
Par contre, je ne vois pas pourquoi tu lies la notion de conscience avec la capacité de jouer à un jeu. L'apprentissage par renforcement ou réseau de neurones démontre que c'est inutile quand on voit la supériorité de ce type d'IA contre un humain.


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 12-02-2019 à 18:26:33    

Attention au terme de conscience qui attrait aussi bien à "avoir conscience de soi" qu'à une force mystique telle que l'âme. Dans le premier cas, on a une vraie question qui reste assez philosophique, dans le second cas on est complètement dans la croyance. C'est important car dans le premier cas on aura une réponse scientifique alors que dans le deuxième on ne peut que conclure à l'impossibilité de l'IA de par nos croyances.


---------------
C'est en écrivant n'importe quoi qu'on devient n'importe qui.
Reply

Marsh Posté le 12-02-2019 à 19:09:13    

Où est notre expert de la question jovalise? :o
 
Pardon, je sors. :o

Reply

Marsh Posté le 13-02-2019 à 02:37:27    

rufo a écrit :


J'ai pas compris ton expression "tu te pètes les bretelles avec la créativité". :??:.


 
je veux dire que ton enthousiasme en la matière est un peu trop élevé  
 
pour être créatif il faut que l'IA  ait décidée elle-même de peindre un Van Gogh
 
qui a pris l'inititiative de l'idée ? l'IA ou le programmeur ?

Reply

Marsh Posté le 13-02-2019 à 12:20:56    

Oui, pour l'instant, les IA, quand elles créent, ne le font pas pour communiquer une intention, contrairement à l'humain. C'est pour l'instant, la principale différence. Cependant, quand on voit une oeuvre finale, difficile de dire si c'est une IA ou un humain l'auteur.


Message édité par rufo le 13-02-2019 à 22:08:16

---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 13-02-2019 à 21:10:49    

Le problème c'est que les questions que tu poses ne sont pas spécifiques à l'IA mais sont des questions philosophiques qui ressortent car l'IA se rappelle à toi. Tel un miroir, en regardant l'IA tu y vois le reflet de l'être humain.

 

Qui a décidé que Van Gogh allait peindre ? Est-ce vraiment lui-même ? Cela peut très bien faire appel à des notions de déterminisme.

 

Qu'est-ce qu'une intention ? Comme beaucoup de notions un peu floues, j'ai tendance à classer ça dans la famille des sentiments.
Les sentiments sont-ils réservés à l'être humain ? Les animaux éprouvent bien le sentiment de peur, certes un sentiment primaire mais un sentiment.
Pour faire très rapide, les animaux ne connaissent pas autant de sentiments que nous, mais qu'est-ce qui nous différencie d'un animal ? La complexité du cerveau.
Certains animaux avec des cerveaux plus complexes éprouvent d'ailleurs plus de sentiments que d'autres animaux. Ces animaux sont principalement des animaux qui vivent en société. Dès lors, on peut distinguer deux aspects : l'évolution de la structure du cerveau au fil des générations et l'apprentissage auprès des congénères.

 

Tu peux dès lors imaginer qu'une structure complexe d'un réseau de neurones puisse répondre à une partie (biologique) et que la phase d'apprentissage (environnement) permette de récompenser des chemins formant les sentiments.


Message édité par MaybeEijOrNot le 13-02-2019 à 21:11:17

---------------
C'est en écrivant n'importe quoi qu'on devient n'importe qui.
Reply

Marsh Posté le 13-02-2019 à 22:11:01    

Ben après, on va assez vite tomber dans la théorie de l'évolution qui est en quelque sorte le "chemin de la récompense" avec la survie/prolifération ou la disparition de certains types d'individus par ce qu'ils avaient des caractéristiques leur ayant permis de se reproduire ou pas.


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 14-02-2019 à 03:36:19    

Une IA peut-elle se doter d'une intention ? c'est le genre de raccourci que les chercheurs en IA essaient de nous faire croire.  

Reply

Marsh Posté le 14-02-2019 à 19:28:17    

Pose-toi la question dans l'autre sens : qu'est-ce qui empêcherait une IA de se doter d'une intention ?


---------------
C'est en écrivant n'importe quoi qu'on devient n'importe qui.
Reply

Marsh Posté le 18-02-2019 à 15:45:44    

Petite news, une IA génère toute seule des visages réalistes de personnes qui n'existent pas : https://www.lesnumeriques.com/vie-d [...] 84033.html
 
C'est vachement impressionnant de réalisme mais peut-on parler de créativité ?


Message édité par rufo le 18-02-2019 à 15:46:18

---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 19-02-2019 à 17:35:04    

Pareil que pour Ballista, faut aussi se poser la question dans l'autre sens. En quoi ne serait-ce pas de la créativité ?
 
Le seul élément qui me semble opposable est celui du fait que cela tiendrait plus du développeur que du programme. Néanmoins, dans une approche déterministe, cela en est de même pour l'être humain. Tout n'est que cause et conséquence, la frontière entre ce qui attrait à une personne et le reste est subjective. Exemple, nos choix (conséquence) dépendent de notre éducation (cause), notre éducation ne dépend pas de nous. Qui fait réellement le choix ? Moi ? Celui qui m'a éduqué ? En effet, notre éducation est la conséquence d'une autre cause (ex : parents), qui est de nouveau la conséquence d'une cause sous-jacente (ex : grand-parents), etc.
Nous ne savons pas  vraiment définir cette frontière pour nous-même, pourquoi vouloir la définir pour l'IA ?
L'un des consensus serait de considérer que c'est la dernier maillon de la chaîne cause - conséquence qui fait foi, et dans ce cas là l'IA, tout comme un programme basique de génération de données peuvent être considérés comme créatifs.


---------------
C'est en écrivant n'importe quoi qu'on devient n'importe qui.
Reply

Marsh Posté le 19-02-2019 à 18:08:41    

C'est peut-être le degré latitude dans la créativité qui pourrait être le critère pour déterminer la frontière. La latitude de créativité d'un humain est extrêmement vaste tandis que ce type d'IA va pouvoir créer dans un périmètre beaucoup plus restreint. Dans le cas présent, créer uniquement des visages réalistes d'humains. En gros, chaque IA "créative" l'est dans un domaine très spécialisé, très limité, ce qui n'est généralement pas le cas pour l'humain.


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 19-02-2019 à 18:45:35    

En d'autre terme, on aurait une IA peu créative, ce qui est le cas. Mais on ne peut pas dire non créative sinon il faudrait définir un seuil de créativité, ce qui n'a évidemment pas de sens.
 
Tout ça pour dire, que les questions qu'on se pose sur l'IA sont généralement philosophiques ou causées par des ambiguïtés sur les termes utilisés. Nous avons tendance à trop nous sacraliser et oublier que nombre de ces questions ne sont pas résolues pour notre propre existence.


---------------
C'est en écrivant n'importe quoi qu'on devient n'importe qui.
Reply

Marsh Posté le 19-02-2019 à 20:11:36    

Tout à fait. Du reste, la chaîne sur Youtube Monsieur Phi aborde régulièrement ce type de sujet, en collaboration régulière avec Lê de la chaîne Science4All.


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed