楊子蘭,李 睿,張 瑜
(云南大學(xué) 旅游文化學(xué)院,云南 麗江 674199)
特殊要求時(shí)間段的排課問題數(shù)學(xué)模型
楊子蘭,李 睿,張 瑜
(云南大學(xué) 旅游文化學(xué)院,云南 麗江 674199)
本文對(duì)排課問題的約束條件進(jìn)行深入分析,將教師、班級(jí)、課程捆綁成一個(gè)教學(xué)任務(wù)單元,并以比較重要的課程盡可能地安排在授課效果較好的節(jié)次中且多學(xué)時(shí)課程安排要盡量均勻分布為目標(biāo)函數(shù),建立0-1整數(shù)規(guī)劃模型,最后結(jié)合自然班固定教室的特點(diǎn),設(shè)計(jì)出啟發(fā)式算法求其可行解。
捆綁式排課;整數(shù)規(guī)劃;教學(xué)任務(wù)單元;啟發(fā)式算法
1962年Gotlieb提出了課表編排問題的數(shù)學(xué)模型[1],從而使之成為計(jì)算機(jī)軟件應(yīng)用專家和數(shù)學(xué)家共同研究的課題。1975年S.Even和cooper等人將排課問題理論化,證明了排課問題是NP完全問題[2],當(dāng)問題的規(guī)模增大時(shí),其復(fù)雜度呈指數(shù)增長,在一般的實(shí)際情況中不可能準(zhǔn)確地求出最優(yōu)解。我國對(duì)于排課問題的研究始于20世紀(jì)80年代。1984年,林章希和林堯瑞發(fā)表了在排課問題上的實(shí)驗(yàn)性研究成果[3]。2006年,任克強(qiáng)等給出了一種基于約束滿足的高校排課問題模型,提出了高質(zhì)量排課系統(tǒng)方案[4]。2011年,宗薇根據(jù)教師、學(xué)生、教室、課程和課程時(shí)間段要求建立一個(gè)多約束條件的高校排課數(shù)學(xué)模型,采用隨機(jī)可行排課法產(chǎn)生可行排課方案,然后利用遺傳算法在可行方案中尋找最優(yōu)排課方案[5]。2012年,楊彥明等人針對(duì)軍隊(duì)任職院校課程表編排特點(diǎn),在分析軍隊(duì)任職院校排課因素、約束條件以及求解目標(biāo)等問題基礎(chǔ)上,建立相應(yīng)數(shù)學(xué)優(yōu)化模型,構(gòu)建其基本求解框架,并利用遺傳算法解決該問題[6]。2014年張麗麗等人在深入分析排課模型基礎(chǔ)上,采用三維立體編碼,提出基于三維立體遺傳編碼設(shè)計(jì)的排課系統(tǒng),但是收斂速度過于緩慢[7]。2016年顧治程等利用FFD算法思想,提出只考慮教室分配問題的新算法[8]。周靖靖和楊梅以全體教師的滿意度最大為目標(biāo)函數(shù)建立了0-1整數(shù)規(guī)劃模型,并以實(shí)例驗(yàn)證了模型的實(shí)用性[9]。
上述文獻(xiàn)中的算法大多是遺傳算法,遺傳算法是模擬達(dá)爾文生物進(jìn)化論的自然選擇和孟德爾遺傳學(xué)機(jī)理的生物進(jìn)化過程的計(jì)算模型,是一種通過模擬自然進(jìn)化過程搜索最優(yōu)化的方法[10]。但遺傳算法比較復(fù)雜,且排課問題的約束條件較多時(shí),遺傳算法可能找不到解。因此,本文分析排課問題的硬性約束條件,為得到較好的數(shù)學(xué)模型,特將教師、班級(jí)、課程捆綁成一個(gè)教學(xué)任務(wù)單元,并以比較重要的課程盡可能地安排在授課效果較好的節(jié)次中且多學(xué)時(shí)課程安排要盡量均勻分布為目標(biāo)函數(shù),建立0-1整數(shù)規(guī)劃模型,最后結(jié)合自然班固定教室等特點(diǎn),設(shè)計(jì)出啟發(fā)式算法求其可行解。
排課問題涉及多方面的問題,涉及到的因素主要有教師、班級(jí)、課程、教室、時(shí)間等五項(xiàng)基本因素,排課問題就是要尋求把這五個(gè)因素各自組合起來的一種方案,且這五項(xiàng)基本因素必須遵守以下硬性條件:(1)同一個(gè)時(shí)間點(diǎn),每個(gè)班級(jí)最多安排上一門課程;(2)同一個(gè)時(shí)間點(diǎn),每個(gè)老師最多安排上一門課程;(3)同一個(gè)時(shí)間點(diǎn),每個(gè)教室最多安排上同一門課程;(4)教室上課人數(shù)不超過其最大容量;(5)每個(gè)班級(jí)的每個(gè)科目在一周內(nèi)的課時(shí)數(shù)必須等于該門課程的課時(shí)要求。
為得到較好的數(shù)學(xué)模型,特對(duì)時(shí)間段進(jìn)行編號(hào),且對(duì)時(shí)間段的編號(hào)不是按時(shí)間順序編號(hào)。具體如下:將一周分為5個(gè)工作日,每天設(shè)為5個(gè)時(shí)間段,分別為上午 8:00~9:50為 1-2節(jié)課;上午10:10~12:00 為 3-4 節(jié)課;下午 2:30~4:20 為 5-6節(jié)課;下午 4:30~6:20為 7-8節(jié)課;下午 7:30~9:20為9-10節(jié)課。這樣,每周五天工作日共有二十五個(gè)時(shí)間段。為了方便,特將25個(gè)時(shí)間段劃分為五種類型,并進(jìn)行編號(hào),如表1所示。
表1 時(shí)間段編號(hào)
設(shè)教師集合表示為T={T1,T2,…,Ti,…,Tm}(m個(gè)教師);教室集合表示為 R={(R1,r1),(R2,r2),…,(Ri,ri),…,(Rn,rn)}(其中 Ri表示第 i個(gè)教室,ri表示第i個(gè)教室的容量,即該教室所能容納的人數(shù));課程集合表示為P={P1,P2,…,Pi,…,Pw}且已按課程重要程度排序(即當(dāng)i<j時(shí),pi比 pj重要,且共有w門課程),與P對(duì)應(yīng)的w門課程的周學(xué)時(shí)數(shù)依次為l1,l2,…,lw;時(shí)間段集合表示為 π={1,2,…,i,…,25}(25個(gè)時(shí)間段);自然班級(jí)集合表示為C={(C1,c1),(C2,c2),…,(Ci,ci),…,(Cq,cq)}(其中 Ci表示第 i個(gè)班級(jí),ci表示第i個(gè)班級(jí)的人數(shù))。
排課問題對(duì)應(yīng)到數(shù)學(xué)上就是將五個(gè)集合重新排列組合,構(gòu)成一個(gè)大集合,且大集合里的每個(gè)元素必須體現(xiàn)某班某時(shí)間由某老師在某教室上某課程的信息,這個(gè)重新的組合涉及到的最大難度就是沖突問題。一般情況下,由于每個(gè)學(xué)校某學(xué)期的開課計(jì)劃中已經(jīng)安排好某教師上某班的某門課程的信息,故排課過程中可以直接利用這些數(shù)據(jù)資源。本文利用捆綁式排課的方法,即將教師集合T、班級(jí)集合C、課程集合P捆綁成一個(gè)教學(xué)任務(wù)單元TCP(假設(shè)教學(xué)任務(wù)單元已按課程重要程度排序,教學(xué)任務(wù)單元的總數(shù)| TCP|=l),教室集合R為一個(gè)單元,時(shí)間集合π為一個(gè)單元。因此,排課的主要問題變成了如何安排時(shí)間段和教室,實(shí)現(xiàn)某時(shí)間段某教學(xué)任務(wù)單元最多對(duì)應(yīng)一個(gè)符合需求的教室,即遵守上述約束條件。為方便建立數(shù)學(xué)模型,引入三維0-1決策變量xijt,當(dāng)?shù)趇個(gè)教學(xué)任務(wù)單元在第t個(gè)時(shí)間段在第 j個(gè)教室上課時(shí)xijt=1,否則xijt=0,則任一教室在同一時(shí)間段至多安排一個(gè)教學(xué)任務(wù)單元上課可用數(shù)學(xué)式子表示為
每周內(nèi)每個(gè)教學(xué)任務(wù)單元對(duì)應(yīng)的課程上課時(shí)間要等于該門課的周課時(shí)可用數(shù)學(xué)式子表示為
同一時(shí)間段至多有n個(gè)教學(xué)任務(wù)單元在n個(gè)教室上課可用數(shù)學(xué)式子表示為
第i個(gè)教學(xué)任務(wù)單元在第 j個(gè)教室上課時(shí)需滿足該教學(xué)任務(wù)單元中的教學(xué)班級(jí)人數(shù)ci不超出教室 j的容量rj可用數(shù)學(xué)式子表示為
在遵守上述基本條件的前提下,排課應(yīng)該盡量滿足教學(xué)任務(wù)單元的優(yōu)化安排需求,以便課程的安排盡可能地科學(xué)、合理。本文參考文獻(xiàn)[6]中的方法,用 Bj′(j′=1′,2′,3′,4′)表示課程的重要程度,也稱為權(quán)重,把課程劃分為專業(yè)核心課、專業(yè)基礎(chǔ)課、公共課程、專業(yè)選修課和全院選修課(設(shè)對(duì)應(yīng)于教學(xué)任務(wù)單元TCP中的課程順序前m1門課為專業(yè)核心課,第m1+1至第m2門課為專業(yè)基礎(chǔ)課,第m2+1至第m3門課為公共課程,第m3+1至第m4門課為專業(yè)選修課,第m4+1至第m5門課為全院選修課),為了體現(xiàn)出重要程度,假設(shè)其權(quán)重依次賦值為 4、3、2、0.6、0.4。所以當(dāng) j′=1′時(shí),有B′=4(即當(dāng)1≤i≤m1時(shí)有 Bi=4);當(dāng) j′=2′時(shí),有B′=3(即當(dāng) m1<i≤m2時(shí)有 Bi=3);當(dāng) j′=3′時(shí),有B′=2(即當(dāng) m2<i≤m3時(shí)有 Bi=2);當(dāng) j′=4′時(shí),有B4′=0.6(即當(dāng) m3<i≤m4時(shí)有 Bi=0.6);當(dāng)j′=5′時(shí) ,有 B=0.4( 即 當(dāng) m<i≤m時(shí) 有5′45Bi=0.4)。用 at′(t′=1′,2′,3′,4′,5′)表示課時(shí)質(zhì)量,其中當(dāng) t′=1′時(shí) a′=1表示第一個(gè)時(shí)間段(即第1、2節(jié))的教學(xué)質(zhì)量,故當(dāng)1≤i≤5時(shí)有 ai=1;當(dāng) t′=2′時(shí),有 a′=0.8表示第二個(gè)時(shí)間段(即第3、4節(jié))的教學(xué)質(zhì)量,故當(dāng) 6≤i≤10 時(shí),有 ai=0.8;當(dāng) t′=3′時(shí),有 a′=0.6表示第三個(gè)時(shí)間段(即第5、6節(jié))的教學(xué)質(zhì)量,故當(dāng)11≤i≤15時(shí),有 ai=0.6;當(dāng) t′=4′時(shí),有 a′=0.3表示第四個(gè)時(shí)間段(即第7、8節(jié))的教學(xué)質(zhì)量,故當(dāng)16≤i≤20 時(shí),有 ai=0.3;當(dāng) t′=5′時(shí),有 a′=0.1表示第五個(gè)時(shí)間段(即第9、10節(jié))的教學(xué)質(zhì)量,故當(dāng)21≤i≤25時(shí),有ai=0.1。對(duì)于周學(xué)時(shí)較多的課程,要盡量將其間隔一天(含)以上安排。用ei(i=1,2,3,4)表示一門課程安排間隔i天的教學(xué)效果系數(shù),設(shè)定間隔1、2、3、4天的值分別為 1、3、4、2。
本文考慮比較重要的課程要最大程度地安排在授課效果較好的節(jié)次中且多學(xué)時(shí)課程(周學(xué)時(shí)大于等于3)的安排要盡量均勻分布為目標(biāo)函數(shù),得出三維的0-1整數(shù)規(guī)劃模型如下:
在以往的排課算法中,往往不考慮課程的時(shí)間段要求,且大多采用遺傳算法[6-8,11-12],本算法以比較重要的課程盡可能地安排在授課效果較好的節(jié)次中且多學(xué)時(shí)課程安排要盡量均勻分布為目標(biāo)。假設(shè)課程i的周學(xué)時(shí)li是2的奇數(shù)倍或偶數(shù)倍,則原來的教學(xué)任務(wù)單元就視為個(gè)教學(xué)任務(wù)單元,假設(shè)課程i的周學(xué)時(shí)li是2的分?jǐn)?shù)倍,則原來的教學(xué)任務(wù)單元就視為個(gè)教學(xué)任務(wù)單元,得到擴(kuò)展后的教學(xué)任務(wù)單元集合S={s1,s2,…,sl},其含有l(wèi)個(gè)教學(xué)任務(wù)單元且設(shè)S中的元素已按課程的重要程度排序(此時(shí)S中有相同元素),其中si表示第i個(gè)教學(xué)任務(wù)單元。假設(shè)有q個(gè)自然班級(jí),每個(gè)自然班都有固定的教室,普通課程都可以安排在相應(yīng)的自然班教室上課,這樣就不用考慮教室的安排及容量問題。因此,本算法只考慮在普通教室上課的情形,且每個(gè)學(xué)校某學(xué)期的開課計(jì)劃中已經(jīng)安排好某教師上某班的某門課程的信息,故排課過程中可以直接利用這些數(shù)據(jù)資源,考慮這些因素,設(shè)計(jì)出如下啟發(fā)式算法:
初始條件下,記S1=S,取 j=1。
第1步:在Sj中按順序選出與教學(xué)任務(wù)有沖突的教學(xué)任務(wù)單元,記為Sj+1,且令S(j)=Sj-Sj+1,當(dāng)Sj+1≠Φ時(shí),轉(zhuǎn)第2步,否則轉(zhuǎn)第3步;
第2步:將S(j)中的教學(xué)任務(wù)單元依次安排在第i個(gè)時(shí)間段且在對(duì)應(yīng)的自然班固定教室上課,記,表示由第i個(gè)時(shí)間段在對(duì)應(yīng)的自然教室上課的教學(xué)任務(wù)單元時(shí)間對(duì)構(gòu)成的集合,令i=i+1,當(dāng)i<25時(shí),令 j=j+1,轉(zhuǎn)第 1步開始處,否則無可行解;
第3步:將S(j)中教學(xué)任務(wù)單元依次安排在第i個(gè)時(shí)間段且在對(duì)應(yīng)自然班固定教室上課,轉(zhuǎn)第4步;
第 4 步:在 ?S(j)′中按元素順序依次選出周課時(shí)數(shù)為2的分?jǐn)?shù)倍的課程對(duì)應(yīng)的教學(xué)任務(wù)單元,按照選出順序號(hào),規(guī)定順序號(hào)為偶數(shù)的教學(xué)任務(wù)單元單周不變,雙周減一次課,順序號(hào)為奇數(shù)的教學(xué)任務(wù)單元雙周不變,單周減一次課,轉(zhuǎn)第5步;
第 5 步:輸出 ?S(j)′,算法停止。
算法復(fù)雜度分析:第1步的復(fù)雜度取決于與前面教學(xué)任務(wù)有沖突的教學(xué)任務(wù)單元個(gè)數(shù),復(fù)雜度最多為O(|S|);第2步最多循環(huán)25次(此時(shí)無可行解),復(fù)雜度不超出O(25| S(j)|);第 3 步的復(fù)雜度取決于在第i個(gè)時(shí)間段被安排上課的教學(xué)任務(wù)單元個(gè)數(shù),復(fù)雜度最多為O(|S(j)|);第 4 步的復(fù)雜度取決于周課時(shí)數(shù)為2的分?jǐn)?shù)倍的課程對(duì)應(yīng)的教學(xué)任務(wù)單元個(gè)數(shù),復(fù)雜度最多為;算法第5步復(fù)雜度為。故算法總復(fù)雜度不超出O(25|S|)。
表2列出了我校信科系下學(xué)期的部分教學(xué)開課計(jì)劃表。對(duì)表2進(jìn)行擴(kuò)展后的教學(xué)計(jì)劃表如表3所示。
表2 信科系下學(xué)期的部分教學(xué)開課計(jì)劃表
表3 信科系下學(xué)期的部分教學(xué)開課計(jì)劃擴(kuò)展表
為了方便,表3中的每個(gè)教學(xué)任務(wù)單元都用對(duì)應(yīng)的序號(hào)表示,則教學(xué)任務(wù)單元集合可以表示為,在S1中選出與前面的教學(xué)任務(wù)單元有沖突的教學(xué)任務(wù)單元構(gòu)成一個(gè)集合,記為S2,即,則S(1)=S1-S2={1 ,3,6},將S(1)中的教學(xué)任務(wù)單元依次安排在第1個(gè)時(shí)間段且在對(duì)應(yīng)的自然班固定教室上課,得到 S(1)′={(1 ,1),(3,1),(6,1)};在S2中選出與前面的教學(xué)任務(wù)單元有沖突的教學(xué)任務(wù)單元構(gòu)成一個(gè)集合,記為 S3,即,則,將 S(2)中的教學(xué)任務(wù)單元依次安排在第2個(gè)時(shí)間段且在對(duì)應(yīng)的自然班固定教室上課,得到;在 S3中選出與前面的教學(xué)任務(wù)單元有沖突的教學(xué)任務(wù)單元構(gòu)成一個(gè)集合,記 為 S4,即,則,將 S(3)中的教學(xué)任務(wù)單元依次安排在第3個(gè)時(shí)間段且在對(duì)應(yīng)的自然班固定教室上課,得到;在 S4中選出與前面的教學(xué)任務(wù)單元有沖突的教學(xué)任務(wù)單元構(gòu)成一個(gè)集合,記為 S5,即,則,將S(4)中的教學(xué)任務(wù)單元依次安排在第4個(gè)時(shí)間段且在對(duì)應(yīng)的自然班固定教室上課,得到 S(4)′={( 2,4),(4,4),(5,4),(7,4),(9,4)};在 S5中選出與前面的教學(xué)任務(wù)單元有沖突的教學(xué)任務(wù)單元 構(gòu) 成 一 個(gè) 集 合 ,記 為 S6,即,則,將 S(5)中的教學(xué)任務(wù)單元依次安排在第5個(gè)時(shí)間段且在對(duì)應(yīng)的自然班固定教室上課,得到;在 S6中選出與前面的教學(xué)任務(wù)單元有沖突的教學(xué)任務(wù)單元構(gòu)成一個(gè)集合,記為 S7,即,則,將 S(6)中的教學(xué)任務(wù)單元依次安排在第 6個(gè)時(shí)間段且在對(duì)應(yīng)的自然班固定教室上課,得到S(6)′={( 2″,6),(4″,6)} ;在 S7中選出與前面的教學(xué)任務(wù)單元有沖突的教學(xué)任務(wù)單元構(gòu)成一個(gè)集合,記為S8,即 S8= Φ ,則,將 S(7)中的教學(xué)任務(wù)單元依次安排在第7個(gè)時(shí)間段且在對(duì)應(yīng)的自然班固定教室上課,得到S(7)′={(8′,7)} ;在 ?S(j)′中按元素順序依次選出周課時(shí)數(shù)為2的分?jǐn)?shù)倍的課程對(duì)應(yīng)的教學(xué)任務(wù)單元,按照選出的順序號(hào),規(guī)定順序號(hào)為偶數(shù)的教學(xué)任務(wù)單元單周不變,雙周減一次課,順序號(hào)為奇數(shù)的教學(xué)任務(wù)單元雙周不變,單周減一次課,得到
即得到一個(gè)可行解,表2中的每個(gè)教學(xué)任務(wù)單元都已經(jīng)被安排,從而驗(yàn)證了算法的有效性。
排課問題是一個(gè)多約束的組合優(yōu)化問題,也是NP-完全類問題,很難找到多項(xiàng)式時(shí)間算法。本文對(duì)時(shí)間段進(jìn)行特殊編號(hào),將教師、班級(jí)、課程捆綁成一個(gè)教學(xué)任務(wù)單元集合,以比較重要的課程盡可能地安排在授課效果較好的節(jié)次中且多學(xué)時(shí)課程安排要盡量均勻分布為目標(biāo)函數(shù),建立0-1整數(shù)規(guī)劃模型,并根據(jù)自然班固定教室的特點(diǎn),利用每個(gè)學(xué)校某學(xué)期的開課計(jì)劃數(shù)據(jù)資源信息,設(shè)計(jì)出啟發(fā)式算法求其可行解。該算法思想簡單,易懂,復(fù)雜度對(duì)多為O(25|S|)。如何進(jìn)一步對(duì)算法進(jìn)行豐富、修正,從而提高算法精度是本人今后將要開展的進(jìn)一步工作。
[1]Gotlieb C C.The construction of Class-Teacher Time-Tables[J].Communications of the ACM,1962,5(6):73-77.
[2]Even S,Itai A,Shamir A.Onthecomplexityof timetableand multi-commodity flow problems[C].Proc of 16 thannual symposiumon foundations of computer science,1975:184-193.
[3]林漳希,林堯瑞.人工智能技術(shù)在課表編程中的應(yīng)用[J].清華大學(xué)學(xué)報(bào)(自然版),1984,24(12):1-8.
[4]任克強(qiáng),趙光甫.基于約束滿足的高校排課問題研究[J].江西理工大學(xué)學(xué)報(bào),2006,27(6):70-72.
[5]宗 薇,趙光甫.高校智能排課系統(tǒng)算法的研究與實(shí)現(xiàn)[J].計(jì)算機(jī)仿真,2011,28(12):389-392.
[6]楊彥明,岳翠翠,李其申.軍隊(duì)任職院校排課問題的數(shù)學(xué)建模[J].計(jì)算機(jī)與現(xiàn)代化,2012,11:14-17.
[7]張麗麗,許 峰,胡 娟.基于三維立體遺傳編碼設(shè)計(jì)的排課系統(tǒng)[J].重慶工商大學(xué)學(xué)報(bào)(自然科學(xué)版),2014,31(7):9-13.
[8]顧治程,蔣 艷.基于FFD算法的高校排課系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].軟件導(dǎo)刊,2016,15(1):110-111.
[9]周靖靖,楊 梅.基于滿意度的最優(yōu)排課方案[J].西南師范大學(xué)學(xué)報(bào)(自然科學(xué)版),2016,41(1):185-187.[10]卓金武,李必文,魏永生,等.MATLAB在數(shù)學(xué)建模中的應(yīng)用[M].2版.北京:北京航空航天大學(xué)出版社,2014:79.
[11]葉碧蝦.遺傳算法在排課系統(tǒng)中的優(yōu)化研究[J].吉林師范大學(xué)學(xué)報(bào)(自然科學(xué)版),2014,2:185-187.
[12]Limkar S,Khalwadekar A,Tekale A,et al.Genetic Algorithm:Paradigm Shift over a Traditional Approach of Timetable Scheduling[C].Proceedings of the 3rd International Conference on Frontiers of Intelligent Computing:Theory and Applications(FICTA)2014.Springer International Publishing,2015:771-780.
Mathematical model of course scheduling problem with special requirements
YANG Zi-Lan,LI Rui,ZHANG Yu
(School of Tourism and Culture,Yunnan University,Lijiang Yunnan 674199,China)
This paper made an in-depth analysis of the course scheduling problem,bundled the teacher,class and course into a teaching task unit,and built the 0-1 integer programming model to maximize the effect of the teaching quality,and more school curricula will be evenly distributed as possible as the objective function.Finally,combined with the characteristics of natural classes of fixed classroom,a heuristic algorithm was designed to find the satisfactory solution.
binding scheduling;integer programming;teaching task unit;heuristic algorithm
A
1004-4329(2017)02-015-05
10.14096/j.cnki.cn34-1069/n/1004-4329(2017)02-015-05
2017-01-20
云南省教育廳科學(xué)研究基金項(xiàng)目(2016ZDX152);云南大學(xué)旅游文化學(xué)院院級(jí)項(xiàng)目(2015XY08)資助。
楊子蘭(1985- ),女,碩士,講師,研究方向:組合最優(yōu)化與算法研究。