一種基于遺傳算法的高校排課方法
【專(zhuān)利說(shuō)明】一種基于遺傳算法的高校排課方法
[0001]
技術(shù)領(lǐng)域
[0002]本發(fā)明涉及一種遺傳算法的應(yīng)用,尤其涉及一種基于遺傳算法的高校排課方法。
【背景技術(shù)】
[0003]遺傳算法借鑒了達(dá)爾文的進(jìn)化論和孟德?tīng)柕倪z傳敘說(shuō),是近幾年發(fā)展起來(lái)的一種嶄新的全局優(yōu)化算法,它目的就是在潛在的解決方案集中逐層產(chǎn)生一個(gè)近似最優(yōu)的解。美國(guó)Holland教授于1975年首先提出GA算法的思想后吸引了大批的學(xué)者進(jìn)行研宄,并迅速推廣到機(jī)器學(xué)習(xí)、優(yōu)化、搜索等領(lǐng)域。GA算
法使用適者生存的自然規(guī)律,是“生存和檢測(cè)”的迭代過(guò)程的搜索算法。它將問(wèn)題域中的可能解看作是群體的一個(gè)個(gè)體或染色體,并將每一個(gè)體編碼成符號(hào)串形式,模擬達(dá)爾文的遺傳選擇和自然淘汰的生物進(jìn)化過(guò)程,對(duì)群體反復(fù)進(jìn)行隨機(jī)的、有組織的信息交換,根據(jù)預(yù)定的目標(biāo)適應(yīng)度函數(shù)和借鑒生物遺傳學(xué)的再造方法對(duì)每個(gè)個(gè)體進(jìn)行評(píng)價(jià)和選擇,不斷得到更優(yōu)的群體。
【發(fā)明內(nèi)容】
[0004]本發(fā)明主要提供一種基于遺傳算法的高校排課方法,為了實(shí)現(xiàn)本發(fā)明的目的,本發(fā)明提供一種基于遺傳算法的高校排課方法,其特征在于,其排課算法步驟為:
(O隨機(jī)建立初始群種組成不同的可行解決方案;
(2)計(jì)算各個(gè)個(gè)體的適應(yīng)度;
(3)執(zhí)行遺傳操作,重新組合新的種群:利用輪盤(pán)賭法選擇優(yōu)良的個(gè)體復(fù)制添加到新的種群中,之后利用輪盤(pán)算法選出兩個(gè)個(gè)體進(jìn)行基因交叉重組添加到新的種群中,然后覆蓋舊種群,利用輪盤(pán)賭法選出個(gè)體以極小的概率隨機(jī)變化其基因添加到新的種群中,然后覆蓋舊種群;
(4)判斷是否達(dá)到終止條件,達(dá)到則輸出最優(yōu)解,否則轉(zhuǎn)(2)。
[0005]優(yōu)選的,其時(shí)間安排算法為:
(1)根據(jù)班級(jí)的數(shù)據(jù)生成一張空白課表;
(2)建立初始群種,隨機(jī)建立η組教學(xué)任務(wù)裝入空白課表;
(3)評(píng)估適應(yīng)度,也就是對(duì)種群進(jìn)行沖突檢測(cè),有沖突就消除,如果無(wú)沖突則遺傳迭代結(jié)束,算法終止。跳轉(zhuǎn)到(8);
(4)根據(jù)適應(yīng)度大小,選擇某個(gè)特定的規(guī)則來(lái)選擇算子,產(chǎn)生中間代;
(5)對(duì)種群中的個(gè)體進(jìn)行交叉計(jì)算;
(6)選擇種群中符合的個(gè)體進(jìn)行變異計(jì)算;
(7)產(chǎn)生新種群,覆蓋舊種群,如果滿(mǎn)足任意一個(gè)優(yōu)化停止的條件,就跳轉(zhuǎn)到第(3),否則跳轉(zhuǎn)到(8); (8)算法結(jié)束,根據(jù)計(jì)算的適應(yīng)度的值,適應(yīng)度越高就表示越優(yōu),從較優(yōu)的群體中選擇一個(gè)最優(yōu)方案。
[0006]優(yōu)選的,排課算法與遺傳算法中的對(duì)應(yīng)關(guān)系包括:
基因:組成染色體的單元,定義時(shí)間t和一門(mén)課程構(gòu)成一個(gè)“時(shí)間-課程”的對(duì)每個(gè)對(duì)與一個(gè)待定的教室相對(duì)應(yīng),設(shè)這樣的一個(gè)組合為一個(gè)基因;
染色體:為待求解問(wèn)題的一個(gè)可能解,由基因連接組成染色體,即一種可能的排課方案,也是遺傳算法操作的基本對(duì)象;
優(yōu)選的,排課算法與遺傳算法中的對(duì)應(yīng)關(guān)系還包括:
初始群種:隨機(jī)生成若干種排課方案的集合,表示基于遺傳算法的排課的搜索空間。
[0007]優(yōu)選的,排課算法與遺傳算法中的對(duì)應(yīng)關(guān)系還包括:
選擇算子:根據(jù)生物遺傳學(xué)的“設(shè)置生存,優(yōu)勝劣汰”的進(jìn)化規(guī)則,使用輪盤(pán)賭算法,不同個(gè)體的適應(yīng)度在一個(gè)種群中所占比例的總和為1,呈現(xiàn)在一個(gè)輪盤(pán)上,根據(jù)個(gè)體的適應(yīng)度的概率選擇其作為父?jìng)€(gè)體,個(gè)體的適應(yīng)度越大,被選中的機(jī)會(huì)越高;
優(yōu)選的,排課算法與遺傳算法中的對(duì)應(yīng)關(guān)系還包括:
變異算子:按照很小的概率隨機(jī)改變某個(gè)個(gè)體的性質(zhì),使基于基因的單點(diǎn)變異;
交叉算子:父?jìng)€(gè)體按照一定的概率隨機(jī)交換基因的前后部分形成新的個(gè)體,在本課題中采取單點(diǎn)交叉操作;
終止條件:表示迭代遺傳代數(shù)的條件限制,當(dāng)達(dá)到設(shè)定值之后,終止操作。
[0008]有益效果:本發(fā)明提供一種基于遺傳算法的高校排課方法,將排課問(wèn)題轉(zhuǎn)化成遺傳算法的問(wèn)題,排課問(wèn)題的因素和遺傳算法的算子相對(duì)應(yīng)。時(shí)間算法與課室安排算法相結(jié)合,在排課過(guò)程的不同階段,建立起優(yōu)先的課室集,指導(dǎo)算法一直尋找最合適的課室,實(shí)時(shí)地對(duì)各類(lèi)課室類(lèi)型的資源和數(shù)量進(jìn)行動(dòng)態(tài)維護(hù),避免了遺傳算法出現(xiàn)未成熟就收斂等問(wèn)題,也有效地解決了 “甩課”問(wèn)題。
【具體實(shí)施方式】
[0009]下面結(jié)合【具體實(shí)施方式】對(duì)本發(fā)明做進(jìn)一步詳細(xì)說(shuō)明。
[0010]本發(fā)明提供一種基于遺傳算法的高校排課方法,其特征在于,其排課算法步驟為:
(O隨機(jī)建立初始群種組成不同的可行解決方案;
(2)計(jì)算各個(gè)個(gè)體的適應(yīng)度;
(3)執(zhí)行遺傳操作,重新組合新的種群:利用輪盤(pán)賭法選擇優(yōu)良的個(gè)體復(fù)制添加到新的種群中,之后利用輪盤(pán)算法選出兩個(gè)個(gè)體進(jìn)行基因交叉重組添加到新的種群中,然后覆蓋舊種群,利用輪盤(pán)賭法選出個(gè)體以極小的概率隨機(jī)變化其基因添加到新的種群中,然后覆蓋舊種群;
(4)判斷是否達(dá)到終止條件,達(dá)到則輸出最優(yōu)解,否則轉(zhuǎn)(2)。
[0011]其中,其時(shí)間安排算法為:
(1)根據(jù)班級(jí)的數(shù)據(jù)生成一張空白課表;
(2)建立初始群種,隨機(jī)建立η組教學(xué)任務(wù)裝入空白課表;
(3)評(píng)估適應(yīng)度,也就是對(duì)種群進(jìn)行沖突檢測(cè),有沖突就消除,如果無(wú)沖突則遺傳迭代結(jié)束,算法終止。跳轉(zhuǎn)到(8);
(4)根據(jù)適應(yīng)度大小,選擇某個(gè)特定的規(guī)則來(lái)選擇算子,產(chǎn)生中間代;
(5)對(duì)種群中的個(gè)體進(jìn)行交叉計(jì)算;
(6)選擇種群中符合的個(gè)體進(jìn)行變異計(jì)算;
(7)產(chǎn)生新種群,覆蓋舊種群,如果滿(mǎn)足任意一個(gè)優(yōu)化停止的條件,就跳轉(zhuǎn)到第(3),否則跳轉(zhuǎn)到(8);
(8)算法結(jié)束,根據(jù)計(jì)算的適應(yīng)度的值,適應(yīng)度越高就表示越優(yōu),從較優(yōu)的群體中選擇一個(gè)最優(yōu)方案。
[0012]排課算法與遺傳算法中的對(duì)應(yīng)關(guān)系包括:
基因:組成染色體的單元,定義時(shí)間t和一門(mén)課程構(gòu)成一個(gè)“時(shí)間-課程”的對(duì)每個(gè)對(duì)與一個(gè)待定的教室相對(duì)應(yīng),設(shè)這樣的一個(gè)組合為一個(gè)基因;
染色體:為待求解問(wèn)題的一個(gè)可能解,由基因連接組成染色體,即一種可能的排課方案,也是遺傳算法操作的基本對(duì)象;
初始群種:隨機(jī)生成若干種排課方案的集合,表示基于遺傳算法的排課的搜索空間。
[0013]選擇算子:根據(jù)生物遺傳學(xué)的“設(shè)置生存,優(yōu)勝劣汰”的進(jìn)化規(guī)則,使用輪盤(pán)賭算法,不同個(gè)體的適應(yīng)度在一個(gè)種群中所占比例的總和為1,呈現(xiàn)在一個(gè)輪盤(pán)上,根據(jù)個(gè)體的適應(yīng)度的概率選擇其作為父?jìng)€(gè)體,個(gè)體的適應(yīng)度越大,被選中的機(jī)會(huì)越高;
變異算子:按照很小的概率隨機(jī)改變某個(gè)個(gè)體的性質(zhì),使基于基因的單點(diǎn)變異;
交叉算子:父?jìng)€(gè)體按照一定的概率隨機(jī)交換基因的前后部分形成新的個(gè)體,在本課題中采取單點(diǎn)交叉操作;
終止條件:表示迭代遺傳代數(shù)的條件限制,當(dāng)達(dá)到設(shè)定值之后,終止操作。
[0014]本發(fā)明提供一種基于遺傳算法的高校排課方法,將排課問(wèn)題轉(zhuǎn)化成遺傳算法的問(wèn)題,排課問(wèn)題的因素和遺傳算法的算子相對(duì)應(yīng)。時(shí)間算法與課室安排算法相結(jié)合,在排課過(guò)程的不同階段,建立起優(yōu)先的課室集,指導(dǎo)算法一直尋找最合適的課室,實(shí)時(shí)地對(duì)各類(lèi)課室類(lèi)型的資源和數(shù)量進(jìn)行動(dòng)態(tài)維護(hù),避免了遺傳算法出現(xiàn)未成熟就收斂等問(wèn)題,也有效地解決了“甩課”問(wèn)題。
[0015]由技術(shù)常識(shí)可知,本發(fā)明可以通過(guò)其它的不脫離其精神實(shí)質(zhì)或必要特征的實(shí)施方案來(lái)實(shí)現(xiàn)。因此,上述公開(kāi)的實(shí)施方案,就各方面而言,都只是舉例說(shuō)明,并不是僅有的。所有在本發(fā)明范圍內(nèi)或在等同于本發(fā)明的范圍內(nèi)的改變均被本發(fā)明包含。
【主權(quán)項(xiàng)】
1.一種基于遺傳算法的高校排課方法,其特征在于,其排課算法步驟為: (1)隨機(jī)建立初始群種組成不同的可行解決方案; (2)計(jì)算各個(gè)個(gè)體的適應(yīng)度; (3)執(zhí)行遺傳操作,重新組合新的種群:利用輪盤(pán)賭法選擇優(yōu)良的個(gè)體復(fù)制添加到新的種群中,之后利用輪盤(pán)算法選出兩個(gè)個(gè)體進(jìn)行基因交叉重組添加到新的種群中,然后覆蓋舊種群,利用輪盤(pán)賭法選出個(gè)體以極小的概率隨機(jī)變化其基因添加到新的種群中,然后覆蓋舊種群; (4)判斷是否達(dá)到終止條件,達(dá)到則輸出最優(yōu)解,否則轉(zhuǎn)(2)。
2.根據(jù)權(quán)利要求1所述的一種基于遺傳算法的高校排課方法,其特征在于,其時(shí)間安排算法為: (1)根據(jù)班級(jí)的數(shù)據(jù)生成一張空白課表; (2)建立初始群種,隨機(jī)建立η組教學(xué)任務(wù)裝入空白課表; (3)評(píng)估適應(yīng)度,也就是對(duì)種群進(jìn)行沖突檢測(cè),有沖突就消除,如果無(wú)沖突則遺傳迭代結(jié)束,算法終止; 跳轉(zhuǎn)到(8); (4)根據(jù)適應(yīng)度大小,選擇某個(gè)特定的規(guī)則來(lái)選擇算子,產(chǎn)生中間代; (5)對(duì)種群中的個(gè)體進(jìn)行交叉計(jì)算; (6)選擇種群中符合的個(gè)體進(jìn)行變異計(jì)算; (7)產(chǎn)生新種群,覆蓋舊種群,如果滿(mǎn)足任意一個(gè)優(yōu)化停止的條件,就跳轉(zhuǎn)到第(3),否則跳轉(zhuǎn)到(8); (8)算法結(jié)束,根據(jù)計(jì)算的適應(yīng)度的值,適應(yīng)度越高就表示越優(yōu),從較優(yōu)的群體中選擇一個(gè)最優(yōu)方案。
3.根據(jù)權(quán)利要求1所述的基于遺傳算法的高校排課方法,其特征在于,排課算法與遺傳算法中的對(duì)應(yīng)關(guān)系包括: 基因:組成染色體的單元,定義時(shí)間t和一門(mén)課程構(gòu)成一個(gè)“時(shí)間-課程”的對(duì)每個(gè)對(duì)與一個(gè)待定的教室相對(duì)應(yīng),設(shè)這樣的一個(gè)組合為一個(gè)基因; 染色體:為待求解問(wèn)題的一個(gè)可能解,由基因連接組成染色體,即一種可能的排課方案,也是遺傳算法操作的基本對(duì)象。
4.根據(jù)權(quán)利要求1所述的基于遺傳算法的高校排課方法,其特征在于,排課算法與遺傳算法中的對(duì)應(yīng)關(guān)系還包括: 初始群種:隨機(jī)生成若干種排課方案的集合,表示基于遺傳算法的排課的搜索空間。
5.根據(jù)權(quán)利要求1所述的基于遺傳算法的高校排課方法,其特征在于,排課算法與遺傳算法中的對(duì)應(yīng)關(guān)系還包括: 選擇算子:根據(jù)生物遺傳學(xué)的“設(shè)置生存,優(yōu)勝劣汰”的進(jìn)化規(guī)則,使用輪盤(pán)賭算法,不同個(gè)體的適應(yīng)度在一個(gè)種群中所占比例的總和為1,呈現(xiàn)在一個(gè)輪盤(pán)上,根據(jù)個(gè)體的適應(yīng)度的概率選擇其作為父?jìng)€(gè)體,個(gè)體的適應(yīng)度越大,被選中的機(jī)會(huì)越高。
6.根據(jù)權(quán)利要求1所述的基于遺傳算法的高校排課方法,其特征在于,排課算法與遺傳算法中的對(duì)應(yīng)關(guān)系還包括: 變異算子:按照很小的概率隨機(jī)改變某個(gè)個(gè)體的性質(zhì),使基于基因的單點(diǎn)變異; 交叉算子:父?jìng)€(gè)體按照一定的概率隨機(jī)交換基因的前后部分形成新的個(gè)體,在本課題中采取單點(diǎn)交叉操作; 終止條件:表示迭代遺傳代數(shù)的條件限制,當(dāng)達(dá)到設(shè)定值之后,終止操作。
【專(zhuān)利摘要】本發(fā)明提供一種基于遺傳算法的高校排課方法,將排課問(wèn)題轉(zhuǎn)化成遺傳算法的問(wèn)題,排課問(wèn)題的因素和遺傳算法的算子相對(duì)應(yīng)。時(shí)間算法與課室安排算法相結(jié)合,在排課過(guò)程的不同階段,建立起優(yōu)先的課室集,指導(dǎo)算法一直尋找最合適的課室,實(shí)時(shí)地對(duì)各類(lèi)課室類(lèi)型的資源和數(shù)量進(jìn)行動(dòng)態(tài)維護(hù),避免了遺傳算法出現(xiàn)未成熟就收斂等問(wèn)題,也有效地解決了“甩課”問(wèn)題。
【IPC分類(lèi)】G06Q50-20
【公開(kāi)號(hào)】CN104751388
【申請(qǐng)?zhí)枴緾N201510091102
【發(fā)明人】胡劍鋒
【申請(qǐng)人】江西科技學(xué)院
【公開(kāi)日】2015年7月1日
【申請(qǐng)日】2015年3月1日