Précédent   Forum du club des développeurs et IT Pro > Autres langages > Algorithmes > Intelligence artificielle
Intelligence artificielle Forum d'entraide sur l'intelligence artificielle. Avant de poster : Cours d'intelligence artificielle
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 09/12/2012, 13h11   #1
biot22
Membre du Club
 
Avatar de biot22
 
Étudiant
Inscription : juin 2009
Messages : 114
Détails du profil
Informations personnelles :
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : juin 2009
Messages : 114
Points : 67
Points : 67
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 :
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 !
__________________
biot22 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/02/2013, 01h22   #2
Rumpel
Nouveau Membre du Club
 
Inscription : novembre 2008
Messages : 47
Détails du profil
Informations forums :
Inscription : novembre 2008
Messages : 47
Points : 26
Points : 26
Salut, tu es toujours sur ton projet ou pas ?
Rumpel est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 15h45.


 
 
 
 
Partenaires

Hébergement Web