1. 推理
按某种策略由已知判断推出新判断的思维过程。人工智能系统中,目前仍由程序来完成推理,负责推理的部分叫做推理机。
图1 推理方式及分类
2. 推理控制策略
推理方向控制策略
1) 正向推理(Forward Reasoning)
以已知事实或条件为前提出发点,逐步推导目标成立的推理,又称事实驱动推理、数据驱动推理或前向推理。
基本思想:
从用户提供的初始已知事实出发,在知识库KB中找出当前可适用的知识,构成可适用知识集KS。
按某种冲突消解策略从KS中选出一条知识进行推理,并将推出的新事实加入到数据库中作为下一步推理的已知事实。
在知识库中选取可适用知识进行推理,直到求解所要求的解或知识库中再无可用的知识为止。
算法描述:
Procedure Forward_Chain(KnowledgeBase, Facts)
Begin
Initial: TempSet:=Facts; //把问题已知事实加入工作数据库
GoalFlags:=0; //目标标志置0
S:=Scan(KnowledgeBase, TempSet); //针对当前事实,选取知识放入集合S
While(Not(S is Null) and (GoalFlags=0)) Do; //当S并且工作数据库为空
Begin
OneKnowledge:=ConflictResolving(S); //依据某种策略选择适用事实
NewFact:=Inferring(OneKnowledge, TempSet); //推理产生新的事实、判断
TempSet:=TempSetNewFact; //新的事实、判断加入工作数据库
S:=Scan(KnowledgeBase, TempSet); //针对新的工作数据库,重新扫描
If(Goal in TempSet) Then GoalFlag:=1; //若获取目标,置目标标志为1
End;
End
用户交互方式控制,即在给定的事实不足以得到目标解时,可请求用户输入新事实,继续进行推理。
If((S is Null) and (GoalFlag=0)) Then
Begin
UserInput(Facts);
Goto Initial;
End
2) 逆向推理(Reverse Reasoning)
从假设目标开始往事实方向进行的推理,又称为目标驱动推理或逆向推理。
图2 逆向推理示意图
3) 混合推理
把上述的正向推理与反向推理结合起来。
使用条件已知的事实不充分 由正向推理推的结论可信度不高 希望得到更多的结论
模式匹配与冲突消解策略
模式匹配:对两个知识模式的一致性程度进行比较与耦合的过程。包括确定性匹配和不确定性匹配。
冲突消解策略
常用冲突消解策略:依照条件优先级排序、依照针对性排序、依照匹配度排序、依照上下文限制或给定的环境排序、依照数据冗余限制排序、采用并行处理策略、依照条件个数排序
参考文献:
[1] 王永庆. 人工智能原理与方法. 西安: 西安交通大学出版社
[2] 尹朝庆. 人工智能方法与应用. 武汉: 华中科技大学出版社, 2007.