Search Reducible to Decision
Decision vs Search
A decision problem asks for one bit: yes or no. A search problem asks us to output a witness, path, assignment, or other object.
Self-Reducibility Idea
For many NP problems, search reduces to repeated calls to the decision version. Example: for SAT, ask whether the formula is satisfiable with \(x_1=0\); if yes, keep that choice, otherwise set \(x_1=1\), and continue variable by variable.
Example: Independent Set Search from Decision
Suppose we have an oracle for the decision problem
To recover an actual independent set of size \(k\), first ask whether \((G,k)\) is a yes-instance. Then examine vertices one by one. For a vertex \(v\), ask whether \(G-v\) still has an independent set of size \(k\).
- If the answer is yes, discard \(v\); it is not needed.
- If the answer is no, then \(v\) must belong to some size-\(k\) independent set. Output \(v\), delete \(v\) and all its neighbors, and reduce the target from \(k\) to \(k-1\).
Repeating this process reconstructs a full independent set using only polynomially many decision queries.
Template for Recovering a Witness
- Ask whether a solution exists.
- Fix one bit or one local choice.
- Ask whether a solution still exists under that restriction.
- Repeat until the entire witness is reconstructed.
This needs only polynomially many decision-oracle queries when the witness length is polynomially bounded.
Why This Matters
If \(P=NP\), then not only can we decide SAT quickly, we can also find a satisfying assignment quickly by self-reduction.
The Classes EXP and NEXP
Definitions
These are the exponential-time analogues of \(P\) and \(NP\).
Interpretation
| Class | Machine type | Time bound |
|---|---|---|
| \(EXP\) | deterministic TM | \(2^{n^{O(1)}}\) |
| \(NEXP\) | nondeterministic TM | \(2^{n^{O(1)}}\) |
Basic Inclusion
because every deterministic machine is a special case of a nondeterministic one.
If \(P = NP\), Then \(EXP = NEXP\)
Claim
If \(P=NP\), then every nondeterministic exponential-time computation can be deterministically simulated in exponential time. Hence
Proof Strategy
Let \(L \in NEXP\). Then some NTM decides \(L\) in time \(2^{n^c}\). Define a padded language
The padding makes the original exponential time bound polynomial in the new input length.
Why the Padded Language Lies in NP
Let \[ N = |x \# 1^{2^{|x|^c}}|. \] Then \(N = \Theta(2^{|x|^c})\). On input \(x \# 1^t\) with \(t=2^{|x|^c}\), a nondeterministic machine can simulate the original \(NEXP\) machine for at most \(t\) steps. Since \(t = O(N)\), this simulation takes polynomial time in the padded input length. Thus \(L' \in NP\).
If \(P=NP\), then \(L' \in P\).
Recovering \(L\) from \(L'\)
To decide whether \(x \in L\), explicitly construct the padded string \(x \# 1^{2^{|x|^c}}\) and run the polynomial-time decider for \(L'\). Both the construction of the padding and the decider take time polynomial in the padded length, hence total time \[ 2^{|x|^{O(1)}}. \]
Since \(L\) was arbitrary in \(NEXP\), we get \(NEXP \subseteq EXP\). Together with \(EXP \subseteq NEXP\), this proves \(EXP=NEXP\).
The Class coNP
Definition
Equivalently, \(L \in coNP\) if its no-instances have polynomial-size certificates verifiable in polynomial time.
Canonical Example
\(\operatorname{TAUT} = \{\varphi : \varphi \text{ is true under every assignment}\}\) lies in \(coNP\), because its complement is
the set of formulas having a falsifying assignment, and that assignment serves as an NP witness.
Known Relations
- \(P \subseteq NP \cap coNP\).
- It is unknown whether \(NP = coNP\).
- If \(P=NP\), then automatically \(P=NP=coNP\).
Certificate View
\(NP\) talks about short proofs of membership. \(coNP\) talks about short proofs of non-membership. The open question \(NP \stackrel{?}{=} coNP\) asks whether both kinds of proof are equally powerful.
Lecture Summary
Main Messages
- For many NP problems, search reduces to decision via self-reduction.
- \(EXP\) and \(NEXP\) are the exponential-time analogues of \(P\) and \(NP\).
- The padding argument shows \(P=NP \Rightarrow EXP=NEXP\).
- \(coNP\) is the complement class of \(NP\), and \(NP \stackrel{?}{=} coNP\) remains open.