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 )
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 )
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 )
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.
la source
Réponses:
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 ) NP nO ( 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 (22n 2O ( 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?
la source
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}n y∈{0,1}n x∈{0,1}n f(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
la source