Existe-t-il une tâche pouvant être résolue en temps polynomial mais non vérifiable en temps polynomial?

34

Un de mes collègues et moi-même venons de tirer quelques notes d’un de nos professeurs. Les notes indiquent qu'il existe des tâches qu'il est possible de résoudre en temps polynomial (appartiennent à la classe de PF) mais qui ne sont PAS vérifiables en temps polynomial (ne font pas partie de la classe de NPF).

Pour en savoir plus sur ces classes: Nous obtenons une entrée X et produisons une sortie Y telle que (X, Y) soient en relation R représentant notre tâche. S'il est possible d'obtenir Y pour X en temps polynomial, la tâche appartient à la classe de PF. S'il est possible de vérifier que le certificat de longueur polynomiale Z prouvant qu'un tuple (X, Y) est en relation R en temps polynomial, la tâche appartient à la classe des NPF.

Nous ne parlons pas de problèmes de décision, où la réponse est simplement OUI ou NON (plus formellement si une chaîne appartient à une langue). Pour les problèmes de décision, il apparaît que PF est un sous-ensemble approprié des FNP. Cependant, pour d'autres tâches, cela pourrait être différent.

Connaissez-vous une tâche qui peut être résolue en temps polynomial mais non vérifiée en temps polynomial?

Drozi
la source
8
J'ai peut-être mal compris, mais pourquoi ce qui suit n'est-il pas un algorithme de vérification polynomial? Étant donné , calculez vous-même la fonction à l'aide de l'algorithme polynomial et retournez "correct" si . Est-il possible que vous ayez mal interprété ou que le professeur se soit mal exprimé et ait voulu dire au contraire qu'il existe des problèmes vérifiables en temps polynomial mais non résolus en temps polynomial? f ( x ) f ( x ) = y(x,y)f(x)f(x)=y
Lieuwe Vinkhuijzen
1
@LieuweVinkhuijzen "pour dire qu'il existe des problèmes vérifiables en temps polynomial mais non résolus en temps polynomial?" [réf. nécessaire]
T. Verron
@ T.Verron Haha oui, je serais moi aussi très heureux de voir la preuve du professeur pour cette affirmation;)
Lieuwe Vinkhuijzen

Réponses:

44

Ceci n'est possible que s'il existe plusieurs sorties admissibles pour une entrée donnée. C'est-à-dire lorsque la relation n'est pas une fonction car elle viole l'unicité.R

Par exemple, considérons ce problème:

Étant donné que (représenté par unaire) et un TM M , produisez un autre TM N tel que L ( M ) = L ( N ) et # N > n (où # N représente le codage (nombre de Gödel) de N dans un entier naturel)nNMNL(M)=L(N)#N>n#NN

La solution à ce problème est simple: ajoutez quelques états redondants au TM , éventuellement avec quelques transitions factices entre eux, jusqu'à ce que son codage dépasse n . Ceci est une application de base répétée du lemme de rembourrage sur les MT. Cela nécessitera n rembourrages, chacun pouvant ajouter un état, donc cela peut être fait en temps polynomial.Mnn

D'autre part, étant donné est indécidable pour vérifier si N est une sortie correcte pour les entrées n , M . En effet, vérifier L ( M ) = L ( N ) est indécidable (appliquez le théorème de Rice), et la contrainte # N > n ne supprime que finement beaucoup de N s. Puisque nous retirons une quantité finie d'éléments d'un problème indécidable, nous obtenons toujours un problème indécidable.n,M,NNn,ML(M)=L(N)#N>nN

Vous pouvez également remplacer la propriété indécidable pour obtenir des variations qui sont toujours calculables mais NP difficiles / complètes. Par exemple, étant donné n (unaire), il est trivial de calculer un graphe G ayant n -clique à l'intérieur. Mais étant donné n , G, il est difficile de vérifier si une n- clique existe.L(M)=L(N)nGnn,Gn

chi
la source
1
Cela ne devrait pas être le cas. Très bonne réponse!
Filip Haglund
7
Cela ne répond pas à la question. Le PO a spécifiquement demandé un problème non vérifiable au sens habituel, dans lequel, en plus de l'entrée et de la réponse alléguée, nous obtenons un certificat qui certifie l'exactitude de la réponse. Dans votre cas, le certificat correspond aux bits utilisés pour générer de manière non déterministe la nouvelle machine de Turing équivalente. Compte tenu de M , N et z , il est facile de vérifier si z donne la machine M . Sans z , la question est de savoir s'il est facile de générer des instances matérielles de langages (NPC), ce qui n'est vrai que dans Minicrypt et Cryptomania. zM,NzzMz
Lieuwe Vinkhuijzen
2
@chi Toutes les paires ne peuvent pas être certifiées, mais l'ensemble des paires M , N générées par votre algorithme peut être certifié. Le certificat est la transcription de votre algorithme produisant N à partir de M (par exemple, "commencez par M , puis ajoutez cet état et ajoutez cette transition, puis ... et voilà, N !"). En général, si T est un algorithme non déterministe qui, avec x , calcule toujours un y admissible , alors une transcription d'un chemin de calcul de T ( x ) est un certificat selon lequel un y donné est admissible.M,NM,NNMMNTxyT(x)y
Lieuwe Vinkhuijzen
3
@chi Il y a une légère nuance dans la question: pour une relation arbitraire , il est possible que tous les y admissibles ne soient pas certifiables, et vous donnez un exemple élégant. Cependant, la question ne demande pas s'il existe des relations admissibles mais non vérifiables (la réponse est oui , selon votre exemple). Elle demande plutôt si nous pouvons avoir un algorithme produisant une sortie admissible et non vérifiable. La réponse, ici, doit être non , à cause de l'argument ci-dessus. Ry
Lieuwe Vinkhuijzen
2
@chi Je ne sais pas ce que le PO avait l'intention de demander, mais j'ai trouvé votre réponse très éclairante, j'ai néanmoins appris quelque chose! Si la question peut être lue comme vous le faites, ou de manière tout aussi plausible que " existe-t-il des fonctions unidirectionnelles? " (peut-être) ou " est-ce que des problèmes difficiles de problèmes de NP sont faciles à générer? " la façon dont je l' ai lu, comme " Is ?NPP " (non).
Lieuwe Vinkhuijzen
1

Ceci est simplement un développement de la première phrase de la réponse de @ chi, puisque je ne l'ai pas trouvée évidente.

L'idée est la suivante: si vous avez un algorithme qui trouve la réponse à un problème en temps polynomial, vous avez alors deux possibilités:

  1. Vous avez précédemment prouvé (mathématiquement) que la sortie de l'algorithme est une solution au problème. Dans ce cas, les étapes de l'algorithme elles-mêmes constituent la preuve de la correction.

  2. Vous avez un algorithme différent pour vérifier que la sortie est bien une solution. Dans ce cas, vous devez exécuter cet algorithme (sinon, vous tomberiez sous le cas n ° 1), ce qui implique que vous le faites en temps polynomial.

Par conséquent, il ne peut y avoir un tel problème.

Mehrdad
la source
Je ne comprends pas # 2. Qu'est-ce qui implique que l'algorithme différent s'exécute en temps polynomial?
Albert Hendriks
@ AlbertHendriks: Si le vérificateur n'a pas fonctionné dans le temps polynomial, le solveur d'origine ne peut pas prétendre avoir trouvé une solution correcte dans le temps polynomial, car il doit l'exécuter pour s'assurer que sa solution est correcte.
Mehrdad