1.2 产生式系统的基本过程

  这里给出的只是产生式系统求解过程的一个框架,并没有涉及具体的算法。其中第四步"在规则集中,选某一条可应用于DATA的规则R"是求解过程的关键部分,搜索策略决定了如何选择规则,将在下一章具体介绍。
为了使读者对产生式系统的求解过程有一个更明确的概念,我们给出一个简单的例子。
例:设字符转换问题规则如下:
A∧B→C
A∧C→D
B∧C→G
B∧E→F
D→E
已知:A,B
求:F
首先用产生式系统来描述该问题。
(1)综合数据库
综合数据库用集合{x}表示,其中x为字符。
(2)规则集
该问题比较简单,因为问题本身已经给出了字符的转换规则,我们用"IF ~ THEN ~"的形式表示如下:
1,IF A∧B THEN C
2,IF A∧C THEN D
3,IF B∧C THEN G
4,IF B∧E THEN F
5,IF D THEN E
(3)控制策略
控制策略简单的说,就是选择规则的方法,我们这里采用按照规则的自然顺序选择规则的方法。这种策略称为顺序排队。
(4)初始状态
{A,B},A、B是已知条件。
(5)结束条件
F∈{x},当目标F在综合数据库中出现时,则F被求得。
在介绍求解过程之前,为了方便叙述,我们首先介绍两个术语。

可触发规则:当一个规则的前件被综合数据库中的数据满足时,该规则称为可触发规则。
被触发规则:从可触发规则中选择一个规则来执行,被执行的规则称为被触发规则。
该问题的求解过程,如下表所示。

  A、B是已知的条件,一开始就在综合数据库中。此时只有规则1是可触发的。由于只有一个可触发规则,所以选择规则1执行。规则1的执行结果得到C,C被加入到综合数据库中。由于有了C,使得规则2和规则3成为可触发规则(此时规则1的前件虽然也同样可以被满足,由于该规则已经被执行过,而且其当前的触发条件并没有改变,与他被执行时的条件是一样的,所以规则1不在可触发规则之列)。此时可触发规则有两条,按照顺序排队策略,排在前面的规则优先执行,所以选择规则2为被触发规则。规则2的执行结果产生了D,D被加入到综合数据库中。依次类推,规则3、规则5和规则4先后被执行,最终产生了F。从而F被求得,结束运行。

用产生式系统求解八数码游戏和M-C问题这一类问题时,其基本算法可写成如下形式:
过程PRODUCTION
1.DATA←初始数据库
2.until DATA满足结束条件以前,do:
3.begin
4.在规则集中,选某一条可应用于DATA的规则R
5.DATA←R应用到DATA得到的结果
6.end
这个过程是不确定的,因为在第4步没有明确规定如何挑选一条合用的规则,但该过程来求解问题,实际上就是一个搜索过程。
下面先简要介绍控制策略的问题,下一章再详细讨论各种搜索策略的具体算法。