基于冲突演绎的自动定理证明方法、装置及存储介质

文档序号:26589620发布日期:2021-09-10 20:28阅读:225来源:国知局
基于冲突演绎的自动定理证明方法、装置及存储介质

1.本发明涉及自动推理技术领域,尤其涉及一种基于冲突演绎的自动定理证明方法、装置及存储介质。


背景技术:

2.自动推理是利用计算机、逻辑推理等技术手段自动地对逻辑公式进行一系列推理,通过这种符号演算形式自动地对逻辑公式属性进行判定。自动推理是人工智能领域的重要内容,其主要研究内容包括命题逻辑公式求解和一阶逻辑定理证明。在实际应用中,很多问题(例如数学定理证明、程序验证、规则检查、个性化定制、智能信息处理、知识表示、管理与决策、信息安全和交通运输等)都可用逻辑系统形式化表示,进而可通过自动推理技术自动化地处理。相比命题逻辑系统,一阶逻辑系统通过谓词符、变元、常元、函数符和逻辑连接词组成,具有更加丰富的形式化表达能力。因此,一阶逻辑系统的自动定理证明方法可广泛应用于解决一切可用逻辑表示的现实问题。
3.传统的冲突归结方法已应用于一阶逻辑自动定理证明中,虽然该链式归结方法也处理多个子句,但本质上仍是二元归结方法。二元归结是一种静态的归结方式,即每次限定有且只有2个子句进行归结,消去1组互补对,剩余文字的析取作为演绎归结式。由于二元归结是一种静态的演绎方法,二元归结方式常含有较多文字数,且不能很好的发挥多子句间的协同关系,降低了演绎效率。


技术实现要素:

4.本发明实施例的主要目的在于提供一种基于冲突演绎的自动定理证明方法、装置及存储介质,至少能够解决相关技术中采用传统的冲突归结方法进行一阶逻辑自动定理证明,所导致的演绎效率较低的问题。
5.为实现上述目的,本发明实施例第一方面提供了一种基于矛盾体分离冲突演绎的自动定理证明方法,应用于自动定理证明系统,该方法包括:
6.步骤a、在满足预设冲突演绎条件时,基于一阶逻辑子句集获取虚子句、单元子句集以及候选子句构建演绎子句集;其中,所述虚子句基于所述一阶逻辑子句集中非单元子句的文字生成,所述演绎子句集基于所述虚子句、所述单元子句集以及所述候选子句从所述一阶逻辑子句集中选取得到;
7.步骤b、遍历所述演绎子句集中子句所包含的文字,对不同子句的互补谓词进行合一,生成矛盾体分离式;
8.步骤c、在所述矛盾体分离式为空子句时,根据所述虚子句在合一过程中的互补对文字合并相同文字,并析取所述互补对文字生成学习子句,若所述学习子句为空子句,则输出定理被证明的判定结果;
9.步骤d、在所述矛盾体分离式不为空子句时,若所述矛盾体分离式满足预设演绎回退条件,则将参与演绎的子句的无效演绎权重加1,继续选择所述演绎子句集中的子句进行
演绎,直至所述演绎子句集遍历完成,然后返回所述步骤a;若所述矛盾体分离式为有效单元子句,则根据所述矛盾体分离式从所述一阶逻辑子句集中选择新的子句加入至所述演绎子句集中,继续选择所述演绎子句集中的子句进行演绎,直至所述演绎子句集遍历完成,然后返回所述步骤a;其中,在满足预设系统演绎终止条件时仍未演绎出空子句,则停止演绎,并输出定理无法证明的判定结果。
10.为实现上述目的,本发明实施例第二方面提供了一种基于矛盾体分离冲突演绎的自动定理证明装置,应用于自动定理证明系统,该装置包括:
11.第一构建模块,用于在满足预设冲突演绎条件时,基于一阶逻辑子句集获取虚子句、单元子句集以及候选子句构建演绎子句集;其中,所述虚子句基于所述一阶逻辑子句集中非单元子句的文字生成,所述演绎子句集基于所述虚子句、所述单元子句集以及所述候选子句从所述一阶逻辑子句集中选取得到;
12.第一生成模块,用于遍历所述演绎子句集中子句所包含的文字,对不同子句的互补谓词进行合一,生成矛盾体分离式;
13.第一输出模块,用于在所述矛盾体分离式为空子句时,根据所述虚子句在合一过程中的互补对文字合并相同文字,并析取所述互补对文字生成学习子句,若所述学习子句为空子句,则输出定理被证明的判定结果;
14.第一迭代模块,用于在所述矛盾体分离式不为空子句时,若所述矛盾体分离式满足预设演绎回退条件,则将参与演绎的子句的无效演绎权重加1,继续选择所述演绎子句集中的子句进行演绎,直至所述演绎子句集遍历完成,然后触发所述第一构建模块继续执行其功能;若所述矛盾体分离式为有效单元子句,则根据所述矛盾体分离式从所述一阶逻辑子句集中选择新的子句加入至所述演绎子句集中,继续选择所述演绎子句集中的子句进行演绎,直至所述演绎子句集遍历完成,然后触发所述第一构建模块继续执行其功能;其中,在满足预设系统演绎终止条件时仍未演绎出空子句,则停止演绎,并输出定理无法证明的判定结果。
15.为实现上述目的,本发明实施例第三方面提供了一种电子装置,该电子装置包括:处理器、存储器和通信总线;
16.所述通信总线用于实现所述处理器和存储器之间的连接通信;
17.所述处理器用于执行所述存储器中存储的一个或者多个程序,以实现上述任意一种自动定理证明方法的步骤。
18.为实现上述目的,本发明实施例第四方面提供了一种计算机可读存储介质,该计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现上述任意一种自动定理证明方法的步骤。
19.根据本发明实施例提供的基于冲突演绎的自动定理证明方法、装置及存储介质,在满足预设冲突演绎条件时,基于一阶逻辑子句集s获取虚子句、单元子句集以及候选子句构建演绎子句集q,对q进行矛盾体分离并得到分离式r;当r为空子句时,冲突分析得到学习子句,并在学习子句为空子句时输出定理被证明的判定结果;否则,当r为单元子句且满足设定限定条件时,根据r在s中选取演绎子句加入到q中,在q中继续选择子句进行演绎;当r为非单元子句或不满足设定限定条件时,回退到上一演绎步骤,在q中重新选择子句进行演绎。通过本发明的实施,灵活选取不同的虚子句以简化演绎分离式,能有效缩减多元演绎的
路径搜索空间和提升演绎效率,并提升一阶逻辑定理判定过程中的路径搜索能力,以及增强了多元演绎推理系统的一阶逻辑自动定理证明能力。
20.本发明其他特征和相应的效果在说明书的后面部分进行阐述说明,且应当理解,至少部分效果从本发明说明书中的记载变的显而易见。
附图说明
21.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
22.图1为本发明第一实施例提供的自动定理证明方法的基本流程示意图;
23.图2为本发明第一实施例提供的另一种自动定理证明方法的流程示意图;
24.图3为本发明第二实施例提供的自动定理证明装置的程序模块示意图;
25.图4为本发明第三实施例提供的电子装置的结构示意图。
具体实施方式
26.为使得本发明的发明目的、特征、优点能够更加的明显和易懂,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而非全部实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
27.本实施例通过多元演绎方法来进行自动定理证明,多元演绎方法(矛盾体分离规则)在每个演绎步骤能处理多个子句,更能体现多子句间的逻辑演绎关系,在适合的算法控制下,具有演绎分离式含有较少文字数的特点,提升了演绎效率。在本实施例中,通过自动推理技术对逻辑公式判定需经过子句化过程,将逻辑公式转化为子句集形式,即一阶逻辑子句集s={c1,c2,

,cn},该子句集中包括多个文字,其中ci=p1∨p2∨
···
∨pk,其中pj(j=1,2,

,k)表示为一个文字。对一阶语言g,若对任何解释i,有i(g)=0,则g不可满足;若存在解释i,有i(g)=1,则g可满足。一阶逻辑定理常按这样的形式进行推理:即已知a1,a2,...,a
n
,求证a。其逻辑含义表示a1,a2,...,a
n
为前提,a为结论。证明a1∧a2∧...∧a
n

a为有效的逻辑公式,即逻辑等价于证明其否定形式a1∧a2∧...∧a
n
∧~a为矛盾式。
28.第一实施例:
29.为了解决传统冲突归结方法每个演绎步骤处理有且只有2个子句,并解决多元演绎路径搜索的空间问题,发挥多子句间协同演绎能力以提升演绎效率,本实施例提出了一种自动定理证明方法,应用于自动定理证明系统,如图1所示为本实施例提供的自动定理证明方法的基本流程示意图,本实施例提出的自动定理证明方法包括以下的步骤:
30.步骤101、在满足预设冲突演绎条件时,基于一阶逻辑子句集获取虚子句、单元子句集以及候选子句构建演绎子句集。
31.具体的,本实施例的虚子句基于一阶逻辑子句集中非单元子句的文字生成,演绎子句集基于虚子句、单元子句集以及子句从一阶逻辑子句集中选取得到。在本实施例中,根据设定的标志位,判断程序进入到矛盾体分离冲突演绎,先对一阶逻辑公式进行子句化,并
对子句集进行包含冗余子句处理,然后根据文字属性及演绎权重在一阶逻辑中的子句集s={c1,c2,

,c
n
}的非单元子句中选择1个文字p构成虚子句,再在一阶逻辑子句集s中选择单元子句集v,最后根据虚子句和单元子句在s中是否存在合一互补文字确定候选子句集q。根据子句属性或演绎权重对v和q进行排序,使矛盾体分离冲突演绎尽可能生成空子句或单元子句。
32.应当理解的是,本实施例的虚子句并非s中的子句,而是由s中的非单元子句中某文字构建生成的新子句,只用于矛盾体分离冲突演绎中,演绎完成后,虚子句将被删除。文字属性值是通过刻画文字(项)结构度量得出的,演绎权重是根据文字参与演绎是否产生有效演绎统计得出的。
33.另外,单元子句集v和候选子句集q以冲突演绎能有效生成空子句或单元子句定义的排序规则;当虚子句和单元子句集确定后,在子句集s中根据是否存在互补合一文字确定候选子句集。子句属性值是通过统计子句的文字(项)或刻画文字(项)结构度量得出的,演绎权重是根据子句参与演绎是否产生有效演绎统计得出的。
34.步骤102、遍历演绎子句集中子句所包含的文字,对不同子句的互补谓词进行合一,生成矛盾体分离式。
35.具体的,本实施例对矛盾体分离冲突演绎定义如下:定义1,在矛盾体分离演绎过程中,若多次的演绎步骤满足如下:(1)子句集中的非单元子句中的文字作为虚子句(不存在于子句集中),该虚子句为矛盾体分离演绎的首选子句;(2)虚子句允许连续参与矛盾体分离演绎;(3)除了虚子句外,其它参与演绎的子句均来自于子句集中;(4)演绎最终生成的矛盾体分离式为空子句;则这样的矛盾体分离演绎过程称为矛盾体分离冲突演绎,且学习子句由虚子句中文字在标准矛盾体中的合一互补文字析取构成(相同文字进行合并),该学习子句称为矛盾体分离冲突演绎分离式。定义2,设一阶逻辑中的子句集s={c1,c2,

,c
n
},称φ1,φ2,

,φ
t
为一阶逻辑中基于矛盾体分离冲突演绎方法的从s到子句φ
t
的多元演绎序列,如果对i=1,2,

,t:(1)φ
i
∈s;或,(2)存在r1,r2,

,r
ki
<i,及替换使其中是按照矛盾体分离冲突演绎方法得到的学习子句。
36.矛盾体分离冲突演绎方法与传统基于归结原理的自动演绎推理方法相比具有多元演绎的特性,即每个演绎步骤能处理多个子句,发挥多子句间的协同演绎能力,演绎具有多元性、动态性、协同性和导向性等特点,该方法能充分利用子句集中的非单元子句中文字(构成虚子句)进行多元协同演绎,有效缩减了多元矛盾体分离演绎的路径搜索空间,生成的简单学习子句能简化多元演绎的路径搜索,为一阶逻辑自动定理证明提供了可行的、科学的路径搜索方法。
37.在本实施例一种可选的实施方式中,上述遍历演绎子句集中子句所包含的文字,对不同子句的互补谓词进行合一,生成矛盾体分离式的步骤,具体包括:遍历演绎子句集中子句所包含的文字,通过变元替换校验文字是否可合一;当遍历候选子句时,若候选子句中文字已产生有效合一,则将有效合一的文字加入标准矛盾体中;当遍历虚子句和单元子句集时,若虚子句和单元子句集中文字可与候选子句中文字产生有效合一,则将有效合一的文字加入标准矛盾体中;析取候选子句中未有效合一文字生成矛盾体分离式。
38.另外,本实施例在将有效合一的文字加入标准矛盾体中的步骤之前,还可以包括:按照预设合一规则评估合一有效性;其中,当合一后候选子句为恒真式时,合一无效;当候选子句或单元子句集遍历完成后,候选子句中未参与有效合一的文字总数大于设定的阈值时,合一无效;当正等词项出现恒等式时,合一无效。
39.具体的,在本实施例中,遍历候选子句中所含的文字,遍历虚子句及单元子句集v,通过变元替换检查是否存在合一互补文字;若候选子句中其它文字可与当前演绎文字合一,则合一,即合并候选子句中文字。并且,本实施例还需进行合一规则检查:若合一后,候选子句为恒真式,则合一无效;当候选子句文字或单元子句集遍历完成后,计算候选子句中未参与有效合一的文字总数t(文字分别记作q1,q2,...,q
t
),若t大于1,则合一无效;若正等词项出现恒等式,则合一无效。当满足上述合一规则,产生当前子句有效矛盾体分离冲突演绎,若单元子句集未遍历完,则保留单元子句遍历的节点,以供后续需回退后的继续演绎。另外,本实施例在此之前会对一阶逻辑子句集中不同子句的同名变元进行更名,使不同的子句含有不同的变元,然后在合一流程通过列表l记录遍历过程中有效合一产生的变元替换项。
40.应当理解的是,本实施例遍历候选演绎子句集(子句根据文字演绎权重进行排序)进行矛盾体分离冲突演绎合一(生成学习子句),候选子句参与有效合一的文字、虚子句和单元子句参与有效合一的文字加入到标准矛盾体中,候选子句未参与有效合一的文字构建冲突演绎矛盾体分离式r(有效合一时r只含1个文字或不含文字)。当合一无效时,需清除该合一的变元替换项,继续遍历寻找下一个合一互补文字。
41.步骤103、判断矛盾体分离式是否为空子句;若是则执行步骤104,若否则执行步骤105和106。
42.步骤104、根据虚子句在合一过程中的互补对文字合并相同文字,并析取互补对文字生成学习子句,若学习子句为空子句,则输出定理被证明的判定结果。
43.具体的,本实施例对冲突演绎矛盾体分离式r进行评估,若r为空子句,根据虚子句在合一过程中的互补对文字合并相同文字并将这些文字析取构成学习子句,标记文字p已作为虚子句进行矛盾体分离冲突演绎;若学习子句为空子句,定理被证明,该定理判定结束。
44.步骤105、若矛盾体分离式满足预设演绎回退条件,则将参与演绎的子句的无效演绎权重加1,继续选择演绎子句集中的子句进行演绎,直至演绎子句集遍历完成,然后返回步骤101。
45.具体的,在本实施例中,若r对于子句集s为包含冗余子句或其属性值超出设定阈值(演绎回退条件),该演绎评估为无效演绎,则需回退继续遍历单元子句集演绎,若单元子句遍历完,则在候选子句集中选择新的子句继续演绎。
46.步骤106、若矛盾体分离式为有效单元子句,则根据矛盾体分离式从一阶逻辑子句集中选择新的子句加入至演绎子句集中,继续选择演绎子句集中的子句进行演绎,直至演绎子句集遍历完成。
47.具体的,在本实施例中,分离式为有效的单元子句,设置当前候选子句和参与演绎的子句有效演绎权重,设置当前候选子句参与演绎的文字有效演绎权重;根据r在子句集s中选择新的候选子句加入到子句集q中,并在子句集q中选择新的候选子句继续演绎,若子
句集q已遍历完且未演绎生成空子句,设置文字p作为虚子句的低优先级选择权。
48.在本实施例中,若上述迭代演绎在满足预设系统演绎终止条件时仍未演绎出空子句,则停止演绎,并输出定理无法证明的判定结果。应当说明的是,在迭代演绎下,当迭代次数超出阈值,则需重新选择新的虚子句继续演绎。还应当理解的是,本实施例的系统演绎终止条件含设定的定理证明时间到达或系统所剩内存低于设定内存阈值。
49.如图2所示为本实施例提供的另一种自动定理证明方法的流程示意图,具体包括如下步骤:
50.步骤201、在不满足预设冲突演绎条件时,基于一阶逻辑子句集获取单元子句集以及候选子句构建演绎子句集。
51.具体的,在本实施例中,候选子句由一阶逻辑子句集中的非单元子句组成。在实际应用中,根据设定的标志位,判断程序进入到矛盾体分离冲突演绎进行定理证明,选取子句集s中的单元子句集v,根据子句属性及演绎权重对子句集v进行排序,将子句集s中的非单元子句作为候选子句集u,则演绎子句集由单元子句集及候选子句构成。
52.应当说明的是,本实施例的单元子句集v和候选非单元子句集u排列顺序具有差异性以保障每次演绎路径搜索的差异性;子句集v和u的排序方式根据子句属性或者演绎权重确定,以应对不同的一阶逻辑子句集判定。子句属性值是通过统计子句的文字(项)或刻画文字(项)结构度量得出的,演绎权重是根据子句参与演绎是否产生有效演绎统计得出的。
53.步骤202、遍历演绎子句集中子句所包含的文字,对不同子句的互补谓词进行合一,生成矛盾体分离式。
54.具体的,在本实施例中,遍历候选子句中所含的文字及单元子句集v,通过变元替换检查是否存在合一互补文字;若可合一,通过列表l记录产生替换项的变元项,则需进行合一规则检查:若合一后,候选子句为恒真式,则合一无效;若候选子句中其它文字可与当前演绎文字合一,则合一,即合并候选子句中文字。当候选子句文字历完成后,计算候选子句中是否存在未参与有效合一的文字,若存在,则合一无效;若正等词项出现恒等式,则合一无效。当合一无效且或单元子句集未遍历完,则进行回退然后继续进行矛盾体分离冲突演绎合一,直到单元子句集遍历完成。
55.在本实施例一种可选的实施方式中,上述遍历演绎子句集中子句所包含的文字,对不同子句的互补谓词进行合一,生成矛盾体分离式的步骤,包括:遍历演绎子句集中子句所包含的文字,通过变元替换校验文字是否可合一;将候选子句和单元子句集参与有效合一的文字加入标准矛盾体中;析取候选子句中未有效合一文字生成矛盾体分离式。
56.具体的,本实施例遍历候选子句时,当该子句中文字已产生有效合一,对该文字进行标记,候选子句参与有效合一的文字和单元子句参与有效合一的文字加入到标准矛盾体中,候选子句未参与有效合一的文字构建冲突演绎矛盾体分离式r(有效合一时r不含文字)。当合一无效时,需清除该合一的变元替换项,继续遍历寻找下一个合一互补文字,直到单元子句集遍历完成。
57.步骤203、在矛盾体分离式为空子句时,输出定理被证明的判定结果。
58.步骤204、在矛盾体分离式不为空子句时,继续重新选择演绎子句集中的子句进行演绎,直至演绎子句集遍历完成,然后返回步骤201。
59.具体的,在本实施例中,若r为空子句,定理被证明,该定理判定结束,否则需回退
继续遍在候选子句集中选择新的子句继续演绎。若子句集u已遍历完且未满足演绎终止条件,则开始新一轮矛盾体分离冲突演绎,否则在满足预设系统演绎终止条件时仍未演绎出空子句,则停止演绎,并输出定理无法证明的判定结果。
60.此外,关于本实施例的矛盾体分离冲突演绎回退,在当前候选子句参与演绎按步骤102或步骤202合一后无法产生有效演绎时,需清除前述列表l中由当前候选子句合一过程中产生的变元替换项,在标准矛盾体和矛盾体分离式中清除当前参与演绎的子句中文字,设置当前候选子句和参与演绎的子句无效演绎权重,设置当前候选子句参与演绎的文字无效演绎权重。
61.进一步地,在本实施例一种可选的实施方式中,上述生成矛盾体分离式的步骤之后,还包括:记录每一轮演绎时参与演绎的子句和生成的矛盾体分离式,生成演绎搜索路径;对演绎搜索路径进行输出;其中,演绎搜索路径用于定理证明过程正确性检查,或用于定理的辅助证明。
62.具体的,在本实施例中,根据不断选择虚子句参与矛盾体分离冲突演绎生成了学习子句序列:σ
i1
表示演绎过程中的变换替换,将演绎过程中所有生成的学习子句构成新子句集w,由此生成演绎搜索路径,以用于定理证明过程正确性检查,或用于定理的辅助证明。
63.根据本发明实施例提供的基于冲突演绎的自动定理证明方法,在满足预设冲突演绎条件时,基于一阶逻辑子句集s获取虚子句、单元子句集以及候选子句构建演绎子句集q,并选择演绎子句构建标准矛盾体,得到矛盾体分离式r;当r为空子句时,根据演绎过程得到学习子句,并在学习子句为空子句时输出定理被证明的判定结果;否则,当r为单元子句且满足设定限定条件时,根据r在s中选取演绎子句加入到q中,在q中继续选择子句进行演绎;当r为非单元子句或不满足设定限定条件时,回退到上一演绎步骤,在q中重新选择子句进行演绎。通过本发明的实施,灵活选取不同的虚子句以简化演绎分离式,能有效缩减多元演绎的路径搜索空间和提升演绎效率,提升一阶逻辑定理判定过程中的路径搜索能力,增强了多元演绎推理系统的一阶逻辑自动定理证明能力。
64.第二实施例:
65.为了解决传统冲突归结方法每个演绎步骤处理有且只有2个子句,并解决多元演绎路径搜索的空间问题,发挥多子句间协同演绎能力以提升演绎效率,本实施例示出了一种自动定理证明装置,具体请参见图3,本实施例的自动定理证明装置包括:
66.第一构建模块301,用于在满足预设冲突演绎条件时,基于一阶逻辑子句集获取虚子句、单元子句集以及候选子句构建演绎子句集;其中,虚子句基于一阶逻辑子句集中非单元子句的文字生成,演绎子句集基于虚子句、单元子句集以及候选子句从一阶逻辑子句集中选取得到;
67.第一生成模块302,用于遍历演绎子句集中子句所包含的文字,对不同子句的互补谓词进行合一,生成矛盾体分离式;
68.第一输出模块303,用于在矛盾体分离式为空子句时,根据虚子句在合一过程中的互补对文字合并相同文字,并析取互补对文字生成学习子句,若学习子句为空子句,则输出定理被证明的判定结果;
69.第一迭代模块304,用于在矛盾体分离式不为空子句时,若矛盾体分离式满足预设演绎回退条件,则将参与演绎的子句的无效演绎权重加1,继续选择演绎子句集中的子句进行演绎,直至演绎子句集遍历完成,然后触发第一构建模块301继续执行其功能;若矛盾体分离式为有效单元子句,则根据矛盾体分离式从一阶逻辑子句集中选择新的子句加入至演绎子句集中,继续选择演绎子句集中的子句进行演绎,直至演绎子句集遍历完成,然后触发第一构建模块301继续执行其功能;其中,在满足预设系统演绎终止条件时仍未演绎出空子句,则停止演绎,并输出定理无法证明的判定结果。
70.在本实施例的一些实施方式中,第一生成模块具体用于:遍历演绎子句集中子句所包含的文字,通过变元替换校验文字是否可合一;当遍历候选子句时,若候选子句中文字已产生有效合一,则将有效合一的文字加入标准矛盾体中;当遍历虚子句和单元子句集时,若虚子句和单元子句集中文字可与候选子句中文字产生有效合一,则将有效合一的文字加入标准矛盾体中;析取候选子句中未有效合一文字生成矛盾体分离式。
71.进一步地,在本实施例的一些实施方式中,第一生成模块还用于:按照预设合一规则评估合一有效性;其中,当合一后候选子句为恒真式时,合一无效;当候选子句或单元子句集遍历完成后,候选子句中未参与有效合一的文字总数大于设定的阈值时,合一无效;当正等词项出现恒等式时,合一无效。
72.在本实施例的一些实施方式中,自动定理证明装置还包括:第二构建模块,用于在不满足预设冲突演绎条件时,基于一阶逻辑子句集获取单元子句集以及候选子句构建演绎子句集;其中,候选子句由一阶逻辑子句集中的非单元子句组成;第二生成模块,用于遍历演绎子句集中子句所包含的文字,对不同子句的互补谓词进行合一,生成矛盾体分离式;第二输出模块,用于在矛盾体分离式为空子句时,输出定理被证明的判定结果;第二迭代模块,用于在矛盾体分离式不为空子句时,继续重新选择演绎子句集中的子句进行演绎,直至演绎子句集遍历完成,然后触发第二构建模块继续执行其功能;其中,在满足预设系统演绎终止条件时仍未演绎出空子句,则停止演绎,并输出定理无法证明的判定结果。
73.进一步地,在本实施例的一些实施方式中,第二生成模块具体用于:遍历演绎子句集中子句所包含的文字,通过变元替换校验文字是否可合一;将候选子句和单元子句集参与有效合一的文字加入标准矛盾体中;析取候选子句中未有效合一文字生成矛盾体分离式。
74.更进一步地,在本实施例的一些实施方式中,第一生成模块或第二生成模块还用于:记录每一轮演绎时参与演绎的子句和生成的矛盾体分离式,生成演绎搜索路径;相对应的,第一输出模块或第二输出模块还用于:对演绎搜索路径进行输出;其中,演绎搜索路径用于定理证明过程正确性检查,或用于定理的辅助证明。
75.应当说明的是,前述实施例中的自动定理证明方法均可基于本实施例提供的自动定理证明装置实现,所属领域的普通技术人员可以清楚的了解到,为描述的方便和简洁,本实施例中所描述的自动定理证明装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
76.采用本实施例提供的基于冲突演绎的自动定理证明装置,在满足预设冲突演绎条件时,基于一阶逻辑子句集s获取虚子句、单元子句集以及候选子句构建演绎子句集q,并选择演绎子句构建标准矛盾体,得到矛盾体分离式r;当r为空子句时,根据演绎过程得到学习
子句,并在学习子句为空子句时输出定理被证明的判定结果;否则,当r为单元子句且满足设定限定条件时,根据r在s中选取演绎子句加入到q中,在q中继续选择子句进行演绎;当r为非单元子句或不满足设定限定条件时,回退到上一演绎步骤,在q中重新选择子句进行演绎。通过本发明的实施,灵活选取不同的虚子句以简化演绎分离式,能有效缩减多元演绎的路径搜索空间和提升演绎效率,提升一阶逻辑定理判定过程中的路径搜索能力,增强了多元演绎推理系统的一阶逻辑自动定理证明能力。
77.第三实施例:
78.本实施例提供了一种电子装置,参见图4所示,其包括处理器401、存储器402及通信总线403,其中:通信总线403用于实现处理器401和存储器402之间的连接通信;处理器401用于执行存储器402中存储的一个或者多个计算机程序,以实现上述实施例一中的自动定理证明方法中的至少一个步骤。
79.本实施例还提供了一种计算机可读存储介质,该计算机可读存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、计算机程序模块或其他数据)的任何方法或技术中实施的易失性或非易失性、可移除或不可移除的介质。计算机可读存储介质包括但不限于ram(random access memory,随机存取存储器),rom(read

only memory,只读存储器),eeprom(electrically erasable programmable read only memory,带电可擦可编程只读存储器)、闪存或其他存储器技术、cd

rom(compact disc read

only memory,光盘只读存储器),数字多功能盘(dvd)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质。
80.本实施例中的计算机可读存储介质可用于存储一个或者多个计算机程序,其存储的一个或者多个计算机程序可被处理器执行,以实现上述实施例一中的方法的至少一个步骤。
81.本实施例还提供了一种计算机程序,该计算机程序可以分布在计算机可读介质上,由可计算装置来执行,以实现上述实施例一中的方法的至少一个步骤;并且在某些情况下,可以采用不同于上述实施例所描述的顺序执行所示出或描述的至少一个步骤。
82.本实施例还提供了一种计算机程序产品,包括计算机可读装置,该计算机可读装置上存储有如上所示的计算机程序。本实施例中该计算机可读装置可包括如上所示的计算机可读存储介质。
83.可见,本领域的技术人员应该明白,上文中所公开方法中的全部或某些步骤、系统、装置中的功能模块/单元可以被实施为软件(可以用计算装置可执行的计算机程序代码来实现)、固件、硬件及其适当的组合。在硬件实施方式中,在以上描述中提及的功能模块/单元之间的划分不一定对应于物理组件的划分;例如,一个物理组件可以具有多个功能,或者一个功能或步骤可以由若干物理组件合作执行。某些物理组件或所有物理组件可以被实施为由处理器,如中央处理器、数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。
84.此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读指令、数据结构、计算机程序模块或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且可包括任何信息递送介质。所以,本发明不限制于任何特定的硬件和软件结合。
85.以上内容是结合具体的实施方式对本发明实施例所作的进一步详细说明,不能认
定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1