用PowerBuilder建造计算机图形评分专家系统
王金辉、李兴森、刘子英
1.引言
专家系统作为人工智能应用研究最活跃和最广泛的课题之一,现已在各个领域取得了很大的成功,其主要组成部分包括知识库、动态数据库、推理机、解释器和接口界面等。知识库存储关于某个领域的专门知识,推理机依据一定的策略进行推理,动态数据库用于存放系统运行过程中所需要的和产生的各种信息,解释器负责解释用户需要了解的一些问题,接口界面则用于人机对话。
当前,专家系统的建造主要有以下几种开发环境:一种是专家系统外壳;二是专家系统开发工具;三是通用人工智能语言;四是通用程序设计语言,如C++、PowerBuilder、 Visual Basic等。
C++较适于开发推理机比较复杂的专家系统,而对推理相对简单、动态数据量大的专家系统则显得大材小用,开发周期偏长。对于推理机制与方式比较简单、知识库数据多且复杂的这一类专家系统,特别适合用数据库开发工具来建造。专家系统与数据库技术的结合已成为当前计算机发展的一个重要领域。近年来,国内外相继有人研究使用数据库方式组织知识,并已取得一些成果。基于数据库的专家系统以成熟的数据库技术为载体,利用专家系统的思想方法来进行推理演绎,充分利用专家系统和关系数据库技术两者所具有的优点,以数据库为基础,便于添加、修改知识库,易于通过人机对话实现简单的学习功能,以关联建立知识库,引导推理,以过滤机制和索引技术加快搜索,使推理更加简单、高效。PowerBuilder是目前最有代表性的数据库前端开发工具之一,已在管理信息系统和数据库应用系统中获得广泛应用,取得了巨大成功。
我们用PowerBuilder 6.5设计了一个计算机图形评分专家系统框架,该系统可对计算机作图进行评价、打分,可用于各类考试,计算机辅助设计评价等,具有广泛的应用前景。该方案已用于全国注册建筑师考试作图题评分子系统的设计。系统总体结构如图1所示。
其中,评分标准获取模块用于通过图形界面输入评分标准,输入的评分标准通过知识库管理模块进行一致性、冗余性检查,将正确的标准存入评分标准知识库。图形特征提取模块用于从二维绘图平台输出的文本文件,如AUTOCAD的DXF文件中提取所需的数据,通过计算、比较,生成评分所需的属性值,存为标准格式的文件,用来导入考卷事实库。划分数线模块用于制定成绩各档次的分数线,通过一致性检查后存入分数线档次库。计算机评分结合考卷事实库、评分标准知识库和分数线档次库,进行计算、比较、推理得出初步结论,通过考生成绩管理模块的一致性检查后,存入考生成绩库。人工校核模块用于人工复核。其中计算机评分模块的流程图如图2所示。
2.知识库、数据库设计
(1)考卷事实库
包括可评分事实库和答卷库。可评分事实库结构为SCORE_FACT(Fact_Id,Score,Score_Type),用于存放可直接评分的事实。其中,Fact_Id是事实代码,Score是该事实应得分数,Score_Type为给分方式。答卷库用于存放考生答卷信息, 其结构为EXAM_FACT( Exam_Id, Cat_Code, Item_Code, Value)。其中,Exam_Id为考生准考证号,Cat_Code是试题代码,Item_Code为答卷条目代码, Value是该条目的值。
(2)评分标准知识库
包括评分标准库和规则前后件库,评分标准库结构为SCORE_TREE(Item_Code, Item_Name, Item_Demand, Item_Parent_Code,Score_flag),它用于存放评分标准的所有条目内容及其关系。其中,Item_Code为评分标准条目代码, Item_Name为条目名称, Item_Demand是对该条目的具体要求,Item_Parent_Code是上层条目代码。Score_flag用来区别该条目评分类型(直接比较给分、规则推理、函数计算)。
规则前后件库的结构为RULE_FACT(Fact_Id,Fact_Name,Item_Code,Used_By,Deduced_by, attribute)。它用于存放各规则对应的前提或结论。其中,Fact_Id是事实号,Fact_Name为事实名称, Item_Code为条目代码,Used_By以此事实为条件的规则,Deduced_by 能推出此事实的规则,attribute 说明此事实类型,是目标、可推演事实、已知事实中的哪一种。
3.推理机设计
从评分标准库中,按考题代码进行顺序查询,根据评分标志进行相应的操作。如评分标志为“d”,则可从事实库中查找Item_code相同的条目值。直接比较,正确则得到相应的分数。如评分标志为“f”,则进一步查询对应的参数代码,从考生事实库中提出相应的参数值,将带入函数公式计算后的值与评分标准中的正确答案比较给分。如评分标志为“r”,则查询可评分事实库相应的内容,启用规则推理,按推出的结论正确与否给分。对于适用规则进行推理的条目,有两种推理方法,具体推理过程如下:
第一种方法是逆向推理:(1)根据评分标准库中需要推理的条目,在规则库中查找对应的事实f1,由deduced_by得到可能性最大的规则r1。(2)在规则库中寻找r1,取出其对应的premise中的第一个事实f11,若其为可推演事实,则重复步骤(1)、(2),直到得到对应的已知事实,若全部事实成立则推理成功,否则记录失败信息,转向下一条标准。
第二种方法为正向推理,它以深度优先策略根据已知事实中的used_by部分逐步向下推理,直到得到目标。若规则成立,则得到相应的分数,否则分数为0,记录失败信息,将结果存入考生成绩库。
本方案几种方法取长补短,可以对评分标准库进行方便的修改、补充,从而可以用于评价其他类型的设计、考试等,适应性强,从根本上解决了专家系统知识获取难的问题。
4.结束语
用PowerBuilder开发基于数据库的专家系统,对知识的管理方便、直观,实现了规则的动态管理,解决了专家系统知识获取难的问题,利用数据库索引技术和过滤机制引导推理,使推理更加简单、高效。虽然由于计算机图形评分涉及的知识十分繁杂,还有不少问题需要解决,但是通过全国注册建筑师考试作图题评分系统的开发可以看出,用PowerBuilder开发基于数据库的专家系统,时间短,见效快,效率高,是一种值得推广的专家系统构造模式,它使领域专家在基本没有知识工程师帮助的情况下就能建造自己领域内的专家系统。
王金辉、李兴森、刘子英
1.引言
专家系统作为人工智能应用研究最活跃和最广泛的课题之一,现已在各个领域取得了很大的成功,其主要组成部分包括知识库、动态数据库、推理机、解释器和接口界面等。知识库存储关于某个领域的专门知识,推理机依据一定的策略进行推理,动态数据库用于存放系统运行过程中所需要的和产生的各种信息,解释器负责解释用户需要了解的一些问题,接口界面则用于人机对话。
当前,专家系统的建造主要有以下几种开发环境:一种是专家系统外壳;二是专家系统开发工具;三是通用人工智能语言;四是通用程序设计语言,如C++、PowerBuilder、 Visual Basic等。
C++较适于开发推理机比较复杂的专家系统,而对推理相对简单、动态数据量大的专家系统则显得大材小用,开发周期偏长。对于推理机制与方式比较简单、知识库数据多且复杂的这一类专家系统,特别适合用数据库开发工具来建造。专家系统与数据库技术的结合已成为当前计算机发展的一个重要领域。近年来,国内外相继有人研究使用数据库方式组织知识,并已取得一些成果。基于数据库的专家系统以成熟的数据库技术为载体,利用专家系统的思想方法来进行推理演绎,充分利用专家系统和关系数据库技术两者所具有的优点,以数据库为基础,便于添加、修改知识库,易于通过人机对话实现简单的学习功能,以关联建立知识库,引导推理,以过滤机制和索引技术加快搜索,使推理更加简单、高效。PowerBuilder是目前最有代表性的数据库前端开发工具之一,已在管理信息系统和数据库应用系统中获得广泛应用,取得了巨大成功。
我们用PowerBuilder 6.5设计了一个计算机图形评分专家系统框架,该系统可对计算机作图进行评价、打分,可用于各类考试,计算机辅助设计评价等,具有广泛的应用前景。该方案已用于全国注册建筑师考试作图题评分子系统的设计。系统总体结构如图1所示。
其中,评分标准获取模块用于通过图形界面输入评分标准,输入的评分标准通过知识库管理模块进行一致性、冗余性检查,将正确的标准存入评分标准知识库。图形特征提取模块用于从二维绘图平台输出的文本文件,如AUTOCAD的DXF文件中提取所需的数据,通过计算、比较,生成评分所需的属性值,存为标准格式的文件,用来导入考卷事实库。划分数线模块用于制定成绩各档次的分数线,通过一致性检查后存入分数线档次库。计算机评分结合考卷事实库、评分标准知识库和分数线档次库,进行计算、比较、推理得出初步结论,通过考生成绩管理模块的一致性检查后,存入考生成绩库。人工校核模块用于人工复核。其中计算机评分模块的流程图如图2所示。
2.知识库、数据库设计
(1)考卷事实库
包括可评分事实库和答卷库。可评分事实库结构为SCORE_FACT(Fact_Id,Score,Score_Type),用于存放可直接评分的事实。其中,Fact_Id是事实代码,Score是该事实应得分数,Score_Type为给分方式。答卷库用于存放考生答卷信息, 其结构为EXAM_FACT( Exam_Id, Cat_Code, Item_Code, Value)。其中,Exam_Id为考生准考证号,Cat_Code是试题代码,Item_Code为答卷条目代码, Value是该条目的值。
(2)评分标准知识库
包括评分标准库和规则前后件库,评分标准库结构为SCORE_TREE(Item_Code, Item_Name, Item_Demand, Item_Parent_Code,Score_flag),它用于存放评分标准的所有条目内容及其关系。其中,Item_Code为评分标准条目代码, Item_Name为条目名称, Item_Demand是对该条目的具体要求,Item_Parent_Code是上层条目代码。Score_flag用来区别该条目评分类型(直接比较给分、规则推理、函数计算)。
规则前后件库的结构为RULE_FACT(Fact_Id,Fact_Name,Item_Code,Used_By,Deduced_by, attribute)。它用于存放各规则对应的前提或结论。其中,Fact_Id是事实号,Fact_Name为事实名称, Item_Code为条目代码,Used_By以此事实为条件的规则,Deduced_by 能推出此事实的规则,attribute 说明此事实类型,是目标、可推演事实、已知事实中的哪一种。
3.推理机设计
从评分标准库中,按考题代码进行顺序查询,根据评分标志进行相应的操作。如评分标志为“d”,则可从事实库中查找Item_code相同的条目值。直接比较,正确则得到相应的分数。如评分标志为“f”,则进一步查询对应的参数代码,从考生事实库中提出相应的参数值,将带入函数公式计算后的值与评分标准中的正确答案比较给分。如评分标志为“r”,则查询可评分事实库相应的内容,启用规则推理,按推出的结论正确与否给分。对于适用规则进行推理的条目,有两种推理方法,具体推理过程如下:
第一种方法是逆向推理:(1)根据评分标准库中需要推理的条目,在规则库中查找对应的事实f1,由deduced_by得到可能性最大的规则r1。(2)在规则库中寻找r1,取出其对应的premise中的第一个事实f11,若其为可推演事实,则重复步骤(1)、(2),直到得到对应的已知事实,若全部事实成立则推理成功,否则记录失败信息,转向下一条标准。
第二种方法为正向推理,它以深度优先策略根据已知事实中的used_by部分逐步向下推理,直到得到目标。若规则成立,则得到相应的分数,否则分数为0,记录失败信息,将结果存入考生成绩库。
本方案几种方法取长补短,可以对评分标准库进行方便的修改、补充,从而可以用于评价其他类型的设计、考试等,适应性强,从根本上解决了专家系统知识获取难的问题。
4.结束语
用PowerBuilder开发基于数据库的专家系统,对知识的管理方便、直观,实现了规则的动态管理,解决了专家系统知识获取难的问题,利用数据库索引技术和过滤机制引导推理,使推理更加简单、高效。虽然由于计算机图形评分涉及的知识十分繁杂,还有不少问题需要解决,但是通过全国注册建筑师考试作图题评分系统的开发可以看出,用PowerBuilder开发基于数据库的专家系统,时间短,见效快,效率高,是一种值得推广的专家系统构造模式,它使领域专家在基本没有知识工程师帮助的情况下就能建造自己领域内的专家系统。
Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=3150