稳定模型语义
编辑稳定模型的概念,或者说答案集,被用来定义以否定为失败的逻辑程序的声明性语义。这是逻辑编程中否定意义的几种标准方法之一,另外还有程序完成和有根基的语义。稳定模型语义是答案集编程的基础。对逻辑编程中否定的声明性语义的研究,是由于SLDNF解析的行为--Prolog在规则体中存在否定时使用的SLD解析的泛化--与经典命题逻辑中熟悉的真值表并不完全匹配。比如说,考虑一下这个程序考虑到这个程序,查询p会成功,因为这个程序把p作为一个事实;查询q会失败,因为它没有出现在任何规则的头部。查询r也会失败,因为xxx一条头部有r的规则在其主体中包含了子目标q;正如我们所看到的,该子目标失败了。总之,SLDNF对给定程序的解析行为可以用下面的真值分配来表示。另一方面,如果我们把逗号与连词相联系,那么给定程序的规则可以被看作是命题公式。反过来写。例如,从这个角度看,给定程序的最后一条规则是命题公式的替代符号p∧¬q→s。如果我们计算上图所示的真值赋值的程序规则的真值,那么我们会看到每个规则得到的值是T。但是这个程序也有其他的模型,比如说因此,给定程序的一个模型是特殊的,因为它正确地代表了SLDNF解析的行为。该模型的数学属性是什么,使得它很特别?这个问题的答案是由稳定模型的定义提供的。
与非单调逻辑的关系
编辑逻辑程序中的否定的含义与非单调推理的两种理论--自体逻辑和缺省逻辑密切相关。发现这些关系是发明稳定模型语义学的关键一步。自相矛盾逻辑的语法使用了一个模态算子,使我们能够区分什么是真的和什么是相信的。稳定模型语义的基本形式可以被看作是对这一思想的重新表述,它避免了对自体逻辑的明确引用。在缺省逻辑中,缺省与推理规则相似,只是它除了包括前提和结论之外,还包括一个叫做理由的公式列表。
在假设其理由与当前所相信的一致的情况下,一个缺省可以被用来推导其结论。稳定模型语义使用了同样的想法,但它没有明确地提到默认逻辑。
稳定模型
编辑首先,一个真值赋值与得到值T的原子集合相标识。例如,真值赋值.这种惯例使我们能够使用集合包容关系来相互比较真值赋值。所有真值赋值中最小的是∅中最小的真值赋值是使每个原子都是假的;xxx的真值分配使每个原子都是真的。
内容由匿名用户提供,本内容不代表vibaike.com立场,内容投诉举报请联系vibaike.com客服。如若转载,请注明出处:https://vibaike.com/171006/