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.