HOME

TheInfoList



OR:

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 ...
, a promise problem is a generalization 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 ...
where the input is promised to belong to a particular subset of all possible inputs. Unlike decision problems, the ''yes'' instances (the inputs for which an algorithm must return ''yes'') and ''no'' instances do not exhaust the set of all inputs. Intuitively, the algorithm has been ''promised'' that the input does indeed belong to set of ''yes'' instances or ''no'' instances. There may be inputs which are neither ''yes'' nor ''no''. If such an input is given to an algorithm for solving a promise problem, the algorithm is allowed to output anything, and may even not halt.


Definition

A decision problem can be associated with a
language Language is a structured system of communication that consists of grammar and vocabulary. It is the primary means by which humans convey meaning, both in spoken and signed language, signed forms, and may also be conveyed through writing syste ...
L \subseteq \^*, where the problem is to accept all inputs in L and reject all inputs not in L. For a promise problem, there are two languages, L_ and L_, which must be disjoint, which means L_ \cap L_ = \varnothing, such that all the inputs in L_ are to be accepted and all inputs in L_ are to be rejected. The set L_ \cup L_ is called the ''promise''. There are no requirements on the output if the input does not belong to the promise. If the promise equals \^*, then this is also a decision problem, and the promise is said to be trivial.


Examples

Many natural problems are actually promise problems. For instance, consider the following problem: Given a directed acyclic graph, determine if the graph has a path of length 10. The ''yes'' instances are directed acyclic graphs with a path of length 10, whereas the ''no'' instances are directed acyclic graphs with no path of length 10. The promise is the set of directed acyclic graphs. In this example, the promise is easy to check. In particular, it is very easy to check if a given graph is cyclic. However, the promised property could be difficult to evaluate. For instance, consider the problem "Given a Hamiltonian graph, determine if the graph has a cycle of size 4." Now the promise is NP-hard to evaluate, yet the promise problem is easy to solve since checking for cycles of size 4 can be done in polynomial time.


See also

*
Computational problem In theoretical computer science, a computational problem is one that asks for a solution in terms of an algorithm. For example, the problem of factoring :"Given a positive integer ''n'', find a nontrivial prime factor of ''n''." is a computati ...
*
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 ...
*
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 ...
*
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 ...
*
Counting problem (complexity) In computational complexity theory and computability theory, a counting problem is a type of computational problem. If ''R'' is a search problem then :c_R(x)=\vert\\vert \, is the corresponding counting function and :\#R=\ denotes the corre ...
* Function problem * TFNP


References


Surveys

* * * {{cite journal , doi=10.1016/S0019-9958(84)80056-X , title=The complexity of promise problems with applications to public-key cryptography , journal= Information and Control , volume=61 , issue=2 , pages=159–173 , year=1984 , last1=Even , first1=Shimon , first2=Alan L. , last2=Selman , author2-link = Alan Selman , first3=Yacov , last3=Yacobi, doi-access= Computational problems