一種基于權(quán)值的中小學(xué)自動排課方法【
技術(shù)領(lǐng)域:
】[0001]本發(fā)明屬于計算機信息系統(tǒng)
技術(shù)領(lǐng)域:
,具體涉及一種基于權(quán)值的中小學(xué)自動排課方法的設(shè)計。【
背景技術(shù):
】[0002]排課問題早在70年代就證明是一個NP完全問題,即算法的計算時間是呈指數(shù)增長的,目前大家對NP完全問題研究的主要思想是如何降低其計算復(fù)雜度,即利用一個近似算法來代替,力爭使得解決問題的時間從指數(shù)增長化簡到多項式增長。結(jié)合到課表問題就是建立一個合適的現(xiàn)實簡約模型,利用該簡約模型能夠大大降低算法的復(fù)雜度,便于程序?qū)崿F(xiàn),這是解決排課問題一個很多的思路。[0003]目前,解決課表方法的問題有:模擬手工排課法,圖論方法,拉格朗日法,二次分配型法等多種方法。由于課表約束復(fù)雜,用數(shù)學(xué)方法進行描述時往往導(dǎo)致問題規(guī)模劇烈增大,這已經(jīng)成為應(yīng)用數(shù)學(xué)編程解決課表問題的巨大障礙。國外的研究表明,解決大規(guī)模課表編排問題單純靠數(shù)學(xué)方法是行不通的,而利用運籌學(xué)中分層規(guī)劃的思想將問題分解,將是一個有希望得到成功的辦法。在國內(nèi),對課表問題的研究開始于80年代初期,具有代表性的有:南京工學(xué)院的UTSS(AUniversityTimetableSchedulingSystem)系統(tǒng),清華大學(xué)的TISER(TimetableSchedulER)系統(tǒng),大連理工大學(xué)的智能教學(xué)組織管理與課程調(diào)度等,這些系統(tǒng)大多數(shù)都是模擬手工排課過程,以"班"為單位,運用啟發(fā)式函數(shù)來進行編排的。但是這些系統(tǒng)課表編排系統(tǒng)往往比較依賴于各個學(xué)校的教學(xué)體制,不宜進行大量推廣。[0004]從排課系統(tǒng)的使用范圍和對像來看,目前大多數(shù)排課方法都是針對高校的需求,但在我國,中小學(xué)的排課與高校的排課有很大的差別,因此很多方法不能直接應(yīng)用于中小學(xué),比如,中小學(xué)的課程有等級差別,即主科和副科,另外中小學(xué)的教室是固定的,不存在教室安排的沖突問題等。【
發(fā)明內(nèi)容】[0005]本發(fā)明的目的是為了解決現(xiàn)有技術(shù)中大多數(shù)排課方法無法滿足中小學(xué)的排課要求的問題,提出了一種基于權(quán)值的中小學(xué)自動排課方法。[0006]本發(fā)明的技術(shù)方案為:一種基于權(quán)值的中小學(xué)自動排課方法,包括以下步驟:[0007]Sl、初始化排課過程中的相關(guān)參數(shù);[0008]S2、建立教師權(quán)值序列;[0009]S3、安排教師至節(jié)次矩陣二維表中;[0010]S4、更新教師權(quán)值序列;[0011]S5、判斷教師權(quán)值序列是否為空,若是則排課結(jié)束,否則返回步驟S2。[0012]進一步地,步驟Sl具體為:[0013]設(shè)所有參與排課的課程集合為:C={Cl,(v··cj,課程數(shù):|C|=n;[0014]設(shè)授課教師集合為:T=It1,t2…tm},教師數(shù):|τ|=m;[0015]定義課程權(quán)值函數(shù):WC(ck)=wck,wcke(〇,1),ckeC,ke[1,η];[0016]定義教師-課程的映射函數(shù)為TCUi)=ck,t#T,ie[1,m],ckeC,ke[1,η];[0017]設(shè)參與排課的班級集合為:L=Il1,lv··lz},班級數(shù)量:IL|=z;[0018]定義教師-班級映射函數(shù)為:TL(ti)={1山t#T,ie[l,m],je[1,z],其反函數(shù)為班級-教師映射數(shù)函數(shù):LT(Ik)=TL1(Ik)={tj,heT,ie[1,m],ke[1,z];[0019]定義班級-課程映射函數(shù):LC(Ik)=ITcai)Kt1GLT(Ik);[0020]定義每個班的節(jié)次矩陣二維表:Mat(Ik)=[0022]其中班級IJilX第y節(jié)表示為:mat(Ik,X,y);[0023]當(dāng)單元格沒有排課時,表示為:mat(lk,x,y)=null;當(dāng)已經(jīng)排上某位教師tp時,表不為:mat(lk,X,y)=tp;[0024]定義節(jié)次權(quán)值函數(shù)為:WJ(x,y)=wjxy,wjxye(〇,I);[0025]定義每位教師在所授班的周節(jié)次數(shù)量為Count(lk,tj,其中t#T,IkeTL(t;)。[0026]進一步地,步驟S2具體為:[0027]按照課程權(quán)值函數(shù)建立教師權(quán)值序列:TQ=[ktytj;[0028]其中WC(TCajD)^WC(TCaj))》WC(TC(tj+1)),je(l,m)。[0029]進一步地,步驟S3包括以下分步驟:[0030]S31、取出TQ的第1位教師L,并得到^所授班級集合:TLai)={1山j(luò)e[l,z];[0031]S32、遍歷TLai)和所有對應(yīng)班級的節(jié)次矩陣二維表,即對于▽7,.e丨),Vxe[丨,5],V:>'e[1,8],且保證matQj,X,y)=nul1;[0032]計算權(quán)值=Wj=WT(tD(x,y)+λ,其中WTU1)是L的權(quán)值,初始情況下WT(tD=WC(TCai)),λe(〇,1)為調(diào)節(jié)參數(shù);[0033]最終得到權(quán)值集合W=IffjI;[0034]S33、計算集合W的最大值:max(W)=Wk,找到Wk所對應(yīng)的班級Ik和周次X及節(jié)次y,將ti安排到該班級的該位置,即賦值:mat(lk,X,y)=t1;[0035]S34、重新設(shè)置^權(quán)值:WTU1)·α,其中ae(〇,1)是權(quán)值調(diào)節(jié)參數(shù)。[0036]進一步地,步驟S4包括以下分步驟:[0037]S41、檢查h是否已經(jīng)完成排課,若是則ti不再插入到TQ中,TQ中的教師數(shù)量量減1,否則更新得到^的新權(quán)值WT(tJnew,并根據(jù)該值重新插入到TQ中;[0038]S42、將TQ的序號按照Ι-m的順序重新排列。[0039]本發(fā)明的有益效果是:本發(fā)明針對中小學(xué)的課程有等級差別以及中小學(xué)的教室是固定的,不存在教室安排的沖突問題等排課要求,通過定義課程和節(jié)次的權(quán)值,并計算出最優(yōu)排課結(jié)果,快速、高效地實現(xiàn)面向中小學(xué)的排課方法。【附圖說明】[0040]圖1為本發(fā)明提供的一種基于權(quán)值的中小學(xué)自動排課方法。【具體實施方式】[0041]下面結(jié)合附圖對本發(fā)明的實施例作進一步的說明。[0042]本發(fā)明主要面向中國的大部分中小學(xué)的排課需求,本方法的前置條件和相關(guān)定義包括:[0043](1)-位教師只教一門課。這符合目前我國大部分中小學(xué)的實際情況,對于少數(shù)偏遠(yuǎn)地區(qū)存在的一位教師任多門課的情況,本發(fā)明不適用。[0044](2)每個班有固定教室,即不存在教室的沖突。[0045](3)不同課程有不同的等級(權(quán)值),如一般學(xué)校的語、數(shù)、外課程優(yōu)先級會高于其它學(xué)科。[0046](4)不同的節(jié)次有不同的等級(權(quán)值),如早上1-3節(jié)就比下午5、6節(jié)效果更好,因此等級更高。[0047](5)每個班的節(jié)次安排是一致的。[0048]本發(fā)明提供了一種基于權(quán)值的中小學(xué)自動排課方法,如圖1所示,包括以下步驟:[0049]S1、初始化排課過程中的相關(guān)參數(shù)。[0050]設(shè)所有參與排課的課程集合為:C={Cl,(v··cj,課程數(shù):|C|=η。[0051]設(shè)授課教師集合為:T=It1,t2…tm},教師數(shù):|τ|=m。[0052]定義課程權(quán)值函數(shù):WC(ck)=wck,wcke(〇,1),ckeC,ke[1,η]。wc亦值可根據(jù)各個學(xué)校的不同情況靈活設(shè)置,如某學(xué)校重點是外語,則外語課的權(quán)值可能更高,而其它學(xué)科的權(quán)值稍低。[0053]定義教師-課程的映射函數(shù)為TCUi)=ck,t#Τ,ie[1,m],ckeC,ke[1,η]。課程與教師是"一對多"的關(guān)系,即一位教師只教一門課,而一門課有多位教師教。[0054]設(shè)參與排課的班級集合為:L=Il1,V··IJ,班級數(shù)量:IL|=ζ。班級與任課教師的關(guān)系為"多對多",即一個班級有多位任課教師(多門課程),一位任課教師也會教多個班級。[0055]定義教師-班級映射函數(shù)為:TL(ti)={1山t#T,ie[l,m],je[1,z],其反函數(shù)為班級-教師映射數(shù)函數(shù):LT(Ik)=TL當(dāng)前第1頁1 2