菜单
  

    2.1.2  遗传算法的基本操作步骤源]自{751·~论\文}网·www.751com.cn/

    (1)初始化操作:设置一个初始值,该值表示最多允许遗传繁殖多少代,如果超过这个值,就认为遗传算法是失效的。

    (2)计算适应度(AdaptionDegree)操作: 我们先建立一个遗传算法的模型,模型的重点就是适应度公式的推导,有了这个公式后,我们就利用公式指导遗传方向

    (3)选择操作:选择操作说的通俗一点,就是在一大堆种群个体里面选出指定数量的个体,由于种群个体的数量可能会很多,考虑到计算的复杂度,我们不会让所有的个体都参与选择,我们只能选择部分个体,当然,这部分个体可以随机选择出来,也可以设定自己的优化算法有目的去选择,这样选择出来的种群一开始就具备优化的“基因”。通常的用的选择算法是轮盘赌选择算法。

    (4)交叉操作:说的通俗一点,交叉操作就是“父亲”和“母亲”的基因进行交叉,因此产生的基因肯定带有父代的信息。

    (5)变异操作:在进化论里面,变异是指部分基因小概率的变化,遗传算法的变异操作也一样,它是指新生代的部分基因发生变化,当然这种变化的概率是很小的,不过正是因为这种变异,才有了种群的多样性,你总不希望世界上有很多人长的像你吧。

    2.2  遗传算法在自动组卷系统中的应用设计

    自动组卷是出卷者给出一些约束条件,比如试卷的难度系数、试卷的总分、题目总量、题型比例、知识点覆盖率,然后根据这些约束条件,从题库里面搜索出符合要求的题目,它的本质上是一个有多重约束的组合问题,因此适合用遗传算法来解决。

    在掌握了传统的遗传算法后,我们会发现它一般搜索后期效率低。因此,我对遗传算法做了优化,初始种群时也是要满足一定的约束条件,并非随机初始,在种群个体交叉后多加入一次判断适应度的过程,还有其他细节的优化,这些优化都能帮助遗传算法快速向最优解迭代,避免了陷入局部解的困局。具体优化方案如下。

    染色体编码和初始群体的设计:遗传算法最关键的步骤之一就是建模——将问题的解空间映射成一组字符代码串是建模的关键过程。传统的遗传算法一般采用二进制编码,但是这样解空间太大,不容易搜索,效率也不高。因此还是实数编码更优,具体操作为:将一份试卷映射为一个染色体,把每道题目的题号作为基因,如下所示:

    (2、16、2 | 29、33、36、39  | 63、47、234 | 42、58、55  |  88、96、56)

       判断题    填空题             单选题        多选题         问答题

    初始种群时也是要有条件的产生,比如一开始就必须强制满足总分、难度比、知识点覆盖率等等要求,如果一开始都满足不了,以后肯定也不会生产出符合约束条件的试卷。这就正如父亲和父亲都是A型血,他们肯定是生不出B型血的孩子的道理一样。

    设计适应度函数:在遗传算法中,有两点最重要,一是模型的建立,如何将解空间映射为字符串,二是适应度函数的设计。适应度函数就像是一个指明灯,就是引导遗传算法的“光明方向”。话不多说,我们先看看在自动组卷系统中怎么样设计适应度函数的:

    f=1-(1-M/N)*f1-|EP-P|*f2

    参数说明:f1为知识点分布的权重,f2为难度系数所占权重。当f1=0时,其含义表示不关注知识点的分布,当f2=0时其含义表示不关注难度系数。M/N的含义是代表知识点覆盖率,|EP-P|的含义是代表实际难度系数与期望难度系数的差距。

  1. 上一篇:java网上手机彩铃商店
  2. 下一篇:Android手机RSS阅读器的设计
  1. 基于MATLAB的图像增强算法设计

  2. 基于Kinect的手势跟踪与识别算法设计

  3. JAVA基于安卓平台的医疗护工管理系统设计

  4. 基于核独立元分析的非线...

  5. 基于Hadoop的制造过程大数据存储平台构建

  6. 基于安卓系统的测量软件...

  7. 基于VC++的GIS矢量图形系统开发

  8. java+mysql车辆管理系统的设计+源代码

  9. 中考体育项目与体育教学合理结合的研究

  10. 杂拟谷盗体内共生菌沃尔...

  11. 河岸冲刷和泥沙淤积的监测国内外研究现状

  12. 十二层带中心支撑钢结构...

  13. 乳业同业并购式全产业链...

  14. 酸性水汽提装置总汽提塔设计+CAD图纸

  15. 当代大学生慈善意识研究+文献综述

  16. 大众媒体对公共政策制定的影响

  17. 电站锅炉暖风器设计任务书

  

About

751论文网手机版...

主页:http://www.751com.cn

关闭返回