|
让K= (
,
,
,
)是一个知识领域,如Rela-Ops模型,是一个问题P= (O,E,F)⟶G定义中的第2类3..这个算法可以解决问题P通过以下步骤: |
|
输入:问题P= (O,E,F)⟶G |
|
输出:解决问题的方法P. |
|
该算法的设计方法采用前向链推理。它在推理过程中结合了启发式规则。对象也作为主动主体参与到这个过程中,通过算法解决自身的问题1.当它达到目标时,这个过程就完成了。 |
|
步骤0:初始化变量 |
|
国旗: = true; |
|
KnownFacts:=E∪F; |
|
数: = 0;#生成的新对象的数量 |
|
索尔: = [];问题的解决方法 |
|
步骤1.在假设和目标部分收集对象。 |
|
把各种事实分类E和F. |
|
步骤2.检查G. |
|
如果G实现然后 |
|
去第5步。 |
|
步骤3:确定每个对象的闭包O通过使用算法4.1和事实E和F. |
|
步骤4:使用方程E生成新的事实作为关系形式。 |
|
利用F中的关系来生成新的方程。 |
|
更新KnownFacts。 |
|
步骤5:选择规则用启发式规则产生新的事实或对象。 |
|
而(国旗! = false)和不(G确定)做 |
|
搜索r在哪些可以应用于KnownFacts |
|
5.1.案例:R是演绎法则 |
|
如果(r形式:
)然后 |
|
KnownFacts:=KnownFacts∪
; |
|
年代: = (r,h(r),]; |
|
索尔: = (op (索尔),年代]; |
|
继续; |
|
如果; |
|
5.2.案例:R是生成新对象的规则 |
|
如果数≤卡(O)然后在假设中只生成最多数量的对象 |
|
如果(r生成一个新对象o)和(o∈KnownFacts) |
|
然后 |
|
数:=数+ 1; |
|
KnownFacts:=KnownFacts∪
;年代: = (r,h(r),]; |
|
索尔: = (op (索尔),年代]; |
|
去步骤3与新对象o; |
|
如果; |
|
如果;# 5.2 |
|
5.3.案例:R是一个等价的规则 |
|
如果(r形式:f(r),
)然后 |
|
KnownFacts:=KnownFacts∪
; |
|
年代: = (r,h(r),]; |
|
索尔: = (op (索尔),年代]; |
|
继续; |
|
如果;# 5.3 |
|
5.4.案例:R是方程法则 |
|
如果(r形式:
)然后 |
|
r能产生一系列新的事实吗一个 |
|
KnownFacts:=KnownFacts∪一个; |
|
年代: = (r,KnownFacts,]; |
|
索尔:= (op (索尔),年代]; |
|
如果(r生成一个新对象o)和(o∈KnownFacts)然后 |
|
数:=数+ 1; |
|
去步骤3与新对象o; |
|
如果; |
|
如果;# 5.4 |
|
5.5.如果(规则r无法找到)然后 |
|
国旗: = false; |
|
如果; |
|
最后做;#, |
|
步骤6:问题的结论 |
|
如果G决定然后 |
|
问题(O,E,F)⟶G是可以解决的; |
|
索尔是问题的解决方案; |
|
减少索尔通过消除冗余规则。 |
|
其他的 |
|
问题(O,E,F)⟶G是无法解决的; |
|
如果; |
|