Projet INF242. Stéphane Devismes & Benjamin Wack. Pour ce projet les étudiants doivent former des groupes de 3 ou 4 étudiants.



Documents pareils
Production statistique: passage d une démarche axée sur les domaines à une démarche axée sur les processus

Comment évaluer la qualité d un résultat? Plan

Chapitre IV- Induction électromagnétique

3. Veuillez indiquer votre effectif total :

NCCI : Modèle de calcul pour les pieds de poteaux articulés Poteaux en I en compression axiale

NCCI : Calcul d'assemblages de pieds de poteaux encastrés

Informatique III: Programmation en C++

Votre dossier d adhésion

1 Introduction à l effet Doppler.

Exemples de solutions acoustiques

physique - chimie Livret de corrigés ministère de l éducation nationale Rédaction

Équations différentielles et systèmes dynamiques. M. Jean-Christophe Yoccoz, membre de l'institut (Académie des Sciences), professeur

Mesures du coefficient adiabatique γ de l air

Étape II. Compétences à développer de 8 à 12 ans. Grilles des compétences

Chapitre. Calculs financiers

Professionnels de l art by Hiscox Questionnaire préalable d assurance

BAILLY-GRANDVAUX Mathieu ZANIOLO Guillaume Professeur : Mrs Portehault

ETUDE COMPARATIVE RELATIVE AU SERTISSAGE DES CANALISATIONS EN CUIVRE DANS LE SECTEUR DE LA RENOVATION

Revue des Sciences et de la Technologie - RST- Volume 5 N 1 / janvier 2014

Personnel Pour chaque diagnostiqueur, veuillez fournir les informations suivantes : Date de la formation. Formation (durée)

Diagnostic Immobilier by Hiscox Questionnaire préalable d assurance

Guide pratique. L emploi des personnes handicapées

Forme juridique Noms et adresses des filiales à assurer. Date de création ou début de l activité Description PRÉCISE de vos activités

prix par consommateur identiques différents prix par identiques classique 3 unité différents 2 1

DESTINE A USAGE TECHNICIEN BL UNIQUEMENT

La protection différentielle dans les installations électriques basse tension

Forme juridique Noms et adresses des filiales à assurer. Date de création ou début de l activité Description PRÉCISE de vos activités

LE PENETROMETRE STATIQUE Essais CPT & CPTU

DocumentHumain. Confidentiel. Disposition de fin de vie

Le compte satellite des institutions sans but lucratif

Français 5 e. Livret de corrigés. Rédaction Nadège Langbour. Relecture Béatrice elbart. Coordination Anne-Christine Simon

Jean-Philippe Préaux

Problème d ordonnancement de véhicules en variables booléennes

Techniques d analyse de circuits

Métiers de la sécurité Questionnaire préalable d assurance

g conditions actuelles de la répression du blanchiment de fraude fiscale et sur ses conséquences.

EVALUATION À 360 Demonstration MICHEL DUPONT RAPPORT PERSONNEL 360. rapport généré:

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

FONDATION CLEMENTINE ET MAURICE ANTILLE

Le calendrier des inscripti

Déroulement. Evaluation. Préambule. Définition. Définition. Algorithmes et structures de données 28/09/2009

Figure 1 : représentation des différents écarts

Chapitre N2 : Calcul littéral et équations

UE Programmation Impérative Licence 2ème Année

Application 1- VBA : Test de comportements d'investissements

TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile

Séquence 7. Séance 1 Histoire Regards sur l Afrique. Un empire africain, l empire du Ghana (VIII e -XII e siècle)

Utiliser des fonctions complexes

#DSAA. Marseille. u Lycée Denis Diderot {Lycée Marie Curie é Lycée Jean Perrin. Lycée Saint Exupéry

Algorithme. Table des matières

UEO11 COURS/TD 1. nombres entiers et réels codés en mémoire centrale. Caractères alphabétiques et caractères spéciaux.

Baccalauréat technologique

Chapitre 2. Eléments pour comprendre un énoncé

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

Conception des systèmes répartis

Cours de Master Recherche

FONDEMENTS MATHÉMATIQUES 12 E ANNÉE. Mathématiques financières

Chapitre 4 : Exclusion mutuelle

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

Projet L1, S2, 2015: Simulation de fourmis, Soutenance la semaine du 4 mai.

RAPPORT D AUDIT INTERNE

Rappel. Analyse de Données Structurées - Cours 12. Un langage avec des déclaration locales. Exemple d'un programme

Comment se servir de cet ouvrage? Chaque chapitre présente une étape de la méthodologie

IN Cours 1. 1 Informatique, calculateurs. 2 Un premier programme en C

ÉPREUVE COMMUNE DE TIPE Partie D

Projet BI powered de la société «BI experts»

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

PROPAGATION D ONDES ELECTROMAGNETIQUES DANS UN GUIDE D ONDE A SECTION RECTANGULAIRE

C2 - DOSAGE ACIDE FAIBLE - BASE FORTE

Probabilités. Rappel : trois exemples. Exemple 2 : On dispose d un dé truqué. On sait que : p(1) = p(2) =1/6 ; p(3) = 1/3 p(4) = p(5) =1/12

Concours National d Informatique. Sujet de demi-finale Montpellier et Toulouse

Feuille TD n 1 Exercices d algorithmique éléments de correction

Cours de Probabilités et de Statistique

GABARIT À PÊNE DORMANT ÉLECTRONIQUE

DESCRIPTION DU PLUGIN D AUTHENTIFICATION AVEC CAS POUR SPIP

Algorithmique et Programmation Fonctionnelle

Rapport d'analyse des besoins

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

LES GENERATEURS DE NOMBRES ALEATOIRES

Éléments d informatique Cours 3 La programmation structurée en langage C L instruction de contrôle if

Entraînement au concours ACM-ICPC

Cryptologie et physique quantique : Espoirs et menaces. Objectifs 2. distribué sous licence creative common détails sur

Algorithmique et Programmation, IMA

Bases de données documentaires et distribuées Cours NFE04

Recherche dans un tableau

Cours d introduction à l informatique. Partie 2 : Comment écrire un algorithme? Qu est-ce qu une variable? Expressions et instructions

l'appareil et vérifiez les composants Cartouches d'encre incluses [x4] CD-ROM d'installation CD-ROM de documentation

Brique BDL Gestion de Projet Logiciel

protection consommateurs commerce électronique Principes régissant la dans le Le cadre canadien des

Intégrale et primitives

Poker. A rendre pour le 25 avril

Chapitre 5 : Flot maximal dans un graphe

SÉQUENCE 7 Histoire La France et l Europe en Séance 1

Dimensionnement Introduction

Méthode de Test. Pour WIKIROUTE. Rapport concernant les méthodes de tests à mettre en place pour assurer la fiabilité de notre projet annuel.

Sécuristation du Cloud

Mesurage en continu des flux polluants en MES et DCO en réseau d assainissement

Calculs de probabilités

UE 8 Systèmes d information de gestion Le programme

Exemples de problèmes et d applications. INF6953 Exemples de problèmes 1

Transcription:

Projet INF242 Stéphane Devismes & Benjamin Wak Pour e projet les étudiants doivent former des groupes de 3 ou 4 étudiants. 1 Planning Distribution du projet au premier ours. À la fin de la deuxième semaine de TD, onstitution des groupes et validation du sujet par le hargé de TD. Livraison par email à votre enseignant de TD au plus tard le 6 mars 2015 du pré-rapport (5 pages maximum). Livraison au plus tard le 30 avril 2015 par email du rapport final. Dans la semaine du 4 au 7 mai 2015, soutenane de 20 minutes par groupe, questions inluses (démonstration du travail réalisé en groupe). 2 Travail à réaliser Le projet se déoupe en deux parties. La première partie fera l objet d un pré-rapport. À la fin de la seonde partie, les différents groupes devront produire un rapport résumant les travaux aomplis dans les deux parties. Enfin, e projet sera aussi évalué par une soutenane. Les ontenus des pré-rapport et rapport final seront pris en ompte dans la notation. 2.1 Première partie La première partie de e projet onsiste à formaliser plusieurs problèmes en logique propositionelle sous la forme d ensembles de lauses. Dans votre pré-rapport, pour haque problème traité, vous devrez : 1. Donnez l énoné informel du problème, 2. Traduire et énoné sous la forme de formules propositionelles. Cette tradution devra être justifiée. 3. Traduire les formules propositionelles en un ensemble de lauses équivalentes. Cette tradution devra aussi être justifiée. Il vous est demandé de traiter plusieurs problèmes. Ces différents problèmes doivent être de diffiulté roissante. Vous pouvez, par exemple, ommener ave des exeries du polyopié qui n ont pas été traités en TD ou alors des exeries d examen ou partiel des années préédentes, disponibles à ette adresse 1

http://www-verimag.imag.fr/~devismes/www/enseignements.html#inf242 Après vous être exeré sur des exemples simples, vous devrez vous onentrer sur la formalisation d un problème plus omplexe. Par exemple : le Sudoku le arré magique Squaro Tetravex Paint-by-numbers D autres pistes de sujets sont proposées sur la page http://www-verimag.imag.fr/~wak/inf242 ave en général des liens vers des applets de démonstration. Ce dernier problème devra obligatoirement être validé par votre hargé de TD! 2.2 Deuxième partie La seonde partie de e projet onsiste en la résolution automatique des problèmes proposés lors de la première partie. Pour ela, vous utiliserez un solveur SAT. Plus préisement, vous programmerez vous-même votre propre solveur SAT (dans le langage de votre hoix) ave différentes stratégies de résolution. En outre, il vous est demandé de fournir deux autres programmes qui onernent uniquement le dernier problème à traiter : le problème omplexe validé par votre hargé de TD. Le format DIMACS. La première étape onsistera à traduire les ensembles de lauses proposés lors de la première partie en fihier DIMACS. Le format des fihiers d entrées des SAT-solveurs est un standard international pour la représentation de formules en forme normale onjontive. Un fihier en format DIMACS ommene par une ligne qui spéifie qu il s agit d une forme normale onjontive, qui préise ombien de variables la formule ontient, et de ombien de lauses disjontives elle est onstituée. Par exemple : p nf 5 3 indique que le fihier ontient une formule en forme normale onjontive, ave 5 variables et 3 lauses. Ensuite, le fihier est omposé de plusieurs lignes, une par lause. Chaque ligne ontient des entiers positifs et/ou négatifs, et se termine par 0. Un entier positif i indique que la i-ème variable apparaît ave polarité positive dans la lause. Un entier négatif i indique que la i-ème variable apparaît ave polarité négative dans la lause. Par exemple, le fihier suivant au format DIMACS représente la formule : start with omments p nf 5 3 1-5 4 0-1 5 3 4 0-3 -4 0 (x 1 x 5 x 4 ) ( x 1 x 5 x 3 x 4 ) ( x 3 x 4 )

Attention! Pour les problèmes de taille onséquente (par exemple, le dernier problème proposé), ette transformation devra être effetuée automatiquement à l aide d un programme que vous aurez érit 1. Votre solveur SAT : WalkSat. Il vous est demandé de programmer dans le langage de votre hoix un solveur de type WalkSat. Votre WalkSat devra lire en entrée l ensemble de lauses à résoudre sous la forme d un fihier DIMACS. Le but est ensuite de renvoyer une assignation modèle de toutes les lauses de l ensemble si ela est possible. Notez que WalkSat est un solveur inomplet : si l ensemble de lauses donné en entrée est ontraditoire, il est inapable de le déterminer. Le pseudo-ode d un algorithme de type WalkSat est donné i-dessous. 1: Choisir une assignation v uniformément au hasard 2: i=0 3: TANT QUE (v n est pas modèle) et i < MAX_ITERATION FAIRE 4: Choisir au hasard C parmi les lauses C telles que v(c ) = faux 5: Tirer une valeur réelle x uniformément au hasard dans [0,1] 6: SI x <= P ALORS 7: Choisir uniformément au hasard une variable y de C 8: SINON 9: Choisir une variable y de C de manière déterministe 10: FIN SI 11: Inverser la valeur de v(y) dans l assignation v 12: i++ 13: FIN TANT QUE 14: SI v est modèle ALORS 15: Renvoyer v 16: SINON 17: Renvoyer pas_de_deision 18: FIN SI Le ode donné i-dessus est volontairement inomplet! En effet, il ne préise pas les valeurs de MAX_ITERATION et P, ni la proédure de hoix déterministe de la variable y à la ligne 9. Au minimum, il vous est demandé de proposer une valeur raisonnable pour es deux onstantes, et de faire en sorte que la variable y hoisie soit la variable présente dans C qui va minimiser le nombre de lauses insatisfaites. Faultativement, vous pouvez mener des expérimentations afin de trouver les meilleures valeurs possibles pour MAX_ITERATION et P ; vous pouvez également programmer d autres méthodes de hoix de y, par exemple : Choisir la variable présente dans C parmi elles les moins modifiées jusqu ii. Pour haque variable z, aluler sore(z) de la manière suivante : si v(z) = vrai alors ompter le nombre de lauses où z apparaît négativement moins le nombre de lauses où elle apparaît positivement, 1. Si vous programmez en JAVA, vous pouvez vous inspirer de l exemple donné à la page www-verimag.imag.fr/~devismes/java/fihier.java pour la gestion de fihiers.

sinon ompter le nombre de lauses où z apparaît positivement moins le nombre de lauses où elle apparaît négativement Ensuite hoisir une variable de C de sore maximum. Vous inspirer des heuristiques MOMS et JW données dans le poly. Mixer plusieurs des stratégies préédentes. et. Dans e as, il peut être judiieux de omparer entre elles les différentes proédures de hoix que vous aurez implantées. Notez que pour simplifier votre implémentation, vous pouvez transformer en préambule votre ensemble de lauses en ensemble de lauses 3-SAT équivalent (vous pourrez vous baser sur l algorithme proposé dans l exerie 50 p. 63 de votre polyopié de ours). Problème omplexe. En e qui onerne le dernier problème demandé (le problème omplexe validé par votre hargé de TD), vous devrez fournir : Un programme générant le fihier DIMACS orrespondant à une instane du problème. Par exemple, une grille de Sudoku ontenant quelques nombres. Un programme affihant de manière lisible une solution du problème omplexe hoisi. Par exemple, si vous hoisissez le Sudoku, e programme devra affiher une grille solution alulée par votre solveur à partir de la grille inomplète fournie en entrée. Ne perdez pas de temps à réaliser une interfae graphique onviviale : des programmes reevant et affihant les instanes du problème sous forme de simples fihiers texte sont tout-à-fait aeptables pour e projet. 3 Rapport Votre rapport devra inlure : 1. le ontenu (éventuellement mis à jour) de votre pré-rapport ; 2. la tradution en logique propositionnelle de l énoné des différents problèmes traités ; 3. une présentation (informelle) de votre solveur illustrée par l analyse d exemples pertinents ; 4. une présentation des deux programmes «interfae» du gros problème que vous aurez traité ; 5. éventuellement, vos expérimentations sur les valeurs de MAX_ITERATION et de P et/ou l étude omparative des différentes méthodes de hoix de la variable que vous aurez programmées. 4 Soutenane La soutenane est OBLIGATOIRE (sauf pour les dispenses offiielles). Toute absene injustifiée onduira le jury à délivrer la note de 0 au projet pour le andidat absent. Lors de votre soutenane, vous exéuterez vos programmes sur une mahine personnelle ou

une mahine de l université. Chaque membre du projet devra intervenir équitablement pendant la soutenane. Il faudra présenter le sujet du projet, mais aussi de donner une démonstration de vos programmes sur mahine. 5 Exemple pour le problème des pigeons Nous illustrons par un exemple simple le minimum que nous attendons des étudiants pour le projet de INF242. 5.1 Enoné informel Un olombophile possède n nids et p pigeons. Il souhaite que : haque pigeon soit dans un nid, il y ait au plus un pigeon par nid. 5.2 Modélisation en ensemble de lauses La variable booléenne x i,j représente le fait que le pigeon i est dans le nid j. Par exemple, pour un ensemble de pigeons {a, b, } et un ensemble de nids {1, 2, 3, 4}, nous devons donner au SAT-solveur l ensemble de lauses suivant : Chaque pigeon est dans un nid : x a,1 x a,2 x a,3 x a,4, x b,1 x b,2 x b,3 x b,4, x,1 x,2 x,3 x,4, Chaque nid ontient au plus un pigeon : x a,1 x b,1, x a,1 x,1, x b,1 x,1 x a,2 x b,2, x a,2 x,2, x b,2 x,2, x a,3 x b,3, x a,3 x,3, x b,3 x,3, x a,4 x b,4, x a,4 x,4, x b,4 x,4. 5.3 Transformation en fihier DIMACS et résolution par un SATsolveur Le premier programme «interfae» doit demander à l utilisateur de donner le nombre de nids n et le nombre de pigeons p, puis doit générer le fihier DIMACS odant les ontraintes relatives au problème de n nids et p pigeons. Si n p alors votre WalkSat trouvera une assignation modèle. Votre seond programme «interfae» devra alors affiher dans quel nid l assignation à affeter haque pigeon. Ainsi nous saurons omment plaer les pigeons! Nous remarquons qu il nous est faile de trouver une solution à e problème alors que l ordinateur doit résoudre un nombre de ontraintes exponentielles.