PCP (complexity)

PCP (complexity)

In computational complexity theory, PCP is the class of decision problems having probabilistically checkable proof systems.

Introduction and definition

In complexity theory, a PCP system can be viewed as an interactive proof system in which the prover is a memory-less oracle (essentially a string) and the verifier is a polynomial-time randomized algorithm. For an input which belongs to the language (a YES-instance), there exists an oracle (or proof) for which the verifier accepts with certainty; for NO-instances, the verifier rejects with probability at least 1/2, whatever be the oracle (compare Co-RP).

Another way of looking at PCP is as a more powerful version of NP. For languages in NP, the time spent checking the proof is at least as long as the proof itself, while this need not be the case for languages in PCP. Thus much longer proofs are possible for PCP than for NP.

Observe that in the above, we have not set a bound on the number of oracle queries the verifier can make. Another factor that affects the power of the PCP system is the number of coin tosses the verifier can make: the more randomness available, the more selectivity the verifier can exercise in examining the proof. Thus, PCP is actually a meta-class of complexity classes parameterized by two functions.

PCP("r"(·), "q"(·)) is the class of languages having probabilistically checkable proofs in which the verifier can make "r"("n") coin tosses and "q"("n") oracle queries on an input of size "n".

Example

Although it is difficult to describe most PCP algorithms explicitly, we can demonstrate the idea with a simple algorithm for 3CNFSAT, the version of the boolean satisfiability problem where the formula is in conjunctive normal form with exactly three literals in each clause.

Suppose we have a formula "F" with "m" variables and "n" clauses. We ask the prover to give a satisfying assignment for all "m" variables. However, we won't look at all "m"; instead, we'll use up O(log "n") random bits to choose a clause at random. We then look at the variables used in this clause and retrieve their values with only three oracle queries. If they satisfy the clause, then because the verifier chose the clause, it can be confident with probability 1/"n" that the assignment is satisfying. If the algorithm is repeated "n" times, we can achieve a constant error bound with only O("n"log "n") random bits and 3"n" oracle queries, placing this NP-complete problem, and so all of NP, in PCP("n"log "n", "n").

Results

Simple special cases ("poly" denotes a polynomial quantity, "log" denotes a logarithmic quantity):
* PCP "(0, 0)" =P
* PCP "(poly, 0)" = Co-RP
* PCP "(log, 0)" = NP

Notable facts:
* PCP "(poly, poly)" = NEXP
* If NP = PCP "(o(log), o(log))" then NP = P
* NP = PCP "(log, poly)"

The PCP theorem, one of the crowning jewels of complexity theory, states: NP = PCP "(O(log n), O(1))". This is useful for proving hardness results for approximation algorithms.

External links

* [http://theory.lcs.mit.edu/~madhu/pcp/course.html PCP notes and slides] - by Madhu Sudan
* [http://www.cc.gatech.edu/~khot/pcp-course.html PCP course notes] - by Subhash Khot
* [http://www.cs.berkeley.edu/~luca/pubs/inapprox.ps Survey, a good starter] - by Luca Trevisan
* [http://www.cs.huji.ac.il/~dinuri/mypapers/combpcp.pdf A simplified proof of PCP] - by Irit Dinur


Wikimedia Foundation. 2010.

Игры ⚽ Поможем написать курсовую

Look at other dictionaries:

  • PCP theorem — In computational complexity theory, the PCP theorem states that every decision problem in the NP complexity class has probabilistically checkable proofs (proofs that can be checked by a randomized algorithm) of constant query complexity and… …   Wikipedia

  • PCP — For information about pending changes protection on Wikipedia, see Wikipedia:Pending changes. PCP may refer to: In medicine and pharmaceutics: Phencyclidine, a recreational drug known by a number of street names including PCP, angel dust,… …   Wikipedia

  • Cognitive complexity — Psychology Cognitive psychology Perception …   Wikipedia

  • NP (complexity) — Diagram of complexity classes provided that P ≠ NP. The existence of problems outside both P and NP complete in this case was established by Ladner.[1] In computational complexity theory, NP is one of the most fundamental complexity classes. The… …   Wikipedia

  • MAX-3SAT — is a problem in the computational complexity subfield of computer science. It generalises the Boolean satisfiability problem (SAT) which is a decision problem considered in complexity theory. It is defined as: Given a 3 CNF formula Φ (i.e. with… …   Wikipedia

  • MAX-3LIN-EQN — is a problem in Computational complexity theory where the input is a system of linear equations (modulo 2). Each equation contains at most 3 variables. The problem is to find an assignment to the variables that satisfies the maximum number of… …   Wikipedia

  • MAX-3SAT(13) — is a problem in computational complexity theory that is a restricted version of MAX 3SAT. Every variable occurs in at most 13 clauses. MAX 3SAT(13) is hard to approximate with approximation ratio 1 + delta; for some delta; > 0.ee also*PCP… …   Wikipedia

  • Probabilistically checkable proof — In computational complexity theory, a probabilistically checkable proof (PCP) is a type of proof that can be checked by a randomized algorithm using a bounded amount of randomness and reading a bounded number of bits of the proof. The algorithm… …   Wikipedia

  • Interactive proof system — In computational complexity theory, an interactive proof system is an abstract machine that models computation as the exchange of messages between two parties. The parties, the verifier and the prover, interact by exchanging messages in order to… …   Wikipedia

  • (SAT, ε-UNSAT) — In computational complexity theory, (SAT, ε UNSAT) is a language that is used in the proof of the PCP theorem, which relates the language NP to probabilistically checkable proof systems.For a given 3 CNF formula, Φ, and a constant, ε < 1, Φ is in …   Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”