Deterministic reductions of promise problems and gap problems #
Hardness of approximation is stated through gap problems Arora and Barak, Chapter
11. For a maximization objective val, the gap problem gapMax val c s is the
promise problem whose yes-instances have value at least c and whose no-instances have value at
most s, below c. When this gap problem is NP-hard, the maximization problem is NP-hard to
approximate within every ratio better than s / c: an algorithm estimating val from below
within such a ratio would tell the two kinds of instances apart.
Reductions between promise problems are the polynomial-time many-one reductions of
Cslib.Complexity.PolyTimeReducible, required to map yes-instances to yes-instances and
no-instances to no-instances; on decision problems they are exactly those reductions
(PromiseProblem.polyTimeReducible_ofSet_iff). Between gap problems they are the
gap-preserving reductions used to transfer inapproximability from one problem to another.
A promise problem is NP-hard when every problem in NP reduces to it; for decision problems this
is Cslib.Complexity.NPHard (PromiseProblem.npHard_ofSet_iff). An NP-hard promise problem solved
in polynomial time gives P = NP (PromiseProblem.NPHard.P_eq_NP_of_mem_PromiseP).
Reductions of promise problems are Karp reductions in the sense of Goldreich's survey
[Gol06]: one function serves for every instance in the promise. This is stronger than
asking every problem separating the yes-instances from the no-instances to be NP-hard, which
PromiseProblem.NPHard.npHard_of_subset derives.
Probabilistic promise classes are defined with their decision specializations: PromiseBPP in
CslibFrontier.Computability.Complexity.Classes.BPP, and PromiseRP and PromiseCoRP in
CslibFrontier.Computability.Complexity.Classes.RP. Their PPT characterizations live in
CslibFrontier.Computability.Complexity.Classes.Promise.Probabilistic, and randomized one-sided
reductions (RPReducible, RPReducibleWithError) live in
CslibFrontier.Computability.Complexity.Classes.Promise.Randomized.
Main definitions #
Cslib.Complexity.PromiseProblem.PolyTimeReducible: polynomial-time reductions of promise problems, which between gap problems are the gap-preserving reductions.Cslib.Complexity.PromiseProblem.NPHard: every problem inNPreduces to the promise problem.Cslib.Complexity.PromiseProblem.gapMax,Cslib.Complexity.PromiseProblem.gapMin: the gap problems of a maximization and of a minimization objective.Cslib.Complexity.PromiseProblem.restrict: a promise problem restricted to a set of instances.
Main results #
Cslib.Complexity.PromiseProblem.polyTimeReducible_ofSet_iff,Cslib.Complexity.PromiseProblem.npHard_ofSet_iff: on decision problems, the notions areCslib.Complexity.PolyTimeReducibleandCslib.Complexity.NPHard.Cslib.Complexity.PromiseProblem.PolyTimeReducible.refl,Cslib.Complexity.PromiseProblem.PolyTimeReducible.trans,Cslib.Complexity.PromiseProblem.PolyTimeReducible.of_subset,Cslib.Complexity.PromiseProblem.NPHard.trans,Cslib.Complexity.PromiseProblem.NPHard.mono: reflexivity, composition and monotonicity of promise reductions and NP-hardness.Cslib.Complexity.PromiseProblem.PolyTimeReducible.mem_PromiseP,Cslib.Complexity.PromiseProblem.PolyTimeReducible.mem_PromiseNP,Cslib.Complexity.PromiseProblem.PolyTimeReducible.exists_polyTimeReducible: closure ofPromisePandPromiseNPunder deterministic reductions.Cslib.Complexity.PromiseProblem.npHard_of_polyTimeReducible_SAT: a reduction fromSATproves NP-hardness, by the Cook–Levin theorem.Cslib.Complexity.PromiseProblem.NPHard.npHard_of_subset,Cslib.Complexity.PromiseProblem.NPHard.NP_subset_P_of_mem_PromiseP,Cslib.Complexity.PromiseProblem.NPHard.P_eq_NP_of_mem_PromiseP,Cslib.Complexity.PromiseProblem.NPHard.notMem_PromiseP: consequences of NP-hardness for separating languages andPvsNP.Cslib.Complexity.PromiseProblem.mem_no_gapMax_of_lt,Cslib.Complexity.PromiseProblem.mem_no_gapMin_of_lt: characterization of no-instances of gap problems when the soundness and completeness thresholds are strictly separated.
References #
Reductions #
A polynomial-time reduction of promise problems from X to Y: a function computable in
polynomial time with respect to encA and encB mapping the yes-instances of X to yes-instances
of Y and its no-instances to no-instances of Y. Instances outside the promise of X may go
anywhere. Between gap problems these are the gap-preserving reductions.
Instances For
Every promise problem reduces to itself.
Reductions of promise problems compose.
A promise problem reduces, by the identity, to any problem with more yes-instances and more no-instances: enlarging the promise can only make a problem harder.
PromiseP is closed under reductions.
A reduction of promise problems restricts to a polynomial-time reduction between the problems
that separate them: for every problem B containing the yes-instances of Y and no no-instance,
its preimage separates X and reduces to B.
PromiseNP is closed under polynomial-time reductions.
NP-hardness #
A promise problem is NP-hard when every problem in NP, with any encoding of its
instances, reduces to it: some polynomial-time function maps its members to yes-instances and its
non-members to no-instances. This is HardUnder for PolyTimeReducible from ofSet.
Instances For
NP-hardness of a promise problem is hardness for NP under PolyTimeReducible from ofSet.
On decision problems, NP-hardness as a promise problem is Cslib.Complexity.NPHard.
NP-hardness transfers along reductions.
A reduction from SAT proves NP-hardness, by the Cook–Levin theorem.
Every problem separating the yes-instances of an NP-hard promise problem from its no-instances is NP-hard.
If an NP-hard promise problem is solved in polynomial time, then NP ⊆ P for every encoding
of instances.
An NP-hard promise problem solved in polynomial time gives P = NP, for every encoding
of instances.
If P ≠ NP for some encoding, no NP-hard promise problem is solved in polynomial time.
Gap problems #
The gap problem of a maximization objective val, with completeness threshold c and
soundness threshold s: the yes-instances have value at least c, the no-instances value at most
s, below c. The thresholds may depend on the instance; an instance with c x ≤ s x is not a
no-instance, so that the two sets are disjoint.
Instances For
The gap problem of a minimization objective val, with completeness threshold c and
soundness threshold s: the yes-instances have value at most c, the no-instances value at least
s, above c. The thresholds may depend on the instance; an instance with s x ≤ c x is not a
no-instance, so that the two sets are disjoint.
Instances For
The promise problem Q with its promise restricted to the instances in S.