实践教学环节是程序设计课程非常重要的组成部分, 构建一个具有教学案例知识获取、存储、共享和应用等功能的知识管理系统具有十分重要的教学意义。
1 CBR 的工作机制
知识管理系统的关键技术是知识融合和模型构建, 它们是系统开发中的难点,基于案例推理(Case-Based Reasoning,CBR)技术是这一问题比较好的解决方案。 CBR 最早于 1982 年由 美国耶 鲁大学 Roger Schank 教授 在 其 论 着 Dynamic inMemory 中提出,是人工智能中较新的一项推理技术,它的中心思想是通过应用类比推理选择和转换先前已经解决的设计问题来获取新的解决方案,强调人在解决新问题时,利用积累下来的过去类似情况的处理经验通过适当修改过去类似情况的处理方法来解决新问题。
根据 CBR 的思想, 利用 CBR 技术在知识管理系统中构造案例库通常需要“案例表示”、“案例检索”、“案例重用”和“案例保存”等环节,整个推理过程可表示为如图 1 的模式,其实图示的推理过程模式也是 CBR 界使用最为广泛的由 Aamodt 和Plaza 提出的 4R 推理模式。案例表示是案例检索的前提,在 CBR 系统的案例知识库中处于中心地位, 案例表示的方法是否合理关系到案例知识处理的效率和应用范围,所以案例表示的良好设计是 CBR 系统中的一项关键问题。 案例检索主要的功能是实现案例的查询,它的准确度很大程度上决定了一个 CBR 系统的价值。 不同领域的CBR 系统的案例检索方法有所不同 ,但经过多年的发展 ,这方面也有了一些较为通用的技术,例如:最近相邻策略、归纳推理策略和基于连锁激活的相似检索算法等, 本文所述的系统在案例检索实现时采用的是目前应用最广泛的最近相邻策略算法。
案例重用也称之为案例修改, 是 CBR 中最具挑战性的问题之一, 由于案例重用的实质上是使用过去的经验解决新遇到的问题, 所以存在不管过去的经验有多丰富都可能无法解决当前出现的问题, 目前比较常用的案例修改方法有结构修改和诱导修改。 当 CBR 系统用于解决新问题时,如果案例库中的源案例和目标案例之间的相似度大于预设的阀值时, 可以直接借鉴源案例使用的过去经验,但相似度相差较大时,那么就需要更多的领域知识或人为介入重用的过程,在解决问题之后,应当将后面的解决经验作为一个新的案例存储于案例库中,也只有使 CBR 系统中的教学案例越来越丰富,才能使问题求解的效率越来越高,CBR 系统的推理能力才能不断提高 , 因此案例保存也是 CBR系统中的关键一环。
2 程序设计课程案例知识系统的 CBR 技术应用
CBR 技术目前已经被广泛地应用到了机械 CAD、 医疗卫生、 企业管理和军事等领域, 在教育领域也有了一些成功的应用, 如重庆工商职业学院已经将 CBR 技术成功地应用到了CAD / CAM 技术课程。事实上,程序设计课程与 CAD / CAM 技术课程一样,也具有一个特性:实践性非常强,编程能力在很大程度上是通过实践性环节获取的, 有赖于实践性经验知识的积累,所以 CBR 知识管理系统也非常适合于应用在程序设计类的课程。
为此,基于 CBR 的工作机制,我们设计实现了一套程序设计课程的案例知识管理系统,图 2 是该系统的主要功能模块,这些模块是从用户角色角度划分的,教师用户主要负责案例上传、案例修改和案例保存,被授权为“专家”的教师用户还需要负责案例审核,而学生用户主要是在学习过程中遇到问题时,在系统中执行案例查询,检索出有效的问题解决方案,当然学生用户也可以在案例分析之后对案例做反馈, 也可在线与其他师生进行交流和分享。系统的实现过程中,关键技术主要还是体现在“案例表示”、“案例检索”、“案例重用”和“案例保存”等环节,具体的实现方案如下:
(1)案例表示
对于案例的描述,目前还没有一个很好的标准,不同的知识领域其知识描述的方式会有所不同。 不过,一个合格的案例应该至少包含两部分:案例发生的背景或原因;案例的结果,即解决方法及效果。 结合程序设计课程的特点,本系统的案例描述由“案例背景”、“案例分析”、“案例效果”、“过程设计”、“归纳总结”等组成部分,实施时采用了框架描述法,表示方式如下:教学案例:=<背景属性列表,案例分析,案例效果,过程设计,归纳总结[,子教学案例列表]>;背景属性列表:=属性 1[,属性 2[,属性 3[,……]]];属性:=文字、数值、符号或其它类型的值;案例分析:=案例包含的知识点,各知识点的结合、镶嵌,子教学案例的顺序结构、循环结构等的描述;案例效果:=程序运行效果、程序运行过程截图等;过程设计:=界面设计,代码设计,关键代码解析;归纳总结:=运行结果分析,学生反馈,专家点评,反思日志;子教学案例列表:=子教学案例 1[,子教学案例 2[,子教学案例 3[,……]]];子教学案例:=教学案例指针, 案例的唯一标识或元素对象集合。
(2)案例检索
本系统的案例检索方法采用了应用比较广泛的最近相邻策略算法,下面是系统在实现时利用该算法进行相似检索的过程:
1)利用层次分析 (Analytical Hierarchy Process,AHP)法确定教学案例中各个特征属性的权重。
2)计算待求解案例中每个特征属性与第 n 个源案例相应特征属性的相似度。
当特征属性是字符型时,设 fi取值于集合邀ω1,ω2,…,ωn妖,则f1i和 f2i的相似度可按公式(1)计算:Sim(f1i,f2i)=0,f1i≠f2i1,f1i=f2i≠(1)当特征属性是数值型时,设 fi取值于区域[a,b],则 f1i和 f2i的相似度可按公式(2)计算:Sim(f1i,f2i)=1-f1i-f2ib-a(2)在公式(1)和(2)中,fi表示某案例的第 i 个属性,f1i和 f2i则分别表示待求解案例和源案例的第 i 个属性的属性值。
3)按公式(3)计算待求解案例与第 n 个源案例的总体相似度。SIM(T,S)=ki = 1ΣWi·Sim(Ti,Si) (3)其中,T 代表目标案例,即待求解案例;S 代表源案例,即案例库中某个案例;Wi是第 i 个特征属性的权重;Sim(Ti,Si)代表目标案例与源案例第 i 个特征属性的相似度;SIM(T,S)代表目标案例与源案例的总体相似度。
4)重复步骤 2)和 3),逐个计算待求解案例与案例资源库中各案例的总体相似度。 对最终的总体相似度数值进行排序,最后输出案例资源库中与待求解案例最相似的一个或多个案例。
(3)案例重用
案例重用是系统中最难的环节。 如果从已有的案例资源库中检索出来案例能够得到新问题的有效解决方案, 那么用户求解时的案例描述及解决方案将作为一个新的案例直接加入到教学案例库中,这也称为系统的自我学习。 如果从已有的案例资源库中检索出来案例不足以解决新问题时, 系统无法做到根据检索出来的案例直接完成修改, 在这个方面业界也尚无一个有效的规则, 本系统的具体做法是让教师重用并整合检索出的若干相似案例, 由这些相似案例的解决方案结合教师的设计补充成为新问题的解决方案,最后形成一个新案例,再将该案例(包括案例背景、案例分析、案例效果、过程设计和归纳总结)上传到数据库中。
(4)案例保存
初始案例库中的案例数量是有限的, 只有在系统运行中通过系统的不断自我学习过程及人为介入的重用过程, 不断将新的案例存储在案例库中, 才能使 CBR 系统的推理能力不断提高,最终以获得更好的案例检索结果。 本系统在实现时,采用了以下的机制:1)系统中有两个案例库,一个是临时案例库,用于存储未审核的案例,另一个是正式案例库,用于存储审核过的案例;2)新上传的案例都要存储在临时案例库中 ,由授权为 “专家”的教师对其进行审核,审核合格的转入正式案例库,不合格的仍存在临时案例库中;3)临时案例库中的案例不作为案例检索的案例来源 ,案例检索的案例只能来自于正式案例库。
3 结束语
采用 CBR 技术的知识管理系统使教学案例知识的共享、转化、创新和应用变得更加完善,并且很好地实现了对教学案例的求解,当师生遇到一个新问题时,利用该系统可以在案例知识库中检索出有效的或相似的解决方案,减少了教师的重复工作,也为学生的学习提供了一条便捷的有效之道。
参考文献
[1]程德蓉.基于 CBR 的数控机床故障诊断学习系统[J].制造技术与机床,2009(2):135-138
[2]Aamodt A,Plaza E. Case-Based Reasoning: Foundational Is-sues, Methodological Variations, and System Approaches [J].Artificial Intelligence Communications, 1994, 7(1): 39-59
[3]程德蓉,何玉林,李彩霞.基于 CBR 的“CAD / CAM 技术-UG”课程的教学改革[J].教育与职业,2011(17):150-151
[4]张光前,邓世贵.基于事例推理的技术及其应用前景[J].计算机工程及应用,2002,38(20):52-55