三种常用智能组卷算法剖析一、 随机组卷算法随机选取法根据状态空间的控制指标, 由计算机随机的抽取 一 道试题放入试题库,此过程不断重复,直到组卷完毕,或已无 法从题 库中抽取满足控制指标的试题为止 该方法结构简单, 对 于单道题 的抽取运行速度较快, 但是对于整个组卷过程来说组卷 成功率低,即 使组卷成功,花费时间也令人难以忍受尤其是当 题库中各状态类型 平均出题量较低时,组卷往往以失败而告终实现随机组题必须保证所随机产生的数据不能重复因此, 在开发系统时一般利用 SQL 语句实现随机的算法及其产生的优 化随机 算法采用SQL语句中NewID0可以解决好每抽一道题 进行一次循环 判断,而且提高运行中大量的资源空间利用率,运行速度较高,NewID ()语句是使数据库中的数据信息随机排序, 然后按一定的题数,从数 据库中读取试题用 SQL 语句随机访问则不需要循环判断, 它只是在数据库中 的表中数据随机重排后读取,因此速度相对很快但用 SQL 语句 则不 能灵活地对多个表联合随机读取,而用 VC 语言则可以实现不同表的数据读取因此,采取用 SQL 语句和 VC 语句混合编程 算法 则可以大大提高执行速度,并满足灵活性的需要。
二、回溯组卷算法 对于具有完备约束集 D 的一般问题 P 及其相应 的状态空间树T,利用T的层次结构和D的完备性,在T中搜索问题P的所有 解的回 溯法可以形象地描述为:从 T 的根出发, 按深度优先的策略, 系统地搜索以其为根的 子 树中可能包含着回答结点的所有状态结点, 而跳过对肯定不含 回答结 点的所有子树的搜索,以提高搜索效率具体地说,当搜 索按深度优 先策略到达一个满足 D 中所有有关约束的状态结点 时,即“激活”该 状态结点,以便继续往深层搜索;否则跳过对 以该状态结点为根的子 树的搜索,而一边逐层地向该状态结点的 祖先结点回溯,一边“杀死” 其儿子结点已被搜索遍的祖先结 点,直到遇到其儿子结点未被搜索遍 的祖先结点, 即转向其未被 搜索的一个儿子结点继续搜索在搜索过程中, 只要所激活的状态结点又满足终结条件, 那 么 它就是回答结点, 应该把它输出或保存由于在回溯法求解问 题时, 一般要求出问题的所有解,因此在得到回答结点后,同时 也要进行回 溯,以便得到问题的其他解, 直至回溯到 T 的根且根 的所有儿子结点 均已被搜索过为止在用回溯法求解问题, 也即在遍历状态空间树的过程中, 如 果 采用非递归方法,则我们一般要用到栈的数据结构。
这时,不 仅可以 用栈来表示正在遍历的树的结点, 而且可以很方便地表示 建立孩子结 点和回溯过程回溯试探法是将随机选取法产生的每一状态类型记录下来, 当搜 索失败时释放上次记录的状态类型, 然后再依据一定的规律 (正是这种规律破坏了选取试题的随机性) 变换一种新的状态类 型进 行试探, 通过不断的回溯试探直到试卷生成完毕或退回出发 点为止, 这种有条件的深度优先算法, 对于状态类型和出题量都 较少的题库系 统而言, 组卷成功率较好, 但是在实际应用时发现 这种算法对内存 的占用量很大, 程序结构相对比较复杂, 而且选 取试题缺乏随机性, 组卷时间长,后两点是用户无法接受的三、遗传组卷算法 遗传算法是一种并行的、能够有效优化的算法, 以 Morgan 的基因理论及 Eldridge 与 Gould 间断平衡理论为依据, 同时融 合了 Mayr 的边缘物种形成理论和 Bertalanffv 一般系统理论 的 一些思想,模拟达尔文的自然界遗传学:继承(基因遗传)、进 化 (基因突变)优胜劣汰(优的基因大量被遗传复制,劣的基因 较少被 遗传复制)其实质就是一种把自然界有机体的优胜劣汰 的自然选择、 适者生存的进化机制与同一群体中个体与个体间的 随机信息交换机制 相结合的搜索算法。
运用遗传算法求解问题首 先需将所要求解的问题 表示成二进制编码,然后根据环境进行基 本的操作:selection , crossover , mutation 这样进行不断的所谓“生存选择”,最后收敛到一个最适应环境条件的个体 上,得 到问题的最优解 , 其主要步骤如下:第一步:编码:GA在进行搜索之前先将解空间的解数据表示成遗 传空间的基因型串结构数据, 这些串结构数据的不同组合 便构成了不 同的点第二步:初始群体的生成:随机产生 N 个初始串结构数据, 每个串结构数据称为一个个体, N 个个体构成了一个群体 GA 以这 N 个串结构数据作为初始点开始迭代第三步: 适应性值评估检测: 适应性函数表明个体或解的优 劣 性不同的问题,适应性函数的定义方式也不同第四步:选择:选择的目的是为了从当前群体中选出优良的 个体, 使它们有机会作为父代为下一代繁殖子孙 遗传算法通过 选择过程体 现这一思想, 进行选择的原则是适应性强的个体为下 一代贡献一个或 多个后代的概率大 选择实现了达尔文的适者生 存原则第五步:交换:交换操作是遗传算法中最主要的遗传操作 通过 交换操作可以得到新一代个体, 新个体组合了其父辈个体的 特性。
交 换体现了信息交换的思想第六步:变异:变异首先在群体中随机选择一个个体,对于 选中 的个体以一定的概率随机地改变串结构数据中某个串的值 同生物界 一样,GA中变异发生的概率很低,通常取值在0.001~0.01之间变 异为新个体的产生提供了机会综上所综 , 随机组卷算法对于纯单道题的抽取运行速度较 快, 能很好地控制试卷中试题难度的分布情况; 回溯算法对于状 态类型和 出题量都较少的题库系统而言, 组卷成功率较好, 遗传 组卷算法与 前两种相比, 具有良好收敛性、 极高鲁棒性和广泛适 用性的优化方 法, 一般来说, 用户在自动组卷时会对试卷的质量 提出多方面的要 求,如总题量、平均难度、题型比例、章节比例、 重点章节比例、知 识点的交叉与综合等,自动组卷就应最大程度 的满足用户的要求,适 应性更强,效率更高,效果更好。