HOME

TheInfoList



OR:

In
theoretical computer science Theoretical computer science (TCS) is a subset of general computer science and mathematics that focuses on mathematical aspects of computer science such as the theory of computation, lambda calculus, and type theory. It is difficult to circumsc ...
, a computational problem is a problem that may be solved by an
algorithm In mathematics and computer science, an algorithm () is a finite sequence of rigorous instructions, typically used to solve a class of specific Computational problem, problems or to perform a computation. Algorithms are used as specificat ...
. For example, the problem of factoring :"Given a positive integer ''n'', find a nontrivial prime factor of ''n''." is a computational problem. 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. For example, in the
factoring problem In number theory, integer factorization is the decomposition of a composite number into a product of smaller integers. If these factors are further restricted to prime numbers, the process is called prime factorization. When the numbers are suf ...
, the instances are the integers ''n'', and solutions are prime numbers ''p'' that are the nontrivial prime factors of ''n''. Computational problems are one of the main objects of study in theoretical computer science. 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 relating these classes to each other. A computational problem is a task solved by ...
attempts to determine the amount of resources (
computational complexity In computer science, the computational complexity or simply complexity of an algorithm is the amount of resources required to run it. Particular focus is given to computation time (generally measured by the number of needed elementary operations) ...
) solving a given problem will require and explain why some problems are intractable or undecidable. Computational problems belong to
complexity classes In computational complexity theory, a complexity class is a set of computational problems of related resource-based complexity. The two most commonly analyzed resources are time and memory. In general, a complexity class is defined in terms of a ...
that define broadly the resources (e.g. time, space/memory, energy, circuit depth) it takes to compute (solve) them with various
abstract machine An abstract machine is a computer science theoretical model that allows for a detailed and precise analysis of how a computer system functions. It is analogous to a mathematical function in that it receives inputs and produces outputs based on pre ...
s. For example, the complexity class P for classical machines, and BQP for quantum machines. It is typical of many problems to represent both instances and solutions by binary
strings 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 ...
, namely elements of *. For example, numbers can be represented as binary strings using binary encoding.


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 of the input values. An example of a decision problem is deciding by means of an algorithm whethe ...
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 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 ...
'': :"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 type of computational problem represented by a binary relation. If ''R'' is a binary relation such that field(''R'') ⊆ Γ+ and ''T'' is a Turing machine, then '' ...
, 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 Relation or relations may refer to: General uses *International relations, the study of interconnection of politics, economics, and law on a global level *Interpersonal relationship, association or acquaintance between two or more people *Public ...
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 nontrivial 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, computer science and economics, an optimization problem is the problem of finding the ''best'' solution from all feasible solutions. Optimization problems can be divided into two categories, depending on whether the variables ...
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 In graph theory, an independent set, stable set, coclique or anticlique is a set of vertices in a graph, no two of which are adjacent. That is, it is a set S of vertices such that for every two vertices in S, there is no edge connecting the tw ...
'' problem: :"Given a graph ''G'', find an independent set of ''G'' of maximum size." Optimization problems can be represented by their search relations.


Function problem

In a
function problem In computational complexity theory, a function problem is a computational problem where a single output (of a total function) is expected for every input, but the output is more complex than that of a decision problem. For function problems, the ou ...
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 itself) to . The subset , that is, the domain of viewed as a function, is called the domain of definition of . If equals , that is, if is d ...
) 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 of the input values. An example of a decision problem is deciding by means of an algorithm whethe ...
, 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 In computational complexity theory, NP-hardness ( non-deterministic polynomial-time hardness) is the defining property of a class of problems that are informally "at least as hard as the hardest problems in NP". A simple example of an NP-hard pr ...
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 combi ...
, important in
operations research Operations research ( en-GB, operational research) (U.S. Air Force Specialty Code: Operations Analysis), often shortened to the initialism OR, is a discipline that deals with the development and application of analytical methods to improve deci ...
and
theoretical computer science Theoretical computer science (TCS) is a subset of general computer science and mathematics that focuses on mathematical aspects of computer science such as the theory of computation, lambda calculus, and type theory. It is difficult to circumsc ...
.


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 relating these classes to each other. A computational problem is a task solved by ...
, 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 problem In computational complexity theory, a promise problem is a generalization of a decision problem where the input is promised to belong to a particular subset of all possible inputs. Unlike decision problems, the ''yes'' instances (the inputs for whi ...
s. 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 In computer science, the computational complexity or simply complexity of an algorithm is the amount of resources required to run it. Particular focus is given to computation time (generally measured by the number of needed elementary operations) ...
, including
hardness of approximation In computer science, hardness of approximation is a field that studies the algorithmic complexity of finding near-optimal solutions to optimization problems. Scope Hardness of approximation complements the study of approximation algorithms by prov ...
,
property testing In computer science, a property testing algorithm for a decision problem is an algorithm whose query complexity to its input is much smaller than the instance size of the problem. Typically property testing algorithms are used to distinguish if s ...
, and
interactive proof system In computational complexity theory, an interactive proof system is an abstract machine that models computation as the exchange of messages between two parties: a ''prover'' and a ''verifier''. The parties interact by exchanging messages in order t ...
s.


See also

*
Lateral computing Lateral computing is a lateral thinking approach to solving computing problems. Lateral thinking has been made popular by Edward de Bono. This thinking technique is applied to generate creative ideas and solve problems. Similarly, by applying late ...
, alternative approaches to solving problems computationally *
Model of computation In computer science, and more specifically in computability theory and computational complexity theory, a model of computation is a model which describes how an output of a mathematical function is computed given an input. A model describes how ...
*
Transcomputational problem In computational complexity theory, a transcomputational problem is a problem that requires processing of more than 1093 bits of information. Any number greater than 1093 is called a transcomputational number. The number 1093, called Bremermann's l ...


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