Solutions
Transcription
Solutions
Partiel INF242, 2010-2011 Stéphane Devismes Pascal Lafourcade Mardi 23 mars 2010 Total : 120 points Durée : 2h00 Documents autorisés : une feuille recto verso de notes manuscrites format A4. Le barème est indicatif, les points correspondent au nombre de minutes nécessaires pour réaliser les exercices. Exercice 1 (Formalisation et résolution (20 points)) Considérons le syllogisme suivant : Plus il y a de gruyère, plus il y a de trous. Plus il y a de trous, moins il y a de gruyère. Donc plus il y a de gruyère, moins il y a de gruyère. – (5 points) Formaliser ce raisonnement en logique propositionnelle. – (10 points) Montrer que ce raisonnement est correct par résolution. – (5 points) Proposer une nouvelle hypothèse afin de rendre le raisonnement contradictoire et le prouver. Réponse: – Nous utilisons les notations suivantes : – pg pour : plus il y a de gruyère – pt pour : plus il y a de trous – mg pour : moins il y a de gruyère – Les trois phrases se traduissent par : – Hypothèse 1 : pg ⇒ pt – Hypothèse 2 : pt ⇒ mg – Conclusion : pg ⇒ mg – Solution par résolution : – Hypothèse 1 : pg ⇒ pt donne H1 : ¬pg ∨ pt – Hypothèse 2 : pt ⇒ mg donne H2 :¬pt ∨ mg – Conclusion : pg ⇒ mg donne ¬pg ∨ mg la négation de la résolution donne C1 :pg et C2 :¬mg. Par résolution entre C2 et H2 nous obtenons ¬pt, puis par résolution avec H1 nous obntenons ¬pg et avec C1 nous obtenons la clause vide. – Autre Solution : Par transitivité de l’implication nous déduisons imméditement la conclusion à partir des hypothèse. – Si on rajoute l’hypothèse suivante pg ⇔ ¬mg, nous obtenons une contradiction. Exercice 2 (Formalisation et simplification : 20 points) Nous considérons l’île des pires et des purs, sachant que les pures disent toujours la vérité et que les pires mentent toujours. Soit les phrases suivantes : – Alice dit en présence de Bob : « L’un de nous au moins est un pire ». – Charlie dit en présence de David : « L’un de nous deux au plus est un pire ». – Eve dit en présence de Franck : « Nous sommes tous les deux de la même tribu ». – Pierre dit : « Je suis un pire ». Nous rappelons le formalisme suivant : – Un habitant x pure sera noté x et pire par ¬x. – Un habitant x déclare une phrase P se modélise par x ⇔ P . Questions : – (5 points) Formaliser la phrase d’Alice et mettre en fnd la formule obtenue. Que pouvez-vous déduire de la phrase d’Alice ? 1 – (5 points) Formaliser la phrase de Charlie et mettre en fnc la formule obtenue. Que pouvez-vous déduire de la phrase de Charlie ? – (5 points) Formaliser la phrase de Eve et simplifier la formule obtenue. Que pouvez-vous déduire de la phrase de Eve ? – (5 points) Formaliser la phrase d’Pierre et simplifier la formule obtenue. Que pouvez-vous déduire de la phrase Pierre ? Réponse: – Proposer un formalisme modélisant les dires de ces habitants. – Un habitant x pure sera noté x et pire par ¬x. – Un habitant x déclare une phrase P se modélise par x ⇔ P . – Alice en présence de Bob dit : « L’un de nous au moins est un pire ». Cette phrase se traduit par : a ⇔ ¬a ∨ ¬b. Après simplification nous obtenons a ∧ ¬b, donc Alice est pure et Bob est pire. – Charlie dit en présence de David : « L’un de nous deux au plus est un pire ». Cette phrase se traduit par : c ⇔ c ∨ d. Après simplification nous obtenons d ⇒ c, nous en déduisons uniquement que si David est un pure, alors Charlie est un pure aussi. – Eve dit en présence de Franck : « Nous sommes tous les deux de la même tribu ». Cette phrase se traduit par : e ⇔ (e ⇔ f ) En utilisant l’associativité de la relation d’équivalence nous obtenons f , donc Franck est un pure. – Pierre dit : « Je suis un pire ». Cette phrase se traduit par : p ⇔ ¬p. Cette formule n’a pas de modèle, c’est une contradiction donc ni un pure ni un pure ne peut dire cette phrase. Exercice 3 (Exercice du Poly : Stratégie complète (20 points)) Soit les clauses suivantes p + q, p̄ + s, s̄ + t, t̄, q̄ + r, r̄, r̄ + p + t, q + z + z̄, q̄ + r + s Appliquer l’algorithme de la stratégie complète sur cet ensemble de clauses et conclure si cet ensemble est satisfaisable ou non. (Indication environs -1 point pour chaque erreur). Réponse: i 0 Θi ∅ 1 ∆i p + q, p̄ + s, s̄ + t, t̄, q̄ + r, r̄ q + s, p + r, p̄ + t, s̄, q̄ 2 3 4 s, q, r + t, p, p̄ ⊥ ∅ s̄, q̄, t̄, r̄ ∅ ⊥ p + q, p̄ + s, t̄, r̄ ∆ i ∪ Θi p + q, p̄ + s, s̄ + t, t̄, q̄ + r, r̄ q + s, p + r, p̄ + t, s̄, q̄, p + q, p̄ + s, t̄, r̄ s, q, r + t, p, p̄, s̄, q̄, t̄, r̄ ⊥ Rés de ∆i & ∆i ∪ Θi q + s, p + r, p̄ + t, s̄, q̄ s, q, r + t, r + s p, p̄, t + q ⊥, t̄, r̄ ∅ Nous concluons donc que l’ensemble de clauses est insatisfiable. Exercice 4 (Déduction naturelle (35 points)) Prouver les formules suivantes en utilisant la déduction naturelle sous forme de tableau : – (10 points) (p ⇒⊥) ∧ (¬p ∧ q ⇒⊥) ⇒ ¬q – (10 points) ((p ∧ q) ∧ (p ∧ r)) ∧ ¬p ⇒ q ∨ r – (15 points *) (p ⇒⊥) ∨ (p ∧ q ⇒⊥) ⇒ ¬q ∨ ¬p Réponse: 1 2 3 4 assume (p => F) & (-p & q => F). assume q. p => F. -p & q => F. &E1 1 &E2 1 2 5 6 7 8 -p & q. F. therefore -q. therefore (p => F) & (-p & q => F) => -q. &I 3,2 =>E 4,5 =>I 2,6 =>I 1,7 1 2 3 4 5 6 7 8 assume p & q & (p & r) & -p. p & q & (p & r). -p. p & r. p. F. q + r. therefore p & q & (p & r) & -p => q + r. &E1 &E2 &E2 &E1 =>E Efq =>I sup p=>F + (p&q=>F) sup p=>F -q + -q donc (p=>F) => -q + -p sup (p&q=>F) sup -(-q+-p) sup -p -q+-p F donc --p p sup -q -q+-p F donc --q q p&q F donc --(-q+-p) -q+-p donc (p&q=>F) => -q+-p -q+-p donc p=>F + (p&q=>F) => -q+-p 3 1 1 2 4 3,5 6 1,7 contexte 1 1,2 1,2,3y 1,2,3 1,2,3 1,2,3 1,2 1,2 1,2 1 1 1,12 1,12,13 1,12,13,14 1,12,13,14 1,12,13,14 1,12,13 1,12,13 1,12 1,12 1 1,22 1 1 numéro 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 ligne supposons (a ⇒ b) ⇒ a supposons ¬(¬(a ⇒ b) ∨ a) supposons a ⇒ b a ¬(a ⇒ b) ∨ a ⊥ donc ¬(a ⇒ b) ¬(a ⇒ b) ∨ a ⊥ donc ¬¬(¬(a ⇒ b) ∨ a) ¬(a ⇒ b) ∨ a supposons ¬(a ⇒ b) supposons ¬a supposons a ⊥ b donc a ⇒ b ⊥ donc ¬¬a a donc ¬(a ⇒ b) ⇒ a supposons a donc a ⇒ a a donc ((a ⇒ b) ⇒ a) ⇒ a règle ⇒E 1,3 ∨ I2 4 ⇒E 2,5 ⇒I 3,6 ∨ I1 7 ⇒E 2,8 ⇒I 2,9 Raa 10 ⇒E 13,14 Efq 15 ⇒I 14,16 ⇒E 12,17 ⇒I 13,18 Raa 19 ⇒I 12,20 ⇒ I 22,22 ∨ E 11,21,23 ⇒I 1,24 Exercice 5 (Raisonnement (25 points + 5 points bonus)) Prouver par récurrence que la fonction Algo(Γ) renvoie vraie si et seulement si Γ est un ensemble de clauses satisfaisable. bool fonction Algo( Γ : ensemble de clauses) 1 Si ⊥ ∈ Γ, retourner(faux). 2 Si Γ = ∅, retourner (vrai). 3 Soit x une variable quelconque de Γ 4 retourner (Algo(Γ[x := 0]) ou alors Algo(Γ[x := 1])) Figure 1 – Algorithme de résolution. Dans cette preuve, vous pourrez utiliser le résultat de cours suivant : Propriété 1 Soient Γ un ensemble de clauses et L un littéral. Γ a un modèle si et seulement si Γ[L := 1] ou Γ[L := 0] a un modèle. Question bonus (5 points) : – Combien y a-t-il d’appels récursifs de la fonction Algo dans le pire des cas ? Réponse: 5 points : Récurrence sur le nombre de variables n dans Γ. 5 points : Cas de base : n = 0. Dans ce cas, soit Γ contient la clauses vide (⊥), soit Γ = ∅. – Supposons que Γ contient la clause vide, dans ce cas, Algo(Γ) renvoie faux d’après la ligne 1 et comme Γ est une contradiction, le résultat est vérifié. 4 – Supposons que Γ = ∅, dans ce cas Algo(Γ) renvoie vrai d’après la ligne 2 et comme Γ est une tautologie, le résultat est vérifié. 5 points : Hypothèse de récurrence : Supposons pour tout ensemble de clauses Γi contenant i variables avec 0 ≤ i < k, Algo(Γi ) renvoie vraie si et seulement si Γi est un ensemble de clauses satisfaisable. 10 points : Pas de récurrence : Soit Γk un ensemble de clauses contenant k variables. Tout d’abord, puisque k > 0, Γk 6= ∅. Ensuite, deux cas sont possibles : – Supposons que Γk contient la clause vide, dans ce cas Algo(Γ) renvoie faux d’après la ligne 1 et comme Γk est une contradiction, le résultat est vérifié. – Supposons que Γk ne contient pas la clause vide. Dans ce cas, puisque Γk 6= ∅, les lignes 3 et 4 sont exécutées et deux cas sont possible : – Algo(Γk [x := 0]) renvoie vrai. Comme Γk [x := 0] contient une variable de moins que Γk , par hypothèse de récurrence, Γk [x := 0] est satisfiable et, d’après la propriété 1, Γk est satisfiable. Or dans ce cas, Algo(Γ) renvoie aussi vraie. D’où, le résultat est vérifié dans ce cas. – Algo(Γk [x := 0]) renvoie faux. Dans ce cas, Algo(Γ) renvoie la même valeur que Algo(Γk [x := 1]). Si Algo(Γk [x := 1]) renvoie vraie, alors, par hypothèse de récurrence, Γk [x := 1] est satisfiable, d’après la propriété 1, Γk est satisfiable et Algo(Γ) renvoie aussi vraie. Si Algo(Γk [x := 1]) renvoie faux, alors, par hypothèse de récurrence, Γk [x := 1] est insatisfiable et puisque Algo(Γk [x := 0]) renvoie faux aussi, Γk [x := 0] est aussi insatisfiable par hypothèse de récurrence. D’après, la propriété 1, Γk est insatisfiable et comme Algo(Γ) renvoie faux, la récurrence est aussi vérifiée dans ce cas. Question bonus : – Combien y a-t-il d’appels récursifs de la fonction Algo dans le pire des cas ? 2x + 1 pour x variables. 5