Complement (complexity)

Complement (complexity)

In computational complexity theory, the complement of a decision problem is the decision problem resulting from reversing the yes and no answers. Equivalently, if we define decision problems as sets of finite strings, then the complement of this set over some fixed domain is its complement problem.

For example, one important problem is whether a number is a prime number. Its complement is to determine whether a number is a composite number (a number which is not prime). Here the domain of the complement is the set of all integers exceeding one.

There is a Turing reduction from every problem to its complement problem. The complement operation is an involution, meaning it "undoes itself", or the complement of the complement is the original problem.

We can generalize this to the complement of a complexity class, called the complement class, which is the set of complements of every problem in the class. If a class is called C, its complement is conventionally labelled co-C. Notice that this is not the complement of the complexity class itself as a set of problems, which would contain a great deal more problems.

A class is said to be closed under complement if the complement of any problem in the class is still in the class. Because there are Turing reductions from every problem to its complement, any class which is closed under Turing reductions is closed under complement. Any class which is closed under complement is equal to its complement class. However, under many-one reductions, many important classes, especially NP, are believed to be distinct from their complement classes (although this has not been proven).

The closure of any complexity class under Turing reductions is a superset of that class which is closed under complement. The closure under complement is the smallest such class. If a class is intersected with its complement, we obtain a (possibly empty) subset which is closed under complement. Some interesting problems fall into such intersections, such as the integer factorization, which is in the intersection of NP and co-NP.

Every deterministic complexity class (DSPACE(f(n)), DTIME(f(n)) for all f(n)) is closed under complement, because one can simply add a last step to the algorithm which reverses the answer. This doesn't work for nondeterministic complexity classes, because if there exist both computation paths which accept and paths which reject, and all the paths reverse their answer, there will still be paths which accept and paths which reject — consequently, the machine accepts in both cases.

Some of the most surprising complexity results shown to date showed that the complexity classes NL and SL are in fact closed under complement, whereas before it was widely believed they were not (see Immerman-Szelepcsényi theorem). The latter has become less surprising now that we know SL equals L, which is a deterministic class.

Every class which is low for itself is closed under complement.


Wikimedia Foundation. 2010.

Игры ⚽ Нужно сделать НИР?

Look at other dictionaries:

  • Complement — In many different fields, the complement of X is something that together with X makes a complete whole something that supplies what X lacks. Complement may refer to: Complement (linguistics), a word or phrase having a particular syntactic role… …   Wikipedia

  • Complexity class — In computational complexity theory, a complexity class is a set of problems of related resource based complexity. A typical complexity class has a definition of the form: the set of problems that can be solved by an abstract machine M using… …   Wikipedia

  • SL (complexity) — In computational complexity theory, SL (Symmetric Logspace or Sym L) is the complexity class of problems log space reducible to USTCON ( undirected s t connectivity ), which is the problem of determining whether there exists a path between two… …   Wikipedia

  • Low (complexity) — In computational complexity theory, it is said that a complexity class B is low for a complexity class A if A B = A ; that is, A with an oracle for B is equal to A . Such a statement implies that an abstract machine which solves problems in A… …   Wikipedia

  • PP (complexity) — In complexity theory, PP is the class of decision problems solvable by a probabilistic Turing machine in polynomial time, with an error probability of less than 1/2 for all instances. The abbreviation PP refers to probabilistic polynomial time.… …   Wikipedia

  • List of complexity classes — This is a list of complexity classes in computational complexity theory. For other computational and complexity subjects, see list of computability and complexity topics.Many of these classes have a Co partner which consists of the complements of …   Wikipedia

  • Computational complexity theory — is a branch of the theory of computation in theoretical computer science and mathematics that focuses on classifying computational problems according to their inherent difficulty, and relating those classes to each other. In this context, a… …   Wikipedia

  • Irreducible complexity — This article covers irreducible complexity as used by those who argue for intelligent design. For information on irreducible complexity as used in Systems Theory, see Irreducible complexity (Emergence). Irreducible complexity (IC) is an argument… …   Wikipedia

  • NL (complexity) — In computational complexity theory, NL (Nondeterministic Logarithmic space) is the complexity class containing decision problems which can be solved by a nondeterministic Turing machine using a logarithmic amount of memory space. NL is a… …   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

Share the article and excerpts

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