張小紅
(湛江師范學院信息科學與技術學院,廣東湛江 524048)
高校教務工作中,排課是基本和重要的工作之一,其實質是給教學計劃中設置的課程安排合適的時間和地點,保證教學工作順利進行。同時排課也是一項復雜的工作,涉及到教師、學生、教室等因素。在目前高校規模不斷擴大,教學資源緊張,教師總數不足的前提下,排課問題顯得尤為重要。
(1)硬約束[2]。排課工作中應遵守的規則:1)同一時間同一教師只能上一門課程;2)同一時間同一學生只能上一門課程;3)同一時間同一教室只能上一門課程;4)上課按最小的單位(節)進行;5)某一課程被安排的教室座位數應大于該門課程上課人數。
(2)軟約束。對排課的合理性和滿意性會產生影響的因素:1)一個班級的課程時間安排應盡量分布均勻。2)一周的課程表中的每個時間有一定的裕度。3)教師對上課時間存在的期望;4)班級相鄰時間內的上課地點盡可能近。5)體育課應排在下午或上午3、4節,體育課后應避免安排講授課。6)實驗、實習課程有其自身的排課方式。7)可先行手工排定某些課程的時間和教室。
(1)以單個學生作為上課對象;(2)可以自動排課;(3)可以手工排課;(4)可以生成任意班級、任課教師和上課教室的課表;(5)可以提供教師、學生和教室管理者等查詢課表的接口;(6)可以設置不同操作者的系統使用權限;(7)可以形成報表,并以其他格式輸出。
高校的排課工作由教務處根據各院系制定的教學計劃,在每學期末生成下一學期的教學任務,并下發給各教學單位,審核上課的軟硬件條件約束,然后根據教學單位返回的學期教學任務,制定全校各班級的課表[3]?;玖鞒倘鐖D1所示。

圖1 排課系統工作流程
排課系統的主要功能設計如下:
(1)教學資源管理。主要管理各類教室、實驗室、教學場館及場地的相關信息,對教學資源信息進行錄入、增加、修改、刪除等操作。
(2)課表框架設置。包括安排周學時、周數、學年、學期等上課的具體時間等。
(3)教學日歷管理。根據指定學期開始日期和結束日期,由系統自動生成教學日歷。
(4)排課相關條件設置。包括設置可排課時間、不可排課時間、課程性質與排課時間之間的關聯。設置排課教室的類型與課程性質之間的關聯。設置合班上課的時間、課程性質及上課教室之間等關聯。
(5)特殊課程安排。對上課時間、地點有特殊要求的課程進行預先安排。
(6)智能排課。根據現有教學資源對所開設的課程自動合理的分配時間和教室等。
(7)手工排課。系統須具備手動處理排課結果的功能,即對系統己自動排好的課程或系統無法自動安排的課程,部門管理員在設定手動排課的時間內進行手動調整或安排。
(8)課程更改處理。在實際操作中,可能因為一些客觀原因需對代課教師、上課的起止周或周學時等進行調整。
(9)停調補課處理。在實際教學過程中,停、調、補課現象時有發生,系統可對教師的停、調、補課進行實時安排。
(10)查詢統計處理。按照模塊中各種組合條件查詢上課情況并生成各類表格。
(1)概念結構設計

圖2 排課系統E-R圖
(2)邏輯結構設計。根據概念結構設計得到的E-R模型,該排課系統主要涉及到以下數據庫表:教師信息表、教室信息表、班級信息表、課程信息表、時間安排信息表和教學計劃信息表。
文中采用的遺傳算法設計,根據系統的具體情況,對算法的實際使用做了適當的修改,具體設計步驟如下。
(1)染色體編碼:采用教師、班級、課程以及教室和教學時間段的組合作為染色體,即使用每個教師的課表作為染色體,盡可能地將課程表的各種類型沖突和各項常識表現在內。
(2)產生初始種群:多個染色體組成”個體”,也就是一種排課方式。多個”個體”組成種群。根據課程多少,動態安排種群大小。
(3)沖突檢測和消除:對初始種群中的個體進行沖突檢測,如存在各類沖突,例如“一師多班”沖突、“固定時段”沖突等,則確定沖突的行、列,然后在同一行找另一隨機位置,將這兩個位置的數值互換。直至無沖突存在。
(4)計算適應度值:按照適應度函數計算適應度值。
(5)選擇操作:按照適應度值計算選擇率和期望的選擇數,進行選擇產生下一代種群。從選擇數的算式可知,具有較高適應度值的父代更有可能在下一代中產生一個或多個子代。
(6)交叉操作:根據選擇操作的結果選取兩個較好的排課結果作為父體,將兩個染色體的上課教師和上課時間段進行交叉。
(7)變異操作:按概率決定變異的次數。對參與變異的個體隨機選一行,在該行隨機生成兩個變異的位置,然后將這兩個位置的教師編碼互換。值得注意的是當這兩個編碼中至少有一個是固定教學時段碼時,則取消本次交換,重新執行該步驟,直到交換完成。
(8)沖突檢測和再消除:經過交叉和變異操作后,可能會產生沖突,因此要進行沖突再檢測,并解決沖突。
經過一次遺傳算法步驟,新一代種群的適應度值可能有所提高,問題的解便朝著最優解的方向前進,將這個過程進行下去,最終將逼近全局最優解,而每一步的操作較簡單,且對問題的依賴性較小。
通過智能排課功能模塊可以實現排課數據條件設置、系統智能排課、人機交互式排課、考試安排、調停補課申請處理、其他上課時間地點安排、查詢打印等功能。智能排課模塊子菜單的實現界面如圖3所示。

圖3 智能排課模塊主界面
系統自動排課后,用戶通過人機交互方式來調整教師上課時間地點,調整課程過程中系統將自動檢測沖突。對滿意的班級、教師或場地課表,用戶可直接預覽打印或輸出Excel。人機交互式排課功能實現界面如圖4所示。

圖4 自動排課功能界面
課程、教師、教室、班級優先級設定,實現界面如圖5所示。
通過該系統可以較大程度上減少教務人員的工作量,避免手工排課可能導致的沖突,提高辦公效率。排課問題是一個多目標的組合優化問題,系統中還存在一些未能考慮到的實際問題,所有的約束條件也并未完全涉及,還需在實際應用中不斷完善和改進。

圖5 課程、教師、教室、班級優先級設定功能界面[4]
[1] 李富星.自動排課系統的設計與實現[D].西安:西安電子科技大學,2010.
[2] 張長庚.基于遺傳算法的浙江水利水電??茖W校排課系統設計與實現[D].成都:電子科技大學,2010.
[3] 蒲靜,陳華月,傅饒.通用排課系統的設計與實現[J].福建電腦,2010(6):170-171.
[4] 薩師煊,王珊.數據庫系統概論[M].3版.北京:高等教育出版社,2000.
[5] 李玉吉,盧才武,劉冠.蟻群遺傳算法在高校智能排課系統中的應用[J].現代電子技術,2010,33(14):129 -131.
[6] 屈正庚,劉雅莉.基于TGC的高校排課算法[J].電子設計工程,2011(8):22-24,27.