Sudoku. Sudoku, un jeu facile à la portée des enfants

Documents pareils
Cours de Master Recherche

Programmation par contraintes. Laurent Beaudou

Algorithmes de recherche

Programmation Par Contraintes

Francis BISSON ( ) Kenny CÔTÉ ( ) Pierre-Luc ROGER ( ) IFT702 Planification en intelligence artificielle

Programmation linéaire

EXEMPLE DE PAGE : FORMAT A4 (210X297)

Jade. Projet Intelligence Artificielle «Devine à quoi je pense»

Capacité d un canal Second Théorème de Shannon. Théorie de l information 1/34

Resolution limit in community detection

Optimisation Combinatoire (Méthodes approchées) II. Recherche Locale simple (Les bases)

Contrainte de flot pour RCPSP avec temps de transfert

Correction du baccalauréat ES/L Métropole 20 juin 2014

Cours de Génie Logiciel

NOTICE TELESERVICES : Payer un impôt et gérer les contrat de paiement des impôts professionnels

Contexte. Pour cela, elles doivent être très compliquées, c est-à-dire elles doivent être très différentes des fonctions simples,

Créer et modifier un fichier d'import des coordonnées approximatives avec Excel

Exo7. Calculs de déterminants. Fiche corrigée par Arnaud Bodin. Exercice 1 Calculer les déterminants des matrices suivantes : Exercice 2.

Systèmes d information et bases de données (niveau 1)

Service des ressources informatiques - Conseil Scolaire de District Catholique Centre-Sud Page 1

Théorie et codage de l information

MABioVis. Bio-informatique et la

Représentation d un entier en base b

PROBLEMES D'ORDONNANCEMENT AVEC RESSOURCES

Intelligence Artificielle Planification

Un propagateur basé sur les positions pour le problème d Open-Shop.

Algèbre binaire et Circuits logiques ( )

physicien diplômé EPFZ originaire de France présentée acceptée sur proposition Thèse no. 7178

Info0804. Cours 6. Optimisation combinatoire : Applications et compléments

Cours 1 : Introduction Ordinateurs - Langages de haut niveau - Application

1 CRÉER UN TABLEAU. IADE Outils et Méthodes de gestion de l information

ARBRES BINAIRES DE RECHERCHE

1 Recherche en table par balayage

Modes Opératoires WinTrans Mai 13 ~ 1 ~

LES OUTILS D ALIMENTATION DU REFERENTIEL DE DB-MAIN

Baccalauréat ES Polynésie (spécialité) 10 septembre 2014 Corrigé

Licence Sciences et Technologies Examen janvier 2010

Utilisation du site de retours Lexibook

Transmission d informations sur le réseau électrique

Optimisation Discrète

Guide d implémentation. Réussir l intégration de Systempay

Algorithmes d'apprentissage

Solution de paiement Monetico Paiement Web. Module Prévention Fraude

1. Installation de COMPTINE

Activité 4. Tour de cartes Détection et correction des erreurs. Résumé. Liens pédagogiques. Compétences. Âge. Matériels

Souad EL Bernoussi. Groupe d Analyse Numérique et Optimisation Rabat http ://

CH.6 Propriétés des langages non contextuels

Arithmétique binaire. Chapitre. 5.1 Notions Bit Mot

Techniques d optimisation des requêtes dans les data warehouses

Manuel d utilisation Profilsearch

TD 1 - Transmission en bande de passe

Jean-Philippe Préaux

CHAPITRE V SELECTION DES CONSULTANTS ET D AUTRES PRESTATAIRES DE SERVICES

Algorithmique et Programmation Fonctionnelle

Projet d informatique M1BI : Compression et décompression de texte. 1 Généralités sur la compression/décompression de texte

CAC: Un algorithme d arc-consistance. configurable, générique et adaptatif.

Plus courts chemins, programmation dynamique

Backtracking asynchrone agile pour les problèmes de satisfaction de contraintes distribués

TP réseaux 4 : Installation et configuration d'un serveur Web Apache

Exercice 6 Associer chaque expression de gauche à sa forme réduite (à droite) :

TP3 : Manipulation et implantation de systèmes de fichiers 1

M06/5/COMSC/SP1/FRE/TZ0/XX INFORMATIQUE NIVEAU MOYEN ÉPREUVE 1. Mardi 2 mai 2006 (après-midi) 1 heure 30 minutes INSTRUCTIONS DESTINÉES AUX CANDIDATS

Optimisation for Cloud Computing and Big Data

Saisie et d analyse des questionnaires de sortie

Modélisation multi-agents - Agents réactifs

Solutions du chapitre 4

Aperçu de la sauvegarde sous Windows 7

Mes premiers diaporamas avec Open Office Impress?

Atelier Transversal AT11. Activité «Fourmis» Pierre Chauvet.

Conception de réseaux de télécommunications : optimisation et expérimentations

GUIDE D UTILISATION. Gestion de compte. à destination des entreprises (Employeurs et Organismes de Formation)

Differential Synchronization

La gestion de données dans le cadre d une application de recherche d alignement de séquence : BLAST.

Introduction à la Programmation par Contraintes (PPC) Ruslan Sadykov LIX, École Polytechnique

Algorithmique, Structures de données et langage C

MISE EN CONFORMITE DES CONTRATS DE PREVOYANCE, SANTE ET RETRAITE SUPPLEMENTAIRE

Intégration de la dimension sémantique dans les réseaux sociaux

Le dépôt de CV sur la banque de CV. Sommaire

Introduction aux SGBDR

DNS ( DOMAIN NAME SYSTEM)

Encryptions, compression et partitionnement des données

Stratégie de recherche adaptative en programmation par contrainte

CHAPITRE 2 : Structure électronique des molécules

1/24. I passer d un problème exprimé en français à la réalisation d un. I expressions arithmétiques. I structures de contrôle (tests, boucles)

Quatrième partie IV. Test. Test 15 février / 71

Manuel d utilisation 26 juin Tâche à effectuer : écrire un algorithme 2

FOCUS Evolution. Lisez-Moi. Version FE 7.0.t

LE TABLEUR OPENOFFICE CALC : CONTRÔLES DE FORMULAIRES ACCÈS AUX BASES DE DONNÉES

Big Graph Data Forum Teratec 2013

Résolution de systèmes linéaires par des méthodes directes

Coefficients binomiaux

ASR1 TD7 : Un microprocesseur RISC 16 bits

Continuité et dérivabilité d une fonction

Les deux points les plus proches

ÉPREUVE COMMUNE DE TIPE Partie D

FORMATION SELON LE SYSTEME DUAL L APPRENTISAGE CFC DE GESTIONNAIRE EN INTENDANCE L APPRENTISAGE AFP D EMPLOYÉ-E EN INTENDANCE

Architecture des ordinateurs TD1 - Portes logiques et premiers circuits

MANUEL D UTILISATION DE LA SALLE DES MARCHES APPEL D OFFRES OUVERT ACCES ENTREPRISES. Version 8.2

SINE QUA NON. Découverte et Prise en main du logiciel Utilisation de bases

Transcription:

1 Sudoku Sudoku, un jeu facile à la portée des enfants

2 Sommaire Résolution Génération Grilles réduites

3 Résolution Modèles Améliorations Evaluation de la difficulté

4 Résolution: modèles Plusieurs manières de modéliser le sudoku: Binaire: on vérifie les différences entre les variables (cases) deux par deux pour chaque ligne colonne ou région Globale: on vérifie les différences entre les variables toutes ensembles par ligne, colonne ou région si sur une même ligne, A, B et C peuvent respectivement prendre les valeurs {1,2,3}, {2,3}, {2,3} et A,B et C doivent avoir des valeurs strictement différentes, on est sur que 1 prendra la valeur 1.

5 Binaire moyenne Global moyenne Backtracks 15 Résolution: modèles 11 8 4 0 facile moyen difficile démoniaque maître Temps (ms) 200 150 100 50 0 facile moyen difficile démoniaque maître Difficulté Difficulté 0% / -40% 7% / -35% 26% / -20% 775% / 14% 900% / 43%

6 Binaire moyenne Global moyenne Backtracks 9 500 Résolution: modèles Temps (ms) 70000 7 125 52500 4 750 35000 2 375 17500 0 0 facile moyen difficile démoniaque maître Sudoku 17 553669% / 7622% Difficulté

7 Résolution : améliorations Channeling Constraint Lier plusieurs modèles pour faire apparaître de manière redondante la différence sur les lignes, colonnes et régions (ex:c-l-v,l-v-c,v-c-l) L,V->C oblige les lignes à avoir des valeurs différentes sur chacune de leurs cases. V,C->L oblige les colonnes à avoir des valeurs différentes sur chacune de leurs cases. R,V->P oblige les régions à avoir des valeurs différentes sur chacune de leurs cases.

8 Résolution : améliorations Contrainte d équivalence (Same) Rajouter les équivalences entre les zones différentes

9 Résolution : améliorations Redondance bloc on visualise ici les contraintes de 3 régions avec 3 lignes ou 3 colonnes formant un bloc

10 Rappel: gain résolution globale 553669% / 7622% Backtracks 55 000 Binaire minimum Binaire moyenne Binaire maximum Binaire channeling minimum Binaire channeling moyenne Binaire channeling maximum Résolution : améliorations Temps (ms) 70000 41 250 52500 27 500 35000 13 750 17500 0 facile moyen difficile démoniaque maître Sudoku 17 0%/-30% 7%/-35% 26%/-30% 2150%/14% Difficulté 400%/-20% 237847%/5098% 0

11 binaire channeling binaire % avec backtrack 15 Résolution : améliorations 11 8 4 0 facile moyen difficile démoniaque maitre Difficulté

12 Evaluation de la difficulté Motifs d affectation Motifs de réduction de domaine Evaluation d un jeu de grilles existantes

13 Evaluation: motifs d affectation Candidat seul (Niveau facile) Position seule Arc consistance Dual Arc consistance

14 Evaluation: motifs de réduction de domaine Zone Candidate (Niveau moyen) Avant Après Abstract Arc consistance

15 Evaluation: motifs de réduction de domaine N-uplets : exemple doublets (Niveau difficile) Avant Après Global arc consistance

16 Evaluation: motifs de réduction de domaine X-wings (Niveau démoniaque) Dual Global arc consistance

17 Evaluation: d un jeu de grille existante Noeuds facile (15) moyen (40) difficile (19) démoniaque (10) maître (2) binaire 0 0,075 0,262 9,5 14 global taille 3 channeling binaire 0 0 0,052 1,7 1,5 0 0 0 1,1 0,5 global 0 0 0 0,2 0,5 global + blocs 0 0 0 0,2 0,5

18 Génération Algorithmes Amélioration Heuristiques difficulté définie

19 A partir d une grille vide A partir d une grille pleine Génération : Algorithmes CHOIX aléatoire de case et de valeur PROPAGATION et résolution pour trouver au moins une grille sinon backtrack RESOLUTION pour vérifier qu il n existe pas d autre solution sinon retour choix VERIF si le nombre de case correspond à celui requis, fini, si il est trop fort backtrack, si il est trop faible retour choix CHOIX aléatoire de case et retrait de sa valeur PROPAGATION et résolution pour vérifier qu il n existe pas d autre solution sinon backtrack VERIF si le nombre de cases correspond à celui requis, fini, si il est trop fort continue Choix

20 Génération : Amélioration

21 Génération : Amélioration

22 Génération : Amélioration

23 Génération : Amélioration

24 Génération : Amélioration On peut alors reprendre le principe de ne retenir que les cases qui n ont pas été déduites des cases préalablement pré-remplies Au fur et à mesure du remplissage d une grille vide, on propagera les valeurs pouvant être déduites grâce à un des modèles de résolution. On pourra alors au fur et à mesure du parcours réduire le nombre de cases et de valeurs restantes à parcourir et ainsi réduire le temps de génération

25 A partir d une grille vide Génération : Amélioration CHOIX aléatoire et mémorisation de case et de valeur PROPAGATION pour déterminer les cases déductibles et réduire les domaines de valeur des cases encore vides RESOLUTION pour vérifier qu il n existe pas d autre solution (il suffit de vérifier que la grille a bien été remplie) sinon retour choix VERIF si le nombre de case de la grille formée des cases mémorisées correspond à celui requis, fini et on retourne la grille correspondant aux cases mémorisées si il est trop fort backtrack

26 Génération : Heuristiques Heuristiques à partir d une grille vide prendre des variables (cases) de plus petit domaine prendre des variables de plus grand domaine prendre des variables dans les zones les moins remplies Heuristique à partir d une grille pleine sélectionner les variables parmi les cases ayant le plus de valeurs similaires sélectionner des variables dans les zones les plus remplies

27 A partir d une grille vide aléatoire plus petit domaine plus grand domaine zone 30 Génération : Heuristiques 23 15 8 0 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46

28 A partir d une grille pleine aléatoire valeur zone 35 Génération : Heuristiques 26 18 9 0 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40

29 Génération: niveau de difficulté propagation (résolution sans backtrack) d un modèle équivalent à la résolution d une grille au niveau de difficulté associé au modèle utilisation des algorithmes précédents avec vérification sur le niveau de difficulté au lieu du nombre de valeur pour valider un niveau de difficulté, il faut vérifier sa résolution au niveau de difficulté désiré mais pas au niveau de difficulté inférieur

30 A partir d une grille vide Génération : niveau de difficulté CHOIX aléatoire et mémorisation de case et de valeur PROPAGATION pour déterminer les cases déductibles et réduire les domaines de valeur des cases encore vides RESOLUTION pour vérifier qu il n existe pas d autre solution (il suffit de vérifier que la grille a bien été remplie) sinon retour choix VERIF si le niveau de difficulté de la grille formée des cases mémorisées correspond à celui requis, fini et on retourne la grille correspondant aux cases mémorisées si il est trop faible backtrack

31 A partir d une grille pleine Génération : niveau de difficulté CHOIX aléatoire de case et retrait de sa valeur PROPAGATION et résolution pour vérifier qu il n existe pas d autre solution sinon backtrack VERIF si le niveau de difficulté correspond à celui requis, fini si il est trop fort backtrack si il est trop faible continue Choix

32 Grilles réduites Définition Réduction des possibilités Algorithme Hypothèses d amélioration

33 Grilles réduites : Définition Une grille réduite est une grille de Sudoku possédant le nombre minimal de cases pré remplies pour qu il n y ait qu une grille complétée valide Actuellement les grilles trouvées comportent au minimum 17 cases pré remplies mais il n a pas été prouvé que ces grilles soient des grilles réduites

34 Grilles réduites: réduction des possibilités symétrie des grilles Par transposée Par permutation des valeurs Par permutation de deux lignes ou deux colonnes d un même bloc Par permutation de deux blocs Par composition des symétries précédentes

35 Grilles réduites: réduction des possibilités

36 Grilles réduites: réduction des possibilités Par la symétrie Nombre de grilles partielles à 16 chiffres évalué à 10^32 par symétrie, on a 3 359 232 grilles équivalentes par grille unique Par les contraintes d unicité deux colonnes ou lignes vierges en intersection avec des régions communes deux valeurs n apparaissant pas dans les cases prédéfinies

37 Grilles réduites: réduction des possibilités On a initialement 175 configurations de vecteur de répartition dans une grille réduite en faisant abstraction des valeurs. 9 7 9 6 1 9 5 2 9 5 1 1 9 4 3 9 4 2 1 9 4 1 1 1 2 2 2 2 2 2 2 1 1

38 Grilles réduites: réduction des possibilités On passe de 175 à 35 configurations de vecteur simplement en utilisant la contrainte d unicité sur les valeurs 9 1 1 1 1 1 1 1 8 2 1 1 1 1 1 1 8 1 1 1 1 1 1 1 1 7 3 1 1 1 1 1 1 7 2 2 1 1 1 1 1 7 2 1 1 1 1 1 1 1 6 4 1 1 1 1 1 1 2 2 2 2 2 2 2 1 1

39 Grilles réduites: algorithme La recherche d une grille plus réduite que 17 valeurs est une restriction de la génération à partir d une grille vide ou l on ne désire que 16 valeurs Imposer le choix des cases et des valeurs par rapport aux contraintes d unicité Imposer la correspondance entre parmi les grilles recherchées avec la grille référence à toutes ses symétries Vérifier la validité d une grille après 16 cases mémorisées

40 Grilles réduites: algorithme CHOIX aléatoire et mémorisation de case et de valeur en fonction des contraintes d unicité VERIF si le nombre de cases mémorisées est > 16, backtrack PROPAGATION pour déterminer les cases déductibles et réduire les domaines de valeur des cases encore vides VERIF si la grille correspond à une grille référence RESOLUTION pour vérifier qu il n existe pas d autre solution (il suffit de vérifier que la grille a bien été remplie) on a alors gagné sinon retour choix

41 Grilles réduites: hypothèses d amélioration On passe de 35 à 15 configurations de vecteur en partant du principe que les grilles à 16 valeurs utilisent les même propriétés de propagation que les grilles à 17 valeurs 4 3 3 2 1 1 1 1 4 3 3 1 1 1 1 1 1 4 3 2 2 2 1 1 1 4 3 2 2 1 1 1 1 1 4 2 2 2 2 2 1 1 4 3 2 2 2 1 1 1 1 3 3 3 3 1 1 1 1 2 2 2 2 2 2 2 1 1

42 Grilles réduites: hypothèses d amélioration Résolution à complexité réduite En utilisant les contraintes déduites des motifs, on peut remplacer les contraintes de différence globale Apprentissage Réduire de manière dynamique l arbre de recherche par l apprentissage de nouvelles contraintes permettant d éliminer des configurations partielles qui ne conduisent pas à une unicité de grille

43 Conclusion Nous avons pu voir grâce aux modèles de résolution que les diffuseurs n évaluaient pas la difficulté d une grille de la même manière que les sudokistes proposer une méthode de génération de grille en fonction d un niveau de difficulté donné présenter la faisabilité de la vérification de l existence d une grille réduite à 16 valeur

44 Perspectives Essayer de trouver des équivalences en terme de modélisation à chaque technique déterminée par les sudokistes déterminer par algorithme génétique de meilleures heuristiques pour la génération de grille déterminer le temps de calcul de la recherche d une grille à 16 cases pré-remplies ainsi que d effectuer ce calcul