一種基于差分進(jìn)化算法的高校排課方法
【專利摘要】一種基于差分進(jìn)化算法的高校排課方法,將排課算法問(wèn)題轉(zhuǎn)化成差分進(jìn)化算法的問(wèn)題,排課算法的因素和差分進(jìn)化算法的算子相對(duì)應(yīng)。時(shí)間安排算法與課室安排算法相結(jié)合,在排課過(guò)程的不同階段,建立起優(yōu)先的課室集,指導(dǎo)算法一直尋找最合適的課室,實(shí)時(shí)地對(duì)各類課室類型的資源和數(shù)量進(jìn)行動(dòng)態(tài)維護(hù),避免了差分進(jìn)化算法出現(xiàn)未成熟就收斂等問(wèn)題,也有效地解決了“甩課”問(wèn)題。
【專利說(shuō)明】一種基于差分進(jìn)化算法的高校排課方法
[0001]
技術(shù)領(lǐng)域
[0002]本發(fā)明涉及一種差分進(jìn)化算法的應(yīng)用,尤其涉及一種基于差分進(jìn)化算法的高校排課方法。
【背景技術(shù)】
[0003]差分進(jìn)化(DifferentialEvolut1n,DE)算法是由Rainer Storn和KennethPrice為求解切比雪夫多項(xiàng)式而于1996年共同提出的一種采用浮點(diǎn)矢量編碼在連續(xù)空間中進(jìn)行隨機(jī)搜索的優(yōu)化算法。DE的原理簡(jiǎn)單,受控參數(shù)少,實(shí)施隨機(jī)、并行、直接的全局搜索,易于理解和實(shí)現(xiàn)。差分進(jìn)化算法是基于群體智能的隨機(jī)并行優(yōu)化算法,通過(guò)模仿生物群體內(nèi)個(gè)體間的合作與競(jìng)爭(zhēng)產(chǎn)生的啟發(fā)式群體智能來(lái)指導(dǎo)優(yōu)化搜索。DE特有的記憶能力使其可以動(dòng)態(tài)跟蹤當(dāng)前的搜索情況,以調(diào)整其搜索策略,實(shí)現(xiàn)自適應(yīng)尋優(yōu),因此具有較強(qiáng)的全局收斂性和魯棒性,且不需要借助問(wèn)題的特定信息,適于求解一些利用常規(guī)的數(shù)學(xué)規(guī)劃方法所無(wú)法求解的復(fù)雜環(huán)境中的優(yōu)化問(wèn)題。
【發(fā)明內(nèi)容】
[0004]本發(fā)明的目的是,為了尋求一種科學(xué)的高校排課方法,本發(fā)明提供一種基于差分進(jìn)化算法的高校排課方法。
[0005]實(shí)現(xiàn)本發(fā)明的技術(shù)方案是,一種基于差分進(jìn)化算法的高校排課方法,將排課算法問(wèn)題轉(zhuǎn)化成差分進(jìn)化算法的問(wèn)題,排課算法的因素和差分進(jìn)化算法的算子相對(duì)應(yīng)。時(shí)間安排算法與課室安排算法相結(jié)合,在排課過(guò)程的不同階段,建立起優(yōu)先的課室集,指導(dǎo)算法一直尋找最合適的課室,實(shí)時(shí)地對(duì)各類課室類型的資源和數(shù)量進(jìn)行動(dòng)態(tài)維護(hù),避免了差分進(jìn)化算法出現(xiàn)未成熟就收斂等問(wèn)題。
[0006]所述排課算法步驟為:
(1)隨機(jī)建立初試種群組成不同的可行解決方案;
(2)進(jìn)行變異操作;(3)進(jìn)行交叉操作;
(4)進(jìn)行選擇操作;
(5)判斷是否達(dá)到終止條件,達(dá)到則輸出最優(yōu)解,否則轉(zhuǎn)(2)。
[0007]所述時(shí)間安排算法為:
(1)根據(jù)班級(jí)的數(shù)據(jù)生成一張空白課表;
(2)建立初始種群,隨機(jī)建立η組教學(xué)任務(wù)裝入空白課表;
(3)對(duì)種群的每個(gè)個(gè)體進(jìn)行變異操作得到變異個(gè)體;
(4)對(duì)種群中的每個(gè)個(gè)體進(jìn)行交叉操作得到實(shí)驗(yàn)個(gè)體;
(5)進(jìn)行選擇操作:從父代個(gè)體和實(shí)驗(yàn)個(gè)體中選擇一個(gè)作為下一代個(gè)體;
(6)產(chǎn)生新種群,如果達(dá)到最大進(jìn)化代數(shù)或滿足誤差要求則算法終止,否則跳轉(zhuǎn)到(3)。
[0008]所述排課算法的因素與差分進(jìn)化算法算子相對(duì)應(yīng)的對(duì)應(yīng)關(guān)系包括:
基因:組成染色體的單元,定義時(shí)間t和一門課程構(gòu)成一個(gè)“時(shí)間-課程”與一個(gè)待定的教室相對(duì)應(yīng),設(shè)這樣的一個(gè)組合為一個(gè)基因。
[0009]染色體:為待求解問(wèn)題的一個(gè)可能解,由基因連接組成染色體,即一種可能的排課方案也是差分進(jìn)化算法操作的基本對(duì)象。
[0010]初始種群:隨機(jī)生成若干種排課方案的集合,表示基于差分進(jìn)化算法的排課的搜索空間。
[0011]所述排課算法的因素與差分進(jìn)化算法算子相對(duì)應(yīng)的對(duì)應(yīng)關(guān)系還包括:
變異算子:差分進(jìn)化算法的變異算子為每個(gè)個(gè)體生成一個(gè)對(duì)應(yīng)的臨時(shí)個(gè)體,成為“變異個(gè)體”。
[0012]交叉算子:將多個(gè)父代個(gè)體按照一定的規(guī)則進(jìn)行交叉組合,實(shí)現(xiàn)局部開(kāi)采。
[0013]選擇算子:采用貪婪選擇策略來(lái)對(duì)種群進(jìn)行更新,通過(guò)比較新生成的實(shí)驗(yàn)個(gè)體與當(dāng)代種群中對(duì)應(yīng)個(gè)體的優(yōu)劣,選擇適應(yīng)度值更優(yōu)的個(gè)體作為子代進(jìn)入新種群。
[0014]終止條件:表示迭代的條件限制,當(dāng)達(dá)到設(shè)定值或者搜尋到最優(yōu)解之后,終止操作。
[0015]本發(fā)明的有益效果在于,本發(fā)明提供一種基于差分進(jìn)化算法的高校排課方法,將排課問(wèn)題轉(zhuǎn)化成差分進(jìn)化算法的問(wèn)題,排課問(wèn)題的因素和差分進(jìn)化算法的算子相對(duì)應(yīng)。時(shí)間算法與課室安排算法相結(jié)合,在排課過(guò)程的不同階段,建立起優(yōu)先的課室集,指導(dǎo)算法一直尋找最合適的課室,實(shí)時(shí)地對(duì)各類課室類型的資源和數(shù)量進(jìn)行動(dòng)態(tài)維護(hù),避免了差分進(jìn)化算法出現(xiàn)未成熟就收斂等問(wèn)題,也有效地解決了 “甩課”問(wèn)題。
【具體實(shí)施方式】
[0016]
下面結(jié)合【具體實(shí)施方式】對(duì)本發(fā)明做進(jìn)一步詳細(xì)說(shuō)明。
[0017]本發(fā)明實(shí)施例主要提供一種基于差分進(jìn)化算法的高校排課方法。
[0018]本實(shí)施例的排課算法題步驟為:
(1)隨機(jī)建立初試種群組成不同的可行解決方案;
(2)進(jìn)行變異操作;(3)進(jìn)行交叉操作;
(4)進(jìn)行選擇操作;
(5)判斷是否達(dá)到終止條件,達(dá)到則輸出最優(yōu)解,否則轉(zhuǎn)(2)。
[0019]
其中,其時(shí)間安排算法為:
(1)根據(jù)班級(jí)的數(shù)據(jù)生成一張空白課表;
(2)建立初始種群,隨機(jī)建立η組教學(xué)任務(wù)裝入空白課表;
(3)對(duì)種群的每個(gè)個(gè)體進(jìn)行變異操作得到變異個(gè)體;
(4)對(duì)種群中的每個(gè)個(gè)體進(jìn)行交叉操作得到實(shí)驗(yàn)個(gè)體;
(5)進(jìn)行選擇操作:從父代個(gè)體和實(shí)驗(yàn)個(gè)體中選擇一個(gè)作為下一代個(gè)體;
(6)產(chǎn)生新種群,如果達(dá)到最大進(jìn)化代數(shù)或滿足誤差要求則算法終止,否則跳轉(zhuǎn)到(3)。
[0020]本實(shí)施例中排課算法與差分進(jìn)化算法中的對(duì)應(yīng)關(guān)系包括: 基因:組成染色體的單元,定義時(shí)間t和一門課程構(gòu)成一個(gè)“時(shí)間-課程”的對(duì)每個(gè)對(duì)于一個(gè)待定的教室相對(duì)應(yīng),設(shè)這樣的一個(gè)組合為一個(gè)基因;
染色體:為待求解問(wèn)題的一個(gè)可能解,由基因連接組成染色體,即一種可能的排課方案也是差分進(jìn)化算法操作的基本對(duì)象。
[0021]初始種群:隨機(jī)生成若干種排課方案的集合,表示基于差分進(jìn)化算法的排課的搜索空間。
[0022]變異算子:差分進(jìn)化算法的變異算子為每個(gè)個(gè)體生成一個(gè)對(duì)應(yīng)的臨時(shí)個(gè)體,成為“變異個(gè)體”。
[0023]交叉算子:將多個(gè)父代個(gè)體按照一定的規(guī)則進(jìn)行交叉組合,實(shí)現(xiàn)局部開(kāi)采;
選擇算子:采用貪婪選擇策略來(lái)對(duì)種群進(jìn)行更新,通過(guò)比較新生成的實(shí)驗(yàn)個(gè)體與當(dāng)代種群中對(duì)應(yīng)個(gè)體的優(yōu)劣,選擇適應(yīng)度值更優(yōu)的個(gè)體作為子代進(jìn)入新種群;
終止條件:表示迭代的條件限制,當(dāng)達(dá)到設(shè)定值或者搜尋到最優(yōu)解之后,終止操作。
[0024]本發(fā)明實(shí)施例提供的一種基于差分進(jìn)化算法的高校排課方法,將排課問(wèn)題轉(zhuǎn)化成差分進(jìn)化算法的問(wèn)題,排課問(wèn)題的因素和差分進(jìn)化算法的算子相對(duì)應(yīng)。時(shí)間算法與課室安排算法相結(jié)合,在排課過(guò)程的不同階段,建立起優(yōu)先的課室集,指導(dǎo)算法一直尋找最合適的課室,實(shí)時(shí)地對(duì)各類課室類型的資源和數(shù)量進(jìn)行動(dòng)態(tài)維護(hù),避免了差分進(jìn)化算法出現(xiàn)未成熟就收斂等問(wèn)題,也有效地解決了 “甩課”問(wèn)題。
【主權(quán)項(xiàng)】
1.一種基于差分進(jìn)化算法的高校排課方法,其特征在于,所述方法將排課算法問(wèn)題轉(zhuǎn)化成差分進(jìn)化算法的問(wèn)題,排課算法的因素和差分進(jìn)化算法的算子相對(duì)應(yīng);時(shí)間安排算法與課室安排算法相結(jié)合;在排課過(guò)程的不同階段,建立起優(yōu)先的課室集,指導(dǎo)算法一直尋找最合適的課室,實(shí)時(shí)地對(duì)各類課室類型的資源和數(shù)量進(jìn)行動(dòng)態(tài)維護(hù),避免了差分進(jìn)化算法出現(xiàn)未成熟就收斂; 所述排課算法步驟為: (1)隨機(jī)建立初試種群組成不同的可行解決方案; (2)進(jìn)行變異操作; (3)進(jìn)行交叉操作; (4)進(jìn)行選擇操作; (5)判斷是否達(dá)到終止條件,達(dá)到則輸出最優(yōu)解,否則轉(zhuǎn)(2)。2.根據(jù)權(quán)利要求1所述一種基于差分進(jìn)化算法的高校排課方法,其特征在于,所述時(shí)間安排算法為: (1)根據(jù)班級(jí)的數(shù)據(jù)生成一張空白課表; (2)建立初始種群,隨機(jī)建立η組教學(xué)任務(wù)裝入空白課表; (3)對(duì)種群的每個(gè)個(gè)體進(jìn)行變異操作得到變異個(gè)體; (4)對(duì)種群中的每個(gè)個(gè)體進(jìn)行交叉操作得到實(shí)驗(yàn)個(gè)體; (5)進(jìn)行選擇操作:從父代個(gè)體和實(shí)驗(yàn)個(gè)體中選擇一個(gè)作為下一代個(gè)體; (6)產(chǎn)生新種群,如果達(dá)到最大進(jìn)化代數(shù)或滿足誤差要求則算法終止;否則跳轉(zhuǎn)到(3)。3.根據(jù)權(quán)利要求1所述一種基于差分進(jìn)化算法的高校排課方法,其特征在于,所述排課算法的因素與差分進(jìn)化算法的算子相對(duì)應(yīng)的對(duì)應(yīng)關(guān)系包括: 基因:組成染色體的單元,定義時(shí)間t和一門課程構(gòu)成一個(gè)“時(shí)間-課程”與一個(gè)待定的教室相對(duì)應(yīng),設(shè)這樣的一個(gè)組合為一個(gè)基因; 染色體:為待求解問(wèn)題的一個(gè)可能解,由基因連接組成染色體,即一種可能的排課方案也是差分進(jìn)化算法操作的基本對(duì)象。4.根據(jù)權(quán)利要求1所述一種基于差分進(jìn)化算法的高校排課方法,其特征在于,所述排課算法的因素與差分進(jìn)化算法的算子相對(duì)應(yīng)的對(duì)應(yīng)關(guān)系還包括: 初始種群:隨機(jī)生成若干種排課方案的集合,表示基于差分進(jìn)化算法的排課的搜索空間。5.根據(jù)權(quán)利要求1所述一種基于差分進(jìn)化算法的高校排課方法,其特征在于,所述排課算法的因素與差分進(jìn)化算法的算子相對(duì)應(yīng)的對(duì)應(yīng)關(guān)系還包括: 變異算子:差分進(jìn)化算法的變異算子為每個(gè)個(gè)體生成一個(gè)對(duì)應(yīng)的臨時(shí)個(gè)體,成為“變異個(gè)體”; 交叉算子:將多個(gè)父代個(gè)體按照一定的規(guī)則進(jìn)行交叉組合,實(shí)現(xiàn)局部開(kāi)采; 選擇算子:采用貪婪選擇策略來(lái)對(duì)種群進(jìn)行更新,通過(guò)比較新生成的實(shí)驗(yàn)個(gè)體與當(dāng)代種群中對(duì)應(yīng)個(gè)體的優(yōu)劣,選擇適應(yīng)度值更優(yōu)的個(gè)體作為子代進(jìn)入新種群; 終止條件:表示迭代的條件限制,當(dāng)達(dá)到設(shè)定值或者搜尋到最優(yōu)解之后,終止操作。
【文檔編號(hào)】G06Q50/20GK105913143SQ201610211684
【公開(kāi)日】2016年8月31日
【申請(qǐng)日】2016年4月7日
【發(fā)明人】丁青鋒, 邱翔
【申請(qǐng)人】華東交通大學(xué)