[Math] BPP being equal to #P under Oracle

computational complexitynp

Luca Trevisan here gives a randomized polynomial-time approximation algorithm for #3-coloring given an NP oracle.

In a similar vein, I was wondering if there were any results on $BPP^{NP}\stackrel{?}{=}$ #P – i.e. outputting a correct count for a #P problem under the presence of an NP oracle with high probability.
The ideal result of course would tell whether they were equal or not but since we don't know whether P=#P or P=BPP, we can't prove the above false. So I'm also interested in any results that provide evidence either way or prove the above is true (which I'm guessing it is unlikely to be).

If there are no such results, then is $BPP^{NP}$ generally believed to be equal to #P?

*Edit: * As per Mariano's suggestion, Here's the Complexity Zoo's excellent description of the complexity class BPP. And here is the description of the complexity class #P.

Thanks

Best Answer

First, let's be slightly pedantic and not make statements like P = #P, which cannot possibly be true just because P is a set of decision problems and #P is not. To get a decision version of #P, one can use PP, or something like P#P.

About your question, BPPNP is contained in PPP and P#P by Toda's theorem. On the other hand, if P#P were contained in BPPNP, it would imply that PH is contained in BPPNP, which would collapse the polynomial hierarchy to the third (or second?) level, which is considered unlikely.

In conclusion, P#P is considered to be more powerful than NP, BPP, BPPNP and even NPNPNP.

Related Question