一阶逻辑动推理系统.docVIP

  1. 1、本文档共4页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
一阶逻辑动推理系统

一阶逻辑自动推理系统 一基础知识 (1)定义 1设t是LF(X)中的项,若t为常量或变元,则t为 0元项,记为 0-T;若t为 fn(t1t2……tn)的形式,则t为 n元项。 (2)定义2 设g是LF(X)中的广义文字,若g为如下形式: P( f1( f2(fm(t))))或?P( f1( f2(fm(t)))) 这里P是LF(X)中的谓词符号,fi(i = 12m)是LF(X)中的函数符号且fi(i = 12 m)为0 元或1 元,t为常量或变元,且g中不含有蕴涵算子“?”,则称g为简单广义文字,称m为g的 复杂度。 (3)定理1 设g1,g2是LF(X)中的简单广义文字,且g1,g2分别 为如下形式: P(f ( f (f(a)))) (k个f) ?P(f ( f (f(x)))) (k个f) 这里k,l分别是g1,g2的复杂度,a是LF(X)中的常量,x是LF(X)中的变元,f 是LF(X)中的函数符号。 如果k l,则(g1g2)不是α -归结对。 (4)定义3 设C 是LF(X) 中的子句,且C 为如下形式: g1 ú g2 ú  ú gn,其中gi(i = 12n)为LF(X)中简单广义文字,则称C为简单广义子句。 (5)定义4 设S ={C1C2Cm}是LF(X)中的子句集,若Ci(i = 12m)为简单广义子句, 则称S为简单广义子句集。 (6)定理2 LF(X)中子句集S为α -不可满足的当且仅当存在S中子句的基例的有穷集合S′,S′是α -不可 满足的。 (7)定理3 设S为LF(X)中的子句集,S*是S经过基替换后得到的子句集,若S*是α -不可满足的,则S是α -不可满足的。 (8)引理1 LF(X)中的子句集S={C1C2Cm}是α -不可满足的当且仅当对于任意的pi ? Gi ,存在 最一般合一σ ,使得pσ1 ù pσ2 ù  ù pσm £ α,这里Gi是子句Ci中的广义文字集合。 (9)定理4 LF(X)中的子句集S为α -不可满足,当且仅当S的每一条路径上均有α - 归结对,即对任意的 Pi ? Hi(i = 12m),{P1P2Pm}中有α -归结对。 (10)定理5 设S = S1  S2是LF(X)中的子句集,S1 ={C1C2Ck},S2 ={Ck + 1Ck + 2Cm}, 如果存在S的一条无α -归结对的前k元子路径R1,并且R1与子句集S2无α -归结对,则S为α -不可满 足的当且仅当S2为α -不可满足的 (11)定理6 将LF(X)中的子句集S中子句的次序调换或S中某个子句中文字的次序调换不改变S的α -不可 满足性和α -可满足性。 二 简单子句集的归结自动推理算法 为了便于计算机程序的编制,首先对LF(X)中的子句集S 进行如下的预处理: (1)定义一个二维数组C[m][n]来存储子句集S,其中n为子句集S中所有子句所含文字的最大数,则C[i]表示S中子句Ci;C[i][0]表示子句Ci广义文字的个数,C[i][ j]表示子句Ci中第j个广义文字,i ?{12m},j ?{12n}; (2)定义一个二维数组Com[i][ j],Com[i][ j]表示子句Ci中第j个广义文字的复杂度; (3)定义一个一维数组num[i],num[i]表示子句Ci中基广义文字的个数,num[θ[i]]表示子句Ci进行θ替换后生成的新的基广义文字的个数; (4)变量k用于标记当前子句的位置; (5)定义两个一维数组p[k]和R[n],用p[i]记录子句Ck中当前搜索位置,而R[12k]来储存在S中目前的路径(k表示路径的有效长度); (6)定义与二维数组C[i][ j]相对应的变量t[i][ j](i ?{12m},j ?{12n}),在同一路径上的t[i][ j] = 1的两个广义文字是α -归结对; (7)定义与C[i]相对应的数组t[i],用于保存子句C[i]中所对应的t[i][ j]; (8)定义一个二维数组G[i][p[i]],G[i][p[i]]表示子句Ci中当前路径p[i]的所有基例。 详细的算法如下: (1)置循环变量k = 0,p(0) = 1,t[i][ j] = 0,R[0] = C[0][p[0]]。 (2)判断是否存在路径R[12m]上广义文字对应的t[i][ j]全为0。 (2.1)若存在,则选择这样路径中复杂度最高的基广义文字C[i][ j],此时会出现两种情况: (2.1.1)这样的广义文字存在多个,则选择将C[i][ j]作为初始文

文档评论(0)

ybcm963 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档