In
computational complexity theory
In theoretical computer science and mathematics, computational complexity theory focuses on classifying computational problems according to their resource usage, and explores the relationships between these classifications. A computational problem ...
, a certificate (also called a witness) is a
string
String or strings may refer to:
*String (structure), a long flexible structure made from threads twisted together, which is used to tie, bind, or hang other objects
Arts, entertainment, and media Films
* ''Strings'' (1991 film), a Canadian anim ...
that certifies the answer to a
computation
A computation is any type of arithmetic or non-arithmetic calculation that is well-defined. Common examples of computation are mathematical equation solving and the execution of computer algorithms.
Mechanical or electronic devices (or, hist ...
, or certifies the membership of some string in a
language
Language is a structured system of communication that consists of grammar and vocabulary. It is the primary means by which humans convey meaning, both in spoken and signed language, signed forms, and may also be conveyed through writing syste ...
. A certificate is often thought of as a solution path within a verification process, which is used to check whether a
problem
Problem solving is the process of achieving a goal by overcoming obstacles, a frequent part of most activities. Problems in need of solutions range from simple personal tasks (e.g. how to turn on an appliance) to complex issues in business an ...
gives the answer "Yes" or "No".
In the
decision tree model of computation, certificate complexity is the minimum number of the
input variables of a
decision tree
A decision tree is a decision support system, decision support recursive partitioning structure that uses a Tree (graph theory), tree-like Causal model, model of decisions and their possible consequences, including probability, chance event ou ...
that need to be assigned a value in order to definitely establish the value of the
Boolean function
In mathematics, a Boolean function is a function whose arguments and result assume values from a two-element set (usually , or ). Alternative names are switching function, used especially in older computer science literature, and truth functi ...
.
Use in definitions
The notion of certificate is used to define
semi-decidability: a
formal language
In logic, mathematics, computer science, and linguistics, a formal language is a set of strings whose symbols are taken from a set called "alphabet".
The alphabet of a formal language consists of symbols that concatenate into strings (also c ...
is semi-decidable if there is a two-place predicate
relation such that
is
computable
Computability is the ability to solve a problem by an effective procedure. It is a key topic of the field of computability theory within mathematical logic and the theory of computation within computer science. The computability of a problem is cl ...
, and such that for all
:
x ∈ L ⇔ there exists y such that R(x, y)
Certificates also give definitions for some complexity classes which can alternatively be characterised in terms of
nondeterministic Turing machine
In theoretical computer science, a nondeterministic Turing machine (NTM) is a theoretical model of computation whose governing rules specify more than one possible action when in some given situations. That is, an NTM's next state is ''not'' comp ...
s. A language
is in
NP if and only if there exists a polynomial
and a
polynomial-time
In theoretical computer science, the time complexity is the computational complexity that describes the amount of computer time it takes to run an algorithm. Time complexity is commonly estimated by counting the number of elementary operations p ...
bounded
Turing machine
A Turing machine is a mathematical model of computation describing an abstract machine that manipulates symbols on a strip of tape according to a table of rules. Despite the model's simplicity, it is capable of implementing any computer algori ...
such that every word
is in the language
precisely if there exists a certificate
of length at most
such that
accepts the pair
. The class
co-NP has a similar definition, except that there are certificates for the words ''not'' in the language.
The class
NL has a certificate definition: a problem in the language has a certificate of polynomial length, which can be verified by a deterministic logarithmic-space bounded Turing machine that can read each bit of the certificate once only. Alternatively, the deterministic logarithmic-space Turing machine in the statement above can be replaced by a bounded-error probabilistic constant-space Turing machine that is allowed to use only a constant number of random bits.
Examples
The problem of determining, for a given graph
and number
, if the graph contains an
independent set of size
is in NP. Given a pair
in the language, a certificate is a set of
vertices which are pairwise not adjacent (and hence are an independent set of size
).
A more general example, for the problem of determining if a given Turing machine accepts an input in a certain number of steps, is as follows:
L =
Show L ∈ NP.
verifier:
gets string c =
, x, w such that , c, <= P(, w, )
check if c is an accepting computation of M on x with at most , w, steps
, c, <= O(, w, 3)
if we have a computation of a TM with k steps the total size of the computation string is k2
Thus, <, x, w> ∈ L ⇔ there exists c <= a, w, 3 such that <, x, w, c> ∈ V ∈ P
See also
* Witness (mathematics), an analogous concept in mathematical logic
References
External links
* {{Citation , last1 = Buhrman , first1=Harry , last2=de Wolf , first2=Ronald , title=Complexity Measures and Decision Tree Complexity:A Survey , year=2002.
Computational Complexity: a Modern Approach by Sanjeev Arora and Boaz Barak
Computational complexity theory