In computational complexity theory, the complexity class âÂÂP (pronounced "parity P") is the class of decision problems solvable by a nondeterministic Turing machine in polynomial time, where the acceptance condition is that the number of accepting computation paths is odd. An example of a âÂÂP problem is "does a given graph have an odd number of perfect matchings?" The class was defined by Papadimitriou and Zachos in 1983.
An example of a âÂÂP-complete problem (under polynomial-time many-one reductions) is âÂÂSAT: given a Boolean formula, is the number of its satisfying assignments odd? This follows from the proof of the CookâÂÂLevin theorem because the reduction used is parsimonious.
âÂÂP is a counting class, and can be seen as finding the least significant bit of the answer to the corresponding #P problem. The problem of finding the most significant bit is in PP. PP is believed to be a considerably harder class than âÂÂP; for example, there is a relativized universe (see oracle machine) where P = âÂÂP â NP = PP = EXPTIME, as shown by Beigel, Buhrman, and Fortnow in 1998.
While Toda's theorem shows that P<sup>PP</sup> contains PH, the class P<sup>âÂÂP</sup> is not known to even contain NP. However, the first part of the proof of Toda's theorem shows that BPP<sup>âÂÂP</sup> contains PH. Lance Fortnow has written a concise proof of this theorem.
âÂÂP contains the graph automorphism problem, and in fact this problem is low for âÂÂP. It also trivially contains UP, since all solutions to problems in UP have either zero or one accepting paths. More generally, âÂÂP is low for itself, meaning that such a machine gains no power from being able to solve any âÂÂP problem instantly.
The â symbol in the name of the class may be a reference to use of the symbol â in Boolean algebra to refer the exclusive disjunction operator. This makes sense because if we consider "accepts" to be 1 and "not accepts" to be 0, the result of the machine is the exclusive disjunction of the results of each computation path.