基于免疫遗传算法的智能组卷系统设计

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

基于免疫遗传算法的智能组卷系统设计
葛宇;梁静
【摘要】为解决实际的组卷问题,降低组卷过程中的主观性,将免疫机制结合到遗传算法中,提出了一种基于免疫遗传算法的智能组卷算法,并从抗体编码、抗体选择、接种疫苗等方面对算法进行了优化.实验结果表明该算法取得了满意效果,具有较高实用性.%In order to solve practical problems in exam paper composing, and reduce the subjectivity in composing process, in this paper we apply the immune mechanism to genetic algorithm and design an intelligent exam paper composing system based on immune genetic
algorithm.Meanwhile the algorithm is optimized in the aspects of antibody coding, selection and vaccine.It is verified by the experimental result that the algorithm achieves satisfying effect with quite high practicability.
【期刊名称】《计算机应用与软件》
【年(卷),期】2011(028)001
【总页数】3页(P274-276)
【关键词】智能组卷;免疫遗传;抗体选择;接种疫苗
【作者】葛宇;梁静
【作者单位】四川师范大学基础教学学院,四川,成都,610068;成都电子机械高等专科学校网络中心,四川,成都,610031
【正文语种】中文
0 引言
计算机辅助教学(CAI)中的关键问题就是考试中的智能组卷,要求计算机按照教师和考核的要求,自动从试题库中选择试题,组成一份符合要求的试卷。

生成的试卷要有随机性、科学性和合理性。

智能组卷常用的算法大多是随机选取法、回溯试探法和遗传算法。

随机选取法[1]根据状态空间的控制指标随机搜索满足条件的试题,直到满足要求。

该方法缺点是:对于整个组卷过程来说,组卷成功率低,花费时间长。

回溯试探法[2]是将随机选取法产生的每一状态记录下来,当搜索失败时返回到前一状态再次进行试探,直到试卷生成为止。

该方法缺点是:内存的占用量很大,程序结构复杂,而且选取试题缺乏随机性,组卷时间长。

而遗传算法基本思想是在编码后对编码空间进行搜索,基本上不利用问题空间的知识,而仅用适应度函数值来评价个体并指导搜索,虽具有全局并行搜索的优点,但由于没有充分利用题库和试卷的自身特征,从而造成搜索效率低下,收敛速度慢,有时甚至无法收敛或局部收敛。

免疫遗传算法(IGA)在保留遗传算法优点基础上,克服遗传算法在局部搜索效率较差的缺点,又在很大程度上避免未成熟收敛,本文将其应用到智能组卷系统中,体现出其良好的性能。

1 组卷模型
组卷问题实际上是一多目标约束优化问题,因此,为试卷中每道题设置六个属性来表示约束条件,其中一道题用向量 si表示如下:
其中,m为试卷中题目总数,si表示第 i道题,其各个属性依次为:题型ai1、知识点
ai2、难度ai3、分值ai4、暴光度ai5、题库中的题号ai6,最终满足用户要求的一张试卷就由m个向量组成。

组卷问题需要用户对试卷进行多项约束,即用户指定组卷时的要求。

其中用户主要
设定的标准有总分P,题型分值 A,知识点分值B,难度系数 D。

对一张试卷定义如下五个指标来进行约束:
(1)总分约束
(2)题型分值约束
其中,j表示题型,Aj表示题型j占的分值。

当ai1=j时H1=1,否则H1=0。

(3)知识点分值约束
其中,k表示知识点,Bk表示属于知识点k的题目对应分值。

当ai2=k时H2=1,否
则H2=0。

(4)难度值约束
其中,D j表示题型j占的平均难度值。

当ai1=j时H 3=1,否则H 3 =0。

(5)暴光度约束
表示各题的平均暴光度最小。

在上述五个指标中,其中前两个是硬性指标必须满足,后面三个为软性指标尽量满足。

为判断一份试卷是否满足组卷的要求,我们根据约束条件以及各项指标的不同重要
程度,设定整套试卷适应度函数f(x)来反映与用户要求的误差。

由于试卷各项指标
的重要程度是不相同的,因此f(x)就是各项指标与用户要求之间误差绝对值的加权和,即:
式中,fi表示试卷的第 i个约束指标与用户要求间误差的绝对值,wi表示第i个指标
的权值。

除了以上给出的五个单项约束以外,为了满足一些特殊要求,还可以指定其
它一些指标如期望值、区分度等。

但是,组卷时并非指标越多越能组织出一份理想
试卷,相反,根据以往的经验,约束条件过多会增加组卷难度并降低组卷效率。

因此,应根据实际需要选择合适的约束条件进行组卷。

2 智能组卷的免疫遗传算法
免疫遗传算法(IGA)是把生物免疫思想融入遗传算法中,既能够保留遗传算法全局搜索特性,又能避免未成熟的收敛。

免疫遗传算法与遗传算法相比[4],增加了记忆功能、疫苗接种和调节功能。

本文利用 IGA实现智能组卷,首先按照一些约束条件(如:题型、知识点)从题库中选题来生成一张试卷,其中每张试卷即为一个抗体,试卷中每道题为抗体中一个基因,这样反复选择多张试卷来组成初始种群,然后按照如图 1所示的流程进行免疫遗传操作,最终得出与用户要求最接近的一张试卷。

图1 算法流程图
2.1 抗体编码
对抗体采用题号整数编码方法[3],在每个抗体中按题型分组,抗体中每个基因为一整数,代表题库中试题号。

这样每个抗体就为一个整数数组,如表 1所示。

抗体种群中共有 n个整数数组。

以题号进行整数编码方法所表达的变量意义清楚、明确、不
需解码,算法得到的解就是组卷所求试题,不存在编码变换而导致的优化搜索空间增大,从而降低算法性能的问题。

表1 抗体整数编码判断题单选题多选题......抗体1 10 75 68 120...... 55 42 213 221......412 546 101 110............抗体2 20 77 64 115...... 45 44 321 221 (444)
555 119 112…………
2.2 抗体促进与抑制
抗体促进与抑制操作包含以下两部分功能:
1)记忆优秀抗体
在为了保证群体多样性同时加速算法向最优解收敛,本系统中,迭代过程中产生的优
秀抗体会被记录到新的一代种群中。

具体做法为:
式中,表示t+1代中的最差个体,表示t代中最优个体,上述公式表示:若发现t+1代
中最优抗体没有t代中的最优抗体优秀,则将t+1代中的最差抗体由t代的最优个
体替代。

2)抗体选择
遗传算法中选择操作只以适应度f(x)为基础,f(x)代表个体x和解的接近程度,因此适应度优的个体被选择的概率大。

而免疫遗传算法在实现抗体选择时,每个抗体被选择的概率即考虑了遗传算法中抗体的适应度,也考虑了抗体在种群中的重复程度(即浓度)。

综合考虑这两个指标,本文采用下式作为抗体x被选择的概率:
其中,f(x)为抗体x的适应度,Pf(x)表示抗体x的适应度概率;C (x)为抗体x在种群中的浓度,0<w<1为相应的权值。

(1)适应度概率计算适应度概率表示抗体适应度在种群抗体适应度中占的比例,由式(1)得到的抗体适应度f(x)即为组卷问题的目标函数。

对于N个抗体的种群中抗体适应度概率计算公式为:
(2)浓度计算为了计算抗体浓度概率引入信息熵的概念[5,6],抗体浓度表示种群中和它相同或相似的抗体在种群中占的比例,由抗体平均信息熵的方法计算得出。

假设,有 N个抗体,每个抗体中基因个数为M,等位基因数为S,则N个抗体的平均信息熵为:
式中,pij为N个抗体(试卷)中,第j位为基因(试题)ki的概率,可表示为:
Pij=(第j位基因上出现试题ki的总个数)/N两个抗体(试卷)x、w间可用亲和度来表示其相似程度:
其中,H(2)表示x,w间的信息熵,得出的亲和度值越大,表示两个抗体(试卷)越相似。

由此得抗体浓度计算公式为:
其中,当Axw>T时(T为一预先给定的阈值),Bxw=1,否则Bxw =0。

由此可见抗体(试卷)浓度是由种群中和抗体(试卷)x具有很大相似度的抗体(试卷)个数表示出。

可以看到,计算出的抗体选择概率P(x)既与抗体的适应度有关,又与该抗体的浓度有关。

通过引入抗体浓度控制机制,浓度高的抗体被抑制,浓度低的抗体被促进,以此来避免种群被同种抗体所垄断,保证抗体种类的多样性。

得出每个抗体选择概率后,采用轮盘赌方式完成选择操作,为后续的遗传、免疫运算提供父代。

2.3 接种疫苗与免疫检测
1)接种疫苗
对于抗体,接种疫苗就是按照先验知识来修改其某些基因位上的基因,让该基因修改后能促进抗体更接近目标解。

假设种群{x1,x2,…,xN},其中xi为一个抗体(即一张试卷),对种群做接种疫苗操作步骤为:
(1)是按比例a(0<a<1)随机选择a×N个不重复的抗体(试卷)。

(2)针对选择出的每个抗体(试卷),设其中有M个基因(题目),随机选择R个基因(题目)进行接种(0<R<M)。

其中对基因(题目)k的接种操作具体流程为:
◦ 在题库中选出V个基因(题目)集合Q={x′1,x′2,…, x′V},Q中试题的题型和待接种基因 k的题型相同。

Q中试题的知识点也和待接种基因k的知识点相同。

即集合Q是依据基因 k的题型、知识点属性来从题库中选择出的。

◦ 从Q中选出x′j和k做替换,其中x′j的难度属性是Q中最接近用户指定的难度约束且暴光度属性相对较低。

这样保证了被接种抗体的题型、知识点条件约束不被破坏,有益于保持种群稳定性,同时也满足试卷结构。

2)免疫检测
一个抗体疫苗接种完成后,随即对其进行免疫检测操作。

若发现抗体适应度仍不如
父代,说明在交叉、变异、接种过程中出现了退化,这时该抗体将被父代中对应的抗
体替代,否则保留产生的新抗体。

3 程序实验效果
程序在VS2008中C#平台下,结合MS-SQL Server实现了核心的智能组卷功能,并选取《大学计算机基础》课程题库(860道题),进行了遗传算法(GA)和免疫遗传算
法(IGA)的对比测试。

在实现智能组卷时,用户需要指定题型数量,各题型下考查的各个知识点包含的题目数量,以及试卷总分,总题量,种群大小等,程序界面如图2所示。

图2 程序运行界面
为了加快收敛速度和提高抗体的适应性,程序在生成初始种群时,按照用户指定的题型、知识点要求进行了限制。

对两种算法进行多次组卷对比实验,指定不同迭代次
数进行多次实验,取每次实验得出解的适应度值(即每次组卷中得到的最优解的适应度)作比较结果由如表2所示。

表2实验次数 1 2 3 4 5 6 7 8 9 IGA最小适应度值 0.272 0.259 0.241 0.23
0.229 0.226 0.22 0.219 0.216 GA最小适应度值 0.319 0.319 0.319 0.31 0.31 0.31 0.291 0.291 0.291迭代次数 20 40 60 80 100 120 140 160 180
从实验结果看出,免疫遗传算法体现出了良好的收敛性,而对于遗传算法,在多次实验时都出现了陷入局部收敛的情况。

图 3为一次迭代次数为 180次的实验中,两种算法的对比数据。

图3 迭代次数为180的一次实验数据图
从图 3中可以看出,遗传算法在组卷过程中陷入了局部收敛,由于没有引入免疫机制,GA丢失了最优抗体(如初始种群中的最优抗体)。

另外,通过监测程序运行过程发现,GA在 80代后种群里就产生大量相同抗体,严重破坏了抗体多样性,造成算法的
局部收敛。

4 结束语
本文针对智能组卷问题中多约束条件的困难,设计了免疫遗传算法进行求解,在抗体选择中引入了基于信息熵的抗体浓度判别机制,并借助VS2008中C#平台和MSSQLSERVER2000,实现了基于IGA的智能组卷系统,通过测试表明该系统快速有效,目前已投入实际应用。

参考文献
[1]应继儒,胡立新.试题库随机选题数学模型及实现[J].计算机应用,2000,20(1):46-47.
[2]懂聪.广义大自然算法[J].大自然探索,1998,17(1):33 37.
[3]肖成林,徐清振.基于遗传算法的成卷策略的设计与实现[J].现代计算机,2003,8:39 41.
[4]葛红.免疫算法与遗传算法比较[J].暨南大学学报:自然科学版, 2003,24(1):22 25.
[5]葛红,毛宗源.免疫算法的实现[J].计算机工程,2003,29(5):62 -63.
[6]夏芸,刘锋.基于免疫遗传算法的软件测试数据自动生成[J].计算机应
用,2008,28(3):723-725.。

相关文档
最新文档