您可以轻松地直接生成具有合理大小(| F | < n + 2 k)的唯一SAT公式。(|F|<n+2k)
令为唯一模型-假设m仅包含“ 0”(如有需要,请稍后重命名变量)。
让˚F一个ķ -SAT式满足仅由米 -的最大尺寸˚F是通过满足子句的总数米即(2 ķ - 1 )( Ñmm
FkmFm。(2k−1)(nk)
取,消除了一个“1”之间究竟分配所有车型条款X1,X2...Xķ:(¬X1,X2...Xķ)(X1,¬X2...Xķ)...(X1,X2...¬Xķ)(k1)x1,x2…xk
(¬x1,x2…xk)(x1,¬x2…xk)…(x1,x2…¬xk)
取能消除所有模型子句指定正好两个“1”之间的X1,X2...Xķ:(¬X1,¬X2,X3...Xķ)(¬X1,X2,¬X3...Xķ)...(X1,X2...¬Xķ-1¬(k2)x1,x2…xk
(¬x1,¬x2,x3…xk)(¬x1,x2,¬x3…xk)…(x1,x2…¬xk−1¬xk)
继续努力直到取得唯一子句消除了在x1,x2…xk中为每个变量分配“ 1”的所有模型。(kk)x1,x2…xk
唯一尚未消除的模型将所有分配为“ 0”。由于米是一个模型,则采取任何组ñ - ķ能够消除分配“1”的所有模型子句X 我(ķ < 我≤ Ñ )和0至任何ķ - 1层之间的变量X 1,X 2 ... X ķ,例如:(¬ X ķ + 1x1,x2…xkmn−kxi(k<i≤n)0k−1x1,x2…xk
。(¬xk+1,x1…,xk−1)…(¬xn,x1…xk−1)
然后|F|=∑ki=1(ki)+n−k=2k−1+n−k
要获取更多子句,请添加任何包含至少一个否定变量的子句。要获得无法满足的公式,只需添加带有负变量的子句。k