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

Algorithmes et structures de données Discussion :

Fonction d'évaluation d'un jeu de dames utilisant l'algorithme du min/max


Sujet :

Algorithmes et structures de données

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 2
    Points : 2
    Points
    2
    Par défaut Fonction d'évaluation d'un jeu de dames utilisant l'algorithme du min/max
    Bonjour à tous,
    Je developpe actuellement pour mon projet de fin de semestre un jeu de dames. Celui-ci a l'air de fonctionner correctement. Pour coder l'IA j'ai utiliser l'algorithme du min/max. Lui aussi a l'air d'ête bon. Cependant il me reste plus qu'a faire la fonction d'évaluation qui clotûre le min/max, et là ... .
    J'ai des idées à ce propos mais elle ne me semble pas très efficace :

    - pour toute les pièces du bot, évaluer si chacune est entourée par des pieces , afin de savoir si celle-ci est protégée ( je recupere le nombre de pieces qui l'entoure et je multiplie ce dernier par un coeff corespondant)

    - testé si la piece est menacé par une piece adverse.

    Si quelqu'un a des idées sur la question ou a deja eu a faire face a cette problematique, qu'il n'hesite pas. Tout inspiration est la bien venue vu qu'il ne me reste plus qu'une semaine de developpement.

    Merci d'avance.

  2. #2
    Expert éminent
    Avatar de PRomu@ld
    Homme Profil pro
    Ingénieur de Recherche
    Inscrit en
    Avril 2005
    Messages
    4 155
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Ingénieur de Recherche
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2005
    Messages : 4 155
    Points : 6 486
    Points
    6 486
    Par défaut
    Les fonctions d'évaluation sont assez compliquées, c'est ce qui détermine la "puissance" de ton algorithme min-max.

    Ce qu'il faut, tout d'abord, c'est fixer des valeur infinies pour la terminaison du jeu : si tu gagnes, tu attribus un plus infini et si tu perds, tu attribus un moins l'infini.

    Ensuite, les stratégies divergent.

    Certains choisissent une évaluation basée sur la différence entre le nombre de pièces restantes de chacuns des joueurs : si après avoir joué, tu as 10 pièces de plus que l'adversaire, ça peut être bon signe (mais pas infaïble on est d'accord).

    Ensuite, on peut accorder de l'importance à des pièces : plus tu as de dames, plus ta position est confortable.

    Après, tu peux accorder plus d'importance à certaines positions : des positions qui sont sures de ne pas être prises.

    Enfin, tu peux accorder de l'importance au degré de liberté qu'on tes pièces (c'est plus valable aux echecs mais ça peut servir ici), en clair, si après avoir joué un coup, on t'oblige toujours à jouer un pion (parce que si tu joue les autres tu perds), c'est pas une bonne position.

    Ce qu'il faut, c'est combiner un peu toutes les évaluations et les pondérer afin de trouver le meilleur équilibre.

    L'idéal, c'est un apprentissage automatique. Ton jeu joue contre lui même et modifie les pondérations suivant qu'il gagne ou qu'il perd.

  3. #3
    Membre éclairé
    Inscrit en
    Janvier 2005
    Messages
    711
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 711
    Points : 751
    Points
    751
    Par défaut
    Citation Envoyé par PRomu@ld
    L'idéal, c'est un apprentissage automatique. Ton jeu joue contre lui même et modifie les pondérations suivant qu'il gagne ou qu'il perd.
    faut se mefier avec ca :-) le probleme c'est que l'amelioration est relative ! donc pour qu'il progresse il faut que le programme joue contre quelqu'un de fort. s'il joue contre lui meme, il ya de grande chance pour que tu te retrouve avec un truc assez mauvais.

    par contre, effectivement, tu ne parles pas de simplement compter les pieces, en accordant un bonus pour les dames : au jeu de dames, cela devrait suffire pour battre une grande majorité des gens.

  4. #4
    Membre éprouvé
    Avatar de Sivrît
    Profil pro
    Inscrit en
    Février 2006
    Messages
    953
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2006
    Messages : 953
    Points : 1 249
    Points
    1 249
    Par défaut
    Etant donné qu'aux dames la prise est obligatoire, et si ce n'est pas déjà fait, tu devrais essayer d'utiliser une profondeur adaptative : Utiliser la profondeur de prévision usuelle comme un minimum et continuer à anticiper les coups tants que des prises sont possibles (si un coups force l'advaisaire à prendre et que l'on fait derrière un massacre ça ne coute rien de l'anticiper et ça compte).

    Je ne suis pas vraiment un expert au dames mais tenter d'inclure la distance d'un pion à la dame dans sa valeur pourrait aider. Aux échecs on fait varier la valeur d'une pièce suivant sa position (la répartition des points pouvant dépendre du type de pièce). C'est peut-être une bêtise mais plus un pion est loin mieux c'est (sauf s'il va au casse pipe ), sauf la première ligne que l'on veut défendre à tout pris... enfin a priori car moi et les dames...


    Citation Envoyé par jobherzt
    par contre, effectivement, tu ne parles pas de simplement compter les pieces, en accordant un bonus pour les dames : au jeu de dames, cela devrait suffire pour battre une grande majorité des gens.
    On parle de moi ?

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 2
    Points : 2
    Points
    2
    Par défaut
    Merci pour vos réponses

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

Discussions similaires

  1. Fonction d'évaluation heuristique : jeu de Nim
    Par Schpountz42 dans le forum Intelligence artificielle
    Réponses: 8
    Dernier message: 27/03/2009, 12h26
  2. [Jeu de dames]Enregistrer les règles...
    Par progfou dans le forum Algorithmes et structures de données
    Réponses: 3
    Dernier message: 16/11/2005, 19h39
  3. [Jeu]Fonction d'évaluation
    Par le Daoud dans le forum Algorithmes et structures de données
    Réponses: 2
    Dernier message: 11/06/2005, 09h45
  4. [MinMax] Fonction d'évaluation
    Par le Daoud dans le forum Intelligence artificielle
    Réponses: 5
    Dernier message: 09/06/2005, 16h47
  5. probleme pour un jeu de dames en python
    Par doudou152 dans le forum Général Python
    Réponses: 7
    Dernier message: 22/04/2005, 14h53

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