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 :

[Aide] Performances de mon algorithme min-max


Sujet :

Intelligence artificielle

  1. #1
    Membre habitué
    Avatar de moithibault
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2009
    Messages
    124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Juin 2009
    Messages : 124
    Points : 142
    Points
    142
    Par défaut [Aide] Performances de mon algorithme min-max
    Coucou tout le monde,

    Je suis actuellement entrain de programmer un jeu à deux joueurs à somme non nulle et information compléte, il ressemble beaucoup dans la pratique au jeu de l'Attaxx sauf qu'il n'a pas de déplacement double en diagonale et les cases imprenables peuvent être variable selon les terrains et il se joue sur un damier 8*8 cases : Règles de l'Attax .

    Pour la programmation d'une IA, l'algorithme min-max est parfait, j'ai donc programmé mon algorithme min-max et tout à l'air de bien fonctionner.
    Ma fonction d'évaluation fait une boucle compléte sur le plateau passez en paramétre (sur la situation de jeu) et retourne la différence de score des joueurs :
    -Si l'etat de la case est = à l'etat du joueur alors on increment int eval sinon si il est egal à celle de l'adversaire on décremente eval.

    -Ma fonction prennais en compte uniquement le score d'une situation, par exemple sur des terrains ou les cases sont éloignés il faut avancer au maximum pour avoir une zone à conquérir .. du coup j'ai décidé d'ajouter une caractéristique position fait une matrice :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    	int[] position = {
    			0,0,1,2,2,1,0,0,
    			0,2,2,4,4,2,2,0,
    			1,2,4,5,5,4,2,1,
    			2,4,5,6,6,5,4,2,
    			2,4,5,6,6,5,4,2,
    			1,2,4,5,5,4,2,1,
    			0,2,2,4,4,2,2,0,
    			0,0,0,2,2,1,0,0,
    			};
    Et dans ma fonction d'évaluation j'ajoute à eval la valeur de la case dans position, ainsi si en début de partie nous sommes en bas a droite, on va plutot jouer en diagonale vers le haut qu'à gauche ou droite par exemple. Je pense que je devrais appliquer la matrice uniquement à la case jouées (imaginons qu'on est sur une case de valeurs 5 et qu'on saute sur une case de valeur 4 car le gain de points est considérable, alors on va avoir une valeur de 4 au final, alors que si on se duplique sur une case 2 on aura une valeur 7).

    -Enfin pour détecter une fin de partie, je me demandais si c'était quand on avait plus de possibilité de jeu ou lorsqu'on avait plus de possibilité de toucher u adversaire, du coup dans ma boucle principale d'évaluation je vérifie si l'ont a des possibilités de jeu (test des cas dans un if avec 12 conditions en OU) et pour chaque possibilité de jeu ont ajoute 1 point à eval et (respectivement on enlèvre 1 point pour chaque possibilité de l'adversaire).

    Sauf qu'au final mon IA à un niveau 4 ou 5 n'est pas transcendante dans ses coups ^^ Je pense, avant de faire un élagage alpha-beta que je devrais revoir ces 3caractéristiques et surtout leurs ratio ! Car je suppose qu'en début de parties la position est plus importante que le nombre de points alors que c'est l'inverse en fin de partie par exemple.

    Je cherche des personnes ou des livres, articles qui pourront clairement m'orienter car là je suis un peu perdu et je ne sais pas si je vais dans le bon chemin!

    Et ensuite, je voulais savoir si il y a des langages plus à privilégier pour implémenter un algorithme de type minmax. Et enfin si il y a une personne motivé pour m'aider dans mon projet, je suis preneur !

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 77
    Points : 66
    Points
    66
    Par défaut
    Salut, tu es toujours sur ton projet ou pas ?

Discussions similaires

  1. Algorithme Min-Max appliqué au jeu Puissance 4 en C .
    Par hebmaster dans le forum Intelligence artificielle
    Réponses: 17
    Dernier message: 29/10/2012, 07h33
  2. Algorithme Min-Max en C appliqué au jeu de Morpion (Tic-Tac-Toe)
    Par crooss dans le forum Algorithmes et structures de données
    Réponses: 4
    Dernier message: 02/01/2012, 16h41
  3. Parallélisation de l'algorithme Min Max
    Par on2101 dans le forum Intelligence artificielle
    Réponses: 0
    Dernier message: 08/02/2011, 21h08
  4. Fonction d'évaluation d'un jeu de dames utilisant l'algorithme du min/max
    Par elron8 dans le forum Algorithmes et structures de données
    Réponses: 4
    Dernier message: 31/01/2007, 11h04
  5. Demande d'aide pour débuter mon premier algorithme
    Par Pierre.g dans le forum Algorithmes et structures de données
    Réponses: 7
    Dernier message: 23/08/2006, 10h04

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