scratch

§ Randomized SharpSAT

created 2026-03-20 · last edited 2026-08-08
  • First idea: take random assignments, and use this to estimate total number of models.
  • Next idea: take deterministic partial assignments, then extend these partial assignments randomly. This will use the randomness on a 'smaller domain', and exploits linearity of expectation.
  • Next refinement: A partial assignment is just a predicate AAA that we adjoin to our formula. Therefore, can we randomly pick such an AAA, such that if we can estimate ∣M⊨ϕ∧A∣|M \models \phi \land A|∣M⊨ϕ∧A∣, we can estimate ∣M⊨ϕ∣|M \models \phi|∣M⊨ϕ∣? Yes, pick symmetric AAA that cut down the number of models by a factor of 2 in expectation. For example, pick AAA to be something like xi=xjx_i = x_jxi​=xj​.
  • More generally, can pick xi=xjx_i = x_jxi​=xj​ with probability 1/2, and xi=¬xjx_i = \neg x_jxi​=¬xj​ with probability 1/2, and this will give us the same guarantee.
  • This can be written as xi⊕xj=bx_i \oplus x_j = bxi​⊕xj​=b, where bbb is a random bit.
  • So, pick {Ak}\{ A_k \}{Ak​} of the form xi⊕xj=bx_i \oplus x_j = bxi​⊕xj​=b, and then estimate ∣M⊨ϕ∧kAk∣|M \models \phi \land_k A_k|∣M⊨ϕ∧k​Ak​∣ for the full set AkA_kAk​ by random sampling. This gives us an estimate of ∣M⊨ϕ∣|M \models \phi|∣M⊨ϕ∣ as 2k∗∣M⊨ϕ∧Ak∣2^k * |M \models \phi \land A_k|2k∗∣M⊨ϕ∧Ak​∣!
  • Why does this work so well in practice? I don't know! I should read Kuldeep Meel's paper to find out.
❦
Newer ৪ Blog ৪ Older