專利名稱:一種引入好奇因子的蟻群優(yōu)化方法
技術(shù)領(lǐng)域:
本發(fā)明屬于信息與控制技術(shù)領(lǐng)域,涉及自動化技術(shù),特別是涉及一種改進的蟻群優(yōu)化方法。
背景技術(shù):
蟻群優(yōu)化算法是由意大利學(xué)者M. Dorigo, V. Maniezzo, A Colorni等人在20世紀(jì)90年代初首先提出來的,并成功解決旅行商(TSP)等組合優(yōu)化問題。蟻群算法不僅能夠智 能搜索、全局優(yōu)化,而且具有穩(wěn)健性(魯棒性)、正反饋、分布式計算、易與其它算法結(jié)合等 特點。因此,蟻群算法的問世為諸多領(lǐng)域解決復(fù)雜優(yōu)化問題提供了有力的工具。但蟻群算 法在構(gòu)造解的過程中,利用了隨機選擇策略,這種選擇策略使得進化速度較慢,容易出現(xiàn)停 滯現(xiàn)象,即搜索進行到一定程度后,所有個體所發(fā)現(xiàn)的解完全一致,不能對解空間進一步進 行搜索,不利于發(fā)現(xiàn)更好的解。
發(fā)明內(nèi)容
本發(fā)明的目標(biāo)是針對蟻群算法容易出現(xiàn)早熟收斂的難題,根據(jù)人類所特有的創(chuàng)新 思維,引入了好奇因子以提高蟻群算法的全局搜索能力和搜索速度。本發(fā)明的技術(shù)方案是好奇因子賦予螞蟻人類創(chuàng)新思維的特點,讓螞蟻對陌生路徑 產(chǎn)生好奇感。在螞蟻的選擇機制中考慮滿足螞蟻這種好奇感,刺激螞蟻嘗試那些陌生的潛 在最優(yōu)路徑,有利于對解空間更全局的搜索,從而可以有效地克服蟻群算法的不足。本發(fā)明方法的具體步驟是步驟1、初始化螞蟻個數(shù)m、揮發(fā)系數(shù)P、初始每條邊上的的信息素τ ^.(0),隨機放 置m個螞蟻到η個城市上。步驟2、初始化禁忌表tabuk(s),令s = 1,tabuk表示第k個螞蟻的禁忌表, tabuk(s)表示禁忌表中第s個元素;步驟3、螞蟻k (k = 1,2. . . m)隨機選擇轉(zhuǎn)移到城市j,在時刻t螞蟻k由城市i轉(zhuǎn) 移到城市j的概率《幻為 其中τ ^.(t)表示時刻t時路徑(i,j)上信息素濃度,啟發(fā)因子Ilij = 1/Cij; Cij 為路徑(i,j)的距離。α和β兩個參數(shù),分別用來控制信息素濃度和路徑長度的相對重 要程度。all0Wedk = {0,1,... , n_l}表示螞蟻k下一步允許選擇的城市。好奇因子x的 表達式如式2所示
m-Nc 其中,Nc表示當(dāng)前迭代次數(shù),參數(shù)5是一個正實數(shù),maxn代表啟發(fā)因子n u的 最大值,Q。(i,j)是從第一次迭代開始,到時刻t時經(jīng)過路徑(i,j)的螞蟻總個數(shù)。然后將j插入到tabuk(S)中,將城市j從allowedk中刪除,并對第k個螞蟻經(jīng)過 的路徑進行信息素濃度局部更新,得到 (0 (0= (1-會) (0 +會 10式2式中,、=^~,\ G W,l],Lm表示最近的相鄰城市路徑長度,如此重復(fù)直到每只螞蟻都遍歷n個城市。步驟4、計算每只螞蟻的總路線長度,更新找到的最短路徑,更新時刻t至t+1,對 最優(yōu)螞蟻經(jīng)過的路徑進行全局更新,得到t+1時刻的信息素濃度t ij (t+1),所述最優(yōu)螞蟻 經(jīng)過的路徑為所有螞蟻經(jīng)過的最短路徑。
式 3
At \(Lgby (/,y)e全局最優(yōu)路徑 TiJ~l o否則式中,p為一個取值范圍在0到1之間的常數(shù)系數(shù),Lgb為到目前為止找出的全局 最優(yōu)路徑。步驟5、將A 置零,重復(fù)步驟2至步驟(4),如果Nc大于設(shè)定的值或者所有的 螞蟻選擇同一條路徑,則結(jié)束本次算法,同時輸出全局優(yōu)化的最佳路徑。本發(fā)明的有益效果本發(fā)明針對蟻群算法容易出現(xiàn)早熟收斂的難題,提出了好奇 因子,刺激螞蟻嘗試那些陌生的潛在最優(yōu)路徑,有利于對解空間更全局的搜索,從而可以有 效地克服蟻群算法的不足。
具體實施例方式一種引入好奇因子的蟻群優(yōu)化方法,包括如下步驟步驟1、初始化螞蟻個數(shù)m、揮發(fā)系數(shù)P、初始每條邊上的的信息素T u(0),隨機放 置m個螞蟻到n個城市上。步驟2、初始化禁忌表tabuk(s),令s = 1,tabuk表示第k個螞蟻的禁忌表, tabuk(s)表示禁忌表中第s個元素;步驟3、螞蟻k (k = 1,2. . . m)隨機選擇轉(zhuǎn)移到城市j,在時刻t螞蟻k由城市i轉(zhuǎn) 移到城市j的概率磅 為
^Gallowec^ 其中t u(t)表示時刻t時路徑(i,j)上信息素濃度,啟發(fā)因子I」=1/Cij,C^. 為路徑(i,j)的距離。a和0兩個參數(shù),分別用來控制信息素濃度和路徑長度的相對重 要程度。all0Wedk = {0,1,... , n-1}表示螞蟻k下一步允許選擇的城市。好奇因子x的 表達式如式2所示 其中,Nc表示當(dāng)前迭代次數(shù),參數(shù)δ是一個正實數(shù),max η代表啟發(fā)因子Hij的 最大值,Q。(i,j)是從第一次迭代開始,到時刻t時經(jīng)過路徑(i,j)的螞蟻總個數(shù)。然后將j插入到tabuk(S)中,將城市j從allowedk中刪除,并對第k個螞蟻經(jīng)過 的路徑進行信息素濃度局部更新,得到&⑴Ty(0 = (1 一Ty( ) + ξ·r。式 2式中,h=;^",^ e W,1],Lnn表示最近的相鄰城市路徑長度, 如此重復(fù)直到每只螞蟻都遍歷η個城市。步驟4、計算每只螞蟻的總路線長度,更新找到的最短路徑,更新時刻t至t+Ι,對 最優(yōu)螞蟻經(jīng)過的路徑進行全局更新,得到t+Ι時刻的信息素濃度τ u (t+1),所述最優(yōu)螞蟻 經(jīng)過的路徑為所有螞蟻經(jīng)過的最短路徑。τ υ (t+1) = P · τ。.α) + (1-ρ ) Δ Tij 式 3
Δγ \(Lgby Gye全局最優(yōu)路徑 、_1 ο否則式中,ρ為一個取值范圍在0到1之間的常數(shù)系數(shù),Lgb為到目前為止找出的全局 最優(yōu)路徑。步驟5、將Δ τ 置零,重復(fù)步驟2至步驟(4),如果Nc大于設(shè)定的值或者所有的 螞蟻選擇同一條路徑,則結(jié)束本次算法,同時輸出全局優(yōu)化的最佳路徑。
權(quán)利要求
一種引入好奇因子的蟻群優(yōu)化方法,其特征在于該方法包括如下步驟步驟1、初始化螞蟻個數(shù)m、揮發(fā)系數(shù)ρ、初始每條邊上的的信息素τij(0),隨機放置m個螞蟻到n個城市上;步驟2、初始化禁忌表tabuk(s),令s=1,tabuk表示第k個螞蟻的禁忌表,tabuk(s)表示禁忌表中第s個元素;步驟3、螞蟻k(k=1,2...m)隨機選擇轉(zhuǎn)移到城市j,在時刻t螞蟻k由城市i轉(zhuǎn)移到城市j的概率為 <mrow><msubsup> <mi>P</mi> <mi>ij</mi> <mrow><mo>(</mo><mi>k</mi><mo>)</mo> </mrow></msubsup><mrow> <mo>(</mo> <mi>t</mi> <mo>)</mo></mrow><mo>=</mo><mfrac> <mrow><msup> <mrow><mo>[</mo><msub> <mi>τ</mi> <mi>ij</mi></msub><mrow> <mo>(</mo> <mi>t</mi> <mo>)</mo></mrow><mo>]</mo> </mrow> <mi>α</mi></msup><mo>·</mo><msup> <mrow><mo>[</mo><msub> <mi>η</mi> <mi>ij</mi></msub><mo>]</mo> </mrow> <mi>β</mi></msup><mo>·</mo><msub> <mi>χ</mi> <mi>ij</mi></msub><mrow> <mo>(</mo> <mi>t</mi> <mo>)</mo></mrow> </mrow> <mrow><munder> <mi>Σ</mi> <mrow><mi>k</mi><mo>∈</mo><msub> <mi>allowed</mi> <mi>k</mi></msub> </mrow></munder><msup> <mrow><mo>[</mo><msub> <mi>τ</mi> <mi>ik</mi></msub><mrow> <mo>(</mo> <mi>t</mi> <mo>)</mo></mrow><mo>]</mo> </mrow> <mi>α</mi></msup><mo>·</mo><msup> <mrow><mo>[</mo><msub> <mi>η</mi> <mi>ik</mi></msub><mo>]</mo> </mrow> <mi>β</mi></msup><mo>·</mo><mi>χ</mi><mrow> <mo>(</mo> <mi>t</mi> <mo>)</mo></mrow> </mrow></mfrac> </mrow>其中τij(t)表示時刻t時路徑(i,j)上信息素濃度,啟發(fā)因子ηij=1/Cij,Cij為路徑(i,j)的距離,α表示控制信息素濃度參數(shù),β表示路徑長度參數(shù),allowedk={0,1,...,n-1}表示螞蟻k下一步允許選擇的城市, <mrow><msub> <mi>χ</mi> <mi>ij</mi></msub><mrow> <mo>(</mo> <mi>t</mi> <mo>)</mo></mrow><mo>=</mo><mfrac> <mrow><mi>m</mi><mo>·</mo><mi>Nc</mi> </mrow> <mrow><mi>m</mi><mo>·</mo><mi>Nc</mi><mo>+</mo><mi>δ</mi><mo>·</mo><mi>Qc</mi><mrow> <mo>(</mo> <mi>i</mi> <mo>,</mo> <mi>j</mi> <mo>)</mo></mrow><mo>·</mo><msub> <mi>η</mi> <mi>ij</mi></msub><mo>/</mo><mi>max</mi><mi>η</mi> </mrow></mfrac> </mrow>其中,Nc表示當(dāng)前迭代次數(shù),參數(shù)δ是一個正實數(shù),maxη代表啟發(fā)因子ηij的最大值,Qc(i,j)是從第一次迭代開始,到時刻t時經(jīng)過路徑(i,j)的螞蟻總個數(shù);然后將j插入到tabuk(s)中,將城市j從allowedk中刪除,并對第k個螞蟻經(jīng)過的路徑進行信息素濃度局部更新,得到 <mrow><msubsup> <mi>τ</mi> <mi>ij</mi> <mo>′</mo></msubsup><mrow> <mo>(</mo> <mi>t</mi> <mo>)</mo></mrow><mo>=</mo><mrow> <mo>(</mo> <mn>1</mn> <mo>-</mo> <mi>ξ</mi> <mo>)</mo></mrow><mo>·</mo><msub> <mi>τ</mi> <mi>ij</mi></msub><mrow> <mo>(</mo> <mi>t</mi> <mo>)</mo></mrow><mo>+</mo><mi>ξ</mi><mo>·</mo><msub> <mi>τ</mi> <mn>0</mn></msub> </mrow>式中,ξ∈
,Lnn表示最近的相鄰城市路徑長度,如此重復(fù)直到每只螞蟻都遍歷n個城市;步驟4、計算每只螞蟻的總路線長度,更新找到的最短路徑,更新時刻t至t+1,對最優(yōu)螞蟻經(jīng)過的路徑進行全局更新,得到t+1時刻的信息素濃度τij(t+1),所述最優(yōu)螞蟻經(jīng)過的路徑為所有螞蟻經(jīng)過的最短路徑;τij(t+1)=ρ·τij(t)+(1-ρ)Δτij式中,ρ為一個取值范圍在0到1之間的常數(shù)系數(shù),Lgb為到目前為止找出的全局最優(yōu)路徑;步驟5、將Δτij置零,重復(fù)步驟2至步驟4,如果Nc大于設(shè)定的值或者所有的螞蟻選擇同一條路徑,則結(jié)束本次算法,同時輸出全局優(yōu)化的最佳路徑。FSA00000134799400011.tif,FSA00000134799400015.tif,FSA00000134799400017.tif,FSA00000134799400018.tif
全文摘要
本發(fā)明涉及一種引入好奇因子的蟻群優(yōu)化方法?,F(xiàn)有的算法容易出現(xiàn)停滯現(xiàn)象。本發(fā)明方法首先初始化螞蟻個數(shù)、揮發(fā)系數(shù)和每條邊上的信息素,并隨機放置m個螞蟻到n個城市上,其次讓螞蟻隨機選擇轉(zhuǎn)移到城市j,將j插入到禁忌表中,將城市j從allowedk中刪除,并對第k個螞蟻經(jīng)過的路徑進行信息素濃度局部更新;然后計算每只螞蟻的總路線長度,更新找到的最短路徑,利用征稅算子對路徑上的信息素濃度進行調(diào)整,得到征稅后的信息素濃度最后滿足Nc大于設(shè)定的值或者所有的螞蟻選擇同一條路徑,則結(jié)束本次算法,同時輸出全局優(yōu)化的最佳路徑。本發(fā)明方法實現(xiàn)了對解空間更全局的搜索。
文檔編號G06N3/00GK101872432SQ20101018066
公開日2010年10月27日 申請日期2010年5月21日 優(yōu)先權(quán)日2010年5月21日
發(fā)明者李春富, 葛銘, 鄭小青, 鄭松, 魏江 申請人:杭州電子科技大學(xué)