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.
la source
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.f−1(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é.NP∩co−NP
la source