L'assistant d'enseignement d'un cours a réussi à écrire un programme qui (de manière déterministe) génère des questions d'examen difficiles. Maintenant, elle aimerait écrire un programme qui génère les réponses correspondantes. Le problème de l'examinateur demande si cela est toujours possible; la conjecture de l' examinateur indique que, en supposant que , ce n'est pas le cas : trouver des problèmes est plus facile que de trouver leurs solutions.
Plus formellement, soit une machine de Turing déterministe qui, en entrée 1 n , génère en temps polynomial une formule booléenne de taille n . Je voudrais savoir si, pour tous ces M , il existe une machine de Turing à temps polynomial déterministe M ' qui, sur l'entrée 1 n , sort " 1 " si M ( 1 n ) a une affectation satisfaisante et " 0 " sinon .
En supposant , cette question a-t-elle déjà été posée ou répondue? En l'absence de réponse, quelles sortes d'hypothèses supplémentaires ( par exemple , les fonctions unidirectionnelles?) Pourraient avoir une incidence sur le résultat? À l'exception de tout ce qui précède, ma "conjecture" est que la "réponse" TM n'existe pas toujours, mais quelle est votre intuition?
Merci!
Réponses:
La question que vous posez est équivalente à NP unaire = P unaire, qui à son tour est équivalent à NE = E, par remplissage.
À partir du titre, vous vouliez peut-être demander s'il était possible de générer des paires d'entrée / sortie de telle sorte que la distribution sur les entrées soit "difficile". La possibilité de le faire se situe quelque part entre P NP et il existe des fonctions unidirectionnelles.≠
Dans les modèles de calcul restreints, on sait que cela est possible. Par exemple, on peut générer des paires d'entrée / sortie pour les fonctions de parité ou de majorité en AC 0 ou en dessous. Voir La complexité des distributions .0
la source
Question: Soit générer des formules. Est-ce que { M ( 1 n ) | n ∈ N ∧ M ( 1 n ) ∈ S A T } appartiennent à P ?M∈PF {M(1n)∣n∈N∧M(1n)∈SAT} P
L'hypothèse concernant la génération des formules en temps polynomial à partir de signifie que la formule peut être donnée succinctement . Vous voulez décider de leur satisfiabilité dans le temps n O ( 1 ) .1n nO(1)
Étant donné nous pouvons trouver un n en temps polynomial dans | φ | . Alors φ peut être énoncé succinctement en lg n + O ( 1 ) bits en utilisant M et n . Nous pouvons utiliser notre algorithme s u c c i n t S A T dans E pour décider ceci dans le temps 2 O ( lg n ) = n Oφ=M(1n) n |φ| φ lgn+O(1) M n succintSAT E .2O(lgn )= nO ( 1 )
Oui :⟹s u c c i n c t SA T∈ E
Soit st donné un circuit C en unaire , M calcule la chaîne codée de façon succincte par C , et renvoie le résultat si elle est une formule et ⊥ autrement.M∈ P F C M C ⊥
Supposons que appartiennent à P . Pour résoudre S u c c i n c t S A T, nous écrivons la formule succincte donnée en unaire, puis utilisons notre hypothèse pour la résoudre.{ M( 1n) ∣ n ∈ N ∧ M( 1n) ∈ SA T} P s u c c i n c t SA T
Question: Peut-on générer des paires instance-solution en temps polynomial pour telle sorte que l'instance soit difficile?SA T
Nous devons clarifier ce que nous entendons par l'instance étant difficile car toute instance en elle-même est (théoriquement) facile car elle peut être résolue soit par l'algorithme qui dit toujours oui, soit par l'algorithme qui dit toujours non. Il me semble que vous avez tenté de contourner ce problème en imposant l'uniformité. Penser en termes cryptographiques, sans certaines informations qui ne sont pas révélées à l'adversaire, il est inutile de cacher le reste du calcul car l'adversaire peut simuler le protocole.
Supposons que nous avons un algorithme à temps polynomial qui génère des paires instance-solution. L'adversaire peut utiliser le même algorithme pour trouver la réponse s'il connaît et trouver n n'est pas difficile à partir de la formule. Le moyen le plus raisonnable consiste à utiliser une clé secrète choisie au hasard pour contourner ce problème et assouplir la condition de dureté pour être probabiliste: aucun algorithme polynomial ne peut trouver une solution à forte probabilité (sans connaître la clé secrète).n n
Ou plus formellement,
Il est facile de voir qu'une telle fonction peut être transformée en fonction unidirectionnelle comme s'il était facile de trouver partir de φ k, alors nous pouvons trouver la réponse en calculant A ( k ) 2 .k φk A ( k )2
D'un autre côté, soit une fonction unidirectionnelle. Nous pouvons exprimer fF comme un circuit de taille polynomiale puisque f est calculable en temps polynomial (et nous pouvons le transformer en une formule en introduisant de nouvelles variables pour toutes les portes et en appliquant localement la condition pour l'exactitude du calcul comme dans la traduction de Tsien). Considérons y comme paramètre et notons la formule résultante comme φ f , y ( x ) . On peut demander s'il y a un x qui satisfait φ f , y ( x )F( x ) = y F y φF, y( x ) X φF, y( x ) . Tout algorithme à temps polynomial résolvant ces instances avec une probabilité non négligeable rompra la fonction unidirectionnelle f . Cependant, cela utilise le fait que l'adversaire doit trouver un témoin non seulement le fait que la formule est satisfaisante ou non (mais je pense que nous pouvons contourner ce problème en utilisant le bit dur de f ).SA T F F
Voir aussi les chapitres 29 et 30 du livre de Jan Krajicek "Forcing with Random Variables", 2011 sur les générateurs de complexité de preuve .
la source