生式系统的反向推理 步5若该目标是初始目标,则推理失败,退 囧步6将该目标的父目标移回目标链,取代该 目标及其兄弟目标,转步3。 6例2对于例1中的产生式系统,反向推理 树如下图:
产生式系统的反向推理 步5 若该目标是初始目标,则推理失败,退 出。 步6 将该目标的父目标移回目标链,取代该 目标及其兄弟目标,转步3。 例2 对于例1中的产生式系统,反向推理 树如下图:
动物分类产生式系统反向推理 6动物分类反向推理树 老虎 食肉动物 、R9 R5 哺乳动物R6 RI R2 有爪有犬齿目盯前方有奶有毛发吃肉黄褐色有黑色条纹
动物分类产生式系统反向推理 动物分类反向推理树 老虎 食肉动物 哺乳动物 有毛发 R6 吃肉 黄褐色 有黑色条纹 R9 有爪 有犬齿 目盯前方 有奶 R5 R1 R2
生式系统 6冲突消解策略 6正向推理算法二:带冲突消解策略。 囧步1初始化动态数据库,将初始事实、数据置入 动态数据库中 囧步2用动态数据库中的事实、数据匹配目标条件, 若目标条件满足,则推理成功,结束。 步3用规则库中各规则的前提匹配动态数据库中 的事实/数据,将匹配成功的规则组成待用规则集。 步4若待用规则集为空,则运行失败,退出。 闓步5用某种策略,从待用规则集中选取一条规则, 将其结论加入动态数据库,或者执行其动作,撤消 待用规则集,转步2
产生式系统 冲突消解策略 正向推理算法二:带冲突消解策略。 步1 初始化动态数据库,将初始事实、数据置入 动态数据库中。 步2 用动态数据库中的事实、数据匹配目标条件, 若目标条件满足,则推理成功,结束。 步3 用规则库中各规则的前提匹配动态数据库中 的事实/数据,将匹配成功的规则组成待用规则集。 步4 若待用规则集为空,则运行失败,退出。 步5 用某种策略,从待用规则集中选取一条规则, 将其结论加入动态数据库,或者执行其动作,撤消 待用规则集,转步2
生式系统的程序实现 6产生式规则的程序语言实现 规则的前提部分可表示为 条件1AND条件2AMD.AMD条件n 或 条件1OR条件2OR.OR条件n 规则的结论部分可表示为 断言功动作1and断言2动作2an..断言动 作n 或 断言1动作1o断言2动作20…O断言n动作门
产生式系统的程序实现 产生式规则的程序语言实现 规则的前提部分可表示为 条件1 AND 条件2 AND …AND条件n 或 条件1 OR 条件2 OR …OR条件n 规则的结论部分可表示为 断言1/动作1 and 断言2/动作2 and …and断言n/动 作n 或 断言1/动作1 or 断言2/动作2 or …or断言n/动作n
生式系统的程序实现 一般只考虑含有至多一个结论部分的产生式规则 类似于Horn子句逻辑) 条件1AMD条件2AMD.AM条件n)断言动作 产生式规则的具体表示方法可以使用 If-Then规则, 也可以使用多元组的形式表示,如二元组(<前件> <后件>)可表示一个产生式规则。 无论使用何种表示方式,必须与规则的解释程序 (即推理机)相容。 在 Prolog中表示产生式规则,至少有两种形式:1、 用 Prolog的规则表示产生式规则;2、用 Prolog的事 实表示产生式规则
产生式系统的程序实现 一般只考虑含有至多一个结论部分的产生式规则 (类似于Horn 子句逻辑) 条件1 AND 条件2 AND …AND条件n→断言/动作 产生式规则的具体表示方法可以使用If-Then规则, 也可以使用多元组的形式表示,如二元组(<前件>, <后件>)可表示一个产生式规则。 无论使用何种表示方式,必须与规则的解释程序 (即推理机)相容。 在Prolog中表示产生式规则,至少有两种形式:1、 用Prolog的规则表示产生式规则;2、 用Prolog的事 实表示产生式规则