Livre pour apprendre les algo MinMax et Alpha/beta

fdiedler2000 Messages postés 383 Date d'inscription samedi 29 janvier 2005 Statut Membre Dernière intervention 1 décembre 2008 - 8 déc. 2007 à 10:43
fdiedler2000 Messages postés 383 Date d'inscription samedi 29 janvier 2005 Statut Membre Dernière intervention 1 décembre 2008 - 6 janv. 2008 à 22:50
Bonjour,

Je voudrais apprendre les bases des l'algorithmes Min/Max et Alpha/Beta avec un bon livre pour débutant !

Mon but et de comprendre comment réfléchie une IA pour en developper une dans le cadre d'un morpion ou puissance 4 dans un premier temps.

De plus, si vous connaissez des ressources sur le net qui explique vraiment pas à pas ces deux algos avec si possible un exemple en vb.net ca serait génial :)

Merci à tous
A voir également:

101 réponses

fdiedler2000 Messages postés 383 Date d'inscription samedi 29 janvier 2005 Statut Membre Dernière intervention 1 décembre 2008
25 déc. 2007 à 23:58
Donc dans le ZIP il y a 3 exe :

- Le premier avec des stops sur le MAX
- Le 2eme avec des stops sur le MAX et MIN
- Le dernier avec aucun stops

Voila le lien :
http://www.zonegeeks.com/temp/minmax.zip
fdiedler2000 Messages postés 383 Date d'inscription samedi 29 janvier 2005 Statut Membre Dernière intervention 1 décembre 2008
25 déc. 2007 à 23:59
j'ai oublié de préciser :

Tu joue ton coup et ensuite tu cliques sur "IA" et ainsi de suite :)
mstarsup5 Messages postés 527 Date d'inscription lundi 15 octobre 2007 Statut Membre Dernière intervention 10 octobre 2013 1
26 déc. 2007 à 00:00
Ps: dans la compilation, mets moi aussi le msgbox dans le min stp.
pour l'adresse email, demande moi en pv.
Ps: je pars chez mes parents demain vers 14h, et j'aurai plus le net pendant une dizaine de jours après (et encore après, j'ai des partiels) donc je risque de pas répondre pendant un temps..

 Pourapprendretoujoursplus!
mstarsup5 Messages postés 527 Date d'inscription lundi 15 octobre 2007 Statut Membre Dernière intervention 10 octobre 2013 1
26 déc. 2007 à 00:01
Cool, je regarde ça.

 Pourapprendretoujoursplus!

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
mstarsup5 Messages postés 527 Date d'inscription lundi 15 octobre 2007 Statut Membre Dernière intervention 10 octobre 2013 1
26 déc. 2007 à 00:03
Ah, moins cool de suite, j'ai un mesage d'erreur en lançant tes .exe...

(message d'erreur: L'application n'a pas réussi à s'initialiser correctement (0xc0000135). Cliquez sur OK pour arrêter l'application)

 Pourapprendretoujoursplus!
mstarsup5 Messages postés 527 Date d'inscription lundi 15 octobre 2007 Statut Membre Dernière intervention 10 octobre 2013 1
26 déc. 2007 à 00:06
(Et un truc bizarre: j'arrive pas à installer ta dll, c'est la première fois que ça me fait ça lol...)

 Pourapprendretoujoursplus!
fdiedler2000 Messages postés 383 Date d'inscription samedi 29 janvier 2005 Statut Membre Dernière intervention 1 décembre 2008
26 déc. 2007 à 00:09
la dll ne s'installe pas, il suffit de lancer l'exe mais la dll doit etre dans le meme répertoire que le .exe

Aussi il faut télécharger le framework 2.0 !
Dispo sur mon site :
http://www.zonegeeks.com/site/telechargements.php
fdiedler2000 Messages postés 383 Date d'inscription samedi 29 janvier 2005 Statut Membre Dernière intervention 1 décembre 2008
26 déc. 2007 à 00:11
J'avais pas lu ton message d'erreur, ca veut dire que le Framework 2.0 n'est pas installé, prend le sur mon site et ensuite ca marchera. Ne t'occupe pas de la DLL, c'est pas comme en vb6 ou il faut l'enregistré ^^
mstarsup5 Messages postés 527 Date d'inscription lundi 15 octobre 2007 Statut Membre Dernière intervention 10 octobre 2013 1
26 déc. 2007 à 00:14
Framework 2.0, ça sert à quoi?

 Pourapprendretoujoursplus!
fdiedler2000 Messages postés 383 Date d'inscription samedi 29 janvier 2005 Statut Membre Dernière intervention 1 décembre 2008
26 déc. 2007 à 00:17
C'est la packtage qui permet d'utiliser les classes en .net
C'est malheuresement indispensable pour lancer des appli créer en .net

Par exemple pour utiliser le classe System.IO ou System.Net, on a besoin du Framework et la version 2.0 correspond à la version 2005 de Visual Basic :)
mstarsup5 Messages postés 527 Date d'inscription lundi 15 octobre 2007 Statut Membre Dernière intervention 10 octobre 2013 1
26 déc. 2007 à 00:30
Re,
Le moins qu'on puisse dire, c'est que le programme buggue un peu :-p
Je regarde

 Pourapprendretoujoursplus!
mstarsup5 Messages postés 527 Date d'inscription lundi 15 octobre 2007 Statut Membre Dernière intervention 10 octobre 2013 1
26 déc. 2007 à 00:35
Question: tu as mis MINEVAL<minimum possible de l'évaluation (resp MAXEVAL>maximum possible de l'évaluation?)
(et pas >= ni <=?)
J'essaie de voir pourquoi dans l'exe que tu m'as passé y'a un moment ou je tombe sur une boucle infinie, ça veut forcément dire qu'il y a un problème dans l'algo min max.

 Pourapprendretoujoursplus!
mstarsup5 Messages postés 527 Date d'inscription lundi 15 octobre 2007 Statut Membre Dernière intervention 10 octobre 2013 1
26 déc. 2007 à 00:37
Quoi que... j'avais oublié que c'était du min max et pas du alpha beta... c'est pas une boucle infinie que j'obtiens, mais un truc qui prend très très longtemps...

 Pourapprendretoujoursplus!
fdiedler2000 Messages postés 383 Date d'inscription samedi 29 janvier 2005 Statut Membre Dernière intervention 1 décembre 2008
26 déc. 2007 à 10:46
Eu mes constantes sont :
  Private Const MINEVAL As Integer = -1000
    Private Const MAXEVAL As Integer = 1000

Mais je peux mettre ca :
  Private Const MINEVAL As Integer = -100000
    Private Const MAXEVAL As Integer = 100000

Ca me change rien ...
mstarsup5 Messages postés 527 Date d'inscription lundi 15 octobre 2007 Statut Membre Dernière intervention 10 octobre 2013 1
26 déc. 2007 à 10:54
Il vaut mieux.
j'y jette un oeil si j'ai le temps dans une heure, sinon, ben à dans 10 jours au moins ^^"

 Pourapprendretoujoursplus!
fdiedler2000 Messages postés 383 Date d'inscription samedi 29 janvier 2005 Statut Membre Dernière intervention 1 décembre 2008
26 déc. 2007 à 11:08
ok lol ;)
fdiedler2000 Messages postés 383 Date d'inscription samedi 29 janvier 2005 Statut Membre Dernière intervention 1 décembre 2008
26 déc. 2007 à 11:13
Pourtant selon je lien que je t'ai donné :
Si la partie est terminée alors
Si c'est une égalité, alors on retourne 0
Sinon
Si l'ordinateur a gagné, alors retourne 1000 (le maximum possible);
Sinon l'ordinateur a perdu, alors retourne -1000 (le minimum possible);
Fin Si
Fin Si
Sinon
Soit la somme = 0
Pour chaque ligne, chaque colonne, chaque diagonale,
S'il y au moins un pion de chaque joueur, on ne fait rien
Sinon
S'il y a 2 pions de l'adversaire, on enlève 30 à somme
sinon s'il y a 2 pions du joueur de l'IA, on ajoute 30 à somme
sinon s'il y a 1 pion de l'adversaire, on enlève 10 à somme
sinon s'il y a 1 pion de l'IA, on ajoute 10 à somme
Fin Si
Fin Si
Fin Pour

Il ont l'air de dire qu'il faut donner +1000 quand l'IA gagne et -1000 quand il pert et que c'est le max (resp. min) possible.
Donc, les constantes ne doivent etres pas etre égales ?
Fin Si
fdiedler2000 Messages postés 383 Date d'inscription samedi 29 janvier 2005 Statut Membre Dernière intervention 1 décembre 2008
26 déc. 2007 à 11:13
Pourtant selon je lien que je t'ai donné :
Si la partie est terminée alors
Si c'est une égalité, alors on retourne 0
Sinon
Si l'ordinateur a gagné, alors retourne 1000 (le maximum possible);
Sinon l'ordinateur a perdu, alors retourne -1000 (le minimum possible);
Fin Si
Fin Si
Sinon
Soit la somme = 0
Pour chaque ligne, chaque colonne, chaque diagonale,
S'il y au moins un pion de chaque joueur, on ne fait rien
Sinon
S'il y a 2 pions de l'adversaire, on enlève 30 à somme
sinon s'il y a 2 pions du joueur de l'IA, on ajoute 30 à somme
sinon s'il y a 1 pion de l'adversaire, on enlève 10 à somme
sinon s'il y a 1 pion de l'IA, on ajoute 10 à somme
Fin Si
Fin Si
Fin Pour

Il ont l'air de dire qu'il faut donner +1000 quand l'IA gagne et -1000 quand il pert et que c'est le max (resp. min) possible.
Donc, les constantes ne doivent etres pas etre égales ?
Fin Si
mstarsup5 Messages postés 527 Date d'inscription lundi 15 octobre 2007 Statut Membre Dernière intervention 10 octobre 2013 1
26 déc. 2007 à 11:18
Dans ce qu'on a mis, on a mis un < et un >, donc si jamais on a égalité, le coup ne sera pas pris.

 Pourapprendretoujoursplus!
mstarsup5 Messages postés 527 Date d'inscription lundi 15 octobre 2007 Statut Membre Dernière intervention 10 octobre 2013 1
26 déc. 2007 à 11:22
Re

Dans tes fcts calcmax et calcmin remplace le Return eval() par
tmp=eval()
msgbox str(prof) & "," & str(eval)
return tmp

(pour voir ce qu'il se passe).
Merci

 Pourapprendretoujoursplus!
Rejoignez-nous