Date post: | 30-Dec-2015 |
Category: |
Documents |
Upload: | hamish-warren |
View: | 48 times |
Download: | 1 times |
Apprentissage du jeu de
morpion
Présenté par:
Romain ALMESMohamed-Amine BOUADDISandrine BUENDIAAbdelhakim KBIRI-ALAOUISébastien LONGJulio-Aziz RUIZ SIMARI
Soutenu par:
Mme HUCHARDMme NEBUT
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
Diagramme de classes
Fonctionnement de la classe « morpion »
Interface du jeu
Partie en cours
Apprentissage rapide
Menu « options »
L’automate
- Un état correspond a une grille de jeu- Une transition contient un poids et une destination vers le prochain état
10
-2030
-10
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
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.
Gestionnaire de fichiers
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
Calcul du meilleur coup
Problèmes rencontrés
- Problème de performance: la taille de l’automate sature la mémoire
- Problème d’optimisations: mode miroir inachevé
Problèmes rencontrés
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é