李榮娜 張 喜
(北京交通大學(xué)交通運(yùn)輸學(xué)院 北京100044)
列車運(yùn)行調(diào)整是指在列車運(yùn)行工作中,因各種因素和突發(fā)事件的影響,使得列車運(yùn)行的實(shí)際狀態(tài)偏離預(yù)定值,需要對列車運(yùn)行方案重新鋪劃,以盡可能小的代價(jià),盡快地恢復(fù)列車的有序運(yùn)行狀態(tài)[1]。隨著科學(xué)技術(shù)的進(jìn)步,國內(nèi)外有許多學(xué)者都注重依托先進(jìn)的系統(tǒng)來研究列車運(yùn)行調(diào)整問題,以期實(shí)現(xiàn)調(diào)度指揮的自動(dòng)化。
目前,學(xué)者和專家針對列車運(yùn)行調(diào)整問題提出了數(shù)學(xué)規(guī)劃、模擬仿真和人工智能等多種模型與算法。張翠平等根據(jù)圖論模型的理論建立了列車運(yùn)行調(diào)整問題的線性規(guī)劃模型,并采用改進(jìn)的啟發(fā)式算法進(jìn)行求解[2]。啟發(fā)式算法求解速率較快,但對于求解多目標(biāo)函數(shù)時(shí),效果就不太理想。陳雍君以貨運(yùn)鐵路為研究對象,建立了以列車旅行平均時(shí)間最少為優(yōu)化目標(biāo)函數(shù)的區(qū)間列車沖突調(diào)整模型,在求解時(shí)使用了序優(yōu)化方法,減少了計(jì)算量[3]。
而在列車運(yùn)行調(diào)整問題中,遺傳算法是1種可以很好地模擬列車運(yùn)行調(diào)整過程的算法,一些學(xué)者也進(jìn)行了研究。但是由于遺傳算法本身存在的問題,如收斂速度較慢、易出現(xiàn)早熟等,有時(shí)候不能獲得最優(yōu)的結(jié)果。而免疫遺傳算法是將免疫算法與遺傳算法相結(jié)合產(chǎn)生的1種方法,可在很大程度上避免遺傳算法中的早熟現(xiàn)象,從而快速找到全局最優(yōu)解。
選擇了雙線自動(dòng)閉塞的線路,并以該調(diào)度區(qū)段單方向的運(yùn)行調(diào)整問題為例進(jìn)行研究。為了精確地構(gòu)造和描述模型,建立以下的相關(guān)變量:
M-調(diào)度區(qū)段內(nèi)的車站總數(shù);
N-調(diào)度區(qū)段內(nèi)列車總數(shù);
Qi,j-列車i在車站j的起車附加時(shí)分;
Ti,j-列車i在車站j的停車附加時(shí)分;
I-最小追蹤列車間隔時(shí)間;
Si,j-列車i在車站j的最小作業(yè)標(biāo)準(zhǔn)時(shí)間;
Dj-車站j可供使用的到發(fā)線數(shù)量;
列車運(yùn)行調(diào)整的模型建立包括2部分:①目標(biāo)函數(shù)的建立;②約束條件的確定。
列車運(yùn)行調(diào)整的目的就是使偏離列車運(yùn)行圖的列車盡快恢復(fù)按圖行車。因此,以與列車運(yùn)行圖的偏差最小為優(yōu)化目標(biāo)[4]。具體的調(diào)整模型如下
式中:wi為列車i的權(quán)重因子,wi越大,說明列車的等級級別越高。
列車運(yùn)行調(diào)整問題是1個(gè)約束條件眾多的組合優(yōu)化問題,所產(chǎn)生的調(diào)整計(jì)劃必須滿足一定的約束條件,才可以執(zhí)行最后求解得到的調(diào)整計(jì)劃。
列車運(yùn)行調(diào)整必須滿足的約束條件如下。
1)區(qū)間運(yùn)行時(shí)分約束。根據(jù)列車在區(qū)間的運(yùn)行時(shí)間不得小于區(qū)間規(guī)定的最小運(yùn)行時(shí)這一規(guī)定,有
2)追蹤間隔時(shí)間約束。在區(qū)間內(nèi)追蹤運(yùn)行的2列列車之間需要滿足最小追蹤間隔時(shí)間的約束,即
式中:i為k的后行列車。
3)車站停車時(shí)分約束。列車i在車站j的作業(yè)時(shí)間不得小于規(guī)定的在該車站的最小作業(yè)時(shí)間,該約束條件為
式中:ri,j為列車i在車站j的通過和停站情況,可以定義為
4)發(fā)車時(shí)間約束。根據(jù)發(fā)車時(shí)間不得早于計(jì)劃發(fā)車時(shí)間,有
5)到發(fā)線約束條件。由于1個(gè)車站可以使用的到發(fā)線的數(shù)目都是固定的,因此列車實(shí)際的到發(fā)線使用數(shù)目不應(yīng)該大于車站總的到發(fā)線數(shù)量。首先,引用一函數(shù),在t時(shí)刻,令
則到發(fā)線的約束條件為
6)越行約束。如果列車在車站發(fā)生越行,就需要滿足
遺傳算法是以自然界中的生物進(jìn)化過程為背景,將生物進(jìn)化過程中的繁殖、選擇、交叉、變異和競爭等概念引入算法中[5]。它一般包括以下幾個(gè)步驟,首先,對問題的解進(jìn)行編碼,并產(chǎn)生編碼后的初始種群;根據(jù)優(yōu)化問題的目標(biāo)函數(shù)來制定適應(yīng)度函數(shù);然后,根據(jù)適應(yīng)度函數(shù)值挑選個(gè)體參與遺傳操作;最后,按照優(yōu)勝劣汰和適者生存的生物學(xué)原理逐代進(jìn)行衍化,直至得到問題的最優(yōu)解或近似最優(yōu)解。遺傳算法具有自組織性、自適應(yīng)性、并行性、過程性、不確定性等特點(diǎn)。這些特點(diǎn)使得遺傳算法在優(yōu)化問題中得到了極為成功的應(yīng)用。但是,它也存在一些不足,如遺傳算法的局部搜索能力很差,并極容易出現(xiàn)早熟現(xiàn)象,從而導(dǎo)致算法的收斂性降低[6]。
為克服遺傳算法存在的缺陷,將免疫系統(tǒng)的相關(guān)理論引入到遺傳算法的框架里,提出了1種新的算法——免疫遺傳算法。免疫遺傳算法是在遺傳算法的基礎(chǔ)上,借鑒生物免疫系統(tǒng)自適應(yīng)識(shí)別和排除侵入生物體內(nèi)的抗原性異物的功能,將生物免疫系統(tǒng)的學(xué)習(xí)、記憶、抗體多樣性的特點(diǎn)引入遺傳算法而得[7]。在實(shí)際問題中,免疫遺傳算法將求解問題的目標(biāo)函數(shù)對應(yīng)于入侵生命體的抗原,問題的解對應(yīng)為免疫系統(tǒng)產(chǎn)生的抗體,并通過一系列遺傳操作及抗體親和度的計(jì)算,在保持抗體多樣性的基礎(chǔ)上,找出針對問題的最優(yōu)解[7]。總而言之,免疫遺傳算法既保留了遺傳算法隨機(jī)全局并行搜索的特點(diǎn),又在很大程度上避免過早收斂,確保收斂于全局最優(yōu)解。
相較于遺傳算法,免疫遺傳算法具有以下特點(diǎn)[8]。
1)通過個(gè)體濃度評價(jià)可以對抗體進(jìn)行促進(jìn)和抑制,很好地保持了抗體的多樣性,這樣,能夠增強(qiáng)算法的全局搜索能力,從而使算法收斂更快。
2)具有免疫記憶功能,該功能是免疫遺傳算法的1個(gè)重要特色,可以使系統(tǒng)在處理同類問題時(shí),使用記憶庫中的個(gè)體作為初始群體,這樣加快搜索速度,迅速收斂到全局最優(yōu)解。
3)具有自我調(diào)節(jié)功能,可以提高局部搜索能力。
1)編碼設(shè)計(jì)。列車運(yùn)行調(diào)整問題的解就是列車的運(yùn)行時(shí)刻,因此采用實(shí)數(shù)編碼,能夠省去推算的過程,直接求得結(jié)果,簡便可行。定義從午夜零點(diǎn)到某個(gè)時(shí)刻所經(jīng)過的秒數(shù)代表現(xiàn)實(shí)中的相應(yīng)時(shí)刻,如,6000代表著01:40:00。
文中的編碼格式為:xk=(,,…,),其長度為M×N×2。
2)適應(yīng)度函數(shù)設(shè)計(jì)。適應(yīng)度函數(shù)是衡量遺傳算法中解的好壞的1種標(biāo)準(zhǔn),個(gè)體的適應(yīng)度值越大,表明解的性能越優(yōu)。在遺傳算法中,適應(yīng)度函數(shù)一般是目標(biāo)函數(shù),為了便于操作,一般要求適應(yīng)度值非負(fù),而且適應(yīng)度值增大方向必須對應(yīng)目標(biāo)函數(shù)優(yōu)化的方向。因此,筆者設(shè)計(jì)的適應(yīng)度函數(shù)如下。
式中:Cmax為事先設(shè)定的一較大正數(shù)。
算法必須考慮對約束條件的處理,筆者采用罰函數(shù)法進(jìn)行處理,即對解空間中無對應(yīng)可行解的個(gè)體在計(jì)算適應(yīng)度值時(shí)增加一個(gè)罰函數(shù),降低該個(gè)體遺傳到下一代的概率。第1個(gè)約束條件進(jìn)行罰函數(shù)處理的過程如下
式中:P為一正數(shù)。
剩余的約束條件可依次進(jìn)行,則經(jīng)過罰函數(shù)方法處理得到的新的適應(yīng)度函數(shù)為
3)抗體濃度??贵w和抗體之間的親和力反映了抗體之間的相似程度,此處借鑒由Forrest等提出的R位連續(xù)方法計(jì)算抗體與抗體之間的親和力[9]。即
式中:ki,j為抗體i和j中相同的位數(shù);L為抗體的長度。
親和力越大,表明2個(gè)抗體之間的相似程度越高,當(dāng)種群進(jìn)入下一代時(shí),親和力大的抗體將會(huì)大肆繁殖,但是如果相似抗體太多,為了防止算法在小范圍內(nèi)進(jìn)行復(fù)制,使得算法收斂于局部解,就要抑制它們的再繁殖,從而保證算法求解的范圍比較廣。選用濃度來決定抗體的促進(jìn)和抑制。設(shè)Ci為抗體i的濃度,則濃度定義為
其中:τ為預(yù)先設(shè)定的閾值,一般取值范圍為[0.9,1].
4)抗體的抑制和促進(jìn)。免疫遺傳算法的選擇概率不僅與個(gè)體的適應(yīng)度有關(guān),而且與抗體的濃度有關(guān)[6]。這是免疫遺傳算法區(qū)別于遺傳算法的1個(gè)重要特色。設(shè)抗體i的期望繁殖率為P,則其選擇復(fù)制的概率為
式中:α為常數(shù)。由上式可見,個(gè)體適應(yīng)度越高,則期望繁殖概率越大;個(gè)體濃度越大,則期望繁殖概率越小。這樣既鼓勵(lì)了適應(yīng)度高的個(gè)體,同時(shí)抑制了濃度高的個(gè)體,從而確保了個(gè)體多樣性[9]。
5)選擇操作。選擇:按照輪盤賭選擇機(jī)制和精英保留策略相結(jié)合的方式進(jìn)行選擇操作。精英保留策略是指群體中適應(yīng)度最高的個(gè)體不進(jìn)行交叉操作與變異操作,直接遺傳到下1代種群中,目的是為了保證群體收斂到最優(yōu)解。
輪盤賭選擇是基于適者生存這一思想,按照期望繁殖概率進(jìn)行選擇。
6)交叉操作。是指從種群中選取2個(gè)個(gè)體,通過2個(gè)染色體的交換組合,從而產(chǎn)生下1代的新的個(gè)體。由于采用的是實(shí)數(shù)編碼,因此采用實(shí)數(shù)交叉法,即染色體xi和染色體xj在隨機(jī)選取的k基因位上進(jìn)行基因交換,用數(shù)學(xué)公式可以描述為
式中:b為隨機(jī)數(shù)。
7)變異操作。變異操作是算法中很重要的一步,筆者采用混合變異算法,即采用基于實(shí)數(shù)編碼的非均勻變異與邊界變異法進(jìn)行變異操作。將進(jìn)化代數(shù)T分為2個(gè)階段,當(dāng)進(jìn)化到當(dāng)前代數(shù)t時(shí),若0<t<T/2,時(shí),采用非均勻變異算法,否則采用邊界變異法。這樣混合的變異方式可以提高算法的收斂速度,使算法盡快收斂于全局最優(yōu)解。
在上述內(nèi)容的基礎(chǔ)上,得到基于免疫遺傳算法(調(diào)整算法)的步驟如下。
1)輸入抗原。輸入目標(biāo)函數(shù)和各種約束條件,作為抗原。
2)產(chǎn)生初始抗體群。把抗體定義為列車運(yùn)行調(diào)整問題的可行解,在解空間上,隨機(jī)生成一定數(shù)目的個(gè)體。
3)計(jì)算適應(yīng)度和濃度。計(jì)算抗體群中的適應(yīng)度和濃度。
4)記憶細(xì)胞。先將適應(yīng)度最高的若干個(gè)體放入記憶庫中,再按照期望繁殖率將剩余的抗體選入記憶庫,這些記憶庫中的個(gè)體可以直接傳遞到下1代中。
5)抗體的抑制和促進(jìn)。在免疫遺傳算法中,適當(dāng)?shù)夭捎靡种撇呗砸员3址N群中抗體的多樣性,在構(gòu)造選擇概率時(shí),綜合考慮適應(yīng)度和濃度來實(shí)現(xiàn)。
6)新群體的產(chǎn)生。通過遺傳操作,產(chǎn)生新1代的抗體。
7)終止條件判斷。若滿足終止條件,則輸出結(jié)果,否則返回到步驟3)。
以某雙線自動(dòng)閉塞鐵路12:00~16:00時(shí)的10輛列車為例。在算法運(yùn)行中,比較重要的參數(shù)有:交叉概率,變異概率,迭代次數(shù),種群規(guī)模最大迭代次數(shù)等[10]。經(jīng)過反復(fù)試驗(yàn),本例參數(shù)設(shè)置為:迭代次數(shù)maxgen=200,種群規(guī)模sizepop=30,記憶庫容量overbest=10,交叉概率pcross=0.8,變異概率pmutation=0.1,多樣性評價(jià)參數(shù)α=0.9,濃度閾值τ=0.9。應(yīng)用免疫遺傳算法進(jìn)行計(jì)算,并將其與遺傳算法的運(yùn)行過程進(jìn)行對比,結(jié)果見圖1和圖2。
由此可以看出,免疫遺傳算法在40多代進(jìn)行收斂,而遺傳算法在60多代后曲線才收斂,顯然,免疫遺傳算法收斂速度較快。此外,免疫遺傳算法收斂到最優(yōu)解,而遺傳算法只收斂到次優(yōu)解,這說明免疫遺傳算法能搜索到更優(yōu)結(jié)果。
在進(jìn)行試驗(yàn)時(shí),同時(shí)對2種算法試驗(yàn)20次,發(fā)現(xiàn)遺傳算法試驗(yàn)成功率僅為70%,而免疫遺傳算法能達(dá)到100%。
綜上所述,免疫遺傳算法在收斂速度,最優(yōu)值以及試驗(yàn)成功率方面都具有更為優(yōu)越的特性。
圖1 免疫遺傳算法收斂曲線Fig.1 The convergence curve of the immune genetic algorithm
圖2 遺傳算法收斂曲線Fig.2 The convergence curve of the genetic algorithm
針對遺傳算法在運(yùn)用中存在的不足,選用1種免疫遺傳算法進(jìn)行列車運(yùn)行調(diào)整問題的求解。列車運(yùn)行調(diào)整模型的建立,突出了以偏離運(yùn)行圖最小為目標(biāo)函數(shù)的特點(diǎn),并充分考慮了區(qū)間運(yùn)行時(shí)分、車站停車時(shí)分約束、越行約束等條件,在此基礎(chǔ)上設(shè)計(jì)了免疫遺傳算法的各個(gè)步驟。其中,適應(yīng)度函數(shù)進(jìn)行了罰函數(shù)方法處理,親和度采用了不同于信息熵的R位連續(xù)方法進(jìn)行計(jì)算,選擇操作則是綜合了輪盤賭選擇機(jī)制和精英保留策略的方式,變異操作采用了混合的變異方式進(jìn)行操作。仿真結(jié)果表明,免疫遺傳算法在收斂速度,最優(yōu)值甚至試驗(yàn)成功率方面都具有更好的性能。
[1] 李志宏.列車運(yùn)行智能調(diào)整系統(tǒng)相關(guān)問題研究[D].成都:西南交通大學(xué),2006.
[2] 張翠平,曹成鉉.列車運(yùn)行調(diào)整的圖論模型與啟發(fā)式算法[J].科學(xué)技術(shù)與工程,2010,10(10):2560-2564.
[3] 陳雍君.基于序優(yōu)化方法的列車運(yùn)行調(diào)整算法研究[J].鐵道學(xué)報(bào),2010,32(3):1-8.
[4] 梁 旭,黃 明.現(xiàn)代智能優(yōu)化混合算法及其應(yīng)用[M].北京:電子工業(yè)出版社,2011.
[5] 豆雯雯.基于免疫蟻群算法列車運(yùn)行調(diào)整模型的優(yōu)化與研究[D].蘭州:蘭州交通大學(xué),2012.
[6] 劉泉叮.基于免疫遺傳算法的OD矩陣反推模型與算法[D].重慶:重慶大學(xué),2010.
[7] 莫 軍.基于免疫遺傳算法的水下無人平臺(tái)航路規(guī)劃[J].艦船科學(xué)技術(shù),2012,34(9):76-78.
[8] 王宏剛,張 琦等.基于遺傳算法的高速鐵路行車調(diào)整模型[J].中國鐵道科學(xué),2006,27(3):96-100.
[9] 史 峰.Matlab智能算法30個(gè)案例分析[M].北京:北京航空航天大學(xué)出版社,2011.
[10] 趙勝武,趙建武,林 楊.基于免疫遺傳算法的公交線網(wǎng)優(yōu)化研究[J].交通信息與安全,2009,27(6):43-47.