李艷鳴 孫瑜
摘要:隨著計算機技術(shù)和軟件工程的發(fā)展,各種考試逐漸由傳統(tǒng)紙質(zhì)考試變?yōu)橛嬎銠C考試。在考試系統(tǒng)中最核心的問題就是組卷問題。通過對組卷流程的分析,系統(tǒng)選擇使用智能算法中的遺傳算法,并將其進行了改進,對系統(tǒng)的組卷模塊進行了研究;而后對系統(tǒng)的整體架構(gòu)進行了設(shè)計,最后使用Django框架、MySQL數(shù)據(jù)庫對該系統(tǒng)進行開發(fā),實現(xiàn)了預(yù)期要求。
關(guān)鍵詞:在線考試系統(tǒng);遺傳算法;智能組卷;系統(tǒng)開發(fā);Django框架
中圖分類號:TP311.5 ? ? ?文獻標(biāo)識碼:A
文章編號:1009-3044(2020)31-0034-04
Abstract: With the development of computer technology and software engineering, various examinations have gradually changed from traditional paper examinations to computer examinations. The core problem in the examination system is the question of test paper composition. Through the analysis of the paper composition process, the system chooses to use the genetic algorithm in the intelligent algorithm, and improves it, and studies the systems paper composition module; then designs the overall system architecture, and finally uses the Django framework, The MySQL database has been developed for this system and the expected requirements have been met.
Key words: online test system; genetic algorithm; smart volume; system development; Django framework
1 背景
近些年國家科技水平的快速持續(xù)發(fā)展和互聯(lián)網(wǎng)的普及使得人們的計算機操作水平有了相當(dāng)大的提高,許多行業(yè)和學(xué)科的考試方式由最初的試卷筆試變?yōu)楝F(xiàn)在的機考甚至在線考試。然而目前我們所接觸到的很多計算機考試產(chǎn)品仍然存在諸多缺點,比如:抽取試題不符合期望、考試流程過于復(fù)雜、系統(tǒng)的穩(wěn)定性和安全性較差、維護管理困難。其次,系統(tǒng)生成試卷的等待時間較長,效率很低,往往讓出題人不愿使用。
2 組卷模型
一個完整的考試流程包括根據(jù)教學(xué)大綱出卷、考生在規(guī)定時間內(nèi)對題目作答、教師對試卷評分并發(fā)布成績等環(huán)節(jié)。在這一過程中,試卷始終貫穿,是整個考試流程的關(guān)鍵所在。因此試卷能否反映出學(xué)生的真實水平顯得尤其重要,這就要求試卷必須具備較高的科學(xué)性和合理性。根據(jù)教學(xué)提綱的要求,試卷生成系統(tǒng)需要在試題數(shù)目,試題難度適中,試卷結(jié)構(gòu)合理,試題范圍廣泛的約束下,最后生成符合當(dāng)前測試要求的試卷。
2.1 組卷基本原則
組卷任務(wù)并不是一個隨心所欲挑選試題的過程,相反有一組十分嚴(yán)格的約束條件需要組卷者遵守。經(jīng)過對現(xiàn)有理論進行總結(jié)后,當(dāng)前試卷組成過程應(yīng)遵循的一些基本原則如下:
1)進行組卷工作時,選擇的試題應(yīng)遵循學(xué)校給定的教學(xué)大綱,并根據(jù)該文件中設(shè)定的教學(xué)目標(biāo)及要求選擇試題,公正地反映出課程的最終水平。
2)試卷中選擇的試題應(yīng)與學(xué)生的個性特征相匹配,這些測試題所涉及的知識應(yīng)在實際生活中得到真正的運用,以提高學(xué)生的綜合素質(zhì)和解決問題的能力。
3)試卷的區(qū)分度應(yīng)設(shè)置為適當(dāng)值,合理的試卷應(yīng)具有適中的難度,否則無法通過考試得到學(xué)生的真實水平。
4)試卷的內(nèi)容應(yīng)符合標(biāo)準(zhǔn)化的要求,反映出考試的嚴(yán)肅性。新穎的題型、與社會現(xiàn)象相結(jié)合的測試內(nèi)容和貼近現(xiàn)實生活的試題,更能激發(fā)學(xué)生的興趣,使學(xué)習(xí)效率提高。
5)所選試題的題干需要表述清晰,不能出現(xiàn)句意模糊、錯別字等影響學(xué)生考試的不良因素,這樣才能使得考試的公平公正性得到保障。
2.2 試題屬性與試卷約束
2.2.1 試題基本屬性
題庫中的每一道題目都有不同的屬性,如何知道哪些題目符合約束條件,那就要看題庫中題目的相關(guān)屬性。實際上,題目屬性越詳細(xì)越豐富,組卷系統(tǒng)在抽題準(zhǔn)確性越高,所組試卷質(zhì)量越高,但隨之而來的問題是組卷成功率會有所降低。試卷的水平將在很大程度上影響測試中學(xué)生的分?jǐn)?shù),并會影響教師區(qū)分考生水平的結(jié)果。本文主要將試題指標(biāo)的構(gòu)成大致分為以下幾個方面[1]:
1)題型:考試題的類型主要包括選擇題,對\錯題,填空題,簡答題,作文題,計算題,編程題等。選擇題還可以細(xì)分為單選題和多選題。
2)題號:它是問題庫表中每個問題的身份標(biāo)識符,這是題庫的字段主鍵。
3)區(qū)分度:用于判斷測試對象的知識水平和能力水平上的試題區(qū)分程度的指標(biāo)。
如果將學(xué)生的考試成績劃分為三組:分?jǐn)?shù)最低的27%劃分為低分組用LG表示;分?jǐn)?shù)最高的27%劃分為高分組用HG表示;其余的46%劃分為中間組;在此基礎(chǔ)上分析,可得區(qū)分度的計算公式:
5)認(rèn)知程度:用于反映應(yīng)試者對獨立知識獲取和控制能力的衡量。
6)曝光度:曝光度是發(fā)生在以前的考試中某題目出現(xiàn)次數(shù)的度量。
2.2.2 試卷的約束條件
在經(jīng)過對命題組卷組卷過程的分析后,可以獲得以下幾條與組卷任務(wù)相關(guān)的約束條件:
1)知識點信息約束:知識點通常以范圍的形式反映出來,對于某項考試,知識點用于限制考試內(nèi)容的范圍。
2)題型信息約束:反應(yīng)一張試卷由哪些題型構(gòu)成。
3)試題數(shù)量約束:試卷中所有問題類型下試題數(shù)量的總和。
4)答題時間約束:指定完成測試題集所需的時間,不能太長也不能太短。
5)整卷難度約束:將整張試卷包含的所有試題的難度經(jīng)過計算后得出的試卷總題難度。
6)試卷區(qū)分度約束:該約束的目的在于區(qū)分出參與考試的學(xué)生實際的能力水平。
2.3 組卷問題的數(shù)學(xué)模型
智能組卷系統(tǒng)需要根據(jù)用戶輸入的組卷要求,搜索試題庫中與輸入特征參數(shù)相匹配的試題,從而生成滿足要求的試卷。假設(shè)在實際的試卷生成過程中,試卷中的每個試題都受到n個項目的影響,則其向量維度為n維,整個問題庫中的問題數(shù)用m表示,在此基礎(chǔ)上,可以獲得一個m*n矩陣:
其中[a11]可以理解為試卷中第一題的分值,[a12]可以理解為第一道題的難度,以此類推,第一行為試卷中第一題包含的所有屬性。簡單來講,一套試卷由m道題組成,每道題都有自身攜帶的n個屬性。關(guān)于組卷問題的后續(xù)討論均將以此模型為準(zhǔn)。
3 遺傳算法
遺傳算法(Genetic Algorithm,GA)由約翰·霍蘭德(John Holland)于1970年代首次提出。該算法是一種模擬自然選擇的生物進化過程和達爾文生物進化理論的遺傳機制的計算模型,并且是一種通過模擬自然進化過程來尋找最優(yōu)解的方法。該算法使用計算機模擬將問題解決過程轉(zhuǎn)換為類似于生物學(xué)進化中染色體基因的交叉和突變的過程。當(dāng)解決更復(fù)雜的組合優(yōu)化問題時,與某些常規(guī)優(yōu)化算法相比,通??梢愿斓孬@得更好的優(yōu)化結(jié)果。目前,遺傳算法已廣泛應(yīng)用于組合優(yōu)化,機器學(xué)習(xí),信號處理,自適應(yīng)控制和人工生命等領(lǐng)域。本文使用遺傳算法實現(xiàn)系統(tǒng)的組卷功能,并對其中的操作算子進行了優(yōu)化。
3.1 遺傳算法的執(zhí)行步驟
一般在利用遺傳算法解決實際問題時,需要按照以下步驟進行:
1)確立問題數(shù)學(xué)模型,深入剖析問題,建立相關(guān)數(shù)學(xué)模型,例如本文第二章所建立的組卷問題數(shù)學(xué)模型。
2)對問題空間進行編碼,根據(jù)待求解問題的數(shù)學(xué)模型,把解的空間映射為基因空間,為待求解問題的確定解空間設(shè)計解可能出現(xiàn)的空間編碼方案。
3)選取初始種群,在編碼空間中選取作為搜索起點的默認(rèn)初始解的集合,這個初始集合可隨機給出,但初始解越準(zhǔn)確,算法執(zhí)行效率越高,為了保證運算效率,往往采用一些優(yōu)化算法給予確定。
4)確定適應(yīng)度函數(shù),在遺傳算法中,適應(yīng)度函數(shù)用來表示選出的個體與組卷期望的貼合程度,是所得結(jié)果的質(zhì)量的一種度量,該值越大,表示其越接近最優(yōu)解。在選擇適應(yīng)度函數(shù)時,要注意滿足兩個條件,一個是早期沒有“早熟”現(xiàn)象,另一個是后期沒有“衰減”現(xiàn)象。
5)選擇操作,依據(jù)選擇策略進行選擇操作。選擇是從初始種群中,依照預(yù)先設(shè)定的算法,將篩選出的個體進行取舍,目前已有的選擇方式有很多,一般有輪盤賭選擇、隨機遍歷抽樣、局部選擇、截斷選擇、最佳個體保持法、錦標(biāo)賽等[14]。
6)交叉操作,交叉是指從兩個親代樣本中選取的部分結(jié)構(gòu),然后將這兩部分結(jié)構(gòu)進行相互替換重組,繼而產(chǎn)生新個體的操作。交叉操作不是時時都在發(fā)生,它要按一定概率執(zhí)行。選擇合適的交叉算子對于遺傳算法的執(zhí)行有著十分重要的作用。
7)變異操作,變異操作是將原基因中的某些基因值轉(zhuǎn)換成“突變?yōu)椤逼渌蛑?,從而形成一個新的個體。它是一個小概率事件,主要作用是增強遺傳算法局部搜索能力。
3.2 編碼方案
編碼方案將直接影響算法的效率,因此,選擇合適的編碼方法顯得尤為重要。本文采用分段實數(shù)法對種群中的個體進行編碼,并根據(jù)不同的問題類型設(shè)計了獨立的實數(shù)編碼,問題類型和代碼通過映射實現(xiàn)。當(dāng)使用分組實數(shù)編碼時,如果某個主題的試卷由單項選擇題,對錯題,填空題和簡答題組成,則應(yīng)由一組染色體的代碼組成(一套試卷)可能是:
這樣,每個染色體的含義就十分清楚了。為了確保染色體中每個問題類型的數(shù)量不變,接下來的步驟也需要遵循這種分組方法。
3.3 生成初始群體
確定染色體的編碼方案后,接下來需要做的是需要生成初始種群[2]。首先,要確定初始人口的大小,為了提高遺傳算法的收斂速度并減少迭代次數(shù)作為主要目標(biāo),在這里我們可以預(yù)先手動提供初始值,通常選擇50或100。同時要基于系統(tǒng)分組實數(shù)編碼方案設(shè)置初始種群中各題型的比例。例如,假設(shè)獲得的試卷中單項選擇題的比例為35%,判斷題的比例為10%,填空題的比例為30%,簡答題的比例為15%,分析題的比例為10%。那么所有最初形成的總體也應(yīng)遵循上述比例來設(shè)置。
3.4 適應(yīng)度函數(shù)的選取
遺傳算法適應(yīng)度函數(shù)的選擇與組卷系統(tǒng)運行的性能有關(guān)[3]。選擇適合度函數(shù)時,必須滿足兩個條件。其一是在早期階段不存在早熟現(xiàn)象。其二是后期沒有衰退。目標(biāo)函數(shù)的值應(yīng)盡可能小,相反,適應(yīng)度函數(shù)的值應(yīng)盡可能大,公式如下:
3.5 選 擇方式
選擇操作用于確定如何以某種方式從親代種群中選擇一些個體,以便繼承到下一代種群。選擇算子的確定基于種群中不同個體的適應(yīng)度,下一階段的染色體狀態(tài)取決于染色體的優(yōu)化和性能。本文在輪盤賭選擇法[3]的基礎(chǔ)上進行了一些改進,使用輪盤賭選擇和精英個體保留選擇的混合選擇法。每一次遺傳結(jié)束后,需要將子代種群的適應(yīng)度數(shù)值重新計算,然后以從大到小的順序排列,再挑選其中的最大值與父代中適應(yīng)度最大的個體進行比較,如果親代種群的最大適應(yīng)度大于后代種群的適應(yīng)度,則應(yīng)隨機排除后代種群中的一個個體,否則遺傳操作將繼續(xù)進行并將重復(fù)該操作,直到滿足終止條件為止。
3.6 交叉算子的選取
交叉操作是指以某種方式交換彼此配對的兩個親本染色體的部分基因,從而形成兩個新的后代個體。根據(jù)前面選擇的分組實數(shù)編碼方式,染色體的交叉操作也應(yīng)分段進行。選擇多點交叉法后,如果交叉僅隨機發(fā)生,則交叉后獲得的后代個體極有可能具有重復(fù)的基因為了避免這種情況,應(yīng)該在交叉過程中增加優(yōu)良個體的數(shù)量以降低局部最優(yōu)解情況發(fā)生的可能性,在選擇交叉的過程中,采用自適應(yīng)方法獲得交叉概率。公式如下:
其中[favg]代表該種群每一代適應(yīng)度的平均值;[fmax]表示種該群中最大的適應(yīng)度;[f']表示交叉操作前兩個個體中適應(yīng)較大的值。一般交叉概率應(yīng)該在0.4-0.99,本文設(shè)定[Pc1]的取值為0.9;[Pc2]的取值為0.6[4]。
3.7 變異算子的選取
在使用遺傳算法時,父代除了進行選擇、交叉操作后有加入了變異操作用模擬基因突變的現(xiàn)象來獲得新的個體,在此過程中,出現(xiàn)基因突變的位置也在相同題型中出現(xiàn),并且變異后的基因會取代原先的基因,留在染色體的變異位置。與交叉操作相同,變異操作也不是隨即發(fā)生的,應(yīng)該使用自適應(yīng)突變概率。這使算法能夠在進化的初始階段和最終階段表現(xiàn)良好,并且可以保留更多的后代。公式如下:
其中[fmax]代表群體中的適應(yīng)度最大值;[favg]代表種群每一代適應(yīng)度的平均值;[f]代表需要變異的個體的適應(yīng)度值;一般變異概率應(yīng)為0.1-0.001,本文設(shè)定[Pm1]的取值為0.1;[Pm2]的取值為0.001;
3.8 遺傳算法終止條件
本文中,終止的條件設(shè)定為上述兩種方法的互相組合。根據(jù)經(jīng)驗得出進化在100到200代為宜,因此設(shè)定在迭代150次后或連續(xù)三代未進化出新后代時終止計算。
4 系統(tǒng)的設(shè)計與實現(xiàn)
4.1 系統(tǒng)功能分析
開發(fā)智能在線考試平臺需要實現(xiàn)管理員、教師、學(xué)生的相關(guān)配套功能,系統(tǒng)的功能結(jié)構(gòu)模塊圖如圖1所示:
1)管理員角色需求:管理員是考試系統(tǒng)中具有最高權(quán)限的角色。管理員登錄后,不僅可以對教師和學(xué)生進行管理,也可以對題庫、試卷、科目、成績等信息進行管理,同時管理員還可以自行添加其他管理員角色輔助自己的工作。
2)教師角色需求:教師角色是系統(tǒng)中有著第二權(quán)限的角色。教師登錄后,可以手動添加自己教授的考試科目,并在不同的科目下錄入相應(yīng)的試題庫。當(dāng)教師發(fā)現(xiàn)自身信息或考試信息有誤時,可以進行修改操作。在學(xué)生考試結(jié)束后,教師可以對學(xué)生的成績進行查閱與分析。
3)學(xué)生角色需求:學(xué)生角色在系統(tǒng)中擁有的權(quán)限很低,除了修改自己的個人信息外,并不能對科目和試題進行修改。在教師安排了考試后,學(xué)生只需登錄到考試系統(tǒng),點擊開始考試即可??忌梢赃x擇答完所有題目后直接交卷,也可等待考試時間用盡后系統(tǒng)自動交卷。完成考試后學(xué)生可在系統(tǒng)中查詢自己的歷史成績。
4.2 系統(tǒng)數(shù)據(jù)庫的設(shè)計
任何系統(tǒng)的實現(xiàn)都離不開與數(shù)據(jù)庫的交互,只有與數(shù)據(jù)庫建立了正確的聯(lián)系才能準(zhǔn)確執(zhí)行系統(tǒng)工作時要用到的查看功能、增加和刪除功能以及修改功能。數(shù)據(jù)庫的設(shè)計包括需求分析、概念結(jié)構(gòu)設(shè)計、邏輯結(jié)構(gòu)設(shè)計等六個環(huán)節(jié)[5]。數(shù)據(jù)庫系統(tǒng)的概念模型一般通過E-R圖來描述。E-R圖又稱實體-關(guān)系圖,它能將系統(tǒng)所需要的數(shù)據(jù)通過最直觀的圖形表現(xiàn)出來。在線考試系統(tǒng)的E-R圖如圖2所示。
4.3 登錄模塊展示
在服務(wù)器運行處于運行狀態(tài)下并且數(shù)據(jù)庫測試連接正常后,輸入網(wǎng)址就可以進入到計算機輔助教學(xué)系統(tǒng)的登錄頁面。在用戶進行登錄操作時,系統(tǒng)內(nèi)部會保存用戶輸入的信息,然后調(diào)用Django框架中的相關(guān)程序與數(shù)據(jù)庫中的數(shù)據(jù)進行匹配。如果匹配成功就跳轉(zhuǎn)至系統(tǒng)的主頁面如圖3所示:
管理員登錄頁面如圖4所示,登錄后跳轉(zhuǎn)至后臺系統(tǒng)主頁,如圖5所示:
4.4 考試模塊展示
學(xué)生點擊考試信息后可以查看教師和管理員安排的考試列表,如圖6所示:
在規(guī)定的時間,點擊開始考試按鈕,系統(tǒng)會自動跳轉(zhuǎn)至考試頁面,考試時的答題界面如圖7所示:
5 分析與結(jié)論
本文主要研究了計算機輔助教學(xué)的考試模塊,它是一個當(dāng)今社會比較先進的考試系統(tǒng),較傳統(tǒng)紙質(zhì)考試來說,它不僅節(jié)約了教師的時間,也節(jié)約了紙張資源,符合目前我們國家提倡的低碳環(huán)保的生活方式,更對習(xí)題資源做了歸納整理,使得從前需要從四面八方收集起來的試題擁有了自己的屬性。此外,線上考試對于考試的公平性來說比傳統(tǒng)考試高出很多,因為它避免了人工組卷的主觀性。除此之外,這種線上考試的模式也給學(xué)生帶來了方便。本文開發(fā)的系統(tǒng)使用了目前比較新穎的基于python語言的Django框架與MySQL數(shù)據(jù)庫相結(jié)合,在傳統(tǒng)的MVC架構(gòu)上細(xì)化出了MTV模式,這樣的系統(tǒng)在各個瀏覽器上甚至跨操作系統(tǒng)都可以正常運行,與一些老舊的線上考試系統(tǒng)相比實用性更高,也更易于維護。在最主要的組卷功能上使用遺傳算法滿足組卷的核心需求。整個系統(tǒng)能夠良好的完成用戶管理、試題庫與試卷管理、組卷、線上考試等操作,并且能夠通過各項測試。
參考文獻:
[1] 強劼.智能組卷在線考試系統(tǒng)的設(shè)計與實現(xiàn)[D].蘇州:蘇州大學(xué),2012.
[2] 朱劍冰,李戰(zhàn)懷,趙娜.基于混合遺傳算法的自動組卷問題的研究[J].計算機仿真,2009,26(5):328-331,352.
[3] Bardsiri A K,Rafsanjani M K.A new heuristic approach based on load balancing for grid scheduling problem[J].Journal of Convergence Information Technology,2012,7(1):329-336.
[4] 趙躍新,許軍林.基于遺傳算法自動組卷的實現(xiàn)[J].計算機與信息技術(shù),2009,17(3):45-47.
[5] 楊青.基于遺傳算法的試題庫自動組卷問題的研究[J].濟南大學(xué)學(xué)報(自然科學(xué)版),2004,18(3):228-231.
[6] 楊剛.基于Django的在線考試系統(tǒng)的設(shè)計與實現(xiàn)[J].電腦知識與技術(shù),2016,12(14):40-42.
[7] 強劼.智能組卷在線考試系統(tǒng)的設(shè)計與實現(xiàn)[D].蘇州:蘇州大學(xué),2012.
[8] 歐薇.基于遺傳算法的在線考試系統(tǒng)的設(shè)計與實現(xiàn)[D].廣州:華南理工大學(xué),2012.
[9] 王燁.在線考試系統(tǒng)的分析與設(shè)計[D].昆明:云南大學(xué),2012.
[10] 張志莉,雷存才.試卷質(zhì)量的數(shù)理統(tǒng)計分析[J].呼倫貝爾學(xué)院學(xué)報,2011,19(6):90-92.
[11] Yuan X,Cao L,Xia L.Adaptive genetic algorithm with the criterion of premature convergence[J].東南大學(xué)學(xué)報(英文版),2003,19(1).
[12] 郭秀娟,張坤鵬.基于蟻群混合遺傳算法的組卷問題研究[J].吉林建筑大學(xué)學(xué)報,2017,34(4):79-83,102.
[13] 嚴(yán)亞周.基于多點混沌優(yōu)化遺傳算法的組卷系統(tǒng)設(shè)計與實現(xiàn)[D].長沙:湖南大學(xué),2017.
[14] 李芳.數(shù)據(jù)挖掘在學(xué)生成績分析中的應(yīng)用研究[D].蘭州:蘭州大學(xué),2017.
【通聯(lián)編輯:謝媛媛】