论文首页哲学论文经济论文法学论文教育论文文学论文历史论文理学论文工学论文医学论文管理论文艺术论文 |
4.3 组卷算法
4.3.1 现有算法分析
自动组卷是考试系统自动化或半自动化操作的核心目标之一,而如何保证生成的试卷能最大程度的满足用户的不同需要,并具有随机性、科学性、合理性,这是实现中的一个难点。尤其在交互式下用户对于组卷速度要求较高,而一个理论上较完美的算法可能会以牺牲时间作为代价,往往不能达到预期的效果。因此,选择一个高效、科学、合理的算法是自动组卷的关键。
以往的具有自动组卷功能的考试系统大多采用随机选取法和回溯试探法。随机选取法根据状态空间的控制指标,由随机的抽取一道试题放入试题库,此过程不断重复,直到组卷完毕,或已无法从题库中抽取满足控制指标的试题为止。该方法结构简单,对于单道题的抽取运行速度较快,但是对于整个组卷过程来说组卷成功率低,即使组卷成功,花费时间也令人难以忍受。尤其是当题库中各状态类型平均出题量较低时,组卷往往以失败而告终。
回溯试探法这是将随机选取法产生的每一状态类型纪录下来,当搜索失败时释放上次纪录的状态类型,然后再依据一定的规律变换一种新的状态类型进行试探,通过不断的回溯试探直到试卷生成完毕或退回出发点为止,这种有条件的深度优先算法,对于状态类型和出题量都较少的题库系统而言,组卷成功率较好。
分析上述两种算法的优缺点,不难发现,在限制条件状态空间的控制下,随机选取法有时能够抽取出一组令用户满意的试题。只不过由于它随机选取试题的范围太大,无法确定目前条件下哪些区域能够抽取合适的试题,反而可能在那些已经证明是无法抽取合适试题的区域内反复选题,进行大量的无效操作进入死循环,最终导致组卷失败。回溯试探法组卷成功率高,但它是以牺牲大量的时间为代价的,由于本软件只是个小型的单科考试组卷系统,结构简单,出题量也较少,所以本系统选择相对简单,组卷成功率较好的回溯试探法进行组卷。
4.3.2 回溯试探法的应用
回溯算法也叫试探法,它是一种系统地搜索问题的解的方法。回溯算法的基本思想是:从一条路往前走,能进则进,不能进则退回来,换一条路再试。
用回溯算法解决问题的一般步骤为:
1、定义一个解空间,它包含问题的解;
2、利用适于搜索的方法组织解空间;
3、利用深度优先法搜索解空间;
4、利用限界函数避免移动到不可能产生解的子空间。
问题的解空间通常是在搜索问题的解的过程中动态产生的,这是回溯算法的一个重要特性。
回溯法是一个既带有系统性又带有跳跃性的的搜索算法。它在包含问题的所有解的解空间树中,按照深度优先的策略,从根结点出发搜索解空间树。算法搜索至解空间树的任一结点时,总是先判断该结点是否肯定不包含问题的解。如果肯定不包含,则跳过对以该结点为根的子树的系统搜索,逐层向其祖先结点回溯。否则,进入该子树,继续按深度优先的策略进行搜索。回溯法在用来求问题的所有解时,要回溯到根,且根结点的所有子树都已被搜索遍才结束。而回溯法在用来求问题的任一解时,只要搜索到问题的一个解就可以结束。
搜索:全面访问所有可能的情况,分为两种:不考虑给定问题的特有性质,按事先顶好的顺序,依次运用规则,即盲目搜索的方法;另一种则考虑问题给定的特有性质,选用合适的规则,提高搜索的效率,即启发式的搜索。
本系统使用的是回溯法的启发式搜索,以试题题型,试题分值和选题数量为约束条件进行随机搜索,而把设置的试卷总分数作为一个解空间。如果各题型分值之和等于用户设置的试卷总分数,则产生一个有效解,系统生成一份试卷,试题的题型,编号,分值等信息储存进试题库表中。通过系统的预览试卷功能,系统通过所存信息搜索数据库,获取试题内容,并输入Word文档中组成一份完整试卷。
4.4 自动组卷
自动组卷是时系统根据用户要求,随机选取试题,组成一份完整的试卷。本系统使用的是回溯探取法随机选题。其主要过程如下:
(1)用户输入选题要求,如各题型数量,题型分值和题型难度,并设置试卷总分数。
(2)初始化随机数生成器。
(3)系统根据题型数量和题型难度要求在各题型表中随机抽取试题,将抽取到的试题的“编号”、“试题类型”、“分值”等信息存入临时表LSSJ中,并对其进行排序和比较,如有重复则返回继续搜索,防止试题被重复选取,一直到抽取试题数等于用户设置的各题型的试题数量。
(4)系统自动判断用户设置的试卷总分值与试题总分值是否相等,是则生成试卷,并将试题信息“编号”、“分值”、“难度”等信息存入数据库表SJT中,且生成“试卷代号”、“试卷创建者”、并判断“试卷难度”,存入数据库表SJ中。否则试卷生成失败,并清空临时表SJ中所有信息。
(5)设置试卷模板。
(6)预览试卷,系统根据数据库表SJT中信息搜索题库试题内容,并按设置好的试卷模板导入Word中,生成一份完整的试卷,并以*.doc文件的形式保存。
自动生成试卷的流程如图4-9所示。
4.5 手动组卷
由于自动生成的试卷,对于试卷知识覆盖面的问题不好控制,为了解决这各问题,所以本软件增加了另一种组卷方式,也就是手动生成试卷。此组卷方式的优点在于,系统将各题型的试题具体的分到了此科考试的具体章节和知识点。用户可以根据具体章节和知识点浏览此知识点下的各试题,并可以选择加入试卷,组成一份知识覆盖面广的试卷。其主要组卷过程如下:
(1)用户选择试题题型,题型分值,试题数量和知识点,并设置试卷总分值,系统根据用户选择的题型和知识点显示所有试题。
(2)用户选择试题,试题的“编号”、“难度”、“题型”等信息存入临时表LSST中,如果重复选题,则系统提示“您已选择此试题!”,否则系统提示“试题添加成功!”。
(3)生成试卷,系统判断用户设置分数是否与试题总分数相等,是则生成一份完整的试卷,并将试题的“编号”、“难度”、“分值”、“类型”等信息存入数据库表SJT中。且生成“试卷代号、”试卷创建者“,并判断”试卷难度“,存入数据库表SJ中。否则试卷生成失败,提示用户“您生成的试卷分值与设置的试卷分值不等,试卷生成失败!”。
(4)设置试卷模板。
(5)预览试卷,系统根据数据库表SJT中信息搜索题库试题内容,并按设置好的试卷模板导入Word中,生成一份完整的试卷,并以*.doc文件的形式保存。
SHAPE \* MERGEFORMAT
图4-9 自动生成试卷流程图
手动生成试卷的流程如图4-10所示。
SHAPE \* MERGEFORMAT
图4-10 手动生成试卷流程图