En supposant que P NP, les problèmes NP-complets sont "difficiles à résoudre, mais ont des réponses faciles à vérifier". Est-il sensé de considérer le contraire, c'est-à-dire des problèmes pour lesquels il est facile de calculer une réponse correcte, mais difficile de vérifier une prétendue solution arbitraire?
Je pense qu'un tel problème impliquerait soit:
De manière exponentielle, de nombreuses réponses «correctes» pour une entrée donnée, car sinon la vérification pourrait être effectuée en calculant simplement toutes les réponses correctes.
Certaines réponses «correctes» sont faciles à calculer, mais d'autres sont difficiles à trouver.
Réponses:
Si vous êtes bien avec des problèmes artificiels, vous pouvez en faire beaucoup. Voici quelques-uns:
Donner une formule 3CNF satisfaisable est facile, mais décider si une formule 3CNF donnée est satisfaisable ou non est 3SAT, un problème NP-complet bien connu.
Donner une telle machine de Turing est facile, mais si une machine de Turing donnée s'arrête ou non, c'est indécidable.
Ajouté : Soit dit en passant, je ne pense pas que ce que vous avez écrit dans le dernier paragraphe soit valable:
Si le problème a une solution, alors vérifier une réponse n'est pas plus difficile que de calculer la bonne solution. Cependant, si le problème a une solution facile et une solution difficile, vous ne pouvez pas calculer toutes les solutions efficacement. Voici un de ces problèmes (qui est très artificiel):
est facile de proposer une solution : vous pouvez toujours choisir « M est une machine de Turing». Cependant, qu'une réponse donnée soit correcte ou non est indécidable. Notez que dans ce problème, il n'y a que deux solutions pour chaque instance.
la source
Bien que la réponse de Tsuyoshi Ito couvre la réponse "principale", il y avait deux notes plus subtiles que je voulais ajouter.
Même lorsque la solution est difficile à vérifier, la vérification de la solution est toujours facile à vérifier avec une chaîne de preuve courte. C'est-à-dire qu'en étendant un peu la solution avec des informations supplémentaires, elle devient facilement vérifiable; la vérification est toujours en NP. Une façon de voir cela est que l'agent qui calcule une solution peut enregistrer tous les bits aléatoires qu'il utilise, puis le vérificateur peut utiliser cette même chaîne aléatoire pour exécuter le même calcul. (Le prouveur doit utiliser des bits aléatoires, sinon ils produisent toujours la même réponse, et le vérificateur peut toujours vérifier facilement en calculant une réponse par la même méthode.)
Pour les ordinateurs quantiques, c'est une question très ouverte. Pour les ordinateurs classiques, le vérificateur peut toujours faire quelque chose comme simuler le prouveur et vérifier qu'il obtient la même réponse. Il est tout à fait possible que pour un problème délicat, il existe un algorithme quantique qui produit une distribution uniforme entre toutes les solutions (exponentiellement nombreuses), qui sont difficiles à vérifier. Vous ne pouvez pas relancer le prouveur, car vous obtiendrez très probablement une réponse différente à chaque fois.
À titre d'exemple d'un problème similaire, le problème Deutsch-Jozsa en souffre un peu. Si un oracle n'est pas une fonction équilibrée, un ordinateur quantique peut rapidement déterminer que c'est le cas, mais il n'y a pas de preuve courte qui permettrait à un ordinateur classique de le vérifier. (Ce n'est qu'un problème "similaire" car il peut toujours être vérifié par un autre ordinateur quantique, et la vérification est également en BPP classique même si ce n'est pas en P.)
la source