travail d étude et de recherche



Documents pareils
Championnat de France de Grilles Logiques Finale 7 juin Livret d'instructions

La NP-complétude. Johanne Cohen. PRISM/CNRS, Versailles, France.

VOCABULAIRE LIÉ AUX ORDINATEURS ET À INTERNET

Objectifs du cours d aujourd hui. Informatique II : Cours d introduction à l informatique et à la programmation objet. Complexité d un problème (2)

Eteindre. les. lumières MATH EN JEAN Mme BACHOC. Elèves de seconde, première et terminale scientifiques :

L ARBORESCENCE. Qu est-ce qu un dossier? L arborescence?

COMMENCER AVEC VUE. Chapitre 1

MANUEL TBI - INTERWRITE

Introduction à la théorie des graphes. Solutions des exercices

LES TOUT PREMIERS PAS

Tapez le titre de la page «BASTIA ville méditerranéenne», puis allez deux fois à la ligne à l aide de la touche Entrée.

Le logiciel de création de site internet IZISPOT est un outil très puissant et qui est assez simple après quelques temps d utilisation.

Interface PC Vivago Ultra. Pro. Guide d'utilisation

TUTORIEL IMPRESS. Ouvrir Impress cocher «présentation vierge», «suivant» cocher «écran», «suivant» cocher «standard», «créer»

Premiers Pas avec OneNote 2013

TUTORIEL PAINTPOT. Louise Henninot - Anne- Cécile Patou - Julie Roquefort

Cours 1 : Qu est-ce que la programmation?

Manuel utilisateur Netviewer one2one

Mini_guide_Isis.pdf le 23/09/2001 Page 1/14

Celestia. 1. Introduction à Celestia (2/7) 1. Introduction à Celestia (1/7) Université du Temps Libre - 08 avril 2008

Utilisation de Sarbacane 3 Sarbacane Software

Soit la fonction affine qui, pour représentant le nombre de mois écoulés, renvoie la somme économisée.

Mes premiers diaporamas avec Open Office Impress?

Réalisation de cartes vectorielles avec Word

Resolution limit in community detection

Module 1 : Tableau de bord Excel * 2010 incl.*

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

Baccalauréat L spécialité, Métropole et Réunion, 19 juin 2009 Corrigé.

Fête de la science Initiation au traitement des images

Mini_guide_Isis_v6.doc le 10/02/2005 Page 1/15

Manuel de dessin Floorplanner. Floorplanner. Manuel de dessin. Page. Sujet. Sujet. Page Floorplanner Avancé. 1.

Créer son compte del.icio.us

Tp_chemins..doc. Dans la barre "arche 2" couleur claire 1/5 21/01/13

COURS BARDON - EXCEL 2010

10 mn pour se connecter à un fichier Excel. Pas à Pas.


Le cas «BOURSE» annexe

Manuel d utilisation du prototype d étiquetage et première expérimentation (fin 2008)

Projet Matlab : un logiciel de cryptage

Modes Opératoires WinTrans Mai 13 ~ 1 ~

Access 2007 FF Access FR FR Base

Troisième projet Scribus

Fiche pédagogique : ma famille et moi

Exercices sur le chapitre «Probabilités»

Guide de l utilisateur Mikogo Version Windows

PRISE EN MAIN D ILLUSTRATOR

Le cas «BOURSE» annexe

FAIRE UN PAIEMENT TIPI

Introduction à Expression Web 2

Tutoriaux : Faites vos premiers pas avec Microsoft Visio 2010

Programme d Accès Communautaire / Atelier 4 Initiation à Microsoft Excel PLAN DE COURS 3 MICROSOFT EXCEL 4 LANCER EXCEL 4

Plate-forme de tests des fichiers XML virements SEPA et prélèvements SEPA. Guide d'utilisation

ActoPalm 1.0 b. Logiciel d'aide au relevé d'observation in situ sur Organiseurs PalmOS Compatibles. Alain Kerguelen, mai 2002

1 Démarrer L écran Isis La boite à outils Mode principal Mode gadget Mode graphique...

Découverte du logiciel ordinateur TI-n spire / TI-n spire CAS

Utiliser le site Kahoot pour créer des quiz interactifs

Alice Sécurité Enfants (version )

Manuel d utilisation de la plate-forme de gestion de parc UCOPIA. La mobilité à la hauteur des exigences professionnelles

Créer le schéma relationnel d une base de données ACCESS

eproject Manuel utilisateur Version 0.0

Pop-Art façon Roy Liechtenstein

Théorie des Graphes Cours 3: Forêts et Arbres II / Modélisation

Assistant d e tablissement de Tableaux

Problèmes de dénombrement.

Réservation de matériel

AGASC / BUREAU INFORMATION JEUNESSE Saint Laurent du Var Tel : bij@agasc.fr Word: Les tableaux.

Les calques : techniques avancées

Sommaire. Images Actives Logiciel libre développé par le CRDP de l académie de Versailles 2 Rue Pierre Bourdan Marly le Roi

Niveau 1. Atelier d'initiation à l'ordinateur ... Fondation de la Bibliothèque Memphrémagog inc. Magog (Québec) J1X 2E7 Tél.

KM2 W1 EVC1 M3~ Manuel AUTOMSIM API 24V. BP Dcy 1MINI 1MAXI.

REPUBLIQUE ALGERIENNE DEMOCRATIQUE ET POPULAIRE MINISTERE DE LA FORMATION PROFESSIONNELLE. Microsoft. Excel XP

Adobe Illustrator Logiciel de dessin vectoriel et de Cartographie Assistée par Ordinateur

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

Rapport financier électronique

2013 Pearson France Adobe Illustrator CC Adobe Press

Support de formation Notebook

TBI et mathématique. Pour vous soutenir dans votre enseignement des mathématiques. Les outils du logiciel Notebook. les ressources internet

Tune Sweeper Manuel de l'utilisateur

FAA : Fonctions Automatiques de l Application. Les fonctions automatiques incluses dans vos applications développées avec

Formats d images. 1 Introduction

Activités pour la maternelle PS MS GS

La Clé informatique. Formation Excel XP Aide-mémoire

Créer un premier document avec Pages

Probabilité. Table des matières. 1 Loi de probabilité Conditions préalables Définitions Loi équirépartie...

Cahier n o 6. Mon ordinateur. Fichiers et dossiers Sauvegarde et classement

LA PHYSIQUE DES MATERIAUX. Chapitre 1 LES RESEAUX DIRECT ET RECIPROQUE

PARTIE I PRESENTATION DES FONCTIONNALITES DE BUSINESS OBJECTS version 6

Numbers sur ipad. Atelier Formation Numbers sur ipad. [Notes extraitres de l'aide en ligne]

13) Calibrage du tableau Interwrite Dualboard

MANUEL DRIVELINK DRIVELINK

NAVIGATION SUR INTERNET EXPLORER

DOSSIER D'ACTIVITES SUR TUXPAINT Dessiner avec Tuxpaint. Objectifs :

ESPACE MULTIMEDIA DU CANTON DE ROCHESERVIERE

Notice de fonctionnement DVR H Méthode de Visionnage ESEENET

Introduction à Eclipse

GUIDE DE DÉMARRAGE. SitagriPro Infinite FINANCEAGRI. Un service. c o r p o r a t e

Dans cette Unité, nous allons examiner

LA RUBRIQUE ARCHIVES EN LIGNE DU SITE INTERNET - MODE D EMPLOI

La Clé informatique. Formation Internet Explorer Aide-mémoire

Transcription:

WERNER Nicolas M1 IFA travail d étude et de recherche Encadré par Simon E. B. Thierry

Table des matières 1 Introduction 3 2 Principe du jeu 4 2.1 Règles du jeu........................... 4 2.2 Tactiques de base......................... 4 2.2.1 Ile complète........................ 5 2.2.2 Iles voisines........................ 5 2.2.3 Unique possibilité de développement.......... 6 2.2.4 Case inatteignable.................... 6 2.2.5 Coude noir........................ 7 2.2.6 Case condamnée..................... 7 3 Formalisation 8 3.1 Le jeu formalisé.......................... 8 3.2 Terminologie........................... 8 3.3 NP-complétude.......................... 9 4 Solveur 10 4.1 Approches possibles....................... 10 4.2 Approche personnelle....................... 10 4.2.1 Case semi-déterminée adjacente............. 11 4.2.2 Case atteignable par une seule île............ 11 4.2.3 Unique chemin possible d une île............ 12 4.2.4 Case encerclée...................... 12 4.2.5 Contradiction apparente................. 13 4.2.6 Espace nécessaire..................... 13 4.2.7 Information selon les chemins possibles d une île... 14 5 Implémentation 15 5.1 Choix techniques......................... 15 5.1.1 La classe Grille...................... 15 5.1.2 La classe Case...................... 15 5.1.3 La classe Ile........................ 16 5.1.4 La classe Mur....................... 16 1

5.1.5 La classe Bloc....................... 16 5.1.6 La classe CaseMouseListener.............. 16 5.1.7 La classe Solveur..................... 16 5.1.8 La classe Nurikabe.................... 16 5.2 Interface.............................. 17 6 Résultats 19 7 Perspectives 21 7.1 Générateur............................ 21 7.2 3D................................. 21 8 Annexes 22 Bibliographie 28 2

Chapitre 1 Introduction L objectif du travail d étude et de recherche est l initiation à la recherche, par la résolution de problèmes et le travail, à un niveau réduit, d un chercheur. Ce TER a pour but l étude d un problème et la recherche d algorithme pour le résoudre, plus précisément spécifier et implanter un solveur de grilles Nurikabe. Le solveur doit être intégré dans une interface graphique, pas nécessairement évoluée, permettant à un utilisateur de charger et sauvegarder des grilles, résoudre manuellement des grilles, et enfin demander la résolution automatique de la grille. Nurikabe vient du japonais «je peins les murs en noir». Dans le folklore japonais, un «Nurikabe» est un mur invisible bloquant les routes et sur lequel s attarder est maudit. Le jeu a été inventé et baptisé par Nikoli, à qui l on doit entre autres Sudoku et Kakuro. Ce jeu, quelquefois appelé «îles dans le courant» ou que les Anglais connaissent sous le nom de Cell Structure, est un puzzle à résolution binaire [4]. 3

Chapitre 2 Principe du jeu 2.1 Règles du jeu Le puzzle se joue sous forme d une grille rectangulaire de taille variable. Au départ, certaines cases de la grille contiennent un nombre entier, les autres sont grises. Le but du jeu est de déterminer, pour chaque case grise, si elle est blanche ou noire. Les cases noires forment «le Nurikabe» : elles doivent toutes être orthogonalement jointes i.e. elles doivent former un polyomino unique, aucune d entre elles ne doit contenir de numéro et il ne peut y avoir de bloc 2x2 de cases noires. Les cases blanches forment les îles : chaque case contenant un nombre n doit faire partie d un n-omino composé uniquement de cases blanches. Une case blanche ne peut appartenir qu à une seule île et chaque île ne contient qu une seule case numérotée. 2.2 Tactiques de base Plusieurs tactiques de base sont facilement applicables pour résoudre une grille.[1] 4

2.2.1 Ile complète Une île est complète si elle contient autant de cases que le nombre qui lui est affecté. Chaque île estampillée du chiffre 1 est trivialement complète. Lorsqu une île est complète, chaque cellule voisine doit être noire. L image suivante montre en rouge les cases à noircir étant donnée une île nécessitant une seule case. Fig. 2.1 L île unicellulaire est d ores et déjà complète 2.2.2 Iles voisines Puisque deux cases numérotées ne peuvent appartenir à la même île, toute case ayant deux voisins numérotés doit être noire. Deux cas se présentent : lorsque la case est entre deux cases numérotées ou quand deux cases numérotées sont diagonalement adjacentes, comme le montre l image 2.2. Cette règle s étend bien sûr pour deux cases blanches non nécessairement numérotées mais dont on sait qu elles n appartiennent pas à la même île. Fig. 2.2 Chaque case rouge est voisine de deux îles différentes 5

2.2.3 Unique possibilité de développement Si une île, d après sa taille requise, ne compte pas encore suffisament de cases, et si elle n a qu une seule case voisine, alors cette dernière ne peut être noire, elle doit appartenir à l île. De la même façon, cette tactique s applique pour les cases noires. L image suivante montre en vert le résultat pour deux îles, le noircissement de leurs cases voisines puisqu elles deviennent complètes, et en rouge le résultat pour des cases noires. Fig. 2.3 Développement selon les possibilités 2.2.4 Case inatteignable Si aucune île ne peut s étendre suffisamment loin pour atteindre une case, alors cette case doit être noire. Sur l image 2.4, les cases que chacune des îles peut atteindre sont colorées. Dans le cas présent, une seule case, indiquée par la flèche, est toujours grise, donc inatteignable. Fig. 2.4 L unique case grise n est atteignable par aucune île 6

2.2.5 Coude noir Si trois cases noires offrent une configuration en forme de L, alors la case à l intérieur du coude doit être blanche pour éviter d avoir un carré 2x2 de cases noires. L image ci-dessous présente un tel coude. Fig. 2.5 La case verte doit être blanchie pour éviter un bloc carré noir 2.2.6 Case condamnée S il ne manque plus qu une seule case à une île pour être complète, et toutes les cases pouvant appartenir à l île ont la même case voisine, alors cette case doit être noire. Ce cas de figure arrive typiquement lorsqu une case numérotée par 2 se trouve dans un coin de la grille ou si deux de ses quatre voisins sont des cases noires diagonalement adjacentes. Sur l image ci-dessous, les remplissages possibles de deux îles sont colorés en bleu-gris et les cases condamnées le sont en rouge. Fig. 2.6 Les deux cases rouges sont forcément noires car un de leur voisins doit devenir blanc 7

Chapitre 3 Formalisation 3.1 Le jeu formalisé Pour formaliser le jeu, on abstrait les différents éléments sous forme de graphe [6]. Ses sommets correspondent aux cases noires et blanches de la grille et ses arcs définissent le lien de voisinage de deux cases. La composante noire représente le mur. Chaque île est considérée comme une composante blanche. Il est ainsi plus aisé de vérifier la connexité d une composante. De plus, la taille d une île correspond dès lors à la cardinalité de la composante blanche qui la caractérise. On peut ainsi interpréter la notion d atteignabilité d une case par une île. En effet, une île est un sous-graphe de la grille dont on connaît la cardinalité. Pour savoir si une case est atteignable par une île, il faut chercher si la taille du chemin joignant l île à la case est inférieure ou égale à la taille requise de l île moins sa taille courante. La règle de l unique possibilité de développement d une île (cf. 2.3, page 6) peut être traduite en terme de graphe. Ce cas de figure intervient pour une île non complète, lorsqu un sommet n a qu un seul somment adjacent qui n est pas noir ; ou pour les sommets du sous-graphe représentant le mur, lorsqu un sommet n a qu un seul somment adjacent qui n est pas blanc. 3.2 Terminologie Afin d utiliser un vocabulaire bien précis pour décrire les règles utilisées sur les tables Nurikabe, une terminologie a été définie dans le cadre de ce TER : Grille correcte : grille admettant une solution, Grille simple : grille admettant une unique solution, Graine : case blanche fournie au début de la grille contenant un entier, Mur : composante connexe noire, Ile : composante connexe blanche, 8

Taille d une île : cardinal de sa composante, Taille requise d une île : nombre indiqué sur sa graine, Case non déterminée : case dont on ne sait pas à quel type de composante elle appartient, Case semi-déterminée : case dont on sait qu elle appartient à une île, mais pas encore à laquelle, Ile complète : île dont la taille est égale à la taille requise, Case atteignable : case jusqu à laquelle au moins une île peut s étendre, Cases voisines : cases ayant un côté en commun. 3.3 NP-complétude La résolution d une grille Nurikabe est un problème NP-complet. En effet, tout problème NP-complet peut être réduit à un circuit booléen et le problème d un circuit booléen peut être réduit à celui du Nurikabe.[5] 9

Chapitre 4 Solveur 4.1 Approches possibles Deux principales approches de résolution de grilles Nurikabe ressortent. D abord on peut résoudre une grille simple en appliquant les règles simples ou tactiques de base (cf. 2.2, page 4). Autrement, on peut utiliser la force brute en développant un arbre de possibilités, mais le nombre de possibilités calculées pour une grille contenant N cases serait 2 N. Même avec élagage, le nombre de branches de l arbre rend cette solution irréaliste. Il aurait été possible d adopter un système expert, la programmation par contrainte ou encore les réseaux neuronaux, mais je n ai pas évalué la faisabilité de ces approches. 4.2 Approche personnelle En ce qui concerne le présent projet, la première approche a été développée. En supplément des tactiques de base (cf. 2.2, page 4), de nombreuses règles élaborées ont été définies pour éviter le plus souvent d émettre des hypothèses. 10

4.2.1 Case semi-déterminée adjacente Si une case semi-déterminée a un voisin blanc, alors elle appartient à la même île que ce voisin. Sur l image suivante, la case verte devient blanche pour éviter qu un bloc 2x2 noir se forme, et la case numérotée par 3 étant blanche, la case verte appartient à son île. Fig. 4.1 La case verte est blanche pour éviter qu un coude noir se forme et appartient à l île numérotée par 3 4.2.2 Case atteignable par une seule île Si une case semi-déterminée n est atteignable que par une seule île, alors elle appartient à cette île. Sur l image 4.2, les deux cases blanches en haut à gauche de la grille ne sont atteignables que par l île numérotée par 6. Fig. 4.2 Les deux cases blanches ne sont atteignables que par l île 6, elle lui appartiennent 11

4.2.3 Unique chemin possible d une île Si le nombre de cases non déterminées atteignables par une île est égal à la différence entre la taille requise de cette île et sa taille, alors ces cases sont blanches et appartiennent à l île. Sur l image suivante, l île formée par la case 3 en bas à gauche de la grille ne peut de développer que via les deux cases vertes. Elles doivent donc être blanches et appartenir à l île. Fig. 4.3 L île 3 est désormais complète 4.2.4 Case encerclée Si tous les voisins d une case non déterminée sont de la même couleur, alors cette case est aussi de cette couleur. L image 4.4 montre la case rouge encerclée par quatre cases noires, elle doit donc être noire également. Fig. 4.4 La case rouge devient noire car elle est encerclée par quatre cases noires 12

4.2.5 Contradiction apparente Dans un graphe connexe, un sommet est dit point d articulation si le sousgraphe obtenu en le supprimant n est pas connexe. Par conséquent, il contient plus d un sous-graphe.[7, 8] Il arrive parfois qu une case soit un point d articulation du graphe de la grille. Dans le cas décrit sur l image 4.5, la case verte est un point d articulation de l île 5. En effet, si on la coloriait en noir, l île ne serait plus connexe. Elle doit donc devenir blanche pour en éviter la déconnexion. Fig. 4.5 Pour pouvoir résoudre cette grille, la case verte doit être blanche 4.2.6 Espace nécessaire Il arrive parfois qu en tentant de développer une composante blanche ou noire, il n y ait pas suffisamment d espace pour permettre à une composante voisine de s étendre. Il faut alors choisir une autre alternative. Sur l image ci-dessous, la composante noire doit se développer via la case rouge pour se connecter aux autres cases noires. Ainsi la case verte doit être blanche pour permettre à l île numérotée par 3 de se développer. Fig. 4.6 La case verte doit être blanche et la case rouge doit devenir noire 13

4.2.7 Information selon les chemins possibles d une île Si tous les chemins joignant une île à une case atteignable par elle permettent de déduire une même information à propos d une tierce case, alors cette information est vraie. Sur l image ci-dessous, la case blanche en bas à droite appartient à l île 7. Selon les chemins possibles joignant l île à cette case blanche, les cases rouges se trouvent à coup sûr en bordure des chemins potentiels alors que les cases vertes seront forcément propriétés de l île. Fig. 4.7 Les cases vertes faisant partie de l intersection des chemins possibles de l île, elles sont blanches. Les cases rouges se trouvant alors en bordures deviennent noires 14

Chapitre 5 Implémentation 5.1 Choix techniques Pour implémenter le jeu, le langage de programmation orientée objet Java a été choisi. Le solveur est une classe à part entière. Chaque règle utilisée est implémentée dans une méthode. Pour simuler la résolution d une grille, on lui applique ces règles les unes après les autres en la soumettant aux méthodes correspondantes jusqu à ce qu elle soit résolue. Pour chaque situation décrite par une règle bien précise, la grille est modifiée selon ces méthodes. Plusieurs classes ont été créées pour matérialiser une grille Nurikabe. 5.1.1 La classe Grille Elle hérite de la classe JPanel et comporte : un tableau de classes Case, un Vector de classes Ile, collectant les îles de la grille, une instance de la classe Mur, un Vector de classes Bloc. Une grille se construit selon une grammaire prédéfinie décrivant ses dimensions et l état de chaque case. 5.1.2 La classe Case Elle hérite également de la classe JPanel, permettant de dessiner chaque case de la grille. Chaque instance de la classe est grise au départ et deviendra soit blanche et appartiendra à une île, soit noire et composera le mur. Chacune comprend : un champ couleur, instance de la classe Color, un champ indice, instance de la classe String, représentant le numéro que porte la case si tel est le cas, égal à null sinon, 15

nord, sud, est, ouest, quatre instances de la classe Case, correspondant aux quatre voisins de la case courante, un Vector de classes Ile enregistrant les îles atteignant la case. 5.1.3 La classe Ile Elle représente le graphe de cases blanches d une même île. Elle est composée par : un entier taillerequise correspondant à l entier porté par une des cases de l île renseignant la taille requise pour celle-ci, un Vector de classes Case contenant les cases appartenant à l île, un Vector de classes Case regroupant les cases atteignables par l île, un Vector de classes Case collectant les cases voisines de l île. 5.1.4 La classe Mur Elle permet de recenser les cases noires de la grille. Elle représente le graphe de cases noires. Elle comprend un Vector de classes Case contenant toutes les cases noires. 5.1.5 La classe Bloc Elle permet de regrouper tous les blocs 2x2 de cases de la grille. Cette classe facilitera la détection de coude noir pour éviter un bloc 2x2 de cases noires. Elle comporte quatre instances de la classe Case : un, deux, trois, quatre, correspondant aux quatre cases formant un bloc 2x2 comme suit : 1 2 3 4 5.1.6 La classe CaseMouseListener Elle permet à la classe Grille de se modifier selon les clics de la souris. Lorsque l on clique sur une case, sa couleur change selon le cycle suivant : gris noir blanc gris etc..., si l on a cliqué avec le bouton gauche de la souris, ou gris blanc noir gris etc..., avec le bouton droit. 5.1.7 La classe Solveur Elle permet de lancer les tactiques de base, les règles de résolution plus élaborées et d émettre des hypothèses si nécessaire, tant que la grille n est pas résolue. 5.1.8 La classe Nurikabe Elle permet de construire l interface graphique et de gérer tous les évènements qui en découlent (cf. 5.2). 16

5.2 Interface Tout d abord, la fenêtre nécessaire à l interface graphique est une JFrame. On y ajoute une barre de menus proposant de sauvegarder l état de la grille sur laquelle on joue, de charger une grille depuis un fichier texte où est écrit une grammaire ou de quitter le jeu. Ensuite on ajoute un premier JPanel contenant quatre boutons : Vérifier, Solution, Zoom, Unzoom, dont les actions sont respectivement : vérifier si la solution proposée par le joueur est correcte, afficher la bonne solution de la grille courante, faire un zoom en avant sur la grille et zoomer en arrière. Enfin un dernier JPanel contiendra la grille une fois chargée. Pour sauvegarder ou charger une grille, on utilise sa grammaire EBNF. Celle-ci permet l interopérabilité et la comparaison de différents solveurs. Elle décrit la table Nurikabe selon le modèle suivant : nurikabe = [comment], width, sep, height, sep, unsolved, {[sep, solution]} ; comment = {, {character - } }, } ; character =? any character? ; width = num ; height = num ; sep = : ; unsolved = {seed unknown eor} ; solution = {seed unknown wall island eor} ; seed = num ; unknown =. ; wall = ; island = ; eor = / ; num = {digit} ; digit = 0 1 2 3 4 5 6 7 8 9 ; 17

Fig. 5.1 Voici l interface graphique du jeu Nurikabe 18

Chapitre 6 Résultats Le solveur implémenté, des tests de performance s imposent. Le temps de résolution est pour cela mesuré pour chaque grille. Une moyenne est calculée selon les dimensions du puzzle, puis reportée sur le graphique «Résultats» (cf. 6.1, page 20). Celui-ci représente le temps de résolution du solveur en millisecondes par rapport à la dimension de la grille, c est-à-dire le nombre de cases qu elle contient. La courbe qui en résulte montre bien que le temps de résolution n est pas linéaire, mais plutôt exponentiel. Il est à noter que, pour des grilles relativement simples, la résolution s effectue en un temps très court. Tandis que, pour des grilles nécessitant une résolution par hypothèses, ce temps devient très grand, mais le programme reste toujours plus rapide que l humain. 19

Fig. 6.1 Résultats 20

Chapitre 7 Perspectives Pour aller plus loin dans le développement du Nurikabe, deux principales idées peuvent être approfondies. On pourrait implémenter un générateur de grilles aléatoires dans un premier temps, puis la conception en 3D apporterait une nouvelle approche du jeu. 7.1 Générateur La première perspective serait d intégrer un générateur de grilles. L idée se résumerait, à partir d une grille composée uniquement de cases noires, à colorer au hasard une case en blanc en vérifiant qu aucune règle de base n est enfreinte. Une fois la grille finale obtenue et correcte, on décide au hasard de désigner une case par île pour porter le numéro correspondant à la taille requise de l île. Et on grise alors toutes les cases vierges de numéro. Le principal problème serait le temps de génération, qui pourrait croître de manière trop importante en fonction de la dimension d une grille. 7.2 3D Une autre perspective consisterait à générer et résoudre des grilles en 3D, présentées sous forme de parallélépipède rectangle. Les règles qu on utilise sont extensibles à la 3D. Dans ce cas figure, une case n aurait plus quatre voisins, mais six ; une île pourrait s étendre sur plusieurs faces du prisme droit et à l intérieur de ce dernier ; et de la même manière le mur devrait être connexe dans tout le parallélépipède. 21

Chapitre 8 Annexes Pour s exercer au Nurikabe, voici trois grilles à résoudre suivies de leur solution. Fig. 8.1 Une première grille 5x5 simple 22

Fig. 8.2 Solution 23

Fig. 8.3 Une autre grille 5x5 plus complexe 24

Fig. 8.4 Solution 25

Fig. 8.5 Une grille 9x9 pour les téméraires 26

Fig. 8.6 Solution 27

Bibliographie [1] Logic Games Online : http ://www.logicgamesonline.com/nurikabe/ [2] Nikoli : http ://www.nikoli.co.jp/en/puzzles/nurikabe/ [3] Puzzlinks : http ://puzzlinks.com/tag/nikoli [4] Wikipedia :Nurikabe : http ://en.wikipedia.org/wiki/nurikabe [5] Poster sur la NP-complétude du Nurikabe : http ://www.reed.edu/ mcphailb/poster.pdf [6] Graph Theory (Reinhard Diestel) : http ://www.math.unihamburg.de/home/diestel/books/graph.theory/index.html [7] Introduction à l algorithmique (Thomas H. Cormen et al.) [8] Cours d algorithmique de Julián Mestre de l Université du Maryland : http ://www.cs.umd.edu/class/summer2006/cmsc451/lectures.html 28