INFO-F-302 Informatique Fondamentale Examen Session de Juin 2014



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

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

Programmation linéaire

Rapport de stage de première année de Master Optimisation de cache d instructions

Cours de Master Recherche

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

Cours Optimisation Partie Optimisation Combinatoire. Année scolaire Gérard Verfaillie ONERA/DCSD/CD, Toulouse

UFR de Mathématiques et Informatique Année 2009/2010. Réseaux Locaux TP 04 : ICMP, ARP, IP

Exercices types Algorithmique et simulation numérique Oral Mathématiques et algorithmique Banque PT

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)

Annexe 6. Notions d ordonnancement.

Les arbres binaires de recherche

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

Resolution limit in community detection

Modélisation et Simulation

Pourquoi l apprentissage?

Fondements de l informatique Logique, modèles, et calculs

I - PUISSANCE D UN POINT PAR RAPPORT A UN CERCLE CERCLES ORTHOGONAUX POLES ET POLAIRES

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

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

Recherche dans un tableau

Communications collectives et ordonnancement en régime permanent pour plates-formes hétérogènes

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

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

1 Recherche en table par balayage

Méthodologie d Ouverture, de Dépouillement et d Evaluation des Offres Relatives à la Consultation 09 S V.E.De.R

Raisonnements standard et non-standard pour les systèmes décentralisés de gestion de données et de connaissances

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

Objectifs. Clustering. Principe. Applications. Applications. Cartes de crédits. Remarques. Biologie, Génomique

Intelligence Artificielle Planification

Excel Avancé. Plan. Outils de résolution. Interactivité dans les feuilles. Outils de simulation. La valeur cible Le solveur

Chp. 4. Minimisation d une fonction d une variable

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

Utiliser des fonctions complexes

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

Ordonnancement. N: nains de jardin. X: peinture extérieure. E: électricité T: toit. M: murs. F: fondations CHAPTER 1

Représentation d un entier en base b

TP 2 Réseaux. Adresses IP, routage et sous-réseaux

Pluridisciplinarité. Classe de BTS DATR

Model checking temporisé

Ebauche Rapport finale

Canevas théoriques du projet sur le poker Partie A

MATH ELEMENTS DU CALCUL DES PROBABILITES

MIS 102 Initiation à l Informatique

Suites numériques 3. 1 Convergence et limite d une suite

Algorithmique et programmation : les bases (VBA) Corrigé

La fonction exponentielle

INTRODUCTION A L ELECTRONIQUE NUMERIQUE ECHANTILLONNAGE ET QUANTIFICATION I. ARCHITECTURE DE L ELECRONIQUE NUMERIQUE

Big Data et Graphes : Quelques pistes de recherche

Limitations of the Playstation 3 for High Performance Cluster Computing

Systèmes décisionnels et programmation avancée

Python - introduction à la programmation et calcul scientifique

Corrigé des TD 1 à 5

Brochure d information pour le preneur d assurance

Comptabilité Services-Conseils Ressources humaines

Le Régime volontaire d épargne-retraite (RVER) du Québec Aperçu du régime d épargne-retraite offert par l employeur dévoilé récemment

Par combien de zéros se termine N!?

IV- Comment fonctionne un ordinateur?

Algorithmes de Transmission et de Recherche de l Information dans les Réseaux de Communication. Philippe Robert INRIA Paris-Rocquencourt

PROBLEMES D'ORDONNANCEMENT AVEC RESSOURCES

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

Installation d'un TSE (Terminal Serveur Edition)

Algorithmique et Programmation, IMA

Licence Sciences et Technologies Examen janvier 2010

INF 232: Langages et Automates. Travaux Dirigés. Université Joseph Fourier, Université Grenoble 1 Licence Sciences et Technologies

UNIVERSITÉ DU QUÉBEC EN OUTAOUAIS VÉRIFICATION ET ANALYSE DES POLITIQUES DE CONTRÔLE D ACCÈS : APPLICATION AU LANGAGE XACML

Classes et Objets en Ocaml.

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

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

Anne Tasso. Java. Le livre de. premier langage. 10 e édition. Avec 109 exercices corrigés. Groupe Eyrolles, , ISBN :

Formulaire de consultation publique du projet PARL OMPI Experts

La mesure de Lebesgue sur la droite réelle

Et comment ça fonctionne?

Questions fréquemment posées par les candidats externes

Ordonnancement temps réel

CCI Génie Logiciel UFR - IMA. Objectifs du cours d'aujourd'hui. Génie Logiciel Validation par le test. Qu est-ce que tester un programme?

Continuité et dérivabilité d une fonction

L expérience à votre service. Guide du Crédit lié à la gestion de risques d ENCON

Comment se connecter au dossier partagé?

* très facile ** facile *** difficulté moyenne **** difficile ***** très difficile I : Incontournable T : pour travailler et mémoriser le cours

L utilisation d un réseau de neurones pour optimiser la gestion d un firewall

La classification automatique de données quantitatives

Simulation de variables aléatoires

LOGICIEL DE GESTION DE DOCUMENTS PDF : PROJET INFO 1

Méthode : On raisonnera tjs graphiquement avec 2 biens.

Préparation à l examen EFA en Macro

Stratégie de recherche adaptative en programmation par contrainte

UML et les Bases de Données

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

Tâche complexe produite par l académie de Clermont-Ferrand. Mai 2012 LE TIR A L ARC. (d après une idée du collège des Portes du Midi de Maurs)

OCL - Object Constraint Language

Chapitre 3. Mesures stationnaires. et théorèmes de convergence

L entreprise prête pour l informatique en nuage Élaborer un plan et relever les principaux défis

Initiation à la Programmation en Logique avec SISCtus Prolog

1 Position du problème

Algorithme. Table des matières

Agrégation des portefeuilles de contrats d assurance vie

Apprentissage. Intelligence Artificielle NFP106 Année Plan. Apprentissage. Apprentissage

Transcription:

INFO-F-302 Informatique Fondamentale Examen Session de Juin 2014 CORRIGÉ Documents non autorisés, durée: 2h45 1 Questions de cours (6 points) Question 1 (2pts) Donner quatre méthodes vues en cours pour tester si une formule de la logique propositionnelle est valide ou non. Pour chaque méthode, expliquer la en une ligne ou deux, sans donner de détails. Solution : Voici plusieurs méthodes qu on a vues en cours pour tester la validité d une formule φ de la logique propositionnelle : 1. les tables de vérité : calculer les valeurs de vérité de φ pour toutes les interprétations possibles de ses propositions et vérifier qu elles sont toutes égales à 1 2. la méthode des tableaux sémantiques appliquée à φ : on construit un arbre T qui décompose la formule φ, et tel que φ est non satisfaisable si et seulement si aucune feuille de T n est satisfaisable. 3. la déduction naturelle permet de démontrer directement que φ est valide, en appliquant des règles de preuve formellement définies. C est correct car φ si et seulement si = φ. 4. la résolution appliquée à la forme clausale de φ permet, en établissant une réfutation de φ par itération de la règle de coupure, de démontrer que φ est valide (sinon il n existe pas de réfutation). 5. la méthode DPLL sur laquelle se base la majorité des solveurs SAT permet de tester la satisfaisabilité d une formule φ, et donc sa validité si on l applique à φ. Question 2 (2pts) Le problème du Sudoku généralisé (résoudre une grille de taille n 2 n 2, où n est la dimension d un sous-carré) est NP-complet. Qu est-ce que cela signifie? Peut-on en déduire qu il n existe pas d algorithme en temps polynomial pour résoudre Sudoku généralisé? Solution La classe NP est la classe des problèmes de décision qui peuvent être résolus en temps polynomial par un algorithme non-déterministe. Un problème de décision P est NP-complet s il est dans la classe NP, et que toute instance d un autre problème P de la classe NP peut se réduire, en temps polynomial, à une instance du problème P. Il est conjecturé que la classe P des problèmes qui peuvent être résolus par un algorithme (déterministe) en temps polynomial est différente de NP, mais ce n est qu une conjecture pour l instante. On ne peut donc pas en déduire que Sudoku généralisé ne peut pas être résolu en temps polynomial. Question 3 (2pts) Qu est-ce qu un problème indécidable? Donner deux exemples (décrire vos problèmes, ne vous contenter pas simplement de donner leur nom). 1

Solution Un problème indécidable est un problème de décision tel qu il n existe aucun algorithme permettant de résoudre le problème. Par exemple, le problème de l arrêt d un programme est indécidable. C est-à-dire qu il n existe aucun algorithme qui prendrait le code d un programme A et une entrée x de ce programme, et retournerait oui si, et seulement si, le programme A s arrête sur l entrée x. D autres exemples de problèmes indécidables ont été vus en cours (le problème de décider si une formule de la logique du premier ordre est valide, par exemple). 2 Exercices (6 pts) Question 4 (3 pts) pas satisfaisable : Montrer à l aide de la résolution que l ensemble de clauses suivant n est {p q r s, p r s, q r, p s, p r, r} Solution : Question 5 (1pt) Solution : Question 6 (2pt) Solution : 1 p q r s prémisse 2 p r s prémisse 3 q r prémisse 4 p s prémisse 5 p r prémisse 6 r prémisse 7 p r, 5,6 8 s p, 4, 7 9 q r, 3, 6 10 p r s q, 1, 9 11 r s p, 7, 10 12 s r, 6, 11 13 s, 8, 12 Démontrer c > a a > 0 a := b+c ; c := a-b ; c > 0. 1 c > a a > 0 2 c > 0 Implication 3 b + c b > 0 Implication 4 a := b+c; 5 a b > 0 Assignation 6 c := a-b ; 7 c > 0 Assignation Démontrer x 0 while (x < 0){x := x + 1} x = 0. 1 x 0 On prend x 0 comme invariant 2 While (x < 0) { 3 x < 0 x 0 4 x + 1 0 Implication 5 x := x+1; 6 x 0 Assignation 7 } 8 x 0 (x < 0) WhilePar, 1 7 9 x = 0 Implication 2

3 Modélisation : Gestion de Paquets (8 points) Dans ce problème, il vous est demandé de justifier soigneusement vos réponses et d expliquer votre modélisation. Un paquet logiciel est un ensemble de fichiers contenant plusieurs données nécessaires à l installation, la désinstallation et au fonctionnement d un logiciel (code source, version, dépendances à d autres paquets etc.). Un gestionnaire de paquets est un logiciel permettant d installer, de désinstaller, et de mettre à jour des paquets logiciels installés sur un système informatique (par exemple, sur un système d exploitation Linux ou OSX). Une des difficultés d un gestionnaire de paquets est de gérer les problèmes de dépendances et de conflits entre paquets, ainsi que la multitude des versions disponibles pour chaque logiciel. Le nombre de paquets disponibles pour un système et le nombre de versions pouvant être très grands, résoudre les dépendances et les conflits posent des contraintes d efficacité importantes. Prenons un exemple. On veut installer le paquet a version 1, qui dépend du paquet c version 1, mais aussi du paquet b, version 1 ou 2. Pour installer le paquet c version 1, on a besoin du paquet d version 1 ou 2. Cependant, le paquet a est en conflit avec le paquet d version 2, on ne peut donc pas les installer en même temps. Le paquet b, version 1 ou 2, ne dépend d aucun autre paquet. Une solution est donc d installer le paquet d version 1, puis le paquet c version 1, le paquet b version 1, puis enfin le paquet a version 1. Chaque paquet contient l information de ses dépendances, et ses conflits. Dans notre exemple, on a donc : paquet: a(1) paquet: b(1) paquet: b(2) depend: b(1), b(2) depend: depend: c(1) conflits: conflits: conflits: d(2) paquet: c(1) paquet: d(1) paquet: d(2) depend: d(1), d(2) depend: depend: conflits: conflits: conflits: La première ligne indique le nom du paquet avec son numéro de version entre parenthèses, ensuite les dépendances, et enfin les conflits. Chaque ligne de dépendance se prend en conjonction et, au sein d une ligne, on prend les dépendances en disjonction. Par exemple, a(1) dépend du paquet b(1) ou du paquet b(2), ainsi que du paquet c(1). De manière mathématique, on se donne un ensemble de paquets P, et deux fonctions depend : P 2 2P et conflits : P 2 P. Soit p P un paquet. La donnée depend(p) est un ensemble d ensembles de paquets : si depend(p) = {dep 1,..., dep n }, où chaque dep i est un ensemble de paquets, cela signifie que pour installer p, on devra installer, pour chaque i {1,..., n}, au moins un paquet de dep i. Enfin, conflits(p) est l ensemble des paquets avec lesquels p est en conflit. Dans notre exemple, on a donc P = {a(1), b(1), b(2), c(1), d(1), d(2)} et les fonctions sont données par le tableau suivant : p P depend(p) conf lits(p) a(1) {{b(1), b(2)}, {c(1)}} {d(2)} b(1) b(2) c(1) {{d(1), d(2)}} d(1) d(2) Supposons qu on veuille installer un paquet p. Une solution pour p est un sous-ensemble de paquets Q P qu on devra installer, et qui respecte les contraintes suivantes : 3

1. p Q (on installe p) 2. pour tout paquet q Q, pour tout ensemble dep depend(q), on a dep Q. Autrement dit, pour tout dep depend(q), il existe au moins un paquet q dep tel que q Q (q sera donc installé) 3. pour tout paquet q Q et tout q conflits(q), q Q. Autrement dit, aucun paquet q conflits(q) ne sera installé. Question 7 (1 pt) Donner une solution pour a(1) (sous la forme d un ensemble) dans l exemple précédent, ainsi qu une solution pour f dans l exemple suivant : p P depend(p) conf lits(p) a {a } a {a} b {b } b {b} c {{a, b}} d {{a }} f {{c}, {d}} Solution Pour a(1) on prend Q = {a(1), b(1), c(1), d(1)}, ou Q = {a(1), b(2), c(1), d(1)}. Pour f on prend Q = {f, c, d, b, a }. Remarque Dans le dernier tableau, on a changé les notations pour les paquets (l ensemble P est {a, a, b, b, c, d}). Cela ne change rien au problème, car un paquet est simplement représenté par un nom, qui peut être quelconque, et accompagné, ou non, d un numéro de version. Question 8 (3pts) On vous demande maintenant de formuler le problème comme un problème SAT. Etant donnés un ensemble P de paquets, deux fonctions depend et conflits, et un paquet i P qu on veut installer, expliquer comment construire une formule φ de la logique propositionnelle (en forme normale conjonctive) tel que φ est satisfaisable si et seulement si il existe une solution pour i. Idée : utiliser P comme ensemble de propositions. Solution : On prend P comme ensemble de propositions. Il faut installer i, donc on ajoute la contrainte φ 1 i. Pour tout paquet installé, il faut installer ses dépendances, ce qu on représente par la formule φ 2 (p p ) p P dep depend(p) p dep Enfin, si un paquet p est installé, on ne peut pas installer un paquet qui serait en conflit avec p, ce qu on représente par la formule : φ 3 (p p ) p P p conflits(p) La formule finale est alors φ φ 1 φ 2 φ 3, ce qui donne, en forme normale conjonctive : i ( p p ) ( p p ) p P dep depend(p) p dep p P p conflits(p) Le problème MAX-SAT-PARTIEL consiste, étant donnés deux ensembles de clauses A et M, à trouver une interprétation V des propositions qui va satisfaire toutes les clauses de A, et un maximum de clauses de M. Par exemple, pour les ensembles de clauses A = { a c, c} et M = {a b, a, b a}, on ne peut pas satisfaire toutes les clauses de A M, mais en prenant V (a) = V (b) = V (c) = 0, on satisfait toutes les clauses de A et 2 clauses de M. 4

Question 9 (2 pts) Etant donnés un ensemble P de paquets, deux fonctions depend et conf lits, et un paquet i P qu on veut installer, on voudrait trouver une solution pour i qui minimise le nombre de paquets à installer. Réduire ce problème en une instance du problème MAX-SAT- PARTIEL (utiliser votre réponse à la question précédente). Solution Il suffit de prendre A l ensemble de clauses obtenues précédemment, et M = { p p P, p i}. On va donc bien essayer de maximiser le nombre de paquets non installés, donc minimiser le nombre de paquets installés. Le problème MAX-POIDS-SAT-PARTIEL consiste, étant donnés deux ensembles de clauses A et M, et une fonction poids : M Z, à trouver une interprétation V des propositions qui va satisfaire toutes les clauses de A, et maximiser la somme des poids des clauses satisfaites de M. Par exemple, pour les ensembles de clauses A = { a c, c} et M = {a b, a, b a}, avec la fonction poids(a b) = 5, poids( a) = 1 et poids( b a) = 3, en prenant V (a) = V (c) = 0 et V (b) = 1, on satisfait toutes les clauses de A et la clause a b de M, de poids 5. C est le maximum qu on puisse obtenir. En effet, l interprétation V (a) = V (b) = V (c) = 0 satisfait les deux clauses a et b a de M, de somme totale 4. Question 10 (2 pts) Etant donnés un ensemble P de paquets, deux fonctions depend et conflits, et un paquet i P qu on veut installer, et une fonction taille : P N qui donne, pour chaque paquet p P, la taille de ce paquet (en Mo), on voudrait trouver une solution pour i qui minimise la taille totale des paquets à télécharger. Réduire ce problème en une instance du problème MAX-POIDS-SAT-PARTIEL (inspirez-vous de votre réponse à la question précédente). Solution A et M sont les ensembles de clauses obtenus à la question précédente, et on fixe, pour les clauses de M, poids( p) = taille(p). Ainsi, en maximisant la somme des tailles des paquets non installés, on minimise la somme des tailles des paquets installés. Une autre solution consistait à prendre M = P (l ensemble de tous les paquets), et de prendre la fonction poids(p) = taille(p). Ainsi, en maximisant l inverse de la somme des tailles des paquets installés (on veut se rapprocher le plus possible de 0), on minimise la somme des tailles des paquets installés. Question 11 (Bonus 3pts) Etant donné un ensemble de clauses A, expliquer comment transformer (en temps polynomial), cet ensemble de clauses en une instance (P, depend, conf lits, i) où i P est le paquet à installer, tel qu il existe une solution pour i si et seulement si A est satisfaisable. En déduire que le problème d installation d un paquet est NP-dur. Solution Chaque proposition x est encodée sous deux versions x 0 et x 1, selon qu elle sera mise à 0 ou 1. Pour empêcher qu une variable soit à 0 et à 1 en même temps, on met les conflits conflits(x 0 ) = {x 1 } et conflits(x 1 ) = {x 0 }. Il n y a pas de dépendances pour les variables. Chaque clause c A est codée par un paquet c, sans conflit, avec les dépendances suivantes : si le littéral x apparaît dans c, on ajoute la dépendance de c à x 1. Si le littéral x apparaît dans c, on ajoute la dépendance de c à x 0. Par exemple, si c = x y z, on a depend(c) = {{x 1, y 0, z 1 }}. Enfin, l ensemble de clause est codé par un paquet f, avec les dépendances suivante : depend(f) = {{c 1 },..., {c n }} où les c i sont les clauses de A. Le paquet final à installer est f. On a réduit le problème SAT, en temps polynomial, au problème d installation d un paquet. Comme SAT est NP-dur, cela implique que le problème d installation d un paquet est NP-dur aussi. 5

4 Formulaire : Règles Pour la Preuve Partielle de Programmes φ C 1 η η C 2 ψ φ C 1 ; C 2 ψ Composition ψ[e/x] x := E ψ Assignation φ B C 1 ψ φ B C 2 ψ φ if B {C 1 } else {C 2 } ψ Si Alors φ = φ φ C ψ ψ = ψ φ C ψ Implication ψ B C ψ ψ while B {C} ψ B W hilep ar 6