摘 要:大學課程表問題(UTP)是阻礙各個學校的教學資源多目標組合優化問題。它的解決不僅有助于對運籌學中多目標優化類問題的研究,而且對解決我國現階段教育中教學資源相對稀少、而學生又相對較多的現狀尤其具有現實意義。采用蟻群算法和遺傳算法混合建立高校智能排課系統,可以有效地減少搜索空間,使種群在遺傳過程按規則分區,在區間中噴灑信息素,染色適應度與種群區間交互,形成正反饋系統,驅動整個算法得到排課較優解。
關鍵詞:智能排課系統; 排課;遺傳算法;蟻群算法
中圖分類號:TN911.2; TP311.51 文獻標識碼:A
文章編號:1004-373X(2010)14-0121-03
Application of Ant-colony Genetic Algorithm in Smart Course Schedule Systems of Colleges
LI Yu-ji1, LU Cai-wu2, LIU Guan3
(1.Department of Information and Control Engineering, Xi’an University of Architecture and Technology, Xi’an 710055, China;
2. Department of Management, Xi’an University of Architecture and Technology, Xi’an 710055, China;
3. Graduate School, Xi’an University of Architecture and Technology, Xi’an 710055, China)
Abstract: Almost all the universities have been plagued with their timetable problems- teaching resources multi-objective combinatorial optimization problems for a long time. The solution of the problems will not only help the universities to study the multi-objective optimization in operations research, but also have the practical significance for solving the lack of teaching resource at the present stage and dealing with the current situation of students over the school. The smart course schedule system with the hybrid application of the ant colony algorithm and genetic algorithm can effectively reduce the search volume, so that the rule-based partition of the populations, the pheromone spray in the range of section, dyeing fitness and population interact are executed in the genetic process to form a positive feedback system, and then drive the whole algorithm to obtain the better schedule result.
Keywords: smart course schedule system; course schedule; genetic algorithm; ant-colony algorithm
當前我國高校的排課軟件系統很少,涉及到自動排課算法的系統更少,這些系統只能在排課過程中輔助工作人員進行排課,并沒有一套完善有效的自動排課策略(算法),它決定了這些系統要么沒有真正的排課功能,要么排完課后,會出現有的課程無法安排,仍然需要工作人員進行大量的調整工作。而且大部分僅局限于輔助人工排課,并沒有任何“智能”的成分。另一方面,僅有的幾套自動排課系統卻由于產生了太多的“甩課”(因無法安排時間或者教室而不能排入課表的課程),系統的實際使用非常困難,往往由于“甩課”太多,使后期人工調整的工作量具大。
在算法選擇過程中,如果僅采用簡單的循環遍歷各個元素以避免沖突的方法,排課效率低下;簡單的隨機散列方法,又難以有效控制找到合理方案。并且二者通常情況下得到課表的適應度都非常低??赡墚a生:一位老師或一個班級一天內連續上課,之后一天又沒有課;同一門課程一天內持續上,以后幾天又沒有這門課程;采用遺傳算法,理論上能夠得到較為合理地排課方案,也存在因為過早收斂得不到解決方案或者得不到最優方案的情況。為了解決這些問題,將蟻群算法與遺傳算法相結合使用,可以有效地減少搜索空間,并能夠得到比較滿意的結果。
1 高校排課問題的描述
Carter和Laporte提出:高校排課問題是一個多元分配問題,它研究的就是如何把學生和老師分配給課程,課程單元或者班級,如何把事件(上課事件)分配給教室和時間[1] 。從上述定義來看,高校排課問題研究的就是如何把一系列的課程分配給有限的教室和一周內有限的上課時間單元,以及如何把學生和老師分配給課程。
1.1 排課問題所涉及的元素
課程的編排不僅涉及參與課程的主體學生和教師,時間和教室也是在課程編排過程中的重要因素。所以排課問題所設計的元素主要有以下5種(排課問題概念模型見圖1):
班級集:R={r1,r2,r3,…,rn};教師集:T={t1,t2,…,tn};教室集:S={s1,s2,…,sn};課程集:C={c1,c2,…,cn};時間集:M={m1,m2,…,mn}
它們組成一個授課任務集合D={r,t,s,c,m},r∈R,t∈T ,s∈S,c∈C,m∈M。
圖1 排課問題概念模型
1.2 排課過程中所要遵循的約束條件
一個可用的課表,應當完全遵循以下的基本約束:
(1) 班級約束:一個班級在一個時間內最多只能有一門課程;
(2) 教師約束:一位教師在一個時間內最多只能有一門課程;
(3) 教室約束:一個教室在一個時間內最多只能有一門課程。
另外除了以上的基本約束條件外,一個完美的課程表還應該考慮以下的“人性化”約束條件:
(1) 班級的每周上課時間分布均勻;
(2) 教師的每周授課時間分布均勻;
(3) 同一班級相鄰時間段的上課地點不能相距太遠;
(4) 同一教師相鄰時間段的上課地點不能相距太遠。
2 應用蟻群遺傳算法解決排課問題
2.1 遺傳算法
遺傳算法(genetic algorithm,GA)是近幾年發展起來的一種嶄新的全局優化算法。1962年霍蘭德(Holland)教授首次提出了GA算法的思想,它借用了仿真生物遺傳學和自然選擇機理,通過自然選擇、遺傳、變異等作用機制,提高各個個體的適應性[2] 。從某種程度上說遺傳算法是對生物進化過程進行的數學方式仿真。
這一點體現了自然界中“物競天擇、適者生存”進化過程[3] 。與自然界相似,遺傳算法對求解問題的本身一無所知,它所需要的僅是對算法所產生的每個染色體進行評價,把問題的解表示成染色體,并基于適應值來選擇染色體,使適應性好的染色體有更多的繁殖機會。并且在執行遺傳算法之前,給出一群染色體,也即是假設解。然后把這些假設解置于問題的“環境”中,也即一個適應度函數中來評價。并按適者生存的原則,從中選擇出較適應環境的染色體進行復制,淘汰低適應度的個體,再通過交叉,變異過程產生更適應環境的新一代染色體群。對這個新種群進行下一輪進化,直到最適合環境的值。
遺傳算法的運行過程是典型的迭代過程,其必須完成的工作內容和基本參數步驟如圖2所示。
圖2 遺傳算法流程圖
(1) 選擇編碼策略,把參數集合和數域轉換為位串結構空間;
(2) 定義適應值函數;
(3) 確定遺傳策略,包含選擇群體大小,選擇、交叉、變異方法,以及確定交叉概率pe變異概率pm等遺傳參數;
(4) 隨機初始化生成群體;
(5) 計算群體中個體位串解碼后的適應值;
(6) 按照遺傳策略,運用選擇、交叉和變異算子作用于群體,形成下一代群體。
2.2 蟻群算法
蟻群算法是模擬真實蟻群覓食過程尋求最短路經的原理,由意大利學者M Dorigo等人首先提出的[4] 。最初的蟻群算法稱為螞蟻系統(ant system),對于解決旅行商問題(TSP)及二次分配問題取得了較好的效果。經過改進后稱為蟻群算法。
自然界中的螞蟻是以外激素(pheromone)為媒進行信息傳遞的,從而螞蟻個體能相互協作,完復雜的任務。蟻群的行為表現出一種信息正反饋現象:某一路徑上經過的螞蟻越多,則后到者選擇該路徑的概率就越大[5] 。
2.3 蟻群遺傳算法
遺傳算法、蟻群算法作為2大仿生優化算法,有其各自的優點和不足。
遺傳算法具有大范圍快速全局搜索能力,但對系統中的反饋信息利用不夠,當求解到一定范圍時往往做大量無用的冗余迭代,求精確解效率低。蟻群算法原理是一種正反饋機制,但初期信息素匱乏,求解速度慢。
將遺傳算法與蟻群算法的融合[6] ,采用遺傳算法生成信息素分布,利用蟻群算法求精確解,優勢互補,期望獲得優化性能和時間性能的雙贏。將遺傳算法與蟻群算法的混合來解決排課問題,不僅采用遺傳算法生成初始信息素分布,在蟻群算法尋優中,采用交叉和變異的策略,改善解的質量。
解決排課問題的蟻群遺傳算法如下:
(1) 初始化群體,利用遺傳算法隨機產生排課問題的一個解;矩陣 A 表示一個染色體,每個染色體就是一個排課方案。
A =a11 a12 a13 … a1n
a21 a22 a23 … a2n
a31 a32 a33 … a3n
am1 am2 am3 … amn
(2) 計算排課問題隨機解上每個個體的適應度值。
(3) 引入蟻群算法的思想,將解矩陣等分成若干空間,在各個空間“噴灑”信息素[7] 。建立適應度與信息素的相應關系,使得適應度強的染色體,在所屬區間內留下較強的信息素;信息素強的區間內,染色體所選取的概率較大[8] 。
(4) 采用適應度排序方法,選擇將進入下一代的個體。
(5) 分別按照概率Pc對下代個體進行交叉操作,按照概率Pm對下代個體進行變異操作。
(6) 判斷新的染色體是否滿足滿足排課問題約束條件,是則結束迭代,否則進入步驟(2)。
(7) 解得排課問題的較優解。
2.4 效果評估
分別在任務數為100,500,1000時利用仿真技術對循環遍歷算法、遺傳算法、蟻群遺傳算法所應用的時間和適應度進行模擬實驗。其中設定條件:
(1) 循環遍歷算法以得到可行解為結束條件;
(2) 遺傳算法和蟻群遺傳算法需要完成150次循環迭代;
(3) 教室為無差別教室。
得到運行時間結果如表1所示。
表1 3種排課算法運行時間比較
任務數 算法
循環遍歷算法遺傳算法蟻群遺傳算法
1001.232.539.5
500110.2162.9188.4
1 0001 179.3633.0667.3
得到適應度結果比較如表2所示。
表2 3種排課算法適應度比較
任務數 算法
循環遍歷算法遺傳算法蟻群遺傳算法
10052186231
50064287362
1 00058298374
3 結 語
在求解過程中的選擇交叉步驟中,普通的遺傳算法直接從上一代中選取2個染色體進行交叉,這樣可能因為局部收斂而得不到較優解。在此引入了蟻群算法的思想,將信息素的濃度關聯到個體適應度,在選取下一代個體操作中,能夠更全面地選取適應度高的個體進行交叉變異操作,達到全局選取,更快地選取最優個體,改善了解得質量。另外在考慮教室之間的容量大小,電教室與普通教室之間的差別上,還需要做更加深入的研究。
參考文獻
[1]CARTER M W, LAPORTE G. Recent developments in practical course timetabling[ M] //BURKE E K, CARTER W. The Practice and Theory of Automated Timetabling. Berlin: Springer-Verlag, 1997: 3-19.
[2][日]玄光南.遺傳算法與工程設計[M].程潤偉,江定偉,譯.北京:科學出版社,2000.
[3]段海濱.蟻群算法原理及其應用[M].北京:科學出版社,2005.
[4]王凌.智能優化算法及其應用[ M] .北京:清華大學出版社,2001.
[5]徐寧,李春光,張健.幾種現代優化算法的比較研究[ J] .系統工程與電子技術,2002(12):100-103.
[6]劉秋紅,寒楓,張任.基于分層的自適應遺傳算法在UTP中的應用研究[ J] .貴州大學學報:自然科學版,2007,2(24):154-157.
[7]余樣宣,崔國華,鄒海明.計算機算法基礎[M].2版.武漢:華中科技大學出版社,2000.
[8]丁建立,陳增強,袁著扯.遺傳算法與螞蟻算法的融合[ J] .計算機研究與發展,2003,40(9):1351-1356.
[9]楊為民.使用遺傳算法編排課程表的研究與應用[ D] .合肥:安徽大學,2003.
[10]WANG Ling, ZHANG Liang, ZHENG Da-zhong. An effective hybrid genetic algorithm for flow shop scheduling with limited buffers[J]. Computers and Operations Research, 2006, 33: 2960-2971.