BURTE Julien/MONTES Olivier/ROGLIANO Théo TER :2015 ETERNITY II. Tuteur : Eric BOURREAU



Documents pareils
Arithmétique binaire. Chapitre. 5.1 Notions Bit Mot

Cours IV Mise en orbite

NOEUD HERRINGBONE-PINEAPPLE STANDARD TYPE and PASS

Cours Excel : les bases (bases, texte)

Module 16 : Les fonctions de recherche et de référence

LES TOUT PREMIERS PAS

Analyse de la vidéo. Chapitre La modélisation pour le suivi d objet. 10 mars Chapitre La modélisation d objet 1 / 57

Problèmes de dénombrement.

RapidMiner. Data Mining. 1 Introduction. 2 Prise en main. Master Maths Finances 2010/ Présentation. 1.2 Ressources

Étape 1 : Création d une adresse courriel GMAIL

Les différentes étapes à suivre pour la création d un feuillet

Guide d utilisation du système rapport en ligne de la famille de la CMS

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

Table des matières A. Introduction... 4 B. Principes généraux... 5 C. Exemple de formule (à réaliser) :... 7 D. Exercice pour réaliser une facture

COMMENT CREER VOS BANDES GRAND FORMAT?

Guide d utilisation des fichiers bonus accompagnant le guide «L Argent est une science exacte»

Afin d accéder à votre messagerie personnelle, vous devez vous identifier par votre adresse mail et votre mot de passe :

Travaux pratiques avec RapidMiner

IMAGES NUMÉRIQUES MATRICIELLES EN SCILAB

ANNUITES. Les annuités définissent une suite de versements identiques ou non effectués à intervalles de temps égaux. -annuités non constantes

Julien MATHEVET Alexandre BOISSY GSID 4. Rapport RE09. Load Balancing et migration

Pop-Art façon Roy Liechtenstein

06/11/2014 Hyperviseurs et. Infrastructure. Formation. Pierre Derouet

Exercices de dénombrement

4. Exercices et corrigés

Cours pratique Excel. Dans chacune des feuilles, les donnés sont déjà entrées afin de gagner du temps.

PROBABILITÉS CONDITIONNELLES

Probabilités. I Petits rappels sur le vocabulaire des ensembles 2 I.1 Définitions... 2 I.2 Propriétés... 2

UTILISER LA MESSAGERIE

EXCEL TUTORIEL 2012/2013

Encryptions, compression et partitionnement des données

TP Protocoles SMTP et POP3 avec Pratiquer l algorithmique

Saisissez le login et le mot de passe (attention aux minuscules et majuscules) qui vous ont

MODE OPÉRATOIRE. VI) Le projet mené dans le cadre de la technologie. Le projet porte sur la réalisation d une horloge CD.

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

!!! La solution bureautique collaborative 100% gratuite!!!

Sujet proposé par Yves M. LEROY. Cet examen se compose d un exercice et de deux problèmes. Ces trois parties sont indépendantes.

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

Excel 2010 Module 13. Comment créer un tableau d amortissement dégressif d une immobilisation. Enseignant : Christophe Malpart

Nouvelles propositions pour la résolution exacte du sac à dos multi-objectif unidimensionnel en variables binaires

Didacticiel Études de cas. Description succincte de Pentaho Data Integration Community Edition (Kettle).

L équilibre Ressources Emplois de biens et services schématisé par une balance

Ces Lettres d informations sont envoyées aux extranautes inscrits et abonnés sur le site assistance (voir point N 3).

CHAPITRE VI ALEAS. 6.1.Généralités.

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

PLATEFORME MÉTIER DÉDIÉE À LA PERFORMANCE DES INSTALLATIONS DE PRODUCTION

Date M.P Libellé Catégorie S.Catégorie Crédit Débit Solde S.B

BIRT (Business Intelligence and Reporting Tools)

Création d un site Internet

Séquence de découverte de SparkAngels Logiciel d entraide numérique

Chapitre 1 I:\ Soyez courageux!

The Grid 2: Manuel d utilisation

CHAPITRE 5. Stratégies Mixtes

Matériel. . 9 cartes Personnage

Deuxième partie es jeux non-coopératifs avec information complète 3. É quilibre de Nash (1951) 4. D ynamique et rétroduction 5.

Modes Opératoires WinTrans Mai 13 ~ 1 ~

TD : Codage des images

Les algorithmes de base du graphisme

Les technologies du Big Data

Mode d emploi base de données AIFRIS : Commande et inscriptions

livreblanc REALISATION D UN RESEAU INFORMATIQUE AVEC L OFFRE DE COMPOSANT FOLAN CLASSIC LAN

TP SIN Traitement d image

Gérer son travail dans Lightroom

Fiche d animation n 1 : Pêle-mêle

Guide plateforme FOAD ESJ Lille

Techniques d interaction dans la visualisation de l information Séminaire DIVA

Plus petit, plus grand, ranger et comparer

Business Intelligence simple et efficace

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

Base est le module pour les bases

Exercices sur le chapitre «Probabilités»

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

Débuter avec Excel. Excel

Algorithmes de recherche

Business Intelligence

MISE A JOUR : 04 FEVRIER 2011 PROCÉDURE D INSTALLATION. Cegid Business COMMENT INSTALLER CEGID BUSINESS V9 SOUS WINDOWS XP, VISTA ET 7

Clé USB. Quel type de données peut contenir une clé USB?

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

RECUPEREZ DES FICHIERS SUPPRIMES AVEC RECUVA

À qui s adresse cet ouvrage?

G E S T S K E D. Logiciel de gestion de QSO journaliers ou hebdomadaires appelés SKED. Version 1.0. Logiciel développé par René BUSSY F5AXG

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

F.A.Q 1.0 Designer 3D Atex System

Gestion du parc informatique des collèges du département du Cher. Manuel d utilisation de la solution de gestion de Parc

INTERSYSTEMS CACHÉ COMME ALTERNATIVE AUX BASES DE DONNÉES RÉSIDENTES EN MÉMOIRE

Pose avec volet roulant

Les couleurs. Un peintre distrait a oublié les noms des couleurs de sa palette : tu peux l aider à reconstituer l ordre correct (de gauche à droite)?

les Formulaires / Sous-Formulaires Présentation Créer un formulaire à partir d une table...3

Guide de l utilisateur Mikogo Version Windows

Atelier n 12 : Assistance à distance

BOSS : Bourses régionale du Sanitaire et du Social GUIDE UTILISATEUR ETUDIANT

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

MANUEL DE L UTILISATEUR

Du benchmarking logistique au choix d une nouvelle stratégie d organisation

données en connaissance et en actions?

Travaux pratiques. Compression en codage de Huffman Organisation d un projet de programmation

Petit memo rapide pour vous guider dans la gestion des engagements de vos compétitions FFM

Console IAP Manuel d utilisation

Transcription:

BURTE Julien/MONTES Olivier/ROGLIANO Théo TER :2015 ETERNITY II Tuteur : Eric BOURREAU

Eternity II est un puzzle de 256 pièces, où chaque pièce est formée de 4 couleurs et doit être assortie à sa voisine par une même couleur afin de former un carré complet. (Un exemple du puzzle en dimension réduite 4 4) Par un algorithme «naïf» de résolution (ou résolution brute) qui consiste à poser chaque pièce dans les 4 orientations possibles et tester si la pièce posée est la «bonne», nous nous retrouvons avec une complexité d au moins : ( ) ( ) où n est la taille du puzzle Or avec N=256 nous dépassons largement les limites de calcul des machines actuelles dans un temps raisonnables (il nous faudrait environ années pour parcourir toutes les possibilités), c est pourquoi nous travaillons sur des versions réduites du puzzle avec des propriétés similaires. Ce projet vise à résoudre des versions réduites de plus en plus grande et idéalement dépassé le record en résolvant un Eternity II de taille 10. Afin d y parvenir, nous utiliserons d abord un algorithme de résolution à peine moins brute, puis nous présenterons et utiliserons les concepts de finales et d ouvertures, pour un plan de ce rapport qui donne : I/Finales, résolution d instances de «petites» tailles 1) Les bases d Eternity II 2) Concept de finales II/Ouvertures, résolution d instances de tailles «intermédiaires» 1) Concept d ouvertures 2) Structures de données III/Amélioration et apport 2

I/Finales, résolution de «petites» tailles 1) Les bases d Eternity II Pour une résolution «brute», un peu moins naïve nous pouvons tout simplement effectuer un tri des pièces en les différenciant en 3 catégories, les coins (au nombre de 4), les bords (au nombre 4*n-8) et les centres (au nombre de n²-4n+4). En effet, le gris étant la couleur réservée à la bordure, une pièce avec 2 côtés gris est donc un coin et une pièce avec 1 côté gris un bord. De cette façon lorsque nous avons besoin d une pièce qui est un bord, nous nous servons uniquement des pièces de la catégorie bords, etc Prenons un exemple, pour un puzzle de taille 4, la brute force donnerait le tableau des possibilités représentant une instance où à la place de chaque pièce est écrit le nombre de pièces possibles : 16 4 15 4 14 4 13 4 12 4 11 4 10 4 9 4 8 4 7 4 6 4 5 4 4 4 3 4 2 4 1 4 (Tableau de possibilités par algo naïf) Le 4 correspond au 4 orientations possibles qu une pièce peut prendre. Or pour l instance qui nous fut donné, les formules citées nous donnent 4 coins, 8 bords et 4 centres. Nous pouvons ainsi réduire le tableau de la façon suivante : 4 8 7 3 6 4 4 3 4 5 4 2 4 1 4 3 2 2 1 1 (Tableau de possibilités par tri des pièces) Il est à noter que nous les pièces des bords sont pré-orientés contrairement à celle du centre. De plus, nous pouvons rajouter que les couleurs servant de jonction entre les bords sont spécifiques à la jonction entre ces pièces-là, et nous pouvons donc différencier aussi les couleurs de «bord» et les couleurs de «centre». Il est à noter que le nombre de couleur de centres à l air d être proche de la taille du puzzle. Nous pouvons donc de même trier les pièces en fonction de leurs couleurs. Toujours pour la même instance nous avons 2 couleurs de bord et 3 couleurs de centre, sachant les couleurs uniformément réparties, cela réduit encore les possibilités, notamment vers les coins : 4 4 4 4 4 3 4 2 4 1 4 3

2) Concept de finales Le but d un final est de calculer à l avance -en off line- une zone pour réduire le calcul final de résolution du puzzle. En citant M.Bourreau, on peut les comparer aux finales aux échecs, lorsqu un joueur ne possède plus que son roi et un autre sa tour et son roi il existe un moyen pour le second joueur de finir à coup sûr la partie. Ainsi, on peut considérer qu il est inutile de finir la partie. Ici, nous formons tout simplement des «macropièces» qui seront directement utilisables et qui permettront ainsi de compléter toute une zone en un coup. Dans notre arbre des possibilités, nous aurons déjà calculé la partie jaune. Le programme calculera seulement la partie blanche et pourra s arrêter à l interface blanc/jaune. Nous avons choisi de faire des macro-pièces en forme de triangles pour les coins car facilement générables et manipulables. Précédemment, nous avons vu que les combinaisons possibles sont moindres dans les coins, cela permet d avoir un nombre réduit de macro-pièces à générer. En outre, les coins et les bords formant ces macro-pièces étant pré-orientés, cette propriété s étend à la macro-pièce ce qui la rend facilement manipulable, on n aura pas à tester les différentes orientations. Ces triangles sont caractérisés par les pièces qui les composent et leurs frontières. Nous en avons créé de plusieurs tailles suivant la taille du puzzle à résoudre, avec un triangle de taille 4 et un Eternity II de même taille, il en suffit de 2 pour avoir le puzzle complet. Ainsi, un triangle de taille 1 est composé d une pièce de coin et des 2 couleurs non grises de cette pièce, un triangle de taille 2 est composé d une pièce de coin et de 2 pièces de bord, et d une frontière etc Avec PC = Pièce Coin ; PB = Pièce Bord ; PI = Pièce Interne et les couleurs étant la frontière Nous représentons ici des pièces et non des possibilités. (Exemple de triangles de tailles croissantes) 4

Nous avons générés ces triangles jusqu à la taille 4 mais nous utiliserons au maximum ceux de taille 3 car le nombre de triangle de taille 4 générés permet difficilement de les manipuler ou d y gagner quelque chose. Cisuit le tableau récapitulatif de pièces générées par notre programme (tableau complet en annexe) : Taille puzzle Nombre de triangle taille 1 Nombre de triangle taille 1 Nombre de triangle taille 1 Nombre de triangle taille 1 Théorie taille 2 4 4 56 N/A N/A 64 5 4 56 N/A N/A 64 6 4 102 6353 N/A 113 7 4 156 16207 N/A 177 8 4 217 20458 3.8*10^6 256 9 4 142 15593 2.9*10^6 196 Nous n avons pas créé certains triangles car ils ne nous étaient pas utile -avoir des triangles de taille 4 pour un puzzle de la même taille revient quasiment à résoudre directement le puzzle. La théorie est une majoration du nombre de triangles que nous sommes censés générés, si nous en générons plus c est qu il y a eu un problème. Pour les triangles de taille 2, nous avons théoriquement : ( ) avec nbtriangle2 le nombre de triangle de taille 2, nbc le nombre de pièces de coins, nbb le nombre de pièces de bords et nbcb le nombre de couleur de servant de jonction entre les bords. Pour ceux de taille 3 (que je n ai pas mis dans le tableau) : ( ) ( ) avec nbtriangle2 le nombre de triangle de taille 3, nbi le nombre de pièces de centres et nbci le nombre de couleur de servant de jonction entre les pièces de centres. 5

Grace aux finales, notre algorithme permet de générer les différents centres puis de regarder si les interfaces finales/centres correspondent. S il y a correspondance alors nous avons tout simplement une solution. Voici un exemple sur un puzzle de taille 4 : (Une solution) (Pas de triangle correspondant) Pour un puzzle de taille 4, nous remarquons que le centre n est pas beaucoup plus grands que nos triangles nous avons donc créé des macro-pièces en forme de carrés constitués des pièces du centre et d une frontière. Notre Eternity II de 16 pièces se réduit donc en un puzzle de 5 macro-pièces. Il est à noter que cette technique marche aussi pour un puzzle de taille 5 avec une macro-pièce en forme de croix. Nous avons d ailleurs effectué cette résolution de 2 façons différentes, la 1 ère classique en écrivant un programme en C++ et l autre en faisant une requête SQL donnée en annexe qui donne le même résultat. Nous pouvons désormais comparer les différentes méthodes présentés et montrés l évolution du gain de temps : Taille du puzzle Résolution brute Rés avec tri des pièces Rés avec finales sans centre Rés avec finales avec centre Requete SQL avec centre 4 2.5 secs 2.4 secs 0.68 secs 0.33 secs 0.34 secs Cette idée de macro-pièces centrales est en fait l amorce du concept d ouverture. 6

II/Ouvertures, résolution de tailles «intermédiaires» 1) Concepts d ouvertures Grace aux finales, notre algorithme génère les différents centres et regarde si les interfaces finales/centres correspondent. Or pour des puzzles de taille supérieure à 5, ce qui prend du temps est la génération des centres. Pour remédier à cela nous allons créer des macro-pièces qui nous permettent de commencer le puzzle à l image du carré vu précédemment, c est cela que nous appellerons une ouverture. Pour garder l image des échecs, cela correspond aux premiers coups joués qui sont étudiés sur 20 à 25 coups à l avance pour pouvoir considérer les meilleurs. Ces ouvertures seront en forme de corroles. En effet, quand on pose une pièce, elle contraint ses 4 voisines à posséder une couleur spécifique pour pouvoir se joindre à la pièce posée. Ici la pièce centrale composée des couleurs bleu, vert, rouge, jaune, contraint la pièce au nord d avoir un côté bleu, à l est un coté vert etc. Par propagation, ces nouvelles pièces jointes contraignent leurs voisines et on peut ainsi former des corroles de plus en plus grandes. La pièce en rouge contraint les pièces en orange qui à leur tour contraignent les pièces en jaunes. De même que pour les triangles, nous nous sommes arrêtés à des corroles de taille 2 (comme celle représenté ci-dessus) car au-delà nous en générons un nombre trop grand pour être facilement manipulé ou stocké. Il est à noter que pour la résolution des instances d Eternity II, une pièce -centrale- dite d indice est fournie pour éviter de trouver des solutions similaires avec seulement une rotation de 90 du puzzle. Cette pièce, fixant une rotation, nous servira de base pour former les corroles. 7

Maintenant grâce aux ouvertures, notre algorithme consiste à poser une ouverture, compléter le centre si nécessaire, et enfin toujours regarder si les interfaces centres/finales correspondent. Voici un exemple : On pose une ouverture (en vert), on complète le «centre» (en blanc) et on regarde s il existe les finales appropriées, (en orange), ceci répéter pour toutes nos ouvertures. Pour mieux voir ce que cela nous apporte voici, l arbre des possibilités à explorer : nous avons donc pré calculés la partie verte qui correspond aux ouvertures et la partie orange qui correspond aux finales, le programme calcul uniquement la partie blanche. Cependant, pour calculer la partie blanche il faut que nous arrivions à déterminer quelles pièces ont déjà été utilisées pour former l ouverture ou les finales. A partir d ici nous avons modifié notre structure de données pour nous y retrouver plus facilement et être plus efficace. Nous n avons pour le moment que des vecteurs de tous les objets auparavant créés et il est peu aisé de savoir si une pièce a déjà été utilisée ailleurs. 2) Structures de données Nous avons choisi une structure de données un peu particulière qui nous arrange dans nos démarches. Elle est constituée d au 2 vecteurs de pointeurs obligatoires. Le 1 er vecteur est indicé par pièces, par exemple 0 = pièce n 0, 1= pièce 1, etc et chaque case pointe vers un vecteur de macro-pièces listant toutes les macro-pièces où la pièce apparait. De surcroit, chaque macro-pièce est doublement chainée à sa voisine dans les vecteurs de macro-pièces, ce chainage est le chainage «succ» / «pred» Le 2è vecteur de pointeur est indicé par macro-pièce. Chaque case pointe vers la macro-pièce dans les vecteurs de macro-pièce pour pouvoir la récupéré au cas où. Ce chainage est le chainge «droite» / «gauche». 8

Voici un schéma explicatif. Quand nous utilisons une pièce, nous pouvons ainsi grâce au chainage gauche droite retrouvé toutes les macropièces où celle-ci est utilisé et les supprimer en modifiant le chainage succ pred. Nous utilisons les dancing links pour pouvoir les réhabiliter si nous n utilisons plus la pièce. Nous avons fait un chainage similaire avec les couleurs afin de lier les couleurs et les pièces, avec une couleur donnée il nous est possible de savoir quelles pièces restantes contenant cette couleur sont disponibles. 9

III/Amélioration et apport 1) Map reduce La suite de ce TER serait de faire un équivalent du Map Reduce pour accélérer la vitesse de résolution. Actuellement, l architecture de l ordinateur nous contraint à tester les possibilités une à une de manière procédurale. L idée serait qu à chaque nœud de l arbre des possibilités nous lancions autant de thread qu il y a d arcs et de fermer ou récupérer les threads au fur et à mesure. Un thread est l équivalent d un processus allégé, nous pouvons en lancer plusieurs en simultanés notamment sur chaque GPU d une carte graphique. Ci-joint un exemple : Techniquement, nous pourrions, de cette façon, diviser le temps de calcul. 2) Apport du projet La méthode d ouvertures et de finales fonctionne très bien jusqu à un puzzle de taille 10, nous constatons que nous réduisons considérablement le temps de résolution par rapport à une méthode «brute». Cependant, audelà de la taille 10, les effets recherchés par les finales et les ouvertures sont amoindries et le nombre de possibilités est encore tout simplement trop grand pour espérer résoudre un Eternity II dans un temps raisonnables. Nous remercions M.Bourreau qui est notre 1 ère source d information et qui nous a guidés tout le long de ce projet. Ci suit les annexes. Annexe 1 : voir le fichier excel Annexe 2 : voir dossier requête SQL 10