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 2 N 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 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. temps de calcul médian 2000 1500 1000 500 0 0 2 4 6 8 10 α C 100 var. 75 var. 50 var. α
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 e OU i g OU h d OU g OU j g OU h OU i e OU i OU j VRAI VRAI e OU f a := vrai
Exemple 4. On choisit une variable : VRAI e OU i g OU h d OU g OU j g OU h OU i e OU i OU j VRAI VRAI e OU f a := vrai
Exemple 5. On l affecte : VRAI e OU i g OU h d OU g OU j g OU h OU i e OU i OU j VRAI VRAI e OU f a := vrai e := faux
Exemple 6. On réduit : VRAI i g OU h d OU g OU j g OU h OU i VRAI VRAI VRAI VRAI a := vrai e := faux
Exemple 7. Choix naturel : la clause unitaire. VRAI i g OU h d OU g OU j g OU h OU i VRAI VRAI VRAI VRAI a := vrai e := faux
Exemple 8. On affecte... VRAI i g OU h d OU g OU j g OU h OU i VRAI VRAI VRAI VRAI a := vrai e := faux i := vrai
Exemple 9. On réduit : VRAI VRAI g OU h d OU g OU j g OU h VRAI VRAI VRAI VRAI a := vrai e := faux i := vrai
Exemple 10. On choisit une variable : VRAI VRAI g OU h d OU g OU j g OU h VRAI VRAI VRAI VRAI a := vrai e := faux i := vrai
Exemple 11. On l affecte : VRAI VRAI g OU h d OU g OU j g OU h VRAI VRAI VRAI VRAI a := vrai e := faux i := vrai g := faux
Exemple 12. On réduit : VRAI VRAI h VRAI h VRAI VRAI VRAI VRAI a := vrai e := faux i := vrai g := faux
Exemple 13. Contradiction! VRAI VRAI h VRAI h VRAI VRAI VRAI VRAI a := vrai e := faux i := vrai g := faux
Algorithme DPLL Recherche de solution parcours d un arbre a := vrai a := faux b := vrai 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 e OU i g OU h d OU g OU j g OU h OU i e OU i OU j VRAI VRAI 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 e OU i g OU h d OU g OU j g OU h OU i e OU i OU j VRAI VRAI 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 e OU i g OU h d OU g OU j g OU h OU i e OU i OU j VRAI VRAI 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 e OU i g OU h d OU g OU j g OU h OU i e OU i OU j VRAI VRAI 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 2.5 3 3.5 4 alpha
Analyse de l heuristique UC
Analyse de UC Flot de clauses : C 3 C 2 C 1 3-clauses 2-clauses clauses unitaires
Analyse de UC Flot de clauses : w 2 w 1 e 3 e 2 e 1 C 1 3-clauses 2-clauses 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 par la donnée de C(T) := (C 3 (T), C 2 (T), C 1 (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 par la donnée de C(T) := (C 3 (T), C 2 (T), C 1 (T)). Franco Il y a concentration de la mesure autour des valeurs moyennes : il suffit de connaître C 1 (T), C 2 (T) et C 3 (T) 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 Markov» K( C C, T) : ( C 3 C 3 C 3 )( 1 3 N T ) C3 ( 3 2(N T) ) C 3 C 3 C 3 C 3 w 2 =0 ( C 3 C 3 w 2 ) C 2 z 2 =0 ( C 2 z 2 )( 1 2 N T { C 1 1 (1 δ C 1 =0) e 1 =0 ) C 2 z 2 ( 1 N T ( ) ( C 1 1 e1 1 2(N T) ) z2 z 2 w 1 =0 ( z2 w 1 ) e1 ( 1 1 N T δ C1 =C 1 +w 1 e 1 1 + δ C 1 =0δ C1 =w 1 } ) δ C2 =C 2 +w 2 z 2 ) C 1 1 e 1
Analyse de UC : passage au temps continu Chao & Franco D où pour les moyennes : C 3 (T + 1) C 3 (T) = 3C 3 N T C 2 (T + 1) C 2 (T) = 2C 2 N T + 1 2 C 1 (T + 1) C 1 (T) = 3C 3 N T C 2 N T E [C 1 > 0]
Analyse de UC : passage au temps continu Chao & Franco D où pour les moyennes : C 3 (T + 1) C 3 (T) = 3C 3 N T C 2 (T + 1) C 2 (T) = 2C 2 N T + 1 2 C 1 (T + 1) C 1 (T) = 3C 3 N T C 2 N T E [C 1 > 0] C j (T) varie sur des temps T d ordre 1 C j N =: c j(t := 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 C j s automoyennent N donc où les c j (t) sont quasi constants.
Analyse de UC : équations différentielles On trouve ainsi : dc 3 dt dc 2 dt dc 1 dt = 3c 3 1 t = 2c 2 1 t + 1 2 c 2 = 1 t ρ 1 3c 3 1 t où ρ 1 (t) = E [C 1 (T) > 0] est la proba qu il y ait des clauses unitaires au temps t. D où c 3 (t) = α(0)(1 t) 3 et c 2 (t) = 3 2 α(0)t(1 t)2. Absorption immédiate des clauses unitaires C 1 (T) = o(n) et c 1 (t) = 0 t. A-t-on bien ρ 1 = c 2 1 t?
Analyse de UC : étude de C 1 Proba de ne pas rencontrer de contradiction de T à T + 1 : ( 1 ) max(c1 1,0) 1 2(N T) d où la proba de ne pas rencontrer de contradiction de 0 à T = Nt : exp ( t 0 dt max(c ) 1 1, 0) 2(1 t) Il nous faut ρ 1 (t) = E [C 1 > 0] pour calculer c 1 (t) et vérifier que C 1 (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 C 1 : où a 2 := c 2 1 t. H(C 1 C 1 ) = w 1 0 e a 2 a 2 w 1 w 1! δ C 1 =C 1+w 1 1I C 1 1 (0) Soit µ(c 1 ) la mesure stationnaire et µ(y 1 ) sa fonction génératrice : µ(y 1 ) := C 1 0µ(C 1 )e y 1C 1 (0) entraîne : où ν(y 1 ) := y 1 + a 2 (e y 1 1). µ(y 1 ) = (1 a 2 ) eν(y 1) (1 e y 1 ) e ν(y 1) 1
Analyse de UC : ρ 1 (suite) De la fonction génératrice on tire d une part : (cohérent) et d autre part ρ 1 := E [C 1 > 0] = a 2 := c 2 1 t C 1 = a 2 2 2 a 2 1 a 2 qui est fini ( résolution sans contradiction possible) tant que a 2 = c 2 1 t < 1, i.e. α(t = 0) < α c := 8 3. Conclusion : si (et s. si) α < α c, la proba P de résoudre du premier coup (sans contradiction) est > 0 : ln(p) = 3α 16 1 arctan 1 8 2 3α 1 8 3α 1
Analyse de UC : P(α) 1 0.9 numerique pour 2500 variables numerique pour 12500 variables numerique pour 50000 variables theorique 0.8 0.7 0.6 P 0.5 0.4 0.3 0.2 0.1 ( ln(p(α)) = Θ 0 0 0.5 1 1.5 2 2.5 3 3.5 1 α αc alpha0 ) pour α α c.
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 c N.
Graphes d Erdös et Rényi être planaire 1. Proba que le graphe soit planaire : ) p(c, N) = ρ (N 1 3 (c 1) avec : ρ(x) 1 quand x ρ(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) = 1 c 1 ln(c) ln(n) si c < 1 O(N 2 3 ) si c = 1 f(c) N si c > 1 où 1 f(c) = e cf(c).
Graphes d Erdös et Rényi plus grande composante 2. Taille de la plus grande composante connexe : t(c, N) = 1 c 1 ln(c) ln(n) si c < 1 O(N 2 3 ) si c = 1 f(c) N si c > 1 où 1 f(c) = e cf(c). ( ) Intuition : σ fonction telle que t(c, N) N 2 3 σ N 1 3 (c 1) avec : σ(x) 6 ln x x 2 quand x σ(x) 2x quand x + 0 < σ(x) < 1 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 γ = 1 3. 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) Θ(x 2 ) 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) Θ(x 2 ) quand x +. D où probablement γ = 1 3, β = 1 6 et π(x) cte x quand x x 5 2 quand x +
Résultats numériques 0.6 0.5 moyenne x/6-0.327 x/6-0.327-1.3/x**2 0.4 log10(-log10(p)) 0.3 0.2 0.1 0-0.1 2.5 3 3.5 4 4.5 5 log10(n) β 1 6 (0.13 < β < 0.19).
Vers une interprétation de ce comportement
Interprétation 4 3.5 1/(1-x) N=10000 M=25000 (UC) 3 2.5 alpha 2 1.5 1 0.5 0 0 0.2 0.4 0.6 0.8 1 p=c3/(c2+c3)
Interprétation Fenêtre critique pour le graphe aléatoire en 1 N 3 1 On s approche tangentiellement durée du séjour dans la fenêtre critique. 1 N 1 6 On doit absorber des composantes connexes de taille N 2 3 C 1 est en ln(p) = 0 T N(t 1 N 1 6 ) max(c 1 1, 0) ln(1 1 2(N T) ) } {{ } O(1) N(t 1 N 1 6 d où ln[p(α = α c )] N 1 6. ) T Nt }{{} Θ(N 1 1 ) N 6 max(c 1 1, 0) }{{} Θ(N 1 3 ) N 2 3. 1 2(N T) ) ln(1 } {{ } Θ( 1 N )
Interprétation 0.3 100 1.5 fréquence 0.2 1000 freq x N 1/3 1 0.5 0 0 1 2 3 C 1 / N 1/3 0.1 10000 0 0 20 40 60 C 1 maximal
Un comportement robuste? Pour l heuristique HL, le graphe variables-clauses n est plus poissonnien 1.2 Heuristique HL au point critique 1 rapport au cas poissonnien 0.8 0.6 0.4 0.2 0 0 2 4 6 8 10 12 14 16 degre des variables
Un comportement robuste? Pour l heuristique HL, le graphe variables-clauses n est plus poissonnien Cependant on trouve encore ln[p(α = α c, N)] N 1 6! 0.4 0.3 moyenne x/6-0.466 x/6-0.466-1.8/x**2 0.2 log10(-log10(p)) 0.1 0-0.1-0.2-0.3 2.5 3 3.5 4 4.5 5 log10(n)
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 Si ln[p(α = α c )] = Θ(N 1 6 ), le temps de résolution au point critique α c est-il en e N 1 6?
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 Si ln[p(α = α c )] = Θ(N 1 6 ), le temps de résolution au point critique α c est-il en e N 1 6? FIN!