Talk:♯P

From Wikipedia
https://en.wikipedia.org/wiki/Talk:♯P
WikiProject Mathematics (Rated Start-class, Low-priority)
WikiProject iconThis article is within the scope of WikiProject Mathematics, a collaborative effort to improve the coverage of mathematics on Wikipedia. If you would like to participate, please visit the project page, where you can join the discussion and see a list of open tasks.
Start-Class article  Start  This article has been rated as Start-Class on the project's quality scale.
  Low  This article has been rated as Low-priority on the project's priority scale.
 
WikiProject Computer science (Rated Start-class, Mid-importance)
WikiProject iconThis article is within the scope of WikiProject Computer science, a collaborative effort to improve the coverage of Computer science related articles on Wikipedia. If you would like to participate, please visit the project page, where you can join the discussion and see a list of open tasks.
Start-Class article  Start  This article has been rated as Start-Class on the project's quality scale.
  Mid  This article has been rated as Mid-importance on the project's importance scale.
 
Things you can help WikiProject Computer science with:

Definition

The definition is unclear. In particular, what is x in the following

   "compute ƒ(x)," where ƒ is the number of accepting paths of an NP machine

is that the Turing machine? If it is, it should also be explained that for an NP problem there exists many accepting Turing machines with different numbers of accepting paths. Mikolasj ( talk) 10:37, 11 July 2010 (UTC)

I changed the text to make it clearer. Is that better? -- Robin ( talk) 18:59, 11 July 2010 (UTC)

Change

The following was changed:

"a problem is in #P if there is a non-deterministic, polynomial-time Turing machine that, for each instance I of the problem, has a number of accepting computations that is exactly equal to the number of distinct solutions for instance I.

This is incorrect. A regular NP machine for, say SAT may have many accepting paths, "exactly equal to the number of distinct solutions". A #P Turing machine is a FUNCTIONAL machine. Its a machine that outputs the value of a function f:{0,1}* -> Z such that f(x) = # of solutions.

No. You seem to be confusing #P with the class of counting problems in FP. Dricherby ( talk) 16:12, 26 June 2008 (UTC)

NP-hardness of problems in #P

The sentence "Therefore, the #P problem corresponding to any NP-Complete problem must be NP-Hard" is incorrect. We cannot compare apples and oranges: a problem in #P is a counting problem, whereas any NP-hard problem is a decision problem. The only way to relate them is by oracles, what is done in Toda's theorem.-- Miki Hermann 16:02, 24 October 2007 (UTC)

Likewise, "It is not known whether, conversely, #P is in the polynomial hierarchy", since PH is a hierarchy of decision problems. So I deleted that sentence, too. Dricherby ( talk) 16:06, 26 June 2008 (UTC)
A problem does not have to be in NP to be NP-hard. For example, SAT may be reduced to #SAT, trivially. We can in fact compare function and decision problems. Kufat ( talk) 23:50, 26 June 2009 (UTC)
Yes, Kufat is right here, the statement in question is completely accurate. The statement that Dricherby removed was incorrect, however. Dcoetzee 21:49, 27 June 2009 (UTC)

#PSpace = #P

The problem of counting all valid quantifications of a boolean formula is the canonical member of #PSpace. It turns out that the answer is equal to the number of satisfying assignments of the boolean formula, so #P=#PSpace. Probably, the equivalence is unsurprising, but is uncommon knowledge. The equivalence has been titled #P=#Q in a 2002 paper. 24.33.70.144 ( talk) 21:59, 1 March 2014 (UTC)Daniel Pehoushek