Recherche d'une source de documentation pour l'idée suivante


12

Je suis certain que je ne suis pas le premier à entretenir l'idée que je vais présenter. Cependant, il serait utile que je puisse trouver de la documentation liée à l'idée.

L'idée est de construire une machine de Turing M avec la propriété que si P = NP alors M résoudra 3-SAT en temps polynomial. (Le choix du 3-SAT est arbitraire. Cela pourrait vraiment être n'importe quel problème dans NP).

Juste pour être clair, ce n'est pas une affirmation que P = NP. En fait, je crois le contraire. Je déclare simplement que si P = NP, alors M fournira une solution en temps polynomial. Si vous cherchez une solution efficace, je dois vous avertir que c'est loin d'être efficace.

M est construit comme suit: premièrement, supposez un encodage canonique pour toutes les machines de Turing et appliquez une numérotation à ces machines. Il y a donc une machine de Turing numéro 1, un numéro 2, etc. L'idée d'une machine de Turing universelle qui peut lire le format d'une machine fournie puis simuler le fonctionnement de cette machine sur une entrée distincte est assez bien connue. M emploiera une machine de Turing universelle pour construire et simuler tour à tour chaque machine de Turing.

Il simule d'abord le fonctionnement de Turing Machine 1 en une seule étape.
Il examine ensuite la sortie de Turing Machine 1.
Il simule le fonctionnement de Turing Machine 1 sur deux étapes et examine la sortie, puis procède à la simulation de Turing Machine 2 sur 2 étapes. Il continue et boucle de cette façon, exécutant à son tour Turing Machine 1 pour k étapes puis 2 pour k étapes ... puis finalement machine k pour k étapes.

Après chaque simulation, il examine la sortie de la simulation. Si la sortie est une affectation de variables satisfaisant l'instance de problème 3-SAT, M s'arrête dans un état d'acceptation. Si d'un autre côté, la sortie est une chaîne de preuve dans un langage de preuve vérifiable avec le résultat prouvé que l'instance de problème n'est pas satisfaisable, M s'arrête dans un état de rejet. (Pour un langage de preuve, nous pourrions par exemple utiliser les axiomes de Peano avec une logique de second ordre et les axiomes logiques de style Hilbert de base. Je laisse comme un exercice pour le lecteur de comprendre que si P = NP, un valide le langage de preuve existe et est vérifiable en temps polynomial).

Je vais affirmer ici que M résoudra 3-SAT en temps polynomial si et seulement si P = NP. Finalement, l'algorithme trouvera une machine de Turing magique avec le numéro K, qui s'avère justement être un solveur efficace pour le problème 3-SAT, et est capable de fournir une preuve de ses résultats pour le succès ou l'échec. K sera éventuellement simulé en exécutant des étapes poly (strlen (entrée)) pour certains polynômes. Le polynôme de M est à peu près le carré du polynôme de k dans le plus grand facteur, mais avec quelques constantes terribles dans le polynôme.

Pour réitérer ma question ici: je veux savoir s'il existe une source de littérature qui utilise cette idée. Je suis un peu moins intéressé à discuter de l'idée elle-même.

Réponses:


16

Il semble que cette idée soit attribuée à Levin (elle est appelée recherche optimale). Je pense que ce fait est bien connu. Un algorithme similaire est décrit dans wikipedia par exemple, bien qu'il utilise le problème de la somme des sous-ensembles. Dans cet article de scholarpedia, vous pouvez trouver plusieurs références sur le sujet, y compris un pointeur vers l'algorithme d'origine et vers d'autres algorithmes de recherche optimaux.

Commentaire 1: La recherche optimale de Levin garantit que si est une instance satisfaisable, alors une solution sera trouvée en temps polynomial en supposant . Si n'est pas satisfaisable, l'algorithme peut ne pas se terminer.φP=NPφ

Commentaire 2: Comme Jaroslaw Blasiok l'a souligné dans une autre réponse, cet algorithme ne décide pas de Sat uniquement en supposant P = NP.


Je viens de trouver la référence Wikipedia, et en effet, elle mentionne Levin, mais sans citation. Il se pourrait que ce soit simplement devenu du folklore, mais jamais utilisé dans la littérature publiée. Quoi qu'il en soit, cela est utile. Merci.
Bill Province du

Bienvenue. J'ai trouvé une page d'accueil avec plusieurs références sur le sujet. J'ai édité la réponse pour l'inclure.
Mateus de Oliveira Oliveira

6

L'idée de faire tourner en diagonale toutes les machines Turing possibles a déjà été utilisée par Leonid Levin dans ce qui est maintenant connu sous le nom de Levins Universal Search. Malheureusement, et contrairement à l'idée fausse extrêmement répandue, pour ce que je sais, les variations de la recherche universelle de Levins ne sont PAS en mesure de fournir un algorithme explicite résolvant SAT (problème de décision) en temps polynomial, étant donné uniquement l'hypothèse que P = NP - et ni votre algorithme ne le fait .

La mise en garde du raisonnement proposé réside (comme très souvent) dans "l'exercice facile laissé au lecteur" - je n'ai pas pu prouver moi-même l'exercice et je ne crois pas que sa déclaration soit vraie, à savoir:

En supposant que P = NP, il existe une taille polynomiale ZFC prouvant l'insatisfiabilité d'une formule booléenne donnée.

De plus: je ne vois pas comment prouver l'existence de ZFC polynomialement court prouve son insatisfiabilité sous l'hypothèse (plus forte) que "P = NP est prouvable dans ZFC". Il devient cependant facile sous une hypothèse encore plus forte, à savoir:

(*) Il existe une machine M fonctionnant en temps polynomial qui résout de manière prouvée SAT.

Et c'est, je crois, l'hypothèse correcte selon laquelle votre algorithme résout SAT en temps polynomial. Ci-dessus, "résout de manière prouvée SAT", je veux dire: il existe une machine M, et une preuve ZFC que M résout SAT.

Notez que cette hypothèse est encore légèrement plus faible que la suivante: (**) Il existe une machine M, qui fonctionne de manière prouvée en temps polynomial et résout de manière prouvée SAT.

Sous (**), on peut avoir une construction explicite atteignant le même objectif qui est encore plus simple: énumérer toutes les preuves ZFC jusqu'à ce que vous trouviez la bonne machine M (passer du temps constant), puis exécuter M sur une instance donnée.

Il est vrai, cependant, que dans l'hypothèse P = NP, il existe un système de preuve vérifiable polynomialement avec des preuves courtes pour l'insatisfiabilité d'une formule donnée. Malheureusement, nous ne connaissons ni le système d'épreuves ni le vérificateur à la légère, et cela n'est pas utile dans ce cadre.

L'article original de Levin sur l'algorithme (1973, "Universal search problems") l'appliquait dans le cadre suivant: supposons que vous ayez un algorithme A explicite et rapide pour calculer la fonction f, et l'algorithme B pour vérifier si une valeur x est dans la plage de f. Puis, étant donné x, vous pouvez explicitement trouver une valeur dans la pré-image jusqu'à un facteur constant aussi vite que l'algorithme optimal pour le trouver.f1(x)

Notez que ce schéma s'applique, par exemple, au problème de FACTORING; ici f est juste une multiplication (définie uniquement pour des facteurs autres que \ pm 1) et B est un contrôle de primarité. Par conséquent, la recherche universelle de Levins serait (jusqu'à un facteur constant) l'algorithme optimal pour la FACTORATION. Étant donné que l'algorithme optimal est plus lent que l'algorithme connu pour le contrôle de primauté - dans l'autre cas, le contrôle de primauté devient dominant.

De plus, en utilisant la méthode de Levins sous l'hypothèse P = NP, on peut fournir un algorithme explicite pour résoudre un problème de décision dans , étant donné que l'on a déjà explicitement à la fois des vérificateurs NP et co-NP (Ie Verifiers for YES-instance témoins et témoins de NO-instance). Encore un autre exemple intéressant: si nous connaissons la limite temporelle du solveur SAT optimal, la méthode Levins peut être utilisée pour résoudre correctement SAT dans tous les cas, mais en nombre infini - toujours en deçà de la résolution du problème de décision SAT comme il est indiqué.NPcoNP


1
Si P = NP alors co-NP = co-P = P = NP. L'INSATISTIBILITÉ est donc dans NP, tout comme les témoins de taille polynomiale - vous n'avez pas besoin d'invoquer une machine de Turing. Ne pouvez-vous pas convertir ce témoin en preuve ZFC que la formule n'est pas satisfaisante? Je ne suis pas sur la mécanique de la preuve ZFC mais l'intuition que j'ai reçue de divers endroits est que, sauf si vous avez affaire à des "trucs bizarres", ZFC correspond à toutes les choses que vous pensiez pouvoir prouver de toute façon, avant vous avez entendu parler de la théorie des ensembles. Les objets finis tels qu'une formule booléenne et un témoin polynomial de son insatisfaction ne sont pas susceptibles d'être étranges.
David Richerby

Oui, si P = NP, alors UNSAT est en NP, et il a un témoin de taille polynomiale. A savoir: témoin de taille nulle, tout le travail est fait par le vérificateur, non? Je n'ai qu'une idée en tête comment convertir ce témoin de taille zéro en preuve d'insatisfaction ZFC: donner une preuve ZFC que ma machine résout réellement UNSAT, puis montrer une exécution de cette machine sur la formule - ce serait une preuve valide, et cela correspond au fait que l'algorithme proposé par OP fonctionne sous (*). Mais que se passerait-il s'il y avait une machine délicate qui se trouve juste pour résoudre SAT, mais ce fait n'est pas prouvable? Je ne pense pas que ce soit le cas
Jarosław Błasiok

1
L'idée fausse à laquelle je fais référence est: "si P = NP, alors Levins Universal Search donne un algorithme de temps polynomial résolvant le problème NP-complet" ou comme il est parfois dit: "Il est impossible d'avoir seulement une preuve non constructive de P = NP, parce que de l'algorithme de Levins ". Les deux sont faux - la formulation de Wikipédia présente une méthode qui s'arrête en polytime sur les instances OUI de SUBSET SUM, mais ne s'arrête pas du tout sur les instances NO - ce n'est pas un algorithme déterminant la somme des sous-ensembles en polytime. La formulation OP est meilleure à cet effet, mais nécessite une hypothèse plus forte que P = NP pour décider du SAT en polytemps.
Jarosław Błasiok

1
Je ne suis pas sûr de bien comprendre votre commentaire, mais il semble que vous soyez sur la bonne voie: afin d'exécuter la recherche universelle de Levin pour problèmes sous l'hypothèse P = NP (ce ne sont que tous les problèmes NP ) --- vous devez explicitement mettre la main sur les deux vérificateurs (un vérificateur pour les instances OUI et un vérificateur pour les instances NON). Notez que si P = NP, alors unSAT est en co-NP - mais vous ne connaissez pas explicitement le vérificateur pour celui-ci, vous ne pouvez donc pas l'utiliser comme bloc de construction dans votre méthode Levins et. NPcoNP
Jarosław Błasiok

1
Maintenant, la façon de traiter cela, comme vous ne connaissez pas explicitement le vérificateur pour le problème unSAT, serait d'essayer de trouver une preuve courte dans une logique formelle que nous connaissons déjà et que nous pouvons vérifier (que ce soit les axiomes ZFC ou Peano - nous sommes plus susceptibles de trouver une courte preuve dans le premier), que cette instance n'est pas satisfaisante. Mais si l'on veut prouver qu'il existe une preuve aussi courte dans cette logique formelle, il faut une hypothèse plus forte que P = NP.
Jarosław Błasiok
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.