摘要:高校因其需要在固定時(shí)間內(nèi)開設(shè)門類眾多的課程,排課問題顯得尤為突出。排課不僅是通過合理的課程安排使得學(xué)生能符合規(guī)律的學(xué)習(xí)成長(zhǎng),也是在探尋多因素問題的求解方式和過程。基于關(guān)系運(yùn)算就排課的一般問題進(jìn)行分析,包括變量的規(guī)范化界定和排課問題的理論分析,提出“分層規(guī)劃”的解決方案,并采用數(shù)據(jù)庫(kù)的關(guān)系運(yùn)算完成排課算法的設(shè)計(jì)。該算法有效地降低了排課問題的復(fù)雜度,并滿足了用戶的期望和各種約束。
關(guān)鍵詞:排課算法;分層規(guī)劃;關(guān)系運(yùn)算;SQL;數(shù)據(jù)庫(kù)
中圖分類號(hào):TP311 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2013)25-5665-08
排課問題與時(shí)間表問題(Time Table Problem,TTP)密切相關(guān),具有復(fù)雜性和難解性,一直沒有十分有效的解決方法。1965年,Gotlieb最早提出了排課問題的數(shù)學(xué)模型,并被Cooper等人證明是NP完全類問題[1-2],即多項(xiàng)式復(fù)雜程度的非確定性問題。目前,解決排課問題的算法有遺傳算法、模擬手工法、啟發(fā)式函數(shù)、圖論法、貪婪算法、拉格朗日法、優(yōu)先級(jí)法、二次分配法、染色問題、整數(shù)規(guī)劃和回溯算法[3-9]等,這些方法在時(shí)間復(fù)雜度、空間復(fù)雜度和算法推廣方面的效果都不是很理想。
國(guó)內(nèi)外的研究表明,僅依靠傳統(tǒng)的數(shù)學(xué)方法來求解高校排課問題是難以實(shí)現(xiàn)的。運(yùn)籌學(xué)的“分層次規(guī)劃”思想[10],是把因素進(jìn)行合理的組合與分配,使問題轉(zhuǎn)換為不同的層次和方向以降低問題的復(fù)雜性,是一個(gè)解決復(fù)雜問題的有效途徑。數(shù)據(jù)庫(kù)技術(shù)中的投影、選擇、連接、除法和外連接是關(guān)系代數(shù)中的基本操作,也是一個(gè)完備的操作集[11];它以關(guān)系尋找關(guān)系,在規(guī)范和處理復(fù)雜問題時(shí)有很好的作用。因此,該文試圖嘗試采用分層次規(guī)劃和關(guān)系運(yùn)算來實(shí)現(xiàn)排課算法的設(shè)計(jì)。
1 排課范疇定義
定義排課問題涉及的6個(gè)因素為班級(jí)、課程、教師、教室、天次和節(jié)次,標(biāo)識(shí)符依次為G、C、T、R、D和J;時(shí)間范圍為一個(gè)學(xué)期,排課形式為周循環(huán)形式,課程范圍為全校各班級(jí)的所有課程,每周教學(xué)天次范圍為周一至周日;每天教學(xué)節(jié)次范圍及優(yōu)先級(jí)設(shè)置、單門課程周課時(shí)數(shù)的分配方式及優(yōu)先級(jí)設(shè)置如表1、表2所示。
3 排課算法設(shè)計(jì)
3.1 排課算法總體框架
排課算法總體框架包括合分班課程數(shù)據(jù)連接模塊、非合分班課程數(shù)據(jù)連接模塊、教室性質(zhì)匹配算法模塊、時(shí)間算法模塊和數(shù)據(jù)傳遞算法模塊五個(gè)模塊,如圖5所示。圖中實(shí)線上的序號(hào)用來表示運(yùn)行先后順序或區(qū)分不同分支,虛線箭頭表示循環(huán),三角符表示該分支先運(yùn)行(下同)。
1)確定一組課程/班級(jí)、教師、進(jìn)行容量匹配的教室
對(duì)于A類課程(合分班類課程),按圖5左上框圖流程運(yùn)行;對(duì)于B類(非合分班類課程),按圖5右上框圖流程運(yùn)行。
2)確定進(jìn)行性質(zhì)匹配的教室
在1)的基礎(chǔ)上,根據(jù)CT.Rnum的取值狀態(tài)從幾個(gè)已進(jìn)行容量匹配的教室中選擇性質(zhì)匹配的教室。
3)確定兩組時(shí)間
在2)的基礎(chǔ)上,從天次選擇模式中選擇一個(gè)不為空的模式,選擇相應(yīng)天次并查詢各天剩余節(jié)次,再選擇剩余里最優(yōu)的節(jié)次,然后進(jìn)行教師時(shí)間沖突檢測(cè)和教室時(shí)間沖突檢測(cè),若有沖突或無可用節(jié)次,返回下一優(yōu)先級(jí)節(jié)次或天次組合模式。
4)數(shù)據(jù)傳遞與保存
若沒有沖突,對(duì)于A類,進(jìn)入數(shù)據(jù)傳遞算法模塊,把前四步的結(jié)果傳遞給相應(yīng)的班級(jí),并把結(jié)果保存在ST表中,并進(jìn)入下一門課程的上述流程操作;對(duì)于B類,把前三步的結(jié)果保存在ST表中,并進(jìn)入下一門課程的上述流程操作。
5)班級(jí)循環(huán)
對(duì)于B類,當(dāng)班內(nèi)課程安排完成后,跳轉(zhuǎn)到下一班級(jí),重復(fù)前四步操作,直到全部班級(jí)完成安排。
3.2 非合分班課程數(shù)據(jù)連接模塊
非合分班課程數(shù)據(jù)連接模塊算法流程如圖6所示,該模塊的功能是,從某一班級(jí)中選擇一門非合分班課程,為該門課程分配適合的教師和進(jìn)行容量匹配的教室組。先選擇一個(gè)班級(jí),該班級(jí)與CT連接,得到該班所有課程,并選擇其中非合分班性質(zhì)的課程,按照課程數(shù)目從多到少選擇其中一門課程;再判斷該課程是否有指定上課教室,若沒有,則選擇上一次無指定教室的課程所選擇的教室,若有,則選擇容量匹配的教室組。
3.3 合分班課程數(shù)據(jù)連接模塊
合分班課程數(shù)據(jù)連接模塊算法流程如圖7所示,該模塊的功能是,為一門合分班課程分配適合的教師和進(jìn)行容量匹配的教室組。從非合分班性質(zhì)的課程中選擇一門課程,該課程與TT連接,得到該課程的授課教師組,選擇其中優(yōu)先級(jí)最高的教師;再查詢上該課程的相關(guān)班級(jí),計(jì)算這些班級(jí)的總?cè)藬?shù),并從RT中選擇容量匹配的教室組。對(duì)于分班課程,要確定與分班數(shù)目相同的教室數(shù)。
3.4 教室性質(zhì)匹配算法模塊
教室性質(zhì)匹配算法模塊流程如圖8所示,該模塊的功能是,在“非合分班課程數(shù)據(jù)連接”和“合分班課程數(shù)據(jù)連接”兩個(gè)算法的基礎(chǔ)上,進(jìn)一步進(jìn)行教室容量匹配。根據(jù)CT.Rnum、CT.Rno、CT.Ctype的取值,確定教室。
3.5 時(shí)間算法模塊
時(shí)間算法模塊流程如圖9所示,該模塊的功能是,在“教室性質(zhì)匹配算法”的基礎(chǔ)上,進(jìn)一步確定該門課程的上課天次和時(shí)間。本模塊主要包括三個(gè)子模塊:I模塊即天次選擇方法、II模塊即節(jié)次選擇方法、III模塊即教師與教室的時(shí)間沖突檢測(cè)方法。
1)I模塊
2)II模塊
3)III模塊
4 結(jié)束語(yǔ)
設(shè)計(jì)的排課算法在“分層規(guī)劃”思想的指導(dǎo)下,結(jié)合排課的實(shí)際特點(diǎn)和統(tǒng)計(jì)數(shù)據(jù),提出“劃分兩類課程”、“GTC三維因素組合”、“教室時(shí)分復(fù)用”和“基于優(yōu)先級(jí)的節(jié)次分配”原理,使6個(gè)因素的排課問題實(shí)現(xiàn)有效降維。這種從復(fù)雜到簡(jiǎn)單、從一般到特殊、從高維到低維的轉(zhuǎn)化思想也為一般的多因素問題提供了一種求解方法。數(shù)據(jù)庫(kù)的關(guān)系運(yùn)算方式順利的實(shí)現(xiàn)了這一排課方案。
參考文獻(xiàn):
[1] Gotlieb. The construction of Class-teacher time tables proceeding[C]. IFIP Congress,1963.
[2] Tim B C. The complexity of timetable construction problem[M]. Computer Science,1996.
[3] 賴敏雅.高校自動(dòng)排課系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D].成都:電子科技大學(xué),2011:13-15.
[4] 張華.智能排課算法的研究及實(shí)現(xiàn)[D].濟(jì)南:山東大學(xué), 2010:7-10.
[5] 王諾.運(yùn)用遺傳算法優(yōu)化排課系統(tǒng)[D].石家莊:河北科技大學(xué), 2011:17-19.
[6] 劉明.貪婪算法在排課問題中分析與應(yīng)用[J].信息與電腦:理論版,2012 (01):125-126.
[7] 陸莉莉.0/1整數(shù)規(guī)劃在申請(qǐng)式排課問題中的應(yīng)用研究[J].電腦知識(shí)與技術(shù), 2011 (32):8075-8076.
[8] 陳漫紅,常宏宇,邸燕.基于課程表的智能分析回溯算法的研究[J].數(shù)學(xué)的實(shí)踐與認(rèn)識(shí), 2012 (16):173-176.
[9] 蔣政.基于圖論的排課問題[J].科技信息,2010 (15):153-154.
[10] 熊偉.運(yùn)籌學(xué)[M].北京:機(jī)械工業(yè)出版社,2009:25-95.
[11] 王珊等.數(shù)據(jù)庫(kù)系統(tǒng)概論[M].北京:高等教育出版社,1983:41-129.
[12] 陶淘等.課表模型及排課算法應(yīng)用[J].計(jì)算機(jī)系統(tǒng)應(yīng)用,2011(2):199-200.
推薦訪問: 運(yùn)算 算法 排課 關(guān)系 數(shù)據(jù)庫(kù)XX委高度重視黨校的建設(shè)和發(fā)展,出臺(tái)《創(chuàng)建全省一流州市黨校(行政學(xué)院)實(shí)施方案》及系列人才培養(yǎng)政策,為黨校人才隊(duì)伍建設(shè)提供了有力的政策支撐。州委黨校在省委黨校的悉心指導(dǎo)下、州委的正確領(lǐng)導(dǎo)下,深入貫徹落
為推動(dòng)“不忘初心、牢記使命”主題教育常態(tài)化,樹牢“清新簡(jiǎn)約、務(wù)本責(zé)實(shí)、實(shí)干興洛”作風(fēng)導(dǎo)向,打造忠誠(chéng)干凈擔(dān)當(dāng)、敢于善于斗爭(zhēng)的執(zhí)紀(jì)執(zhí)法鐵軍,經(jīng)縣紀(jì)委常委會(huì)會(huì)議研究,決定在全縣紀(jì)檢監(jiān)察系統(tǒng)開展“轉(zhuǎn)變作風(fēng)工作
為進(jìn)一步發(fā)展壯大農(nóng)村集體經(jīng)濟(jì),增強(qiáng)村級(jí)發(fā)展活力,按照中共XXX市委抓黨建促鄉(xiāng)村振興工作領(lǐng)導(dǎo)小組《關(guān)于印發(fā)全面抓黨建促鄉(xiāng)村振興四個(gè)工作計(jì)劃的通知》要求,工作隊(duì)與村“兩委”結(jié)合本村實(shí)際,共同研究謀劃xx村
今年來,我區(qū)圍繞“產(chǎn)城融合美麗XX”總體目標(biāo),按照“城在林中,水在城中,山水相連,林水相依”以及“城鄉(xiāng)一體、景城一體、園城一體”的建設(shè)思路,強(qiáng)力推進(jìn)城市基礎(chǔ)設(shè)施建設(shè)、棚戶區(qū)改造、房地產(chǎn)開發(fā)和城市風(fēng)貌塑
同志們:新冠疫情發(fā)生至今已有近三年時(shí)間。三年來,在廣大干群的共同努力下,我們堅(jiān)決打好疫情防控阻擊戰(zhàn),集團(tuán)公司范圍內(nèi)未發(fā)生一起確診病例,疫情防控工作取得了階段性勝利。當(dāng)前國(guó)際疫情仍在擴(kuò)散蔓延,國(guó)內(nèi)疫情多
我是畢業(yè)于XX大學(xué)的定向選調(diào)生,當(dāng)初懷著奉獻(xiàn)家鄉(xiāng)、服務(wù)人民的初心回到XX,在市委的關(guān)心關(guān)愛下,獲得了這個(gè)與青年為友的寶貴歷練機(jī)會(huì)。一年感悟如下。一要對(duì)黨忠誠(chéng),做政治堅(jiān)定的擎旗手。習(xí)近平總書記指出,優(yōu)秀
同志們:今天召開這個(gè)會(huì)議,主要任務(wù)是深入學(xué)習(xí)貫徹習(xí)近平總書記重要指示批示精神,以及李克強(qiáng)總理批示要求,認(rèn)真落實(shí)全國(guó)安全生產(chǎn)電視電話會(huì)議和全省、全市安全生產(chǎn)電視電話會(huì)議精神,研究我縣安全生產(chǎn)和安全隱患大
2022年市委政研室機(jī)關(guān)黨的建設(shè)工作的總體要求是:堅(jiān)持以XXX新時(shí)代中國(guó)特色社會(huì)主義思想為指導(dǎo),全面貫徹黨的XX屆X中X會(huì)和省、市第十二次黨代會(huì)精神,自覺運(yùn)用黨的百年奮斗歷史經(jīng)驗(yàn),弘揚(yáng)偉大建黨精神,深
同志們:今天,我們?cè)谶@里召開市直機(jī)關(guān)基層黨建示范點(diǎn)工作會(huì)議,一方面是對(duì)各示范點(diǎn)單位進(jìn)行表彰授牌,另一方面是想通過這種會(huì)議交流的方式,給大家提供一個(gè)相互學(xué)習(xí)、取長(zhǎng)補(bǔ)短的平臺(tái)和機(jī)會(huì)。市直工委歷來把創(chuàng)建基層
新冠疫情暴發(fā)以來,學(xué)校黨委堅(jiān)決貫徹習(xí)近平總書記關(guān)于疫情防控工作的指示要求和黨中央的決策部署,嚴(yán)格執(zhí)行×××部、×××廳關(guān)于疫情防控的系列要求,認(rèn)真落實(shí)駐地防疫部門的工作舉措,繼承發(fā)揚(yáng)優(yōu)良傳統(tǒng),以最高標(biāo)