试题库平台的设计与实现本科毕业论文_第1页
试题库平台的设计与实现本科毕业论文_第2页
试题库平台的设计与实现本科毕业论文_第3页
试题库平台的设计与实现本科毕业论文_第4页
试题库平台的设计与实现本科毕业论文_第5页
已阅读5页,还剩37页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

.3.2试卷参数分析模块在生成试卷之前先要进行参数分析,参数分析主要包括以下几个方面:(1)分析章节中的题数分配,并按不同题型依次检查该题型的章节题量分配是否有效;(2)小题数通过检验,统计各类难度试题数量,按不同难度等级分别检查题量分配是否合理[13]。部分核心代码(以选择题为例,难度以难为例):(1)检查单选题题量分配是否有效objRsSingle.Filter=strFilterIfobjRsSingle.RecordCount<Int(cmbChapter(i).ItemData(j))*_txtCount(i)/100)ThenMsgBox"<"&News(i)&"><"&objRsChapter!名称&">中只有<"_&objRsSingle.RecordCount&">道试题,小题百分比最多<"_&Int(objRsSingle.RecordCount/Val(txtCount(i))*100)_&">",vbCriticalcmbChapter(i).ListIndex=jEndIf(2)小题数通过检验,统计各类难度试题数量Fork=0To4objRsSingle.Filter=strFilter&"and难度="&kChapter(i,k)=Chapter(i,k)+objRsSingle.RecordCountNext(3)按难度检查题量分配是否合理Fori=0To5…………(4)检查难度属于“难”的题题量分配是否有效IfChapter(i,0)<Int(Val(txtCount(i))*txtLevel0(i)/100)ThenMsgBoxNews(i)&"题库中难度属于“难”的题只有<"_&Chapter(i,0)&">道,难度百分比最大可为<"_&Int(Chapter(i,0)/Val(txtCount(i))*100)_&">",vbCriticaltxtLevel0(i).SetFocusExitSubEndIf4.3.3试卷生成模块功能实现试卷生成模块的功能主要是从试题库中的试题中抽取一部分自动生成试卷,并通过VB程序自动调入WORD中排版打印,实现试卷的自动生成。试卷生成的程序功能框图如图4.7所示。试题库VB的ADO调用试题库VB的ADO调用WordApplication使用WORD图4.7试卷生成程序框图试卷高级程序设计语言VB中提供了MicrosoftWord9.0(或10.0)对象库,通过创建和定义WORD.APPLICATION对象,可以实现用VB程序对WORD文档的操作和控制。ADO是一种高层次的,独立于编程语言的,可以访问所有种类企业信息的数据访问接口。VB通过ADO接口可以很方便的与数据库进行数据通信,实现数据的管理和调用。所以,通过ADO数据接口的桥梁作用,利用VB程序可以实现将数据从数据库表到WORD的自动调入,完成试卷的自动生成[11]。4.3.4实现所需步骤实现试卷的自动生成,需经过数据库连接,ADO调用,操控WORD.APPLICATION对象,排版打印等步骤[12]。(1)数据库连接OptionExplicitDimWithEventsdb1AsADODB.ConnectionPrivateConstcn1=“provider=microsoft.jet.oledb.4.0;datasource=”cstring=cn1+App.Path+“\”+“tiku.mdb”Setdb1=NewADODB.Connectiondb1.ConnectionString=cstringdb1.Open(2)ADO调用ADO调用主要利用ADO的RECORDSET或COMMAND对象实现。按试卷编号主键从试题数据表中挑选出对应试卷的试题作为数据源,以备调入WORD.APPLICATION对象使用,以调入选择题为例,代码如下:Setrsdy1=NewADODB.Recordsetssql1=“select*fromzongbiaowherelx=’选择题’”.Setrsdy1.ActiveConnection=dbdyrsdy1.Source=ssql1rsdy1.CursorLocation=adUseClientrsdy1.CursorType=adOpenStaticrsdy1.LockType=adLockOptimisticrsdy1.Open(3)操控WORD.APPLICATION对象通过VB程序操控WORD主要包括定义和建立WORD.APPLICATION对象,向DOCUMENT对象自动填充文档数据等功能,数据自动填充完毕,由用户在当前WORD文档中排版和打印。DimwrdappAsWord.ApplicationDimrngparagraphsAsRangeSetwrdapp=NewWord.ApplicationWrdapp.Documents.OpenFileName:=App.Path+“\”+“dayin.doc”Wrdapp.Visible=TrueSetrngparagraphs=wrdapp.ActiveDocument.Paragraphs(5).RangeRngparagraphs.InsertAfterText:=rs.Fields(“mc”)Rngparagraphs.InsertParagraphAfterdimwrdappasword.applicationsetwrdapp=newword.applicationwrdapp.Documents.openfilename:=App.Path+“\”+“dayin.doc”

5通用组卷要设计一个性能良好的通用试卷生成系统,选择一种好的组卷算法是关键。本章首先介绍组卷算法的发展,接着简单介绍了目前比较常见的几种主要的组卷算法,最后重点论述了基于遗传算法的组卷算法。5.1通用组卷系统的算法5.1.1组卷算法的发展和概述组卷算法或者说选题算法,都是由试题库系统的组卷模型来决定的,不同组卷模型有不同的组卷算法,但相同的组卷模型亦有不同的组卷算法。通过翻阅一些学术文章及在互联网上查找到的资料,可以对当前流行的试题库系统组卷算法作一个总结。自80年代以来,建立计算机试题库系统已经成为CAI的一个重要环节,为实现考试的规范化与科学化提供了有力的工具。众所周知,自动组卷的效率与质量取决于抽题算法的设计。而如何保证生成的试卷能最大程度的满足用户的不同需要,并具有随机性、科学性、合理性,这是实现中的一个难点。因此,选择一个高效、科学、合理的算法是自动组卷的关键。如何设计一个算法能从题库中既快又好地抽出一组最符合考方要求的试题,涉及到一个全局寻优和收敛速度快慢的问题,很多学者对其进行了研究。目前在试题库系统中主要存在4种组卷方式:一是人工组卷,这种方式速度太慢,质量低,当试题库题量大时,这种方式非常不合适;二是随机选取组卷,这是试题库系统普遍使用的方法,这种方法要求控制试题库的参数比较集中,对试卷的适用等级范围限制较大;三是智能组卷,这方法建库比较困难,要相应建立专家系统和推理机制,缺乏通用性;四是优化目标组卷,这是根据考试要求,命题时从试题库中选取一组满足试卷参数的试题构成试卷。现在最流行的且最多系统采用的是随机选题的组卷算法,这是因为很多试题库系统都是针对专门的科目而设计,这些试题库系统的题库结构相对简单,题量不大,因此不用设计复杂的算法来组卷。例如一些题库系统它只有单选和多选题,且考试范围小,因此采用随机选题算法,这种算法虽然简单,但成卷效果一般很难令人满意,因为用户的期望没有被算法考虑[14]。也有一些试题库系统采用了一些比较好的算法,它们都是建立在一个好的组卷模型基础上。如考虑了用户对试卷期望及试卷中各项参数的专家分布曲线,又如松弛法,前移法和随机抽取法等。选题选题修正模式结束否是图5.1随机选取法的基本流程图分析上述算法,特别是随机选取法和回溯试探法算法的优缺点,不难发现,在限制条件状态空间的控制下,随机选取法有时能够抽取出一组令用户满意的试题。但是由于它随机选取的范围太大,无法确定目前条件下哪些区域能够抽取合适的试题,反而可能在那些已经证明是无法抽取合适试题的区域内反复选题,进行大量的无效操作进入死循环,最终导致组卷失败。回溯试探法组卷成功率高,但它是以牺牲大量的时间为代价的,对于现今越来越流行的考生网上随机即时调题的考试过程来说,它已不符合要求。另外,数据发掘和知识发现作为一门新兴的技术虽然已开始用在组卷系统中,但是对它的研究目前都还停留在理论上,缺乏成熟的技术和理论。因此,必须结合以上几种方法寻找一种新的改进算法,这种算法要具有全局寻优和智能搜索技术,并且收敛速度快特点。遗传算法以其具有自适应全局寻优和智能搜索技术,并且收敛性好的特性能很好地满足自动组卷的要求。所以,它们虽然都能最终组出试卷,但是在实际的操作过程中,却发现它们不是耗费的时间很大就是容易进入死循环。计算机辅助考试系统的自动组卷的效率与质量完全取决于抽题算法的设计,如何设计一个算法从题库中既快又好的抽出一组最佳解或是抽出一组非常接近最佳解的实体,涉及到一个全局寻优和收敛速度快慢的的问题,很多学者对其进行了研究。遗传算法以其自适应寻优及良好的智能搜索技术,受到了广泛的运用。PottsJC等人基于变异和人工选择的遗传算法对最优群体规模进行了论述;HamiltonMA等结合遗传算法把其运用到神经网络中,并取得了良好的效果。也有众多的学者对保留最佳状态的遗传算法的收敛速度做了讨论。通过理论推导和事实运用,发现遗传算法在寻优和收敛性方面都是非常有效的。本文结合遗传算法的原理和思想,对考试自动出题组卷的问题进行了研究,找到了一种获得与考试试题控制指标符合的试题模型的解决方法。5.1.2遗传算法基本知识遗传算法GA(GeneticAlgorithm)是一种新型的、模拟自然界生物进化过程的随机化搜索、优化方法。它是模拟达尔文的遗传选择和自然淘汰的生物进化过程的计算模型,是由美国Michigan大学的JohnH.Holland教授于1975年首先提出的。它采用简单的编码技术来表示各种复杂的结构,并通过对一组编码表示进行简单的遗传操作和优胜劣汰的自然选择来指导学习和确定搜索的方向。由于它采用种群的方式组织搜索,这使得它可以同时搜索解空间内的多个区域。而且用种群组织搜索方式使得遗传算法特别适合大规模并行。在赋予遗传算法自组织、自适应、自学习等特征的同时,优胜劣汰的自然选择和简单的遗传操作使遗传算法具有不受其搜索空间限制性条件(如可微、连续、单峰等)的约束、不需要其它辅助信息(如导数)、搜索过程不易陷入局部最优点的特点。这些崭新的特点使得遗传算法不仅能获得较高的效率而且具有简单、易于操作和通用的特性。目前,该算法已渗透到许多领域,并成为解决各领域复杂问题的有力工具。遗传算法是具有“生成+检测”(generate-and-test)的迭代过程的搜索算法。在遗传算法中,将问题空间中的决策变量通过一定编码方法表示成遗传空间中的一个个体,它是一个基因型串结构数据。同时,将目标函数值转换成适应值,它用来评价个体的优劣,并作为遗传操作的依据。遗传操作包括三个算子:选择、交叉和变异。选择用来实施适者生存的原则,即把当前群体中的个体按与适应值成比例的概率复制到新的群体中,构成交配池(当前代与下一代之间的中间群体)。选择算子的作用效果是提高了群体的平均适应值。由于选择算子没有产生新个体,所以群体中最好个体的适应值不会因选择操作而有所改进。交叉算子首先将交配池中的个体随机配对,然后将两两配对的个体按某种方式相互交换部分基因。交叉算子是产生新个体的主要方法,它决定了遗传算法的全局搜索能力。变异是对个体的某一个或某一些基因值按某一较小概率进行改变。变异算子是产生新个体的辅助方法。交叉和变异相配合,共同完成对搜索空间的全局搜索。遗传算法是一种群体型操作,该操作以群体中的所有个体为对象,选择、交叉和变异构成的遗传操作,使遗传算法有了其它传统方法所没有的特征。遗传操作的设计与参数编码、初始群体的生成、适应度函数的设计、控制参数设定一起构成了遗传算法的核心内容,一般将它们称之为遗传算法的五大要素[15]。遗传算法的基本步骤如下:(1)在一定编码方案下,随机产生一个初始种群;(2)用相应的编码方法,将编码后的个体转换成问题空间的决策变量,并求得个体的适应值;(3)按照个体适应值的大小,从种群中选出适应值较大的个体构成交配池;(4)由交叉和变异这两个遗传算子对交配池中的个体进行操作,并形成新一代的种群;(5)反复执行步骤(2)—(4),直至满足收敛判据为止。遗传算法的基本处理流程如图5.2所示。群体中个体适应度的检测群体中个体适应度的检测满足终止条件?满足终止条件?是是否否选择选择交叉交叉变异变异输出结果输出结果图5.2遗传算法的基本流程使用遗传算法需要决定的运行参数有:编码串长度、种群大小、交叉和变异概率。编码串长度由优化问题所要求的求解精度决定。种群大小表示种群中所含个体的数量,种群较小时,可提高遗传算法的运算速度,但却降低了群体的多样性,可能找不出最优解;种群较大时,又会增加计算量,使遗传算法的运行效率降低。一般取种群数目为20-100。交叉概率控制着交叉操作的频率,由于交叉操作是遗传算法中产生新个体的主要方法,所以交叉概率通常应取较大值;但若过大的话,又可能破坏群体的优良模式。一般取0.4-0.99。变异概率也是影响新个体产生的一个因素,变异概率小,产生新个体少;变异概率太大,又会使遗传算法变成随机搜索。一般取变异概率为0.0001-0.1。遗传算法常采用的收敛判据有:规定遗传代数;得到的最优个体已满足搜索要求;连续几次得到的最优个体的适应值没有变化或变化很小等[16]。图5.2遗传算法的基本流程5.1.3遗传算法设计的基本步骤在应用遗传算法求解问题时,需要确定并尽可能地改进算法,以获得更可靠、高效的解,我们称这个过程为算法设计。算法设计应在适用性、可靠性、收敛性、稳定性以及生物类比等原则下对遗传算法的编码表示、适应性度量方法、选择策略、算子设计、控制参数选择及其他改进措施进行设计和改进。设计时一般可以按以下基本步骤进行:(1)确定编码方案:遗传算法求解问题不是直接作用在问题的解空间上,而是利用解的某种编码表示。选择何种编码表示有时将对算法的性能、效率等产生很大的影响。(2)确定适应函数:适应值是对解的质量的一种度量,它通常依赖于解的行为与环境(即种群)的关系。一般以目标函数或费用函数的形式来表示。解的适应值是演化过程中进行选择的唯一依据。(3)选择策略的确定:优胜劣汰的选择机制使得适应值大的解有较高的存活概率,这是遗传算法与一般搜索算法的主要区别之一。不同的选择策略对算法的性能也有较大的影响。(4)控制参数的选取:控制参数主要包括种群的规模、算法执行的最大代数、执行不同遗传操作的概率以及其它一些辅助性控制参数。(5)遗传算子的设计:主要包括选择、交叉、变异以及其它高级操作的设计。(6)确定算法的终止准则:由于遗传算法没有利用目标函数的梯度等信息,所以在演化过程中,无法确定个体在解空间的位置。从而无法用传统的方法来判定算法的收敛与否以终止算法。常用的办法是预先规定一个最大的演化代数或算法在连续多少代以后解的适应值没有什么明显的改进时,即终止。(7)编程上机运行:完成上述工作以后,即可以按照演化计算的算法结构编程去进行问题求解。上述各基本步骤是密切相关的,编码方案与遗传算子的设计等应是同步考虑的[17]。5.1.4遗传算法应用于组卷系统的优势作为一种优化与搜索算法,遗传算法相比于其它算法应用于组卷系统所具有的优势在于:(1)遗传算法的操作对象是一组可行解,而非单个可行解,搜索轨道有多条,而非单条,因而具有良好的并行性。(2)遗传算法只需利用目标的取值信息,而无需梯度等高价值信息,因而适用于任何大规模、高度非线性的不连续多峰函数的优化以及解析式的目标函数的优化,具有很强的通用性。(3)遗传算法择优机制是一种“软”选择,加上其良好的并行性,使它具有良好的全局优化性和稳健性。(4)遗传算法操作的可行解是经过编码化的,目标函数解释为编码化个体的适应值,因而具有良好的可操作性与简单性。(5)遗传算法易于和别的技术(如神经网络、模糊推理、混沌行为和人工生命等)相结合,形成性能更优的问题求解方法。正是由于遗传算法的诸多优点,很多学者把其应用到组卷系统的研究中,如D.B.Fogeol在神经网络的进化学习方法的研究中首次提出把遗传算法用于试题组卷,GordbergM.W应用遗传算法的寻优特性为组卷问题建立了寻优模型等。国内的遗传算法发展较晚,但也已有将其用于组卷之中的,文献[17],[18],[19]都研究了遗传算法在组卷问题的应用。5.2基于遗传算法的组卷方法本文设计了一种新的适用于组卷问题的遗传算法。实验结果表明:所设计的组卷方法性能好、效率高,又能很好地避免同一试卷中同一道试题的重复出现,是一种实用有效的组卷方法。5.2.1智能组卷模型组卷系统最基本的目的是根据用户的要求,组出一份符合要求的、高质量的试卷。所以首先要做的事便是获取用户的组卷要求。一般而言,要出一份试卷,我们总是先确定考试时间ZSJ、试卷的满分值MFZ和所用的题型以及各种题型的题目数和分数,而且对一种考试而言,这种题型—分数分布曲线LT常保持相对稳定,如自学考试、英语等级考试、各种职称考试等都是这样。例如,计算机等级考试一级笔试试卷包括判断题、单选题、多选题、填空题四种题型,其题型—分数分布曲线LT:(10,30,20,40),各题型分数允许的误差为0。然后获取难度—分数分布曲线LD、内容—分数分布曲线LC、教学要求度—分数分布曲线LR及其各自允许的误差。曲线LC,LR及其允许的误差均由用户给出,或者采用系统的默认曲线(根据各课程的教学大纲给出的)。曲线LD在很大程度上决定了考试成绩的分布,是很重要的一条曲线,高等数学试题库系统MATBAS中,将它称为中心曲线,系统的默认曲线不一定满足用户要求,但是要用户用难度分布曲线LD来表示对试卷的难度要求又比较困难,为此,我们考虑能否找到或建立一个数学模型,在组卷时,只要求用户输入期望的平均分p,由系统计算得到难度分布曲线Ldo。文献[20]给出了一种用正态分布方式计算难度分布曲线LD的模型,我们利用该模型进行了测试,试题难度采用五级分档,试卷满分值为100,期望的平均分为75时,用该模型计算得到的曲线LD为:{0,63,7,0,0},我们认为这样的难度曲线是不理想的,试题过分集中在第一、二档难度,而第四、五档难度的题都没有,试卷的区分度必然较小。我采用离散型随机变量的二项分布函数B(n,p)建立了一个由试卷的期望平均分P计算难度分布曲线LD的模型。离散型随机变量的二项分布函数B(n,p):(5-1)其中k=0,1,2,…,n,n为正整数,p>0,q>0,p+q=1。令q=期望的平均分P/满分值MFZ(即用q表示期望的平均得分率,也就是试卷的平均难度系数),p=1-q,n=v+1(其中v为难度级别数,即若试题难度采用五级分档,就取n=6),代入公式5-1,求得P(k),k=0,1,2,…,n,因为一般而言q>0.6,所以P(n),P(n-1)通常很小,可以将它们加到P(n-2)上,将处理后得到的P(k)(k=0,1,2,…,n)作为难度级别为k+l的分数比例,再将它们乘以满分值,便得到难度曲线LD。下面举例说明:试题难度采用五级分档,即难度级别为1(易)、2(较易)、3(中等)、4(较难)、5(难),试卷满分值为100,期望平均分为76时,q=0.76,p=0.24,由公式5-1得到:由于P(5)和P(6)相对很小,可以根据情况略去或加到P(4)中,P(0),P(1),P(2),P(3),P(4)即是难度级别为1,2,3,4,5的题在试卷中所占的分数比例,将它们乘以满分值100,便得到难度分数分布曲线LD:{19,37,29,12,31},得到的曲线分布合理,与专家给出的曲线相似。我们用此模型进行了很多测试,结果表明,它是非常有效的。例如:对满分为100分的试卷,期望平均分为80时,得到的难度分数分布曲线LD为:{26,39,25,8,2},期望平均分为70时,得到的难度分数分布曲线LD为:{12,30,32,19,7},这些曲线都与专家给出的曲线极为相似。组卷中决定一道试题,也就是决定一个包含有题号、题型、难度、知识点、教学要求度、建议分值的六维向量(a1,a2,a3,a4,a5,a6)(为叙述方便,暂不考虑试题的其它属性,如区分度、答题时间、最近使用时间等)。决定一份试卷n道题,就决定了一个n×6的矩阵S:这就是问题求解中的目标状态矩阵。下面根据试题参数和组卷要求设计建立目标函数。设ci、xi、ei(i=1,2,…,m,m为章或节的数目)分别表示用户要求的各章节应占的分数,实际生成试卷中各章节所占的分数,用户允许各章节的分数误差。对于用户选定的不需考查的章节,只要将其ci、ei置为0即可。生成的试卷满足用户关于内容—分数分布要求的程度可以用式5-2值的大小来评价:(5-2)其中由上式可以看出f1的值越小,则生成的试卷越接近于用户关于内容分数分布的要求。同样,设bj,yj,hj(j=1,2,3,…,k;k为教学要求度的档数),本文中(k=4)分别表示用户要求的教学要求度为j档的题应占的分数,实际生成试卷中教学要求度为J档的题应占的分数,用户允许教学要求度为j档的题的分数误差。生成的试卷满足用户关于教学要求度分数分布要求的程度可以用式5-3值的大小来评价:(5-3)其中 由公式5-3可以看出f3的值越小,则生成的试卷越接近于用户关于各教学要求度应占分数要求。同样的方法设计函数f3来反映用户关于难度的要求,f3的值越小,则生成的试卷越接近于用户关于试卷难度的要求。对于如何使生成的试卷中各种题型的题目数满足用户的要求,由于题库中的题目可以按题型进行索引,因此,只要题库题量充裕,这一要求很容易满足。综上所述,得到求解组卷问题的目标函数:minf=f1+f2+f3。5.2.2智能组卷的遗传算法设计与实现1、染色体编码及群体的初始化用遗传算法求解问题,首先要将问题的解空间映射成一组代码串。文献[17],[18]采用二进制编码,用1表示该题被选中,0表示该题未被选中,这种编码简单明了,但是进行交换等遗传操作时,各题型的题目数难以精确控制,而且,当题库中题量很大时,编码很长。已有大量实验表明,在解决数值优化问题时,采用实数编码的遗传算法的效率要好得多,因此本文采用实数编码。在组卷中所得的可行解就为一份试卷,所以本文将一份试卷映射为一个染色体,组成试卷的各个试题映射为基因,基因的值直接用试题的题号表示,这样染色体的编码可表示为:(G1,G2,G3,…,Gn),其中Gi(i=1,2,3,…,n,n为试卷的总题目数)为试题的题号。注意编码时应将同一题型的题目放在一起,并且为保证一份试卷中知识点不重复,每条染色体中,各基因的知识点编码必须各不相同。根据用户选定的考试内容及各种题型的题目数,按同一试卷中知识点不重复的原则,随机生成初始群体,群体的大小按经验或实验给出[17]。2、适应度函数在遗传算法中,以适应值大小来区分群体中个体的优劣。一般情况下适应值越大的个体越好,适应值越小的个体越差。本文提出的组卷模型是最小化问题,采用如下方法将目标函数f转换为适应度函数F’:因为指数比例既可以让非常好的个体保持多的复制机会,同时又限制了其复制数目,以免其很快控制整个群体,提高了相近个体间的竞争,所以对上述适应度函数F’采取如下指数比例变换方法转换为适应度函数F:F=exp(-βF’),β取值为-0.03。3、遗传算子设计(1)选择算子采用期望值模型选择机制,即先计算群体中各个个体期望被选中的次数。M为群体规模,Fi为第i个个体的适应值,用Ni的整数部分[Ni]安排个体i被选中的次数,这样共选出个个体,然后对N的小数部分作为概率进行贝努利试验,若试验成功,则该个体被选中,不断重复,直至选满为止。显然,个体适应值愈高,被选中的概率愈大。但是,适应值小的个体也有可能被选中,这样有助于增加下一代群体的多样性。(2)交叉算子将以上选出的个体进行两两随机配对,对每一对相互配对的个体采用有条件的“均匀交叉”,即两个配对个体的每一个基因座上的基因都按设定的交叉概率PC和一定的条件(确保交换后个体仍是有意义的组合)进行交换,产生两个新个体。具体的操作是:对两个配对个体的每一个基因座上的基因,先随机产生一个0-1的实数r1,如果r1<PC并且满足交换条件(即交换后个体的各个基因的知识点不重复),则交换该基因座上的基因,否则不交换。(3)变异算子由于普通的变异操作可能会使用户指定范围外的题目出现在染色体中,也会使各题型的题数难以保证,本文采用有条件的变异算子,即每个个体的每一个基因座上的基因都按设定的变异概率Pm在一定范围内(考试范围内与该基因题型相同且知识点与本个体其它题的知识点不重复)变异。对经以上交换操作后产生的每一个个体的每一个基因座上的基因,具体的变异操作是:①确定搜索新题的最大次数s0,令当前搜索新题的次数s=0;②随机产生一个0-1的实数r2,如果r2>Pm,则保持该基因不变;否则,根据该基因的值(题号),判断所属题型;③搜索次数s加1,若s>s0,则结束搜索新题,保持该基因不变,否则,在该题型的题号范围内随机产生一个与该基因值不同的整数作为新题的题号;④判断新题的知识点是否在考试范围内,若否,转③;⑤判断新题的知识点是否与本个体其它题的知识点重复,若是,转③;⑥用新题的题号替换该基因的值。(4)最优保存策略进行了选择、交叉、变异操作后,比较新一代的最好个体与上一代的最好个体的适应值,如下降,则以上一代最好个体替换新一代的最差个体。此策略可以保证迄今为止的最优个体不会被交叉、变异等遗传运算所破坏,它是遗传算法收敛性的一个重要保证条件。4、算法分析确定参数:最大代数MaxGen,群体规模PopSize,交叉概率PC,变异概率Pm;接收用户的组卷要求;产生初始群体;当前代数gen=0;计算群体中各个体的适应值;While(gen<MaxGen&&最好个体的目标函数值未达到要求){根据个体适应值及选择策略从当前群体中选择生成下一代的父体;执行交换操作和变异操作生成新一代群体;计算新一代群体中各个体的适应值:比较新一代的最好个体与上一代的最好个体的适应值,如下降,则以上一代最好个体替换新一代的最差个体;输出当前代数,群体的平均目标函数值,最好个体的目标函数值;gen++;}输出最好个体的编码,计算各章节分数、各难度级别的分数等指标,输出这些指标的值并与用户的要求值相比较。在组成的试卷达到用户要求后,可对所抽取的试卷进行排版打印,并将此试卷所对应的试卷号和试卷名称以及排版后此试卷所对应的试卷题目、答案所对应的文件的路径存入试卷库中。并保存此试卷所对应的试题情况到试卷的情况表中,以便将来考试后进行试卷的统计分析。最后,为了防止组出雷同的试卷应对试题库进行修改,即对所抽取的试题的使用次数和最近使用时间进行修改,以便保证试题在一段时间内或连续的几份试卷中不重复出现。若对此次抽取的试卷不满意或只是进行一次试验,并不利用此次抽取的试卷,可不对它进行修改,但下次抽取的试卷与此次抽取试卷中试题的重复性将提高。5.3实验结果及分析为验证上述遗传算法的可行性和有效性,以我校学生计算机等级考试笔试试卷为模板(试卷结构见表5.3),按照上述思想编制了程序,进行组卷实验。表5.3我校学生计算机等级考试笔试试卷结构题型判断题单选题多选题填空题题目数10301020每小题分数1122本次实验题库共有350道题,有判断、单选、多选、填空共4种题型,这四种题型的题目数分别为50,150,50,100;含6章内容,各章分数比例为:105:66:121:109:33:66。其中题目难度分布情况见表5.4。表5.4试题库题目难度分布情况难度系数(得分率)0.0-0.550.55-0.650.65—0.750.75-0.850.85-1难度级别5(难)4(较难)3(中等)2(较易)1(容易)题目数30501309050分数589618411050程序的输入参数有群体规模、交换概率、最大进化代数、整卷的难度系数(期望平均得分率)、各种题型在试卷中的题目数、各章在试卷中所占的分数及允许的误差。组卷要求为:满分为100,整卷难度系数0.76(即期望平均得分为76分),各题型题目数及分数要求见表5.3。各章所占分数比例为:20:15:25:5:5:10,允许的误差为±2,对教学要求度分布参数未作要求。进行下列组卷实验,研究基于遗传算法的组卷程序的收敛性及不同输入参数对程序收敛性的影响。(1)固定最大代数MaxGen=250,群体规模PopSize=80,测试交叉概率PC和变异概率Pm对程序收敛性的影响。①当交叉概率Pc=0,变异概率Pm=0时,随机运行程序10次,均未能生成满足组卷要求的试卷。这是因为当PC,Pm均为零时,进化过程中只有选择操作,只能简单地将每一代中的优胜个体复制到下一代中,无法通过配对交叉、变异产生新的更优的个体,搜索空间很小,很难找到全局最优或较优解。②PC、Pm取非零值,进行了大量实验,实验表明:当Pc在0.6-1间,Pm在0.001-0.01间取值时,组卷效果非常好,一般只要经过30-60代的进化,就能组出满足上述组卷要求的试卷。这里由于交换条件的约束,Pc=l时也并不是所有的基因都进行交换,所以这时组卷效果也很好。③固定PC=0.6,Pm取不同的值进行测试。实验表明,Pm大于0.05时,组卷效率明显降低,当Pm大于0.1时,不仅组卷效率大大降低,而且在250代内组卷成功的概率也大大降低。当PC=0.6,Pm=0.01进行20次实验,组卷成功率为100%,平均所需的进化代数为30;当PC=0.6,Pm=0.1进行20次实验,组卷成功率为60%,平均所需的进化代数为160。这是因为变异虽然增加了群体的多样性,但是,过多的变异会破坏群体的优良模式,甚至会使遗传算法变成随机搜索。(2)固定MaxGen=250,PC=0.8,Pm=0.005,PopSize分别取10,20,40,80,100,120,150,200,250进行大量实验,实验表明:群体规模大小的选取对算法收敛性的影响较大。当群体规模取较小值10时,获得有效试卷的概率较小,随着群体规模的扩大,获得有效试卷的概率增大。这是由于群体规模太小时,群体中的个体缺乏多样性,算法的搜索空间分布范围有限,因而搜索可能停止在未成熟阶段,引起未成熟收敛现象。随着群体规模的增大,算法的搜索空间增大,获得最优解的机会提高,生成满足要求试卷所需的进化代数趋于减少。但这并不能说明群体规模越大越好。群体规模太大,会使得搜索空间很大,降低程序的运行效率。由实验得到,本例中PopSize在40~80间取值,效果最好。本实验表明,当选择合适的参数,即交叉概率取0.6~1.0,变异概率取0.001~0.01,群体规模取40~80时,用本文所设计的遗传算法可以有效解决组卷问题,很快找到满足用户要求的试卷。由于遗传算法实行了全局并行搜索,搜索空间大,并且在搜索过程中不断向可能包含最优解的方向调整搜索空间,从而易于找到最优解。从实验结果可以看出,遗传算法能有效地解决试题库智能组卷问题。5.4通用组卷系统实现界面5.4.1参数输入在生成试卷之前先要设置试卷生成的参数,包括各种题型的分值,题数,难度比例以及各种题型在章节中的试题分配和题量百分比,在输入时要保证数据的完整性和一致性,还要注意百分比之和必须为百分之百。生成试卷之前先要进行参数分析,参数分析通过后,才可以生成试卷,如果不行则提示。其界面如图5.5所示。图5.5信息输入界面5.4.2试卷生成预览界面生成试卷之后,可以对生成的试卷进行预览,在预览过程中,如果有需要修改的地方可以进行修改,如果满意的话,可以直接打印,或者选择保存。见图5.6所示。图5.6试卷生成后预览界面

结束语经过三个多月的努力,本系统终于完成了!我认为本系统具有如下特点:(1)符合教学改革的要求现代教育教学要求教考分离,试卷规范化,本系统正是依据这些原则而设计的。系统针对任课教师与教务处工作人员设置了不同的访问限制,教师只能录入,修改试题而没有出卷的权力。教务处工作人员只能根据工作要求出试卷,而无权浏览题库中的试题,更无权对题目进行修改,这样就真正实现了教考分离。系统还为用户设计了一套标准的试卷卷面模板,确保了卷面的规范。(2)安全性本系统设置了三类访问权限:管理员,命题人员(出卷)和录入人员。通过身份认证机制有效地控制不同人员对系统的访问级别,确保了系统运行的安全,可靠。(3)通用性本系统可应用于各级各类学校和各种教学机构,帮助各种教学单位实现考务工作的规范化,自动化。为学校的信息化建设提供一个实用的信息管理平台。但是,这个系统也存在着一些问题,有待改进:(1)题型是固定的,不能依用户自由的输入各种题型。(2)试题录入时只能单个输入,不能整套试题输入。

参考文献:[1]国家教委考试中心.题库建设理论与实践[M].北京:光明日报出版社,2000.[2]宋兆鸿等.现代教育测量[M].北京:教育科学出版社,1999.[3]梁曦.VB程序设计与应用开发案例教程[M].北京:中国电力出版社,2005.[4]于松涛徐振成等.精通SQLServer2000数据库管理与开发[M].北京:人民邮电出版社,2001.[5]BobReselman.RichardPeasley,VisualBasic6.0使用指南[M].电子工业出版社,2003.[6]张海藩.软件工程导论[M].北京:清华大学出版社,2003.[7]张金.卢胜等.试题库系统分析[J]微计算机信息,2002,18(2):72-73.[8]曾红陈晶周扬.一个VB开发的试题库系统[J].佳木斯大学学报,2005,10:552-554.[9]D.B.Forgel.Evolutionary[M].NewYork:IEEEPress.1995:100-120.[10]林永张乐强.VisualBasic6.0用户编程手册[M].北京:人民邮电出版社,2002:357-381.[11]北京博彦科技发展有限责任公司.OfficeVBA编程高手[M].北京:北京大学出版社,2002.[12]钱忆平.通用试卷生成系统的设计[J].江苏:常熟理工学院学报,2005年,第19卷第四期:112-115.[13]施伯乐丁宝康汪卫.数据库系统教程[M].高等教育出版社,2005,8.[14]潘志文.网络试题库系统的设计及其成卷算法的设计与实现[D].华南理工大学硕士学位论文.2000.[15]米凯利维茨Z,周家驹何险峰译.演化程序--遗传q法和数据编码的结合[M].北京:科学出版社,2000.[16]李光明.VisualBasic6.0编程实例[M].北京:冶金工业出版社,2001.[17]全惠云范国闯等.基于遗传算法的试题库智能组卷系统研究[J].武汉大学学报(自然科学版),1999,45(5):758-760.[18]文忠林蔡清万等.试题库智能组卷的遗传算法[J].湖北民族学院报(自然科学版),2000,18(3):53-55.[19]任长虹.基于遗传算法的组卷方法[D].兰州大学硕士研究生论文,2001.[20]HollandJH.AdaptationinNatureandArtificialSystem.TheUniversityofMichiganPress,1975.MITPress,1992.

致谢本论文是在符开耀老师的悉心指导下完成的,所以首先在此对符老师致以衷心的感谢,他牺牲自己的周末时间给我耐心讲解,在百忙的工作之余为我仔细的审阅论文,我才能够顺利完成论文。我还要感谢湖南科技大学,尤其是计算机学院的老师四年来对我的培养,有了他们的悉心教诲才有我今天的成绩。同时我还要感谢同组的其他同学,特别是我的搭档,一起做通用试题库系统的曾艳莲同学,有了他们的关心和帮助,让我在毕业设计期间克服困难,最终顺利完成设计。谢谢你们,所有关心、鼓励与支持的朋友!

湖南科技大学本科生毕业设计(论文)任务书系(教研室)主任审批计算机科学与工程院计算机科学与技术系(教研室)签名:日期:2006-3-6学生姓名:魏婧学号:202022243专业:计算机科学与技术设计(论文)题目及专题:试题库平台的设计与实现——通用试卷生成系统学生设计(论文)时间:自_3月_6日开始至6_月9日止设计(论文)所用资料和参考资料:[1].BobReselman,RichardPeasley,VisualBasic6.0使用指南[M].电子工业出版社

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论