用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开发基于数据库的专家系统,时间短,见效快,效率高,是一种值得推广的专家系统构造模式,它使领域专家在基本没有知识工程师帮助的情况下就能建造自己领域内的专家系统。



  • 0
    点赞
  • 0
    评论
  • 0
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

相关推荐
<p style="color:#666666;"> <span style="font-size:14px;">本门课程重实战,将基础知识拆解到项目里,让你在项目情境里学知识。</span> </p> <p style="color:#666666;"> <span style="font-size:14px;">这样的学习方式能让你保持兴趣、充满动力,时刻知道学的东西能在哪、能怎么。</span> </p> <p style="color:#666666;"> <span style="font-size:14px;">平时不明白的知识点,放在项目里去理解就恍然大悟了。</span> </p> <p style="color:#666666;"> <span></span> </p> <p style="color:#666666;"> <span style="font-size:14px;"> </span> </p> <p style="color:#666666;"> <span style="color:#FF0000;font-size:14px;"><strong>一、融汇贯通</strong></span> </p> <p style="color:#666666;"> <span style="font-size:14px;">本视频采了前后端分离的开发模式,前端使Vue.js+Element UI实现了Web页面的呈现,后端使Python 的Django框架实现了数据访问的接口,前端通过Axios访问后端接口获得数据。在学习完本章节后,真正理解前后端的各自承担的工作。</span> </p> <p style="color:#666666;"> <span style="font-size:14px;"> </span> </p> <p style="color:#666666;"> <span style="color:#FF0000;font-size:14px;"><strong>二、贴近实战</strong></span> </p> <p style="color:#666666;"> <span style="font-size:14px;">本系列课程为练手项目实战:学生管理系统v4.0的开发,项目包含了如下几个内容:项目的总体介绍、基本功能的演示、Vuejs的初始化、Element UI的使、在Django中实现针对数据的增删改查的接口、在Vuejs中实现前端增删改查的调、实现文件的上传、实现表格的分页、实现导出数据到Excel、实现通过Excel导入数据、实现针对表格的批量化操作等等,所有的功能都通过演示完成、贴近了实战</span> </p> <p style="color:#666666;"> <span style="font-size:14px;"> </span> </p> <p style="color:#666666;"> <span style="color:#FF0000;font-size:14px;"><strong>三、课程亮点</strong></span> </p> <p style="color:#666666;"> <span style="font-size:14px;">在本案例中,最大的亮点在于前后端做了分离,真正理解前后端的各自承担的工作。前端如何和后端交互</span> </p> <p style="color:#666666;"> <span style="font-size:14px;"> </span> </p> <p style="color:#666666;"> <span style="color:#FF0000;font-size:14px;"><strong>适合人群:</strong></span> </p> <p style="color:#666666;"> <span style="font-size:14px;">1、有Python语言基础、web前端基础,想要深入学习Python Web框架的朋友;</span> </p> <p style="color:#666666;"> <span style="font-size:14px;">2、有Django基础,但是想学习企业级项目实战的朋友;</span> </p> <p style="color:#666666;"> <span style="font-size:14px;">3、有MySQL数据库基础的朋友</span> </p> <p style="color:#666666;"> <span style="font-size:14px;"> </span> </p> <p style="color:#666666;"> <span style="font-size:14px;"><img alt="" src="https://img-bss.csdnimg.cn/202009070752197496.png" /><br /> </span> </p> <p style="color:#666666;"> <span style="font-size:14px;"><br /> </span> </p>
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值