Computational Problem
Computational Problem
In theoretical computer science, a computational problem is a problem that a computer might be able
to solve or a question that a computer may be able to answer. For example, the problem of factoring
Computational problems are one of the main objects of study in theoretical computer science. The field
of computational complexity theory attempts to determine the amount of resources (computational
complexity) solving a given problem will require and explain why some problems are intractable or
undecidable. Computational problems belong to complexity classes that define broadly the resources
(e.g. time, space/memory, energy, circuit depth) it takes to compute (solve) them with various abstract
machines. For example, the complexity class P for cassical machines, and BQP for quantum machines.
It is typical of many problems to represent both instances and solutions by binary strings, namely
elements of {0, 1}*.[a] For example, numbers can be represented as binary strings using binary
encoding.
Types
A decision problem is a computational problem where the answer for every instance is either yes or no.
An example of a decision problem is primality testing:
A decision problem is typically represented as the set of all instances for which the answer is yes. For
example, primality testing can be represented as the infinite set
A search problem is represented as a relation consisting of all the instance-solution pairs, called a search
relation. For example, factoring can be represented as the relation
R = {(4, 2), (6, 2), (6, 3), (8, 2), (9, 3), (10, 2), (10, 5)...}
which consist of all pairs of numbers (n, p), where p is a nontrivial prime factor of n.
A counting problem asks for the number of solutions to a given search problem. For example, a counting
problem associated with factoring is
"Given a positive integer n, count the number of nontrivial prime factors of n."
A counting problem can be represented by a function f from {0, 1}* to the nonnegative integers. For a
search relation R, the counting problem associated to R is the function
An optimization problem asks for finding a "best possible" solution among the set of all possible
solutions to a search problem. One example is the maximum independent set problem:
In a function problem a single output (of a total function) is expected for every input, but the output is
more complex than that of a decision problem, that is, it isn't just "yes" or "no". One of the most famous
examples is the traveling salesman problem:
"Given a list of cities and the distances between each pair of cities, find the shortest possible route that
visits each city exactly once and returns to the origin city."