田 杰,胡秋霞,梁茜茜
(1.西安航空學院計算機學院,西安 710077;2.西北農林科技大學信息工程學院,楊凌 712100)
在教學工作中,課程表是教學工作的領導的方針,排課教學系統能夠有效地組織老師教課,合理地安排時間,提高工作效率。排課過程是要把有限的資源合理地進行安排,故不合理的排課課表會給教學工作帶來很多的煩惱和問題,而且降低了工作效率。如何在滿足教學要求條件下,合理配置教師,教室等資源并且符合各方面的排課要求,是一項十分復雜的工作。計算機由于運算速度快,處理操作能力強,耗時少,因此大量被運用在排課系統中。遺傳算法為一種優化算法,可以很好地解決排課系統中的多目標優化問題,故基于遺傳算法的排課系統得到了廣泛的應用[1]。本文擬基于Java[2]和SQL Server[3],采用遺傳算法來解決大學排課問題,為高校的排課問題提供了一定的參考性。
該系統采用B/S(Browser/Server),即瀏覽器/服務器組成結構模式。設定了兩大模塊,其中基本信息模塊中包括教師、教室、基本課程和班級信息各個子模塊。排課信息模塊中有基于遺傳算法的自動排課信息模塊,按照班級可以打印課表操作的模塊,按照老師查詢條件可以打印出網頁查詢表格。教務處每個學期教學任務模塊設置和在一個固定班級固定課程由固定老師上課的設定操作模塊。
采用E-R圖(Entity Relationship Diagram)即實體-關系圖的方法進行數據結構分析,如圖1所示。

圖1 E-R圖
2.3.1編碼及初始種群
不同的編碼方式會影響效率的高低,在排課問題中可以將每一個教師的課程表設計看成染色體,采用二進制編碼。基因組成是排課初始種群生成,針對軟性約束要求有老師要求時間地點的優先排到課表中,將剩下的老師在用系統的隨機函數插入,初始種群大小為20。
2.3.2適應度函數
確定適應度函數必須滿足可行性解和人性要求約束,滿足的程度越好越適用。每條染色體的適應度函數計算如下:

式中,K1At(t(Si))+K1Az(t(St))x(i)表示體育課自習課等期望值;Bt(t(St))表示課程離散度的期望值;K1K2K3表示影響的參數。
2.3.3檢測與消除沖突
(1)教師沖突問題分析:一個教師只能同一個時間片段,在一個班級里上課。(2)教室沖突問題分析:一個教室不能有多門課程,在相同時間里。人工設置的編碼方式可以跳過此沖突。(3)班級沖突問題分析:一個班級不能在相同的時間段里有多門課程。人工設置的編碼方式可以跳過此沖突。
2.3.4選擇、交叉、變異運算
選擇運算是產生優良種群的中間產物階段,根據排課問題的硬性要求和軟性約束下選擇復制的過程,選擇算子取值0.8。交叉運算是將父代中染色體基因片段在交叉點進行互換操作,常用的有單點交叉和雙點交叉操作。本系統采用的是單點交叉操作,取值0.15。在兩個父代的交叉點進行互換操作。變異算子是系統生成下一代種群的方式和方法,變異算子取值范圍一般是0.001和0.2之間。本系統取0.01,單點變異法。
排課教學系統設計中使用MyEclipse Java Enterprise技術進行開發。Tomcat服務器配置,測試過程中需要首先打開服務器,在瀏覽器上進行調試和運行,Microsoft SQL Server 2008數據庫提供相應的數據技術支持。包括登錄模塊、整體框架布局測試、智能排課、人工調整操作模塊頁面、教師及班級課表打印窗口班級課程表打印視圖窗口和教師課程表打印的界面設計。
該系統中采用B/S(Browser/Server)結構,利用MyEclipse Java Enterprise技術進行開發。詳細設計了系統的登錄模塊、整體框架布局、智能排課模塊、人工調整模塊、打印功能模塊,界面友好,但算法運行時間長,下一步需要繼續改進。
[1]李建麗.基于遺傳算法的排課系統研究[D].哈爾濱工程大學,2013.
[2]鄭曉梅.一個基于Eclipse的通用Java程序插樁工具[J].計算機科學,2017,11A(44):534-537.
[3]馬萬成,袁鐵江,張恒等.基于VC++與SQL Server數據庫的風電場有功出力的仿真軟件實現[J].計算機科學,2011,7(38):139-144.