Katana VentraIP

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 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.

This article is about decision problems in complexity theory. For the decision problem in formal logic, see Entscheidungsproblem. For analysis of the process of making choices, see Decision theory.

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[edit]

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.[1]


These inputs can be natural numbers, but can also be values of some other kind, like binary strings 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, 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[edit]

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 are known, the existence of any effective method is enough to establish decidability.

ALL (complexity)

Computational problem

– for the problem of deciding whether a formula is a consequence of a logical theory.

Decidability (logic)

Search problem

Counting problem (complexity)

Word problem (mathematics)

Kozen, D.C. (2012). . Springer. ISBN 978-1-4612-1844-9.

Automata and Computability

Hartley, Rogers Jr (1987). The Theory of Recursive Functions and Effective Computability. MIT Press.  978-0-262-68052-3.

ISBN

(2020). Introduction to the Theory of Computation. Cengage Learning. ISBN 978-0-357-67058-3.

Sipser, M.

Soare, Robert I. (1987). . Springer. ISBN 0-387-15299-7.

Recursively Enumerable Sets and Degrees

; Strichman, Ofer (23 May 2008). Decision procedures. Springer. ISBN 978-3-540-74104-6.

Kroening, Daniel

Bradley, Aaron; (3 September 2007). The calculus of computation. Springer. ISBN 978-3-540-74112-1.

Manna, Zohar