4 遗传算法应用
一般来说,用户在自动组卷时会对试卷的质量提出多方面的要求,如总题量、平均难度、题型比例、章节比例、重点章节比例、知识点的交叉与综合等,自动组卷就应最大程度的满足用户的要求。因此,在组卷之前,我们首先为自动组卷过程建立控制指标相应状态空间D,
D=[]
D的每一行由某一试题的控制指标组成,如题号、题型、章节、难度等,并且这些属性指标都进行编码表示成二进制形式,而每一列是题库中的某一指标的全部取值。在具体出题时,考方可能不会用到所有的指标,所以D包含的个体d_target可以表示为d_request和d_void,d_request表示考方要求的控制指标,d_void表示考方不要求的控制指标。即
d_target::=<d_request>:<d_void>
<d_request>::={0,1}m
<d_void>::={0,1}n
试题库[STK]中的每一道试题在建库时都输入了相应的属性指标。试题模型的产生形式是:
if <data> then
<model>
<data>::={0,1,#}m
#表示0和1之间的任意一位。
考试自动出题的遗传算法如下:
(1) 根据考方的出题要求,规划状态空间库D中的数据,保留d_request部分,而不要d_void部分,对其剩余部分进行编码D [1],D[2],……D[i]。
(2) 初始化试题库[STK]。随机从题库中抽出一组试题,并进行编号STK[1],STK[2]……STK[j],确定合适的交换概率Pc和变异概率Pm;并定义其适应值flexibility[k](k=1,2……j)
flexibility[k]<-0 (k=1,2……j)