• Aucun résultat trouvé

Notions de logique Judicaël Courant Lycée La Martinière-Monplaisir 12 septembre 2015

N/A
N/A
Protected

Academic year: 2022

Partager "Notions de logique Judicaël Courant Lycée La Martinière-Monplaisir 12 septembre 2015"

Copied!
77
0
0

Texte intégral

(1)

Judicaël Courant Lycée La Martinière-Monplaisir

12 septembre 2015

(2)

1 Introduction

1.1 Manipulation de termes et formules

xyz+ 3x−7y+z≥12⇒(x+y)(z−2y)≥42

NB : on manipulera des formules sans quantificateurs.

(3)

1.2 Syntaxe : concrète ou abstraite ?

Quand on étudie une formule, on peut parler de

sa syntaxe concrète : la chaîne de caractères qui permet de l’écrire ; sa syntaxe abstraite : une description arborescente de cette formule.

C’est le second point qui nous intéresse.

(4)

1.3 Syntaxe abstraite

La syntaxe concrète peut (ici) être décrite par unegrammaire abstraite: hformulei : := hformule atomiquei

| hformulei‘∧’hformulei

| hformulei‘∨’hformulei

| hformulei‘⇒’hformulei

| hformulei‘⇐⇒’hformulei

| ‘¬’hformulei

| ‘⊥’

| ‘>’

(5)

hformule atomiquei : := htermei‘=’htermei

| htermei‘<’htermei

| htermei‘≤’htermei

| htermei‘>’htermei

| htermei‘≥’htermei htermei : := hvariablei

| htermei‘+’htermei

| htermei‘−’htermei

| htermei‘×’htermei

| htermei‘/’htermei

(6)

NB : Cette grammaire ne précise rien

— ni sur le sens d’une formule ou d’un terme ;

— ni même sur la façon de lever les ambiguïtés lorsqu’on lit une formule ou un terme écrit de façon concrète (par exemple :a+ b×cest-il un arbre de racine×ou+?).

Elle sert à représenter uniquement ce qui se passe sur les arbres.

(7)

Ces arbres se modélisent naturellement par un type Caml : type terme =

| Variable of string

| Constante of int

| Plus of terme∗terme

| Moins of terme∗terme

| Mult of terme∗terme

| Div of terme∗terme

; ;

(8)

type formule_atomique =

| InfStr of terme∗terme

| Inf of terme∗terme

| SupStr of terme∗terme

| Sup of terme∗terme

; ;

(9)

type formule =

| Atome of formule_atomique

| Conj of formule∗formule

| Disj of formule∗formule

| Impl of formule∗formule

| Equiv of formule∗formule

| Neg of formule

| Faux

| Vrai

; ;

(10)

1.4 Sémantique

1.5 Sémantique des termes Sémantique : sens, valeur.

On vainterpréter les termes comme des représentations de nombres flottants pour leur donner unevaleur. Ici l’ensemble des valeurs pour les termes sera l’ensemble des réels.

Étant donné un termet, on veut définir précisément sa sémantique.

Problème : quelle valeur donner aux variables ?

L’interprétation d’un terme doit dépendre d’unenvironnement.

(11)

Définition 1(Environnement). On appelleenvironnementtoute fonc- tionρdéfinie sur une partieV de l’ensemble des variables et associant à toutxV unevaleurρ(x).

Étant donné un environnementρet un termeton notera[[t]]ρla valeur detdans l’environnementρ.

(12)

On définit alors la sémantique des termes par induction sur leur syntaxe abstraite de la façon suivante :

[[x]]ρ=ρ(x) pour toute variablex

[[t1+t2]]ρ= [[t1]]ρ+ [[t2]]ρ [[t1t2]]ρ = [[t1]]ρ[[t2]]ρ

[[t1×t2]]ρ= [[t1]]ρ×[[t2]]ρ [[t1/t2]]ρ =[[t1]]ρ

[[t2]]ρ

Question : le+danst1+t2 représente : A l’addition sur les flottants (+.en Caml) B l’addition sur les termes (Plusen Caml)

(13)

L’implantation est assez directe. On s’intéressera ici uniquement à des environnements définis sur un ensemble fini de variables, et on représentera par la liste[(x0, v0);. . .; (xn−1;vn−1)]la fonction qui pour touti∈[[0, n[[ associevi àxi.

type var == string; ;

type ’a env == (var ∗ ’a) list; ;

(14)

l e t rec eval_t e t = match t with

| Variable x −> assoc x e

| Constante n −> float_of_int n

| Plus(t1, t2) −>

l e t v1 = eval_t e t1 and v2 = eval_t e t2 in v1 +. v2

| Moins(t1, t2) −>

l e t v1 = eval_t e t1 and v2 = eval_t e t2 in v1 −. v2

| Mult(t1, t2) −>

l e t v1 = eval_t e t1 and v2 = eval_t e t2 in v1 ∗. v2

(15)

| Div(t1, t2) −>

l e t v1 = eval_t e t1 and v2 = eval_t e t2 in v1 / . v2

; ;

(16)

1.6 Sémantique des formules

On veut étendre cette interprétation aux formules.

La valeur d’une formule est alors unevaleur de vérité: vrai (V) ou faux (F).

(17)

[[Egal(t1,t2)]]ρ=V si[[t1]]ρ= [[t2]]ρ

=F sinon

[[Inf(t1,t2)]]ρ=V si[[t1]]ρ≤[[t2]]ρ

=F sinon

...

(18)

[[Conj(A1,A2)]]ρ=V si[[A1]]ρ= [[A2]]ρ=V

=F sinon

[[Disj(A1,A2)]]ρ=F si[[A1]]ρ= [[A2]]ρ=F

=V sinon

[[Impl(A1,A2)]]ρ=F si[[A1]]ρ=V et[[A2]]ρ=F

=V sinon

(19)

[[Equiv(A1,A2)]]ρ=V si[[A1]]ρ= [[A2]]ρ

=F sinon

[[Neg(A)]]ρ=V si[[A]]ρ=F

=F si[[A]]ρ=V

[[⊥]]ρ=F [[>]]ρ=V

(20)

1.7 Implantation

l e t rec eval_fa e fa = match fa with

| Egal(t1, t2) −>

l e t v1 = eval_t e t1 and v2 = eval_t e t2 in v1 = v2

| InfStr(t1, t2) −>

l e t v1 = eval_t e t1 and v2 = eval_t e t2 in v1 < v2

. . .

; ;

(21)

l e t rec eval_f e f = match f with

| Atome fa −> eval_fa e fa

| Conj(f1, f2) −> eval_f e f1 && eval_f e f2

| Disj(f1, f2) −> eval_f e f1 || eval_f e f2

| Impl(f1, f2) −> not (eval_f e f1) || eval_f e f2

| Equiv(f1, f2) −> eval_f e f1 = eval_f e f2

| Neg(f1) −> not (eval_f e f1)

| Faux −> false

| Vrai −> true

; ;

(22)

1.8 Remarques

D’autres sémantiques sont possibles. Pour les termes on peut par exemple donner des sémantiques à valeur :

— dans les entiers ;

— dansZ/nZ.

Pour les formules, on peut définir une sémantique à valeurs :

— dans un ensemble à trois valeurs (vrai/faux/indéfini)1

— dans l’ensemble des ouverts d’un espace topologique (modèles de la logique intuitionniste)

1. Séduisant pour faire de «l’intelligence artificielle» mais ne tient pas ses promesses.

(23)

1.9 Problèmes

Définition 2. On dit qu’un environnementρ satisfaitune formuleAsi [[A]]ρ=V.

On dit qu’une formuleA estsatisfiable(ousatisfaisable) s’il existe un environnementρqui satisfaitA.

On dit qu’une formule est une tautologie si dans tout environnement donnant une définition à chaque variable deA, son interprétation vaut V.

(24)

Comment tester qu’une formule est satisfiable ? est une tautologie ?

Pour répondre à cette question, on va se placer dans un cadre plus simple. . .

(25)

2 Logique propositionnelle

2.1 Définition

Étant donné un ensemble (au plus dénombrable)Vde variables proposi- tionnelles, l’ensembleF des formules de la logique propositionnelle est l’ensemble de formules engendré par la grammaire abstraite suivante :

(26)

hformulei : := hformule atomiquei

| hformulei‘∧’hformulei

| hformulei‘∨’hformulei

| hformulei‘⇒’hformulei

| hformulei‘⇐⇒’hformulei

| ‘¬’hformulei

| ‘⊥’

| ‘>’

hformule atomiquei : := hvariable propositionnellei

(27)

Définition 3. Lesatomesde la logique propositionnelle sont les variables.

On appellelittéral, toute formule qui est soit un atomea, soit la négation

¬ad’un atome.

Étant donné unlittérall, on noteralle littéral

¬lsilest un atome ;

asilest la négation¬ad’un atomea.

(28)

Définition 4(Logique booléenne). On se donne deux valeurs de vérités notées 0 et 1 (ouet >, ou F et V). L’ensemble {0,1} est appelé ensemble des booléenset est notéB.

On définit deux lois de composition interne sur+et.surBpar :

0+0=0 0.0=0

0+1=1 0.1=0

1+0=1 1.0=0

1+1=1 1.1=1

(29)

ainsi qu’une application :B → Bpar : 0=1 1=0

(30)

Vrai ou faux ? DansB:

1. +et.sont deux lois associatives et commutatives ;

2. +et.possèdent un élément neutre et un élément absorbant ; 3. .est distributive par rapport à+(a.(b+c) =a.b+a.c) ; 4. +est distributive par rapport à.(a+ (b.c) = (a+b).(a+c)).

5. b+b=1; 6. b.b=0; 7. a+b=a.b; 8. a.b=a+b

(31)

Définition 5(Valuation). Unevaluation (atomique)ouinterprétation des variablesest une fonctionρ:V → B.

(32)

Définition 6(Interprétation d’une formule propositionnelle). Lavaleur de vérité[[φ]]ρd’une propositionφpour l’interprétation des variablesρ est définie par induction structurelle sur les formules par :

[[a]]ρ=ρ(a)poura∈ V

[[φ∧ψ]]ρ= [[φ]]ρ.[[ψ]]ρ [[φ∨ψ]]ρ= [[φ]]ρ+ [[ψ]]ρ

[[⊥]]ρ=0 [[>]]ρ=1

[[φ⇒ψ]]ρ= [[φ]]ρ+ [[ψ]]ρ [[φ ⇐⇒ ψ]]ρ= ([[φ]]ρ+ [[ψ]]ρ).([[φ]]ρ+ [[ψ]]ρ) [[¬φ]]ρ= [[φ]]ρ

(33)

On appelletable de véritéun tableau dans lequel la dernière colonne est étiquetée par une formule propositionnelle et les colonnes précédentes par lesnvariables apparaissant dans la formule.

La table comporte alors, pour chaque inteprétation possible de cesn variables, exactement une ligne donnant les valeurs de vérité associées aux variables et la valeur de vérité de la formule.

Étant donnénvariables propositionnelles, il y a exactement : A nvaluations possibles

B 2nvaluations possibles

(34)

Définition 7. On dit qu’une formuleφestsatisfaitepar une valuationρ, ou queρest unmodèlede φsi[[φ]]ρ=1, et on note celaρ|=φ.

On dit qu’une formule estsatisfiable(ousatisfaisable) si elle possède au moins un modèle.

On dit queρfalsifiela formuleφsiρ6|=φ(i.e.[[φ]]ρ=0).

On dit qu’une formuleφest une tautologie si elle est satisfaite par toute valuation, et on note cela|=φ:

|=φsi et seulement si∀ρ∈ BV ρ|=φ

On dit que deux formulesφetψsont équivalentes et on noteφψ, si pour toute valuationρ,[[φ]]ρ= [[ψ]]ρ.

(35)

Proposition 1. Soitφetψdeux formules.

L’équivalence de formule est une congruence, c’est-à-dire une relation d’équivalence qui de plus passe au contexte : notons C[φ]une formule contenantψcomme sous-formuleφetC[ψ]la formule obtenue en rem- plaçant cette sous-formule parψ. SiφψalorsC[φ]C[ψ].

Les tautologies sont les formules équivalentes à >, les formules non- satisfiables sont celles équivalentes à⊥.

φest satisfiable si et seulement si¬φn’est pas une tautologie.

φest une tautologie si et seulement si¬φn’est pas satisfiable.

(36)

On déduit des propriétés de l’algèbre de BooleBles résultats suivants : Proposition 2. Soitφ,ψetχtrois formules. Alors

φ∨(ψ∨χ)≡(φ∨ψ)χ φ∧(ψ∧χ)≡(φ∧ψ)χ φψψφ φψψφ

φ∧(ψ∨χ)≡(φ∧ψ)∨(φ∧χ) φ∨(ψ∧χ)≡(φ∨ψ)∧(φ∨χ)

φφφ φφφ

φ∨ ⊥ ≡φ φ∧ > ≡φ

φ∧ ⊥ ≡ ⊥ φ∨ > ≡ >

¬¬φ≡φ

(37)

2.2 Le problème SAT

On appelle taille d’une formule le nombre de nœuds et feuilles que l’arbre qui la représente comporte.

On s’intéresse à une formule de taillencontenantkvariables distinctes.

Laquelle de ces affirmations est correcte : A k=O(logn)(borne serrée) ; B k=O(

n)(borne serrée) ; C k=O(n)(borne serrée) ;

(38)

Exercice : soit une formule de taille n sans double négation et ne comportant que des variables différentes. Montrer qu’elle comporte au moins(n+ 2)/4variables.

(39)

Les questions qu’on aimerait résoudre :

— Comment tester qu’une formule est satisfiable ? (problèmeSAT)

— Comment tester qu’une formule est une tautologie ? Remarque : dualité

— pour montrer qu’une formule est une tautologie, il suffit de mon- trer que sa négation n’est pas satisfiable.

— pour montrer qu’une formule est satisfiable, il suffit de montrer que sa négation n’est pas une tautologie.

On va donc s’intéresser à un seul des deux problèmes : celui de la

(40)

Méthode naïve

Essayer toutes les interprétations des variables.

Complexité en temps ? A O(n2);

B O(2n); C O(2n×n).

D O(2n×nlogn).

(41)

Test polynomial par certificat

Si on dispose d’une valuation ρ on peut tester si ρ |= φ en temps polynomial en la taille deφ(et même linéaire si les variables deφsont numérotées par des entiers etρreprésenté par un tableau de booléens).

Donc siφest satisfiable, il existe une valuationρ, qu’on pourra appeler certificat (ou témoin, ou preuve) de satisfiabilité, vérifiable en temps polynomial en la taille de la formule.

(42)

On dit que la satisfiabilité est vérifiable par certificat en temps poly- nomial.2 La classe des problèmes vérifiables par certificat en temps polynomial étant notéeN P, on écrit

SATN P

2. Cette définition est délibérément imprécise : la rendre rigoureuse nous entraîne- rait trop loin.

(43)

NB :

— La classe des problèmes dont la négation est vérifiable en temps polynomial est appeléeCoN P.

— On ne connaît pas de notion de certificat pour la non-satisfiabilité en temps polynomial, c’est-à-dire qu’on n’a pas aujourd’hui réussi à montrer queSAT appartient àCoN P.

— On conjecture en fait queSAT n’appartient pas àCoN P.3

— Toute avancée sur ces questions vous vaudra probablement la célébrité.

(44)

De façon duale :

— Le caractère non-tautologique d’une proposition est vérifiable par certificat en temps polynomial, donc le caractère tautologique d’une fonction est un problème appartenant àCoN P.

— On ne connaît pas de notion de certificat pour le caractère tau- tologique en temps polynomial (et on doute fortement qu’il en existe : si ce problème était dansN P, on auraitN P =CoN P).

(45)

Nota Bene :

— La notion de problème NP est en général introduite légèrement différemment (à partir de machines de Turing non-déterministes) et l’existence d’une méthode de test par certificat est un critère d’appartenance à la classe NP découlant assez immédiatement de la définition.

— Pour aborder rigoureusement ces notions, il faudrait aborder sérieusement la notion de machines de Turing, qui est hors- programme.

(46)

La classe P

On appelleP la classe des problèmes décidables par un algorithme en temps polynomial en la taille du problème.4

On aPN P. On conjecture que cette inclusion est stricte mais cela reste à démontrer5

4. Même remarque que précédemment sur l’imprécision de la définition.

5. C’est sans conteste la conjecture la plus célèbre en informatique. Démontrez-là ou infirmez-là et c’est la gloire assurée.

(47)

SAT et la classe P

SiSAT /P, l’inclusionPN P est évidemment stricte.

On peut montrer que SATPP = N P. On pense donc que SAT /P.

Enfin, on peut montrer que P = N PN P =CoN P, doncN P 6=

CoN PN P 6=P.6

(48)

Ce qu’il faut retenir Vrai ou faux :

— Il existe des algorithmes efficaces pour vérifier si une formule est satisfiable.

— Il existe des algorithmes efficaces pour vérifier si une formule est satisfiable.

— Il existe un moyen de convaincre quelqu’un qu’une formule est satisfiable en lui donnant un certificat (de taille polynomiale en la taille de la formule), qu’il peut vérifier en temps polynomial.

(49)

— Il existe un moyen de convaincre quelqu’un qu’une formule est une tautologie en lui donnant un certificat (de taille polynomiale en la taille de la formule), qu’il peut vérifier en temps polynomial.

Nous allons maintenant chercher des moyens aussi efficaces que pos- sibles pour vérifier la satisfiabilité de formules mais sans nous leurrer : nous ne trouverons pas de méthode générale.

(50)

2.3 Formes normales conjonctives/disjonctives

Définition 8(Disjonction/conjonctionn-aire). Étant donnénformules φ0, . . . ,φn−1, avecn∈N, on appelle disjonctionn-aire de ces formules la formuleφ0∨(φ1∨(. . .∨φn−1))notée aussi

_

i∈[[0,n[[

φi

Par convention, la disjonction de0formules est⊥.

(51)

De cette façon, sipetq sont deux entiers naturels etφ0, . . . ,φp+q−1sont p+qformules, on a

_

i∈[[0,p+q[[

φi=

_

i∈[[0,p[[

φi

_

i∈[[p,p+q[[

φi

De même, on définit la conjonction Vi∈[[0,n[[φi de n formules, avec la convention que cette conjonction est>sin= 0.

(52)

Définition 9 (Forme normale conjonctive/disjonctive). On appelle clause toute disjonction Wi∈[[0,p[[li de littéraux. La formule ⊥, disjonc- tion de0littéraux est appeléeclause vide.

On appellemonômetoute conjonctionVi∈[[0,p[[lide littéraux. La formule

>, disjonction de0littéraux est appeléemonôme vide.

On dit qu’une formuleφest enforme normale conjonctiveousous forme clausale s’il s’agit d’une conjonction de disjonction de littéraux, c’est-à- dire d’une conjonctionVi∈[[0,q[[Cide clauses. On dit qu’elle est enforme normale conjonctive distinguéesi, dans chaque clauseCi, on trouve une et une seule fois chaque variable de la formuleφ.

(53)

On dit qu’une formule est enforme normale disjonctives’il s’agit d’une conjonction de disjonction de littéraux. On peut définir de même le fait qu’une formule est enforme normale disjonctive distinguée.

Remarque : soitCune clause. Alors¬Cest équivalente à une conjonc- tion de littéraux. On en déduit que la négation de toute formule en FNC est équivalente à une formule en FND. De même, la négation de toute FND est équivalente à une formule en FNC.

(54)

Proposition 3. Un monôme (resp. une clause) est insatisfiable (resp. une tautologie) si et seulement s’il contient deux littérauxli etlj tels que li

soit une variable etlj soit sa négation.

Une FND est satisfiable si et seulement si elle contient au moins un monôme satisfiable.

Une FNC est une tautologie si et seulement si chacune de ses clauses en est une.

(55)

On peut donc tester en temps polynomial (et même facilement en temps quadratique) :

1. si une formule en FND est satisfiable (DN F SAT) ; 2. si une formule en FNC est une tautologie (CN F T AU T).

(56)

Théorème 1. Pour toute formuleφ, il existe une formule ψ en forme normale conjonctive (resp. disjonctive) vérifiantφψ.

Deux démonstrations classiques :

— par induction surφ(pratique pour une implantation mais très pénible à rédiger)

— en construisant la formule à partir des tables de vérité (beaucoup plus facile)

(57)

Soitφune formule comportant un ensemble de variables{v0, . . . , vk−1}, que nous noteronsV. Contruisons une formuleψen FND équivalente àφ.

Pourρ:V → B, on pose Fρ=

k

^

i=0

lili =

vi siρ(vi) =1 vi sinon.

Alors, pour toutρ0:V → B, on a

(58)

Posons alors

ψ= _

ρ∈BV ρ|=φ

Fρ

Alors pour toutρ0 :V → B, on a [[ψ]]ρ0 = X

ρ∈BV ρ|=φ

[[Fρ]]ρ0

Siρ0 |=φ, alors[[Fρ0]]ρ0 =1apparaît dans cette somme, sinon, tous les termes valent0. Dans les deux cas,[[ψ]]ρ0 = [[φ]]ρ0.

ψest bien en FND etψφ. CQFD.

(59)

Pour construire une formule en FNC, on travaille de façon duale : Pourρ:V → B, on pose :

Gρ=

k

_

i=0

lili=

vi siρ(vi) =0 vi sinon.

Alors, pour toutρ0:V → B, on a

[[Gρ]]ρ0 =1 ⇐⇒ ρ0 6=ρ

Posons alors

(60)

Alors pour toutρ0 :V → B, on a [[ψ0]]ρ0 = Y

ρ∈BV ρ6|=φ

[[Fρ]]ρ0

Si ρ 6|= φ, alors [[Fρ0]]ρ0 = 0 apparaît dans ce produit, sinon, tous les termes valent1.

Dans les deux cas,[[ψ0]]ρ0 = [[φ]]ρ0. ψ0est bien en FNC, etψ0φ. CQFD.

(61)

2.4 Résoudre SAT par transformation en FND

On a un algorithme pour transformer toute formuleφen une formule ψéquivalente. En particulierφest satisfiable si et seulement siψl’est.

On dit qu’on peutréduirele problèmeSAT au problèmeDN F SAT.

(62)

2.5 Un problème ? Vrai ou faux :

1. On a un algorithme efficace (quadratique) pour résoudreDN F SAT.

2. On peut réduire le problèmeSAT au problèmeDN F SAT.

3. Donc on peut résoudreSAT de façon polynomiale.

4. OrSATPP =N P. 5. DoncP =N P.

(63)

Pourn∈N, notonsφn= (X1Y1)∧. . .∧(Xbn/4cYbn/4c)où lesXi et lesYisont des variables.φnest de taille4bn/4c −1 = Θ(n).

La FND ψn de φn obtenue par l’algorithme précédent est de taille Θ(n·2n/4), donc le test de satisfiabilité de cette FND demandera un quadratique enn·2n/4 qui n’est pas polynomial enn.

Si on veut réduire un problème à un autre et garder une complexité acceptable (polynomiale), il faut et il suffit que la réduction :

1. donne un nouveau problème de taille polynomiale en la taille du problème initial ;

(64)

2.6 Unicité des FNC/FND ?

Il n’y a pas unicité, pour deux types de raisons :

1. Des raisons non-essentielles de syntaxe : si a et b sont deux atomes, on aabbaet ces deux clauses sont en FNC mais sont distinctes. Même problème aveca∨(b∨c)eta∨(b∨c) 2. Des variables en doublon dans certaines clauses/conjonction de

littéraux :aa∧(b∨ ¬b).

3. Des problèmes liés à l’ajout/l’omission de certaines variables : (a∨c)∧(a∨ ¬c)≡a.

(65)

Pour parler de l’unicité, nous allons devoir restreindre les clauses et monômes que nous considérons :

Définition 10. Soit un ensemble finiV ={a0, . . . , an−1}denvariables, numérotées de 0 à n−1. Une clause distinguée (resp. un monôme distingué) sur les variablesa0, . . . ,an−1est une clause (resp. un monôme) de la formeWi∈[[0,n[[li(resp.Vi∈[[0,n[[li) où pour touti∈[[0, n[[,liest soit ai, soit¬ai. Autrement dit : chaque variable y apparaît une et une seule fois et les variables apparaissent dans l’ordre de leurs numéros.

Une FNC (resp. FND) est dite distinguée si et seulement si toutes ses clauses (resp. ses monômes) le sont.

(66)

Proposition 4. Pour tout monôme distingué M sur les variables a0, . . . , an−1, il existe une unique valuation ρ vérifiant ρ |= M, c’est la valuationρ:{a0, . . . , an−1}définie parρ(ai) =0si¬ai apparaît dans M, et ρ(ai) =1 sinon. Réciproquement, pour toute valuation, il existe un unique monôme distinguéM vérifiantρ |=M : c’est le monômeFρ

précédemment construit.

Pour toute clause distinguéeCsur les variablesa0, . . . ,an−1, il existe une unique valuationρvérifiantρ6|=C, c’est la valuationρ:{a0, . . . , an−1} définie par ρ(ai) = 1si¬ai apparaît dans M, etρ(ai) =0 sinon. Réci- proquement, pour toute valuation, il existe une unique clause distinguée C vérifiantρ6|=C, c’est la clauseGρprécédemment construite.

(67)

Théorème 2. Pour toute φdont les variables sont parmi a0, . . . , an−1, il existe une formuleψen forme normale disjonctive (resp. conjonctive) distinguée sura0, . . . ,an−1 équivalente àφ.

Cette formule est unique, au sens où l’ensemble de ses monômes (resp.

clauses) est exactement l’ensemble des monômes (resp. clauses) associés aux valuationsρ:{a0, . . . , an} → B tels queρ|=φ(resp.ρ6|=φ).

Démonstration : on a déjà vu l’existence (on avait bien des formes distinguées), il reste à voir l’unicité.

(68)

Proposition 5. L’unique FND distinguée équivalente à une formule insa- tisfiable est la disjonction vide de0monômes.

L’unique FNC distinguée équivalente à une tautologie est la conjonction vide.

Démonstration : application directe du théorème.

Rem :

— Tester si une FND distinguée (resp. FNC distinguée) est satisfiable (resp. tautologie) se fait donc en temps constant !

— Cela n’a aucune utilité pratique, les FND distinguées étant longues à calculer.

(69)

2.7 SAT : classifions

On peut s’intéresser à quelques sous-problèmes deSAT : 1. Tester si une FND est dansSAT (DN F SAT).

2. Tester si une FND distinguée est satisfiable.

3. Tester si formule en FNC est dans satisfiable (CN F SAT).

4. Tester si une formule en FNC, dans laquelle chaque clause contient au plus3littéraux, est satisfiable (3CN F SAT ou3SAT).

(70)

On peut évidemment réduire chacun de ces problèmes àSAT : c’est trivial puisque ce sont des sous-problèmes.

Ce qui nous intéresse, c’est de réduireSAT à ces sous-problèmes. On a vu qu’on pouvait réduireSAT àDN F SAT mais que cette réduction n’était pas polynomiale.

On peut essayer de réduireSATà la satisfiabilité desF N Ddistinguées : malheureusement, le théorème d’existence et d’unicité donné consiste à étudier toutes les valuations possibles — soit2nsiφanvariables — ce qui est exponentiel.

On peut clairement réduire3SAT à CN F SAT, puisque c’est un cas particulier, etCN F SAT àSAT.

(71)

Peut-on réduire polynomialementSAT àCN F SAT ? Oui ! On peut même le réduire polynomialement à3SAT! dessin

Cela peut se faire de la façon suivante. On considère une formule φ contenant les variables a0, . . . , an−1. On se donne une infinité de variables supplémentairesvk, pourk ∈N. On noteφ0, . . . ,φN−1 les N sous-formules deφ, avec φN−1 =φ. On construit alors, pour tout i∈[[0, k[[, la formuleF en fonction de la forme deφ comme suit :

(72)

φi Fi

¬φj vi ⇐⇒ ¬vj φjφk vi ⇐⇒ (vjvk) φjφk vi ⇐⇒ (vjvk)

aj vi ⇐⇒ aj

φjφk vi ⇐⇒ (vjvk) φj ⇐⇒ φk vi ⇐⇒ (vj ⇐⇒ vk)

vi ⇐⇒ ⊥

> vi ⇐⇒ >

Alors, siφest satisfaite par une valuationρ sura0, . . . an−1, on peut étendre ρ en une valuation ρ0 sur a0, . . . , an−1, v0, v1, . . . en posant,

(73)

pour tout i∈[[0, N[[,ρ0(vi) = [[φi]]ρetρ0 satisfait alors simultanément toutes les formulesFi pouri∈[[0, N[[ainsi quevN−1.

Réciproquement, si on peut trouver une valuationρ0 sura0, . . . ,an−1, v0,v1,. . . satisfaisant simultanément toutes les formules Fi pour i∈ [[0, N[[ainsi quevN−1alors en notantρla restriction deρ0à{a0, . . . , an−1}, on a pour tout i ∈ [[0, N[[, [[φi]]ρ = ρ0(vi) et en particulier [[φ]]ρ = ρ0(vN−1) =1.

De plus, les formulesFisont de taille bornée et comportent chacune au plus3littéraux. Donc chacune desFi peut, en temps constant, être mise sous forme normale conjonctive dont toute clause comporte au

(74)

2.8 Et alors ?

Les problèmesSAT et3−CN F SAT sont équivalents au sens où on sait réduire chacun des deux en l’autre, en temps polynomial.

Malheureusement, on ne connaît pas d’algorithme polynomial pour résoudre3−CN F SAT.

(75)

2.9 P et NP

On dit qu’un problème est NP-dur, si tout problème NP peut se réduire polynomialement à ce problème.

On dit qu’un problème est NP-complet s’il est NP-dur et NP.

Théorème 3(Cook-Levin). Le problèmeSAT est NP-complet.

La démonstration (et même les définitions précises de NP et NP-dur) sont hors de portée du programme.

(76)

Proposition 6. Les problèmes CN F SAT et 3−CN F SAT sont NP- complets.

Démonstration facile en raison des réductions polynomiales deSAT à 3−CN F SAT et àCN F SAT . . . à partir du moment où on a les définitions !

(77)

Proposition 7. S’il existe un algorithme polynomial pour résoudreSAT (ou3−SAT), alorsN P =P.

Démonstration : là encore hors programme. L’idée est quePN P est évident et que d’autre part,SAT étantN P-complet, tout problèmeN P peut polynomialement se réduire àSAT, donc siSAT était résoluble en temps polynomial, tout problèmeN P le serait aussi, donc on aurait N PP, doncP =N P.

On conjecture plutôtP 6=N P mais c’est un problème ouvert depuis qu’il a été posé en1970.

Références

Documents relatifs

Le sujet est (en principe) trop long pour le temps imparti, il est donc conseill´e de traiter en priorit´e les questions que l’on sait faire en en indiquant clairement la r´ef´erence

On dit qu’un ensemble de droites du plan est en position g´ en´ erale si deux droites quelconques d’entre elles s’intersectent (en un point) et trois droites quelconques

Exercice 4 : La combustion complète de 0.35 g d’un composé A de formule brute C x H y a donné 0,45 g d’eau. Déduire celui du carbone.. 2/ a- Sachant que la masse molaire de A est

3- Pour déterminer la composition centisémale de la substance (A) on réalise la combustion complète de l’échantillon précèdent, on remarque que la masse du dioxyde de

Judicaël Courant - 13 septembre 2017 1/2 Document sous licence Art Libre ( http://artlibre.org).. Écrire une fonction booléenne nommée est_divisible, qui prend en argument un

Écrire une fonction inverse(s) prenant en argument la représentation d’une

Écrire une fonction size : 'a abr -&gt; int de complexité constante retournant la

Écrire une fonction enumere prenant en argument un