Les circuits de taille quasi-polynomiale pour 3-SAT sont-ils triviaux?


10

Supposons que nous considérons 3-SAT avec des variables et des clauses . Je recherche une méthode qui semble prendre temps / espace pour résoudre tout problème SAT correspondant à cette description, à l'intérieur d'une erreur qui peut être ajustée à un montant arbitraire. Cependant, il y a un hic.c O ( v 2 + log c )vcO(v2+logc)

Cette méthode nécessite un ensemble de valeurs précalculées, après quoi elle peut résoudre un problème arbitraire 3-SAT correspondant à la description ci-dessus. Les valeurs précalculées sont un ensemble de taille chaque valeur occupant l' espace . Le vrai problème est que chacune de ces valeurs peut prendre du temps à calculer. Il est possible que je trouve un moyen d'accélérer ces calculs.O ( 1 ) O ( 2 v )O(v2+logc)O(1)O(2v)

Je pense que les limites elles-mêmes dépassent les limites supérieures présentées dans cette question (pour le petit ). Je me demande donc, existe-t-il un moyen trivial d'atteindre les limites supérieures que je décris si nous autorisons les précalculs ?O ( v 2 + log c )cO(v2+logc)

J'aimerais poursuivre cette recherche et, espérons-le, publier mes résultats si tout fonctionne, mais je voudrais d'abord savoir s'il existe une manière triviale de faire aussi bien ou mieux.


MISE À JOUR

J'ai étudié des problèmes connexes en plus de rechercher cet algorithme. J'ai posé cette question sur le site de sécurité informatique de StackExchange concernant le craquage de mot de passe et SAT, si vous êtes intéressé. Au moins une des réponses reflète cela.


Vous dites qu'il faut O (N ^ 2 + logc) temps / espace ... Donc ce n'est pas dans PSPACE? Mais dans QSPACE (Quasi-Space)?
Tayfun Payez le

@Tayfun Pay: il s'exécute en . C'est un algorithme déterministe qui donne un résultat modulo un premier (notez que ce résultat est suffisant pour que le reste de l'algorithme détermine une affectation satisfaisante). Il peut être exécuté pour n'importe quel nombre premier. Courir pour plus d'une prime augmente ses chances de trouver une affectation satisfaisante. Il a une chance de trouver une affectation satisfaisante, si elle existe, de . p ( p - 1 ) / pO(v(2+logc))p(p1)/p
Matt Groff

A-t-il besoin de O (N ^ (2 + log (c))) ESPACE?
Tayfun Payez le

@Tayfun Pay: Oui. Je n'ai pas encore trouvé de moyen de réduire les considérations d'espace.
Matt Groff

1
Je proposerais de remplacer le titre par un titre plus approprié. Le titre actuel ne semble pas attrayant, tandis que la question elle-même l'est.
Yoshio Okamoto

Réponses:


16

Si ce que vous étudiez fonctionnait, ce ne serait certainement pas anodin.

Cela impliquerait que 3SAT possède des circuits (non uniformes) de taille . Ensuite, chaque langue dans N P (et la hiérarchie polynomiale temporelle) aurait des circuits de taille quasi polynomiale (c'est-à-dire n O ( log c n ) ).nO(logn)NPnO(logcn)

Même s'il a fallu temps de prétraitement pour produire une structure de données de taille seulement 2 O ( log 2 n ) qui pourrait alors répondre correctement aux requêtes arbitraires 3SAT de taille n dans 2 O (22n2O(log2n)n temps aléatoire avec une probabilité élevée, 3SAT aurait des circuits de taille quasi-polynomiale, utilisant la traduction connue d'algorithmes randomisés en circuits. Cela n'améliorerait pas les limites temporelles connues de l'algorithme en raison du prétraitement, mais ce serait toujours extrêmement intéressant en tant que résultat non uniforme.2O(log2n)

Qu'entendez-vous par «à l'intérieur d'une erreur qui peut être ajustée à un montant arbitraire»? L'algorithme est-il aléatoire?


:Merci pour votre réponse. L'algorithme n'est pas randomisé. Le temps d'exécution réel de l'algorithme lui-même n'est pas aussi simple que je l'ai décrit. Fondamentalement, cependant, nous pouvons l'exécuter à travers des exécutions répétées pour éliminer les erreurs. Donc, si nous l'exécutons pendant fois, la probabilité d'erreur serait réduite en dessous de 1 / ( 2 x ) . J'hésite à révéler les détails car je crains que cela ne révèle trop sur l'algorithme. x1/(2x)
Matt Groff

3
Comment l'algorithme ne peut-il pas être randomisé, mais vous pouvez l'exécuter à plusieurs reprises pour réduire les erreurs? Je pense que vous auriez probablement à donner au moins quelques précisions supplémentaires pour comprendre votre question.
Ryan Williams

2
Son algorithme est tel que (s'il fonctionne), pour chaque premier , si le nombre d'assignations satisfaisantes n'est pas un multiple de ppp alors l'algorithme trouve une affectation satisfaisante.Il se réfère (à tort) à cela comme "un changement de trouver une affectation satisfaisante, si elle existe, de (p1)/p ."Si la dépendance du runtime à n'est pas énorme, cela donne des circuits de taille quasi-polynomiale (déterministes) pour SAT.p

L'étape de prétraitement nécessite . Puis-je avoir une référence à "la traduction connue d'algorithmes randomisés en circuits"? Donc, si vous voulez réduire les erreurs, vous devez exécuter le prétraitement n fois. Je doute que cela puisse être traduit en un quasi-circuit. Quel avantage cela aura-t-il sur un algorithme trivial? pn
Zirui Wang

@ZiruiWang: recherchez . Supposons que la structure de données répond aux questions correctement avec une probabilité 3 / 4 . Prenez 100 n copies de la structure de données de taille 2 O ( log 2 n ) chacune ensemencée avec différentes chaînes de bits aléatoires. Prenez la réponse majoritaire de toutes les copies. Ceci est un algorithme aléatoire de temps quasipolynomial avec une erreur inférieure à 1 / 2 nBPPP/poly3/4100n2O(log2n)1/2n . Cela peut être converti en un circuit de taille quasi-polynomiale en codant en dur une graine appropriée.
Ryan Williams

3

Je ne sais pas si votre résultat - s'il est valide - serait une avancée non triviale, mais voici une sorte de problème sur lequel vous pouvez le tester:

Problème. Fixe une fonction . Étant donné y { 0 , 1 } n , trouver x { 0 , 1 } n tel que f ( x ) = yf:{0,1}n{0,1}ny{0,1}nx{0,1}nf(x)=y .

Si peut être calculé efficacement (par exemple, par un petit circuit), votre résultat implique une sorte de solution à ce problème.f

f2n22n/322n/3xy22n/322n/3Set prendre le tempsTST=2nff est une fonction de hachage cryptographiquement sécurisée. (Cette technique est connue sous le nom de compromis spatio-temporel Hellman.)

f

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.