IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Java Discussion :

Jeu de go - intelligence artificielle


Sujet :

Java

  1. #1
    Membre chevronné

    Homme Profil pro
    développeur
    Inscrit en
    Octobre 2013
    Messages
    1 577
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : développeur

    Informations forums :
    Inscription : Octobre 2013
    Messages : 1 577
    Points : 1 989
    Points
    1 989
    Par défaut Jeu de go - intelligence artificielle
    Bonjour a tous je suis étudiant,
    je dois programmer un jeu de go en java, j'aimerais programmer une ia mais pour le jeu de go c'est particulier j'ai lu qu'il faut utiliser l'algorithme minmax ,mais je ne comprend pas comment programmer la fonction d'évaluation merci de prendre de votre temps pour m'expliquer

  2. #2
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Salut,

    As tu regardé les tutoriels sur le minmax, et sur le alpha-beta, une optimisation du minmax ? Les exemples de code sont en c, mais se traduisent aisément en java.

  3. #3
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 564
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 564
    Points : 21 629
    Points
    21 629
    Par défaut
    Citation Envoyé par kevin254kl Voir le message
    j'aimerais programmer une ia mais pour le jeu de go c'est particulier j'ai lu qu'il faut utiliser l'algorithme minmax
    Euuh, tout comme aux dames, aux échecs, au puissance 4, au backgammon, au shôgi...

  4. #4
    Membre éclairé Avatar de JoeChip
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    536
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2008
    Messages : 536
    Points : 803
    Points
    803
    Par défaut
    Les meilleurs programmes actuels utilisent une fonction d'évaluation "Monte-Carlo", genre ils jouent des coups au hasard et terminent un maximum de parties, le résultat de l'évaluation du coup est le nombre de parties aléatoires gagnées. Doit y avoir des sources qui traînent...

  5. #5
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Points : 48 804
    Points
    48 804
    Par défaut
    De mémoire le jeu de Go est d'ailleurs encore plus difficile à mettre en IA que le jeu d'échecs. Alors qu'au jeu d'échec le nombre de pieces par rapport à ton adversaire peut aider à indiquer si ta position est bonne, au jeu de go, tu peux retourner presque tout le jeu en un coup

  6. #6
    Membre éclairé Avatar de JoeChip
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    536
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2008
    Messages : 536
    Points : 803
    Points
    803
    Par défaut
    Il y a eu une percée relativement récente, avec justement l'utilisation d'un algo MC. Avant ça les meilleurs programmes, basés sur des fonctions d'évaluation (qui "connaissaient" davantage que les règles du jeu) étaient d'un niveau très moyen, maintenant ils battent la plupart des amateurs, s'ils ont des ressources suffisantes. Même si on y a réinjecté quelques "connaissances" supplémentaires.

  7. #7
    Modérateur
    Avatar de dinobogan
    Homme Profil pro
    ingénieur
    Inscrit en
    Juin 2007
    Messages
    4 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Activité : ingénieur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 4 073
    Points : 7 163
    Points
    7 163
    Par défaut
    Il n'y a pas la fonction d'évaluation.
    Tu peux trouver une heuristique par toi-même ou chercher sur le net les idées de chercheurs ou thésard. Dans tous les cas, ça reste une heuristique.
    Tu peux en trouver des triviales (par exemple le nombre de pierres blanches moins le nombre de pierres noires) qui fonctionnent plus ou moins, tu peux en combiner plusieurs.
    Quoi qu'il en soit, l'heuristique est une fonction empirique qui permet de donner une "note" (un genre de nombre magique) à une position sur un plateau afin de sortir une bonne position (ou la moins pire si l'heuristique est un peu naze) parmi toutes celles calculées.

    Je t'encourage vivement à commencer par une heuristique très simple (même simpliste genre stupide comme le simple comptage des pierres), avec une méthode de monté-carlo sur un tirage aléatoire de position avec une profondeur raisonnable pour commencer. Ce sera relativement simple à implémenter. Une fois tout mis en place, tu pourras améliorer les différents modules : l'heuristique, le tirage aléatoire (en privilégiant certains coups intéressants) et la profondeur de recherche.

    Mais tu peux préférer aussi une recherche arborescente (min-max avec ou sans élagage par exemple). Même dans ce cas, tu dois trouver une heuristique.

  8. #8
    Membre éclairé Avatar de JoeChip
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    536
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2008
    Messages : 536
    Points : 803
    Points
    803
    Par défaut
    Le minimax est heuristique, et nécessite une fonction d'évaluation de la position. Les algos récents de go sont plutôt simples et utilisent le pourcentage de parties gagnées à partir de la position, en jouant des coups légaux au hasard jusqu'à la fin de la partie. Les pierres noires moins les pierres blanches, c'est absurde comme évaluation : tant qu'il n'y a aucune prise c'est stable, genre 0 si c'est à Noir de jouer, et 1 si c'est à Blanc.

    Ou alors je ne sais pas ce que tu appelle "une heuristique".

  9. #9
    Modérateur
    Avatar de dinobogan
    Homme Profil pro
    ingénieur
    Inscrit en
    Juin 2007
    Messages
    4 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Activité : ingénieur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 4 073
    Points : 7 163
    Points
    7 163
    Par défaut
    Citation Envoyé par JoeChip Voir le message
    Les pierres noires moins les pierres blanches, c'est absurde comme évaluation : tant qu'il n'y a aucune prise c'est stable, genre 0 si c'est à Noir de jouer, et 1 si c'est à Blanc.

    Ou alors je ne sais pas ce que tu appelle "une heuristique".
    Oui, c'est simple et absurde, je l'ai précisé. Mais ça permet de ne pas être bloqué dans l'avancement du projet ;-)
    Car de ce que j'ai compris, l'IA est optionnelle, c'est un plus. Présenter un jeu fonctionnel avec une IA nulle à cause de l'heuristique un peu naze, c'est facilement défendable. Par contre présenter un projet pas fini en expliquant que tout le temps a été passé sur la recherche d'une heuristique, le gars ne part pas vainqueur... Mais c'est juste un point de vue sur le peu d'info donnée

  10. #10
    Membre chevronné

    Homme Profil pro
    développeur
    Inscrit en
    Octobre 2013
    Messages
    1 577
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : développeur

    Informations forums :
    Inscription : Octobre 2013
    Messages : 1 577
    Points : 1 989
    Points
    1 989
    Par défaut
    je vous remercie je vais regarder le minmax et aussi commencer par programmer pour des joueur avant l'ia et m'inspirer de vos conseil.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Jeu de go - intelligence artificielle
    Par kevin254kl dans le forum Entrée/Sortie
    Réponses: 1
    Dernier message: 06/02/2014, 08h25
  2. [Flash Pascal] Architecture d'un jeu incluant une intelligence artificielle
    Par Roland Chastain dans le forum Flash Pascal
    Réponses: 26
    Dernier message: 28/12/2012, 18h09
  3. jeu de belote + intelligence artificielle
    Par @NW@R dans le forum Intelligence artificielle
    Réponses: 11
    Dernier message: 14/04/2008, 23h14
  4. Réponses: 4
    Dernier message: 18/07/2007, 23h35
  5. Intelligence Artificielle jeu 2D
    Par ironzorg dans le forum Développement 2D, 3D et Jeux
    Réponses: 8
    Dernier message: 30/12/2006, 11h01

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo