Forum |  HardWare.fr | News | Articles | PC | Prix | S'identifier | S'inscrire | Aide | Shop Recherche
624 connectés 

  FORUM HardWare.fr
  Programmation
  Java

  Nouveau programme d'échecs

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Nouveau programme d'échecs

n°2313859
BretwaAgai​n
Posté le 11-04-2018 à 19:20:26  profilanswer
 

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

mood
Publicité
Posté le 11-04-2018 à 19:20:26  profilanswer
 

n°2313905
rufo
Pas me confondre avec Lycos!
Posté le 12-04-2018 à 14:41:28  profilanswer
 

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 Cantine Calandreta : http://sourceforge.net/projects/canteen-calandreta
n°2313951
BretwaAgai​n
Posté le 12-04-2018 à 20:51:55  profilanswer
 

rufo a écrit :

Algo A* ou deep learning ?


MinMax  ;)

n°2313965
rufo
Pas me confondre avec Lycos!
Posté le 13-04-2018 à 11:06:08  profilanswer
 

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 Cantine Calandreta : http://sourceforge.net/projects/canteen-calandreta
n°2313980
BretwaAgai​n
Posté le 13-04-2018 à 21:31:48  profilanswer
 

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
n°2313984
rufo
Pas me confondre avec Lycos!
Posté le 14-04-2018 à 09:26:32  profilanswer
 

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 Cantine Calandreta : http://sourceforge.net/projects/canteen-calandreta
n°2313990
BretwaAgai​n
Posté le 14-04-2018 à 11:46:09  profilanswer
 

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
n°2314281
el muchach​o
Comfortably Numb
Posté le 21-04-2018 à 12:26:16  profilanswer
 

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
n°2328962
ballista
Posté le 10-02-2019 à 19:04:24  profilanswer
 

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
n°2328967
rufo
Pas me confondre avec Lycos!
Posté le 10-02-2019 à 20:40:58  profilanswer
 

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 Cantine Calandreta : http://sourceforge.net/projects/canteen-calandreta
mood
Publicité
Posté le 10-02-2019 à 20:40:58  profilanswer
 

n°2328979
ballista
Posté le 11-02-2019 à 08:02:41  profilanswer
 

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
n°2328986
rufo
Pas me confondre avec Lycos!
Posté le 11-02-2019 à 11:56:37  profilanswer
 

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 Cantine Calandreta : http://sourceforge.net/projects/canteen-calandreta
n°2329042
ballista
Posté le 12-02-2019 à 14:53:05  profilanswer
 

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
n°2329050
rufo
Pas me confondre avec Lycos!
Posté le 12-02-2019 à 16:27:49  profilanswer
 

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 Cantine Calandreta : http://sourceforge.net/projects/canteen-calandreta
n°2329055
MaybeEijOr​Not
but someone at least
Posté le 12-02-2019 à 18:26:33  profilanswer
 

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.
n°2329058
rat de com​bat
attention rongeur méchant!
Posté le 12-02-2019 à 19:09:13  profilanswer
 

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

n°2329067
ballista
Posté le 13-02-2019 à 02:37:27  profilanswer
 

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 ?

n°2329074
rufo
Pas me confondre avec Lycos!
Posté le 13-02-2019 à 12:20:56  profilanswer
 

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 Cantine Calandreta : http://sourceforge.net/projects/canteen-calandreta
n°2329113
MaybeEijOr​Not
but someone at least
Posté le 13-02-2019 à 21:10:49  profilanswer
 

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.
n°2329118
rufo
Pas me confondre avec Lycos!
Posté le 13-02-2019 à 22:11:01  profilanswer
 

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 Cantine Calandreta : http://sourceforge.net/projects/canteen-calandreta
n°2329120
ballista
Posté le 14-02-2019 à 03:36:19  profilanswer
 

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.  

n°2329163
MaybeEijOr​Not
but someone at least
Posté le 14-02-2019 à 19:28:17  profilanswer
 

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.
n°2329346
rufo
Pas me confondre avec Lycos!
Posté le 18-02-2019 à 15:45:44  profilanswer
 

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 Cantine Calandreta : http://sourceforge.net/projects/canteen-calandreta
n°2329414
MaybeEijOr​Not
but someone at least
Posté le 19-02-2019 à 17:35:04  profilanswer
 

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.
n°2329418
rufo
Pas me confondre avec Lycos!
Posté le 19-02-2019 à 18:08:41  profilanswer
 

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 Cantine Calandreta : http://sourceforge.net/projects/canteen-calandreta
n°2329424
MaybeEijOr​Not
but someone at least
Posté le 19-02-2019 à 18:45:35  profilanswer
 

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.
n°2329428
rufo
Pas me confondre avec Lycos!
Posté le 19-02-2019 à 20:11:36  profilanswer
 

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 Cantine Calandreta : http://sourceforge.net/projects/canteen-calandreta
mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Java

  Nouveau programme d'échecs

 

Sujets relatifs
Programme simple pour récupérer informations système d'une machine linPetit programme pour scanner plusieurs pages à la suite.
[RESOLU] Premier programme : fenêtre ne s'affiche pas au runappel au générateur des nombres aleatoire dans un programme c++
Ajout nouveau module+sauvegarde en BDDesassembler un programme linux (en C)
paralleliser programme vbscriptbesoin d'aide pour un programme
Programme Tripode CExecution d'un programme via une interface web.
Plus de sujets relatifs à : Nouveau programme d'échecs


Copyright © 1997-2018 Hardware.fr SARL (Signaler un contenu illicite) / Groupe LDLC / Shop HFR