基於遺傳演算法的排課系統

2021-08-29 17:38:27 字數 3185 閱讀 3890

一、介紹

隨著近幾年各個高校的合併與擴招,我國的綜合性大學和各個高校中在校的學生數量的大大增加,對於高校教務部門來說,排課工作是非常令人頭痛的事,經常會出現課程排列衝突,比如:乙個教師在同一時間上兩門課,有兩個教師同時去乙個教室上不同的課程,有些教師在特定時間不可以上課。如果沒有很好地解決這些衝突,必將產生教學混亂等現象。可見,排課演算法的正確性、高效性是非常關鍵的。[1]

20世紀70年代中期,就有人論證了課表問題是np完全問題。當課表所涉及的任何資訊量稍有變化將會導致課表編排選擇方案的劇增。課表問題存在固定的數學模型,能找到相應的解,且是一組解集。為此,現提出一些關於高校教學管理系統排課的演算法。

二、排課問題的數學模型

學校排課問題本質上是時間表問題的一類典型應用例項,是為了解決課程安排對時間和空間資源的有效利用並避免相互衝突。在排課過程中,需要考慮課程教學效果、滿足教師特殊要求等多項優化指標,將各門課程安排到相應的時間和教室需要付出一定的「成本」(cost)。[2]

符號與約束條件

設課程集合:l=;班級集合:c = ;教室集合:r = ;教師集合:s= ;時間集合:t=;時間與教室對的笛卡爾積為:g=t·r=(t1,r1),(t1,r2),.,(td,rn);g中的元素稱為時間教室對;課表問題的求解過程就轉化成為每一門課程尋找乙個合適的時間教室對。

排課過程中必須滿足各種約束條件,可以將各種約束條件歸納成兩類以簡化分析過程。

(1)硬約束條件

硬約束條件是在排課過程中由於各類資源的有限,因此必須滿足而無法變更的約束條件,通常只要滿足下面三類硬約束條件就能夠保證在排課的過程中不發生此類衝突。

①同一時間,乙個教師不能同時有一門以上的課程,記為r1:

r1 為: ≤1

其中:k=1,.,k; d=1,.,d。

=1 教師sk 在時間td 和教室rn 上課程lp;0 否則。

②同一時間,乙個班級不能同時有一門以上的課程,記為r2:

r2 為: ≤1

其中:m=1,.,m; d=1,.,d。

=1 班級cm 在時間td 上教師sk 的課程lp;0 否則。

③同一時間,乙個教室不能同時有一門以上的課,記為r3 :

r3 為: ≤1

其中: n = 1 , ., n ; d = 1 , ., d。

=1教室rn在時間td由教師sk上課程lp;0否則。

(2)軟約束條件

軟約束條件是在排課過程中可以滿足但又可以不完全滿足的約束條件,是排課過程中在滿足硬約束條件的基礎上能盡量要求滿足的約束條件,軟約束條件會因不同的教學情況而有所差異。通常也可以通過調節軟約束條件的滿足程度而改變排課的效果,可以將一定要滿足的軟約束條件轉換為「硬約束條件」。

以下是排課過程中常用的軟約束條件,也是本文中所考慮的軟約束條件。

(1) 課程盡量安排在教學效果較好的節次。課程上課的效果與上課的節次有密切的關係,在排課的過程中我們應該盡量將課程安排在教學效果較好的節次中,用ph表示第h節次的教學效果係數:

(2) 多學時課程的周次安排要錯開。在實際的排課過程中,一般對於每週多學時( ≥4) 的課程,應該能夠盡量將其隔天安排,才能保證有較好的教學效果,用qt(t=1,2,3,4,5)表示一門課程安排隔天天數t的教學效果係數:

(3) 滿足教師所提出的上課時間和地點的要求。課程的主講教師和課程有著對應的關係,我們將教師提出的上課要求固化在其對應的課程上,用hj表示滿足課程上課要求的係數:

(4) 當乙個班的周總課時數需在某個數值範圍內的要求。

三、排課問題的演算法

1.演算法分析

排課的衝突異常複雜,對於這些衝突的複雜度我們進行分析。以下給出分析的過程。

過程1:將模型中的五個集合降維為乙個給定四維空間v(s,t,r,c),稱之為:課表。

四維分別代表了:

s(教師):全校所有課程的任課教師;

t(時間):上課的時間段,每天分為1-2、3-4、5-6、7-8、9-10,總共五個時間段,每學期20周,每週五天,合計每學期有500個上課時間段;

r(教室):全校所有的可用教室,包括不同的教室屬性,如:教室大小、是否為多**或語音教室等等;

c(班級)class:當前學期的所有教學班級,包括班級屬性,如:班級人數、是否合班。

過程2 :在課表v中求解存在著子空間l,且l

過程3 :在課表v中求解存在著四維向量l (sr,tm,r,c),且l∈l,那麼稱l為:課。

過程4 :在課表編排過程中,對於p( li∈vλlj∈l,i,j∈n),li (tr,tm,r,c)與lj (tr,tm,r,c),沒有衝突,認為v是:有效課表。[3] [4]

通過對四維向量li ( sr,tm,r,c)與lj (sr,tm,r,c)的簡化。在排課過程中的所有關係情況tmr + tm rc。

那麼:由過程1、過程2 可以推導出,在課表空間中,恒有f (tr,tm,r,c),那麼v就是有效的課表。

最後為了簡化,再給出過程5:

過程5 :在課表v中,對於li ( sr,tm,r,c)與lj (sr,tm,r,c),i、j∈n,沒有衝突,記為:liψlj ;對於li、lj沒有衝突,記為:liψlj。

這樣有對於p( li∈vλlj∈l),li (sr,tm,r,c)與lj (sr,tm,r,c),i、j∈n,沒有衝突,就可以得到vψl。

四、結束語

該模型與求解方法已在實際中得到應用,取得了較好的效果。在使用遺傳演算法優化後排課演算法的實際效率有極大的提高。因此用遺傳演算法實現類似排課問題的最優解也是一種比較簡單實用的方法,收斂速度很快,時間段分配均勻。[5]

但是在實際應用中也可能沒有終止條件,目的是可以依次提供不同的可行解以供使用者選擇直到所有解給完或者使用者終止。如果只考慮最優解的問題,可以使用迭代的適應度幾乎不變作為終止條件或者規定迭代次數。值得一提的是,有些實際問題的可行解可能是唯一的,比如教學場地或教師資源緊缺的情況,更嚴重的是如果約束條件太苛刻,甚至可能沒有可行解,在此類情況下人工干預還是有必要的。

參考文獻

[1] 陶滔,李赫男,熊正為.多維衝突在排課演算法中的應用[j].華東地質學院學報.2001,(4):256~259.

[2] 吳志斌,陳淑珍,孫曉安.回溯演算法與計算機智慧型排課[j].計算機工程.1999,(3):792801.

[3] 高喜瑪,張萍.大學自動排課系統核心演算法設計[j].南陽師範學院學報.2003 ,(12).

[4] 張亞東,葉克江.高校計算機排課系統的設計與實現[j].鄭州輕工業學院學報.2003 ,(12).

[5] 董豔雲,錢曉群,張宇舒.基於課元相關運算的高校排課演算法[j].西南交通大學學報.1998,(12):67026731.

基於遺傳演算法的排課系統

一 介紹 隨著近幾年各個高校的合併與擴招,我國的綜合性大學和各個高校中在校的學生數量的大大增加,對於高校教務部門來說,排課工作是非常令人頭痛的事,經常會出現課程排列衝突,比如 乙個教師在同一時間上兩門課,有兩個教師同時去乙個教室上不同的課程,有些教師在特定時間不可以上課。如果沒有很好地解決這些衝突,...

自適應遺傳演算法 基於遺傳演算法生成資料

首先,設定好了初始種群群大小。然後,我們定義了乙個函式,用它來區分好樣本和壞的樣本。再次,我們選擇出好的樣本,並讓他們繁殖自己的後代。最後,這些後代們從原來的樣本中替代了部分壞的樣本,並不斷重複這一過程。遺傳演算法實際上就是這樣工作的,也就是說,它基本上盡力地在某種程度上模擬進化的過程。關於遺傳演算...

python遺傳演算法 Python 遺傳演算法實現

關於遺傳演算法 遺傳演算法是仿照自然界中生物進化而產生的一類優化演算法。個人感覺遺傳演算法簡單粗暴,適應性廣。關於遺傳演算法的介紹網上有很多了,這裡按照我自己的理解簡單概括一下。編碼解碼,將待優化的引數編碼為dna序列,最簡單直接的為二進位制編碼 即有兩種鹼基的dna鏈 生成隨機初代 選擇,適應度 ...