18-09-2008, 11:54 AM
effectivement ^^
Perso je trouve cette IA un peu "basique" et surtout, il n'y a pas réellement d'apprentissage , de jugement par la machine, juste un aléatoire filtré
Voilà l’idée que je te propose
A chaque décision (situation initiale + coup joué) tu enregistres le nombre de fois où la décision a été prise et le nombre de fois où cette décision a été la bonne (ie où la partie a finalement été gagnée).
Cela tu le fais pour les deux joueurs, gagnant comme perdant
A partir de la tu peux définir un score nb gagné / nb joué
De là tu peux définir le choix comme étant :
Si, parmi toutes les décisions possibles connues, il y a des scores > 50% alors choisir la meilleure (ou bien, au hasard parmi les n meilleures > 50%, ou fonction de la « distance » entre le meilleur score et ses suivants, à toi de voir si tu veux de l’aléatoire)
Si, parmi toutes les décisions possibles connues, aucune n’a un score > 50% alors choisir au hasard parmi les décisions non connues
Cela devrait éviter deux trois critiques à ton algo précédent :
En effet
- si un coup complètement nul a été joué mais que la partie a été gagnée parce que l’adversaire joue comme un pied, alors ce coup sera statistiquement joué aussi souvent que la super stratégie qui marche à tous les coups
- tu ne t’enrichis que de l’expérience du gagnant et pas du perdant
- à très long terme je pense que toutes les possibilités ou presque seront jugées gagnantes par l’algorithme (en effet il suffit d’une victoire)
(y a plus compliqué encore, apprentissage de bayes, etc.. mais là faudrait que je me replonge dans des bouquins que j'ai perdu il y a dix ans :p)
Perso je trouve cette IA un peu "basique" et surtout, il n'y a pas réellement d'apprentissage , de jugement par la machine, juste un aléatoire filtré
Voilà l’idée que je te propose
A chaque décision (situation initiale + coup joué) tu enregistres le nombre de fois où la décision a été prise et le nombre de fois où cette décision a été la bonne (ie où la partie a finalement été gagnée).
Cela tu le fais pour les deux joueurs, gagnant comme perdant
A partir de la tu peux définir un score nb gagné / nb joué
De là tu peux définir le choix comme étant :
Si, parmi toutes les décisions possibles connues, il y a des scores > 50% alors choisir la meilleure (ou bien, au hasard parmi les n meilleures > 50%, ou fonction de la « distance » entre le meilleur score et ses suivants, à toi de voir si tu veux de l’aléatoire)
Si, parmi toutes les décisions possibles connues, aucune n’a un score > 50% alors choisir au hasard parmi les décisions non connues
Cela devrait éviter deux trois critiques à ton algo précédent :
En effet
- si un coup complètement nul a été joué mais que la partie a été gagnée parce que l’adversaire joue comme un pied, alors ce coup sera statistiquement joué aussi souvent que la super stratégie qui marche à tous les coups
- tu ne t’enrichis que de l’expérience du gagnant et pas du perdant
- à très long terme je pense que toutes les possibilités ou presque seront jugées gagnantes par l’algorithme (en effet il suffit d’une victoire)
(y a plus compliqué encore, apprentissage de bayes, etc.. mais là faudrait que je me replonge dans des bouquins que j'ai perdu il y a dix ans :p)