羅雅麗
(常德職業(yè)技術(shù)學(xué)院現(xiàn)教中心,湖南常德415000)
基于常職院考試題庫(kù)管理系統(tǒng)自動(dòng)組卷算法的實(shí)現(xiàn)研究
羅雅麗
(常德職業(yè)技術(shù)學(xué)院現(xiàn)教中心,湖南常德415000)
文章從考試系統(tǒng)的核心服務(wù)自動(dòng)組卷算法和考試系統(tǒng)的系統(tǒng)實(shí)現(xiàn)的兩個(gè)方面詳細(xì)的描述了考試系統(tǒng)的實(shí)現(xiàn)過(guò)程,分析了系統(tǒng)實(shí)現(xiàn)的算法及程序,并給出了部分的核心程序代碼及流程圖,為系統(tǒng)的實(shí)現(xiàn)和數(shù)據(jù)測(cè)試提供了依據(jù).
自動(dòng)組卷算法;遺傳算法;概率密度函數(shù)
基于常職院考試題庫(kù)管理系統(tǒng)在試卷自動(dòng)組卷方面,提出了應(yīng)用遺傳算法以及概率密度算法的方法和思想.
考試題庫(kù)試卷初始種群根據(jù)自動(dòng)組卷方案中的總題數(shù)、題型比例、總分等要求然后調(diào)用概率密度函數(shù)隨機(jī)產(chǎn)生,這種自動(dòng)組卷的處理方式使得初始種群一開(kāi)始就滿足了自動(dòng)組卷方案的基本要求.從而加速了遺傳算法的收斂并減少迭代的次數(shù).采用分組實(shí)數(shù)編碼,可以適應(yīng)以往采用二進(jìn)制編碼搜索空間過(guò)大和編碼長(zhǎng)度過(guò)長(zhǎng)的缺點(diǎn),而且同時(shí)消除了個(gè)體的解碼時(shí)間,加速了求解速度.適應(yīng)度函數(shù)(Fitness function)是用來(lái)評(píng)判試卷群體中個(gè)體的優(yōu)劣程度的指標(biāo),遺傳算法利用適應(yīng)度值這一參數(shù)指標(biāo)來(lái)指導(dǎo)搜索方向,而不需要適應(yīng)度函數(shù)滿足連續(xù)或可導(dǎo)以及其它輔助信息.
在初始化種群的時(shí)候,題數(shù)和總分等要求是已知的,所以在初始化種群的時(shí)候所需要考慮的只有知識(shí)點(diǎn)分布和試題的難度系數(shù).BLL(接口層)與WCF Service層、DAL(數(shù)據(jù)訪問(wèn)層)算法處理方法如下:
1.1 BLL接口層
接口層實(shí)現(xiàn)對(duì)WCF服務(wù)調(diào)用的封裝,讓W(xué)eb應(yīng)用層不再關(guān)心通信協(xié)議、類型適配、生命周期等錯(cuò)綜復(fù)雜的問(wèn)題,只需要按功能需求對(duì)接口提供的組件進(jìn)行組裝;接口層對(duì)WCF服務(wù)的調(diào)用采用兩種方式為:請(qǐng)求響應(yīng)模式和單箱操作模式.
請(qǐng)求-響應(yīng)模式:所謂的請(qǐng)求-響應(yīng)模式如述,此種模式中由客戶端發(fā)送模式請(qǐng)求,服務(wù)端返回操作結(jié)果,如果請(qǐng)求-響應(yīng)模式中服務(wù)器沒(méi)有在預(yù)期的時(shí)間內(nèi)響應(yīng)請(qǐng)求,此種模式的客戶端就會(huì)產(chǎn)生異常信息.
單向操作模式:客戶端發(fā)送請(qǐng)求,服務(wù)端會(huì)將請(qǐng)求調(diào)用放入隊(duì)列,不給客戶端返回任何消息,并按先進(jìn)先出執(zhí)行;隊(duì)列存儲(chǔ)是有限的,當(dāng)超出了隊(duì)列存儲(chǔ)的設(shè)置值,則會(huì)阻塞請(qǐng)求通道,執(zhí)行完成時(shí)從隊(duì)列中移除此請(qǐng)求,當(dāng)隊(duì)列有新的空間時(shí),解除阻塞.
接口層通過(guò)ServiceHost或ChannelFactory這兩個(gè)類通過(guò)服務(wù)契約與WCF服務(wù)建立通信通道,例如在本系統(tǒng)中在實(shí)現(xiàn)查詢學(xué)生成績(jī)單中使用ServiceHost以請(qǐng)求-響應(yīng)模式與服務(wù)層建立通信通道.
1.2 WCF Service層
本層靈活的借用三層架構(gòu)和WCF服務(wù)的特性,實(shí)現(xiàn)對(duì)業(yè)務(wù)邏輯處理的封裝,完成數(shù)據(jù)的訪問(wèn)、運(yùn)算、存儲(chǔ),并為BLL接口層提供服務(wù)契約(ServiceContract)、消息契約(MessageContract)、數(shù)據(jù)契約(DataContract)、操作契約(OperationContract),供接口層綁定協(xié)議實(shí)現(xiàn)對(duì)服務(wù)的調(diào)用.下面以自動(dòng)組卷實(shí)例來(lái)說(shuō)明本層的技術(shù)實(shí)現(xiàn):
1.2.1 創(chuàng)建服務(wù)契約(ServiceContract)和操作契約
(OperationContract)
為BLL接口層的調(diào)用準(zhǔn)備相應(yīng)的試卷服務(wù)契約和操作契約,服務(wù)合約(Service Contract),訂定服務(wù)的定義,示例代碼如下:
///
///WCF服務(wù)層試卷接口
///
[ServiceContract]//定義服務(wù)合約
public interface ITestPaper_Service
{
[OperationContract]//操作合約
bool Generate(int planID,ref int tID);
[OperationContract]//操作合約
public bool Delete(int tID)
[OperationContract]//操作合約
public bool Update(M_TestPaper model)
[OperationContract]//操作合約
DataSet GetTestPaper(int tID);}
1.2.2 創(chuàng)建數(shù)據(jù)契約(DataContract)
本實(shí)例依賴于自動(dòng)組卷方案與方案詳情、試題、試卷、操作員、課程等對(duì)象,所以需要?jiǎng)?chuàng)建相應(yīng)的數(shù)據(jù)契約,數(shù)據(jù)合約(Data Contract),訂定雙方溝通時(shí)的數(shù)據(jù)格式,示例代碼如下:
///
///數(shù)據(jù)契約:自動(dòng)組卷方案
///
[DataContract]//數(shù)據(jù)契約
public class Plan{
[DataMember]
public int ID;
[DataMember]
public string Name;
[DataMember]
public int CoursesID;
[DataMember]
public int Factor;
[DataMember]
public int Number;
[DataMember]
public int Fraction;}
1.2.3 實(shí)現(xiàn)服務(wù)契約
具體來(lái)說(shuō)是實(shí)現(xiàn)服務(wù)契約定義的接口中的方法,本示例將按指定的自動(dòng)組卷方案生成試卷,算法如下:
1.2.3.1 根據(jù)自動(dòng)組卷方案ID(PlanID)通過(guò)DAL層得到數(shù)據(jù)對(duì)象自動(dòng)組卷方案(Plan)和方案詳情(PlanList),如圖1所示.

圖1 自動(dòng)組卷方案的生成圖
1.2.3.2 根據(jù)數(shù)據(jù)契約對(duì)象Plan的課程ID(CoursesID)和數(shù)據(jù)契約對(duì)象PlanList的題型(QType)得到初始種群(篩選符合條件的試題),如圖2所示.

圖2 生成初始種群
1.2.3.3 根據(jù)數(shù)據(jù)契約對(duì)象Plan的試題總數(shù)(Number)、總分(Fraction)和數(shù)據(jù)契約對(duì)象PlanList的每個(gè)題型的試題總數(shù)(Number)人初始種群,再通過(guò)利用概率密度函數(shù)隨機(jī)生成初始遺傳基因,如圖3所示.
1.2.3.4 根據(jù)數(shù)據(jù)契約對(duì)象Plan的難度系數(shù)(Factor)和試題(Questions)數(shù)據(jù)契約對(duì)象的難度系數(shù)(Factor)、知識(shí)點(diǎn)分布(KnowledgeID)利用適應(yīng)度函數(shù)、遺傳算法、概率密度函數(shù)找到最優(yōu)個(gè)體并記錄到試卷表,最優(yōu)試卷的生成流程如圖4所示.

圖3 生成初始基因

圖4 最優(yōu)試卷的生成
采用遺傳算法的組卷方法,考試題庫(kù)試卷初始種群根據(jù)自動(dòng)組卷方案中的總題數(shù)、題型比例、總分等要求利用遺傳算法中的各項(xiàng)參數(shù)以及各個(gè)子程序來(lái)實(shí)現(xiàn)自動(dòng)組卷.遺傳算法組卷方法的實(shí)現(xiàn)包括目標(biāo)函數(shù)的確定,試卷相關(guān)的指標(biāo)有試卷難度、題型、知識(shí)點(diǎn)分布等;個(gè)體編碼的確定,在試卷的組卷問(wèn)題中必須對(duì)試卷等問(wèn)題進(jìn)行編碼,組卷的問(wèn)題就是解決組成試卷的組成問(wèn)題;初始種群的產(chǎn)生,遺傳算法中將會(huì)以一代種群為基礎(chǔ),采用隨機(jī)法生成試卷;適應(yīng)度函數(shù)的設(shè)計(jì);組卷算法的選擇操作;遺傳算法的交叉操作;遺傳算法的變異操作等;遺傳算法以其相當(dāng)明確的操作步驟而顯得非常的有條理,容易用程序?qū)崿F(xiàn),基于遺傳算法的程序流程圖如圖5所示.

圖5 遺傳算法流程圖
〔1〕Richard McCarthy,Bruce White,Martin Grossman.Object O riented Analysis and Design:Do We Need More UML in the Classroom.Information SysteMEducation Journal, 2005,3(46):3-7.
〔2〕SMith,Keith.Simplifying AJAX-style Webdevelopment.Computer,2006,39(5):8-101.
〔3〕AbderrahiMGhadi,Driss Mammass,Maurice Mignotte.Hierarchical Role Graph Model for UNIX Access Control.International Journal of Future Generation Communication and Networking,2009,2(2):59-68.
〔4〕Jennings N R,Sycara K,Wooldridge MJ.A roadmap of agent research and-7 5-development Journal of Autonomous Agents and Multi-Agent Systems,2007,1(1):275-306.
〔5〕Robert K.Branson.The Florida Schoolyear 2000 initiative:Redesigning Public Education.Education Technology,2006,37(6):115-133.
〔6〕Digital Forensic Research Workshop.“A Road Map for Digital Forensic Research”,2001.
TP391.6
A
1673-260X(2013)07-0025-03
院級(jí)青年專項(xiàng)資助課題(zy1230)
赤峰學(xué)院學(xué)報(bào)·自然科學(xué)版2013年13期