3-SAT aléatoire

Transcription

3-SAT aléatoire
Comportement critique des
heuristiques de résolution de 3-SAT
aléatoire
Christophe Deroulers
LPTENS Paris
et
Rémi Monasson
LPTENS Paris & LPT Strasbourg
Journées ALEA 04, CIRM, 22 janvier 2004
Sommaire
3-SAT aléatoire
Quelques heuristiques
Analyse de UC
Le comportement critique
«Interprétation» du comportement critique
Conclusion
Le problème 3-SAT aléatoire
SAT, le problème de la satisfaisabilité
Étant donné une formule booléenne :
(a OU b) ET c ET [b OU (d ET c)]
où les variables peuvent prendre les valeurs VRAI et FAUX,
SAT, le problème de la satisfaisabilité
Étant donné une formule booléenne :
(a OU b) ET c ET [b OU (d ET c)]
où les variables peuvent prendre les valeurs VRAI et FAUX,
on veut savoir s’il existe une affectation des variables (a = VRAI,
b = FAUX,...) tel que la formule soit satisfaite.
SAT est NP-complet
Ce problème est NP-complet.
(Conjecture) il n’existe pas d’algorithme toujours polynomial qui trouve une
solution (ou prouve qu’il n’y en a pas).
SAT est NP-complet
Ce problème est NP-complet.
(Conjecture) il n’existe pas d’algorithme toujours polynomial qui trouve une
solution (ou prouve qu’il n’y en a pas).
Algorithme de recherche naïf : s’il y a N variables, tester les 2N affectations
possibles. complexité exponentielle.
Complexité : laquelle ?
«Toujours polynomial» : i.e. même dans le pire cas
Complexité : laquelle ?
«Toujours polynomial» : i.e. même dans le pire cas
En pratique : temps de calcul par de bons algorithmes rarement exponentiel
→ il faut distinguer complexité dans le pire cas et complexité en moyenne.
On s’intéresse à la complexité en moyenne.
Complexité : laquelle ?
«Toujours polynomial» : i.e. même dans le pire cas
En pratique : temps de calcul par de bons algorithmes rarement exponentiel
→ il faut distinguer complexité dans le pire cas et complexité en moyenne.
On s’intéresse à la complexité en moyenne.
Une manière de générer des formules booléennes «difficiles» : le problème
3-SAT aléatoire.
3-SAT aléatoire
On se donne N variables booléennes a, b, c...
3-SAT aléatoire
On se donne N variables booléennes a, b, c...
On tire M triplets de variables au sort :
a OU b OU c
a OU e OU i
f OU g OU h
d OU g OU j
b OU c OU i
e OU i OU j
a OU f OU h
a OU g OU j
a OU e OU f
3-SAT aléatoire
On se donne N variables booléennes a, b, c...
On tire M triplets de variables au sort :
a OU b OU c
a OU e OU i
f OU g OU h
d OU g OU j
b OU c OU i
e OU i OU j
a OU f OU h
a OU g OU j
a OU e OU f
on nie chaque variable avec probabilité
1
2
3-SAT aléatoire
On se donne N variables booléennes a, b, c...
On tire M triplets de variables au sort :
a OU b OU c
a OU e OU i
f OU g OU h
d OU g OU j
b OU c OU i
e OU i OU j
a OU f OU h
a OU g OU j
a OU e OU f
on nie chaque variable avec probabilité
1
2
et on rajoute des ET entre toutes les 3-clauses (triplets) → Forme Normale
Conjonctive.
3-SAT aléatoire
On se donne N variables booléennes a, b, c...
On tire M triplets de variables au sort :
a OU b OU c
a OU e OU i
f OU g OU h
d OU g OU j
b OU c OU i
e OU i OU j
a OU f OU h
a OU g OU j
a OU e OU f
on nie chaque variable avec probabilité
1
2
et on rajoute des ET entre toutes les 3-clauses (triplets) → Forme Normale
Conjonctive.
2-SAT aléatoire (couples au lieu de triplets) : «facile», temps polynomial dans
le pire cas.
Observations : phénomène de seuil
Soit N grand fixé.
Observations : phénomène de seuil
Soit N grand fixé.
Si α = M
N < 4.3, p.s. la formule est satisfaisable.
Si α = M
N > 4.3, p.s. la formule est non satisfaisable.
Observations : phénomène de seuil
temps de calcul médian
Soit N grand fixé.
Si α = M
N < 4.3, p.s. la formule est satisfaisable.
Si α = M
N > 4.3, p.s. la formule est non satisfaisable.
2000
100 var.
75 var.
50 var.
1500
1000
500
0
0
2
4
6
αC
8
α
10
Quelques heuristiques
Exemple
0. Soit à résoudre :
a OU
b OU
c
a OU
e OU
i
a OU
g OU
h
d OU
g OU
j
g OU
h OU
i
e OU
i
OU
j
a OU
f OU
h
a OU
b OU
j
a OU
e OU
f
Exemple
1. On choisit une variable :
a OU
b OU
c
a OU
e OU
i
a OU
g OU
h
d OU
g OU
j
g OU
h OU
i
e OU
i
OU
j
a OU
f OU
h
a OU
b OU
j
a OU
e OU
f
Exemple
2. On l’affecte :
a OU
b OU
c
a OU
e OU
i
a OU
g OU
h
d OU
g OU
j
g OU
h OU
i
e OU
i
OU
j
a OU
f OU
h
a OU
b OU
j
a OU
e OU
f
a := vrai
Exemple
3. On réduit les clauses :
VRAI
d OU
g OU
VRAI
j
g OU
e OU
i
h OU
i
VRAI
a := vrai
e OU
g OU
h
i
OU
j
e OU
f
Exemple
4. On choisit une variable :
VRAI
d OU
g OU
VRAI
j
g OU
e OU
i
h OU
i
VRAI
a := vrai
e OU
g OU
h
i
OU
j
e OU
f
Exemple
5. On l’affecte :
VRAI
d OU
g OU
VRAI
j
g OU
e OU
i
h OU
i
VRAI
a := vrai
e := faux
e OU
g OU
h
i
OU
j
e OU
f
Exemple
6. On réduit :
VRAI
d OU
g OU
VRAI
j
g OU
h OU
VRAI
a := vrai
e := faux
i
g OU
i
VRAI
VRAI
h
Exemple
7. Choix naturel : la clause unitaire.
VRAI
d OU
g OU
VRAI
j
g OU
h OU
VRAI
a := vrai
e := faux
i
g OU
i
VRAI
VRAI
h
Exemple
8. On affecte...
VRAI
d OU
g OU
VRAI
j
g OU
h OU
VRAI
a := vrai
e := faux
i := vrai
i
g OU
i
VRAI
VRAI
h
Exemple
9. On réduit :
VRAI
d OU
g OU
VRAI
j
g OU
VRAI
g OU
h
VRAI
VRAI
VRAI
a := vrai
e := faux
i := vrai
h
Exemple
10. On choisit une variable :
VRAI
d OU
g OU
VRAI
j
g OU
VRAI
g OU
h
VRAI
VRAI
VRAI
a := vrai
e := faux
i := vrai
h
Exemple
11. On l’affecte :
VRAI
d OU
g OU
VRAI
j
g OU
VRAI
g OU
h
VRAI
VRAI
VRAI
a := vrai
e := faux
i := vrai
g := faux
h
Exemple
12. On réduit :
VRAI
VRAI
VRAI
h
VRAI
VRAI
VRAI
VRAI
a := vrai
e := faux
i := vrai
g := faux
h
Exemple
13. Contradiction !
VRAI
VRAI
VRAI
h
VRAI
VRAI
VRAI
VRAI
a := vrai
e := faux
i := vrai
g := faux
h
Algorithme DPLL
Recherche de solution ≡ parcours d’un arbre
a := vrai
b := vrai
a := faux
b := faux
b := vrai
C
S
c := vrai
C
c := faux
C
Heuristique UC
Heuristique UC :
◮ S’il y a une ou plusieurs clauses unitaires, on en choisit une et on la
satisfait.
VRAI
d OU
g OU
VRAI
j
g OU
e OU
i
h OU
i
VRAI
e OU
g OU
h
i
OU
j
e OU
f
Heuristique UC
Heuristique UC :
◮ S’il y a une ou plusieurs clauses unitaires, on en choisit une et on la
satisfait.
◮ Sinon, on prend une variable au hasard et on l’affecte n’importe comment.
VRAI
d OU
g OU
VRAI
j
g OU
e OU
i
h OU
i
VRAI
e OU
g OU
h
i
OU
j
e OU
f
Heuristique GUC
Heuristique GUC :
◮ S’il y a une ou plusieurs clauses unitaires, on en choisit une et on la
satisfait.
◮ Sinon, on choisit une des clauses les plus courtes puis on affecte une
variable de cette clause de manière à la satisfaire.
VRAI
d OU
g OU
VRAI
j
g OU
e OU
i
h OU
i
VRAI
e OU
g OU
h
i
OU
j
e OU
f
Heuristique HL
Heuristique HL :
◮ S’il y a une ou plusieurs clauses unitaires, on en choisit une et on la
satisfait.
◮ Sinon, on choisit un des littéraux qui apparaît dans le plus de clauses et on
l’affecte à vrai.
VRAI
d OU
g OU
VRAI
j
g OU
e OU
i
h OU
i
VRAI
e OU
g OU
h
i
OU
j
e OU
f
Réussite du premier coup
1
UC
GUC
HL
0.8
0.6
P
0.4
0.2
0
0
0.5
1
1.5
2
alpha
2.5
3
3.5
4
Analyse de l’heuristique UC
Analyse de UC
Flot de clauses :
C3
3-clauses
C2
C1
2-clauses
clauses unitaires
Analyse de UC
Flot de clauses :
w2
w1
e3
C3
3-clauses
e2
e1
C2
2-clauses
C1
clauses unitaires
Analyse de UC : remarques
On fait l’analyse de la première descente dans l’arbre en s’arrêtant dès la
première contradiction.
Temps T := nombre de variables affectées. 0 ≤ T ≤ N .
Analyse de UC : remarques
On fait l’analyse de la première descente dans l’arbre en s’arrêtant dès la
première contradiction.
Temps T := nombre de variables affectées. 0 ≤ T ≤ N .
2 remarques importantes :
Quand on a moyenné sur les entrées de l’algorithme, la distribution de
formules à 1-, 2- et 3-clauses à un instant T donné est entièrement déterminée
~ ) := (C3 (T ), C2 (T ), C1 (T )).
par la donnée de C(T
Franco
Analyse de UC : remarques
On fait l’analyse de la première descente dans l’arbre en s’arrêtant dès la
première contradiction.
Temps T := nombre de variables affectées. 0 ≤ T ≤ N .
2 remarques importantes :
Quand on a moyenné sur les entrées de l’algorithme, la distribution de
formules à 1-, 2- et 3-clauses à un instant T donné est entièrement déterminée
~ ) := (C3 (T ), C2 (T ), C1 (T )).
par la donnée de C(T
Franco
Il y a concentration de la mesure autour des valeurs moyennes : il suffit de
connaître hC1 (T )i, hC2 (T )i et hC3 (T )i pour connaître le comportement de
l’algorithme.
Analyse de UC : taux de transition
On peut écrire de façon exacte les taux de transition de la «chaîne de
~ ←C
~ ′, T ) :
Markov» K(C
C3′
C3′ − C3
3
1−
N −T
C3 3
2(N − T )
′
C3′ −C3 CX
3 −C3 w2 =0
C3′
− C3
×
w2
C2′
C2′ −z2 z2 X
z2 X C ′ 1
z2
2
2
δC2 =C2′ +w2 −z2 ×
1−
w1
N −T
N −T
z2
w =0
z =0
1
2
e1 C1′ −1−e1
C1′ −1 ′
X C − 1 1
1
1
×
1−
(1 − δC1′ =0 )
2(N − T )
N −T
e1
e =0
1
δC1 =C1′ +w1 −e1 −1
+
δC1′ =0 δC1 =w1
Analyse de UC : passage au temps continu
Chao & Franco
D’où pour les moyennes :
3C3
hC3 (T + 1)i − hC3 (T )i = −
N −T
2C2
1 3C3
hC2 (T + 1)i − hC2 (T )i = −
+
N −T
2N −T
C2
hC1 (T + 1)i − hC1 (T )i =
− E [C1 > 0]
N −T
Analyse de UC : passage au temps continu
Chao & Franco
D’où pour les moyennes :
3C3
hC3 (T + 1)i − hC3 (T )i = −
N −T
2C2
1 3C3
hC2 (T + 1)i − hC2 (T )i = −
+
N −T
2N −T
C2
hC1 (T + 1)i − hC1 (T )i =
− E [C1 > 0]
N −T
Cj (T ) varie sur des temps T d’ordre 1
Cj
T
N =: cj (t := N ) varie sur des temps T d’ordre N
√
→ on peut intercaler une échelle (par. ex. N ) qui soit :
≫ 1 donc où les fluctuations des Cj s’automoyennent
≪ N donc où les cj (t) sont quasi constants.
Analyse de UC : équations différentielles
On trouve ainsi :
dc3
dt
dc2
dt
dc1
dt
=
=
=
3c3
−
1−t
2c2
1 3c3
−
+
1−t 21−t
c2
− ρ1
1−t
où ρ1 (t) = E [C1 (T ) > 0] est la proba qu’il y ait des clauses unitaires au
temps t.
D’où c3 (t) = α(0)(1 − t)3 et c2 (t) = 32 α(0)t(1 − t)2 .
Absorption immédiate des clauses unitaires ⇒ C1 (T ) = o(N ) et
c1 (t) = 0 ∀t.
c2
?
A-t-on bien ρ1 = 1−t
Analyse de UC : étude de C1
Proba de ne pas rencontrer de contradiction de T à T + 1 :
1
1−
2(N − T )
max(C1 −1,0)
d’où la proba de ne pas rencontrer de contradiction de 0 à T = N t :
Z t
hmax(C1 − 1, 0)i
exp −
dt
2(1 − t)
0
→ Il nous faut ρ1 (t) = E [C1 > 0] pour calculer c1 (t) et vérifier que
C1 (T ) = o(N ) : pas d’accumulation de clause unitaire (sinon, on rencontre
une contradiction avec grande probabilité donc notre étude n’est plus valable).
Analyse de UC : ρ1
Frieze & Suen
Taux de transition pour C1 :
H(C1′ ← C1 ) =
où a2 :=
X
w1 ≥0
w1
a
2
δC1′ =C1 +w1 −1IC ′ ≥1
e−a2
1
w1 !
c2
1−t .
Soit µ(C1 ) la mesure stationnaire et µ(y1 ) sa fonction génératrice :
µ(y1 ) :=
X
µ(C1 )ey1 C1
C1 ≥0
(0) entraîne :
eν(y1 ) (1 − ey1 )
µ(y1 ) = (1 − a2 )
eν(y1 ) − 1
où ν(y1 ) := −y1 + a2 (ey1 − 1).
(0)
Analyse de UC : ρ1 (suite)
De la fonction génératrice on tire d’une part :
ρ1 := E [C1 > 0] = a2 :=
c2
1−t
(cohérent) et d’autre part
a2 2 − a2
hC1 i =
2 1 − a2
qui est fini (⇒ résolution sans contradiction possible) tant que a2 =
i.e. α(t = 0) < αc := 83 .
c2
1−t
< 1,
Conclusion : si (et s. si) α < αc , la proba P de résoudre du premier coup (sans
contradiction) est > 0 :


1
1
3α


− q
arctan q
ln(P ) =
16
8
−1
2 8 −1
3α
3α
Analyse de UC : P (α)
1
numerique pour 2500 variables
numerique pour 12500 variables
numerique pour 50000 variables
theorique
0.9
0.8
0.7
P
0.6
0.5
0.4
0.3
0.2
0.1
0
0
0.5
1
1.5
2
alpha0
− ln(P (α)) = Θ
√
1
|α−αc |
pour α → αc − .
2.5
3
3.5
Le comportement critique
Comportement critique
N est grand.
Pour chacune des heuristiques, ∃ αc tel que :
◮ Si α < αc , P = Θ(1). Temps de résolution linéaire en N .
◮ Si α > αc , − ln(P ) ∝ N (donc P → 0). Temps de résolution exponentiel
en N .
Comportement critique
N est grand.
Pour chacune des heuristiques, ∃ αc tel que :
◮ Si α < αc , P = Θ(1). Temps de résolution linéaire en N .
◮ Si α > αc , − ln(P ) ∝ N (donc P → 0). Temps de résolution exponentiel
en N .
αc dépend de l’heuristique.
Mais (en physique...) la divergence des quantités intéressantes est universelle :
ne dépend que
◮ de la dimension de l’espace
◮ des symétries
◮ des quantités conservées
Graphes d’Erdös et Rényi
Deux exemples de comportements critiques, dans les graphes d’Erdös et
Rényi :
c ≥ 0 fixé. On se donne N points et, pour chaque couple de points, on place
une arête avec proba Nc .
Graphes d’Erdös et Rényi — être planaire
1. Proba que le graphe soit planaire :
1
p(c, N ) = ρ N 3 (c − 1)
avec :


quand x → −∞

 ρ(x) → 1
ρ(x) → 0
quand x → +∞



0 < ρ(x) < 1 ∀x ∈ R
0.98707 < ρ(0) < 0.99978
Graphes d’Erdös et Rényi — plus grande composante
2. Taille de la plus grande composante connexe :
t(c, N ) =
où 1 − f (c) = e−cf (c) .







1
c−1−ln(c)
2
3
ln(N ) si c < 1
O(N )
si c = 1
f (c) N
si c > 1
Graphes d’Erdös et Rényi — plus grande composante
2. Taille de la plus grande composante connexe :
t(c, N ) =
où 1 − f (c) = e−cf (c) .







1
c−1−ln(c)
ln(N ) si c < 1
2
3
O(N )
si c = 1
f (c) N
si c > 1
2
3
1
3
Intuition : ∃σ fonction telle que t(c, N ) ∼ N σ N (c − 1) avec :

6 ln |x|

σ(x)
∼

x2

σ(x) ∼ 2x



0 < σ(x) < 1
quand x → −∞
quand x → +∞
∀x ∈ IR
Heuristiques de la famille UC
Des graphes de type d’Erdös et Rényi interviennent dans 3-SAT aléatoire
(variables ≡ noeuds, 2-clauses ≡ arêtes).
Intuition pour la proba de trouver une solution du premier coup :
β
γ
ln[P (α, N )] = N π N (α − αc )
avec probablement γ = 13 .
Que vaut β ?
Heuristiques de la famille UC/GUC
ln[P (α, N )] =? N β π N γ (α − αc )
On sait que :
− ln(P ) ∼


√ cte
α−αc
quand α → αc − , N → +∞
 N f (α − αc ) quand α > αc , N → +∞
On sait aussi que f (x) ≥ Θ(x2 ) quand x → +∞.
Heuristiques de la famille UC/GUC
ln[P (α, N )] =? N β π N γ (α − αc )
On sait que :
− ln(P ) ∼


√ cte
α−αc
quand α → αc − , N → +∞
 N f (α − αc ) quand α > αc , N → +∞
On sait aussi que f (x) ≥ Θ(x2 ) quand x → +∞.
D’où probablement γ = 31 , β =
π(x) ∼


1
6
et
cte
√
x
 x 52
quand x → −∞
quand x → +∞
Résultats numériques
0.6
moyenne
x/6-0.327
x/6-0.327-1.3/x**2
0.5
log10(-log10(P))
0.4
0.3
0.2
0.1
0
-0.1
2.5
3
3.5
4
log10(N)
β≈
1
6
(0.13 < β < 0.19).
4.5
5
Vers une interprétation de ce
comportement
Interprétation
4
1/(1-x)
N=10000 M=25000
(UC)
3.5
3
alpha
2.5
2
1.5
1
0.5
0
0
0.2
0.4
0.6
p=C3/(C2+C3)
0.8
1
Interprétation
Fenêtre critique pour le graphe aléatoire en
1
1
N3
On s’approche tangentiellement → durée du séjour dans la fenêtre critique
≈ 11 .
N6
p 2
2
On doit absorber des composantes connexes de taille N 3 → C1 est en N 3 .
X
− ln(P ) = −
0≤T ≤N (t∗ −
−
|
1
N
1
6
hmax(C1 − 1, 0)i ln(1 −
)
{z
O(1)
1
)
2(N − T )
}
1
)
hmax(C1 − 1, 0)i ln(1 −
|
{z
}
2(N − T )
1
|
{z
}
∗
∗
1
N (t − 1 )≤T ≤N t
3
Θ(N )
1
N6
)
Θ( N
|
{z
}
X
Θ(N
1
d’où ln[P (α = αc )] ≈ N 6 .
1
1
N6
)
Interprétation
0.3
1.5
freq x N
1/3
100
fréquence
0.2
1
0.5
0
1000
0
1
2
C1 / N
3
1/3
0.1
10000
0
0
20
40
C1 maximal
60
Un comportement robuste ?
Pour l’heuristique HL, le graphe variables-clauses n’est plus poissonnien
1.2
Heuristique HL au point critique
rapport au cas poissonnien
1
0.8
0.6
0.4
0.2
0
0
2
4
6
8
degre des variables
10
12
14
16
Un comportement robuste ?
Pour l’heuristique HL, le graphe variables-clauses n’est plus poissonnien
1
6
Cependant on trouve encore − ln[P (α = αc , N )] ≃ N !
0.4
moyenne
x/6-0.466
x/6-0.466-1.8/x**2
0.3
log10(-log10(P))
0.2
0.1
0
-0.1
-0.2
-0.3
2.5
3
3.5
4
log10(N)
4.5
5
Conclusion
Conclusion
◮ On peut faire l’étude rigoureuse de différentes heuristiques simples de
résolution de 3-SAT aléatoire.
◮ → Il y a une sorte d’universalité critique.
Conclusion
◮ On peut faire l’étude rigoureuse de différentes heuristiques simples de
résolution de 3-SAT aléatoire.
◮ → Il y a une sorte d’universalité critique.
Perspectives :
◮ Utiliser des techniques de coalescence et fragmentation pour calculer la
fonction d’échelle / les exposants critiques.
◮ Trouver des contre-exemples aux exposants de la famille UC (CNFS ?)
O. Dubois, G. Dequen
1
◮ Si − ln[P (α = αc )] = Θ(N 6 ), le temps de résolution au point critique αc
1
N6
est-il en e
?
Conclusion
◮ On peut faire l’étude rigoureuse de différentes heuristiques simples de
résolution de 3-SAT aléatoire.
◮ → Il y a une sorte d’universalité critique.
Perspectives :
◮ Utiliser des techniques de coalescence et fragmentation pour calculer la
fonction d’échelle / les exposants critiques.
◮ Trouver des contre-exemples aux exposants de la famille UC (CNFS ?)
O. Dubois, G. Dequen
1
◮ Si − ln[P (α = αc )] = Θ(N 6 ), le temps de résolution au point critique αc
1
N6
est-il en e
?
FIN !

Documents pareils