77范文网 - 专业文章范例文档资料分享平台

基于谓词逻辑的科学效应知识库系统开发(4)

来源:网络收集 时间:2018-09-25 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

father (marry,john). father (tom,lin).

事实中的关系(如father)称为谓词,客体称为自变量。谓词的规则则是关于客体及其关系的一般陈述,表明了某些关系的成立要依赖于其他一些关系的成立。规则也可以成为事实的一种紧凑的表现形式。一个谓词可用一些事实和规则的组合来定义,这个称为谓词的子句【8】。

我们继续定义,如果C是A的父亲且B又是C的父亲,那么B是A的祖父。这就称为规则。我们可以将事实和规则来形成一个定理。也就是说,一个定理是事实和规则的集合。下面陈述一个小定理。

father (marry,tom). father (tom, in).

grandFather(A,B):- father (A,C),father (C,B).

这个定理是来阐述这样一个问题,John是Marry的父亲吗?谁是Marry的父亲?Lin是Tom的父亲吗?谁是John的祖父?要想解决这些问题我们需要一些询问的语句,在PIE中,他们可以这样形式化表述。

father(marry). grandfather(john,Y).

上述询问的语句需要在Prolog推理机里面使用,推理机即Prolog里面的PIE,在安装完毕PIE之后,我们打开并运行程序。当PIE程序启动后,其运行情形如图3.2所示。

图3.2 Prolog推理机

创建一个新的窗口,输入前面的父子关系的字句,如图3.3所示。

图3.3 字句代码

当编辑的窗口激活时,选择Engine→Reconsult,或者按下F9,这样会把刚输入的字句装载到推理机,这时在dialog里面我们输入询问的语句,然后按下回车键,推理机PIE将会根据我们的询问以及载入的字句来推理,给出答案。如图3.4.

图3.4 查询目标对话框

上述就是Prolog语言、推理机PIE的概述及使用方法,通过简单实例介绍,我们可以发现,Prolog语言是一种可会话式语言,执行一个Prolog程序实际上就是实现推理机PIE的人机对话。而我们可以将程序看作是事实和规则的一个库,称之为数据库或是知识库。我们将事实和规则存入数据库或知识库中后,就可以利用查询语句,向系统询问一些相关的问题,即该问题的求解目标,于是Prolog推理机就根据数据库或者知识库中的事实和规则进行推演来回答用户提问的问题。最后设计人员可以根据推理机给出的参考解,针对实际的情况,研究出最佳优化方案,这样就实现了本专家系统的智能化的功能。

4 程序语言实例

4.1谓词

关于谓词,在前面我们已经有过介绍,这里仅说明本专家系统程序所涉及的谓词。effect和case_list_effect。

effect

effect是构建科学效应知识库的中流砥柱,利用这个谓词,我们可以将效应名称,标准的输入输出量以及该效应所实现的功能一览无余的表示出来,effect涉及到效应知识库中的所有元素,我们可以用下面的图形将这个谓词的作用表示出来。如图4.1。

effect功能输入输出实例

图4.1 效应库的建模

由上图我们可以看出,利用effect这个谓词,我们构建的科学效应库的初始模型已经明确。

case_list_effect

case_list_effect是对效应实例的具体解释的谓词,利用这个谓词,我们可以将所涉及到的实例库更清晰、更明了地展示出来,谓词case_list_effect的建模如图4.2所示。

case_list_effect效应资源详解

图4.2 实例库的建模

case_list_effect这个谓词的功能由上图我们可以看出,它是将效应的具体实例展示出来,并且人性化的加入了所实现的功能的名称,让设计人员可以将该效应或者实例认识的更加确切。

4.2列表的处理

有了上述effect和case_list_effect这两个谓词来构建的科学效应库的模型,下面我们为了能够更好地表达像输入和输出等这种元素很多的数据,因为所需要解决的这个问题的输入输出会有很多元素,可能不止一个两个量,在Prolog程序语言引入了列表(List)这种数据结构。列表是一组项目的集合,此项目可以是Prolog的任何数据类型,包括结构和列表。列表的元素由方括号“[]”括起来,项目中间使用逗号分割。例如下面的列表列出了一系列的功能。

function [measure_temperature, reduce_temperature, increase_temperature].

这样我们可以用一个列表代替很多的程序语句,可以使程序大大简化,当某个列表中没有项目时我们称之为空表,使用“[]”表示。

例如function([],water).表示水没有任何功能。同样,变量也可以与列表联合,就像它与其他的数据结构联合一样。这样我们便可以很容易地写出递归的谓词来处理列表。

首先我们来编写谓词member,它能够判断某个项目是否在列表中。首先我们考虑边界条件,即最简单的情况。某项目是列表中的元素,如果此项目是列表的表头。写成Prolog语言就是: member(H,[H|T]).

从这个子句我们可以看出含有变量的事实可以当作规则使用。第二个子句用到了递归,其意义是:如果项目是某列表的表尾的元素,那么它也是此列表的元素。 member(X,[H|T]) :- member(X,T). 完整的谓词如下: member(H,[H|T]).

member(X,[H|T]) :- member(X,T).

请注意这里两个member谓词的第二个参数都是列表。由于第二个子句中的T也是一个列表,所以可以递归地进行下去。 member(H,[H|T]).

member(X,[H|T]):-member(X,T).

4.3知识库的建模

有了上述的谓词和基本的知识库模型,我们需要进一步将知识库的模型精简化。利用图4.1和图4.2,我们将这两项综合一下,构建如下的知识库模型。

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库基于谓词逻辑的科学效应知识库系统开发(4)在线全文阅读。

基于谓词逻辑的科学效应知识库系统开发(4).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/zonghe/161719.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: