自动组卷是网络考试系统的核心功能,组卷成功与否决定了考试的质量,遗传加密算法以其自适应全局寻优、智能搜索和收敛速度快的特点,适宜于解决大范围和复杂度高的问题求解。

一、遗传加密算法特点

遗传算法借用了生物遗传学的观点,每个物种的特征均来自于该物种的基因排列,通过模拟自然进化的遗传、变异等机制,实现各个个体的适应性的提高,这一点体现了自然界中“物竞天择、适者生存”的进化过程。

二、遗传加密算法基本构成要素

1、染色体编码

在使用遗传加密算法对一个问题进行求解之前,必须先对问题的解空间进行编码,以实现解空间到遗传加密算法搜索空问的映射,编码方法有二进制编码(SGA)、浮点数编码、符号编码等,选择何种编码方式有时对算法的性能和效率会产生很大的影响。

2、 群体数

群体数就是染色体个体的数目,群体数的多少对于搜索的效果有很大影响,群体数越多则参与搜索的染色体越多,从而有更大的机会得到最优解,但是需要更多的搜索时间使得收敛速度降低,一般情况下,专家建议群体数为20—100。

3、适应度函数 

遗传加密算法是在适应度函数的指导下进行搜索,而不是穷举式的全面搜索,适应度函数评估是选择操作的依据,各个个体适应度的大小决定了它们继续繁衍还是消亡,相当于是自然界中各生物对环境适应能力的大小。因此,适应度函数的选取直接影响到遗传算法的收敛性及收敛速度,对于提高遗传加密算法的智能程度显得尤为重要。

4、遗传操作

(1)选择 

选择操作决定如何从当前种群中选择个体作为产生下一代种群的父代个体,选择过程体现了生物进化过程中“适者生存。优胜劣汰”的思想。并且保证优良基因遗传给下一代个体。

(2)交叉

交叉算子是模仿自然界有性生殖的基因重组过程,其作用在于将原来的优良基因遗传给下一代个体,并生成包含更复杂基因结构的新个体。

(3)变异 

变异操作模拟自然界生物体进化过程中染色体上某位基因发生的突变现象,从而改变染色体的结构和物理形状,变异可以引进新的基因码,增加新的参数搜索区域,避免陷入局部最优解,因而可以搜索到整体最优解。

5、最优保存策略

选择、交叉、变异操作后,再比较上下两代最好个体的适应度,如下降,则以上一代最好个体替换下一代的最差个体,反之则相反。

6、遗传加密算法的步骤

步骤如下:

(1)初始化,产生足够数量的个体,组成种群。

(2)迭代的执行下述步骤:

a、计算群体上每个个体的适应度值;

b、产生新的种群。

按由个体适应度值所决定的某个规则选择将进入下一代的个体;

按概率 进行交叉操作;

按概率 进行变异操作;

c、没有满足停止条件,则转第a步;

(3)输出种群中适应度值最优的染色体作为问题的满意解或最优解。

遗传加密算法在试题库组卷中的应用 

三、遗传加密算法的设计与实现

1、染色体编码

本文采用了分段的浮点数编码,染色体形如(a1,a2…an),其中a1表示试题库中试题的题号,n为试卷要求的试题数,基因按照题型有序排序,并且将同类型的试题放在同一个区间内,如图所示:

遗传加密算法在试题库组卷中的应用 采用这种编码,克服了标准二进制编法方式占据存储空间大和计算量大的特点,减少了解码的过程,加快了进化速度。

2、 初始化种群 

依据组卷要求从每一类题型中随机产生相应数目的题号,按题型有序的存人个体的染色体中,保证同种题型的各题号必须相异,以免在同一份试卷中出现重复的试题,而且每个题号均在相应题型的题号定义域中产生。

3、 适应度函数的确定

在遗传加密算法中,常以适应度大小来区分群体中个体的优劣,组卷时,个体的适应度由章节比例、试 题难度、区分度来决定。

(1)章节比例的约束 

对相应章节所占的分数与用户输人值相减所得的绝对值求和再除总分,就得到章节比例不满足命题要求的程度f1。

遗传加密算法在试题库组卷中的应用

其中s-num为章节的数目,apj为第j题的分值,si为第i章要求的章节比例,当试题章节为i时,seci为1,否则为0,f1∈[0,1]越小说明章节比例的约束满足的越好,当f1=0时,完全满足章节比例。

(2)难度级比例的约束 

对相应难度级所占的分数与用户输入值相减所得的绝对值求和再除总分,就得到难度级不满足命题要求的程度f2。

遗传加密算法在试题库组卷中的应用

其中d-num为难度级的数目,f2∈[0,1],f2越小说明难度级比例的约束满足的越好。

(3)区分度的约束

对试卷中所有试题求区分度和与用户输入值相减所得的绝对值再除总分,就得到区分度不满足命题要求的程度f3。

遗传加密算法在试题库组卷中的应用 

DIV为试卷要求的区分度,为第i题的区分度,f3∈[0,1],f3越小说明区分度的约束满足的越好,当f3=0时,完全满足该约束。

4、遗传操作

(1)选择

本文采用适应度比例选择方法,也叫轮盘赌方法,该方法根据每个个体的适应度值计算其选择概率。

首先计算种群个体适应度的平均值,进而可以计算群体中各个个体期望被选中的次数。

可以看出,个体适应值越高,被选中的次数越多,这使得新种群的性能大大提高,通过选择操作,保持了染色体的编码规则,选中的个体被复制到下一代种群中,用来进行后面的交叉。

(2)交叉 

采用单点交叉方式,具体操作是,从群体中随机选择2个染色体,对两个配对个体的每一个基因,生成一个随机数,如果小于交叉概率Pc。则交换该对基因同时如果交叉之后得到的染色体中存在同一题型中包含相同试题的情况,则不进行交换。

(3)变异 

由于采用了实数编码方式,普通的变异操作可能破坏试卷的题型顺序,由此采用了均匀变异方法。其过程是,从群体中随机选择 1个染色体,对个体中的每一个基因,生成一个随机数,如果小于变异概率Pm则从该基因所属题型的定义域中随机产生相异的题号替换原有基因。

5、最优保存策略 

进行选择、交叉和变异操作后,比较新一代的最好个体与上一代的最好个体的适应度值,如下降,则以上一代最好个体替换新一代的最差个体。

此策略可以保证迄今为止的最优个体不会被交叉和变异等遗传运算破坏,它是遗传加密算法收敛的一个重要保证条件。

本文利用遗传加密算法的搜索空间大和收敛速度快的特点,设计了一种用于自动组卷的智能加密算法,提高了组卷的效率和成功率,为智能组卷的实现提供了一种新途径,要使自动出题的误差精度和收敛速度进一步得到改进,还需要进行更深入的研究。

小知识之二进制编码

二进制编码是用预先规定的方法将文字、数字或其他对象编成二进制的数码,或将信息、数据转换成规定的二进制电脉冲信号。