赵杰
摘要:组卷问题需要在特定的约束条件下对多个目标参数进行科学的优化,应用传统的数学方法将十分困难。针对自动组卷系统而言,其应用效率与试题库设计和题目抽取算法有着直接的关系,遗传算法体现出较大的优势,遗传算法是一种通过模拟生物界自然选择和遗传变异的机制来求解复杂问题的随机搜索和优化的方法。本文结合遗传算法的原理,对自定组卷问题的数学模型进行了分析,提出了系统设计和实现方法。
关键词:自动组卷 遗传算法 研究和应用
中图分类号:TP311.52 文献识别码:A 文章编号:1007-9416(2016)05-0000-00
1 遗传算法的原理
遗传算法应用,以自然遗传学为基础,结合群体进化理论,对群体中所有备选解进行最优选择,通过交叉和变异等迭代运算,寻找满意解,每一次迭代称为一代,之后对函数进行评价后保留一部分染色体进入到下一代,借助遗传算子补充染色体,最后得出最优的群体,实现问题的求解。[1]
2 自动组卷的数学模型
自动组卷过程中需要从相应的试题库中找出满足约束条件的试题组成试卷。例如一份试卷中有m道试题,不同的试题有n个属性,生成试卷过程矩阵为m×n即:
其中S表示目标矩阵,S必须满足以下约束条件:
试卷总分约束,即,其中ai2表示第i道试题的分值,S为总分,默认试卷满分100分。
题型分值约束,,其中Tt表示第t中题型的分数,C1i表示单项选择、多项选择或者计算等题型,t表示题型号。
章节分值约束,,其中Zt表示第t章中要求的分数,t表示章节号。
知识点分值约束,,其中ZSt表示第t个知识点的分值,t表示知识点号。
难度约束,,其中ai4表示第i道试题的难度,S′表示试卷的总分值。
3 群体初始化
结合试卷内容和不同题型的数量,保证一份试卷中知识点不重复,之后随即生成初始群体p(0),群体规模为P,P值取为50-100,方案如下。
public class Unit
{
public Unit()
{
ID = 0;
AdaptationDegree = 0.00;
KPCoverage = 0.00;
ProblemList = new List
}
public double Difficulty
{
get
{
double diff = 0.00;
ProblemList.ForEach(delegate(Problem p)
{
diff += p.Difficulty * p.Score;
});
return diff / SumScore;
}
}
///
public int ProblemCount
{
get
{
return ProblemList.Count;
}
}
///
public int SumScore
{
get
{
int sum = 0;
ProblemList.ForEach(delegate(Problem p)
{
sum += p.Score;
});
return sum;
}
}
public double KPCoverage { get; set; }
///
public List
}
4结语
自动组卷问题需要满足多个约束条件,是一种的典型的多目标求解问题,将组卷系统应用于实际教学,有利于解决组卷难题,获得良好的教学效果。
参考文献
[1]陈晓东.一种基于改进遗传算法的组卷算法[J].哈尔滨工业大学学报,2014,37(9):117.
[2]魏平,熊伟清.用遗传算法解组卷问题的设计与实现[J].微电子学与计算机,2011,19(4):48.