基于Django的智能在线考试平台的设计与实现

2020-12-28 11:53李艳鸣孙瑜
电脑知识与技术 2020年31期
关键词:系统开发遗传算法

李艳鸣 孙瑜

摘要:随着计算机技术和软件工程的发展,各种考试逐渐由传统纸质考试变为计算机考试。在考试系统中最核心的问题就是组卷问题。通过对组卷流程的分析,系统选择使用智能算法中的遗传算法,并将其进行了改进,对系统的组卷模块进行了研究;而后对系统的整体架构进行了设计,最后使用Django框架、MySQL数据库对该系统进行开发,实现了预期要求。

关键词:在线考试系统;遗传算法;智能组卷;系统开发;Django框架

中图分类号:TP311.5      文献标识码:A

文章编号:1009-3044(2020)31-0034-04

Abstract: With the development of computer technology and software engineering, various examinations have gradually changed from traditional paper examinations to computer examinations. The core problem in the examination system is the question of test paper composition. Through the analysis of the paper composition process, the system chooses to use the genetic algorithm in the intelligent algorithm, and improves it, and studies the systems paper composition module; then designs the overall system architecture, and finally uses the Django framework, The MySQL database has been developed for this system and the expected requirements have been met.

Key words: online test system; genetic algorithm; smart volume; system development; Django framework

1 背景

近些年国家科技水平的快速持续发展和互联网的普及使得人们的计算机操作水平有了相当大的提高,许多行业和学科的考试方式由最初的试卷笔试变为现在的机考甚至在线考试。然而目前我们所接触到的很多计算机考试产品仍然存在诸多缺点,比如:抽取试题不符合期望、考试流程过于复杂、系统的稳定性和安全性较差、维护管理困难。其次,系统生成试卷的等待时间较长,效率很低,往往让出题人不愿使用。

2 组卷模型

一个完整的考试流程包括根据教学大纲出卷、考生在规定时间内对题目作答、教师对试卷评分并发布成绩等环节。在这一过程中,试卷始终贯穿,是整个考试流程的关键所在。因此試卷能否反映出学生的真实水平显得尤其重要,这就要求试卷必须具备较高的科学性和合理性。根据教学提纲的要求,试卷生成系统需要在试题数目,试题难度适中,试卷结构合理,试题范围广泛的约束下,最后生成符合当前测试要求的试卷。

2.1 组卷基本原则

组卷任务并不是一个随心所欲挑选试题的过程,相反有一组十分严格的约束条件需要组卷者遵守。经过对现有理论进行总结后,当前试卷组成过程应遵循的一些基本原则如下:

1)进行组卷工作时,选择的试题应遵循学校给定的教学大纲,并根据该文件中设定的教学目标及要求选择试题,公正地反映出课程的最终水平。

2)试卷中选择的试题应与学生的个性特征相匹配,这些测试题所涉及的知识应在实际生活中得到真正的运用,以提高学生的综合素质和解决问题的能力。

3)试卷的区分度应设置为适当值,合理的试卷应具有适中的难度,否则无法通过考试得到学生的真实水平。

4)试卷的内容应符合标准化的要求,反映出考试的严肃性。新颖的题型、与社会现象相结合的测试内容和贴近现实生活的试题,更能激发学生的兴趣,使学习效率提高。

5)所选试题的题干需要表述清晰,不能出现句意模糊、错别字等影响学生考试的不良因素,这样才能使得考试的公平公正性得到保障。

2.2 试题属性与试卷约束

2.2.1 试题基本属性

题库中的每一道题目都有不同的属性,如何知道哪些题目符合约束条件,那就要看题库中题目的相关属性。实际上,题目属性越详细越丰富,组卷系统在抽题准确性越高,所组试卷质量越高,但随之而来的问题是组卷成功率会有所降低。试卷的水平将在很大程度上影响测试中学生的分数,并会影响教师区分考生水平的结果。本文主要将试题指标的构成大致分为以下几个方面[1]:

1)题型:考试题的类型主要包括选择题,对\错题,填空题,简答题,作文题,计算题,编程题等。选择题还可以细分为单选题和多选题。

2)题号:它是问题库表中每个问题的身份标识符,这是题库的字段主键。

3)区分度:用于判断测试对象的知识水平和能力水平上的试题区分程度的指标。

如果将学生的考试成绩划分为三组:分数最低的27%划分为低分组用LG表示;分数最高的27%划分为高分组用HG表示;其余的46%划分为中间组;在此基础上分析,可得区分度的计算公式:

5)认知程度:用于反映应试者对独立知识获取和控制能力的衡量。

6)曝光度:曝光度是发生在以前的考试中某题目出现次数的度量。

2.2.2 试卷的约束条件

在经过对命题组卷组卷过程的分析后,可以获得以下几条与组卷任务相关的约束条件:

1)知识点信息约束:知识点通常以范围的形式反映出来,对于某项考试,知识点用于限制考试内容的范围。

2)题型信息约束:反应一张试卷由哪些题型构成。

3)试题数量约束:试卷中所有问题类型下试题数量的总和。

4)答题时间约束:指定完成测试题集所需的时间,不能太长也不能太短。

5)整卷难度约束:将整张试卷包含的所有试题的难度经过计算后得出的试卷总题难度。

6)试卷区分度约束:该约束的目的在于区分出参与考试的学生实际的能力水平。

2.3 组卷问题的数学模型

智能组卷系统需要根据用户输入的组卷要求,搜索试题库中与输入特征参数相匹配的试题,从而生成满足要求的试卷。假设在实际的试卷生成过程中,试卷中的每个试题都受到n个项目的影响,则其向量维度为n维,整个问题库中的问题数用m表示,在此基础上,可以获得一个m*n矩阵:

其中[a11]可以理解為试卷中第一题的分值,[a12]可以理解为第一道题的难度,以此类推,第一行为试卷中第一题包含的所有属性。简单来讲,一套试卷由m道题组成,每道题都有自身携带的n个属性。关于组卷问题的后续讨论均将以此模型为准。

3 遗传算法

遗传算法(Genetic Algorithm,GA)由约翰·霍兰德(John Holland)于1970年代首次提出。该算法是一种模拟自然选择的生物进化过程和达尔文生物进化理论的遗传机制的计算模型,并且是一种通过模拟自然进化过程来寻找最优解的方法。该算法使用计算机模拟将问题解决过程转换为类似于生物学进化中染色体基因的交叉和突变的过程。当解决更复杂的组合优化问题时,与某些常规优化算法相比,通常可以更快地获得更好的优化结果。目前,遗传算法已广泛应用于组合优化,机器学习,信号处理,自适应控制和人工生命等领域。本文使用遗传算法实现系统的组卷功能,并对其中的操作算子进行了优化。

3.1 遗传算法的执行步骤

一般在利用遗传算法解决实际问题时,需要按照以下步骤进行:

1)确立问题数学模型,深入剖析问题,建立相关数学模型,例如本文第二章所建立的组卷问题数学模型。

2)对问题空间进行编码,根据待求解问题的数学模型,把解的空间映射为基因空间,为待求解问题的确定解空间设计解可能出现的空间编码方案。

3)选取初始种群,在编码空间中选取作为搜索起点的默认初始解的集合,这个初始集合可随机给出,但初始解越准确,算法执行效率越高,为了保证运算效率,往往采用一些优化算法给予确定。

4)确定适应度函数,在遗传算法中,适应度函数用来表示选出的个体与组卷期望的贴合程度,是所得结果的质量的一种度量,该值越大,表示其越接近最优解。在选择适应度函数时,要注意满足两个条件,一个是早期没有“早熟”现象,另一个是后期没有“衰减”现象。

5)选择操作,依据选择策略进行选择操作。选择是从初始种群中,依照预先设定的算法,将筛选出的个体进行取舍,目前已有的选择方式有很多,一般有轮盘赌选择、随机遍历抽样、局部选择、截断选择、最佳个体保持法、锦标赛等[14]。

6)交叉操作,交叉是指从两个亲代样本中选取的部分结构,然后将这两部分结构进行相互替换重组,继而产生新个体的操作。交叉操作不是时时都在发生,它要按一定概率执行。选择合适的交叉算子对于遗传算法的执行有着十分重要的作用。

7)变异操作,变异操作是将原基因中的某些基因值转换成“突变为”其他基因值,从而形成一个新的个体。它是一个小概率事件,主要作用是增强遗传算法局部搜索能力。

3.2 编码方案

编码方案将直接影响算法的效率,因此,选择合适的编码方法显得尤为重要。本文采用分段实数法对种群中的个体进行编码,并根据不同的问题类型设计了独立的实数编码,问题类型和代码通过映射实现。当使用分组实数编码时,如果某个主题的试卷由单项选择题,对错题,填空题和简答题组成,则应由一组染色体的代码组成(一套试卷)可能是:

这样,每个染色体的含义就十分清楚了。为了确保染色体中每个问题类型的数量不变,接下来的步骤也需要遵循这种分组方法。

3.3 生成初始群体

确定染色体的编码方案后,接下来需要做的是需要生成初始种群[2]。首先,要确定初始人口的大小,为了提高遗传算法的收敛速度并减少迭代次数作为主要目标,在这里我们可以预先手动提供初始值,通常选择50或100。同时要基于系统分组实数编码方案设置初始种群中各题型的比例。例如,假设获得的试卷中单项选择题的比例为35%,判断题的比例为10%,填空题的比例为30%,简答题的比例为15%,分析题的比例为10%。那么所有最初形成的总体也应遵循上述比例来设置。

3.4 适应度函数的选取

遗传算法适应度函数的选择与组卷系统运行的性能有关[3]。选择适合度函数时,必须满足两个条件。其一是在早期阶段不存在早熟现象。其二是后期没有衰退。目标函数的值应尽可能小,相反,适应度函数的值应尽可能大,公式如下:

3.5 选 择方式

选择操作用于确定如何以某种方式从亲代种群中选择一些个体,以便继承到下一代种群。选择算子的确定基于种群中不同个体的适应度,下一阶段的染色体状态取决于染色体的优化和性能。本文在轮盘赌选择法[3]的基础上进行了一些改进,使用轮盘赌选择和精英个体保留选择的混合选择法。每一次遗传结束后,需要将子代种群的适应度数值重新计算,然后以从大到小的顺序排列,再挑选其中的最大值与父代中适应度最大的个体进行比较,如果亲代种群的最大适应度大于后代种群的适应度,则应随机排除后代种群中的一个个体,否则遗传操作将继续进行并将重复该操作,直到满足终止条件为止。

3.6 交叉算子的选取

交叉操作是指以某种方式交换彼此配对的两个亲本染色体的部分基因,从而形成两个新的后代个体。根据前面选择的分组实数编码方式,染色体的交叉操作也应分段进行。选择多点交叉法后,如果交叉仅随机发生,则交叉后获得的后代个体极有可能具有重复的基因为了避免这种情况,应该在交叉过程中增加优良个体的数量以降低局部最优解情况发生的可能性,在选择交叉的过程中,采用自适应方法获得交叉概率。公式如下:

其中[favg]代表该种群每一代适应度的平均值;[fmax]表示种该群中最大的适应度;[f']表示交叉操作前两个个体中适应较大的值。一般交叉概率应该在0.4-0.99,本文设定[Pc1]的取值为0.9;[Pc2]的取值为0.6[4]。

3.7 变异算子的选取

在使用遗传算法时,父代除了进行选择、交叉操作后有加入了变异操作用模拟基因突变的现象来获得新的个体,在此过程中,出现基因突变的位置也在相同题型中出现,并且变异后的基因会取代原先的基因,留在染色体的变异位置。与交叉操作相同,变异操作也不是随即发生的,应该使用自适应突变概率。这使算法能够在进化的初始阶段和最终阶段表现良好,并且可以保留更多的后代。公式如下:

其中[fmax]代表群体中的适应度最大值;[favg]代表种群每一代适应度的平均值;[f]代表需要变异的个体的适应度值;一般变异概率应为0.1-0.001,本文设定[Pm1]的取值为0.1;[Pm2]的取值为0.001;

3.8 遗传算法终止条件

本文中,终止的条件设定为上述两种方法的互相组合。根据经验得出进化在100到200代为宜,因此设定在迭代150次后或连续三代未进化出新后代时终止计算。

4 系统的设计与实现

4.1 系统功能分析

开发智能在线考试平台需要实现管理员、教师、学生的相关配套功能,系统的功能结构模块图如图1所示:

1)管理员角色需求:管理员是考试系统中具有最高权限的角色。管理员登录后,不仅可以对教师和学生进行管理,也可以对题库、试卷、科目、成绩等信息进行管理,同时管理员还可以自行添加其他管理员角色辅助自己的工作。

2)教师角色需求:教师角色是系统中有着第二权限的角色。教师登录后,可以手动添加自己教授的考试科目,并在不同的科目下录入相应的试题库。当教师发现自身信息或考试信息有误时,可以进行修改操作。在学生考试结束后,教师可以对学生的成绩进行查阅与分析。

3)学生角色需求:学生角色在系统中拥有的权限很低,除了修改自己的个人信息外,并不能对科目和試题进行修改。在教师安排了考试后,学生只需登录到考试系统,点击开始考试即可。考生可以选择答完所有题目后直接交卷,也可等待考试时间用尽后系统自动交卷。完成考试后学生可在系统中查询自己的历史成绩。

4.2 系统数据库的设计

任何系统的实现都离不开与数据库的交互,只有与数据库建立了正确的联系才能准确执行系统工作时要用到的查看功能、增加和删除功能以及修改功能。数据库的设计包括需求分析、概念结构设计、逻辑结构设计等六个环节[5]。数据库系统的概念模型一般通过E-R图来描述。E-R图又称实体-关系图,它能将系统所需要的数据通过最直观的图形表现出来。在线考试系统的E-R图如图2所示。

4.3 登录模块展示

在服务器运行处于运行状态下并且数据库测试连接正常后,输入网址就可以进入到计算机辅助教学系统的登录页面。在用户进行登录操作时,系统内部会保存用户输入的信息,然后调用Django框架中的相关程序与数据库中的数据进行匹配。如果匹配成功就跳转至系统的主页面如图3所示:

管理员登录页面如图4所示,登录后跳转至后台系统主页,如图5所示:

4.4 考试模块展示

学生点击考试信息后可以查看教师和管理员安排的考试列表,如图6所示:

在规定的时间,点击开始考试按钮,系统会自动跳转至考试页面,考试时的答题界面如图7所示:

5 分析与结论

本文主要研究了计算机辅助教学的考试模块,它是一个当今社会比较先进的考试系统,较传统纸质考试来说,它不仅节约了教师的时间,也节约了纸张资源,符合目前我们国家提倡的低碳环保的生活方式,更对习题资源做了归纳整理,使得从前需要从四面八方收集起来的试题拥有了自己的属性。此外,线上考试对于考试的公平性来说比传统考试高出很多,因为它避免了人工组卷的主观性。除此之外,这种线上考试的模式也给学生带来了方便。本文开发的系统使用了目前比较新颖的基于python语言的Django框架与MySQL数据库相结合,在传统的MVC架构上细化出了MTV模式,这样的系统在各个浏览器上甚至跨操作系统都可以正常运行,与一些老旧的线上考试系统相比实用性更高,也更易于维护。在最主要的组卷功能上使用遗传算法满足组卷的核心需求。整个系统能够良好的完成用户管理、试题库与试卷管理、组卷、线上考试等操作,并且能够通过各项测试。

参考文献:

[1] 强劼.智能组卷在线考试系统的设计与实现[D].苏州:苏州大学,2012.

[2] 朱剑冰,李战怀,赵娜.基于混合遗传算法的自动组卷问题的研究[J].计算机仿真,2009,26(5):328-331,352.

[3] Bardsiri A K,Rafsanjani M K.A new heuristic approach based on load balancing for grid scheduling problem[J].Journal of Convergence Information Technology,2012,7(1):329-336.

[4] 赵跃新,许军林.基于遗传算法自动组卷的实现[J].计算机与信息技术,2009,17(3):45-47.

[5] 杨青.基于遗传算法的试题库自动组卷问题的研究[J].济南大学学报(自然科学版),2004,18(3):228-231.

[6] 杨刚.基于Django的在线考试系统的设计与实现[J].电脑知识与技术,2016,12(14):40-42.

[7] 强劼.智能组卷在线考试系统的设计与实现[D].苏州:苏州大学,2012.

[8] 欧薇.基于遗传算法的在线考试系统的设计与实现[D].广州:华南理工大学,2012.

[9] 王烨.在线考试系统的分析与设计[D].昆明:云南大学,2012.

[10] 张志莉,雷存才.试卷质量的数理统计分析[J].呼伦贝尔学院学报,2011,19(6):90-92.

[11] Yuan X,Cao L,Xia L.Adaptive genetic algorithm with the criterion of premature convergence[J].东南大学学报(英文版),2003,19(1).

[12] 郭秀娟,张坤鹏.基于蚁群混合遗传算法的组卷问题研究[J].吉林建筑大学学报,2017,34(4):79-83,102.

[13] 严亚周.基于多点混沌优化遗传算法的组卷系统设计与实现[D].长沙:湖南大学,2017.

[14] 李芳.数据挖掘在学生成绩分析中的应用研究[D].兰州:兰州大学,2017.

【通联编辑:谢媛媛】

猜你喜欢
系统开发遗传算法
遗传算法对CMAC与PID并行励磁控制的优化
基于自适应遗传算法的CSAMT一维反演
一种基于遗传算法的聚类分析方法在DNA序列比较中的应用
基于遗传算法和LS-SVM的财务危机预测
协同进化在遗传算法中的应用研究
基于开源系统的综合业务数据采集系统的开发研究
基于改进的遗传算法的模糊聚类算法