结合CLIPS 和VC++实现规则推理的方法 1. 引言 专家系统的开发一直是人工智能领域的一个重要研究方向。目前比较流行的专家系统开发语言主要有以下几种工具:⑴ 程序设计语言。包括通用程序设计语言(如C\C++,PASCAL)和人工智能语言(Prolog 和Lisp)两种。⑵ 专家系统外壳。它是由一些已经成熟的具体专家系统通过抽取其中的具体知识,而保留它的体系结构和功能演变过来的。利用它可以快速产生—个专家系统。其主要缺点在于灵活性和通用性比较差,只局限于某些特定的域。⑶ 专家系统开发工具。它介于两者之间,为知识的表示提供了固定的模式,使专家系统的构造更加方便。这三种方式各有优缺点,其中专家系统工具以其高效、简便成为最常用的工具;另一方面,VC++等面向对象的可视化编程工具早已成为科研人员熟悉的开发工具。选择两者结合的方法来开发专家系统,可以充分利用两者的特点实现优势互补。 2. CLPS 简介 CLIPS 基本结构是产生式系统,采用正向推理机制,CLIPS 与一般的产生式系统的不同在于其推理过程中独特的rete 模式匹配算法,极大地提高了系统的反应速度。CLIPS 专家系统主要有三大部分组成:⑴ 知识库:包括初始事实和初始对象实例以及规则库。⑵ 推理机构:控制整个规则的执行,决定规则是否应该执行和什么时候被执行。⑶ 黑板:由事实列表和对象实例列表组成,用于存储推理结果数据(黑板数据)。黑板数据包括开始推理以来得到的事实集对象实例集。 3. CLIPS 和VC++结合的优势 利用VC++实现专家系统的主要缺点是C++在逻辑推理方面并不擅长,因此采用C++编写的推理机的开发程序量相对较大。CLIPS 的优点包括:⑴ 逻辑推理方面的强大功能。使用CLIPS 开发专家系统,推理机的设计可以大大简化。只需要将相关领域的知识按照给定的知识表示模型表示并按一定结构顺序组织起来即可。⑵ 有利于和其他语言联合使用。CLIPS 很容易实现和其他语言的接口,而且 CLIPS 写成的专家系统可以和VC++共同编译,极大地提高了系统运行速度和可移植性。 从以上分析可以看出,VC++和CLIPS 在开发专家系统方面都有各自突出的优势,也有其缺陷。两者具有很强的互补性:CLIPS 在逻辑推理方面的强大功能使它适合编写专家系统的知识库和推理 机部分;VC++用于开发人机界面、处理与数据库和外设的数据交换。CLIPS 在推理过程中遇到的复杂数值运算则通过调用VC++编写的外部函数来完成。这样结合VC++和CLIPS 编程可以实现功...