转换为CNF的步骤之一是Standardize variables。
我一直在寻找为什么如果我不对变量进行标准化,为什么会违反解析算法的完整条件,并且不会违反健壮性。
任何人都可以添加细节,为什么只是破坏了完整性,而健壮性仍然存在?
发布于 2015-03-13 08:31:45
这里有一个示例,可以帮助您可视化这一点。假设你的理论是
(for all X : nice(X)) or (for all X : smart(X)) (1)
如果分开进行标准化,将会产生CNF:
nice(X) or smart(Y)也就是说,一个群体中的每个人都很好,或者每个人都很聪明,或者两者兼而有之。
分离标准化将产生一个CNF
nice(X) or smart(X)这相当于
(for all X : nice(X) or smart(X)) (2)
也就是说,对于一个群体中的每个人来说,这个人要么是好的,要么是聪明的,或者两者兼而有之。
这个理论(2)比最初的理论(1)说得更少,更弱,因为它承认了一种情况,在这种情况下,不是每个人都是好的,也不是每个人都是聪明的,但每个人都是一个人或另一个人,或者两者兼而有之。换句话说,(2)并不意味着(1),但(1)意味着(2) (如果整个群体都很好,那么每个人都很好;如果整个人群都很聪明,那么每个人都很聪明;因此,每个人要么很好,要么很聪明)。(2)接受的可能世界的集合严格大于(1)接受的可能世界的集合。
关于完整性和健壮性,这说明了什么?
使用(2)是不完整的,因为我可以向您展示(1)中的一个真定理的反例,该定理在使用(2)时不被证明为真。考虑一下定理“如果John不是很好而是聪明,那么Liz就是聪明的”。因此,我不能再使用(2)来证明一个真实的定理(在删除标准化之后),因此我的推理是不完整的。
现在假设我用(2)证明了一些定理T是真的。这意味着T在(2)成立的每个可能的世界中成立,包括(1)成立的它们的子集(根据上面从这里开始的第三段)。因此,T在(1)中也是真的,所以使用(2)进行推理仍然是正确的。
简而言之:当你没有标准化分离时,你会“连接”关于整个域(群体)的陈述,并使它们关于个体,这将是较弱的,并且不会暗示以前暗示的一些事实;它们将丢失,并且你的过程将不完整。
https://stackoverflow.com/questions/26524237
复制相似问题