cs_Kirua
Messages postés3006Date d'inscriptiondimanche 14 avril 2002StatutMembreDernière intervention31 décembre 2008
-
2 juin 2006 à 23:22
rrk275
Messages postés540Date d'inscriptionvendredi 25 juin 2004StatutMembreDernière intervention 1 octobre 2007
-
4 juin 2006 à 19:08
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
rrk275
Messages postés540Date d'inscriptionvendredi 25 juin 2004StatutMembreDernière intervention 1 octobre 20072 4 juin 2006 à 19:08
lol le 42! heu pour le P4 c'est pas super utile mais un jeu ou faut choisir un nombre
de points par piece ( echec .. ), la ca peut etre utile...
coucou747
Messages postés12303Date d'inscriptionmardi 10 février 2004StatutMembreDernière intervention30 juillet 201244 3 juin 2006 à 17:14
le principe ce cette IA génétique, c'est simple
-on doit jouer :
--on vérifie que la partie en cours correspond à une partie enregistrée
--si elle correspond alors
----on extrait le coup
----on le joue
--sinon
--on prend un coup au hazard (mais valide sur la partie)
--on mémorise ce coup
--on joue ce coup
donc, tout les coups sont mémorisés...
cette IA légèrement améliorée donne :
--on vérifie que la partie en cours correspond à une partie enregistrée
--on tient compte des différents sens de la grille (une partie peut avoir 4 représentations en mémoires, en appliquant des roations...)
--si elle correspond alors
----on extrait le coup
----on replace le coup dans le bon sens (pour l'appliquer à la partie en cours)
----on le joue
--sinon
--on prend un coup en réfléchissant (coup valide et intelligent sur la partie, par exemple un minimax de profondeur n)
--on mémorise ce coup
--on joue ce coup
dans ce cas, les mutations devront être intelligentes, mais avoir une intelligence "meilleur" que le minimax de profondeur n... sinon, ça n'a aucun interet
Donc, on enregistre toutes les parties possibles.... enfin, on tient compte des rotations ou autres transformations, donc, ça fait un peu moins...
d'ailleur le nombre de parties possibles n'est pas 42!... mais pas du tout... il est bien inferieur, puisqu'on choisit une colone parmie 4... mais quand une colone est pleine, on ne peut pas y jouer... bref, j'ai trop la flème de calculer ça, mais ça doit être inferieur à 7^42...
voici une ligne de puissance 4
|O| | | | | | |
est la même chose que
| | | | | | |O|
donc, on peut y appliquer une transformation...
donc, 7^42/2 au max...
cs_Kirua
Messages postés3006Date d'inscriptiondimanche 14 avril 2002StatutMembreDernière intervention31 décembre 2008 3 juin 2006 à 16:53
42!, c'est beau :) N'importe quel PC qui se respecte doit pouvoir gérer ce nombre ^_^.
Je ne comprends pas bien pourquoi tu as besoin d'enregistrer toutes les parties.
coucou747
Messages postés12303Date d'inscriptionmardi 10 février 2004StatutMembreDernière intervention30 juillet 201244 3 juin 2006 à 13:58
Kirua> Je peux optimiser quelquechose sur un morpion: diriger les mutations vers les parties perdues, et le faire choisir un endroit de mutation stratégique (là encore, c'est pour le moment aléatoire). Je peux aussi ajouter un champ nombre de pions joués, pour éviter une réplication complète du plateau avant la comparaison, surtout avec les rotations (la fonction is_similaire détermine si on peut par une rotation retrouver la partie), Mais pour le reste, c'est ridicul de l'optimiser à fond, pour un morpion... y ajouter un minimax pour déterminer le coup qu'une IA jouerait lorsqu'elle n'a pas mémorisé la partie, reviendrait à en faire une IA imbatable dès le départ... faudrait mettre ça sur un puissance 4...
Pour un puissance 4, on ne pourrait pas stoquer toute l'IA en mémoire, c'est pas possible, faudrait ruser, en se connectant à MYSQL (ou tout autre dysteme de base de donnée) je penses... enfin bon, on a (6*7)! possibilitées de grilles terminées... je vous laisse calculer le nombre de possibilitées de parties non terminées... je penses qu'une table MYISAM saturerait très très vite surtout si on y met un id_IA... (une table MYISAM peut contennir 2^32 lignes). Bref, je réfléchis encore à comment élargire ce programme...
rrk275
Messages postés540Date d'inscriptionvendredi 25 juin 2004StatutMembreDernière intervention 1 octobre 20072 3 juin 2006 à 01:08
Genial meme si je pense que devra t'y prendre differement pour stocker ton IA dans un P4...
cs_Kirua
Messages postés3006Date d'inscriptiondimanche 14 avril 2002StatutMembreDernière intervention31 décembre 2008 2 juin 2006 à 23:22
La description donne de jolis espoirs :) J'ai pas le temps d'analyser ni le code ni le rendu, mais rien que pour la forme, ce serait intéressant que tu gères ce "projet" comme un vrai projet de recherche en IA. A savoir, tu fais des essais, et tu fais systématiquement passer une série de tests qui permettent de "coter" le changement... Ca permettrait de voir quels "optimisations" en sont vraiment :).
4 juin 2006 à 19:08
de points par piece ( echec .. ), la ca peut etre utile...
3 juin 2006 à 17:14
-on doit jouer :
--on vérifie que la partie en cours correspond à une partie enregistrée
--si elle correspond alors
----on extrait le coup
----on le joue
--sinon
--on prend un coup au hazard (mais valide sur la partie)
--on mémorise ce coup
--on joue ce coup
donc, tout les coups sont mémorisés...
cette IA légèrement améliorée donne :
--on vérifie que la partie en cours correspond à une partie enregistrée
--on tient compte des différents sens de la grille (une partie peut avoir 4 représentations en mémoires, en appliquant des roations...)
--si elle correspond alors
----on extrait le coup
----on replace le coup dans le bon sens (pour l'appliquer à la partie en cours)
----on le joue
--sinon
--on prend un coup en réfléchissant (coup valide et intelligent sur la partie, par exemple un minimax de profondeur n)
--on mémorise ce coup
--on joue ce coup
dans ce cas, les mutations devront être intelligentes, mais avoir une intelligence "meilleur" que le minimax de profondeur n... sinon, ça n'a aucun interet
Donc, on enregistre toutes les parties possibles.... enfin, on tient compte des rotations ou autres transformations, donc, ça fait un peu moins...
d'ailleur le nombre de parties possibles n'est pas 42!... mais pas du tout... il est bien inferieur, puisqu'on choisit une colone parmie 4... mais quand une colone est pleine, on ne peut pas y jouer... bref, j'ai trop la flème de calculer ça, mais ça doit être inferieur à 7^42...
voici une ligne de puissance 4
|O| | | | | | |
est la même chose que
| | | | | | |O|
donc, on peut y appliquer une transformation...
donc, 7^42/2 au max...
3 juin 2006 à 16:53
Je ne comprends pas bien pourquoi tu as besoin d'enregistrer toutes les parties.
3 juin 2006 à 13:58
Pour un puissance 4, on ne pourrait pas stoquer toute l'IA en mémoire, c'est pas possible, faudrait ruser, en se connectant à MYSQL (ou tout autre dysteme de base de donnée) je penses... enfin bon, on a (6*7)! possibilitées de grilles terminées... je vous laisse calculer le nombre de possibilitées de parties non terminées... je penses qu'une table MYISAM saturerait très très vite surtout si on y met un id_IA... (une table MYISAM peut contennir 2^32 lignes). Bref, je réfléchis encore à comment élargire ce programme...
3 juin 2006 à 01:08
2 juin 2006 à 23:22