改进遗传算法在自动组卷中应用.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
改进遗传算法在自动组卷中应用

改进遗传算法在自动组卷中应用   摘 要:针对传统遗传算法在种群编码方案、初始种群生成、动态概率、多点交叉操作等方面做了一些改进,改进后的算法明显提高了组卷的成功率和收敛速度,取得了满意的组卷效果。??   关键词:遗传算法;自动组卷;适应度;约束??   中图分类号:TP312 文献标识码:A 文章编号:1672-7800(2011)011-0074-02?お?   ??   作者简介:樊光辉(1973- ),男,陕西铜川人,江南大学物联网工程学院硕士研究生,无锡科技职业学院讲师,研究方向为软件工程;韩宝强(1990-),男,江苏连云港人,江南大学物联网工程学院学生,研究方向为软件工程。         0 引言??   随着网络技术的发展,在线考试模式日趋成熟,计算机自动组卷成为一个热点问题。如何快速生成最大程度满足用户的不同需要,并具有随机性、科学性、合理性,这涉及到一个在题库中寻优和收敛速度的问题。??   遗传算法是模拟达尔文的遗传选择和自然淘汰的生物进化过程的计算模型,是一种通过模拟自然进化过程搜索最优解的方法,它是用来解决多约束条件下的最优问题。遗传算法提供了一种求解复杂系统优化问题的通用框架。它不依赖于问题的具体领域,对问题的种类有很强的鲁棒性,所以广泛应用于很多学科。??   1 遗传算法的基本操作 ??   遗传算法有3个基本操作:选择操作、交叉操作、变异操作。这些操作又有各不相同的方法来实现。??   (1)选择操作。选择的目的是把优化的个体直接遗传到下一代或通过配对交叉产生新的个体再遗传到下一代。选择过程的第一步是计算适应度,个体选择概率的常用计算方法有:按比例的适应度计算,基于排序的适应度计算。适应度计算之后是进行选择操作,按照适应度进行父代个体的选择。可以选择的算法有:轮盘赌选择、随机遍历抽样、锦标赛选择、截断选择、局部选择。??   (2)交叉操作。交叉是把两个父个体的部分结构加以替换重组而生成新个体的操作。根据个体编码的表示方法不同,可以分为实值重组和二进制交叉,实值重组有:离散重组、中间重组、线性重组、扩展线性重组;二进制交叉有:单点交叉、多点交叉、均匀交叉、洗牌交叉、缩小代理交叉。??   (3)变异操作。变异是对群体中的个体串的某些基因座上的基因值作变动。实际上是子代基因按小概率扰动产生的变化。根据个体编码的表示方法不同,可以有以下的算法:实值变异、二进制变异。??   2 自动组卷的算法实现??   一份质量好的试卷,应该是在知识点分布、题型分布、认知分类分布、难度分布、区分度分布、分数分布、时间分布等试卷指标之间的极大平衡。由此可见,自动组卷问题是一个具有多重约束的组合优化问题。??   传统的遗传算法可以从很差的个体逐渐搜索到较好的个体,对领域知识的要求也很少,是一种通用的有效的方法,但它存在搜索后期效率低和易形成末成熟收敛的情况。为提高遗传操作在组卷算法中的搜索能力,本系统从“种群编码方案、初始种群生成、动态概率、多点交叉操作”等方面对其加以改进,使其功能更为强大,效果更好。具体解决方案如下。??   2.1 染色体编码及初始群体的设计??   在传统的遗传算法中采用二进制编码,假设题库里有N道题,从N道题中选出满足约束条件的试题生成试卷,可用长为N的二进制字串来表示,1表示该题选中,0表示该题未被选中。这样就形成了染色体编码,但这样的二进制位串较长,且在进行交叉和变异遗传算子操作时,各种题型的题目数量不好控制,算法对不同问题的适应性较差、寻优过程易陷入局部最优而出现早熟收敛。为克服二进制编码的缺点,采用实数编码方案,将一份试卷映射为一个染色体,组成该试卷的每道题的题号作为基因,基因的值直接用试题号表示,每种题型的题号放在一起,按题型分段,在后面的遗传算子操作中也按段操作,这样保证了各题型的题目数不变。例如,要生成一份《.NET程序设计》试卷,其中单项选择题10道,多项选择题5道,程序填空题6道,编程题2道,则染色体编码是:??   (10、63、13、12、19、84、8、25、2、45|7、36、43、1、23|31、95、48、52、99、14|68、74)??   单项选择题 多项选择题 程序填空题 编程题??   为了使遗传算法更快地到达最优解,试卷初始种群的生成是根据总题数、题型比例、总分等指标的要求随机产生,使得初始种群一开始就满足了题数、总分等指标的要求。采用分段实数编码,既可以克服以往采用二进制编码搜索空间过大和编码长度过长的缺点,又取消了个体的解码时间,提高了求解速度。??   2.2 适应度函数的设计??   遗传算法在进化搜索中基本不利用外部信息,仅以适应度函数为依据,以种群中每个个体的适应值大小来区分个体

文档评论(0)

317960162 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档