In
complexity theory, computational problems that are co-NP-complete are those that are the hardest problems in
co-NP, in the sense that any problem in co-NP can be reformulated as a special case of any co-NP-complete problem with only polynomial overhead. If
P is different from co-NP, then all of the co-NP-complete problems are not solvable in polynomial time. If there exists a way to solve a co-NP-complete problem quickly, then that algorithm can be used to solve all co-NP problems quickly.
Each co-NP-complete problem is the
complement of an
NP-complete
In computational complexity theory, NP-complete problems are the hardest of the problems to which ''solutions'' can be verified ''quickly''.
Somewhat more precisely, a problem is NP-complete when:
# It is a decision problem, meaning that for any ...
problem. There are some problems in both
NP and
co-NP, for example all problems in
P or
integer factorization
In mathematics, integer factorization is the decomposition of a positive integer into a product of integers. Every positive integer greater than 1 is either the product of two or more integer factors greater than 1, in which case it is a comp ...
. However, it is not known if the sets are equal, although inequality is thought more likely. See
co-NP and
NP-complete
In computational complexity theory, NP-complete problems are the hardest of the problems to which ''solutions'' can be verified ''quickly''.
Somewhat more precisely, a problem is NP-complete when:
# It is a decision problem, meaning that for any ...
for more details.
Fortune showed in 1979 that if any
sparse language is co-NP-complete (or even just co-NP-hard), then ,
a critical foundation for
Mahaney's theorem.
Formal definition
A
decision problem
In computability theory and computational complexity theory, a decision problem is a computational problem that can be posed as a yes–no question on a set of input values. An example of a decision problem is deciding whether a given natura ...
''C'' is co-NP-complete if it is in
co-NP and if every problem in co-NP is
polynomial-time many-one reducible to it.
This means that for every co-NP problem ''L'', there exists a polynomial time algorithm which can transform any instance of ''L'' into an instance of ''C'' with the same
truth value
In logic and mathematics, a truth value, sometimes called a logical value, is a value indicating the relation of a proposition to truth, which in classical logic has only two possible values ('' true'' or '' false''). Truth values are used in ...
. As a consequence, if we had a polynomial time algorithm for ''C'', we could solve all co-NP problems in polynomial time.
Example
One example of a co-NP-complete problem is
tautology, the problem of determining whether a given
Boolean formula is a tautology; that is, whether every possible assignment of true/false values to variables yields a true statement. This is closely related to the
Boolean satisfiability problem
In logic and computer science, the Boolean satisfiability problem (sometimes called propositional satisfiability problem and abbreviated SATISFIABILITY, SAT or B-SAT) asks whether there exists an Interpretation (logic), interpretation that Satisf ...
, which asks whether there exists ''at least one'' such assignment, and is NP-complete.
References
External links
*
{{ComplexityClasses
Complexity classes