144 5 Three Relatively Advanced Topics
r
The search problem R with promise P is in the
promise problem extension of
PC if there exists a polynomial T and an algorithm A such that, for every
x ∈ P and y ∈{0, 1}
∗
, algorithm A makes at most T (|x|) steps and it holds
that A(x,y) = 1 if and only if (x,y) ∈ R.
We stress that nothing is required of the solver in the case that the input violates
the promise (i.e., x ∈ P ); in particular, in such a case the algorithm may halt
with a wrong output. (Indeed, the standard formulations of PF and PC are
obtained by considering the trivial promise P ={0, 1}
∗
.)
3
In addition to the foregoing motivation for promise problems, we mention
one natural class of search problems with a promise. These are search problem
in which the promise is that the instance has a solution; that is, in terms of
Definition 5.1, we consider a search problem R with the promise P = S
R
.We
refer to such search problems by the name candid search problems.
Definition 5.2 (candid search problems): An algorithm A solves the
candid
search problem of the binary relation
R if for every x ∈ S
R
(i.e., for every (x, y)∈
R) it holds that (x, A(x)) ∈ R. The time complexity of such an algorithm is
defined as T
A|S
R
(n)
def
= max
x∈S
R
∩{0,1}
n
{t
A
(x)}, where t
A
(x) is the running time of
A(x) and T
A|S
R
(n) = 0 if S
R
∩{0, 1}
n
=∅.
Note that nothing is required when x ∈ S
R
: In particular, algorithm A may
either output a wrong solution (although no solutions exist) or run for more than
T
A|S
R
(|x|) steps. The first case can be essentially eliminated whenever R ∈ PC.
Furthermore, for R ∈ PC, if we “know” the time complexity of algorithm A
(e.g., if we can compute T
A|S
R
(n) in poly(n)-time), then we may modify A into
an algorithm A
that solves the (general) search problem of R (i.e., halts with
a correct output on each input) in time T
A
such that T
A
(n) essentially equals
T
A|S
R
(n) + poly(n); see Exercise 5.2. However, we do not necessarily know the
running time of an algorithm that we consider (or analyze). Furthermore, as
we shall see in Section 5.2, the naive assumption by which we always know the
running time of an algorithm that we design is not valid either.
5.1.1.2 Decision Problems with a Promise
In the context of decision problems, a promise problem is a relaxation in
which one is only required to determine the status of instances that belong to a
predetermined set, called the
promise. The requirement of efficient verification
modification can be implemented in polynomial time by computing t = T (|x|) and emulating
the execution of A(x)fort steps. A similar comment applies to the definition of PC, P,and
NP.
3
Here we refer to the alternative formulation of PC outlined in Section 2.5.