Étant donné une instance de SAT, je voudrais pouvoir estimer à quel point il sera difficile de résoudre l'instance.
Une façon consiste à exécuter des solveurs existants, mais ce genre de résultat va à l'encontre du but d'estimer la difficulté. Une deuxième façon pourrait être de regarder le rapport des clauses aux variables, comme cela est fait pour les transitions de phase dans random-SAT, mais je suis sûr que de meilleures méthodes existent.
Étant donné une instance de SAT, existe-t-il des heuristiques rapides pour mesurer la difficulté? La seule condition est que ces heuristiques soient plus rapides que l'exécution de solveurs SAT existants sur l'instance.
Question connexe
Quels problèmes SAT sont faciles? sur cstheory.SE. Cette question porte sur des ensembles d'instances utilisables. C'est une question similaire, mais pas exactement la même. Je suis vraiment intéressé par une heuristique qui, étant donné une seule instance, fait une sorte de supposition semi-intelligente de savoir si l'instance sera difficile à résoudre.
la source
Réponses:
En général, c'est une question de recherche très pertinente et intéressante. "Une façon est d'exécuter les solveurs existants ..." et qu'est-ce que cela nous dirait même exactement? Nous pourrions voir empiriquement qu'une instance semble difficile pour un solveur spécifique ou un algorithme / heuristique spécifique, mais que dit-elle vraiment sur la dureté de l'instance?
Une voie qui a été poursuivie est l'identification de diverses propriétés structurelles des instances qui conduisent à des algorithmes efficaces. Ces propriétés sont en effet préférables à être "facilement" identifiables. Un exemple est la topologie du graphe de contraintes sous-jacent, mesurée à l'aide de divers paramètres de largeur de graphe. Par exemple, il est connu qu'une instance est résoluble en temps polynomial si la largeur d'arbre du graphe de contraintes sous-jacent est limitée par une constante.
Une autre approche s'est concentrée sur le rôle de la structure cachée des instances. Un exemple est l' ensemble de portes dérobées , c'est-à-dire l'ensemble de variables telles que lorsqu'elles sont instanciées, le problème restant se simplifie en une classe traitable. Par exemple, Williams et al., 2003 [1] montrent que même en tenant compte du coût de la recherche de variables de porte dérobée, on peut toujours obtenir un avantage de calcul global en se concentrant sur un ensemble de porte dérobée, à condition que l'ensemble soit suffisamment petit. De plus, Dilkina et al., 2007 [2] notent qu'un solveur appelé Satz-Rand est remarquablement bon pour trouver de petites portes dérobées solides sur une gamme de domaines expérimentaux.
Plus récemment, Ansotegui et al., 2008 [3] proposent l'utilisation de la complexité spatiale arborescente comme mesure pour les solveurs basés sur DPLL. Ils prouvent que l'espace à limites constantes implique également l'existence d'un algorithme de décision temporelle polynomiale, l'espace étant le degré du polynôme (Théorème 6 dans l'article). De plus, ils montrent que l'espace est plus petit que la taille des cycles-cutets. En fait, sous certaines hypothèses, l'espace est également plus petit que la taille des portes dérobées.
Ils officialisent également ce que je pense que vous recherchez, à savoir:
[1] Williams, Ryan, Carla P. Gomes et Bart Selman. "Backdoors à la complexité typique de cas." Conférence conjointe internationale sur l'intelligence artificielle. Vol. 18, 2003.
[2] Dilkina, Bistra, Carla Gomes et Ashish Sabharwal. "Compromis dans la complexité de la détection de porte dérobée." Principes et pratique de la programmation par contraintes (CP 2007), pp. 256-270, 2007.
[3] Ansótegui, Carlos, Maria Luisa Bonet, Jordi Levy et Felip Manya. "Mesurer la dureté des instances SAT." Dans Actes de la 23e Conférence nationale sur l'intelligence artificielle (AAAI'08), pp. 222-228, 2008.
la source
Puisque vous connaissez la transition de phase, permettez-moi de mentionner quelques autres vérifications simples que je connais (qui sont probablement subsumées par l'analyse du graphe de contraintes):
[1] https://arxiv.org/pdf/1903.03592.pdf
la source
En plus de l'excellente réponse de Juho, voici une autre approche:
Ercsey-Ravasz & Toroczkai, La dureté d'optimisation comme chaos transitoire dans une approche analogique de la satisfaction des contraintes , Nature Physics volume 7, pages 966–970 (2011).
Cette approche consiste à réécrire le problème SAT dans un système dynamique, où tout attracteur du système est une solution au problème SAT. Les bassins d'attraction du système sont plus fractals à mesure que le problème devient plus difficile, et donc la "difficulté" de l'instance SAT peut être mesurée en examinant à quel point les transitoires sont chaotiques avant la convergence du système.
En pratique, cela signifie démarrer un tas de solveurs à partir de différentes positions initiales et examiner la vitesse à laquelle les solveurs échappent aux transitoires chaotiques avant d'arriver à un attracteur.
Il n'est pas difficile de trouver un système dynamique pour lequel les "solutions" sont des solutions à un problème SAT donné, mais il est un peu plus difficile de s'assurer que les solutions sont toutes attractives et non répulsives. Leur solution est d'introduire des variables énergétiques (semblables aux multiplicateurs de Lagrange) pour représenter à quel point une contrainte est violée et d'essayer d'obtenir que le système minimise l'énergie du système.
Fait intéressant, en utilisant leur système dynamique, vous pouvez résoudre les problèmes SAT en temps polynomial sur un ordinateur analogique, ce qui en soi est un résultat remarquable. Il y a un hic; cela peut nécessiter des tensions exponentiellement grandes pour représenter les variables d'énergie, donc malheureusement vous ne pouvez pas le réaliser sur du matériel physique.
la source