以下哪项是关于合取范式中的公式的?



以下哪项是关于合取范式公式的

?一个。对于任何公式,都有一个真值赋值,其中至少有一半的子句计算为 true。

二.对于任何公式,都有一个真值赋值,所有子句的计算结果均为 true。

三.有一个公式,对于每个真值赋值,最多四分之一的子句计算为 true。

D.以上都不是。

我的疑问:我知道合取范式是和形式的乘积,但这个问题让我感到困惑,请用简单的语言解释一下。

我将展示(A(的两个证明。我们可以用任何不满意的公式快速打折 (B(,例如x ∧ ¬x.从(A(的证明中,我们还可以打折(C(和(D(。

结构证明

假设我们在 CNF 中有一些公式。让我们检查任何命题变量(或项,或任何你想称呼它的东西(,我们将称之为x。我们可以考虑包含x¬x的所有条款,分为三种不同的情况:

  1. 如果子句中出现x¬x没有,我们知道如果x被分配为 true,则该子句将得到满足,如果x被分配为 false,则该子句将不满足。

  2. 同样,如果子句中出现¬xx没有,我们知道如果x被分配为 false,则该子句将得到满足,如果x被赋为 true,则该子句将不满足。

  3. 如果x¬x都出现在该条款中,则任何转让都将满足该条款。

如果案例 1 的子句多于案例 2,则 true 对x的赋值将至少满足所考虑条款的一半。如果案例 2 的子句多于案例 1,则 false 分配给x将满足至少一半的考虑条款。如果情况 1 和情况 2 出现相同,则对x的任何转让都将满足至少一半的考虑条款。

在剩下的子句中,我们可以对剩下的命题变量应用类似的算法,直到所有子句至少有一个赋值变量,并且所有这些子句中至少有一半将计算为 true。

按期望值证明

考虑 CNF 中某个公式的任何子句。假设每个子句都是"总和形式",则所有组成文字只有一个赋值,这将导致子句的计算结果为 false。这意味着,对于具有 k 个文字的子句,有 2 个 k - 1构成文字的赋值,这将导致子句的计算结果为 true。因为每个赋值都是独立相等的,所以子句计算为 true 的预期概率为 (2 k - 1(/2 k,即 1 - (1/2k(。显然,对于 k 的任何正值,通过任意真值赋值满足子句的概率至少是一半。

从满足某些任意子句的概率来看,我们可以说,满足子句的预期数量是满足每个子句的概率之和。从这里,通过少量的数学运算,我们可以得出结论,满足子句的预期数量至少是子句总数的一半。因为必须至少有一个真值赋值至少满足这个数量的期望满足子句,我们可以得出结论,对于任何给定的公式,至少存在一个满足至少一半子句的真值赋值。

相关内容

  • 没有找到相关文章

最新更新