PPA (complexity)


In computational complexity theory, PPA is a complexity class, standing for "Polynomial Parity Argument". Introduced by Christos Papadimitriou in 1994, PPA is a subclass of TFNP. It is a class of search problems that can be shown to be total by an application of the handshaking lemma: any undirected graph that has a vertex whose degree is an odd number must have some other vertex whose degree is an odd number. This observation means that if we are given a graph and an odd-degree vertex, and we are asked to find some other odd-degree vertex, then we are searching for something that is guaranteed to exist.
PPA is defined as follows. Suppose we have a graph on whose vertices are -bit binary strings, and the graph is represented by a polynomial-sized circuit that takes a vertex as input and outputs its neighbors. Suppose furthermore that a specific vertex has an odd number of neighbors. We are required to find another odd-degree vertex. Note that this problem is in NP—given a solution it may be verified using the circuit that the solution is correct. A function computation problem belongs to PPA if it admits a polynomial-time reduction to this graph search problem. A problem is complete for the class PPA if in addition, this graph search problem is reducible to that problem.
PPA contains PPAD as a subclass. This is because the corresponding problem that defines PPAD, known as END OF THE LINE, can be reduced to the above search for an additional odd-degree vertex.
There is an un-oriented version of the Sperner lemma known to be complete for PPA. The consensus-halving problem, which is a computational version of the Hobby-Rice theorem, is known to be complete for PPA. The problem of searching for a second Hamiltonian cycle on a 3-regular graph is a member of PPA, but is not known to be complete for PPA. There is a randomized polynomial-time reduction from the problem of Integer factorization to problems complete for PPA.