320 likes | 666 Views
Apprentissage du jeu de morpion. Présenté par:. Soutenu par:. Mme HUCHARD Mme NEBUT. Romain ALMES Mohamed-Amine BOUADDI Sandrine BUENDIA Abdelhakim KBIRI-ALAOUI Sébastien LONG Julio-Aziz RUIZ SIMARI. Introduction. But du sujet:
E N D
Apprentissage du jeu de morpion Présenté par: Soutenu par: Mme HUCHARD Mme NEBUT Romain ALMES Mohamed-Amine BOUADDI Sandrine BUENDIA Abdelhakim KBIRI-ALAOUI Sébastien LONG Julio-Aziz RUIZ SIMARI
Introduction But du sujet: Créer un programme capable d’apprendre à jouer au morpion
Introduction Plan de la présentation : • Analyse du sujet • Création d’un jeu de morpion • Création d’un automate • Sauvegarde de l’apprentissage • Comment décider du coup à jouer • Problèmes rencontrés • Discussion • Conclusion
Analyse du sujet • Description: • Créer un jeu de morpion • Créer une intelligence artificielle • Créer un système pour sauvegarder l’apprentissage
Analyse du sujet • Description: • Utiliser un automate pour représenter les parties enregistrées • Affecter des « poids » aux transitions des états de l’automate • Langage de programmation objet
Analyse du sujet • Fonctionnement du programme: • Mémoriser les parties déjà vues • Décider du meilleur coup à jouer à partir d’une base de connaissances
Analyse du sujet • Découpe du sujet en 3 binômes: • Le premier travaille sur la partie automate • Le second sur la sauvegarde de l’apprentissage • Le troisième sur la politique de décision des coups à jouer
Le jeu de morpion • Créé avant le découpage des tâches • Rapide à programmer • Séparé en deux parties: • Le jeu de morpion • Une interface graphique
L’automate 10 30 -20 -10 • Un état correspond a une grille de jeu • Une transition contient un poids et une destination vers le prochain état
Automate Implémentation automate : 3 classes : - Automate - Etat - Transition
Automate Problème rencontré : - Saturation de la mémoire Solution: - Optimiser l’automate pour diminuer les redondances
Automate • Deux états qui se rejoignent: Deux grilles équivalentes dans l’automate
Automate Ajout d’une transition pour éviter la redondance d’état
Automate • 2 optimisations: • Grille miroir • Rotation de la grille
Automate • Miroir d’une grille
Automate • Rotation de la grille:
Gestionnaire de stockage de données • Pourquoi stocker les données ? Deux solutions : • Gestionnaire de fichiers • Base de données
Gestionnaire de fichiers • Principe : • Sauvegarder les données dans des fichiers. • Problèmes : • Obligation de réécrire tout le fichier à chaque sauvegarde, • Beaucoup de temps pour charger et sauvegarder les états.Solution envisagée : • - Créer un fichier par état.
Base de données • Schéma de la base : • Intérêt : • Chargement de l’automate en une requête, • Mise à jour des états de façon individuelle.
Décider du meilleur coup • Pré-requis : • Avoir un automate déjà construit • Principe : • Décide du meilleur coup à jouer en fonction des connaissances actuelles
Problèmes rencontrés • Problème de performance: la taille de l’automate sature la mémoire • Problème d’optimisations: mode miroir inachevé
Discussion • Certaines fonctionnalités à implémenter • Comparaison avec l’algorithme Min-Max
Conclusion • L’application répond au cahier des charges • Evolution possible grâce au code commenté