综合组卷算法的研究与实现.docx
《综合组卷算法的研究与实现.docx》由会员分享,可在线阅读,更多相关《综合组卷算法的研究与实现.docx(5页珍藏版)》请在冰豆网上搜索。
综合组卷算法的研究与实现
综合组卷算法的研究与实现
论文导读:
有关组卷算法的实现目前有很多研究,归纳出各种方法,例如有随机选取法、动态匹配法、回朔法试探、遗传算法(动态优化法)等。
这主要由试卷的相关特征决定,例如题型、题量是由算法自动控制还是组卷时指定。
关键词:
试题库,组卷,组卷参数,算法
1引言有关组卷算法的实现目前有很多研究,归纳出各种方法,例如有随机选取法、动态匹配法、回朔法试探、遗传算法(动态优化法)等。
这主要由试卷的相关特征决定,例如题型、题量是由算法自动控制还是组卷时指定;每类题型的分数是由算法确定还是组卷时指定;试卷难度是仅控制各试题的平均难度还是进一步要控制各试题难度的分布。
下面介绍组卷算法涉及的有关问题和算法的文字描述,并分析了算法的时间效率。
2综合组卷算法的总体流程本算法采用随机抽取法反复筛选进行抽题组卷,是考虑各种要求的综合组卷算法,该算法一次可以组出三套试卷。
在描述算法前,先解释几个试题属性项的表示。
试题表的结构如表1所示,
表1试题表结构
序号字段名类型宽度说明1课程代码字符型7
2试题号字符型字符型4试题唯一标识号3题型码1试题类型代码4难度字符型1试题难度5范围字符型10试题所涉及的章节(知识点)6文本内容备注型4试题题面(直接录入的)7对象内容通用型4试题题面(通过OLE方式嵌入)8文本答案备注型4试题答案(直接录入的)910对象答案nr_fg通用型逻辑型41试题答案(通过OLE方式嵌入)题面(试题内容)是文本或对象11da_fg逻辑型1答案是文本或对象12Slct1逻辑型1该题在试卷1中是否抽中13Slct2逻辑型1该题在试卷2中是否抽中14Slct3逻辑型1该题在试卷3中是否抽中15Stxh1数值型2题型中的小题序号(试卷1)16Stxh2数值型2题型中的小题序号(试卷2)17Stxh3数值型2题型中的小题序号(试卷3)18Stxh数值型2题型中的小题序号(输出试卷)19Zrjs字符型10责任教师20stbg数值型2试题曝光度
其中范围字段表示该试题涉及的知识点,其格式为:
知识点1,知识点1,,例如,范围的值可以为1.1,3.2,5.3;难度字段表示该试题的难度等级(分为1、2、3级);曝光度字段表示该试题在规定日期内的抽取次数;slct1字段表示该试题是否被第1套试卷抽中(为真即抽中,为假即未抽中),slct2、slct3字段与此类似;stxh1字段表示该试题在第1套试卷中某一题型下的小题序号,stxh2、stxh3字段与此类似。
组卷过程开始要指定一套试卷中每种题型要抽出的题量,该题型的平均难度及分数,并可以指定本套试卷不要求的范围(其格式同范围字段)。
本组卷算法每次可以抽出三套试卷,即每道试题是否抽中还要考虑是否被另两套试卷抽中。
首先对试题表过滤为指定的课程代码(即只对该课程的试题进行搜索),并且试题顺序按题型排好(使用索引方式,即逻辑排序,速度很快)。
设置循环方式是:
最外层循环每次定位一种要抽出的题型码,并得到该题型的题量(用变量vtl存储)、平均难度(用变量vnd存储);内循环在试题表中对该题型的所有试题进行搜索,按照确定的抽题策略,最多可能要搜索五遍才能完成一种题型的各试题的抽出。
如图3.2所示为满足各种参数要求的综合组卷算法流程图。
①
①
选择试题表stk②⑤⑤④
图1组卷算法流程图
下面是内循环中每一遍搜索的抽题策略。
第一遍搜索时,一道试题是否抽中的策略是:
(1)判断该题范围是否含有不要求的范围(实现方法见3.2.2)或是否已被本套试卷抽中,若是则放弃该题,跳到下一题;
(2)判断该题在知识点数组上是否分布均匀(实现方法见3.2.2),否则放弃该题,跳到下一题(这是为了保证在试卷中各试题的知识点分布均匀);
(3)判断该题是否已被另两套试卷之一抽中,若是则放弃该题,跳到下一题;
(4)判断它的难度是否符合要求(使某题型平均难度达到指定要求采用的策略是:
对于平均难度为1时,则按难度为1的题量1/2,难度为2的题量1/2;平均难度为2时,难度为1的题量1/3,难度为2的题量1/3,难度为3的题量1/3;平均难度为3时,难度为2的题量1/2,难度为3的题量1/2),如果满足要求则抽中该题(即将其slctn字段置真标志,stxhn字段置小题序号,n为当前试卷套号,将该难度的题量增1,该题型的题量增1,并将该题的范围加入到知识点数组中(实现方法见3.2.2),然后再判断该题型的题量是否已抽够,否则进入内循环的第二遍搜索,若是则跳出内循环,进行外循环的下一题型处理。
第一遍搜索的结果能够满足:
该题型的每题知识点不重复、每套试卷无相同题、平均难度符合要求。
论文参考网。
第一遍搜索算法描述如下(其中vdm为当前题型码):
(1)选择试题表stk(已按指定的课程代码过滤,索引方式为试题码);
(2)定位到题型码为vdm的试题;
(3)若本题范围含不要求的范围或已被本套试卷抽中,则转(7),否则转(4);
(4)若本题在知识点数组上分布均匀,则转(5),否则转(7);
(5)若本题已被另两套试卷之一抽中,则转(7),否则转(6);
(6)若本题难度符合要求,则置slctn字段为真且stxhn字段值增加1(n为当前试卷套号),该难度的题量增1,该题型的题量增1,并将本题范围加入到知识点数组,否则转(7);
(7)定位到题型码为vdm的下一试题;
(8)若该题型已无试题,则转(9),否则转(3);
(9)若该题型的题量已抽够,转下一题型处理,否则转该题型的第二遍搜索。
第二遍搜索时,抽题策略基本与第一遍搜索相同,唯一区别是在第三步,将判断条件改为是否已被另两套试卷同时抽中,若是则放弃该题,跳到下一题。
此条件的放宽可能导致在两套试卷中有相同试题。
第三遍搜索时,抽题策略也基本与第一遍搜索相同,唯一区别是取消了第三步的判断,这样可能导致在三套试卷中都有相同试题。
论文参考网。
第四遍搜索时,抽题策略基本与第二遍搜索相同,唯一区别是在第二步,将判断条件放宽,由一个知识点一题变为一个知识点不超过三题,这样是为了在某题型要抽出的题量较大而知识点总数较少时,亦能使各题在知识点上大致分布均匀。
第五遍搜索时,只进行第一步判断。
这样可以保证只要试题表中各题型题量(排除不要求范围的试题)不少于要求抽出的题量,就一定可以抽出完整的试卷,虽然这样在某题型(大题)里平均难度上不能达到指定要求,三套试卷中有相同的试题,试题在知识点上分布不均匀,但可通过输出的分析试卷来确定是否可用,也可增加某题型的题量后再重新组卷,避免了很多组卷系统一旦题库题量未达到一定数就无法组卷的情况。
当各题型都抽出了指定的题量后,则给出提示组卷成功!
请用预览或打印查看;若某题型的题量不够,则给出提示组卷失败!
试题类型XXX在要求的范围内题量不够。
组卷成功后,可以对生成的每套试卷进行分析,即可浏览、打印每套试卷的分析试卷(分列出试卷中每道题的难度、涉及范围、内容及答案),便于检查是否达到要求。
论文参考网。
正式试卷出卷时,需要输入考试年度、考试性质、考生类别、考试专业、考试学期、考试年级及试卷代码,即可生成与实际考试完全一样的试卷。