Meilleurs limites supérieures sur SAT


43

Dans un autre fil de discussion , Joe Fitzsimons s'est interrogé sur "la meilleure limite inférieure actuelle de 3SAT".

J'aimerais faire l'inverse: quelle est la meilleure limite supérieure actuelle sur 3SAT? En d'autres termes, quelle est la complexité temporelle du solveur SAT le plus efficace?

En particulier, est-il envisageable de trouver un algorithme sous-exponentiel (mais super-polynomial) pour SAT?


2
Je ne connais pas les résultats analytiques, mais vous pouvez trouver des résultats expérimentaux ici baldur.iti.uka.de/sat-race-2010/results.html (voir les liens "HTML")
Radu GRIGore le

1
le titre de cette question est un peu trompeur, en raison de l'existence de cette question: cstheory.stackexchange.com/questions/1295/sat-solver-download . Je pense que vous pourriez reformuler comme «Meilleurs limites supérieures sur SAT»?
Suresh Venkat

@Suresh: La question à laquelle vous faites référence concerne "#SAT", alors que celle-ci correspond à SAT. De plus, cette question a été posée environ une semaine après celle-ci. Quoi qu'il en soit, suggérez-vous toujours de changer le titre de celui-ci?
MS Dousti

oui, car un "solveur SAT" est un objet bien connu, une base de code permettant de résoudre SAT. Google va être confus et rediriger les gens à la recherche de code ici :).
Suresh Venkat

4
En ce qui concerne la motivation de cette question, je pensais que plusieurs personnes avaient essayé les solveurs SAT sur les instances 17x17. Cela semble être la frontière de ce qui peut être traité avec un solveur SAT. Vous pourriez plutôt essayer un solutionneur parallèle, mais d'après les articles de Bill Gasarch, j'avais l'impression qu'il vous faudrait un effort de grande envergure. Vous pouvez également appliquer un résolveur SMT avec une théorie appropriée ou utiliser un résolveur de contraintes qui implémente une contrainte globale dotée d'un propagateur efficace. Dans chacun de ces cas, l’idée nouvelle serait d’exprimer une propriété importante, difficile à exploiter à l’aide de clauses.
András Salamon

Réponses:


38

Il existe deux types de "meilleurs" solveurs SAT, un pour la théorie et un pour la pratique.

Théorie

randomisé ( 1,32113 n ) pour 3SAT.O(1.32113n)

randomisé ( 1,321 n ) pour 3SAT.O(1.321n)

O(1.439n)

Entraine toi

Vérifiez la conférence SAT pour les résultats de la compétition pour chaque année.


O(1.32113n)

@ Sadeq: Je pense que oui, mais juste pour 3-SAT, pas SAT.
Tian Liu

2
O(1.321n)

10
1.308n

21

Je ne suis au courant d'aucun algorithme randomisé à zéro erreur (ni d' algorithme coNE / Advice ,
d'ailleurs) pour SAT, dont les limites sont meilleures que les algorithmes déterministes connus,
qu'il y ait ou non promesse d'avoir au plus une affectation satisfaisante.


O(1.3303n)


n
O(1.3071n)O(1.4699n)



  1. O(1.30704n)

  2. O(1.46899n)


"Il existe un algorithme randomisé pour unique-3-SAT tel que pour ϵ=1/(1024)
S
O(2(S+o(1))n), L'algorithme du papier actuel fonctionne dans le temps O(2(Sϵ+o(1))n)



16

O(an)a=2(k1)/kO(1.33334n)O(1.5n)

O((a+ϵ)n)aϵ>0

O


1
Pourquoi dites-vous "presque complètement"? Ai-je oublié quelque chose dans le journal?
András Salamon

1
O((22k+1)n)k=3O(1.5n)

4
J'ai dit "presque complètement" juste pour indiquer qu'il y a un facteur epsilon. Je suppose que l’on pourrait s’attendre à ce qu’une dérandomisation complète aboutisse au même temps d’exécution (jusqu’à facteurs polynomiaux). Ou peut-être que c'est déraisonnable d'attendre.
Robin Kothari

1
@Grigory Yaroslavtsev: L'algorithme déterministe Moser-Scheder pour kSAT que j'ai mentionné plus rapidement que celui que vous avez cité? Est-ce que je manque quelque chose?
Robin Kothari

1
ϵ

12

Comme cela a déjà été mentionné, si vous êtes intéressé par des garanties de durée d'exécution théoriques, cette question est un doublon.

Mais j'aimerais souligner que si vous voulez vraiment résoudre un problème concret (comme le problème de coloration que vous avez mentionné), je pense que cela n'a aucun sens d'étudier les limites théoriques.

Même si vous vouliez éviter les aspects "d'ingénierie", je vous conseillerais de prendre quelques solveurs SAT populaires, de les essayer et de voir ce qui se passe (la plupart d'entre eux peuvent lire le même format de fichier DIMACS, il est donc facile d'essayer différents solveurs). Vous pouvez avoir à la fois des surprises positives et négatives. Récemment, j'ai eu une famille d'instances SAT; Un tas d'instances avec des dizaines de milliers de variables et plus d'un million de clauses s'est avéré être facile à résoudre, alors que des instances apparemment beaucoup plus simples avec seulement des centaines de variables et des milliers de clauses étaient beaucoup trop difficiles pour tous les solveurs que j'ai essayés.


8
Outre le résumé de Jukka, il convient également de noter qu'il existe deux principaux types de solveurs SAT: ceux basés sur la propagation d'enquête, qui fonctionnent bien pour les instances SAT aléatoires, et ceux qui utilisent l'apprentissage de clause combiné à la résolution d'unité, qui ont tendance à fonctionner. bien pour découvrir la structure combinatoire. Ceux-ci ont un comportement assez différent. Les pires cas pour les solveurs SAT ont tendance à être des instances qui ne sont pas satisfaisables, mais où l’espace des nogoods a une structure complexe qui ne permet pas beaucoup de taille. Malheureusement, les cas de combinatoire ont tendance à être de ce type.
András Salamon

11

Je suppose que lorsque quelqu'un propose une meilleure limite supérieure, il cite ce document. Cet article n’a été cité qu’une seule fois, à savoir "Algorithme de satisfiabilité et dureté moyenne pour les formules sur la base binaire complète". Ils semblent ne parler que de certains types de formules. Par conséquent, cela semble être la meilleure limite supérieure à ce jour.
Tayfun Pay

@TayfunPay: Le dernier document de ma réponse cite ce document.

@ RickyDemer Uhuh! est-ce que c'est mieux que ça? La notation n'est pas si claire pour moi.
Tayfun Pay

@TayfunPay: Oui, et vous pouvez parcourir les deux journaux comme décrit ci-après. S3Sk En haut de la page 11, ce document indique que leur algorithme donne la même limite que PPSZ, ce qui signifie qu'ils ne montrent rien de plus que ce que j'ai mentionné dans ma phrase précédente. (a continué ...)

(... a continué) S2SnSS3

8

Il est impossible pour 3SAT d’avoir des algorithmes sous-exponentiels à moins que l’ hypothèse temporelle exponentielle ne soit fausse.

O(1.324n)

O(1.32216n)


15
N'est-ce pas une tautologie?
Tsuyoshi Ito

1
2o(n)

Le travail de Kazuo Iwama et al. (2004) est plus récent que celui de Schoening (1999). Je me demande si des résultats encore plus récents sont disponibles.
MS Dousti

8
Pour éviter toute confusion, mon dernier commentaire se réfère à la première phrase de la réponse: «Il est impossible pour 3SAT d’avoir des algorithmes sous-exponentiels à moins que l’hypothèse de temps exponentiel (ETH) ne soit fausse». Je crois comprendre que le temps exponentiel L'hypothèse est l'hypothèse même selon laquelle il n'y a pas d'algorithme pour 3SAT dont le temps d'exécution est sous-exponentiel (c'est-à-dire 2 ^ {o (n)}) dans le nombre de variables.
Tsuyoshi Ito

10
Et pour éviter toute confusion supplémentaire, j'ajouterai que lorsque Tsuyoshi a posté son commentaire, la réponse ne contenait que cette phrase, ce qui le rendait tout à fait approprié.
Robin Kothari

7

Cet article traite des limites supérieures sur SAT. Celui- ci traite des meilleures limites inférieures. Ce lien donne des détails sur le concours annuel comparant les implémentations du solveur SAT, lesquelles sont toutes téléchargeables. Pour simplifier, vous pouvez commencer par SAT4J , une bibliothèque basée sur Java pour la résolution SAT.


Il s'avère que cette question a déjà été posée auparavant; Je ne l'ai tout simplement pas vu lorsque j'ai consulté le site Web. La réponse de Tian Liu à la question des limites supérieures est exactement ce que je cherchais. Merci pour les liens, dave!
Daniel Apon le

1
C'est la preuve que je passe trop de temps ici ;-)
Dave Clarke le

nous sommes heureux que vous le fassiez :)
Suresh Venkat le

2
Je ne sais pas si je recommanderais sat4J, non seulement il est nettement plus lent que l'état de la technique, mais aussi un peu plus complexe. Il est vrai, cependant, qu’il est joliment personnalisable en raison de la structure orientée objet. MiniSat est très bien écrit et la version 2.2 est à la pointe de la technologie.
Mikolas

3

Le meilleur algorithme déterministe pour 3-SAT a maintenant la limite supérieure 1.32793 ^ n, voir https://arxiv.org/abs/1804.07901 de Sixue Liu. Fondamentalement, les limites supérieures de tous les k-SAT ont été améliorées dans cet article.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.