Problème: étant donné représenté par un circuit booléen, générer un uniformément aléatoire tel que (ou sortie si un tel n'existe pas).
Clairement, ce problème est NP-difficile. Ma question est de savoir si ce problème est également «NP-facile»:
Question: Existe-t-il un algorithme qui résout le problème ci-dessus dans le polynôme temporel en et la taille du circuit de accès à un oracle SAT?
Alternativement, existe-t-il un algorithme polynomial en supposant que NP = P?
Il est clair que l'accès à un oracle #SAT suffit, donc la complexité se situe quelque part entre NP et #P.
Je pense que cela aurait dû être étudié auparavant, mais je ne trouve pas de réponse sur Google.
Je sais comment résoudre le problème approximativement (c'est-à-dire générer une affectation satisfaisante qui est statistiquement proche de l'uniforme) en utilisant une variante du théorème de Valiant-Vazirani et / ou un comptage approximatif, mais obtenir exactement l'uniforme semble être un problème différent.
la source