03-09-2015, 08:48 PM
Un exemple simple pour le jeu d'échec (pas besoin d'expliquer les règles comme ça).
L'IA a en mémoire un ensemble de parties pour lesquelles il y a un statut "les blancs gagnent", "les blancs perdent", "match nul". A chaque coup de l'IA, elle cherche la position courante dans la BDD, elle ne conserve que les parties où son camp a gagné (à défaut, celles nulles), et elle joue l'un des coups au pif.
C'est trivial à implémenter. C'est monstrueux à calculer, je l'accorde. On peut facilement ajouter des conditions aléatoires où l'IA va parfois jouer un coup au pif.
Un exemple un peu plus poussé pour les échecs (et qui est probablement la solution actuelle): à chaque caractéristique de la position, on associe un paramètre, ce qui constitue un vecteur décrivant la position courante (pièces en place, cases de déplacement de chaque pièce, etc). On en déduit donc, via une formule de calcul, une "valeur" de la position. On liste les coups autorisés, on recalcule la valeur de la position suivante et on choisit le meilleur coup. L'apprentissage de l'IA se joue alors sur la formule de calcul: l'IA attribue initialement la valeur "1" à chaque paramètre. Donc, en gros, 1 pion = 1 reine = 1 roi. En début de partie, l'IA va altérer ce paramètre de +/-10% (facile à coder: rand(0.9, 1.1)). En fin de partie, l'IA sauve ces paramètres ainsi que le fait d'avoir gagné ou perdu. Aux prochaines parties, l'IA favorisera les jeux de paramètres que la font le plus gagner.
L'IA a en mémoire un ensemble de parties pour lesquelles il y a un statut "les blancs gagnent", "les blancs perdent", "match nul". A chaque coup de l'IA, elle cherche la position courante dans la BDD, elle ne conserve que les parties où son camp a gagné (à défaut, celles nulles), et elle joue l'un des coups au pif.
C'est trivial à implémenter. C'est monstrueux à calculer, je l'accorde. On peut facilement ajouter des conditions aléatoires où l'IA va parfois jouer un coup au pif.
Un exemple un peu plus poussé pour les échecs (et qui est probablement la solution actuelle): à chaque caractéristique de la position, on associe un paramètre, ce qui constitue un vecteur décrivant la position courante (pièces en place, cases de déplacement de chaque pièce, etc). On en déduit donc, via une formule de calcul, une "valeur" de la position. On liste les coups autorisés, on recalcule la valeur de la position suivante et on choisit le meilleur coup. L'apprentissage de l'IA se joue alors sur la formule de calcul: l'IA attribue initialement la valeur "1" à chaque paramètre. Donc, en gros, 1 pion = 1 reine = 1 roi. En début de partie, l'IA va altérer ce paramètre de +/-10% (facile à coder: rand(0.9, 1.1)). En fin de partie, l'IA sauve ces paramètres ainsi que le fait d'avoir gagné ou perdu. Aux prochaines parties, l'IA favorisera les jeux de paramètres que la font le plus gagner.