LE Sudoku Projet Parcours GSI

Slides:



Advertisements
Présentations similaires
1. Résumé 2 Présentation du créateur 3 Présentation du projet 4.
Advertisements

La Méthode de Simplexe Standardisation
Produit Gammes Nomenclatures Modules Techniques Prix de Revient Prix de Vente Modules Techniques Client Marges Mise en route Temps Unitaire Prix (Ex:
Académie de Créteil - B.C.
Diffusion Nationale TOULOUSE –janv 2007 STSWEB Année en préparation: Bascule et gestion des services PARTIE I: BASCULE.
A l’issue des conseils de classe de 3ème,
Présentation du prototype :
1 Tracer un graphique avec la calculatrice graphique Cliquez sur le modèle de votre calculatrice.
Initiation à l’utilisation du logiciel STATISTICA
Algorithmique (suite)
Portée des variables VBA & Excel
Story-board version 1.1 Statut : à valider Rédacteur : Nicole Djuissi
Est Ouest Sud 11 1 Nord 1 Laval Du Breuil, Adstock, Québec I-17-17ACBLScore S0417 Allez à 1 Est Allez à 4 Sud Allez à 3 Est Allez à 2 Ouest RndNE
Les Prepositions.
1 V-Ingénierie… La compétence au service de lexigence… vous présente.
1. 2 Informations nécessaires à la création dun intervenant 1.Sa désignation –Son identité, ses coordonnées, son statut 2.Sa situation administrative.
Académie de Créteil - B.C.1. 2 Pour information : Une action est lexpression temporelle Une action est lexpression temporelle (date début et date finde.
JXDVDTEK – Une DVDthèque en Java et XML
Présentation de l’application « Livret personnel de compétences »
___________________ Directeurs d’école
La diapo suivante pour faire des algorithmes (colorier les ampoules …à varier pour éviter le « copiage ») et dénombrer (Entoure dans la bande numérique.
Autorisations Utilisation eCATT
ESIEE Paris © Denis BUREAU I N Initiation à la programmation avec le langage Java.
Initiation à la programmation et algorithmique cours 3
Gestion Informatisée du Brevet Informatique & Internet
Interface Homme Machine IHM Pro
Améliorer les performances du chiffrage à flot SYND
Les résultats Le tri croisé
Page 1 Introduction à ATEasy 3.0 Page 2 Quest ce quATEasy 3.0? n Ensemble de développement très simple demploi n Conçu pour développer des bancs de test.
Présentation générale de MapBruit
Formation au module Structure de ZENTO
Probabilités.
Les verbes auxiliaires Avoir ou être ?? Choisissez! Cest un verbe Dr Mrs Vandertrampp? Cest un verbe réfléchi?
KAKI - Gestion budgétaire et comptable de la paye
Plugin B pour JEdit Matthias Meusburger Antoine Acquaviva
Traitements &Suppléments
1 CORRIGE DES CAS. 2 Avant de se planter dans le 7, cette flèche a percuté l'encoche de la flèche plantée dans le CAS N° 1.
Configuration de Windows Server 2008 Active Directory
Académie de Créteil - B.C Quest-ce quune Inscription 1)1 action + 1 stagiaire + 1 client 2)Parcours individuel (avec son Prix de Vente) 3)Un financement.
F Copyright © Oracle Corporation, Tous droits réservés. Créer des programmes avec Procedure Builder.
2 TP avec l ’aide d ’un modeleur 3D :
Développer en C avec Eclipse Introduction Création d'un projet Ajout de fichiers Compilation Exécution Utiliser le débogueur Département dinformatique.
Programmation linéaire en nombres entiers Algorithme de la subdivision successive («Branch and Bound Algorithm»)
1. 2 PLAN DE LA PRÉSENTATION - SECTION 1 : Code HTML - SECTION 2.1. : CSS (Méthode 1) - SECTION 2.2. : CSS (Méthode 2) - SECTION 3 : JavaScript - SECTION.
Notre calendrier français MARS 2014
Méthode de gestion de projet.
COURS DE PROGRAMMATION ORIENTEE OBJET :
Excel (Partie 2).
C'est pour bientôt.....
Structure et Services « STS » Menu Structures : Divisions
STSWEB Bascule Diffusion Nationale TOULOUSE – déc.2008.
Veuillez trouver ci-joint

ECOLE DES HAUTES ETUDES COMMERCIALES MARKETING FONDAMENTAL
Bienvenue sur CAUTIONET l'outil On Line de gestion de caution
Traitement de différentes préoccupations Le 28 octobre et 4 novembre 2010.
ECOLE DES HAUTES ETUDES COMMERCIALES MARKETING FONDAMENTAL
Biologie – Biochimie - Chimie
Création et présentation d’un tableau avec Word 2007
CALENDRIER-PLAYBOY 2020.
1. Présentation générale du système
Outil de gestion des cartes grises
Quel est l’intérêt d’utiliser le diagramme de Gantt dans la démarche de projet A partir d’un exemple concret, nous allons pouvoir exploiter plusieurs parties.
Fascicule pour les juges Questionnaire Commission GAM de la région de Namur SAUT.
1 Nestlé – Optifibre Zones administrables via le back-office.
1 Formation à l’usage éco-performant de votre pc 1 ère Partie.
Menu Structure : Divisions Diffusion Nationale TOULOUSE – Décembre 2008 Structure et Services « STS » Menu Structures : Divisions.
Conception des pages Web avec
Projet Théorie des graphes
Transcription de la présentation:

LE Sudoku Projet Parcours GSI BLANC Nicolas – BRABANT Benjamin – PLANTE Timothée

Objectifs et Organisation

Objectifs Réalisation d’une interface graphique permettant de jouer au Sudoku Mise en place des algorithmes de génération et de résolution d’une grille Ajout d’options en ligne de commandes pour générer et résoudre des fichiers de grilles Pérennité des données sous forme de fichiers textes formatés

Organisation Jour 1 Jour 2 Jour 3 Jour 4 Analyse du problème, mise en place du modèle de données et première ébauche d’interface graphique Jour 2 Finalisation de l’interface graphique, début de réflexion sur un algorithme de génération par famille Jour 3 Mise en place des options en ligne de commandes et implémentation de la première IA de résolution Jour 4 Finalisation de l’interface, implémentation d’un solveur optimisé et mise en place de divers tests

Architecture

Organisation des fichiers |-- build : généré à la compilation -- classes : contient le bytecode java |-- build.xml : fichier de génération ant |-- README.txt : fichier d’instructions |-- release : dossier des éléments de distribution |-- jar : contient les archives jar |-- ressources : dossier des ressources externes |-- files : dossier des fichiers de chargement Sudoku |-- images : images du projet

Structure du modèle Architecture MVC (Modèle Vue Contrôleur) et pattern Observer pour la relation Modèle-Vue Classe centrale Sudoku contenant une instance de MoteurJeu contenant la grille de jeu accessible partout Classe ModeleGrille subdivisée en ModeleZone et en ModeleCase Classes SolveurClassique, SolveurOptimise et Generateur permettant une génération et résolution externe à ModeleGrille

Diagramme de classe

IA - Génération et Résolution

Solveur Classique (obsolète) Construire la liste des valeurs possibles pour les cases vides (en ligne, colonne, zone) FAIRE Choisir une case dont la cardinalité des valeurs possibles est minimale Choisir/affecter une valeur parmi les valeurs possibles pour la case Mettre à jour les valeurs possibles des autres cases vides, enlever la valeur de cette case SI une intersection modifiée est devenue vide ALORS Erreur -> retour au point de choix FIN SI TANT QUE il reste encore une case vide

Solveur Optimisé Algorithme première partie : Restriction des valeurs possibles par lignes colonnes et zones, Pour chaque case vide, s’il n’y a qu’une seule valeur possible, on lui affecte cette valeur, Première vérification: pour chaque cases, si la case est vide n’a pas de valeur possible, ou si la case n’est pas vide et sa valeur n’est pas parmi les valeurs possibles, la grille actuelle n’est pas possible

Solveur Optimisé Algorithme deuxième partie : Pour chaque case vide, si une des possibilités de la case est unique sur la ligne, la colonne et la zone, on affecte cette valeur à la case.

Solveur Optimisé Algorithme troisième partie : Si la grille est bloquée, on prend une case qui possède le moins de valeurs possibles, on choisit une valeur et on essaie de finir la grille avec cette valeur. Si on arrive à une contradiction on revient en arrière et on prend une autre valeur possible. On répète ces opérations jusqu’à la résolution de la grille, ou de son impossibilité

Solveur Optimisé En résumé : Utilise la notion d’arbre, Rapidité due à l’utilisation d’un tableau statique à deux dimensions de vecteurs d’entiers Permet d’accéder à tout moment aux valeurs possibles pour une case donnée de la grille.

Génération par famille (obsolète) Sélection Pivot Famille valide Ajout Compatible Détection de boucle infinie

Génération Génération Aléatoire Gestion de ModeleGrille résolue Suppression de valeurs

Performances finales Résolution : 250 ms Résolution + Création : 360 ms Programme : 740 ms Résolution sûre AI Escargot : 55 ms Blanc Nicolas – Brabant Benjamin – Planté Timothée

Pérennité et Ligne de Commandes Blanc Nicolas – Brabant Benjamin – Planté Timothée

Pérennité des données Stockage des grilles sous forme de fichiers texte contenant une succession de ligne de la forme : <d> <d> <d> <d> <d> <d> <d> <d> <d> Avec <d> un entier entre 0 et 9 Possibilité de lecture d’un fichier contenant une succession de grilles et détection des grilles erronées Assouplissement des contraintes au niveau des espacements des caractères et des caractères de fin de ligne Gestion des erreurs liées à la lecture et l’écriture de données sur disque.

Ligne de commande Gestion d’options par ligne de commande Aucune option saisie : lancement interface graphique -rc <fichier_entree> : résolution classique des grilles valides de fichier_entree et affichage console -ro <fichier_entree> : résolution optimisée des grilles valides de fichier_entree et affichage console -g : génération d’une grille et affichage console -g <nb> : génération de nb grilles et affichage console Possibilité de rediriger la sortie console vers un fichier texte contenant les grilles générées ou résolues : -f <fichier_sortie> : écriture des résultats dans fichier_sortie et désactivation de l’affichage console

« C’est un jeu. Ce fût des larmes, de la sueur et du développement ! » Aperçu du programme « C’est un jeu. Ce fût des larmes, de la sueur et du développement ! »

Interface graphique

Menu Principal Au lancement de l’application (sans saisie d’options) , affichage du menu principal laissant les choix : Nouvelle partie Charger partie Quitter

Nouvelle Partie – Charger Partie

Valeurs Identiques En cliquant une valeur initiale (et non modifiable) de la grille, affichage en surbrillance verte de toutes les valeurs identiques de la grille

Famille de valeurs En cliquant une valeur modifiable de la grille, en plus, affichage en surbrillance rouge de toutes les valeurs non nulles de la ligne, colonne et zone de la case sélectionnée

Résolution Le clic sur le bouton résoudre remplace les valeurs modifiables de la grille quelquesoit celles saisies par l’utilisateur. L’icône « validée » permet de bien constater que la grille est juste

Commandes Shell

Résolution classique

Résolution optimisée

Génération

Conclusion Une architecture MVC respectée au maximum Une génération et résolution par lecture de fichier en ligne de commande robuste Une IA optimale résolvant tout type de grille en un temps inférieur à la seconde Un modèle complet mais peu optimisé pour les calculs

LE Sudoku Projet Parcours GSI Questions ? LE Sudoku Projet Parcours GSI Blanc Nicolas – Brabant Benjamin – Planté Timothée