<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 一種基于遺傳算法的時(shí)間表問(wèn)題求解算法

一種基于遺傳算法的時(shí)間表問(wèn)題求解算法

作者:王婷,吳辰文 時(shí)間:2008-12-03 來(lái)源:現代電子技術(shù) 收藏

  時(shí)間表問(wèn)題又稱(chēng)課表問(wèn)題,就是解決對時(shí)間和空間資源爭奪而引發(fā)沖突。20世紀70年代中期,美國S.Even等人論證了課表問(wèn)題是NP完全類(lèi)問(wèn)題。理論和時(shí)間表明,只要課表所涉及的任何信息量稍有變化,就會(huì )導致課表編排選擇方案的劇增,即“組合爆炸”。一般作法是針對具體的應用環(huán)境,忽略一些限制條件,但這樣會(huì )造成使用效果的不理想。本文中提出利用特定條件對課程與教室分批,采用對時(shí)間表問(wèn)題進(jìn)行求解,給出了編碼形式、遺傳算子規則及適應度函數,通過(guò)對某學(xué)校課表編排數據的計算,驗證了算法的有效性。對時(shí)間表問(wèn)題的優(yōu)化求解,起到一定的效果。

本文引用地址:http://dyxdggzs.com/article/89970.htm

1 課表編排問(wèn)題的描述

 
 

  結合上述課表編排的4個(gè)條件,課表問(wèn)題就轉化為二部復圖Hb(V,E)的匹配問(wèn)題。

2 課表編排問(wèn)題的

  是基于生物的進(jìn)化與選擇機制的優(yōu)化算法。遺傳算法通過(guò)維持一個(gè)群體,并按個(gè)體的適應度的大小重復的進(jìn)行選擇。交叉和變異等操作來(lái)實(shí)現群體內個(gè)體結構的重組,將性能良好的解結構遺傳下去,提高后代的適應能力,從而進(jìn)化到最優(yōu)或次優(yōu)解。遺傳算法的基本步驟:確定編碼方案,確定適應函數,確定選擇策略,控制參數的選擇,遺傳算子的設計,算法終止準則的確定等。

2.1 編碼方案

  二進(jìn)制編碼是最常用的編碼方案,他類(lèi)似于生物染色體的組成,從而易于用生物遺傳理論來(lái)解釋并使得遺傳操作容易表現。且采用二進(jìn)制編碼時(shí),算法處理的模式數最多。(設采用k進(jìn)制編碼,碼長(cháng)為1,則所表示的最大整數為k1,模式數為(k+1)1??梢宰C明k=2時(shí)使得k1=const(常數)時(shí)(k+1)1取得最大值)。但該種編碼方案有相鄰整數的二進(jìn)制編碼可能具有較大的海明距離,如:7和8的二進(jìn)制表示為:0111,1000。這種缺陷在解決連續化問(wèn)題時(shí)降低搜索效率。故在本問(wèn)題求解中,采用格雷碼相鄰整數僅有一位不同的特性可克服二進(jìn)制編碼相鄰證書(shū)可能具有較大海明距離的缺陷。他的解碼過(guò)程如下:

  設有一格雷碼串(bnbn-1…b0)其解碼過(guò)程如下:

 

  串長(cháng)為m1×n1,m1為各參數(即課程)的編碼長(cháng)度;n1為參數的個(gè)數(即課程的門(mén)數),串中個(gè)參數所對應的值為該門(mén)課程所選“時(shí)間一教室對”集的序號,這樣構造串結構m1最短,故串長(cháng)也最短。

2.2 控制參數選擇

  (1)種群規模N:筆者經(jīng)過(guò)反復實(shí)驗發(fā)現:N值大進(jìn)化較慢,但易搜索到全局較優(yōu)解,而N值小時(shí)進(jìn)化速度快,但不易搜索到較優(yōu)解,權衡效率和性能,一般N取值為20~100,經(jīng)過(guò)實(shí)驗問(wèn)題N取值為40比較合適。

  (2)雜交操作

 

  (3)變異操作

  變異算子一般一次只改變一條染色體上的一個(gè)基因,比如,染色體Xt=(1,8,3,6,5),變異的基因是第3位,則變異后Xt+1=(1,8,7,6,5)。

2.3 適應度函數

  由于課表編排問(wèn)題是求目標函數最大值,適應度函數定義如下:

  其中Wij為第i個(gè)體串中對應第j門(mén)課所選”時(shí)間—教室對”集的權重。Count為第i個(gè)個(gè)體所對應的各門(mén)課程之間的沖突次數。C為一負數,其絕對值足夠大,以致于只要出現一次沖突,該適應只便為負,這樣便于終止準則的選定(因為所求解即要求無(wú)任何沖突)。但容易造成各個(gè)體間適應值相差過(guò)大的情況,所以采用線(xiàn)形排名的選擇策略。終止條件為:

  (1)該種群中最大適應值為一正數;

  (2)2當前種群中最大適應值與以前各代中最大適應值相差不大,這時(shí)說(shuō)明效果不太顯著(zhù),再進(jìn)化下去沒(méi)有必要。

3 實(shí)驗結果及結論

  本算法用C語(yǔ)言進(jìn)行驗證,交叉概率均為0.8,變異概率0.2,種群規模設為70。對某學(xué)校課表編排數據進(jìn)行實(shí)驗,算法運行2 000代,獲得了滿(mǎn)意的結果,所獲得的時(shí)刻表沒(méi)有沖突。當算法運行超過(guò)4 000代以后,其結果會(huì )出現幾處沖突外,但總體結果是比較滿(mǎn)意的。通過(guò)手工調整很容易獲得一個(gè)一個(gè)滿(mǎn)意的時(shí)間表。

  時(shí)間表問(wèn)題是一個(gè)典型的NP完全問(wèn)題,本文通過(guò)對該問(wèn)題的數學(xué)模型的分析,提出以遺傳算法進(jìn)行求解,算法的運行結果說(shuō)明了該方法是可行的。實(shí)際應用中,還要考慮更多的約束條件,這將是下一步的工作重點(diǎn)。

 



關(guān)鍵詞: 遺傳算法

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>