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 !