HOME

TheInfoList



OR:

In
theoretical computer science Theoretical computer science is a subfield of computer science and mathematics that focuses on the Abstraction, abstract and mathematical foundations of computation. It is difficult to circumscribe the theoretical areas precisely. The Associati ...
, a computational problem is one that asks for a solution in terms of an
algorithm In mathematics and computer science, an algorithm () is a finite sequence of Rigour#Mathematics, mathematically rigorous instructions, typically used to solve a class of specific Computational problem, problems or to perform a computation. Algo ...
. For example, the problem of factoring :"Given a positive integer ''n'', find a nontrivial prime factor of ''n''." is a computational problem that has a solution, as there are many known
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 ...
algorithms. A computational problem can be viewed as a
set Set, The Set, SET or SETS may refer to: Science, technology, and mathematics Mathematics *Set (mathematics), a collection of elements *Category of sets, the category whose objects and morphisms are sets and total functions, respectively Electro ...
of ''instances'' or ''cases'' together with a, possibly empty, set of ''solutions'' for every instance/case. The question then is, whether there exists an algorithm that maps instances to solutions. For example, in the factoring problem, the instances are the integers ''n'', and solutions are prime numbers ''p'' that are the nontrivial prime factors of ''n''. An example of a computational problem without a solution is the
Halting problem In computability theory (computer science), computability theory, the halting problem is the problem of determining, from a description of an arbitrary computer program and an input, whether the program will finish running, or continue to run for ...
. Computational problems are one of the main objects of study in theoretical computer science. One is often interested not only in mere existence of an algorithm, but also how efficient the algorithm can be. The field of
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 ...
addresses such questions by determining the amount of resources ( computational complexity) solving a given problem will require, and explain why some problems are intractable or undecidable. Solvable 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 classes * P, problems that consume polynomial time for deterministic classical machines * BPP, problems that consume polynomial time for probabilistic classical machines (e.g. computers with random number generators) * BQP, problems that consume polynomial time for probabilistic quantum machines. Both instances and solutions are represented by binary strings, namely elements of *. For example,
natural numbers In mathematics, the natural numbers are the numbers 0, 1, 2, 3, and so on, possibly excluding 0. Some start counting with 0, defining the natural numbers as the non-negative integers , while others start with 1, defining them as the positiv ...
are usually represented as binary strings using binary encoding. This is important since the complexity is expressed as a function of the length of the input representation.


Types


Decision problem

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 ...
is a computational problem where the answer for every instance is either yes or no. An example of a decision problem is '' primality testing'': :"Given a positive integer ''n'', determine if ''n'' is prime." 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 :''L'' =


Search problem

In a
search problem In computational complexity theory and computability theory, a search problem is a computational problem of finding an ''admissible'' answer for a given input value, provided that such an answer exists. In fact, a search problem is specified by a b ...
, the answers can be arbitrary strings. For example, factoring is a search problem where the instances are (string representations of) positive integers and the solutions are (string representations of) collections of primes. 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'' = which consist of all pairs of numbers (''n'', ''p''), where ''p'' is a prime factor of ''n''.


Counting problem

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 * to the nonnegative integers. For a search relation ''R'', the counting problem associated to ''R'' is the function :''fR''(x) = , , .


Optimization problem

An
optimization problem In mathematics, engineering, computer science and economics Economics () is a behavioral science that studies the Production (economics), production, distribution (economics), distribution, and Consumption (economics), consumption of goo ...
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: :"Given a graph ''G'', find an independent set of ''G'' of maximum size." Optimization problems are represented by their objective function and their constraints.


Function problem

In a function problem a single output (of a
total function In mathematics, a partial function from a set to a set is a function from a subset of (possibly the whole itself) to . The subset , that is, the '' domain'' of viewed as a function, is called the domain of definition or natural domain o ...
) is expected for every input, but the output is more complex than that of 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 ...
, 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." It is an NP-hard problem in
combinatorial optimization Combinatorial optimization is a subfield of mathematical optimization that consists of finding an optimal object from a finite set of objects, where the set of feasible solutions is discrete or can be reduced to a discrete set. Typical combina ...
, important in
operations research Operations research () (U.S. Air Force Specialty Code: Operations Analysis), often shortened to the initialism OR, is a branch of applied mathematics that deals with the development and application of analytical methods to improve management and ...
and
theoretical computer science Theoretical computer science is a subfield of computer science and mathematics that focuses on the Abstraction, abstract and mathematical foundations of computation. It is difficult to circumscribe the theoretical areas precisely. The Associati ...
.


Promise problem

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 ...
, it is usually implicitly assumed that any string in * represents an instance of the computational problem in question. However, sometimes not all strings * represent valid instances, and one specifies a proper subset of * as the set of "valid instances". Computational problems of this type are called promise problems. The following is an example of a (decision) promise problem: :"Given a graph ''G'', determine if every independent set in ''G'' has size at most 5, or ''G'' has an independent set of size at least 10." Here, the valid instances are those graphs whose maximum independent set size is either at most 5 or at least 10. Decision promise problems are usually represented as pairs of disjoint subsets (''L''yes, ''L''no) of *. The valid instances are those in ''L''yes ∪ ''L''no. ''L''yes and ''L''no represent the instances whose answer is ''yes'' and ''no'', respectively. Promise problems play an important role in several areas of computational complexity, including hardness of approximation, property testing, and interactive proof systems.


See also

* Lateral computing, alternative approaches to solving problems computationally * Model of computation * Transcomputational problem


Notes


References

*. *. *{{citation, first1=Oded, last1=Goldreich, author1-link=Oded Goldreich, first2=Avi, last2=Wigderson, author2-link=Avi Wigderson, contribution=IV.20 Computational Complexity, pages=575–604, title=
The Princeton Companion to Mathematics ''The Princeton Companion to Mathematics'' is a book providing an extensive overview of mathematics that was published in 2008 by Princeton University Press. Edited by Timothy Gowers with associate editors June Barrow-Green and Imre Leader, it ha ...
, editor1-first=Timothy, editor1-last=Gowers, editor1-link=Timothy Gowers, editor2-first=June, editor2-last=Barrow-Green, editor3-first=Imre, editor3-last=Leader, editor3-link=Imre Leader, year=2008, publisher=Princeton University Press, isbn=978-0-691-11880-2. Theoretical computer science