(閩江學(xué)院,福建 福州 350108)
隨著現(xiàn)代教育資源的日趨緊張,如何有效的利用現(xiàn)有教學(xué)資源,合理安排高校計(jì)算機(jī)機(jī)房教學(xué),是當(dāng)前思考的一個(gè)重要問題。同時(shí)伴隨著計(jì)算機(jī)機(jī)房的應(yīng)用,加強(qiáng)對(duì)計(jì)算機(jī)機(jī)房設(shè)備的維護(hù),以及做好計(jì)算機(jī)機(jī)房的考勤管理等,也是發(fā)揮計(jì)算機(jī)機(jī)房作用的重要途徑。針對(duì)上述思考的問題,很多學(xué)者進(jìn)行了研究。如丁花陽則提出采用ASP.NET對(duì)運(yùn)動(dòng)課程進(jìn)行排課,實(shí)現(xiàn)了網(wǎng)絡(luò)排課安排[1];張艷紅(2015)[2]則提出采用遺傳算法等對(duì)機(jī)房課程進(jìn)行排課,進(jìn)而大大提高了高校機(jī)房排課的智能化。本文則在以上研究的基礎(chǔ)上,結(jié)合機(jī)房管理的相關(guān),提出一個(gè)綜合性的機(jī)房管理系統(tǒng),并引入智能算法對(duì)機(jī)房排課進(jìn)行優(yōu)化,以提高計(jì)算機(jī)機(jī)房管理系統(tǒng)的實(shí)用性。
架構(gòu)的搭建是保障系統(tǒng)運(yùn)行的基礎(chǔ),也是根本。從搭建模式來講,目前主流的模式主要包含B/S和C/S模式。其中C/S模式為兩層架構(gòu),這種模式的優(yōu)勢(shì)在于可提高客戶端的響應(yīng)速率,及時(shí)對(duì)后臺(tái)進(jìn)行訪問,但是維護(hù)成本較高;B/S模式為三層架構(gòu),將業(yè)務(wù)邏輯層從服務(wù)器中分離,單獨(dú)作為一層。這樣的優(yōu)勢(shì)在于不需要對(duì)客戶端進(jìn)行升級(jí),而只需要對(duì)應(yīng)用程序進(jìn)行更新,即可實(shí)現(xiàn)升級(jí)。因此,該系統(tǒng)采用B/S三層架構(gòu)模式,將整個(gè)機(jī)房管理系統(tǒng)分為數(shù)據(jù)層、業(yè)務(wù)層和表現(xiàn)層。具體架構(gòu)如圖1所示。
圖1 系統(tǒng)整體架構(gòu)設(shè)計(jì)
在該系統(tǒng)架構(gòu)搭建中,以SQL Server作為數(shù)據(jù)庫(kù),業(yè)務(wù)層與數(shù)據(jù)庫(kù)之間的連接采用ADO.NET數(shù)據(jù)訪問技術(shù)。在表現(xiàn)層,分別針對(duì)教師、機(jī)房管理員和學(xué)生設(shè)置三類不同的業(yè)務(wù)程序,以滿足不同角色的業(yè)務(wù)需求。
結(jié)合機(jī)房管理的相關(guān)業(yè)務(wù),以及系統(tǒng)構(gòu)建的角色,將該系統(tǒng)的不同角色用例設(shè)計(jì)為如圖2所示。
圖2 系統(tǒng)整體角色用例分析
通過圖2的角色用例看出,系統(tǒng)管理員擁有所有功能的操作權(quán)限,學(xué)生只擁有課程信息管理和上機(jī)信息管理兩個(gè)模塊的操作權(quán)限。在課程信息模塊中,教師可進(jìn)行課程查詢、課程優(yōu)化和臨時(shí)課程預(yù)約管理;學(xué)生可進(jìn)行課程查詢。在上機(jī)信息管理中,學(xué)生可查詢上機(jī)繳費(fèi)信息、剩余費(fèi)用信息、上機(jī)時(shí)間等;教師可實(shí)時(shí)查看學(xué)生上機(jī)情況。由此,結(jié)合以上的分析,將系統(tǒng)功能模塊設(shè)計(jì)為如圖3所示。
圖3 系統(tǒng)功能模塊
系統(tǒng)管理。該模塊下包含系統(tǒng)登錄、系統(tǒng)注冊(cè)、系統(tǒng)注銷、數(shù)據(jù)管理四個(gè)部分。前三個(gè)子模塊主要用于用戶身份驗(yàn)證,后一模塊主要用于對(duì)系統(tǒng)后臺(tái)的數(shù)據(jù)管理和維護(hù),包括數(shù)據(jù)備份、數(shù)據(jù)刪除等;課程信息管理。課程優(yōu)化模塊,主要是對(duì)學(xué)校整個(gè)計(jì)算機(jī)機(jī)房課程的優(yōu)化安排,以提高計(jì)算機(jī)機(jī)房的應(yīng)用效率;課程預(yù)約是方便教師臨時(shí)用計(jì)算機(jī)機(jī)房而做出的預(yù)約;基本信息管理。該模塊主要對(duì)用戶的基本信息資料進(jìn)行管理。當(dāng)新生在報(bào)到后,該系統(tǒng)就可以把學(xué)生的信息添加到系統(tǒng)數(shù)據(jù)庫(kù)中,當(dāng)對(duì)部分轉(zhuǎn)學(xué)的學(xué)生,則還是需要注冊(cè)才能使用;設(shè)備信息管理。該模塊主要是對(duì)計(jì)算機(jī)機(jī)房的相關(guān)設(shè)備進(jìn)行管理。所以在該模塊中,主要對(duì)計(jì)算機(jī)設(shè)備進(jìn)行添加和維護(hù)信息進(jìn)行查看等功能模塊;上機(jī)信息管理。該模塊主要用于學(xué)生和教師對(duì)上機(jī)方面的相關(guān)信息進(jìn)行查詢,包括上機(jī)時(shí)間、繳費(fèi)情況等;值班管理。該模塊主要負(fù)責(zé)對(duì)計(jì)算機(jī)房的值班管理安排和查詢等。
登錄模塊是保障系統(tǒng)安全的第一步。用戶首先通過主界面點(diǎn)擊登錄功能,然后通過數(shù)據(jù)庫(kù)引擎與后臺(tái)數(shù)據(jù)庫(kù)交互,最后通過比對(duì)驗(yàn)證用戶的合法性。具體登錄流程可以用圖4流程圖表示。
圖4 系統(tǒng)登錄流程圖
3.2.1 排課問題描述
影響機(jī)房排課的因素很多,約束條件也多。在約束條件中,不僅要考慮機(jī)房的作為和學(xué)生的數(shù)量,同時(shí)還要考慮班級(jí)與機(jī)房的資源的配置安排等。歸納起來,在機(jī)房排課安排中,要考慮課程因素、教師因素、安排時(shí)間因素、機(jī)房因素等[3-5]。
3.2.2 機(jī)房排課數(shù)學(xué)模型構(gòu)建
根據(jù)以上描述看出,機(jī)房排課問題涉及課程、班級(jí)、時(shí)間、教師和機(jī)房等。要求解機(jī)房排課問題,首先構(gòu)建上述幾個(gè)因素的集合:課程集合:L={L1,L2,...,Lx},Li表示第i門課程;班級(jí)集合:C={C1,C2,...,Cy},Ci表示第i個(gè)班級(jí);教師集合:T={T1,T2,...,Tm},Ti表示第i位教師;時(shí)間集合:Q={Q1,Q2,...,Qn},Qn表示第i時(shí)間段;機(jī)房集合:R={R1,R2,...,RP},Ri表示第i時(shí)間段;
將上述五個(gè)因素放入笛卡爾坐標(biāo)系中,構(gòu)成一個(gè)L×C×T×Q×R的多維坐標(biāo)。由此,排課問題就是在該坐標(biāo)中,在各項(xiàng)約束條件下,找到一個(gè)最優(yōu)解的問題。同時(shí)由于班級(jí)、課程和教師已經(jīng)確定,所以上述實(shí)際的求解就是為每一門課程找到一個(gè)時(shí)間和機(jī)房。所以,要求解的為〈Q,R〉元組。由此,可以將上述的問題看成是一個(gè)二分圖的匹配問題。
3.2.3 約束條件
在機(jī)房排課中,主要就是要考慮機(jī)房、班級(jí)和教師不能安排在同一時(shí)間。因此,在這個(gè)約束下,可以將機(jī)房排課的約束分為硬約束和軟約束兩類。其中,硬約束是必須要滿足的條件,軟約束是在硬約束的前提下的一種優(yōu)化。而所謂的硬約束必須要滿足以下條件:①在相同時(shí)間,相同的教師不能在兩個(gè)以上的機(jī)房上課;②在相同時(shí)間,相同班級(jí)不能上兩門不同課程;③機(jī)房座位數(shù)量必須等于或大于班級(jí)人數(shù);④部分教師班級(jí)在特定的時(shí)間不能安排計(jì)算機(jī)機(jī)房課程。
軟約束的條件則是在硬約束的條件下的優(yōu)化:①1周內(nèi)上多次課程的班級(jí)盡量分開,不安排在同1d;②各課程表盡量分配均勻;③盡量安排設(shè)備較好的機(jī)房給不同班級(jí)上課;
圖5 課表查詢流程
3.2.4 問題求解
要解決以上的問題,需要采用算法對(duì)上述數(shù)學(xué)問題進(jìn)行求解。傳統(tǒng)的求解方法中,通常采用蟻群算法進(jìn)行求解。但蟻群算法容易陷入極早收斂的問題。因此在研究中,對(duì)傳統(tǒng)的蟻群算法進(jìn)行改進(jìn)。研究認(rèn)為傳統(tǒng)蟻群算法可能會(huì)因?yàn)榕耪n不集中,影響最優(yōu)解時(shí)間。所以,在研究中引入變異機(jī)制的方式,以提高課程編排的優(yōu)化,防止課表沖突,防止過早收斂。具體步驟為:
①人工螞蟻構(gòu)造
人工螞蟻能記住自己周游的節(jié)點(diǎn),在排課表中則表示哪些〈Q,R〉節(jié)點(diǎn)排過課,哪些沒有。
②初始化
將上述構(gòu)造的m個(gè)螞蟻分布在n個(gè)節(jié)點(diǎn)上,并將這些節(jié)點(diǎn)設(shè)定為螞蟻的禁忌節(jié)點(diǎn)。
③節(jié)點(diǎn)選擇
圖6 基本信息界面
圖7 課表查詢
為避免以往的過早收斂問題,采用自適應(yīng)選擇和動(dòng)態(tài)調(diào)整的方式對(duì)路徑進(jìn)行選擇。具體是按照概率的方式對(duì)路徑進(jìn)行選擇。
(1)
(2)
上式中,τij(t)表示當(dāng)前t時(shí)刻在路徑(i,j)上的信息素;ηij表示螞蟻從i節(jié)點(diǎn)到j(luò)節(jié)點(diǎn)的啟發(fā)信息,QRk表示為螞蟻k的時(shí)間-機(jī)房分配表,q∈[0,1]。
④信息素更新
當(dāng)螞蟻移動(dòng)到下一個(gè)節(jié)點(diǎn)后,不僅需要更改禁忌表,還要更新信息素。具體更新公式為:
τij(t+1)=(1-ρ)·τij(t)+ρ·τijk(3)
⑤計(jì)算最佳路徑
當(dāng)螞蟻?zhàn)咄晁泄?jié)點(diǎn),則計(jì)算最佳的路徑。
在系統(tǒng)排課成功后,教師和學(xué)生都可對(duì)課表進(jìn)行查詢。具體查詢重新流程如圖5所示[6]。
在基本信息管理中,包含學(xué)生信息、設(shè)備信息、機(jī)房信息、教師信息等部分。具體界面如圖6所示。
通過上述的設(shè)計(jì),得到圖7所示的課表查詢界面。
通過上述的設(shè)計(jì)看出,通過該智能化機(jī)房管理系統(tǒng),可實(shí)現(xiàn)設(shè)備維護(hù)管理、學(xué)生基本信息管理、課程編排等功能。而在上述的設(shè)計(jì)中,解決了機(jī)房管理中最為難的問題,那就是對(duì)課程進(jìn)行優(yōu)化;其次是借助開發(fā)技術(shù),給出部分功能實(shí)現(xiàn)的流程和界面。