产生式系统一般由: 规则库,总和数据库和推理机(控制模块和推理模块)组成。
规则库是相应领域内知识的产生式的集合。
综合数据库是一系列原始数据,中间结论和最终结论(理由会在下面给出)。
推理机由控制模块和推理模块组成,控制模块用于控制推理和资源调用。
产生式系统的简要工作原理是: 控制模块首先从综合数据库中选出某个特定的信息,然后从规则库中依次选取产生式与该数据进行匹配,匹配就是把产生式的前提条件与已知数据进行比较,如果两者一致,或者是近似一致且满足相关条件,那么就匹配成功,然后把结论放进综合数据库中该条信息所在位置的后面,否则匹配失败,继续调用下一条产生式。如果某条匹配成功的产生式的结论有多个,那么就都存入,如果是操作,无论是一个还是多个,都执行,如果是不确定性结论,那么还要按照一定的算法计算结论的不确定性。其实在得到结论,把结论存储到信息后面成功了之后,还要进行检查操作,检查是否已经得到最终结果,如果得到了,那么久终止程序的运行,否则继续运行。
实例:动物识别系统的逻辑实现:
简述就是:首先提取“该动物身上有暗斑点,长脖子,长腿,奶,蹄”这条信息到推理模块,然后从第一条开始调用产生式,第一条r1产生式的前提条件不满足,匹配失败,继续调用第二条,第二条满足,得到结论“该动物是哺乳动物”,存入这条信息所在位置的末尾,r3到r6都不满足,直到r7,该产生式的前提条件刚好是r2的结论和最开始就已知的事实”该动物有蹄“,刚才我们已经把r2的结论存到该信息后面了,所以我们就可以动用这个中间结论和已知事实,这样就就满足了r7的前提,得到r7的结论“该动物是有蹄类动物”,存到该信息的后面,继续往下面调用产生式,后面的r8 - r10 都不完全满足(只满足了一部分)条件,直到r11,完全满足前提,所以得到“该动物是长颈鹿”这一最终结论(后面的都不满足)。
其实,在存入中间结论后都要执行检查操作,检查该条信息后面是否已经包含了最终结论。