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

Intelligence artificielle Discussion :

Puissance 4 : algorithme MiniMax (alpha-béta)


Sujet :

Intelligence artificielle

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    104
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 104
    Points : 84
    Points
    84
    Par défaut Puissance 4 : algorithme MiniMax (alpha-béta)
    Bonsoir,

    Alors voilà j'aimerais bien réalisé l'intelligence artificielle du jeu Puissance 4, je me suis donc renseigné à ce sujet si des travaux n'avaient pas déjà été effectués à son égard et je suis tombé sur l'algorithme MinMax. J'ai donc essayé de comprendre cet algorithme mais je n'ai pas trouvé de textes parlant de celui-ci de façon très clair. D'après ce que j'ai compris, on va tester les différentes possibilités de jeu jusqu'à une certaine profondeur (ça c'est l'élagage alpha béta qui permet cela, pour éviter de prévoir trop de coup et de ce fait ralentir la machine). Donc on simule un coup joueur, un coup ennemi et un coup joueur (profondeur 3) mais là où je bloque c'est le système de point pour déterminer le "meilleur" coup à jouer.

    De plus l'application de cette algorithme en langage C me parait un peu étrange, car j'entends parler de structure d'arbre binaire (j'ai aussi lu que c'était un abus de langage ?) et le soucis c'est qu'au puissance 4 on peut jouer 7 coups différents à chaque tour donc le concept binaire m'échappe un peu :-S.

    Voilà donc si vous pouviez m'aider à m'approprier cet algorithme (ou si vous un lien car je n'en ai malheureusement pas trouvé de bien détaillé, surtout des polys de cours sauf que je n'ai pas suivi ce cours ^^) ce serait sympa ;-).

    Merci à vous.

    Bye.

  2. #2
    Membre averti

    Profil pro
    Étudiant
    Inscrit en
    Décembre 2004
    Messages
    499
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2004
    Messages : 499
    Points : 422
    Points
    422
    Par défaut
    salut

    voici les 2 liens que je conseille

    fearyourself.developpez.com/tutoriel/sdl/morpion/part6
    fearyourself.developpez.com/tutoriel/sdl/morpion/part7

  3. #3
    Membre régulier

    Profil pro
    Étudiant
    Inscrit en
    Juin 2006
    Messages
    78
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2006
    Messages : 78
    Points : 105
    Points
    105
    Par défaut
    http://www.iro.umontreal.ca/~nie/IFT3335/Recherche.html

    Tu y trouveras non seulement une description du min-max (nommé minimax...), de l'alpha-beta, mais surtout de la base de la théorie derrière.
    "The worst errors I've ever seen do not came from no knowledge, but from having just the the right amount of it, too small to really understand what you're doing, but enough to think you did. That amount of knowledge, is evil."

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    104
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 104
    Points : 84
    Points
    84
    Par défaut
    Merci à vous, effectivement je n'avais ni trouver le tout premier lien que tu m'as donné acx01b ni celui de Aszarsha ;-).

    Je vais potasser tout ça.

    Bye.

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    104
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 104
    Points : 84
    Points
    84
    Par défaut
    Re,

    Alors voilà j'ai compris le but de l'algorithme (c'est quand même très fort d'avoir penser à un truc pareil dans les années 30 !). Maintenant il me reste des problèmes quand à son implémentation en C dans le cas du puissance 4.

    Pour la fonction d'évaluation pour compter le nombre de pions autour du pion joués, y a t-il une autre solution que de faire des while dans tous les sens ? J'aimerais bien faire ça de façon propre mais ça m'a l'air un peu bourrin quand même :S

    Merci à vous.

  6. #6
    Membre régulier

    Profil pro
    Étudiant
    Inscrit en
    Juin 2006
    Messages
    78
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2006
    Messages : 78
    Points : 105
    Points
    105
    Par défaut
    Tu peux entrainer une heuristique avec de l'apprentissage par renforcement, c'est très efficace et très simple à coder.
    "The worst errors I've ever seen do not came from no knowledge, but from having just the the right amount of it, too small to really understand what you're doing, but enough to think you did. That amount of knowledge, is evil."

  7. #7
    Expert éminent sénior

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 603
    Détails du profil
    Informations personnelles :
    Âge : 66
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 603
    Points : 17 913
    Points
    17 913
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par sperca Voir le message
    (c'est quand même très fort d'avoir penser à un truc pareil dans les années 30 !)..


    Pythagore du temps des Grecs, Kepler, Galilée et Newton il y a 400 ans et 250 ans, Carnot il y a 150 ans, les Curie il y a 110 ans, Einstein, Schrodinger, Bohr, "dans les années 30"........

    On vous a pas attendu (ni l'informatique) pour être bon en maths et en pensée...

    ça m'épatera toujours....
    "Un homme sage ne croit que la moitié de ce qu’il lit. Plus sage encore, il sait laquelle".

    Consultant indépendant.
    Architecture systèmes complexes. Programmation grosses applications critiques. Ergonomie.
    C, Fortran, XWindow/Motif, Java

    Je ne réponds pas aux MP techniques

  8. #8
    Membre éclairé Avatar de HanLee
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    738
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2004
    Messages : 738
    Points : 871
    Points
    871
    Par défaut
    Citation Envoyé par souviron34 Voir le message


    Pythagore du temps des Grecs, Kepler, Galilée et Newton il y a 400 ans et 250 ans, Carnot il y a 150 ans, les Curie il y a 110 ans, Einstein, Schrodinger, Bohr, "dans les années 30"........

    On vous a pas attendu (ni l'informatique) pour être bon en maths et en pensée...

    ça m'épatera toujours....
    Mais tu as principalement cité des physiciens...

  9. #9
    Expert éminent sénior

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 603
    Détails du profil
    Informations personnelles :
    Âge : 66
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 603
    Points : 17 913
    Points
    17 913
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par HanLee Voir le message
    Mais tu as principalement cité des physiciens...
    J'ai cité Pythagore..

    et Fermat ?

    et Thalès ?

    Et de plus, contrairement à maintenant, tout bon scientifique était d'abord bon en langues (une dizaine, dont couramment le latin et pour la plupart l'hébreu), en philosophie, en maths, en physique, et pour terminer en astronomie

    Donc tous ceux que je citait étaient également mathématiciens
    "Un homme sage ne croit que la moitié de ce qu’il lit. Plus sage encore, il sait laquelle".

    Consultant indépendant.
    Architecture systèmes complexes. Programmation grosses applications critiques. Ergonomie.
    C, Fortran, XWindow/Motif, Java

    Je ne réponds pas aux MP techniques

  10. #10
    Membre régulier

    Profil pro
    Étudiant
    Inscrit en
    Juin 2006
    Messages
    78
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2006
    Messages : 78
    Points : 105
    Points
    105
    Par défaut
    On se fiche de savoir leur orientation scientifique, ce qui est important c'est qu'ils avaient tous un formidable... Réseau de neurones.
    "The worst errors I've ever seen do not came from no knowledge, but from having just the the right amount of it, too small to really understand what you're doing, but enough to think you did. That amount of knowledge, is evil."

Discussions similaires

  1. Algorithme alpha-bêta : pseudo code
    Par nanosoft dans le forum Intelligence artificielle
    Réponses: 19
    Dernier message: 30/10/2014, 21h54
  2. Algorithme Alpha Béta
    Par titme dans le forum Intelligence artificielle
    Réponses: 2
    Dernier message: 15/04/2011, 20h27
  3. Algorithme alpha béta
    Par Bathou dans le forum Intelligence artificielle
    Réponses: 11
    Dernier message: 16/02/2010, 11h47
  4. Problème avec l'algorithme minimax pour un morpion
    Par Electroniktor dans le forum Intelligence artificielle
    Réponses: 0
    Dernier message: 26/10/2009, 21h18
  5. Algorithme Minimax/Alpha-Beta
    Par Guybrush Threepwood dans le forum Flash
    Réponses: 2
    Dernier message: 14/03/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