Parity P
In computational [complexity theory], the complexity class ⊕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 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 where P = ⊕P ≠ NP = PP = EXPTIME, as shown by Beigel, Buhrman, and Fortnow in 1998.
While Toda's theorem shows that PPP contains PH, the class P⊕P is not known to even contain NP. However, the first part of the proof of Toda's theorem shows that BPP⊕P 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 |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.