• Aucun résultat trouvé

Les conseils du jury

N/A
N/A
Protected

Academic year: 2021

Partager "Les conseils du jury"

Copied!
4
0
0

Texte intégral

(1)

c Éditions H&K Publié dans lesAnnales des Concours 1/16

Mines Informatique MP 2010 — Corrigé

Ce corrigé est proposé par Benjamin Monmege (ENS Cachan), il a été relu par Vincent Danjean (Enseignant-chercheur en école d’ingénieur) et Guillaume Batog (ENS Cachan).

Ce sujet d’informatique consiste en un unique problème abordant des questions de logique propositionnelle. Il se déroule en quatre parties.

• La première partie, très générale, débute par l’étude classique d’un exemple de modélisation d’une situation de la vie courante via une formule de logique propositionnelle, qui est ensuite résolue. Le sujet introduit alors le problème 3-SAT et familiarise le candidat avec cette nouvelle notion.

• La deuxième partie propose d’implémenter une méthode exacte de résolution du problème de satisfiabilité d’une formule logique.

• La troisième partie aborde le problème MAX-SAT et propose de programmer une heuristique permettant de calculer une solution approchée.

• Finalement, la quatrième partie propose l’étude d’un cas particulier dans lequel il existe un algorithme beaucoup plus simple pour résoudre la satisfiabilité.

Une bonne connaissance du programme de logique propositionnelle est nécessaire pour aborder ce sujet convenablement. En outre, les fonctions et procédures attendues demandent de bien savoir manipuler les structures impératives (tableaux, boucles).

Tout au long du sujet, de nombreuses questions abordent la complexité algorithmique des programmes écrits : il faut donc également savoir compter les boucles et évaluer la quantité d’opérations élémentaires dans une boucle.

Les conseils du jury

Malgré un bon niveau dans l’ensemble, le rapport du jury mentionne deux erreurs récurrentes au niveau des questions de programmation. Tout d’abord,

« beaucoup de candidats omettent l’indentation de leurs programmes ; cela a pour conséquence de rendre la lecture de ces programmes difficile ». Ensuite, le jury constate « une utilisation abusive des exceptions et de la construction try». Dans les sujets de concours, il est souvent inutile, et toujours à évi- ter, de faire usage d’exceptions : préférez-y les constructions récursives ou les bouclesforetwhile.

Téléchargé gratuitement surwww.Doc-Solus.fr.

(2)

c Éditions H&K Publié dans lesAnnales des Concours 2/16

Indications

Partie I

1 Il peut être plus facile d’exprimer dans un premier temps les propositions c) et d) à l’aide de l’opérateur d’implication =⇒, puis de trouver une formule équivalente sous forme normale conjonctive.

2, 3 Utiliser une table de vérité pour trouver l’ensemble des solutions.

4 Remarquer qu’il y a exactement 8 valuations sur un ensemble à 3 variables : pour chaque valuation, construire une clause qui s’évalue à 0 sur celle-ci.

5 Décrire, puis compter l’ensemble des valuations qui assignent la valeur 0 à la clauseC.

6 Inverser l’ordre de sommation et majorer P

Cclause deF

P

val∈V

ϕ(C, val).

7 Remarquer que si F est une formule non satisfiable, alorsmax(F) 6m−1 et utiliser le résultat de la question 6.

Partie II

8 Il peut être utile d’écrire une fonction auxiliaire qui prend en entrée une clauseC, une valuationvalet l’indiceide l’un des littéraux deC, et renvoie un booléen exprimant si la valeur donnée parval de ce littéral est 0 ou 1.

9 Calculer la complexité de satisfait_formule en fonction de la somme des longueurs des clauses de la formule.

12 On pourra définir une suite (uk(F, val))06k6n qui compte le nombre d’opéra- tions élémentaires exécutées lors de l’appel àresoudre_rec F val (n-k).

Partie III

15 L’ordre des littéraux dans chaque clause n’a aucune importance.

16 L’ordre des clauses dans une formule n’a, ici encore, aucune importance.

17 Initialiser un tableau pour contenir les valeursdiff(F, α), puis le mettre à jour lors du parcours de toutes les clauses deF. On utilisera un entier, qu’on pourra noterMIN_INT, inférieur à toute valeur réelle apparaissant dansdiff(F, α), pour signifier qu’un littéralαn’apparaît pas dans la formuleF.

18 La fonctionsimplifierdoit parcourir l’ensemble des littéraux d’une formule, c’est-à-dire les cases significatives du tableau à double entrée qui représente cette formule. Réfléchir à l’utilisation d’une boucleforouwhileétant donnée l’utilisation des fonctionssupprimer_clauseet supprimer_litteral.

Partie IV 20.a Raisonner par double implication.

20.b ConsidérerF= (ℓ1∨ℓ2∨. . .∨ℓk∨ℓk+1∨ℓk+2∨. . .∨ℓk+h)∧G.

22 Démontrer le résultat par récurrence sur le nombre de variables qui apparaissent en même temps que leur complémenté dans la formuleF.

23 Appliquer le principe de récurrence mis en œuvre pour répondre à la question 22 afin d’en déduire une fonction récursive, puis utiliser les réductions définies dans les questions 20.a et 20.b.

Téléchargé gratuitement surwww.Doc-Solus.fr.

(3)

c Éditions H&K Publié dans lesAnnales des Concours 3/16

Pour définir la logique propositionnelle, on introduit traditionnellement deux notions : la syntaxe et la sémantique. La première décrit l’ensemble des règles d’écriture pour construire une formule. La seconde donne une significa- tion à une formule, c’est-à-dire renvoie une valeur booléenne étant donnée une valuation des variables de la formule. Il est à noter que le sujet est légèrement flou sur cette distinction entre syntaxe et sémantique.

Un théorème fondamental en logique propositionnelle est l’existence de formes normales. Par exemple, on peut définir unfragment F constitué de l’ensemble des formules sous la forme C1∧ · · · ∧Cm où, pour j ∈ [[ 1 ; m]], la formule Cj s’écrit (x1 ∨ · · · ∨xp ∨ ¬xp+1∨ · · · ∨ ¬xq), avec x1, . . . , xq

des variables. On démontre alors que pour toute formule F de la logique propositionnelle, il existe une formule G ∈ F équivalente à F, c’est-à-dire prenant la même valeur pour toutes les valuations possibles. On dit que G est mise en forme normale conjonctive. Le sujet considère uniquement les formules du fragmentF.

I. Introduction

1 La proposition a), exprimant qu’au moins une des personnes X, Y et Z porte un chapeau, s’énonce grâce la formuleFa =x∨y∨z: il s’agit d’une unique clause (disjonction de littéraux). De même, la proposition b) s’exprime parFb=x∨y∨z.

Les propositions c) et d) s’expriment comme des implications α=⇒ β: comme les formules doivent être exprimées en forme normale conjonctive, on remarque que l’implication précédente est équivalente àα∨β.

Ainsi, la proposition c), qu’on peut exprimer avec une implication logique sous la formex=⇒(y∧z), ou de manière équivalentex∨(y∧z), est décrite par la formule Fc = (x∨y)∧(x∨z)par distributivité de la disjonction sur la conjonction. De la même manière, la proposition d) peut être décrite par la formuleFd=y∨x∨z.

Fa=x∨y∨z Fb=x∨y∨z Fc = (x∨y)∧(x∨z) Fd=x∨y∨z 2 On traduit par une conjonction logique le fait que les quatre propositions précé- dentes doivent être satisfaites simultanément, c’est-à-dire par la formule suivante :

F = (x∨y∨z)∧(x∨y∨z)∧(x∨y)∧(x∨z)∧(x∨y∨z)

Pour décider si cette formule est satisfiable ou pas, on construit sa table de vérité : x y z x∨y∨z x∨y∨z x∨y x∨z x∨y∨z F

0 0 0 0 1 1 1 1 0

0 0 1 1 1 1 1 1 1

0 1 0 1 1 1 1 0 0

0 1 1 1 1 1 1 1 1

1 0 0 1 1 1 1 1 1

1 0 1 1 1 1 0 1 0

1 1 0 1 1 0 1 1 0

1 1 1 1 0 0 0 1 0

La formule F est satisfiable et l’ensemble de ses solutions est (x= 0, y= 0, z= 1),(x= 0, y= 1, z= 1)et(x= 1, y= 0, z= 0).

Téléchargé gratuitement surwww.Doc-Solus.fr.

(4)

c Éditions H&K Publié dans lesAnnales des Concours 4/16

On aurait pu commencer par réécrire la formuleFen une formule plus simple et équivalente. En factorisant d’une part la formule x∨z, on obtient que la formule (x∨y∨z)∧(x∨y∨z)est équivalente à (x∨z)∨(y∧y), puis àx∨zpuisquey∧yest une formule valant0sur tout valuation. D’autre part, on remarque que les deux formules(x∨y∨z)∧(x∨y)∧(x∨z)et(x∨y)∧(x∨z) sont équivalentes en raisonnant sur les valuations de(x∨y)∧(x∨z). Ainsi, la formule Fest équivalente àF = (x∨z)∧(x∨y)∧(x∨z), pour laquelle on peut construire une table de vérité plus simple que la précédente.

3 Construisons à nouveau la table de vérité de la formule F1. Pour simplifier, on numérote les clauses de la formuleF1de gauche à droite du numéro 1 au numéro 7.

x y z t C1 C2 C3 C4 C5 C6 C7 F1

0 0 0 0 0 1 1 1 1 1 1 0

0 0 0 1 0 1 1 0 1 1 1 0

0 0 1 0 1 1 1 1 1 1 1 1

0 0 1 1 1 1 1 0 1 1 1 0

0 1 0 0 1 1 1 1 1 1 0 0

0 1 0 1 1 1 1 1 1 1 0 0

0 1 1 0 1 1 0 1 1 1 1 0

0 1 1 1 1 1 0 1 1 1 1 0

1 0 0 0 1 1 1 1 1 0 1 0

1 0 0 1 1 0 1 1 1 1 1 0

1 0 1 0 1 1 1 1 1 0 1 0

1 0 1 1 1 1 1 1 0 1 1 0

1 1 0 0 1 1 1 1 1 0 1 0

1 1 0 1 1 0 1 1 1 1 1 0

1 1 1 0 1 1 1 1 1 0 1 0

1 1 1 1 1 1 1 1 0 1 1 0

F1 est satisfiable et possède pour une unique solution(x= 0, y= 0, z= 1, t= 0).

4 On définit la formuleF2 par

F2 = (x∨y∨z)∧(x∨y∨z)∧(x∨y∨z)∧(x∨y∨z)∧ (x∨y∨z)∧(x∨y∨z)∧(x∨y∨z)∧(x∨y∨z)

Par définition,F2est une instance de 3-SAT possédant exactement 8 clauses. Elle est non satisfiable puisque pour les 8 valuations possibles sur les variables {x, y, z}, au moins une des 8 formules est invalidée : en effet, siv est une valuation, la clause Cvx∨αy∨αztelle queαxvautxsiv(x) = 0 etxsinon (de même pouryet z), s’évalue en 0 surv, et fait partie des clauses deF2.

Puisque la formule F2 est non satisfiable, on sait que max(F2) est strictement inférieur à 8. Par ailleurs, la valuationv donnée par (x= 0, y = 0, z = 0) satisfait l’ensemble des clauses deF2 privé de la clausex∨y∨z. Ainsi,

max(F2) = 7

5 La clause C possède trois littéraux αx, αy et αz, respectivement sur les trois variables (distinctes) x, y et z. Observons que n > 3, sinon la seule instance F de 3-SAT est la formule vide. SoitVC l’ensemble des valuations val ∈ V falsifiant

Téléchargé gratuitement surwww.Doc-Solus.fr.

Références

Documents relatifs

[r]

Par la méthode des moindres carrés, à l’aide de la calaulatrice et à l’unité près on obtient l’équation : y = 140x + 4873.. Pour tracer la droite il suffit de

Exprimer, en fonction de x , le volume que peuvent occuper les bonbons dans la boîte.. Dans la pratique, x est compris entre 0,5

Soit f et g deux fonctions l'une croissante et l'autre décroissante sur l'intervalle [-3

Soit f et g deux fonctions l'une croissante et l'autre décroissante sur l'intervalle [-3

[r]

[r]

La distance d'arrêt d’une voiture est la distance parcourue entre le moment où le conducteur voit un obstacle et l’arrêt du véhicule : celle-ci se décompose en