Optimisation bool´ eenne multiobjectif : complexit´ e sous contraintes compil´ ees et r´ esolution via SAT
Emmanuel Lonca
Universit´e d’Artois, CRIL-CNRS UMR 8188
26 juin 2015
Cadre des travaux
probl`emes de d´ecision
∃?ω
probl`emes d’optimisation
∃?ω|@ω0ω
variables bool´eennes
{>,⊥}
vous ˆetes ici
Probl` eme de d´ ecision
Probl`eme ded´ecision: existe-t-il une solution `a mon probl`eme ?
package: a version: 1 conflicts: a installed: true package: a version: 2 conflicts: a, d package: b version: 1 conflicts: b installed: true package: b version: 2 conflicts: b package: b
package: c version: 1 installed: true package: d version: 1 installed: true package: e version: 1 depends: f, h, i conflicts: e package: e version: 2
depends: f, h, a > 1, b > 1 conflicts: e
package: e
package: e version: 4 depends: f, j conflicts: e package: f version: 1 package: g version: 1 conflicts: b, c, d package: h version: 1 package: i version: 1
request: install package e
Probl` eme d’optimisation
Probl`emed’optimisation: existe-t-il une solution `a mon probl`eme ? Si oui, en retourner une qui minimise le nombre de paquets retir´es.
package: a version: 1 conflicts: a installed: true package: a version: 2 conflicts: a, d package: b version: 1 conflicts: b installed: true package: b version: 2 conflicts: b package: b version: 3 conflicts: b, c
package: c version: 1 installed: true package: d version: 1 installed: true package: e version: 1 depends: f, h, i conflicts: e package: e version: 2
depends: f, h, a > 1, b > 1 conflicts: e
package: e version: 3
depends: f, a > 1, b > 2 conflicts: e
package: e version: 4 depends: f, j conflicts: e package: f version: 1 package: g version: 1 conflicts: b, c, d package: h version: 1 package: i version: 1
request: install package e install: e
Probl` eme d’optimisation multicrit` ere
Probl`emed’optimisation multicrit`ere : existe-t-il une solution `a mon probl`eme ? Si oui, en retourner une qui minimise le nombre de paquets retir´es, dont la version a chang´e, et le nombre de paquets install´es.
package: a version: 1 conflicts: a installed: true package: a version: 2 conflicts: a, d package: b version: 1 conflicts: b installed: true package: b version: 2
package: c version: 1 installed: true package: d version: 1 installed: true package: e version: 1 depends: f, h, i conflicts: e package: e version: 2
depends: f, h, a > 1, b > 1
package: e version: 4 depends: f, j conflicts: e package: f version: 1 package: g version: 1 conflicts: b, c, d package: h version: 1 package: i
Plan de l’expos´ e
I But de la th`ese : ´etudier les probl`emes de d´ecision,
d’optimisation monocrit`ere et multicrit`ere dans la cas bool´een (SAT).
I Plan de l’expos´e :
I pr´eliminaires formels ;
I panorama de la complexit´e de l’optimisation sous contraintes compil´ees ;
I am´elioration des performances des prouveurs SAT pour la d´ecision et l’optimisation.
Pr´ eliminaires formels
Pr´eliminaires formels
Logique propositionnelle
I Cadre bool´een : logique propositionnelle.
I Forme normale : formules CNF (conjonction de clauses).
(x1,1∨. . .∨x1,p1)
∧ (x2,1∨. . .∨x2,p2) . . .
∧ (xn,1∨. . .∨xn,pn)
I On note Ω l’ensemble des mod`elesω.
Encodage en logique propositionnelle
I Encodage possible du probl`eme de gestion de d´ependances (d´ecision) en CNF :
¬e1∨(f1∧h1)
∧ ¬e2∨(f1∧h1∧a2∧(b2∨b3))
∧ ¬e3∨(f1∧a2∧b2)
∧ ¬e4∨(f1∧j1)
∧ ¬a1∨ ¬a2
∧ ¬b1∨(¬b2∧ ¬b3∧ ¬g1)
∧ ¬b2∨(¬b3∧ ¬g1)
∧ ¬b3∨(¬c1∧ ¬g1)
∧ ¬c1∨ ¬g1
∧ ¬d1∨(¬a2∧ ¬g1)
∧ ¬e1∨(¬e2∧ ¬e3∧ ¬e4)
∧ ¬e2∨(¬e3∧ ¬e4)
∧ ¬e3∨ ¬e4
I Existe-t’il des solutions meilleures que d’autres ? (crit`ere de choix → probl`eme d’optimisation)
Encodage en logique propositionnelle
I Encodage possible du probl`eme de gestion de d´ependances (d´ecision) en CNF :
¬e1∨(f1∧h1)
∧ ¬e2∨(f1∧h1∧a2∧(b2∨b3))
∧ ¬e3∨(f1∧a2∧b2)
∧ ¬e4∨(f1∧j1)
∧ ¬a1∨ ¬a2
∧ ¬b1∨(¬b2∧ ¬b3∧ ¬g1)
∧ ¬b2∨(¬b3∧ ¬g1)
∧ ¬b3∨(¬c1∧ ¬g1)
∧ ¬c1∨ ¬g1
∧ ¬d1∨(¬a2∧ ¬g1)
∧ ¬e1∨(¬e2∧ ¬e3∧ ¬e4)
∧ ¬e2∨(¬e3∧ ¬e4)
∧ ¬e3∨ ¬e4
I Existe-t’il des solutions meilleures que d’autres ? (crit`ere de choix → probl`eme d’optimisation)
Fonction d’utilit´ e ou de coˆ ut
I Relation de pr´ef´erences : ω1 ω2 (ω1 est pr´ef´er´e `aω2)
I Une fonction d’utilit´e u : Ω7→R mod´elise une relation de pr´ef´erence si et seulement si :
∀ω1, ω2∈Ω, u(ω1)≥u(ω2)⇔ω1 ω2.
I Une fonction de coˆut (= d´esutilit´e)c : Ω7→Rmod´elise une relation de pr´ef´erence si et seulement si :
∀ω1, ω2 ∈Ω, c(ω1)≤c(ω2)⇔ω1ω2.
Probl` eme d’optimisation monocrit` ere
I Encodage possible du probl`eme de gestion de d´ependances (optimisation monocrit`ere) :
minc(ω) = (¬a1¬a2) + (¬b1¬b2¬b3) + (¬c1) + (¬d1) tq.
¬e1∨(f1∧h1)
∧ ¬e2∨(f1∧h1∧a2∧(b2∨b3))
∧ ¬e3∨(f1∧a2∧b2)
∧ ¬e4∨(f1∧j1)
∧ ¬a1∨ ¬a2
∧ ¬b1∨(¬b2∧ ¬b3∧ ¬g1)
∧ ¬b2∨(¬b3∧ ¬g1)
∧ ¬b3∨(¬c1∧ ¬g1)
∧ ¬c1∨ ¬g1
∧ ¬d1∨(¬a2∧ ¬g1)
∧ ¬e1∨(¬e2∧ ¬e3∧ ¬e4)
∧ ¬e2∨(¬e3∧ ¬e4)
∧ ¬e3∨ ¬e4
I Plusieurs crit`eres ? Probl`eme d’optimisation multicrit`ere.
Probl` eme d’optimisation monocrit` ere
I Encodage possible du probl`eme de gestion de d´ependances (optimisation monocrit`ere) :
minc(ω) = (¬a1¬a2) + (¬b1¬b2¬b3) + (¬c1) + (¬d1) tq.
¬e1∨(f1∧h1)
∧ ¬e2∨(f1∧h1∧a2∧(b2∨b3))
∧ ¬e3∨(f1∧a2∧b2)
∧ ¬e4∨(f1∧j1)
∧ ¬a1∨ ¬a2
∧ ¬b1∨(¬b2∧ ¬b3∧ ¬g1)
∧ ¬b2∨(¬b3∧ ¬g1)
∧ ¬b3∨(¬c1∧ ¬g1)
∧ ¬c1∨ ¬g1
∧ ¬d1∨(¬a2∧ ¬g1)
∧ ¬e1∨(¬e2∧ ¬e3∧ ¬e4)
∧ ¬e2∨(¬e3∧ ¬e4)
∧ ¬e3∨ ¬e4
I Plusieurs crit`eres ? Probl`eme d’optimisation multicrit`ere.
Difficult´ es de l’optimisation multicrit` ere
Difficult´es du cas multicrit`ere :
I commensurabilit´e des crit`eres ;
I crit`eres g´en´eralement conjointement contradictoires ;
I comment comparer (entre elles) les solutions ?
solution removed versionChanged installed {a1,b1,c1,d1,e1,f1,h1,i1} 0 0 4
{a2,b2,d1,e2,f1,h1} 1 2 3 {a2,b3,e3,f1} 2 2 2 {a2,e4,f1,g1} 3 0 3 I m´ethode AC (agr´eger et comparer) : d´egager un coˆut global
pour chaque solution
Difficult´ es de l’optimisation multicrit` ere
Difficult´es du cas multicrit`ere :
I commensurabilit´e des crit`eres ;
I crit`eres g´en´eralement conjointement contradictoires ;
I comment comparer (entre elles) les solutions ?
solution removed versionChanged installed {a1,b1,c1,d1,e1,f1,h1,i1} 0 0 4
{a2,b2,d1,e2,f1,h1} 1 2 3 {a2,b3,e3,f1} 2 2 2 {a2,e4,f1,g1} 3 0 3
I m´ethode AC (agr´eger et comparer) : d´egager un coˆut global pour chaque solution
Difficult´ es de l’optimisation multicrit` ere
Difficult´es du cas multicrit`ere :
I commensurabilit´e des crit`eres ;
I crit`eres g´en´eralement conjointement contradictoires ;
I comment comparer (entre elles) les solutions ?
solution removed versionChanged installed {a1,b1,c1,d1,e1,f1,h1,i1} 0 0 4
{a2,b2,d1,e2,f1,h1} 1 2 3 {a2,b3,e3,f1} 2 2 2 {a2,e4,f1,g1} 3 0 3 I m´ethode AC (agr´eger et comparer) : d´egager un coˆut global
pour chaque solution
Quelques fonctions d’agr´ egation
Op´erateurs d’agr´egation consid´er´es dans l’´etude th´eorique :
I Somme pond´er´eeS(ω) =Pn
i=1ci(ω) :
I ne tient pas compte de l’´equilibre des solutions : (0,1)(0.5 +,0.5 +),→0+.
I Leximax, minimiser s´equentiellement les statistiques d’ordre n, . . . ,1 :
I ne tient pas compte du coˆut global des solutions : (1−,1−)(0,1),→0+.
I Op´erateurOWAW(ω) =Pn
i=1wichii(ω)
I permet un compromis entre la somme et le leximax
I optimisation g´en´eralement complexe
Complexit´ e de l’optimisation sous contraintes compil´ ees
Complexit´e de l’optimisation
sous contraintes compil´ees
Compilation de connaissances et optimisation
I Dans l’exemple de gestion de d´ependances, les contraintes sont les mˆemes pour tout le monde, mais les requˆetes et crit`eres d´ependent des utilisateurs.
I Compilation de connaissances :
I traduction coˆuteuse d’une formule vers un sous-langage de la logique propositionnelle ;
I but : permettre de r´epondre en temps polynomial `a des requˆetes normalement difficiles (ex : CO).
I Nouvelle requˆete : OPT(plus difficile que CO) ; ´etude de sa complexit´e.
Compilation de connaissances et optimisation
I Dans l’exemple de gestion de d´ependances, les contraintes sont les mˆemes pour tout le monde, mais les requˆetes et crit`eres d´ependent des utilisateurs.
I Compilation de connaissances :
I traduction coˆuteuse d’une formule vers un sous-langage de la logique propositionnelle ;
I but : permettre de r´epondre en temps polynomial `a des requˆetes normalement difficiles (ex : CO).
I Nouvelle requˆete : OPT(plus difficile que CO) ; ´etude de sa complexit´e.
Compilation de connaissances et optimisation
I Dans l’exemple de gestion de d´ependances, les contraintes sont les mˆemes pour tout le monde, mais les requˆetes et crit`eres d´ependent des utilisateurs.
I Compilation de connaissances :
I traduction coˆuteuse d’une formule vers un sous-langage de la logique propositionnelle ;
I but : permettre de r´epondre en temps polynomial `a des requˆetes normalement difficiles (ex : CO).
I Nouvelle requˆete : OPT(plus difficile que CO) ; ´etude de sa complexit´e.
Langages de la logique propositionnelle
Logique propositionnelle
NNF
d-NNF
BDD
FBDD
OBDD
OBDD<
s-NNF
MODS
DNNF
DNF
IP d-DNNF
d-SDNNF
d-DNNFT
f-NNF
CNF
PI SDNNF
DNNFT
Exemples de formules compil´ ees
I DNNF : nœuds ∧d´ecomposables.
a b c d
∨ ∨
∧ a
∨
Exemples de formules compil´ ees
I DNNF : nœuds∧ d´ecomposables.
a b a d
∨ ∨
∧ a
∨
Exemples de formules compil´ ees
I OBDD : diagramme de d´ecision binaire ordonn´e.
a
b
c
b
c
1 0
Exemples de formules compil´ ees
I OBDD : DNNF particuli`ere.
∨
∧ ∧
¬a a
∨
∧ ∧
¬b b
⊥ ∨
∧ ∧
¬c > c
⊥
∨
∧
∧
¬b ∨ b ⊥
∧
∧
¬c > c ⊥
Exemples de formules compil´ ees
I OBDD : diagramme de d´ecision binaire ordonn´e.
a
b
c
c
b
1 0
Contribution : r´ esultats th´ eoriques pour l’optimisation
I Panorama de l’optimisation sous contraintes compil´ees (langages satisfaisant CO) [LLM14]
I Fonctions consid´er´ees :
I fonctions lin´eairesL(a1x1+. . .+apxp),
I fonctions quadratiquesQ(qi ≤2) et polynomialesP (a1·x1,1·x1,q1+. . .+ap·xp,1·xp,qp),
I fonctions pseudo-bool´eennes g´en´eralesG (a1φ1+. . .+apφp, φi∈NNF),
I fonctions sous-modulairesS
(f(x1∧x2) +f(x1∨x2)≤f(x1) +f(x2)) :
I fonctions de budget additives,
I entropie,
I ...
Contribution : r´ esultats th´ eoriques pour l’optimisation
OPT {>} DNF DNNF, OBDD
fonctions lin´eaires dans P dans P dans P fonctions sous-modulaires dans P dans P NP-difficile
fonctions OWA NP-difficile NP-difficile NP-difficile fonctions quadratiques NP-difficile1,2 NP-difficile1,2 NP-difficile2 fonctions polynomiales NP-difficile1,2 NP-difficile1,2 NP-difficile2
1: dans P si, dans la fonction, les poids sont tous du mˆeme signe et si les litt´eraux n’apparaissent que sous une unique polarit´e
2: dans P si le nombre de cubes de la fonction est born´e
Compilation et optimisation : bilan
I Optimisation possible pour un certain nombre de cas int´eressants.
I Des probl`emes subsistent :
I pour des fonctions expressives, optimisation difficile mˆeme sous OBDD ;
I compilation difficile pour beaucoup de probl`emes (pigeons).
I N´ecessit´e d’am´eliorer l’optimisation pour les cas difficiles (compilation ou optimisation).
I Deux contributions pour cela : am´elioration pour les probl`emes de d´ecision et d’optimisation.
Compilation et optimisation : bilan
I Optimisation possible pour un certain nombre de cas int´eressants.
I Des probl`emes subsistent :
I pour des fonctions expressives, optimisation difficile mˆeme sous OBDD ;
I compilation difficile pour beaucoup de probl`emes (pigeons).
I N´ecessit´e d’am´eliorer l’optimisation pour les cas difficiles (compilation ou optimisation).
I Deux contributions pour cela : am´elioration pour les probl`emes de d´ecision et d’optimisation.
Compilation et optimisation : bilan
I Optimisation possible pour un certain nombre de cas int´eressants.
I Des probl`emes subsistent :
I pour des fonctions expressives, optimisation difficile mˆeme sous OBDD ;
I compilation difficile pour beaucoup de probl`emes (pigeons).
I N´ecessit´e d’am´eliorer l’optimisation pour les cas difficiles (compilation ou optimisation).
I Deux contributions pour cela : am´elioration pour les probl`emes de d´ecision et d’optimisation.
Compilation et optimisation : bilan
I Optimisation possible pour un certain nombre de cas int´eressants.
I Des probl`emes subsistent :
I pour des fonctions expressives, optimisation difficile mˆeme sous OBDD ;
I compilation difficile pour beaucoup de probl`emes (pigeons).
I N´ecessit´e d’am´eliorer l’optimisation pour les cas difficiles (compilation ou optimisation).
I Deux contributions pour cela : am´elioration pour les probl`emes de d´ecision et d’optimisation.
Prouveurs CDCL et syst` emes de preuves
Prouveurs CDCL et syst`emes
de preuves
Algorithme CDCL : apprentissage de clauses
α1= (x1∨ ¬x2) α2= (¬x2∨ ¬x3∨ ¬x4) α3= (x3∨x5∨x6) α4= (¬x4∨ ¬x6∨x9) α5= (¬x6∨x7) α6= (¬x6∨ ¬x8) α7= (¬x7∨x8∨x10) α8= (¬x9∨ ¬x10) α9= (¬x11∨x12)
β1= (¬x4∨¬x6)
Algorithme CDCL : apprentissage de clauses
α1= (x1∨¬x2) α2= (¬x2∨ ¬x3∨ ¬x4) α3= (x3∨x5∨x6) α4= (¬x4∨ ¬x6∨x9) α5= (¬x6∨x7) α6= (¬x6∨ ¬x8) α7= (¬x7∨x8∨x10) α8= (¬x9∨ ¬x10) α9= (¬x11∨x12)
β1= (¬x4∨¬x6)
x2
Algorithme CDCL : apprentissage de clauses
α1= (x1∨¬x2) α2= (¬x2∨ ¬x3∨ ¬x4) α3= (x3∨x5∨x6) α4= (¬x4∨ ¬x6∨x9) α5= (¬x6∨x7) α6= (¬x6∨ ¬x8) α7= (¬x7∨x8∨x10) α8= (¬x9∨ ¬x10) α9= (¬x11∨x12)
β1= (¬x4∨¬x6)
x2
x1 α1
Algorithme CDCL : apprentissage de clauses
α1= (x1∨¬x2) α2= (¬x2∨ ¬x3∨ ¬x4) α3= (x3∨x5∨x6) α4= (¬x4∨ ¬x6∨x9) α5= (¬x6∨x7) α6= (¬x6∨ ¬x8) α7= (¬x7∨x8∨x10) α8= (¬x9∨ ¬x10) α9= (¬x11∨x12)
β1= (¬x4∨¬x6)
x2
x1 α1
Algorithme CDCL : apprentissage de clauses
α1= (x1∨¬x2) α2= (¬x2∨ ¬x3∨¬x4) α3= (x3∨x5∨x6) α4= (¬x4∨ ¬x6∨x9) α5= (¬x6∨x7) α6= (¬x6∨ ¬x8) α7= (¬x7∨x8∨x10) α8= (¬x9∨ ¬x10) α9= (¬x11∨x12)
β1= (¬x4∨¬x6)
x2
x1
x4
α1
Algorithme CDCL : apprentissage de clauses
α1= (x1∨¬x2) α2= (¬x2∨¬x3∨¬x4) α3= (x3∨x5∨x6) α4= (¬x4∨ ¬x6∨x9) α5= (¬x6∨x7) α6= (¬x6∨ ¬x8) α7= (¬x7∨x8∨x10) α8= (¬x9∨ ¬x10) α9= (¬x11∨x12)
β1= (¬x4∨¬x6)
x2
x1
x4
¬x3 α1 α2
Algorithme CDCL : apprentissage de clauses
α1= (x1∨¬x2) α2= (¬x2∨¬x3∨¬x4) α3= (x3∨x5∨x6) α4= (¬x4∨ ¬x6∨x9) α5= (¬x6∨x7) α6= (¬x6∨ ¬x8) α7= (¬x7∨x8∨x10) α8= (¬x9∨ ¬x10) α9= (¬x11∨x12)
β1= (¬x4∨¬x6)
x2
x1
x4
¬x3 α1 α2
Algorithme CDCL : apprentissage de clauses
α1= (x1∨¬x2) α2= (¬x2∨¬x3∨¬x4) α3= (x3∨x5∨x6) α4= (¬x4∨ ¬x6∨x9) α5= (¬x6∨x7) α6= (¬x6∨ ¬x8) α7= (¬x7∨x8∨x10) α8= (¬x9∨ ¬x10) α9= (¬x11∨x12)
β1= (¬x4∨¬x6)
x2
x1
x4
¬x3 α1 α2
x11
¬x12 α9
Algorithme CDCL : apprentissage de clauses
α1= (x1∨¬x2) α2= (¬x2∨¬x3∨¬x4) α3= (x3∨x5∨x6) α4= (¬x4∨¬x6∨x9) α5= (¬x6∨x7) α6= (¬x6∨¬x8) α7= (¬x7∨x8∨x10) α8= (¬x9∨¬x10) α9= (¬x11∨x12)
β1= (¬x4∨¬x6)
x2
x1
x4
¬x3 α1 α2
x11
¬x12
¬x5
x6
x9
¬x8
x7
¬x10
x10 α4
α9
α3
α5 α6
α8
α7
Algorithme CDCL : apprentissage de clauses
α1= (x1∨¬x2) α2= (¬x2∨¬x3∨¬x4) α3= (x3∨x5∨x6) α4= (¬x4∨¬x6∨x9) α5= (¬x6∨x7) α6= (¬x6∨¬x8) α7= (¬x7∨x8∨x10) α8= (¬x9∨¬x10) α9= (¬x11∨x12)
β1= (¬x4∨¬x6)
x2
x1
x4
¬x3 α1 α2
x11
¬x12
¬x5
x6
x9
¬x8
x7
¬x10
x10
⊥ α4
α9
α3
α5 α6
α8
α7
Algorithme CDCL : apprentissage de clauses
α1= (x1∨¬x2) α2= (¬x2∨¬x3∨¬x4) α3= (x3∨x5∨x6) α4= (¬x4∨¬x6∨x9) α5= (¬x6∨x7) α6= (¬x6∨¬x8) α7= (¬x7∨x8∨x10) α8= (¬x9∨¬x10) α9= (¬x11∨x12)
β1= (¬x4∨¬x6)
x2
x1
x4
¬x3 α1 α2
x11
¬x12
¬x5
x6
x9
¬x8
x7
¬x10
x10
⊥ α4
α9
α3
α5 α6
α8
α7
R`egle de r´esolution [Rob65] :
(a∨b1∨. . .∨bp)∧(¬a∨c1∨. . .∨cq)|=
Algorithme CDCL : apprentissage de clauses
α1= (x1∨¬x2) α2= (¬x2∨¬x3∨¬x4) α3= (x3∨x5∨x6) α4= (¬x4∨¬x6∨x9) α5= (¬x6∨x7) α6= (¬x6∨¬x8) α7= (¬x7∨x8∨x10) α8= (¬x9∨¬x10) α9= (¬x11∨x12)
β1= (¬x4∨¬x6)
x2
x1
x4
¬x3 α1 α2
x11
¬x12
¬x5
x6
x9
¬x8
x7
¬x10
x10
⊥ α4
α9
α3
α5 α6
α8
α7
σ1=η[x10, α7, α8] = ¬x7∨x8∨ ¬x9
σ2 =η[x9, σ1, α4] = ¬x4∨ ¬x6∨ ¬x7∨x8
σ3 =η[x7, σ2, α5] = ¬x4∨ ¬x6∨x8 σ4 =η[x8, σ3, α6] = ¬x4∨ ¬x6.
Algorithme CDCL : apprentissage de clauses
α1= (x1∨¬x2) α2= (¬x2∨¬x3∨¬x4) α3= (x3∨x5∨x6) α4= (¬x4∨¬x6∨x9) α5= (¬x6∨x7) α6= (¬x6∨¬x8) α7= (¬x7∨x8∨x10) α8= (¬x9∨¬x10) α9= (¬x11∨x12)
β1= (¬x4∨¬x6)
x2
x1
x4
¬x3 α1 α2
x11
¬x12
¬x5
x6
x9
¬x8
x7
¬x10
x10
⊥ α4
α9
α3
α5 α6
α8
α7
σ1=η[x10, α7, α8] = ¬x7∨x8∨ ¬x9 σ2 =η[x9, σ1, α4] = ¬x4∨ ¬x6∨ ¬x7∨x8
σ3 =η[x7, σ2, α5] = ¬x4∨ ¬x6∨x8 σ4 =η[x8, σ3, α6] = ¬x4∨ ¬x6.
Algorithme CDCL : apprentissage de clauses
α1= (x1∨¬x2) α2= (¬x2∨¬x3∨¬x4) α3= (x3∨x5∨x6) α4= (¬x4∨¬x6∨x9) α5= (¬x6∨x7) α6= (¬x6∨¬x8) α7= (¬x7∨x8∨x10) α8= (¬x9∨¬x10) α9= (¬x11∨x12)
β1= (¬x4∨¬x6)
x2
x1
x4
¬x3 α1 α2
x11
¬x12
¬x5
x6
x9
¬x8
x7
¬x10
x10
⊥ α4
α9
α3
α5 α6
α8
α7
σ1=η[x10, α7, α8] = ¬x7∨x8∨ ¬x9 σ2 =η[x9, σ1, α4] = ¬x4∨ ¬x6∨ ¬x7∨x8
σ3 =η[x7, σ2, α5] = ¬x4∨ ¬x6∨x8
σ4 =η[x8, σ3, α6] = ¬x4∨ ¬x6.
Algorithme CDCL : apprentissage de clauses
α1= (x1∨¬x2) α2= (¬x2∨¬x3∨¬x4) α3= (x3∨x5∨x6) α4= (¬x4∨¬x6∨x9) α5= (¬x6∨x7) α6= (¬x6∨¬x8) α7= (¬x7∨x8∨x10) α8= (¬x9∨¬x10) α9= (¬x11∨x12)
β1= (¬x4∨¬x6)
x2
x1
x4
¬x3 α1 α2
x11
¬x12
¬x5
x6
x9
¬x8
x7
¬x10
x10
⊥ α4
α9
α3
α5 α6
α8
α7
σ1=η[x10, α7, α8] = ¬x7∨x8∨ ¬x9 σ2 =η[x9, σ1, α4] = ¬x4∨ ¬x6∨ ¬x7∨x8
σ3 =η[x7, σ2, α5] = ¬x4∨ ¬x6∨x8
Algorithme CDCL : apprentissage de clauses
α1= (x1∨¬x2) α2= (¬x2∨¬x3∨¬x4) α3= (x3∨x5∨x6) α4= (¬x4∨¬x6∨x9) α5= (¬x6∨x7) α6= (¬x6∨¬x8) α7= (¬x7∨x8∨x10) α8= (¬x9∨¬x10) α9= (¬x11∨x12)
β1= (¬x4∨¬x6)
x2
x1
x4
¬x3 α1 α2
x11
¬x12
¬x5
x6
x9
¬x8
x7
¬x10
x10
⊥ α4
α9
α3
α5 α6
α8
α7
σ1=η[x10, α7, α8] = ¬x7∨x8∨ ¬x9 σ2 =η[x9, σ1, α4] = ¬x4∨ ¬x6∨ ¬x7∨x8
σ3 =η[x7, σ2, α5] = ¬x4∨ ¬x6∨x8 σ4 =η[x8, σ3, α6] = ¬x4∨ ¬x6.
I x6 unique variable du dernier niveau de d´ecision : arrˆet