蔣 莉,郭 強(qiáng),劉憲亮
(1.華北水利水電學(xué)院,河南 鄭州 450011;2.中水北方勘測設(shè)計(jì)研究有限責(zé)任公司,天津 河西 300222;3.黃河水利職業(yè)技術(shù)學(xué)院,河南 開封 475004)
在邊坡穩(wěn)定分析中,如果目標(biāo)函數(shù)為凸函數(shù),且搜索空間比較規(guī)則,應(yīng)用傳統(tǒng)的分析方法容易得到最優(yōu)解。 但復(fù)雜條件下的邊坡穩(wěn)定性分析是一個(gè)含多極值點(diǎn)、目標(biāo)函數(shù)無確切表達(dá)式的非線性規(guī)劃問題,對這種問題,再用傳統(tǒng)的優(yōu)化方法就難以搜索到全局最優(yōu)解(最危險(xiǎn)滑動(dòng)面)。 蟻群算法(Ant Colony Algorithm)是意大利學(xué)者M(jìn)arco. Dorigo 等人在自然界蟻群集體行為特征的啟發(fā)下提出來的一種新型仿生算法。 該算法對目標(biāo)函數(shù)無特殊要求,適用于目標(biāo)函數(shù)為高度非線性、非凸或離散型的最優(yōu)化模型。本文試運(yùn)用蟻群算法,并結(jié)合斯賓塞(Spencer)法,對非均質(zhì)邊坡進(jìn)行穩(wěn)定分析,通過對非圓弧滑動(dòng)面的搜索,確定最危險(xiǎn)滑動(dòng)面位置及其對應(yīng)的最小安全系數(shù)。
自然界中,螞蟻、蜜蜂、飛蛾等群居昆蟲個(gè)體行為極其簡單,但由多個(gè)個(gè)體組成的群體卻呈現(xiàn)出有規(guī)律的行為。 螞蟻在搜索食物源并搬運(yùn)食物回巢穴時(shí),其個(gè)體之間通過一種稱之為信息素(Pheromone)的化學(xué)物質(zhì)進(jìn)行信息傳遞。 每只螞蟻能夠在它所經(jīng)過的路徑上釋放、感知這種化學(xué)物質(zhì),并能夠根據(jù)該化學(xué)物質(zhì)的強(qiáng)弱決定自己的運(yùn)動(dòng)方向。 由此蟻群的集體行為就表現(xiàn)出一種信息正反饋現(xiàn)象:某一路徑上走過的螞蟻數(shù)越多,留下的信息素痕跡(Trail)就越多,后來螞蟻選擇該路徑的概率也就越大。 螞蟻群體正是通過這種行為最終找到通往目的地的最佳路徑的。
受蟻群這種集體行為啟發(fā)而提出的蟻群算法是基于種群進(jìn)化的算法,易于實(shí)現(xiàn)分布式并行計(jì)算,且具有靈活性和開放性,可通過移植、雜交等方法同其他算法相結(jié)合,以改善算法的性能,或形成新的算法。它通過對目標(biāo)函數(shù)的自適應(yīng)來調(diào)整螞蟻的搜索行為, 并通過路徑選擇過程中的多樣性來保證得到更多的搜索空間,能夠?qū)Χ嘧兞?、非線性的復(fù)雜問題進(jìn)行優(yōu)化,并快速地得到全局最優(yōu)解。 蟻群算法首先應(yīng)用于求解TSP 問題(Traveling Salesman Problem,旅行商問題),并取得了較好的效果。 由于具有較強(qiáng)的魯棒性,對蟻群系統(tǒng)模型稍加修改,便可用來求解其他類型的規(guī)劃或決策問題。
蟻群算法在完成整個(gè)任務(wù)的過程應(yīng)遵循如下規(guī)則:(1)螞蟻觀察到的范圍為一個(gè)方格形狀,并且移動(dòng)的距離也在此范圍內(nèi),每只螞蟻僅能感知其范圍內(nèi)的環(huán)境信息。 (2)螞蟻在可感知的范圍內(nèi)覓食或?qū)は佈?,如果存在目?biāo),直接過去,否則,看是否有信息素,并朝信息素濃的方向前進(jìn)。 (3)每只螞蟻都朝信息素最濃的方向移動(dòng),如果周圍沒有信息素誘導(dǎo),螞蟻將按照自己的原運(yùn)動(dòng)方向前進(jìn)。(4)若螞蟻的移動(dòng)方向被障礙物遮擋,它會(huì)隨機(jī)地選擇其他方向;如果有信息素指引,它將朝信息素濃的方向前進(jìn)。 (5)每只螞蟻在剛找到食物或者蟻穴時(shí)散發(fā)的信息素最多,隨著所走距離的增加,信息素以一定速率在環(huán)境中揮發(fā)。
工程上對非圓弧臨界滑動(dòng)面安全系數(shù)的求解主要有簡布法、摩根斯坦一普賴斯法以及沙爾瑪法等。 斯賓塞法是摩根斯坦一普賴斯法的一個(gè)特例,它假定土條側(cè)向力為常數(shù),在很多情況下,采用該法所得的安全系數(shù)滿足工程要求[2]。 本文使用斯賓塞法計(jì)算邊坡的安全系數(shù),其計(jì)算公式和計(jì)算方法可參見文獻(xiàn)[2]。
由于臨界滑動(dòng)面所對應(yīng)的安全系數(shù)是所有可能滑動(dòng)面對應(yīng)安全系數(shù)的最小值,因此,可將在邊坡穩(wěn)定中搜索臨界滑動(dòng)面的問題視為螞蟻搜尋最佳路徑的問題。 采用蟻群算法搜索非圓弧滑動(dòng)面邊坡的臨界滑動(dòng)面的步驟為:(1)劃分網(wǎng)格,使邊坡體離散(如圖1 所示),并將入口區(qū)和出口區(qū)坡面上的各點(diǎn)分別引向虛擬點(diǎn)START 點(diǎn)和END 點(diǎn)。 滑體入口點(diǎn)至START 點(diǎn)和逸出點(diǎn)至END 點(diǎn)只作引導(dǎo)螞蟻搜索滑動(dòng)面用,不參與邊坡安全系數(shù)計(jì)算。 (2)設(shè)置一定數(shù)量的人工螞蟻,每只螞蟻從START 點(diǎn)出發(fā),隨機(jī)地向END 點(diǎn)移動(dòng)。人工螞蟻在網(wǎng)格頂點(diǎn)間爬行的路徑即可視為邊坡的任一滑動(dòng)面。 (3)計(jì)算每只螞蟻?zhàn)哌^路徑的安全系數(shù)值。 該值與螞蟻在路徑上留下的信息素強(qiáng)度有關(guān)。 由于每只螞蟻在它所經(jīng)過的路徑上留下了不同數(shù)量的痕跡,因此,每次循環(huán)后,螞蟻選擇路徑的概率都會(huì)改變。 對于最佳路徑,即安全系數(shù)最小的滑動(dòng)面,留在其上的信息素量會(huì)越來越大, 螞蟻選擇這條路徑的概率也會(huì)越來越大,最終所有的螞蟻都會(huì)選擇這條路徑。
圖1 邊坡體離散及滑動(dòng)面搜索Fig.1 Slope discrete and search for slip surface
邊坡穩(wěn)定分析中,目標(biāo)函數(shù)是Min(Fs),即尋找令Fs最小的路徑。 根據(jù)路徑上信息素強(qiáng)度的不同,螞蟻以不同的概率選擇路徑,最終找到令目標(biāo)函數(shù)成立的路徑。而螞蟻只能在一定范圍內(nèi)移動(dòng),如圖1中的一些結(jié)點(diǎn)即為螞蟻可以移動(dòng)的范圍。 這個(gè)范圍就是問題的約束條件,而這些點(diǎn)的密集程度影響著所求解的精確。
為解決滿足工程實(shí)際問題的需要,應(yīng)構(gòu)建如圖2 所示的多階段不完全序貫決策問題。 由圖2 可能看出,在起點(diǎn)B 與終點(diǎn)E 之間有N 層結(jié)點(diǎn),它們將問題分成N+1 個(gè)階段。 在問題的決策過程中,從起點(diǎn)B 始,在入口區(qū)根據(jù)決策準(zhǔn)則進(jìn)入第u 層的第一個(gè)結(jié)點(diǎn)(u,1)(u∈{1,2,…,q}),然后按順序逐層決策,至出口區(qū)第v 層的第一個(gè)結(jié)點(diǎn)(v,1)v∈{q,q+1, …,N},最后到達(dá)終點(diǎn)E。
圖2 多階段不完全序貫決策問題Fig.2 Multistage incomplete sequence decision-making problem
根據(jù)蟻群算法基本原理,假設(shè)(r,i)表示第r 層中的第i 個(gè)節(jié)點(diǎn),(r+1,j)表示第r+1 層中的第j 個(gè)結(jié)點(diǎn)。[(r,i),(r+1,j)]表示結(jié)點(diǎn)(r,i)到結(jié)點(diǎn)(r+1,j)的連線,則t 時(shí)刻螞蟻k 由起點(diǎn)B 轉(zhuǎn)移至結(jié)點(diǎn)(u,1),或者由結(jié)點(diǎn)(r,i)轉(zhuǎn)移到結(jié)點(diǎn)(r+1,j)的轉(zhuǎn)移概率可表示為
式中: τ[(r,i),(r+1,j)](t)為時(shí)刻t 在節(jié)點(diǎn)(r,i)、(r+1,j)連線上殘留的信息素痕跡強(qiáng)度(Intensity),初始時(shí)各條路徑上信息素痕跡強(qiáng)度相等,即τij(t)=0(或設(shè)定等于某個(gè)常數(shù)C);η[(r,i),(r+1,j)](t)為時(shí)刻t 在節(jié)點(diǎn)(r,i)、(r+1,j)連線上的信息素痕跡能見度(Visibility),且η[(r,i),(r+1,j)](t)=1/d[(r,i),(r+1,j)](t),d[(r,i),(r+1,j)]為點(diǎn)(r,i)至(r+1,j)的距離;α、β 分別表示信息素痕跡強(qiáng)度和能見度在螞蟻選擇路徑時(shí)的相對重要程度指數(shù)(α≥0、β≥0);Ji(k)為處在位置i 的螞蟻k 下一步允許選擇的區(qū)位集合。
由于人工蟻群系統(tǒng)具有一定的記憶功能,它們能記住已走過的城市,若用tabuk(k=1,2,…,m)記錄螞蟻k 目前已走過的區(qū)位,則有Ji(k)={0,1,…,n}-tabuk。式(1)中的關(guān)鍵是如何確定殘留在路徑上的信息素強(qiáng)度τ[(r,i),(r+1,j)]和調(diào)整項(xiàng)η[(r,i),(r+1,j)]。 對于η[(r,i),(r+1,j)],本文采用均勻分布法,即螞蟻由條分線r 轉(zhuǎn)移到條分線(r+1)時(shí),條分線上的每點(diǎn)被選中的概率相等。 此時(shí)
人工蟻群保留了自然蟻群信息素?fù)]發(fā)的特點(diǎn),隨著時(shí)間的推移,以前留下的信息素逐漸消逝。 參數(shù)ρ(0≤ρ<1)表示信息素的持久性, 1-ρ 則表示信息素的衰減度。 τ[(r,i),(r+1,j)](t)經(jīng)過一次循環(huán)后按式(3)調(diào)整。
此時(shí), 建立起安全系數(shù)與信息素之間的關(guān)聯(lián),Δτk[(r,i),(r+1,j)]的值由式(4)確定。
式中:Fsk為第k 只螞蟻本次所搜索到的滑動(dòng)面的安全系數(shù);Q∈(1,10)為常數(shù)。
(1)初始時(shí)刻t=0。 對每條路徑[(r,i),(r+1,j)](r=1,…,N;i=1,…,Mr;j=1,…,Mr+1),置τ[(r,i),(r+1,j)](0)=較小的正常數(shù)、Δτ[(r,i),(r+1,j)]=0。 將m 個(gè)螞蟻置于START 點(diǎn),如圖1 所示。
(2)讓每只螞蟻從START 點(diǎn)走到END 點(diǎn),中間所走的路徑根據(jù)每條路徑上的概率來決定。 走完全程的路徑就可作為一個(gè)邊坡的滑動(dòng)面進(jìn)行計(jì)算,即每個(gè)螞蟻分別獨(dú)立地按式(1)計(jì)算轉(zhuǎn)移概率,并追蹤生成有效的滑動(dòng)面。
(3)計(jì)算每只螞蟻?zhàn)哌^路徑所生成滑動(dòng)面的安全系數(shù)值Fsk(k=1,2,…,m),所有安全系數(shù)值中的最小值為最優(yōu)解。
(4)每只螞蟻?zhàn)咄暌粋€(gè)路徑后,會(huì)在其所經(jīng)過的路徑上留下一定的信息素,即為Δτk[(r,i),r+1,j]=0,信息素量的大小與其路徑生成的滑動(dòng)面對應(yīng)的安全系數(shù)值有很大關(guān)系,安全系數(shù)越小,留下的信息素量就會(huì)越大。 對各螞蟻及路徑[(r,i),(r+1,j)],按式(2)~(4)分別計(jì)算η[(r,i),(r+1,j)]、Δτk[(r,i),(r+1,j)]和τ[(r,i),(r+1,j)](t),然后計(jì)算轉(zhuǎn)移概率。
(5)令t=t+1。若t≥tmax(tmax為預(yù)定的最大循環(huán)次數(shù)),則輸出最佳路徑(即最危險(xiǎn)滑動(dòng)面)和最小安全系數(shù)值,否則,繼續(xù)搜索滑動(dòng)面。
以上過程使用Fortran 語言編制蟻群算法邊坡穩(wěn)定程序, 在安全系數(shù)計(jì)算過程中, 使用斯賓塞(Spencer)法。
某非均質(zhì)邊坡[3],剖面形狀如圖3 所示。 設(shè)該邊坡由3 種材料組成,材料的性質(zhì)如表1 所示。
圖3 非均質(zhì)邊坡剖面圖Fig.3 Heterogeneity slope section
表1 邊坡材料力學(xué)參數(shù)Table 1 Mechanic parameters of slope material
將滑動(dòng)體剖面用條分法分為21 條,條分線的間距為1.5m, 每條條分線上的節(jié)點(diǎn)間距為0.5m。取m=60、α=1.0、β=5.0、ρ=0.6、tmax=100,Q=5, 運(yùn)用蟻群算法進(jìn)行邊坡臨界滑動(dòng)面的搜索, 得到安全系數(shù)Fs為1.356, 最危險(xiǎn)滑動(dòng)面位置如圖4 所示。對于該非均質(zhì)土坡, 用遺傳算法計(jì)算的結(jié)果為1.377[4],不同方法安全系數(shù)計(jì)算結(jié)果比較如表2 所示。
從計(jì)算結(jié)果可以看出,用蟻群算法計(jì)算出的安全系數(shù)與其他方法的計(jì)算結(jié)果很近似。 這說明蟻群算法在非圓弧滑動(dòng)面的搜索中是適用的,并且蟻群算法所得到的計(jì)算結(jié)果比其他方法的結(jié)果的誤差更小,即蟻群算法很容易得到對應(yīng)安全系數(shù)最小的臨界滑動(dòng)面,在精確地搜索邊坡最危險(xiǎn)滑動(dòng)面及其對應(yīng)的安全系數(shù)上可行的。
表2 不同方法計(jì)算邊坡最小安全系數(shù)結(jié)果Table 2 The minimum safe index results of different calculation methods
圖4 臨界滑裂面位置Fig.4 Critical slide plane's location
經(jīng)算例計(jì)算證明,運(yùn)用蟻群算法結(jié)合斯賓塞法,在分析非均質(zhì)邊坡穩(wěn)定性時(shí), 能夠成功地搜索到臨界非圓弧滑動(dòng)面及其對應(yīng)的最小安全系數(shù), 所以運(yùn)用蟻群算法解決復(fù)雜邊坡穩(wěn)定分析問題是適用和可行的。 經(jīng)與其他計(jì)算方法相比,蟻群算法算得的安全系數(shù)更小。 這說明該算法在精確地搜索邊坡最危險(xiǎn)滑動(dòng)面及其對應(yīng)的安全系數(shù)上具有一定的優(yōu)越性。
[1] Dorigo M.Ant system:optimization by a colony of cooperation agents. IEEE Trans on SMC-Part B,1996.
[2] 錢家歡,殷宗澤. 土工原理與計(jì)算[M]. 2 版.北京:中國水利水電出版社,1997.
[3] 陳祖煜. 土質(zhì)邊坡穩(wěn)定分析:原理、方法、程序[M]. 北京:中國水利水電出版社.2003.
[4] 溫新麗,郭強(qiáng). 改進(jìn)遺傳算法在邊坡穩(wěn)定非圓弧互動(dòng)面搜索中得應(yīng)用[J]. 浙江水利水電專科學(xué)校學(xué)報(bào),2007(04):51-54.