In
computability theory
Computability theory, also known as recursion theory, is a branch of mathematical logic, computer science, and the theory of computation that originated in the 1930s with the study of computable functions and Turing degrees. The field has since e ...
and
computational complexity theory, a decision problem is a computational problem that can be posed as a
yes–no question of the input values. An example of a decision problem is deciding by means of an
algorithm whether a given natural number is
prime. Another is the problem "given two numbers ''x'' and ''y'', does ''x'' evenly divide ''y''?". The answer is either 'yes' or 'no' depending upon the values of ''x'' and ''y''. A method for solving a decision problem, given in the form of an
algorithm, is called a decision procedure for that problem. A decision procedure for the decision problem "given two numbers ''x'' and ''y'', does ''x'' evenly divide ''y''?" would give the steps for determining whether ''x'' evenly divides ''y''. One such algorithm is
long division. If the remainder is zero the answer is 'yes', otherwise it is 'no'. A decision problem which can be solved by an algorithm is called ''decidable''.
Decision problems typically appear in mathematical questions of
decidability, that is, the question of the existence of an
effective method to determine the existence of some object or its membership in a set; some of the most important problems in mathematics are
undecidable.
The field of computational complexity categorizes ''decidable'' decision problems by how difficult they are to solve. "Difficult", in this sense, is described in terms of the
computational resources needed by the most efficient algorithm for a certain problem. The field of
recursion theory, meanwhile, categorizes ''undecidable'' decision problems by
Turing degree, which is a measure of the noncomputability inherent in any solution.
Definition
A ''decision problem'' is a yes-or-no question on an
infinite set of inputs. It is traditional to define the decision problem as the set of possible inputs together with the set of inputs for which the answer is ''yes''.
These inputs can be natural numbers, but can also be values of some other kind, like binary
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 ...
s or strings over some other
alphabet. The subset of strings for which the problem returns "yes" is a
formal language, and often decision problems are defined as formal languages.
Using an encoding such as
Gödel numbering
In mathematical logic, a Gödel numbering is a function that assigns to each symbol and well-formed formula of some formal language a unique natural number, called its Gödel number. The concept was developed by Kurt Gödel for the proof of his ...
, any string can be encoded as a natural number, via which a decision problem can be defined as a subset of the natural numbers. Therefore, the algorithm of a decision problem is to compute the
characteristic function of a subset of the natural numbers.
Examples
A classic example of a decidable decision problem is the set of prime numbers. It is possible to effectively decide whether a given natural number is prime by testing every possible nontrivial factor. Although much more efficient methods of
primality testing
A primality test is an algorithm for determining whether an input number is prime. Among other fields of mathematics, it is used for cryptography. Unlike integer factorization, primality tests do not generally give prime factors, only stating wh ...
are known, the existence of any effective method is enough to establish decidability.
Decidability
A decision problem is ''decidable'' or ''effectively solvable'' if the set of inputs (or natural numbers) for which the answer is yes is a
recursive set. A problem is ''partially decidable'', ''semidecidable'', ''solvable'', or ''provable'' if the set of inputs (or natural numbers) for which the answer is yes is a
recursively enumerable set. Problems that are not decidable are ''undecidable''. For those it is not possible to create an algorithm, efficient or otherwise, that solves them.
The
halting problem is an important undecidable decision problem; for more examples, see
list of undecidable problems
In computability theory, an undecidable problem is a type of computational problem that requires a yes/no answer, but where there cannot possibly be any computer program that always gives the correct answer; that is, any possible program would some ...
.
Complete problems
Decision problems can be ordered according to
many-one reducibility and related to feasible reductions such as
polynomial-time reduction
In computational complexity theory, a polynomial-time reduction is a method for solving one problem using another. One shows that if a hypothetical subroutine solving the second problem exists, then the first problem can be solved by transforming ...
s. A decision problem ''P'' is said to be ''
complete
Complete may refer to:
Logic
* Completeness (logic)
* Completeness of a theory, the property of a theory that every formula in the theory's language or its negation is provable
Mathematics
* The completeness of the real numbers, which implies t ...
'' for a set of decision problems ''S'' if ''P'' is a member of ''S'' and every problem in ''S'' can be reduced to ''P''. Complete decision problems are used in
computational complexity theory to characterize
complexity classes of decision problems. For example, the
Boolean satisfiability problem is complete for the class
NP of decision problems under polynomial-time reducibility.
Function problems
Decision problems are closely related to
function problems, which can have answers that are more complex than a simple 'yes' or 'no'. A corresponding function problem is "given two numbers ''x'' and ''y'', what is ''x'' divided by ''y''?".
A
function problem consists of a
partial function ''f''; the informal "problem" is to compute the values of ''f'' on the inputs for which it is defined.
Every function problem can be turned into a decision problem; the decision problem is just the graph of the associated function. (The graph of a function ''f'' is the set of pairs (''x'',''y'') such that ''f''(''x'') = ''y''.) If this decision problem were effectively solvable then the function problem would be as well. This reduction does not respect computational complexity, however. For example, it is possible for the graph of a function to be decidable in polynomial time (in which case running time is computed as a function of the pair (''x'',''y'')) when the function is not computable in
polynomial time
In 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 performed by ...
(in which case running time is computed as a function of ''x'' alone). The function ''f''(''x'') = 2
''x'' has this property.
Every decision problem can be converted into the function problem of computing the
characteristic function of the set associated to the decision problem. If this function is computable then the associated decision problem is decidable. However, this reduction is more liberal than the standard reduction used in computational complexity (sometimes called polynomial-time many-one reduction); for example, the complexity of the characteristic functions of an
NP-complete problem and its
co-NP-complete complement is exactly the same even though the underlying decision problems may not be considered equivalent in some typical models of computation.
Optimization problems
Unlike decision problems, for which there is only one correct answer for each input, optimization problems are concerned with finding the ''best'' answer to a particular input. Optimization problems arise naturally in many applications, such as the
traveling salesman problem
The travelling salesman problem (also called the travelling salesperson problem or TSP) asks the following question: "Given a list of cities and the distances between each pair of cities, what is the shortest possible route that visits each cit ...
and many questions in
linear programming
Linear programming (LP), also called linear optimization, is a method to achieve the best outcome (such as maximum profit or lowest cost) in a mathematical model whose requirements are represented by linear function#As a polynomial function, li ...
.
There are standard techniques for transforming function and optimization problems into decision problems. For example, in the traveling salesman problem, the optimization problem is to produce a tour with minimal weight. The associated decision problem is: for each ''N'', to decide whether the graph has any tour with weight less than ''N''. By repeatedly answering the decision problem, it is possible to find the minimal weight of a tour.
Because the theory of decision problems is very well developed, research in complexity theory has typically focused on decision problems. Optimization problems themselves are still of interest in computability theory, as well as in fields such as
operations research.
See also
*
ALL (complexity) In computability and complexity theory, ALL is the class of all 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 of the input v ...
*
Computational problem
*
Decidability (logic) – for the problem of deciding whether a formula is a consequence of a
logical theory.
*
Search problem
*
Counting problem (complexity)
*
Word problem (mathematics)
References
*
*
*
*
*
*
{{Authority control
Computational problems
Computability theory