Explications théoriques du succès pratique des solveurs SAT?

43

Quelles sont les explications théoriques à la réussite pratique des solveurs SAT, et quelqu'un peut-il donner un aperçu et des explications de type "wikipedia"?

Par analogie, l' analyse lissée ( version arXiv ) de l'algorithme simplex explique très bien pourquoi elle fonctionne si bien dans la pratique, même si cela prend un temps exponentiel dans le pire des cas et est NP-puissant ( version arXiv ).

J'ai entendu parler un peu de choses comme les portes dérobées, la structure du graphe de clause et les transitions de phase, mais (1) je ne vois pas comment elles s'imbriquent pour donner une image plus grande (si c'est le cas), et (2) Je ne sais pas si cela explique vraiment pourquoi les solveurs SAT fonctionnent si bien, par exemple sur des instances industrielles. Aussi, quand il s'agit de choses comme la structure du graphe de clause: pourquoi les solveurs actuels sont-ils capables de tirer parti de certaines structures de graphe de clause?

Je ne trouve que les résultats concernant les transitions de phase partiellement satisfaisants à cet égard, du moins dans ma compréhension actuellement limitée. La littérature sur la transition de phase traite des instances de k-SAT aléatoire , mais cela explique-t-il réellement quelque chose à propos d'instances réelles? Je ne m'attends pas à ce que les instances réelles de SAT ressemblent à des instances aléatoires; devrais-je? Existe-t-il une raison de penser que les transitions de phase nous disent quelque chose, même intuitivement, sur des instances du monde réel, même si elles ne ressemblent pas à des instances aléatoires?

Des questions connexes qui aident, mais ne répondent pas complètement à ma question, en particulier à la demande de lier les éléments pour en faire une image cohérente:

Joshua Grochow
la source
5
Ce n'est pas une réponse, mais je ne pense pas que beaucoup de gens croient encore que les structures de graphes / portes dérobées peuvent expliquer les performances des solveurs SAT. Ils semblent plus pertinents pour des problèmes plus difficiles tels que #SAT, QBF ou la compilation de connaissances, où vous devez vraiment trouver des factorisations intelligentes, tout en explorant d’une manière ou d’une autre toute la structure. Pour votre question, je suis tenté de répondre "personne ne le sait vraiment et c'est un domaine de recherche actif". Mais je dois rassembler des références pour montrer ce que les gens essaient et il se peut que quelqu'un ayant une vision plus large que moi puisse donner une meilleure réponse.
holf
2
@ Joshua: La méthode simplex est même puissante pour PSPACE (Fearnley et Savani, STOC 15).
Rahul Savani
1
usually
3
@TayfunPay: Je ne remettais pas en question votre expérience - en fait, je pense à 100% que les problèmes "réels" se traduisent par des instances SAT qui ne sont pas proches de la transition de phase. Mais je ne pense pas que cela explique la facilité de telles instances, car ces instances ne sont pas aléatoires , de sorte que la transition de phase (en théorie) devrait avoir peu à dire sur elles (soit la dureté, soit la facilité).
Joshua Grochow
2
Cela a déjà été mentionné ailleurs, mais il est important de noter que les transitions de phase et de densité variable variable ne sont pertinentes que pour k-SAT aléatoire et n'ont rien à voir avec la dureté des instances provenant de problèmes industriels ou combinatoires. Ainsi, la plupart de la discussion ci-dessus est à côté du point. En outre, il convient de noter qu'en ce qui concerne k-SAT aléatoire, il n'y a pas de véritable modèle facile-difficile-facile - pour les systèmes de preuve où nous avons des limites inférieures pour les formules k-CNF générées de manière aléatoire, les formules restent exponentiellement dures pour des constantes arbitrairement grandes densités supérieures au seuil.
Jakob Nordstrom

Réponses:

21

Je suppose que vous faites référence aux solveurs CDCL SAT sur des ensembles de données de référence tels que ceux utilisés dans le concours SAT . Ces programmes sont basés sur de nombreuses heuristiques et de nombreuses optimisations. Il y a eu de très bonnes introductions sur leur travail lors de l' atelier sur les fondements théoriques de la résolution appliquée du SAT à Banff en 2014 ( vidéos ).

Ces algorithmes sont basés sur l'algorithme de retour arrière DPLL qui tente de trouver une affectation satisfaisante en définissant des valeurs pour les variables et les retours arrière lorsqu'il détecte un conflit. Les gens ont examiné l’impact de ces heuristiques. Par exemple voir

Il semble que l’efficacité de ces solveurs SAT sur les benchmarks provienne principalement de deux heuristiques (et leurs variantes):

  1. Sap heuristique VSIDS sélectionnant quelle variable à brancher sur la prochaine.
  2. CDCL: heuristique d'apprentissage de clause pilotée par un conflit qui apprend une nouvelle clause à partir d'un conflit.

Il est bien connu que les preuves DPLL correspondent à des preuves en résolution. Sans CDCL, les seules preuves de résolution que nous puissions obtenir sont les preuves de résolution d'arborescence qui sont beaucoup plus faibles que les preuves de résolution générales.

Il y a des résultats qui montrent avec CDCL que nous pouvons obtenir n'importe quelle preuve de résolution générale. Cependant, il y a des réserves, ils ont besoin de nombreux redémarrages artificiels, ramifications artificielles et / ou prétraitements particuliers, de sorte qu'il n'est pas clair si ces programmes sont proches de ce que ces programmes font en pratique. Voir par exemple l'article suivant pour plus de détails:


CDCL coupe essentiellement des branches de l'espace de recherche. Il existe différentes manières de dériver une nouvelle clause savante d’un conflit. Idéalement, nous ajouterions un ensemble de clauses minimales qui impliqueraient le conflit, mais dans la pratique, cela peut être volumineux et coûter cher à calculer. Les principaux solveurs SAT suppriment souvent les clauses apprises régulièrement, ce qui est utile dans la pratique.


αF(v,i)i0<α<1vn

i<nF(v,i)α(ni)

Intuitivement, on peut dire que cela tente de mettre en évidence des variables qui ont été systématiquement impliquées dans les conflits récents. Vous pouvez également y voir un moyen simpliste mais extrêmement économique de prédire quelles variables seront impliquées dans le prochain conflit. Donc, VSIDS se branche en premier sur ces variables. On peut affirmer que l’algorithme est essentiellement un algorithme rapide, trouver rapidement les conflits. Rapide est lié à un plus petit nombre de variables, ce qui signifie le blocage de grands sous-arbres de l'arbre de recherche. Mais c’est surtout de l’intuition, personne n’a formalisé cela très soigneusement pour le tester sur des ensembles de données SAT. Exécuter un solveur SAT sur l’un de ces ensembles de données n’est pas bon marché, encore moins le comparer aux décisions optimales (plus petite extension de l’affectation actuelle à des variables qui violeraient l’une des clauses). VSIDS dépend également des variables que nous modifions lors de chaque conflit. Il existe différentes façons de définir le moment où une variable est impliquée dans un conflit.


Certains résultats montrent que la mise en œuvre particulière de ces idées correspond à une centralité pondérée dans le temps des sommets dans les graphiques dynamiques.

Il est également suggéré d'exclure les instances contradictoires telles que celles basées sur des problèmes NP-hard, des primitives de cryptographie et des instances aléatoires (pour lesquelles les solveurs CDCL SAT ne sont pas bons), le reste des instances provenant d'éléments très bien structurés tels que la vérification de logiciels et de matériel, et d'une manière ou d'une autre. Les structures sont exploitées par les solveurs CDCL SAT (de nombreuses idées ont été mentionnées, comme les portes dérobées, les variables gelées, etc.), mais autant que je sache, ce sont pour la plupart des idées et ne constituent pas une preuve solide, théorique ou expérimentale, pour les corroborer. Je pense qu’il faudrait bien définir rigoureusement le problème et montrer que les instances sur lesquelles ces algorithmes fonctionnent bien ont la propriété, puis montrer que ces algorithmes exploitent ces propriétés.


Certaines personnes insistent pour que le ratio de clause et les seuils soient le seul jeu en ville. Cela est certainement faux, comme le sait quiconque est légèrement familiarisé avec le fonctionnement des solveurs SAT industriels ou ayant une connaissance de la complexité de la preuve. Dans la pratique, un solveur SAT fonctionne bien ou pas dans de nombreux cas, et le ratio de clause n’est que l’une des conséquences possibles. Je pense que l'enquête suivante est un bon point de départ pour en savoir plus sur les liens entre la complexité de la preuve, les solveurs SAT et la perspective:

De manière intéressante, même le phénomène de seuil est plus compliqué que la plupart des gens ne le pensent, Moshe Vardi a déclaré dans son discours " Transitions de phase et complexité de calcul " que le temps de traitement moyen de GRASP reste exponentiel pour les formules 3SAT aléatoires après le seuil, mais que l’exposant diminue (autant que possible). on ne sait pas à quelle vitesse cela diminue).


Pourquoi étudions-nous les solveurs SAT (en tant que théoriciens de la complexité)? Je pense que la réponse est la même que pour les autres algorithmes: 1. comparez-les, 2. trouvez leurs limites, 3. concevez-en de meilleurs, 4. répondez aux questions fondamentales de la théorie de la complexité.

Lors de la modélisation d'une heuristique, nous remplaçons souvent l'heuristique par le non-déterminisme. La question devient alors: est-ce un remplacement "juste"? Et ici, par juste, je veux dire à quel point le modèle nous aide à répondre à la question ci-dessus.

Lorsque nous modélisons un solveur SAT en tant que système de preuve, nous lui montrons en partie une limitation, car l'algorithme sera inefficace pour les instructions dont les limites sont inférieures dans le système de preuve. Mais il y a toujours un écart entre ce que l'algorithme trouve réellement et la preuve optimale dans le système de preuve. Nous devons donc montrer que l’inverse aussi, c’est-à-dire que l’algorithme peut trouver des preuves aussi bonnes que celles du système de preuve. Nous ne sommes pas près de répondre à cette question, mais la quantité d'heuristique remplacée par le non-déterminisme définit la proximité entre le modèle et le système de preuve. Je ne m'attends pas à ce que nous abandonnions complètement le remplacement de l'heuristique par le non-déterminisme, sinon nous obtiendrions des résultats d'automatisabilité qui ont des conséquences sur les problèmes ouverts en crypto, etc.

La question qui se pose lorsque l'on regarde un modèle devient alors: dans quelle mesure les modèles aident-ils à expliquer pourquoi le solveur SAT A est meilleur que le solveur B SAT? Dans quelle mesure aident-ils à développer de meilleurs solveurs SAT? SAT Solver trouve-t-il dans la pratique des preuves proches des preuves optimales dans le modèle? ... Nous devons également modéliser les exemples pratiques.

En ce qui concerne l’intuition selon laquelle les solveurs CDCL SAT "exploite la structure des instances pratiques" (quelle qu’elle soit), c’est l’intuition généralement acceptée, je pense. La vraie question est de donner une explication convaincante de ce que cela signifie et de démontrer que cela est vraiment vrai.

Voir aussi la réponse de Jakob Nordstrom pour des développements plus récents.

Kaveh
la source
1
Cela est-il valable pour les instances SAT dérivées de la factorisation d'entiers?
Mohammad Al-Turkistany
1
heuristicheuristics
Tayfun Pay
1
@ Martin, sans CDCL, nous n'obtenons que des formes de résolution très restreintes (je ne me souviens pas exactement de quoi je me mets à l'esprit). Les résultats de Paul Beame et d’autres montrent qu’avec CDCL et les redémarrages, vous pouvez obtenir une preuve de résolution générale (toutefois, la sélection des points de redémarrage et des branches est artificielle), voir le document de Beame pour plus de détails.
Kaveh
3
@Martin, voir aussi l'enquête de Jakob Nordstrom: csc.kth.se/~jakobn/project-proofcplx/docs/…
Kaveh
1
En ce qui concerne la complexité et la preuve CDCL, il a été montré par Pipatsrisawat et Darwiche sciencedirect.com/science/article/pii/S0004370210001669 et indépendamment par Atserias, Fichte et Thurley jair.org/papers/paper3152.html que CDCL considéré comme un système de preuve peut polynomiale simuler la résolution (les papiers donnent des résultats différents, mais les épreuves des deux papiers peuvent être utilisées pour obtenir les résultats dans l'autre papier). Une différence importante par rapport aux articles précédents dans ce domaine de recherche est qu'il n'y a rien d'artificiel dans ces modèles de CDCL. [À suivre ...]
Jakob Nordstrom
17

Je tape ceci assez rapidement en raison de contraintes de temps sévères (et je n'ai même pas eu à répondre plus tôt pour la même raison), mais je pensais que j'essaierais au moins de donner ma part avec mes deux centimes.

Je pense que c'est une très bonne question et que j'ai passé pas mal de temps au cours des dernières années à examiner cela. (Divulgation complète: j'ai reçu une grande partie de mon financement actuel précisément pour tenter de trouver des réponses à des questions de ce type, puis potentiellement pour convertir des informations plus approfondies dans SAT en solutions plus efficaces pour résoudre les SAT.)

Si on devait donner une réponse en une phrase, alors je pense

personne ne sait vraiment et c'est un domaine de recherche actif

est à peu près aussi bon qu'il obtient. Sauf que cela laisse plus de place à plus d'activité, surtout du côté théorique.

Certaines explications proposées (non mutuellement exclusives), qui ont déjà été discutées dans d’autres réponses et commentaires, sont

  • a) des portes dérobées,
  • (b) considérations de complexité paramétrées,
  • (c) structure graphique du problème de la CNF,
  • (d) des considérations de complexité de la preuve, et
  • e) transitions de phase.

À partir de la fin (e), il semble y avoir une certaine confusion concernant les transitions de phase. La réponse courte ici est qu’il n’ya aucune raison de penser que le rapport clauses-variables est pertinent pour les problèmes appliqués ou les problèmes combinatoires théoriques (ou instances construites). Mais pour une raison quelconque, il est assez courant de penser, dans la partie appliquée de la communauté SAT, que le ratio clauses / variables devrait être en quelque sorte une mesure généralement pertinente. Le rapport clause / variable est très pertinent pour k-SAT aléatoire, mais pas pour les autres modèles.

Mon sentiment est que les coulisses (a) ont été une explication populaire, mais je n’ai personnellement pas eu la preuve convaincante que cela explique ce qui se passe dans la pratique.

La complexité paramétrée (b) fournit une belle théorie sur certains aspects de la SAT, et une hypothèse très intéressante est que les instances de SAT sont faciles car elles ont tendance à être "proches d'un îlot de tractabilité". Je pense que cette hypothèse ouvre de nombreuses pistes de recherche passionnantes. Comme indiqué dans certaines réponses, il existe de nombreux liens entre (a) et (b). Cependant, à ce jour, rien ne prouve que la complexité paramétrée soit trop en corrélation avec ce qui se passe dans la pratique. En particulier, il semble que les instances traitables puissent être très, très difficiles en pratique, et les instances dépourvues de petites portes dérobées peuvent encore être très faciles.

L'explication qui me semble la plus crédible pour les instances industrielles est (c), à savoir que la structure (graphique) des formules CNF en question devrait être corrélée à la performance SAT pratique. L'idée ici est que les variables et les clauses d'instances industrielles peuvent être regroupées dans des communautés bien connectées avec peu de connexions entre elles, et que les solveurs SAT exploitent en quelque sorte cette structure. Malheureusement, il semble assez difficile de cerner le problème de manière plus rigoureuse et, malheureusement, cette région souffre d’un certain battage médiatique. Les explications proposées que j'ai vues jusqu'à présent dans les journaux sont plutôt insatisfaisantes et les modèles semblent faciles à abattre. Le problème semble être que si on veut vraiment le faire à fond, les calculs deviennent alors très difficiles (parce que le problème est complexe) et extrêmement désordonnés (car votre modèle doit être suffisamment proche de la réalité pour obtenir des résultats pertinents). En particulier, les articles que j'ai vus expliquant que la performance de l'heuristique VSIDS (somme décroissante indépendante de l'état variable) pour les choix de variables fonctionne bien car elle explore les communautés dans la représentation graphique des instances ne sont guère convaincantes, bien que l'hypothèse en tant que telle reste très attrayant.

Un domaine de recherche que j'ai personnellement étudié est de savoir si la performance SAT pratique est en quelque sorte en corrélation avec les mesures de complexité de preuve des formules CNF en question. Malheureusement, la réponse courte semble être qu’il n’ya pas vraiment de lien clair et convaincant. Il se peut qu’il existe encore des corrélations non triviales (c’est quelque chose que nous étudions actuellement de différentes manières), mais il semble que la théorie soit trop belle et nette et que la réalité soit trop confuse pour qu’il y ait un très bon match. (Concernant le document concernant les mesures de complexité de la preuve et la dureté pratique du SATde Järvisalo, Matsliah, Nordström et Živný dans le document CP '12, il est apparu que des expériences plus détaillées fournissaient une image beaucoup plus complexe avec des conclusions moins claires - nous espérons obtenir une version complète de la revue traitant de cette décennie, mais c’est compliqué, même si, espérons-le, intéressant.)

Un autre domaine de travail lié à la complexité de la preuve consiste à modéliser des solveurs SAT de pointe en tant que systèmes de preuve et à prouver des théorèmes dans ces modèles afin de déduire les propriétés des solveurs correspondants. C’est un peu un champ de mines, cependant, dans la mesure où des choix de conception modestes et apparemment inoffensifs du côté du modèle théorique peuvent avoir pour résultat que les résultats sont à peu près complètement dénués de pertinence d’un point de vue pratique. D'un autre côté, si l'on veut un modèle théorique assez proche de la réalité pour donner des résultats pertinents, ce modèle devient extrêmement compliqué. (Cela s'explique par le fait que les performances du solveur SAT dépendent de l'historique global de tout ce qui s'est passé jusqu'à présent de manière non triviale, ce qui signifie que le modèle ne peut pas être modulaire dans la manière habituelle de configurer nos systèmes de preuve, qu'il s'agisse d'une étape de dérivation particulière ou non. "correct"

Pipatsrisawat et Darwiche 2011) et [Atserias, Fichte et Thurley 2011] et [Atserias, Fichte et Thurley 2011], deux articles qui méritent d’être mentionnés comme des exceptions à cette règle, ont toutefois montré possibilité de simuler de manière polynomiale une résolution générale complète. Il y a une assez longue liste d'articles précédant [PD11] et [AFT11] qui réclament essentiellement le même résultat, mais ils ont tous de sérieux problèmes de modélisation. (Il est vrai que [PD11] et [AFT11] ont également besoin de certaines hypothèses pour fonctionner, mais il s'agit en gros des hypothèses minimales auxquelles vous vous attendriez, à moins que vous ne demandiez des documents qui montreraient également que la hiérarchie de complexité paramétrée s'effondre.)

Encore une fois, j'écris tout cela très rapidement, mais si tout ce qui précède suscite un intérêt substantiel, je pourrais essayer de développer (bien que cela puisse prendre un certain temps pour revenir à cela encore une fois, n'hésitez pas à me contacter si est quelque chose que vous voudriez que je commente). Comme moyen rapide de fournir des références, permettez-moi de faire quelques self-plugs sans vergogne (bien que la honte soit quelque peu atténuée lorsque je vois que certains commentaires ont également cité certaines de ces références):

Discussion de type tutoriel sur l'interaction entre la complexité de la preuve et la résolution SAT donnée à l'université internationale d'été sur la satisfiabilité, les théories de modulo de satisfiabilité et le raisonnement automatisé en 2016 avec de nombreuses références complètes à la fin des diapositives: http://www.csc .kth.se / ~ jakobn / research / TalkInterplaySummerSchool2016.pdf

Étude légèrement plus récente et plus brève sur le sondage Comprendre la résolution SAT basée sur les conflits du point de vue de la complexité de la preuve à partir de début 2017 (avec également les références complètes à la fin): http://www.csc.kth.se/~jakobn/research /TalkProofComplexityLensCDCL1702.pdf

Enquête sur les liens entre la complexité de la preuve et la résolution SAT: http://www.csc.kth.se/~jakobn/research/InterplayProofCplxSAT.pdf [Référence bibliographique: Jakob Nordström. Sur l'interaction entre la complexité de la preuve et la résolution SAT. ACM SIGLOG News, volume 2, numéro 3, pages 19-44, juillet 2015. (Version légèrement modifiée avec quelques fautes de frappe corrigées.)]

Papier SAT '16 avec CDCL modélisé fidèlement comme système de preuve: http://www.csc.kth.se/~jakobn/research/Trade-offsTimeMemoryModelCDCL_SAT.pdf [Référence bibliographique: Jan Elffers, Jan Johannsen, Massimo Lauria, Massimo Lauria, Thomas Magnard , Jakob Nordström et Marc Vinyals. Compromis entre temps et mémoire dans un modèle plus étroit de solveurs CDCL SAT. Dans Actes de la 19e Conférence internationale sur la théorie et les applications du test de satisfiabilité (SAT '16), Notes de cours en informatique, volume 9710, pages 160-176, juillet 2016.]

Jakob Nordstrom
la source
16

Permettez-moi d'ajouter mes deux cents de compréhension à cela, même si je n'ai jamais travaillé dans la région.

Vous posez l'une des deux questions suivantes: "Quelles sont toutes les approches connues pour prouver l'efficacité théorique d'un solveur SAT dans certains types d'instances" et "Pourquoi les solveurs SAT sont-ils efficaces en réalité".

Pour la première question, je vais simplement vous diriger vers les recherches de Stefan Szeider. Il me semble être actuellement le domaine le plus actif en matière de portes dérobées et de paramétrisations FPT de la SAT (qui inclut à la fois des approches structurelles telles que les mesures de type largeur d'arbre et les ensembles de portes dérobées, ainsi qu'un mélange des deux).

Pour cette dernière question, pour être honnête, cette question exacte a été débattue lors de chaque atelier de résolution de SAT auquel j'ai assisté (y compris les dernières années), ce n'est donc pas une question réglée. Mais mon impression est la suivante.

Tout d'abord, vous devez quantifier ou limiter ce que vous entendez par "en réalité". Ce n'est pas vrai que les solveurs SAT sont universellement bons pour tous les problèmes que vous rencontrez (bien sûr), et entre différents problèmes, vous finissez par avoir besoin de stratégies différentes. Par exemple, il y a plusieurs succès récents où des conjectures mathématiques ont été vérifiées ou resserrées par une énorme recherche sur ordinateur assistée par un solveur SAT. Dans ce cas, apparemment, la plupart du temps, les améliorations intelligentes et les heuristiques de type CDCL que les solveurs modernes utilisent habituellement ne vous achètent pas vraiment trop de puissance, et le jeu se résume à une manière intelligente de diviser votre problème source en parties, suivies par (essentiellement) un algorithme de branchement en force brute avec un facteur de constante faible dans le temps d'exécution.

Je dépasse peut-être légèrement ce point, mais mon point était que lorsque les solveurs SAT ont attaqué, par exemple, la conjecture d'Erdos Discrepancy, ils ont réussi pour une raison différente de celle utilisée pour résoudre des instances industrielles dérivées de tests de circuits.

Nous devons donc nous demander pourquoi les solveurs basés sur CDCL fonctionnent si bien sur des instances industrielles, par exemple, de vérification de circuit (test d'équivalence de circuit)? Je penseque la vue la plus puissante (ou la vue consensuelle) est la stratégie de recherche d’un solveur CDCL qui s’harmonise très bien avec la structure de ces instances. Cela signifie, par exemple, que les circuits sont constitués de parties relativement complexes (appelées clusters), interconnectées entre elles par des connexions relativement moins nombreuses et plus simples, éventuellement de manière hiérarchique; et que les résolveurs de CDCL avec toutes leurs heuristiques sont très doués pour exploiter (de facto) ceci et "projeter" ces clusters sur les variables partagées, de la manière ou de l'ordre qui leur est le plus utile pour vérifier le circuit en question. Mais il semble également que l'opinion exprimée soit encore insuffisante (par exemple, nous ne pourrons probablement pas expliquer théoriquement l'efficacité des solveurs CDCL SAT dans ce domaine en nous référant simplement à la structure de graphe de l'instance).

Les paramétrages traitables expliquent-ils en quelque sorte ces dernières? Pour être honnête, je ne sais pas. Je pense qu'il y a probablement un effet puissant dans le jeu que les instances du monde réel ne sont pas le pire des cas, pas plus qu'elles ne sont (probablement) véritablement des moyennes, selon la distribution des instances que nous sommes en mesure de gérer. Mais ça vaut probablement toujours la peine de demander.

Magnus Wahlström
la source
2
Magnus, vous avez certainement plus d'expérience dans ce domaine que quiconque ayant tenté de répondre à cette question jusqu'à présent. Lorsque j’ai déclaré «mes deux cents», je faisais référence au fait que j’avais étudié un groupe spécifique de problèmes NP-Complete dans ma thèse et à la façon dont les résolveurs de CSP et de SAT tentaient de résoudre les nombreuses instances de ces problèmes. J'ai également environ un an d'expérience dans l'utilisation de solutions CSP et SAT sur le lieu de travail, mais encore une fois, cela n'est même pas proche de vos 10 ans d'expérience dans ce domaine. Vos "deux cents" valent probablement "deux pépites d'or". Une question.
Tayfun Pay
1
Vous déclarez ce qui suit dans votre réponse "Ce n'est pas vrai que les solveurs SAT sont universellement bons pour tous les problèmes auxquels vous les jetez ....". Avez-vous pu examiner le rapport entre les clauses et les variables, c = m / n, pour ces instances? En d'autres termes, étaient-ils dans la région dure, c = ~ 4.2 ou pas? Parce que ce que j’ai vécu, c’est que vous vous retrouvez avec beaucoup de variables lorsque vous réduisez une instance CSP en une instance SAT, ce qui est généralement dû à cette raison et non pas au fait qu’elle se trouve dans la région difficile, le solveur SAT prend plus de temps. temps pour résoudre.
Tayfun Pay
1
D'autre part, si vous savez que ces instances se sont retrouvées dans la région difficile de SAT, c = ~ 4.2, puis-je savoir quel était ce problème réel? Je serais très intéressé de savoir quels problèmes de la vie réelle se retrouvent dans la difficile région de la SAT quand ils y sont réduits. Merci
Tayfun Pay
2
Honnêtement, je n’ai que peu d’expérience dans la résolution pratique de SAT. Tout mon travail actuel a été du côté de la théorie pure de cette question. Quoi qu’il en soit, en ce qui concerne votre question, j’ai l’impression que les résultats pour la densité aléatoire de k-SAT et de clauses (que vous mentionnez) ne s’appliquent réellement que si votre instance d’entrée est littéralement une formule uniformément aléatoire. Notez également que la borne ~ 4.2 ne s'applique que si la formule est 3-SAT, par opposition à une formule de longueur variable de CNF.
Magnus Wahlström
1
Et par «problèmes qui ne sont pas bien résolus par les solveurs SAT», j’entends principalement des problèmes qui sont supposés être véritablement insolubles, comme casser une bonne crypto. Cependant, il existe également des formules qu'aucun résolveur CDCL ne sera en mesure de résoudre efficacement en raison de limites inférieures de la preuve, telles que les formules de principe de pigeon-hole. J'ai vu au moins une conversation avec le message "Les solveurs CDCL SAT ont échoué", où un peu de fouille révèle que le codage de leur problème cache un aspect semblable à un casse-tête (contenant par exemple une variante du problème de l'assignation). Malheureusement, je ne me souviens pas des détails.
Magnus Wahlström
15

Un article de Matti Järvisalo, Arie Matsliah, Jakob Nordström et Stanislav Živný, dans le document CP12, intitulé «Relier les mesures de complexité de la preuve et la dureté pratique de la SAT », tente de lier la dureté ou la facilité de résolution de certaines formules par les solveurs de la CDCL avec résolution de résolution mesures de complexité, en particulier espace de résolution. Les résultats sont quelque peu mitigés, mais je pense que c'est un pas dans la bonne direction.

Jan Johannsen
la source
Malheureusement, la réponse courte semble être qu'il n'y a pas vraiment de lien clair et convaincant avec les mesures de complexité de la preuve. Il se peut qu’il existe toujours des corrélations non triviales, mais il semble que la théorie soit trop claire et que la réalité soit trop confuse pour qu’il y ait un très bon match. En ce qui concerne le document "Relating Proof Complexity Measures", il est apparu que des expériences plus détaillées fournissaient une image beaucoup plus complexe avec des conclusions moins claires --- nous espérons obtenir une version complète du journal rendant compte de cette décennie, mais c'est compliqué , mais j'espère toujours intéressant.
Jakob Nordstrom
15

Je ne suis pas un expert dans ce domaine, mais je pense que les éléments aléatoires de transition SAT / phase ne sont plus ou moins complètement liés aux applications industrielles / pratiques.

Par exemple, les très bons solveurs pour les instances aléatoires (tels que https://www.gableske.net/dimetheus ) sont basés sur les méthodes de physique statistique (propagation de croyance, etc.) je crois, alors que les très bons solveurs «généraux» (tels en tant que http://fmv.jku.at/lingeling/ ) utilisent des techniques sans rapport (plus exactement ce dont Kaveh parlait), je crois.

Mais, comme je l'ai dit, ne me croyez peut-être pas sur parole. cela vient d'un non-expert.

Ryan O'Donnell
la source
Oui. SAT aléatoire et SAT industriel sont des jeux complètement différents, et les méthodes utilisées sont différentes. En outre, si vous souhaitez résoudre des instances combinatoires très difficiles, d'autres techniques ont plus de succès (par exemple, si le problème est suffisamment complexe, alors l'apprentissage par clause ne rapporte pas vraiment, sauf peut-être très localement). Cependant, il semble assez répandu (du moins du côté appliqué de la communauté SAT) que le rapport entre les clauses et les variables soit pertinent pour toute instance CNF SAT et pas uniquement pour des instances aléatoires.
Jakob Nordstrom