Apprentissage du jeu de morpion

31
Apprentissage du jeu de morpion Présenté par: Romain ALMES Mohamed-Amine BOUADDI Sandrine BUENDIA Abdelhakim KBIRI-ALAOUI Sébastien LONG Julio-Aziz RUIZ SIMARI Soutenu par: Mme HUCHARD Mme NEBUT

description

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: - PowerPoint PPT Presentation

Transcript of Apprentissage du jeu de morpion

Page 1: Apprentissage du jeu de  morpion

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

Page 2: Apprentissage du jeu de  morpion

Introduction

But du sujet:

Créer un programme capable d’apprendre à jouer au morpion

Page 3: Apprentissage du jeu de  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

Page 4: Apprentissage du jeu de  morpion

Analyse du sujet

Description:

Créer un jeu de morpion

Créer une intelligence artificielle

Créer un système pour sauvegarder l’apprentissage

Page 5: Apprentissage du jeu de  morpion

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

Page 6: Apprentissage du jeu de  morpion

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

Page 7: Apprentissage du jeu de  morpion

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

Page 8: Apprentissage du jeu de  morpion

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

Page 9: Apprentissage du jeu de  morpion

Diagramme de classes

Page 10: Apprentissage du jeu de  morpion

Fonctionnement de la classe « morpion »

Page 11: Apprentissage du jeu de  morpion

Interface du jeu

Page 12: Apprentissage du jeu de  morpion

Partie en cours

Page 13: Apprentissage du jeu de  morpion

Apprentissage rapide

Page 14: Apprentissage du jeu de  morpion

Menu « options »

Page 15: Apprentissage du jeu de  morpion

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

Page 16: Apprentissage du jeu de  morpion

Automate

Implémentation automate :

3 classes :- Automate- Etat- Transition

Page 17: Apprentissage du jeu de  morpion

Automate

Problème rencontré :- Saturation de la mémoire

Solution:- Optimiser l’automate pour diminuer les redondances

Page 18: Apprentissage du jeu de  morpion

Automate

Deux états qui se rejoignent: Deux grilles équivalentes dans l’automate

Page 19: Apprentissage du jeu de  morpion

Automate

Ajout d’une transition pour éviter la redondance d’état

Page 20: Apprentissage du jeu de  morpion

Automate

2 optimisations:

Grille miroir Rotation de la grille

Page 21: Apprentissage du jeu de  morpion

Automate

Miroir d’une grille

Page 22: Apprentissage du jeu de  morpion

Automate Rotation de la grille:

Page 23: Apprentissage du jeu de  morpion

Gestionnaire de stockage de données

Pourquoi stocker les données ? Deux solutions :

- Gestionnaire de fichiers

- Base de données

Page 24: Apprentissage du jeu de  morpion

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

Page 25: Apprentissage du jeu de  morpion

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.

Page 26: Apprentissage du jeu de  morpion

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

Page 27: Apprentissage du jeu de  morpion

Calcul du meilleur coup

Page 28: Apprentissage du jeu de  morpion

Problèmes rencontrés

- Problème de performance: la taille de l’automate sature la mémoire

- Problème d’optimisations: mode miroir inachevé

Page 29: Apprentissage du jeu de  morpion

Problèmes rencontrés

Page 30: Apprentissage du jeu de  morpion

Discussion

- Certaines fonctionnalités à implémenter

- Comparaison avec l’algorithme Min-Max

Page 31: Apprentissage du jeu de  morpion

Conclusion

- L’application répond au cahier des charges

- Evolution possible grâce au code commenté