一种基于知识规则推理c++实现方法

一种基于知识规则推理c++实现方法

ID:6103589

大小:240.35 KB

页数:4页

时间:2018-01-02

一种基于知识规则推理c++实现方法_第1页
一种基于知识规则推理c++实现方法_第2页
一种基于知识规则推理c++实现方法_第3页
一种基于知识规则推理c++实现方法_第4页
资源描述:

《一种基于知识规则推理c++实现方法》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、第3卷第6期空 军 工 程 大 学 学 报(自然科学版)Vol.3No.62002年12月JOURNALOFAIRFORCEENGINEERINGUNIVERSITY(NATURALSCIENCEEDITION)Dec.2002X一种基于知识规则推理的C++实现方法徐 彤, 雷英杰(空军工程大学导弹学院,陕西三原 713800)摘 要:提出了一种决策支持系统中基于产生式规则的知识表示和推理的C++语言实现方法。该方法把规则的结构和推理定义成规则类,把具体的规则定义成规则类的实体,用这些规则实体构建动态链表从而组成知识库,推理的过程由知识库中各规则实体提供的方法完成。通

2、过设计的实例表明,该方法是简单高效的。关键词:决策支持系统;知识表示;产生式规则;推理中图分类号:TP393文献标识码:A文章编号:1009-3516(2002)06-0075-04决策支持系统(DSS)是一门新兴边缘学科,它不但能够有效支持结构化问题的求解,而且通过把人工智能关于知识表示和处理的技术应用到DSS,与专家系统相结合,从而形成了智能决策支持系统(IDSS),可以有效地支持半结构化和非结构化问题的求解。与单纯利用模型库的定量方法相比,IDSS的优越性突出的表现在其建立了知识库,存放有各种知识规则、因果关系和决策人员经过知识化抽象的经验,并且具有综合利用知识

3、库、数据库和定量计算结果进行推理和问题求解的推理机。由此可见,一个组织恰当的知识库对于IDSS是至关重要的。通常在IDSS知识库中进行知识表示的方法有:一阶谓词逻辑、语义网络、产生式规则、框架理论、面向对象表示等。其中产生式规则由于Post严格地理论证明,具有完备地理论基础;各产生式之间相互较为独立,修改与扩充都较容易,所以应用较广。本文提出了产生式知识规则的C++语言实现方法,并将推理机与知识表示相结合,构造出了一个简单高效的知识库。1 设计思想1.1 知识表示在IDSS中建立基本事实数据库和规则库。基本事实数据库,简称事实库,其结构如图1所示,主要包括事实号和事实

4、内容等。规则库中每个记录包含一条规则,其结构如图2所示。事实号事实内容规则号条件事实号条件事实号···结论事实号图1 事实库记录结构图2 规则库记录结构  我们定义三个类,且构建这三个类对象的动态链表。1)定义条件事实类条件事实对象结构如图3所示。2)定义规则类将规则的结构和推理关系定义成规则类,每一条规则都是根据规则库中的一个记录生成的规则类对象,X收稿日期:2001-09-05 基金项目:军队科研基金资助项目 作者简介:徐 彤(1978-),男,山东菏泽人,硕士生,主要从事智能决策支持系统研究;雷英杰(1956-),男,陕西渭南人,教授,博士生导师,主要从事人工智

5、能、决策支持、网络与信息安全研究176空军工程大学学报(自然科学版)2002年把这些规则对象构建成动态链表,我们称为规则链。规则对象的结构如图4所示。图3 条件事实对象图4 规则对象的结构3)定义基本事实类。基本事实库中的每条记录生成一个基本事实对象,再把这些对象建立成动态链表。结构如图5所示。规则链、每条规则的条件事实链和基本事实链共同构成了知识库,对知识库的操作方法由规则类的操作方法提供。现举例说明如何由产生式规则建立数据库和知识库。假定有如下规则:图5 基本事实对象规则1:若是中年人,则老练。规则2:若是老练、细心并有驾驶经验,则不会出交通事故。对这两条规则在数

6、据库中建立的事实库和规则库如图6所示,所建立的知识库如图7所示。图6 事实库和规则库结构图7 知识库结构1.2 推理机制每次推理,DSS都依次调用规则链中每个规则对象的Query方法(此即推理函数),直至推理结束,得到第6期              徐 彤等:一种基于知识规则推理的C++实现方法77结论。在Query方法中,DSS从条件事实链中读取每一个条件事实,并在基本事实链中找相同事实,找到后,考察该事实对象的TorF字段。若为True,表明条件事实链中的事实已经获得用户确认,则读取下一个条件事实;若为False,表明条件事实链中的事实已被用户否认,则换下一条规

7、则;若为Unknown,则与用户交互,由用户确认或否认该事实。若用户确认,则置TorF为True;若用户否认,则置TorF为False,并换下一规则。这样,只有当某规则上的条件事实全部是被用户确认过的,才能得到结论,从而保证了推理的正确性。2 代码实现1)定义基本事实类classFact//基本事实类{intNumber;intTorF;//基本事实号,确认标志public:Fact3Next;//后继链接指针Fact(intnumber){Number=number;TorF=Unknown;Next=NULL;}//构造函数intGetNumbe

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。