MathOverflow is a question and answer site for professional mathematicians. It's 100% free, no registration required.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

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.


share|cite|improve this question
While surely anyone who will be able to answer this will know what BPP is, maybe a very succint description might be of quite some help to us mere humans :P – Mariano Suárez-Alvarez Jan 4 '10 at 18:34
Theoretical CS is part of mathematics, and there is no MathOverflow for computer science (SO is more applied), so I think the question fits MO well. Also, the Complexity Zoo Veterinarian is Greg Kuperberg. – Ilya Nikokoshev Jan 4 '10 at 19:01
@Anweshi: You think computational complexity theory is not appropriate for MO? Wow. – aorq Jan 4 '10 at 23:11
Complexity theory in particular is far closer to mathematics than it is to standard CS stuff like programming, compilers, databases, operating systems, etc. As such it is completely appropriate to have complexity theory questions on MO. – Rune Jan 5 '10 at 3:04
If I were the one asking the question I would be sorely tempted to post in on stackoverflow saying "People at mathoverflow suggested I ask this question here..." :) – Reid Barton Jan 5 '10 at 3:23
up vote 9 down vote accepted

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.

share|cite|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.