人工智能(二)--基于规则的专家系统

来源:互联网 发布:linux删除文件 编辑:程序博客网 时间:2024/05/22 10:10

知识是什么?知识是对某个主题或某个领域上的理论或实践的理解。掌握知识的人被称为专家。
知识可以被表达为产生式规则(production rule),或简称规则。它有两部分组成:IF部分和THEN部分。比如:
IF 下雨
THEN 带伞
条件部分可以用OR或AND等进行连接。

规则可以用来表达关系(Relation,IF停电THEN电视开不了)、建议(Recommendation,IF下雨THEN带伞)、指令(Directive)、策略(Strategy)、启发(Heuristic)。

通常情况下专家系统开发组里的成员
1、领域专家;
2、知识工程师:设计、构建和测试专家系统。他们和专家交流来找到如何解决特定的问题;
3、程序员:用计算机能理解的形式描述知识;
4、项目经理:整个开发组的领导,控制开发进度;
5、终端用户:可能是初级医生或矿石堪探者等等。
通过使用专家系统外壳,可以免去程序员,同时还可能减免知识工程师的职责。对于小的专家系统,所有的角色甚至都可以是同一个人。

基于规则的专家系统的结构
1、知识库:存放规则集;
2、数据库:存放事实,用于IF部分;
3、推理机(inference engine):将事实和规则联系起来,推理出结果;
4、解释机(explanation facilities):向用户解释结果是如何推理得到的;
5、用户界面。
以上五部分是任何基于规则的专家系统的重要组成。此外,专家系统还可以扩展:
1、外部接口:使得专家系统可以和外部数据和外部程序交互。它被推理机使用。比如根据已有的数据,调用外部程序(比如C程序)计算得到新的数据,同时还可以查外部的数据库,作为推理时的依据;
2、开发者界面:和用户界面类似,只不是面向的对象是知识工程师和专家。通常是简单的文本编辑,附带拼写和语法检查。此外,还可能有版本控制机制,记录改变的数据和作出更改的人名。
3、调试器。

专家系统的特性
1、针对狭窄特定的领域
2、需要快速的执行效率
3、结果应该正确
4、具有解释机制
5、使用符号化推理
6、可能会犯错,因为人类专家也会犯错
7、知识和处理过程隔离
8、当信息不完整或模糊时,仍然可以得到某个合理的结论。传统程序这种情况下不会有结果

正向推理链和逆向推理链
正向推理是数据驱动的。推理从已知的数据开始,依次执行每条可执行的规则,规则所产生的新的事实被加入到数据库中,直到没有规则可以被执行为止。
逆向推理是目标驱动的。根据目标找到可以得到该结论的规则,将规则中的IF部分压栈作为新的子目标,重复上述过程,直到找不到证明当前目标的规则,或者当前目标已经作为事实存在数据库里。当当前目标的所有条件都在数据库里时,这个目标也加入到数据库里。
当目标明确时,使用逆向推理更加高效,因为可以避免不必要的规则的执行。否则就需要正向推理。许多专家系统外壳都结合两种方式同时使用。尽管如此,推理机制一般都使用逆向推理,只有在新的事实加入时,正向推理才被用来最大化地使用这些数据。

冲突规则的解决方法
当两条规则根据相同条件得到截然相反的结论时,正向推理会选择更后的规则,因为更后的规则所得到的事实会覆盖前面的事实;如果是逆向推理,更前的规则会被选择,因为一旦找到了合适的规则,推理就结束了。
解决冲突的办法有:
1、从最高优先级的规则开始执行;
2、从最精确的规则开始执行,比如A=>Z和A&B=>Z则选择或者;
3、从使用最新数据的规则开始执行。
为了提高专家系统的性能,我们需要定义元知识(metaknowledge),关于知识的知识。它们用元规则(metarule)来表示,用来决定规则选择的策略。有些专家系统将元规则分隔,但多数专家系统都不能区别规则和元规则,而是将元规则作为最高优先级的规则。

基于规则的专家系统的优点
1、自然化的知识表达;
2、统一形式的结构(IF-THEN);
3、知识于处理隔离;
4、处理不完整和不确定的知识,比如在给出结论时给出多个选项,并标明各选项的概率;
缺点:
1、各规则之间的关系不清晰,主要原因在于没有对知识体系结构的表示;
2、搜索策略低效;
3、没有学习的能力,人类专家根据经验的积累知道何时打破现有规则。

2 0