专家系统中的推理机实现

专家系统:模仿人类专家的思维方式进行决策的人工智能算法,算法核心是“知识库(knowledge base)”和“推理机(inference engine)”。专家系统通常包括6个部分:人机交互界面、知识库、综合数据库、推理机、解释器、知识获取。

(参考:人工智能-基于规则的专家系统(基础知识)

知识库:包含解决问题相关的领域知识。在基于规则的专家系统中,知识用一组规则来表达。其具有IF(条件)THEN(行为)结构,当规则的条件被满足时,触发规则,继而执行行为。 
数据库:包含一组事实,用于匹配知识库中的IF(条件)。 
推理机:执行推理,专家系统由此找到解决方案。推理引擎链接知识库中的规则和数据库中的事实。 
解释器:用户使用解释器查看专家系统怎样得出解决方案的过程。 

人机交互界面:人机交互界面是实现用户(查询问题解决方案)和专家系统之间交流的途径。

“推理机”根据“知识库”对“数据库”做出决策的基本原理图如下:

专家系统模型:

以下是一个简单的动物识别的专家系统设计(简单推断蛇、蜥蜴、鸡、猫四种动物):

( 参考:人工智能专家系统的简单实现

1. 实现流程:
    1)    初始化规则集合
    2)    初始化规则事实集合
    3)    使用规则推导
2. 加入规则信息:
    ”冷血”,”有腿”,”羽毛”,”会飞”
3. 规则事实:
    冷血+没有腿 -> 蛇
    冷血+有腿 -> 蜥蜴
    非冷血+有羽毛+不会飞 -> 鸡
    非冷血+没有羽毛 -> 猫

4. 推理过程:

5.使用VS2010参考上面的模型编写了一个判断是哪种动物的推理机实例(通过在终端窗口中输入条件,推理得出动物类型)。

程序源码在:简单推理机实现_动物推断_VS2010版本

   

总结:专家系统中的知识库是一种二叉树型的决策系统(表示一种决策方法),决策机是按照知识库进行分类的一种方法,所以对于每种特殊的系统,其决策机的程序设计不同。

注:当前想实现推理机功能一般使用专业的推理引擎,或则开源的推理机引擎,不需要自己设计内部结构,这样的推理引擎比较稳定而且功能比较齐全,   我后来使用Drools 推理机引擎实现推理机功能(可以参考Drools入门系列)。

猜你喜欢

转载自blog.csdn.net/qq_28093585/article/details/80654814