吳 英
WU Ying
(上海政法學(xué)院,上海 201701)
在計(jì)算機(jī)課程的教學(xué)中,把傳統(tǒng)筆試與計(jì)算機(jī)技術(shù)結(jié)合到一起的考試方式越來(lái)越被師生所接受。智能在線(xiàn)考試系統(tǒng)研究主要是用來(lái)實(shí)現(xiàn)學(xué)生上機(jī)考試。軟件系統(tǒng)通過(guò)網(wǎng)絡(luò)服務(wù)器的設(shè)置,學(xué)生所用的計(jì)算機(jī)作為客戶(hù)端來(lái)登錄服務(wù)器獲得試題,答題完畢后網(wǎng)上提交試卷,軟件系統(tǒng)對(duì)學(xué)生的答卷按班級(jí)學(xué)號(hào)等進(jìn)行分類(lèi)、整理。然后進(jìn)行智能化的判卷、給分(對(duì)部分題目類(lèi)型能夠?qū)崿F(xiàn))。其中,試題庫(kù)系統(tǒng)的開(kāi)發(fā)一直是教學(xué)改革中的重要方面,對(duì)改進(jìn)教學(xué)方法和提高教學(xué)質(zhì)量以及實(shí)現(xiàn)考試的公平性起到了很大的作用。其中全自動(dòng)成卷模塊是試題庫(kù)系統(tǒng)的一個(gè)亮點(diǎn)。
1.1 系統(tǒng)的組成模塊
學(xué)生考試部分:注冊(cè),登錄,驗(yàn)證信息,試題下載…
系統(tǒng)管理部分:課程管理,試題管理,學(xué)生管理,成績(jī)管理及查詢(xún),補(bǔ)考管理…
數(shù)據(jù)庫(kù)部分:學(xué)生基本信息,學(xué)生選課信息,課程信息,教師信息,試卷信息,各題型信息…
1.2 系統(tǒng)各模塊設(shè)計(jì)
1)用戶(hù)登錄和注冊(cè):根據(jù)用戶(hù)所屬的不同角色顯示不同的操作頁(yè)面。如考生登錄時(shí),顯示生成試卷等待頁(yè)面;教師登錄時(shí),顯示題庫(kù)管理頁(yè)面;系統(tǒng)管理員登錄時(shí),顯示系統(tǒng)維護(hù)頁(yè)面。
2)角色管理:添加角色 修改用戶(hù)、刪除用戶(hù)、角色權(quán)限管理。
3)用戶(hù)管理:添加用戶(hù)、修改用戶(hù)、刪除用戶(hù)、分配用戶(hù)的角色。
4)題庫(kù)管理:(1)試題類(lèi)別管理,主要實(shí)現(xiàn)試題類(lèi)別的添加、刪除、修改和排序功能;(2)考試試題管理,主要實(shí)現(xiàn)試題的添加、刪除、修改和排序功能;(3)試題答案管理,主要實(shí)現(xiàn)試題答案的添加、刪除和修改功能。
5)在線(xiàn)答題:(1)動(dòng)態(tài)隨機(jī)生成試卷,使用遺傳組卷算法動(dòng)態(tài)地從題庫(kù)中取得試卷的題目,每次生成的試卷是不同的;(2)顯示整套試卷。
6)成績(jī)管理:……
2.1 ASP .NET技術(shù)
ASP .NET是當(dāng)今最先進(jìn)的開(kāi)發(fā)平臺(tái),運(yùn)行在服務(wù)器端。它不僅是Active Server Page(ASP)的下一個(gè)版本,還提供了一個(gè)統(tǒng)一的Web開(kāi)發(fā)模型,其中包括開(kāi)發(fā)人員生成企業(yè)級(jí)Web應(yīng)用程序所需的各種服務(wù),利用它可建立功能更加強(qiáng)大的Web應(yīng)用。作為Microsoft .NET平臺(tái)的一部分,ASP .NET提供了劃時(shí)代的新程序設(shè)計(jì)框架,是創(chuàng)建Web應(yīng)用的首選平臺(tái)。ASP .NET開(kāi)發(fā)速度快,并且為開(kāi)發(fā)、部署和運(yùn)行Web應(yīng)用提供了最快捷并且可縮放性程度最高的方式。它可選擇任何一種可用的.NET編譯性程序設(shè)計(jì)語(yǔ)言,不需要重新編譯,極大地簡(jiǎn)化了部署的過(guò)程,只需要將程序復(fù)制到Web服務(wù)器即可。此外,它還提供了一些對(duì)數(shù)據(jù)庫(kù)訪(fǎng)問(wèn)的數(shù)據(jù)控件,比如DataList、Dat—aGrid控件,使得對(duì)數(shù)據(jù)庫(kù)操作更加靈活、方便。鑒于A(yíng)SP .NET的以上優(yōu)勢(shì)和目前遠(yuǎn)程考試存在的問(wèn)題,采用ASP .NET技術(shù)結(jié)合B/S模式,設(shè)計(jì)遠(yuǎn)程考試系統(tǒng)。
2.2 使用ADO .NET訪(fǎng)問(wèn)數(shù)據(jù)庫(kù)的方法
系統(tǒng)使用SQL Server 2000作為應(yīng)用程序的數(shù)據(jù)庫(kù),考慮實(shí)際需要,主要包括七個(gè)表,基本結(jié)構(gòu)如下:
1)角色表:角色I(xiàn)D,角色名稱(chēng)。
2)用戶(hù)表:用戶(hù)ID,用戶(hù)名,密碼,Email,角色I(xiàn)D。
3)考生表:考生ID,用戶(hù),考試時(shí)間,成績(jī)。
4)問(wèn)題種類(lèi)表:?jiǎn)栴}類(lèi)型ID,類(lèi)型名稱(chēng),問(wèn)題順序號(hào)。
5)圖片表:圖片ID,圖片標(biāo)題,圖片存儲(chǔ)地址。
6)問(wèn)題表:?jiǎn)栴}表ID,問(wèn)題標(biāo)題,問(wèn)題內(nèi)容,添加試題的時(shí)問(wèn),問(wèn)題類(lèi)型ID,問(wèn)題的圖片ID,難度系數(shù),成績(jī)。
7)問(wèn)題答案表:?jiǎn)栴}ID,答案標(biāo)題,答案內(nèi)容,圖片ID,問(wèn)題ID。
系統(tǒng)采用類(lèi)DBConnection來(lái)封裝訪(fǎng)問(wèn)數(shù)據(jù)庫(kù)的某些基礎(chǔ)屬性和函數(shù),如數(shù)據(jù)庫(kù)連接字符串、添加數(shù)據(jù)庫(kù)的參數(shù)等。
2.3 基于遺傳算法的自動(dòng)組卷技術(shù)
以往智能在線(xiàn)考試系統(tǒng)大多采用隨機(jī)選取法和回溯試探法。隨機(jī)選取法方法結(jié)構(gòu)簡(jiǎn)單,對(duì)于單道題的抽取運(yùn)行速度較快,但是對(duì)于整個(gè)組卷過(guò)程來(lái)說(shuō)組卷成功率低,有時(shí)能夠抽取出一組令用戶(hù)滿(mǎn)意的試題。只不過(guò)由于它隨機(jī)選取試題的范圍太大,無(wú)法確定目前條件下哪些區(qū)域能夠抽取合適的試題,反而可能在那些已經(jīng)證明是無(wú)法抽取合適試題的區(qū)域內(nèi)反復(fù)選題,進(jìn)行大量的無(wú)效操作進(jìn)入死循環(huán),最終導(dǎo)致組卷失敗。即使組卷成功,花費(fèi)時(shí)間也令人難以忍受?;厮菰囂椒ㄊ欠N有條件的深度優(yōu)先算法,對(duì)于狀態(tài)類(lèi)型和出題量都較少的題庫(kù)系統(tǒng)而言,組卷成功率較好,但在實(shí)際應(yīng)用時(shí)對(duì)內(nèi)存的占用量很大,程序結(jié)構(gòu)相對(duì)比較復(fù)雜,而且選取試題缺乏隨機(jī)性,組卷時(shí)間長(zhǎng),對(duì)于現(xiàn)今越來(lái)越流行的考生網(wǎng)上隨機(jī)即時(shí)調(diào)題的考試過(guò)程來(lái)說(shuō),它已不符合要求。
我們從試題的數(shù)量及試題庫(kù)結(jié)構(gòu)兩個(gè)方面分析,將遺傳算法應(yīng)用到該系統(tǒng)中,努力實(shí)現(xiàn)試卷的生成和考查的知識(shí)點(diǎn)盡可能地接近、并由教師控制試卷的難度系數(shù)等。遺傳算法是模擬生物界適者生存、自然選擇等生物進(jìn)化機(jī)制發(fā)展起來(lái)的一種高度并行、隨機(jī)和自適應(yīng)的搜索算法,是解決復(fù)雜問(wèn)題的一個(gè)有效途徑。
2.4 遺傳算法的一般結(jié)構(gòu)
在設(shè)計(jì)遺傳算法時(shí)通常按以下步驟進(jìn)行閉:1)編碼方案:遺傳算法求解問(wèn)題.一般不是直接在問(wèn)題的解空間上,而是利用解的某種編碼表示。2)確定適應(yīng)函數(shù):適應(yīng)值是對(duì)解的質(zhì)量的一種度量。解的適應(yīng)值是演化過(guò)程中進(jìn)行選擇的依據(jù)。3)選擇策略的確定:優(yōu)勝劣汰的選擇機(jī)制使得適應(yīng)值好的解有較高的存活概率。4)控制參數(shù)的選取:控制參數(shù)主要包括種群規(guī)模、算法執(zhí)行的最大代數(shù)、執(zhí)行不同的遺傳操作的概率及一些輔助性的控制參數(shù)。5)算子的設(shè)計(jì):主要有雜交、變異和再生。6)確定算法的終止準(zhǔn)則。
2.5 基于遺傳算法的組卷問(wèn)題的設(shè)計(jì)
1)染色體編碼
編碼就是用一種數(shù)字排列方案來(lái)表示問(wèn)題的解的方法,利用編碼將問(wèn)題的解空間映射到GA算法的編碼空間。如何將問(wèn)題的解轉(zhuǎn)換為編碼表達(dá)的染色體是遺傳算法的關(guān)鍵問(wèn)題,即先要將問(wèn)題的解空間映射成一組代碼串。編碼方案的選擇依賴(lài)于問(wèn)題的性質(zhì),并影響到算法內(nèi)操作的設(shè)計(jì),是影響算法性能的重要因素。常見(jiàn)的編碼方案有二進(jìn)制編碼、十進(jìn)制編碼、實(shí)數(shù)編碼等。采用二進(jìn)制編碼,用l表示該題被選中,O表示該題未被選中。這種編碼簡(jiǎn)單明了,但進(jìn)行交換等遺傳操作時(shí),各題型的題目數(shù)難以精確控制。而且,當(dāng)題庫(kù)中題量很大時(shí),編碼很長(zhǎng)。我們采用實(shí)數(shù)編碼,將一份試卷映射為一個(gè)染色體,組成試卷的各個(gè)試題映射為基因,基因的值直接用試題的題號(hào)表示。這樣染色體的編碼可表示為(G1,G2,G3,…Gn)。其中Gi(i=l,2,…n,n為試卷的總題目數(shù))為試題編號(hào)。比如要組成一份選擇題5道、填空題5道、簡(jiǎn)答題2道的一份試卷,則染色體編碼可以是:
編碼時(shí)將同一題型的題目放在一起,同時(shí)為保證一份試卷中考查點(diǎn)不重復(fù),每條染色體中各基因的考查點(diǎn)編碼必須各不相同。由于不同的題型是從不同的題型表中取出,有可能在同一個(gè)基因串中會(huì)出現(xiàn)相同的試題編號(hào),它們屬于不同題型,考察的知識(shí)點(diǎn)也未必相同。故這種情況很正常的,不影響我們進(jìn)行組卷。
在實(shí)際組卷過(guò)程中,假設(shè)在試卷中每種題型的數(shù)目是固定的,且相同題型的分?jǐn)?shù)和答題時(shí)間是相同的。這樣我們將整個(gè)編碼串按照題目類(lèi)型劃分為不同的功能塊,每個(gè)功能塊可以認(rèn)為是獨(dú)立的編碼。也就是說(shuō)每個(gè)功能塊對(duì)應(yīng)一種特定的題型。顯然按這種規(guī)則產(chǎn)生的群體已經(jīng)滿(mǎn)足了試卷對(duì)題型、分?jǐn)?shù)和答題時(shí)間的要求。
2)群體的初始化
根據(jù)用戶(hù)選定的考試內(nèi)容及各種題型的題目數(shù),按同一試卷中考查點(diǎn)不重復(fù)的原則,從相應(yīng)題型表中隨機(jī)抽取試題。生成初始群體,群體的大小按經(jīng)驗(yàn)或?qū)嶒?yàn)給出由于遺傳算法和其它啟發(fā)式算法一樣,不對(duì)全部解空間進(jìn)行窮舉搜索。因此初始的候選解群體的選擇會(huì)對(duì)得到最終解的速度和質(zhì)量有影響,初始的候選解群體在解空間內(nèi)分布得越均勻,它們擁有的遺傳基因就越有代表性。
3)適應(yīng)度函數(shù)
在遺傳算法中,以適應(yīng)度大小來(lái)區(qū)分群體中個(gè)體的優(yōu)劣。設(shè)di(i=1,2,… ,m,m為試卷的總題目數(shù))表示基因串中所選試題的考查點(diǎn),用集合表示用戶(hù)要求試卷中應(yīng)包含考查點(diǎn)的集合,生成的試卷滿(mǎn)足用戶(hù)關(guān)于各考查點(diǎn)要求的程度可以用f1的大小來(lái)評(píng)價(jià):
可見(jiàn),f1的取值范圍為:0≤f1≤1,f1的值越小,生成的試卷越接近于用戶(hù)關(guān)于各考查點(diǎn)的要求。
4)遺傳算子
遺傳算法的交叉概率Pc和變異概率Pm是影響遺傳算法行為和性能的關(guān)鍵所在,直接影響算法的收斂性。Pc和Pm越大,算法產(chǎn)生新個(gè)體的能力就越強(qiáng)。個(gè)體之間的適應(yīng)度波動(dòng)比較大,產(chǎn)生新的超平面的能力比較強(qiáng):Pc和Pm越小,算法使個(gè)體趨于收斂的能力越強(qiáng)。個(gè)體的平均適應(yīng)度比較平穩(wěn),有可能產(chǎn)生早熟現(xiàn)象。所以我們采用自適應(yīng)的思想,在算法的運(yùn)行過(guò)程中對(duì)Pc和Pm進(jìn)行調(diào)整。讓它們隨著個(gè)體適應(yīng)度值的增加而變小,隨著個(gè)體適應(yīng)度值的減小而增加。由于種群中每一個(gè)功能塊對(duì)應(yīng)著一個(gè)題型,所以,為了保證每個(gè)題型的數(shù)目不變,交叉點(diǎn)的選擇不能破壞功能塊的完整性。假設(shè)交叉點(diǎn)位于第i個(gè)功能塊內(nèi),則前i個(gè)功能塊不變,從第i+1個(gè)功能塊開(kāi)始逐位交換。(交叉如果在功能塊內(nèi)也發(fā)生的話(huà),可能會(huì)出現(xiàn)同一模塊中有重復(fù)試題的情況)。普通的變異操作可能會(huì)使用戶(hù)指定范圍外的題目出現(xiàn)在染色體中,也會(huì)使各題型的題目數(shù)難以保證,采用有條件的變異算子。即每個(gè)個(gè)體的每一個(gè)基因座上的基因都按設(shè)定的變異概率Pm,在一定范圍內(nèi)(與該基因題型相同且考查點(diǎn)與本個(gè)體其他題的考查點(diǎn)不重復(fù))變異。通過(guò)變異算子可以達(dá)到局部搜索的目的。
5)最優(yōu)保存策略
進(jìn)行了選擇、交叉、變異操作后,比較新一代的最好個(gè)體與上一代的最好個(gè)體的適應(yīng)度,如下降。則以上一代最好個(gè)體替換新一代的最差個(gè)體。此策略可以保證迄今為止的最優(yōu)個(gè)體不會(huì)被交叉、變異等遺傳運(yùn)算所破壞。它是遺傳算法收斂性的一個(gè)重要保證條件。
我院上機(jī)考試系統(tǒng)在實(shí)施過(guò)程中存在的問(wèn)題也是顯而易見(jiàn)的。例如:試卷的生成和考查的知識(shí)點(diǎn)如何盡可能地接近;交叉概率和變異概率波動(dòng)度有限,導(dǎo)致某些個(gè)體產(chǎn)生早熟現(xiàn)象,未能滿(mǎn)足計(jì)劃中的考查點(diǎn)的要求等。如何改變由管理員控制試卷的難度系數(shù),而由系統(tǒng)提高自適應(yīng)性,最終到達(dá)根據(jù)學(xué)生在考試過(guò)程出現(xiàn)的錯(cuò)誤給予相應(yīng)的調(diào)整是我們需要進(jìn)一步研究的。
[1]尹紅衛(wèi),等.一種改進(jìn)的遺傳算法及其在組卷系統(tǒng)中的應(yīng)用[J].現(xiàn)代計(jì)算機(jī),2006,05.
[2]陳蕾,等.基于遺傳算法的自動(dòng)組卷系統(tǒng)的技術(shù)實(shí)現(xiàn)[J].成都航空職業(yè)技術(shù)學(xué)院學(xué)報(bào),2007,03.
[3]張愛(ài)文.自適應(yīng)遺傳算法用于自動(dòng)組卷中的數(shù)學(xué)模型設(shè)計(jì)[J].哈爾濱理工大學(xué)學(xué)報(bào),2006,05.
[4]白云飛.基于自適應(yīng)遺傳算法的智能組卷的研究[J].河北工業(yè)科技,2006,04.