一種基于大黃蜂算法的多路徑規(guī)劃方法
【專利摘要】本發(fā)明公開了一種基于大黃蜂算法的多路徑規(guī)劃方法,包括如下步驟:1)假設(shè)要拜訪n個地點,在n個城市中選取K個地點,其中,n>K,K≥4,被選取的K個地點構(gòu)成一個K_劃分圖(a1,a2···ak);2)假設(shè)每個K_劃分圖中的兩個地點的路徑路程長度分別為L1,L2,···Li,其中i=k*(k?1)/2;3)構(gòu)造一個K_可能路徑;4)對在每一個K_劃分圖中的每條K_可能路徑中出現(xiàn)的邊作統(tǒng)計;5)計算每一條邊的K_連接度6)選出必定邊,將必定邊加入解集合,剔除否定邊;7)判別解集是否有n?1條邊,如果滿足就結(jié)束;否則返回步驟5)。
【專利說明】
一種基于大黃蜂算法的多路徑規(guī)劃方法
技術(shù)領(lǐng)域
[0001] 本發(fā)明涉及多路徑規(guī)劃方法領(lǐng)域,特別涉及一種基于大黃蜂算法的多路徑規(guī)劃方 法。
【背景技術(shù)】
[0002] TSP問題(Travelling Salesman Problem)又譯為旅行推銷員問題、貨郎擔(dān)問題, 是數(shù)學(xué)領(lǐng)域中著名問題之一。假設(shè)有一個旅行商人要拜訪η個城市,他必須選擇所要走的路 徑,路徑的限制是每個城市只能拜訪一次,而且最后要回到原來出發(fā)的城市。路徑的選擇目 標是要求得的路徑路程為所有路徑之中的最小值。我們這兒討論的是廣義的TSP問題。在本 文中稱這條最短路徑為TSP回路。
[0003]目前在處理多路徑規(guī)劃時較為常用的方法是貪心法,貪心法是一種改進了的分級 處理方法。它首先對旅行商問題進行描述,選取一種度量標準。然后按這種度量標準對η個 輸入城市排序,并按序一次輸入一個城市。如果這個輸入和當(dāng)前已構(gòu)成在這種量度意義下 的部分最優(yōu)解加在一起不能產(chǎn)生一個可行解,則不把這個城市加入到這部分解中。這種能 夠得到某種量度意義下的最優(yōu)解的分級處理方法成為貪心方法。獲得最優(yōu)路徑的貪心法應(yīng) 一條邊一條邊地構(gòu)造這棵樹。根據(jù)某種量度來選擇將要計入的下一條邊。最簡單的量度標 準是選擇使得迄今為止計入的那些邊的成本的和有最小增量的那條邊。
[0004] 本發(fā)明從另外一個角度出發(fā)考慮獲得多路徑規(guī)劃的解。
【申請人】認為大黃蜂在覓食 的過程中采用了類似的策略,所以本申請把該算法稱為大黃蜂算法。
【發(fā)明內(nèi)容】
[0005] 本發(fā)明的目的在于提供一種基于大黃蜂算法的多路徑規(guī)劃方法,以從另一個角度 獲得多路徑規(guī)劃的解。
[0006] 本發(fā)明所解決的技術(shù)問題可以采用以下技術(shù)方案來實現(xiàn):
[0007] -種基于大黃蜂算法的多路徑規(guī)劃方法,其特征在于,包括如下步驟:
[0008] 1)假設(shè)要拜訪11個地點,在11個城市中選取1(個地點,其中,11>1(,1(多4,被選取的1(個 地點構(gòu)成一個Κ_劃分圖( ai,a2 · · · ak),則η個地點中存在CKnfK_劃分圖,兩個地點之間的 路程稱為邊;
[0009] 2)假設(shè)每個1(_劃分圖中的兩個地點的路徑路程長度分別為1^兒2, · · ·Ι^,其中i = k*(k_l)/2;
[0010] 3)構(gòu)造一個1(_可能路徑,1(_可能路徑是指在每一個1(_劃分圖(ai,a 2· · ·&1?)中, 經(jīng)過每個地點一次的一條路徑,列出每一個K_劃分圖(ai,a2 · · · ak)的所有K_可能路徑, 如果其中一條Κ_可能路徑存在兩種及以上的路徑,取路徑值最小的作為1(_可能路徑;
[0011 ] 4)對在每一個Κ_劃分圖中的每條1(_可能路徑中出現(xiàn)的邊作統(tǒng)計,出現(xiàn)的邊加上1 個成功值,沒出現(xiàn)的邊加上1個失敗值,即可得到η個地點中的所有邊的成功值和失敗值數(shù) 據(jù),其中,在每一個1(_可能路徑中的兩個端點的連接邊不作統(tǒng)計;
[0012] 5)計算每一條邊的1(_連接度,對每條邊X我們定義以下公式:
[0014]有以下兩個簡單的推論:
[0015] 必定邊:該邊一定屬于TSP回路,如果Rk(X) = 1,貝IJ邊X-定是必定邊;
[0016]否定邊:該邊一定不屬于TSP回路;如果(X的成功次數(shù))〈(K-1),則X-定是否定邊; [0017] 6)選出必定邊,將必定邊加入解集合,剔除否定邊,如果不存在必定邊,則計算Rk (X)的值,將最大值的Rk(X)對應(yīng)的邊加入解集Μ;
[0018] 7)判別解集是否有η-1條邊,如果滿足就結(jié)束;否則返回步驟5)。
[0019] 由于采用了如上的技術(shù)方案,本發(fā)明的有益效果在于:
[0020] TSP問題是一個NPC問題,它的算法涉及到一大類問題的解決,是一個很有意義的 探索。本發(fā)明在貪心算法的基礎(chǔ)上,對每條邊是否屬于TSP回路作出了一個定量的分析,本 發(fā)明可以用較小的Κ來解決一個較大η的TSP問題,即通過對所有局部的統(tǒng)計,得出一個具有 一定全局意義1_連接度",然后通過不斷的計算條件Κ_連接度和選取解集Μ的邊,該算法的 復(fù)雜度是:〇(nk+3)。
【附圖說明】
[0021] 為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn) 有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本 發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以 根據(jù)這些附圖獲得其他的附圖。
[0022] 圖1是本發(fā)明一種實施例(n = 5時)的示意圖。
[0023]圖2是圖1的五個K_劃分圖的示意圖。
[0024] 圖3是圖1的一個Κ_劃分圖的舉例說明示意圖。
【具體實施方式】
[0025] 為了使本發(fā)明實現(xiàn)的技術(shù)手段、創(chuàng)作特征、達成目的與功效易于明白了解,下面進 一步闡述本發(fā)明。
[0026] -種基于大黃蜂算法的多路徑規(guī)劃方法,包括如下步驟:
[0027] 1)假設(shè)要拜訪11個地點,在11個城市中選取1(個地點,其中,11>1(,1(》4,被選取的1(個 地點構(gòu)成一個1(_劃分圖(ai,a2 · · · ak),則n個地點中存在CKr^K_劃分圖,兩個地點之間 的路程稱為邊;
[0028] 2)假設(shè)每個1(_劃分圖中的兩個地點的路徑路程長度分別為LhLs,· · ·Ι^,其中i = k*(k_l)/2;
[0029] 3)構(gòu)造一個1(_可能路徑,K_可能路徑是指在每一個1(_劃分圖(ai,a 2 · · · ak)中, 經(jīng)過每個地點一次的一條路徑,列出每一個K_劃分圖(ai,a2 · · · ak)的所有K_可能路徑, 如果其中一條Κ_可能路徑存在兩種及以上的路徑,取路徑值最小的作為1(_可能路徑;
[0030] 4)對在每一個Κ_劃分圖中的每條1(_可能路徑中出現(xiàn)的邊作統(tǒng)計,出現(xiàn)的邊加上1 個成功值,沒出現(xiàn)的邊加上1個失敗值,即可得到η個地點中的所有邊的成功值和失敗值數(shù) 據(jù),其中,在每一個1(_可能路徑中的兩個端點的連接邊不作統(tǒng)計;
[0031] 5)計算每一條邊的1(_連接度,對每條邊X我們定義以下公式:
[0033] 有以下兩個簡單的推論:
[0034] 必定邊:該邊一定屬于TSP回路,如果Rk(X) = 1,則邊X-定是必定邊;
[0035]否定邊:該邊一定不屬于TSP回路;如果(X的成功次數(shù))〈(K-1),則X-定是否定邊; [0036] 6)選出必定邊,將必定邊加入解集合,剔除否定邊,如果不存在必定邊,則計算Rk (X)的值,將最大值的Rk(X)對應(yīng)的邊加入解集Μ;
[0037] 7)判別解集是否有η-1條邊,如果滿足就結(jié)束;否則返回步驟5)。
[0038]本發(fā)明結(jié)合以下實例進行說明,其中η = 5,Κ = 4:
[0039] 參見圖1和圖2所示,
[0040] 1(_劃分圖(Κ = 4):
[0041 ]對一個有5個點的圖,可以對它劃分為由4個點的所組成的子圖。
[0042] 如圖1所示,假設(shè)每條邊的長度如下:L(AB) = 1,L(BC) = 2,L(CD)=3,L(AD)=4,L (AE)=5,L(BE)=6,L(CE)=7,L(DE)=8。
[0043] 圖1中總共有5個4_劃分圖,參見圖2所示,K_路徑是指在每一個1(_劃分圖中,經(jīng)過 每個頂點一次的一條路徑。例如圖3是圖1的一個4_劃分圖,BECD就是一條從Β到D,經(jīng)過Ε、C 的4_路徑。
[0044] Κ_可能路徑是指一條可能屬于TSP回路的Κ_路徑。一般來說,從Α到Β的1(_路徑里最 短的一條是K_可能路徑。K_可能路徑往往隨著外界條件的改變而改變。對每一個1(_劃分圖, 可以找出它的所有1(_可能路徑。例如,對圖1的一個4_劃分圖(圖3),
[0045] 它的可能路徑有:
[0046] Β到C:只有一條唯一路徑BEDC所以BEDC是一條4_可能路徑。
[0047] Β到D:這里存在兩條路徑BCED和BECD,因為L(BCED) = 17,L(BECD) = 16,所以BECD 是4_可能路徑。
[0048] B到E:只有一條可能路徑BOTE。
[0049] C到D:只有一條可能路徑CBED。
[0050] C到E:無可能路徑
[0051 ] D到E:只有一條可能路徑DCBE。
[0052] K_ 統(tǒng)計:
[0053]對圖中每條邊添加成功和失敗兩個屬性。假設(shè)amr··. an是一條1(_可能路徑。對 aiai+i( i = 1,2,."n-l)邊在成功屬性上加1,其他邊在失敗屬性上加1,邊aian不做處理。 [0054] K_統(tǒng)計是指對每一個K_劃分圖,計算出每條邊的成功和失敗的次數(shù)。然后對每條 邊統(tǒng)計出它的成功和失敗的總次數(shù)。
[0055] 以(圖3)為例,總共有5條4_可能路徑:BEDC、BECD、BCDE、CBED和DCBE。對每條可能 路徑作以下分析:以BEDC為例,總共有BE、DE、CD、CE參與競爭(B和C是端點,所以BC不參與競 爭),結(jié)果BE、DE和⑶勝出。勝出的成功上加1,沒選上的失敗上加1,得到下表1:
[0056]表 1
[0059] 對上面其他4條4_可能路徑作同樣操作,可得到下面的表2:
[0060] 表 2
[0061]
[0062] 對圖2的其它4個4_劃分圖作同樣的操作,然后相加,統(tǒng)計出圖1上每條邊的成功和 失敗總次數(shù)。
[0063] 1(_連接度(K> = 4):
[0064] 對每條邊X我們定義以下公式, ,稱RK(X)為邊 X的1(_連接度。
[0065] 有以下兩個簡單的推論:
[0066] 必定邊:該邊一定屬于TSP回路。
[0067] 如果RK(X) = 1,則邊X-定是必定邊。
[0068] 否定邊:該邊一定不屬于TSP回路。
[0069]如果(X的成功次數(shù))〈(K-1),則X-定是否定邊。
[0070] 從某種意義上說,RK(X)代表了邊X屬于TSP回路的概率。
[0071] 條件K_連接度:
[0072] 當(dāng)外界條件發(fā)生變化時,例如:確定某條邊為否定邊,或者假設(shè)某條邊為必定邊 時,都會帶來1(_可能路徑的變化,這樣每條邊的1(_連接度會發(fā)生變化。把在一定條件Α下的 Rk(X)稱為乂的1(_條件連接度,記為RK(X | A).
[0073] 條件A下的必定邊:如果Rk(X | A) = 1,則邊X在條件A下是必定邊。
[0074] 條件A下的否定邊:如果邊X在條件A下的成功次數(shù)〈(K-1),則X在條件A下是否定 邊。
[0075] RK(X|A)類似與條件概率。
[0076] -個廣義的TSP問題是一個有η個節(jié)點的拓撲圖,為了算法描述方便,我們假設(shè)只 存在一條TSP回路。
[0077] 解集Μ:是指包含能構(gòu)成一條回路的邊的集合。當(dāng)把一條邊要加入到解集Μ的時候, 要檢查它和解集Μ里的邊是否會發(fā)生沖突。只有相容的邊才能加入解集Μ。
[0078]對有N個節(jié)點的圖來說,解集Μ最多只能包含N條邊。
[0079]算法描述:
[0080] -個廣義的TSP問題是一個有N個節(jié)點的拓撲圖,為了算法描述方便,我們假設(shè)只 存在一條TSP回路。
[0081 ] 算法描述如下:
[0082] 確定 K 值(K> = 4);
[0083] K_ 統(tǒng)計;
[0084] 計算圖中每條邊的1(_連接度;
[0085] REPEAT
[0086] {
[0087]找到一條具有最大連接度的邊X&&X與解集Μ相容;
[0088] 將X加入解集Μ;
[_9] Κ_ 統(tǒng)計;
[0090]計算每條邊的1(_連接度。
[0091] }
[0092] UNTIL解集Μ包含了 Ν條邊。
[0093] 本發(fā)明在貪心算法的基礎(chǔ)上,對每條邊是否屬于TSP回路作出了一個定量的分析, 本發(fā)明可以用較小的Κ來解決一個較大η的TSP問題,即通過對所有局部的統(tǒng)計,得出一個 具有一定全局意義1_連接度",然后通過不斷的計算條件Κ_連接度和選取解集Μ的邊,該算 法的復(fù)雜度是:〇(n k+3)。
[0094]以上顯示和描述了本發(fā)明的基本原理和主要特征和本發(fā)明的優(yōu)點。本行業(yè)的技術(shù) 人員應(yīng)該了解,本發(fā)明不受上述實施例的限制,上述實施例和說明書中描述的只是說明本 發(fā)明的原理,在不脫離本發(fā)明精神和范圍的前提下,本發(fā)明還會有各種變化和改進,這些變 化和改進都落入要求保護的本發(fā)明范圍內(nèi)。本發(fā)明要求保護范圍由所附的權(quán)利要求書及其 等效物界定。
【主權(quán)項】
1. 一種基于大黃蜂算法的多路徑規(guī)劃方法,其特征在于,包括如下步驟: 1) 假設(shè)要拜訪η個地點,在η個城市中選取K個地點,其中,η>Κ,Κ>4,被選取的K個地點 構(gòu)成一個1(_劃分圖(ai,a2 · · · ak),則η個地點中存在扣個心劃分圖,兩個地點之間的路程 稱為邊; 2) 假設(shè)每個1(_劃分圖中的兩個地點的路徑路程長度分別為^,L2,· · - Li,其中i=k* 化-1)/2; 3) 構(gòu)造一個1(_可能路徑,Κ_可能路徑是指在每一個1(_劃分圖(曰1,曰2· · - ak)中,經(jīng)過 每個地點一次的一條路徑,列出每一個Κ_劃分圖(ai,a2 · · · ak)的所有1(_可能路徑,如果 其中一條1(_可能路徑存在兩種及W上的路徑,取路徑值最小的作為1(_可能路徑; 4) 對在每一個Κ_劃分圖中的每條1(_可能路徑中出現(xiàn)的邊作統(tǒng)計,出現(xiàn)的邊加上1個成 功值,沒出現(xiàn)的邊加上1個失敗值,即可得到η個地點中的所有邊的成功值和失敗值數(shù)據(jù),其 中,在每一個1(_可能路徑中的兩個端點的連接邊不作統(tǒng)計; 5) 計算每一條邊的1(_連接度,對每條邊X我們定義W下公式:稱Rk(X)為邊X的1(_連接度, 有W下兩個簡單的推論: 必定邊:該邊一定屬于TSP回路,如果化(X) = 1,則邊X-定是必定邊; 否定邊:該邊一定不屬于TSP回路;如果(X的成功次數(shù))< 化-1),則X-定是否定邊; 6) 選出必定邊,將必定邊加入解集合,剔除否定邊,如果不存在必定邊,則計算化(X)的 值,將最大值的化(X)對應(yīng)的邊加入解集M; 7) 判別解集是否有n-1條邊,如果滿足就結(jié)束;否則返回步驟5)。
【文檔編號】G06Q10/04GK106096784SQ201610420580
【公開日】2016年11月9日
【申請日】2016年6月13日 公開號201610420580.9, CN 106096784 A, CN 106096784A, CN 201610420580, CN-A-106096784, CN106096784 A, CN106096784A, CN201610420580, CN201610420580.9
【發(fā)明人】俞健明
【申請人】俞健明