Deterministic search for CNF satisfying assignments in almost polynomial time
We consider the fundamental derandomization problem of deterministically finding a satisfying assignment to a CNF formula that has many satisfying assignments. We give a deterministic algorithm which, given an $n$-variable $\mathrm{poly}(n)$-clause CNF formula $F$ that has at least $\varepsilon 2^n$ satisfying assignments, runs in time \[ n^{\tilde{O}(\log\log n)^2} \] for $\varepsilon \ge 1/\mathrm{polylog}(n)$ and outputs a satisfying assignment of $F$. Prior to our work the fastest known algorithm for this problem was simply to enumerate over all seeds of a pseudorandom generator for CNFs; using the best known PRGs for CNFs [DETT10], this takes time $n^{\tilde{\Omega}(\log n)}$ even for constant $\varepsilon$. Our approach is based on a new general framework relating deterministic search and deterministic approximate counting, which we believe may find further applications.