Muestreo de una tarea satisfactoria uniforme al azar

14
Problema: Dado representado por un circuito booleano, genera una uniformemente aleatoria tal que (o salida si no existe tal ). ϕ:{0 0,1}norte{0 0,1}X{0 0,1}norteϕ(X)=1X

Claramente este problema es NP-duro. Mi pregunta es si este problema también es "NP-fácil":

Pregunta: ¿Existe un algoritmo que resuelva el problema anterior en el polinomio temporal en el tamaño del circuito de dado acceso a un oráculo SAT? norteϕ

Alternativamente, ¿hay un algoritmo de tiempo polinomial suponiendo NP = P?

Claramente, tener acceso a un oráculo #SAT es suficiente, por lo que la complejidad se encuentra en algún lugar entre NP y #P.


Siento que esto debería haberse estudiado antes, pero no puedo encontrar una respuesta en Google.

Sé cómo resolver el problema aproximadamente (es decir, generar una tarea satisfactoria que sea estadísticamente cercana al uniforme) usando una variante del teorema de Valiant-Vazirani y / o un conteo aproximado, pero conseguir un uniforme exacto parece ser un problema diferente.

Thomas apoya a Mónica
fuente

Respuestas:

19

Si.

(enlaces de respaldo en caso de que uno caiga: 1 2 3 4 )

Referencia de respaldo, en caso de que todos esos enlaces se caigan: Bellare, Mihir, Oded Goldreich y Erez Petrank. "Generación uniforme de testigos NP utilizando un oráculo NP". Información y cálculo 163.2 (2000): 510-526.

Lorenzo Najt
fuente