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

Documents pareils