路徑規劃典型算法范文
時間:2023-06-02 15:01:41
導語:如何才能寫好一篇路徑規劃典型算法,這就需要搜集整理更多的資料和文獻,歡迎閱讀由公務員之家整理的十篇范文,供你借鑒。
篇1
作者簡介: 朱新平(1983-),男,博士,研究方向為先進機場場面運行控制,電話:13419037831,E-mail:
通訊作者: 韓松臣(1963-),男,教授,博士,研究方向為空中交通安全、空域規劃管理,E-mail:
文章編號: 0258-2724(2013)03-0565-09DOI: 10.3969/j.issn.0258-2724.2013.03.027
摘要:
為支持先進機場場面活動引導與控制系統(A-SMGCS,advanced surface movement guidance and control system)實施航空器滑行的精確引導,將場面分為滑行道交叉口和直線段等典型運行單元,利用改進的擴展賦時庫所Petri網,建立了場面運行模塊化模型;采用該模型進行染色體編碼,并考慮場面運行管制規則,提出了染色體合法性檢測與修復算法,以及染色體交叉和變異算法.基于首都國際機場01號跑道實際運行數據,用本文模型和算法進行了多個航班滑行初始路徑規劃,研究結果表明:與節點-路段類模型相比,本文模型能更充分地描述場面管制規則約束,可避免生成違反管制規則的路徑;本文算法的每個航班初始路徑規劃耗時小于10 s,符合A-SMGCS的要求;由于考慮了航空器滑行速度調整特征,更符合場面運行的實際情況.
關鍵詞:
空中交通;A-SMGCS;滑行路由規劃; Petri網;遺傳算法
中圖分類號: V351.11文獻標志碼: A
航空器滑行自動路由規劃可以協調進離港航班安全有序地滑行,從而減少場面擁堵并提升場面容量.在國際民航組織(International Civil Aviation Organization, ICAO)提出的先進機場場面引導與控制系統(advanced surface movement guidance and control system, A-SMGCS)中,路由規劃功能是實現航空器場面滑行精確引導的前提[1].航空器場面滑行具有并發、資源共享特性,并受多種管制規則約束. A-SMGCS路由規劃不同于傳統道路網絡中的車輛路徑規劃,文獻[2]提出了A-SMGCS三階段路由規劃策略:
(1) 初始路徑規劃,為進離港航班確定最優滑行路徑和s-1個次優滑行路徑(s值由管制員動態交互確定);
(2) 滑行前路由指派,依據航空器開始滑行前的場面態勢,為其確定合理路由;
(3) 路由實時更新,在航空器滑行過程中實時調整路由,以避免沖突發生.
本文僅考慮第(1)階段,即初始路徑規劃問題.
Petri網廣泛用于A-SMGCS場面運行過程的建模與沖突監控[3-4],但較少用于航空器滑行路由規劃.文獻[5]將無向交通網絡轉換為Petri網表示的有向圖,并通過Petri網仿真器求解最短有向路徑.文獻[6]將機場滑行路徑描述為有向圖,并轉換為Petri網圖求解最佳滑行路徑.文獻[2]建立了基于Petri網的場面活動模型,并通過時間窗調度來進行路由規劃.上述研究建立的Petri網模型對場面管制規則約束考慮不全面,在算法設計上未充分利用Petri網的數學特征,且通常針對某一特定機場進行分析,實用性和通用性均顯不足.另一方面,將航空器場面滑行速度假設為恒定值[7-9],忽略了航空器在場面不同區域滑行速度的調整變化,導致所得路由結果不能支持航空器滑行的精確引導.
在文獻[2]的基礎上,本文從以下方面展開研究:
(1) 給出一種擴展賦時庫所Petri網(extended timed place Petri net, ETPPN),以準確描述場面運行管制規則約束,并提出一種模塊化、面向路由規劃的場面運行ETPPN模型建模方法;
(2) 采用遺傳算法規劃航空器初始滑行路徑,其染色體編碼采用場面ETPPN模型的變遷激發序列,且交叉和變異均僅針對模型中的變遷進行,避免了以滑行道系統拓撲結構中的交叉口或直線段為基因組成染色體,在此基礎上展開的遺傳操作保證了方法的通用性;
(3) 與文獻[7-9]中關于航空器場面滑行速度恒定的假設不同,細化了航空器加減速特性對路段占用時間的影響,使路由規劃結果的精確度更高,實用性更強.
1
航空器場面運行過程建模
1.1
面向資源的場面運行過程建模
可見,采用ETPPN模型對場面運行進行建模,可描述航空器對場面各單元的動態占用與釋放,以及航空器在各單元滑行應遵循的管制規則.場面其它典型單元運行過程的Petri網建模也可采用本節的方法.不同機場的場面交通系統具有不同構型,但基本組成單元類似且有準確的數量和明確的運行規則.因此,利用各單元對應的ETPPN模型,并采用Petri網同步合成技術[10]可實現場面運行過程建模.
1.2
航空器滑行特征分析
航空器場面滑行速度具有以下特征:
(1) 當航空器先后通過的兩路段均為直線或彎道時,無須加減速;
(2) 當航空器從彎道滑入直線段時,須啟動加速過程;
(3) 當航空器從直線段滑入彎道時,減速過程通常在進入彎道前完成.
2
基于GA的初始路徑規劃算法
2.1
面向初始路徑規劃的GA設計
遺傳算法(genetic algorithm, GA)在工程優化領域已得到廣泛應用[11],并越來越多地應用于航空器路由優化[12-15].本文提出基于場面ETPPN模型和GA的初始路徑規劃方法,基本思路為:
(1)
采用第1節方法,建立場面活動區中各典型運行單元對應的ETPPN模型,同時將場面管制規則約束集成到Petri網元素中,最終得到場面ETPPN模型;
(2)
以場面ETPPN模型為基礎,采用合適的編碼方式對模型中所含相關元素進行染色體編碼,并設計相關遺傳操作,求解初始滑行路徑集合(包括1個最優和s-1個次優滑行路徑).
上述思路的優勢在于,對任何一個機場的航空器初始路徑規劃,所要解決的問題只需采用第1節的模塊化建模方法,將場面交通系統映射為對應的ETPPN模型并輸入管制規則約束即可,因而保證了所給算法的實用性和通用性.
2.2
染色體編碼
染色體應滿足以下約束:
(1) 物理約束.指與航空器自身占用物理空間大小或與滑行性能相關的約束,如翼展對通過某些區域的限制等.
(2) 管制規則約束.指管制規則確定的航空器在某些路段的滑行約束,如滑行速度約束、進出某機坪必經的交叉口等.
算法2中,步驟1保證了染色體不會出現重復基因,即所規劃滑行路徑不會出現環路;步驟2保證了航空器在單元內部的滑行過程滿足航空器性能要求,例如航空器在同一交叉口滑行時不能多次轉彎;步驟3~5保證了航班按照所規劃路徑滑行時能滿足相關約束.
2.3
選擇算子與遺傳算子
2.3.1選擇算子
2.3.2
交叉算子
2.3.3
變異算子
由于采用變遷激發序列進行染色體編碼,若采取隨機改變某一基因位變遷進行變異,則極有可能產生不滿足可激發約束的解.以往采取兩種方法解決該問題:第1種方法是隨機改變染色體,當生成了不滿足約束的解時再進行改正;第2種方法是在進行變異時保證不產生不可行解[16].
3
仿真試驗
3.1
仿真試驗設計
以首都國際機場為研究對象,采集T3航站樓東側飛行區某日實際運行數據,為所有進離港航班規劃初始滑行路徑集.該部分飛行區的場面交通系統結構如圖6所示,采用北向運行模式(使用01號跑道),且假設所有離港航班均使用全跑道起飛,即從跑道等待區Q0處(圖中方框所示區域)進入跑道起飛,進港航班從快速脫離道Q5、Q6、Q7脫離的比例為0.1∶0.6∶0.3.作為對比,采用文獻[12]的方法為圖6所示飛行區建立對應的節點-路段類有向圖模型,并采用基于遺傳算法的路徑規劃方法為航班規劃滑行路徑.
文獻[12]采取的優化目標是所有航班滑行的總里程最短,將其修改為與本文算法相同的優化目標,即滑行時間較短的s條滑行路徑(設s=3).對比的目的是:
(1) 檢驗用本文所建場面模型進行路徑規劃是否比節點-路段類模型能更好地遵循管制規則;
(2) 檢驗本文初始路徑規劃算法的效率和有效性.
計算環境CPU為Interl(R) Pentium Dual 2.2 GHz,內存為4 GB.
具體實施過程為:在基于Anylogic的場面運行仿真平臺上建立對應的場面ETPPN模型,然后解析得到該模型對應的關聯矩陣并導入MATLAB2008a中,采用Sheffield大學的遺傳算法工具箱GATBX求解滑行路徑.在求解過程中,MATLAB可直接調用Anylogic存儲的相關庫所屬性數據庫,并采用遺傳算法工具箱GATBX進行求解.文獻[12]中算法的實現直接用MATLAB的遺傳算法工具箱GATBX完成.
3.2
仿真試驗結果及分析
為了給每個航班的進離港滑行規劃s
個滑行時間較短的初始滑行路徑,需要設置合理的遺傳算法參數.但目前在遺傳算法參數設定方面缺乏通用理論,一般根據問題難易程度和染色體編碼形式,由經驗和反復試湊來設定參數值.
用上述參數為離港航班SK996(所在機位511)規劃初始滑行路徑集(包含3條路徑).由于遺傳算法具有一定的隨機性,可進行多次試驗,每次試驗得到的最短滑行時間均為246 s,因此認為對應的滑行路徑為最短滑行路徑.
圖8為在1次隨機試驗中不同遺傳代數所得路徑集的最短滑行時間和平均滑行時間變化曲線.由圖8可以看出,每次優化均能獲得最短滑行路徑,且隨著進化代數的增加,平均滑行時間越來越接近最短滑行時間,表明算法收斂性良好.
最終為該航班確定的初始滑行路徑集如表3所示.對每條路徑進行分析可知,在優化場面資源使用的同時,滿足了各類場面運行管制規則約束.
采用文獻[12]的遺傳算法為該航班規劃初始滑行路徑集,將求出的前3條較短滑行路徑參照圖6轉化為對應的節點形式,如表4所示.
由表4可見,路徑1和路徑2分別在滑行道K5和K4上未遵循該路段的運行方向約束,這與該算法設計僅考慮避免航空器之間的滑行沖突約束但未充分考慮其它約束有關.可見,在節點-路段類模型中,模型本身對管制規則約束的描述能力有限,僅在算法實現過程中考慮各類約束,可能影響路徑規劃結果的有效性.
此外,文獻[12]中設定的航空器具有單一固定滑行速度5 m/s,路徑3的滑行時間為467 s(表4),用本文方法路徑3的滑行時間為260 s(表3),二者相差較大.可見,考慮航空器滑行速度的調整特性,可更精確地計算航空器的滑行時間.
4
結束語
提出了一種面向A-SMGCS的航空器場面滑行初始路徑規劃方法,該方法具有以下特點:
(1) 定義一種擴展賦時庫所Petri網(ETPPN),可對航空器場面滑行過程進行建模,該模型充分體現了管制規則約束;
(2) 考慮航空器場面滑行速度調整特性,使規劃結果更接近實際運行需要;
(3) 采用場面運行ETPPN模型中的變遷激發序列進行GA染色體編碼,結合場面滑行特征給出交叉與變異設計,改變以往研究中對問題空間(場面拓撲結構)的直接處理,算法的通用性更好.
在求解初始滑行路徑時僅以滑行時間最短作為優化目標,今后需要考慮更多的優化目標,例如航空器加減速次數、轉彎次數等,并與其它路徑規劃方法進行比較.
參考文獻:
[1]International Civil Aviation Organization (ICAO). Doc.9830-AN/452, Advanced surface movement guidance and control systems (A-SMGCS) manual[S]. 2004.
[2]湯新民,王玉婷,韓松臣. 基于DEDS的A-SMGCS航空器動態滑行路徑規劃研究[J]. 系統工程與電子技術,2010,32(12): 2669-2675.
TANG Xinmin, WANG Yuting, HAN Songchen. Aircraft dynamic taxiway routes planning for A-SMGCS based on DEDS[J]. Systems Engineering and Electronics, 2010, 32(12): 2669-2675.
[3]朱新平,湯新民,韓松臣. 基于EHPN的A-SMGCS機場滑行道運行控制建模[J]. 交通運輸工程學報,2010,10(4): 103-108.
ZHU Xinping, TANG Xinmin, HAN Songchen. EHPN-based modeling of airport taxiway operation control in A-SMGCS[J]. Journal of Traffic and Transportation Engineering, 2010, 10(4): 103-108.
[4]朱新平,湯新民,韓松臣. 基于DES監控理論的滑行道對頭沖突控制策略[J]. 西南交通大學學報,2011,46(4): 664-670.
ZHU Xinping, TANG Xinmin, HAN Songchen. Avoidance strategy for head-on conflict on taxiway based on supervisory control theory of DES[J]. Journal of Southwest Jiaotong University, 2011, 46(4): 664-670.
[5]黃圣國,孫同江,呂兵. 運輸網絡的最短有向路Petri網仿真算法[J]. 南京航空航天大學學報,2002,34(2): 121-125.
HUANG Shengguo, SUN Tongjiang, LU Bing. Petri net simulation arithmetic of the shortest directional path in transportation net[J]. Journal of Nanjing University of Aeronautics and Astronautics, 2002, 34(2): 121-125.
[6]張威,謝曉妤,劉曄. 基于Petri網的機場場面路徑規劃探討[J]. 現代電子工程,2007,4(1): 59-61.
ZHANG Wei, XIE Xiaoyu, LIU Ye. Petri-net based airport surface routes planning[J]. Modern Electronic Engineering, 2007, 4(1): 59-61.
[7]GARCIA J, BERLANGAA A. Optimization of airport ground operations integrating genetic and dynamic flow management algorithms[J]. AI Communications, 2005, 18(2): 143-164.
[8]KEITH G, RICHARDS A, SHARMA S. Optimization of taxiway routing and runway scheduling[C]∥Proc. of AIAA Guidance, Navigation, and Control Conference and Exhibit. Honolulu: [s. n.], 2008: 1-11.
[9]MARN G. Airport management: taxi planning[J]. Annals of Operations Research, 2006, 143(1): 191-202.
[10]王化冰. 一種基于同步合成Petri網的FMS建模方法[J]. 系統工程理論與實踐,2001,21(2): 35-42.
WANG Huabing. A Petri net synchronous synthesis method for modeling flexible manufacturing systems[J]. System Engineering: Theory and Practice, 2001, 21(2): 35-42.
[11]GEN M, CHENG R W. Genetic algorithms and engineering optimization[M]. New York: John Wiley and Sons, 2000: 297-340.
[12]劉長有,叢曉東. 基于遺傳算法的飛機滑行路徑優化[J]. 交通信息與安全,2009,27(3): 6-8.
LIU Changyou, CONG Xiaodong. Taxing optimization for aircraft based on genetic algorithm[J]. Transportation Information and Safety, 2009, 27(3): 6-8.
[13]劉兆明,葛宏偉,錢鋒. 基于遺傳算法的機場調度優化算法[J]. 華東理工大學學報:自然科學版,2008,34(3): 392-398.
LIU Zhaoming, GE Hongwei, QIAN Feng. Airport scheduling optimization algorithm based on genetic algorithm[J]. Journal of East China University of Science and Technology: Nature Science Edition, 2008, 34(3): 392-398.
[14]GOTTELAND J, DURAND N, ALLIOT J M, et al. Aircraft ground traffic optimization[C]∥Proc. of the Genetic and Evolutionary Computation Conference. San Francisco: IEEE Press, 2001: 1-9.
[15]GOTTELAND J, DURAND N. Genetic algorithms applied to airport ground traffic optimization[C]∥Proc. of the 2003 Congress on Evolutionary Computation. Canberra: IEEE Press, 2003: 544-551.
篇2
關鍵詞:最短路徑;動態規劃;C 語言編程
中圖分類號:TP311 文獻標識碼:A 文章編號:1009-3044(2013)09-2191-03
1 概述
數學源于生活,又服務于生活.它是一門研究現實世界中的數量關系與空間形式的學科.當今社會,隨著物質水平的不斷提高,生活需求的不斷擴大,自然資源的不斷開發利用.像天然氣管道鋪設問題,廠區布局問題,旅行費用最小問題等都已成為我們平時經濟生活中的普遍問題.它們其實都可以化歸為最短路線問題,而最短路問題實質上是一個組合優化問題[1]。
動態規劃方法主要是研究與解決多階段決策過程的最優化問題,它將求解分成多階段進行,不但求出了全過程的解,還能求出后部子過程的一組解,在求解一些生活實際問題時,更顯其優越性。為了快速、簡單的計算最短路徑,節約運輸時間與成本,該文利用動態規劃的思想編寫了C語言程序,解決物流運輸過程中多地點的最短路徑的選擇問題。
2 最短路徑問題
2.1 最短路徑問題算法的基本思想
在求解網絡圖上節點間最短路徑的方法中,目前國內外一致公認的較好算法有迪杰斯特拉(Dijkstra)及弗羅伊德(Floyd)算法。這兩種算法中,網絡被抽象為一個圖論中定義的有向或無向圖,并利用圖的節點鄰接矩陣記錄點間的關聯信息。在進行圖的遍歷以搜索最短路徑時,以該矩陣為基礎不斷進行目標值的最小性判別,直到獲得最后的優化路徑[2]。
Dijkstra算法是圖論中確定最短路的基本方法,也是其它算法的基礎。為了求出賦權圖中任意兩結點之間的最短路徑,通常采用兩種方法。一種方法是每次以一個結點為源點,重復執行Dijkstra算法n次。另一種方法是由Floyd于1962年提出的Floyd算法,其時間復雜度為[On3],雖然與重復執行Dijkstra算法n次的時間復雜度相同,但其形式上略為簡單,且實際運算效果要好于前者。
2.2 最短路徑問題算法的基本步驟[3]
這樣經過有限次迭代則可以求出[v1]到[vn]的最短路線。
(2)Floyd算法的基本步驟
(3)動態規劃算法基本步驟
我們將具有明顯的階段劃分和狀態轉移方程的規劃稱為動態規劃[1]。在解決多個階段決策問題時采用動態規劃法是一個很有效的措施,同時易于實現。
根據動態規劃的基本概念,可以得到動態規劃的基本步驟:1)確定問題的決策對象。2)對決策過程劃分階段。3)對各階段確定狀態變量。4)根據狀態變量確定費用函數和目標函數。5)建立各階段狀態變量的轉移過程,確定狀態轉移方程。
根據動態規劃的基本模型,確定用動態規劃方法解題的基本思路,是將一個[n]階段決策問題轉化為一次求解[n]個具有遞推關系的單階段的決策問題,以此來簡化計算過程.其一般步驟如下:
用于衡量所選決策優劣的函數稱為指標函數.指標函數有有階段的指標函數和過程的指標函數之分.階段的指標函數是對應某一階段狀態和從該狀態出發的一個階段的某種效益度量,用[vkxk,uk]表示。在本文里用[dkxk,uk]來表示某一階段的決策的最短路徑。過程的指標函數是指從狀態[xn(k=1,2,...,n)]出發至過程最終,當采取某種子策略時,按預定的標準得到的效益值。這個值既與[xk]本身的狀態值有關,又與[xk]以后所選取的策略有關,它是兩者的函數值,記作[dk,nxk,uk,xk+1,uk+1,…xn,un]。過程的指標函數又是它所包含的各階段指標函數的函數。本文研究的過程的的指標函數是其各階段指標函數的和的形式.當[xk]的值確定后,指標函數的值就只同k階段起的子策略有關。對應于從狀態[xk]出發的最優子策略的效益值記作[fkxk],于是在最短路問題中,有[fkxk=mindk,n]。動態規劃求解最短路徑程序流程圖如圖2所示。
3 最短路徑態規劃實際應用舉例
設某物流配送網絡圖由12個配送點組成,點1為配送中心起點,12為終點,試求自終點到圖中任何配送點的最短距離。圖中相鄰兩點的連線上標有兩點間的距離[4]。
首先用動態規劃法來討論圖3的最短路徑,由圖可知:
1)集合[ξ4]中有點9、10、11,它們在一步之內可到達點12;
2)集合[ξ3]中有點6,7,8,它們不超過兩步就可達到點12;
3)集合[ξ2]中包括點 2、3、4、5,不超過三步就可到達點12;
4)集合[ξ1]中包括點1,不超過四步可到達點12;
按照動態規劃法類推,得到最優路徑長為16,徑路通過點為1,2,7,10,12和1,3,6,10,12。
根據動態規劃算法編寫C語言計算程序[5] [6],計算得到實驗結果如下圖4所示:
由圖4可以看出程序得到的結果與本文推出的結果一樣。證明了本文編寫的C語言程序是正確的。
4 結束語
綜上所述,用動態規劃解決多階段決策問題效率高,而且思路清晰簡便,同時易于實現.我們可以看到,動態規劃方法的應用很廣泛,已成功解決了許多實際問題,具有一定的實用性。此種算法我們用動態規劃思想來編程,并解決相應的問題,其在 VC 環境下實現,能方便快速的計算出到達目的地的最短距離及路徑,節省更多的運輸時間與成本。不過,該文只考慮了動態規劃算法在生活中的簡單運用,在實際生活中可能存在多個目的地或者更復雜的情況.因此我們可以考慮將其進行改進或者結合啟發式算法,使之更好的運用在實際生活中,這有待于以后的繼續研究。
參考文獻:
[1] 杜彥娟.利用動態規劃數學模型求解最短路徑[J].煤炭技術,2005(1):94-95.
篇3
關鍵字:最優路徑選擇;A-Star算法;貪婪算法;模擬仿真
中圖分類號:TP301.6 文獻標識碼:A DOI:10.3969/j.issn.1003-6970.2013.06.012
0 前言
物流與國民經濟及生活的諸多領域密切相關,越來越多得到重視,甚至被看作是企業“第三利潤的源泉”,而在物流成本方面,運輸費用占大約50% ,比重最大[1]。因此,物流配送中最優路徑選擇的研究具有巨大的經濟意義。物流配送中的最優路徑選擇問題的研究和應用都相當廣泛,近幾十年,國內外均有大量企業機構、學者對該問題進行了大量而深入的研究,取得豐碩的學術成果。如1953年,Bodin,Golden 等人便撰文綜述了該問題的有關研究進展情況,列舉了幾百余篇相關文獻,這些文獻成為了早期車輛路徑問題研究資料,隨后隨著該問題不斷研究深入,約束模型及條件不斷變化,車輛路徑問題研究的最新進展可見Alt- inkerner 和 Oavish,Laporte,Salhi 等人的綜述性文章[2]。圍繞該問題的解決也極大推動了計算機學科的發展,不斷有新的模型和算法推出。針對物流配送車輛路徑優化問題的求解方法很多,根據算法原理的不同大致可分為兩大類:精確算法和智能式啟發算法。精確算法是指可以車輛路徑問題的數學模型可求出其最優解算法,但由于算法存在諸多缺陷,所以在實際中應用并不廣泛。目前,啟發式算法是解決物流配送中最優路徑選擇的主要方法和主向[3]。近年來,隨著科學的發展,一些新的啟發式方法被用在求解物流路徑選擇及優化問題上,可以通過使用啟發式方法獲得較快的收斂速度和較高質量的全局解,常用的算法有模擬退火算法、GA 算法等[4]。A*算法是人工智能中一種典型的啟發式搜索算法,被廣泛應用于最優路徑求解和一些策略設計的問題中[5、6]。本文結合貪婪算法的思想,深入研究A-Star(A*)算法,在QT Creator平臺上,采用Visual C++編程對物流配送問題進行模擬仿真,同時考慮最短時間和最短路徑兩個方面,以此來解決物流配送中最優路徑選擇的問題,達到物流配送最優線路規劃的目的。
1 需求分析
1.1 總體框架
在物流配送時,物流車裝載當日需要配送的貨品從倉庫出發,按照事先規劃好的最優配送路徑為每一個客戶進行配送,最后返回倉庫。這就涉及在配送時配送路線的選擇問題,而在配送之前,IT系統需要根據客戶的配送地址間線路間距和經驗路況分析計算出一條最優配送路徑。并且在配送過程中,如果某路段發生堵車狀況,需要動態調整配送路線,以達到最優配送的目的。為此,在QT Creator平臺上,以面向對象的設計方式來開發最優物流配送的功能軟件。通過再現交通運輸環境,模擬物流運輸中的突發事件,優化物流配送的路線,分別根據需求,設計出最短路徑和最少時間兩種配送方式,并通過二維動畫的效果顯示出來。通過此軟件呆模擬解決物流配送中各種情況,從而降低運輸成本。設計本軟件的總體思路如圖1所示。
1.2 功能設計
設計的軟件從功能上來說,主要包括以下幾點:
(1)載入一張已有地圖(*.map的文件)或生成一張空白地圖。用戶可以在這張空白地圖上操作,通過障礙物的增刪來設置城市的道路。
(2)道路突發事件設置。
a.用戶可以根據實際情況或主觀意愿對地圖進行規劃。在地圖中添加障礙物,設置道路前方的暫時封閉或者道路施工等未知路況。
b.也可以模擬城市人流量大的地方,通過在地圖上,設置易堵車而導致前行速度下降的未知路況。
(3)設置倉庫及客戶點。
a.隨機生成倉庫及客戶點。在地圖中,用戶可隨機生成若干個客戶點和倉庫點。
b.指定生成倉庫及客戶點。在已生成或者模擬的地圖上,根據用戶的不同需求,可在地圖上任意位置生成客戶點和倉庫點。
c.可以對倉庫及客戶點進行增刪。
(4)計算路徑及優化。
a.根據用戶之前模擬的各種情況,計算其最短路徑。根據用戶載入或者自己規劃的地圖,模擬計算出最短路徑,在界面的左上角顯示其時間,并在地圖上顯示其路徑。
b.根據用戶之前模擬的各種情況,計算其最短時間。根據用戶載入或者自己規劃的地圖,模擬計算出最短時間,在界面的左上角顯示其時間,并在地圖上顯示其對應路徑。
軟件的大致功能如下圖2所示。
圖2 功能模塊圖
2 算法描述
2.1 貪婪算法
貪婪算法(Greedy algorithm)又叫登山法,它的根本思想是逐步到達山頂,即逐步獲得最優解,是解決最優化問題時的一種簡單但適用范圍有限的策略[7]。
貪婪算法是基于鄰域的搜索技術,它在計算過程中逐步構造最優解[8]。在構造解的過程中,每一步常以當前情況為基礎根據某個優化測度(greedy criterion,貪婪準則,也稱貪婪因子)作最優選擇,而不考慮各種可能的整體情況,選擇一旦做出就不再更改,這省去了為找最優解要窮盡所有可能而必須耗費的大量時間。它采用自頂向下,以迭代的方法做出相繼的貪心選擇,每做一次貪心選擇就將所求問題簡化為一個規模更小的子問題。通過每一步貪心選擇,可得到問題的一個最優解,雖然每一步上都要保證能獲得局部最優解,但由此產生的全局解有時不一定是最優的,一般情況下只是近似最優解[9]。雖然貪婪法不是對所有問題都能得到整體最優解,但對范圍相當廣泛的求最優解問題來說,它是一種最直接的算法設計技術,通過一系列局部最優的選擇,即貪婪選擇可以產生整體最優解[10]。
對于一個給定的問題,往往可能有好幾種量度標準。初看起來,這些量度標準似乎都是可取的,但實際上,用其中的大多數量度標準作貪婪處理所得到該量度意義下的最優解并不是問題的最優解,而是次優解。因此,選擇能產生問題最優解的最優量度標準是使用貪婪算法的核心。一般情況下,要選出最優量度標準并不是一件容易的事,但對某問題能選擇出最優量度標準后,用貪婪算法求解則特別有效。最優解可以通過一系列局部最優的選擇(貪婪選擇)來達到。根據當前狀態做出在當前看來是最好的選擇,即局部最優解選擇,然后再去解出這個選擇后產生的相應的子問題。每做一次貪婪選擇就將所求問題簡化為一個規模更小的子問題,最終可得到問題的一個整體最優解。它是一種改進了的分級處理方法。
2.2 A-Star算法
A*算法是人工智能中一種典型的啟發式搜索算法,它是一種靜態路網中求解最短路最優算法,其公式可表示為:
(1)
其中,是從初始點經由節點到目標點的估價函數;是在狀態空間中從初始節點到節點的實際代價;是從到目標節點最佳路徑的估計代價[11、12]。
在A*算法中,找到最短路徑(最優解的)的關鍵在于估價函數的選取。當估價值到目標節點的距離實際值時,搜索的點數多,搜索范圍大,效率低,但能得到最優解;當估價值到目標節點的距離實際值時,搜索的點數少,搜索范圍小,效率高,但不能保證得到最優解[13、14]。
A*算法的難點在于建立一個合適的估價函數,估價函數構造得越準確,則A*算法搜索的時間就越短[15]。A*算法的估價函數可表示為:
(2)
這里,是估價函數,是起點到節點的最短路徑值,是到目標的最短路徑的啟發值。由于這個其實是無法預先知道的,所以我們用前面的估價函數做近似。當時,可以代替(大多數情況下都是滿足的,可以不用考慮),但只有在時,才能代替。可以證明,應用這樣的估價函數能有效地找到最短路徑。
本文綜合貪婪算法和A*算法的思想來求解決物流配送中最優路徑選擇的問題。圖3為綜合算法的流程圖。
3 實驗仿真設計
3.1 軟件概述
開發的軟件要具有實用性,這就是說,能給企業帶來效益,這就包了兩方面的內容:企業能獲得的利潤和客戶的滿意程度。也就是說采用所建立的模型要設計出合理的物流配送路線,保證在較短的路程或時間內遍歷所有的節點,從而保證貨物按時送到。
從算法角度來看,為了保證算法的有效性和高效性,結合軟件的功能,則該軟件的設計目標[16]為:①路徑最短或時間最短, ②滿足實際中遍歷節點的要求, ③算法高效性, ④軟件的普度適用性。
軟件操作流程具體步驟如下:
第一步.用戶載入一張已有地圖或生成一張空白地圖。
第二步.設置相關參數及約束條件。
第三步.顯示計算結果和最優路徑。
該軟件可運行于Windows 7操作系統,主要包括3個部分:地圖文件的讀取部分、算法部分和用戶界面部分。
3.2 軟件模擬實現
1.初始化
根據軟件的需求分析,本軟件初始產生一個空白的二維平面圖,在該模塊用戶可以根據實際情況模擬出實際路況,提供兩種方式來實現該功能:
(1)通過點擊工具欄上面的初始化按鈕自動初始化。
(2)通過鼠標右鍵選擇初始化選項。
圖4 系統初始化界面
2.道路的參數設置
在視圖界面中,用戶可以點擊鼠標右鍵,選擇生成障礙物或刪除障礙物來模擬現實生活中城市道路可能發生的各種情況,如:
(1)用戶可以根據實際情況,點擊鼠標右鍵,在出現的下拉菜單中,選中添加障礙物,設置道路前方的暫時封閉或者道路施工等未知路況。
(2)也可以在地圖上,點擊鼠標右鍵來設置易堵車而導致前行速度下降的未知路況。
在地圖中淺黃色的區域是模擬人流量大的鬧市區。深褐色方塊模擬障礙物。
圖5 道路模擬圖
3.倉庫點及客戶點的生成
客戶點和倉庫點的生成包括兩種情況:
(1)隨機生成客戶點和倉庫點。在視圖界面中,通過頂端的輸入框,輸入生成客戶點或倉庫點的個數,點擊生成客戶點或倉庫點按鈕來隨機生成客戶點或倉庫點。
(2)在指定位置生成客戶點和倉庫點。在已生成或者模擬的地圖上,根據用戶不同的需求,在地圖指定位置生成客戶點和倉庫點。
在如圖5的道路設計下,在地圖上隨機添加了10個客戶點和1個倉庫點,如圖6所示。
圖6 場景界面圖
4.路徑最短和時間最短的配送路徑
根據圖6所設計的場景,通過貪婪算法和A*算法,分別計算出路徑最短和時間最短的配送路徑,并在地圖上顯示其路徑。圖7依據最短路徑實現物流配送的最優方案,主要從距離這個方面進行考慮;圖8根據最短時間實現物流配送的最優方案,主要考慮的是在道路有突發狀況發生時物流配送的時間最少。
圖7 路徑最短的配送路徑
圖8 時間最短的配送路徑
4 認識與結論
通過對物流配送中的實際問題進行模擬研究,在QT Creator平臺上采用Visual C++編程開發出針對物流配送中最優路徑選擇問題的軟件,從最短時間和最短路程兩方面考慮,為物流配送公司提供可靠有效的參考信息,使配送方案符合實際情況。同時,深入研究了貪婪算法和A*算法,從算法的角度對物流配送中的時間和路程進行分析,設計實現了物流配送中最優數學模型,以期達到最優路徑的目的。通過本研究的結果來看,開發的模擬軟件能解決物流運送過程中的時間、路徑等實際問題,同時實現了二維圖形的可視化,更加直觀地體現了物流配送中存在的問題和解決方式,對物流配送企業提高運營效率、降低運營成本等具有重要意義。
參考文獻
[1]黃中鼎. 現代物流管理學[M]. 上海: 上海財經大學出版社, 2004, 1-37.
[2]謝秉磊, 郭耀煌, 郭強. 動態車輛路徑問題:現狀與展望[J]. 系統工程理論方法應用, 2002, 11(2): 116-120.
[3]鄒挺. 基于蟻群和人工魚群混合群智能算法在物流配送路徑優化問題中的應用研究[D]. 蘇州: 蘇州大學, 2011, 3-7.
[4]吳云志, 樂毅, 王超, 等. 蟻群算法在物流路徑優化中的應用及仿真[J]. 合肥工業大學學報( 自然科學版), 2009, 32(2):211-214.
[5]王海梅, 周獻中. 直線優化A*算法在最短路徑問題中的高效實現[A]. 全國第計算機技術與應用(CACIS)學術會議論文集(下冊)[C], 2008, 932-936.
[6]陳和平, 張前哨. A*算法在游戲地圖尋徑中的應用與實現[J]. 計算機應用與軟件, 2005, 22(12):94-96.
[7]晏杰. Matlab 中貪婪算法求解背包問題的研究與應用[J]. 赤峰學院學報(自然科學版), 2012, 28(9):23-24.
[8]劉紀岸, 周康渠, 寧李俊, 等. 基于貪婪算法的摩托車生產物流配送規則優化[J]. 制造業自動化, 2010, 32(5):97-99.
[9]蔣建國, 李勇, 夏娜. 一種求解單任務Agent聯盟生成的貪婪算法[J]. 系統仿真學報, 2008, 20(8):1961-1964.
[10]江朝勇, 陳子慶, 謝贊福. 基于優先級貪婪算法的排課系統排研究與實現[J]. 信息技術, 2008, 24(7):173-176.
[11]徐偉, 孫士兵. 基于A-Star算法警用地圖查詢系統的設計與實現[J]. 信息安全與技術, 2011. 5-2:52-56.
[12]王敬東, 李佳. A*算法在地圖尋徑中的實用性優化[J]. 電腦開發與應用, 2007, 20(7):24-25.
[13](美)Stuart Russell,(美)Peter Norvig. 人工智能——一種現代方法[M]. 姜哲,譯. 北京:人民郵電出版社, 2004, 76-83.
[14]王文杰, 葉世偉. 人工智能原理與應用[M]. 北京:人民郵電出版社, 2004, 115-121.
篇4
【關鍵詞】虛擬場景;路經規劃;八叉樹;A*算法
中圖分類號:TP39文獻標識碼A文章編號1006-0278(2013)06-172-01
一、引言
隨著虛擬現實技術的日益成熟,只有景色、建筑物等一般視景信息的虛擬場景已不能滿足人們的視覺需求,迫切需求一個有生命的對象引入到虛擬場景中,增加瀏覽者的沉浸感。虛擬場景中虛擬人的路徑規劃是虛擬現實研究中的一項關鍵技術。目前,研究者們已經把研究的重心放在如何為虛擬人規劃出一條行走的最優路徑,使虛擬人的路徑導航更具有真實感和可信度。
由于虛擬環境中的模型多由三角面網格組成,通過使用基于空間多層次劃分的八叉樹方法,充分發揮了其空間劃分的優勢,加快了場景的渲染速度,減少了確定對象的處理時間以及存儲空間①。
文章采用八叉樹和A*算法相結合的方法,對路徑進行規劃,并對A*算法做了改進,以適應八叉樹的存儲結構。
二、密集型區域八叉樹劃分算法
八叉樹是由四叉樹推廣到三維空間而形成的一種三維柵格數據結構,它作為一種場景組織方法,廣泛應用于虛擬現實系統,可顯著減少對場景中多邊形進行排序的時間。
由于傳統八叉樹對空間的劃分是均勻的,導致了最終生成一個結構不平衡的八叉樹,從而增加整個八叉樹的存儲空間以及各結點的遍歷時間。文章采用了對傳統八叉樹算法進行改進,采用基于密集型區域八叉樹劃分方法。密集型區域八叉樹的網格劃分算法是對每一子空間重新建立最小包圍盒,這樣避免了在建立頂點樹時,由于該部分頂點在空間上分布不均勻而導致樹的深度的增加,進而減少了存儲空間,加快了網格模型數據的讀取速度。另外,由于建立了頂點的最小包圍盒,在誤差較小時,只有空間距離比較近的頂點才會聚合在一起;而相距較遠的頂點只有在深層次簡化時才會聚合,這些特點在一定程度上保證了簡化時網格模型的逼真度。
密集型區域八叉樹劃分方法的算法描述如下:
步驟1使用OBB包圍盒方法建立模型的最小包圍盒。
步驟2以包圍盒的X軸、Y軸、Z軸方向的中分面作為分割基準,將包圍盒平均劃分為八個子包圍盒。
步驟3如果每個子空間內存在物體的屬性不相同或未達到規定的限差,則重新從步驟1開始進行劃分。否則,劃分結束,并對劃分后的每一個結點記錄下結點編號、劃分標志、結點在頂點樹中的深度以及它所含的景物面片表的入口指針。
三、A*算法
A*算法是建立在典型的Dijkstra算法上的,是由Hart,Nilsson,Raphael等人首先提出的。該算法的創新之處在于選擇下一個被檢查的節點時引入了已知的全局信息,對當前節點距終點的距離做出估計,作為評價該節點處于最優路線上的可能性的量度,這樣就可以首先搜索可能性較大的節點,從而提高了搜索過程的效率。
下面是對A*算法的介紹,我們首先來介紹一下啟發式搜索中的估計函數。因為在啟發式搜索中,對位置的估價是十分重要的。估價函數的表示如下:
其中是節點的估價函數,是已知的,指在狀態空間中從初始節點到節點的實際代價;是從結點到目標節點最佳路徑的估計代價,它體現了搜索的啟發信息,啟發信息決定著算法的啟發能力。啟發信息越多,估價函數就越好,即約束條件越多,則排除的節點就越多,說明這個算法越好。這種做法存在一個平衡的問題,也會使算法的準確性下降。具體的說,代表了搜索的廣度優先趨勢,當時,可以省略,這樣就提高了搜索效率。
A*算法是一個可采納的最好優先算法。A*算法的估價函數可表示為:
這里,是估價函數,是起點到終點的最短路徑值,是到目標的最短路經啟發值。由于這個其實是無法預先知道的,所以我們用前面的估價函數做近似。代替,但需要滿足(在大多數情況下都滿足時,可以不用考慮)。代替,并滿足。可以證明應用這樣的估價函數是可以找到最短路徑的。
四、基于密集型區域八叉樹的A*算法改進
由于使用八叉樹存儲結構存儲的環境地圖擴展步長不一致,采用傳統的A*算法效率較低,因此對A*算法做了改進,以適應八叉樹結構的搜索。改進的辦法是從葉節點開始搜索并為Open表設置兩個優先隊列,命名為隊列1和隊列2(隊列1中存放的節點總是高于隊列2),在兩個隊列中分別存放相鄰層次的全部節點,層次越高的優先級越高。通過這種分層次的搜索,也大大縮小了搜索的空間并縮短了搜索時間,這樣一來大大提高了搜索效率。
五、結束語
針對于復雜的3D環境,文章根據八叉樹適合虛擬場景劃分的特點,采用了一種適合密集型區域的八叉樹劃分方法,進行場景劃分。為適合八叉樹的存儲結構,對A*算法做了改進,引入優先級隊列并采用了分層結構,采用了從葉節點到根節點的搜索方法,規劃出了虛擬人行走的最優路徑。
篇5
關鍵詞:多智能體;尋路;游戲開發
中圖分類號:TP312文獻標識碼:A文章編號:1009-3044(2012)13-3159-06
Application of Multi-Agent Pathfinding System in Computer Game
HUANG Jin1, HUANG Zong-Wen1, LING Zi-Yan2
(1.XingJian College of Science and Liberal Arts, Guangxi University, Naning 530004, China; 2.Geomatics Center of Guangxi, Naning 530023, China)
Abstract: This research presents a real-time multi-agent pathfinding system in computer game. In our system, each agent thinks independently, and continues to search and move to reach its destination, so a group behaviors with significant individual characteristic can be better simulated; The concept of soft obstacle is introduced to implement collision avoidance between agents and crowd movement simulation; The pathfinding algorithm is applied and bridged on the 3D games, which provides efficient multi NPC pathfinding function for re? al-time game. The paper expounds the system from overall structure, components detail, core algorithms and practical application, and then obtains the experimental results.
Key words: multi-agent; pathfinding; computer game
路徑搜索,在碰撞避免的條件下對智能體到目的地的路徑規劃問題,是游戲設計中的一個典型問題。在靜態網格的條件下,A*算法能夠很好的解決這個問題。但是,如果需要考慮多智能體之間或者智能體與其他有可能運動的障礙物的碰撞避免的話,那么我們就要對A*算法進行改進,使智能體能夠感知潛在的障礙物碰撞。多智能體尋路系統令系統內的每一個智能體獨立進行思考,使他們能夠通過各自思維實現從出發地到目的地的導航。多智能體尋路系統在很多領域得到了應用,包括機器人運動規劃,空中交通控制,車輛路徑規劃,災害救援,以及本文將要討論的電腦游戲[1]。
A*算法由Peter Hart等首次提出,它被用來在靜態網格地圖中尋找指定起點到目的地的最佳路徑[2]。A*是在Dijkstra算法的基礎上形成的[3],Dijkstra算法對啟示節點周圍的所有節點逐一進行搜索,直到找到目標節點,而A*則在此基礎上擴展了一個更直接的啟發方式,即估計目標節點與當前節點的距離,并以此作為移動當前點的重要指標。
然而,正如前面討論的那樣,A*算法只能在靜態網格地圖中對單一目標路徑規劃上得到應用,為了解決這一問題,Silver提出了一種被廣泛應用在電子游戲上的多智能體尋路系統,Local Repair A*(LRA*)[4]。在LRA*里,每一個智能體獨立的考慮自己的路徑規劃,當智能體發現它的下一步路徑將出現障礙物導致的碰撞后,它們將重新規劃新的路徑,防止碰撞發生。這種算法的缺點在于經常性出現的循環依賴和死鎖,從而導致在實際應用中智能體始終無法達到目的地。
Jeremy和Jansen等人則嘗試為網格地圖中智能體所可能占據的每一個位置估算一個移動方向,并且令在該位置上的智能體按照這個方向移動[5] [6]。在這種算法中,他們也需要利用A*或者Dijkstra算法對網格進行遍歷,只不過是將遍歷得出的數據轉化為對于某一位置的移動方向而不是一條移動路徑。這種算法在群體行為的模擬中非常有效,但是卻無法很好的模擬游戲中經常出現的與群體目的相違背的個體行為。
1系統結構
本文構建的多智能體網格地圖尋路系統主要由以下幾個部分組成(如圖1所示)。
地圖網格:用于標記地圖中的靜態障礙物,這和A*算法中的障礙物一樣,做了障礙標記的網格將無法通行。
尋路單元:用于讀取文本形式的地圖網格信息,執行網格的初始化和網格信息的更新,為智能體提供路徑搜索功能等。
動作單元:為智能體提供在3D空間內的移動及旋轉功能。
智能體:系統中執行尋路、移動、旋轉以及其他一些游戲中必須動作的基本單元。
智能體管理器:負責對智能體進行管理,包括注冊、移除、獲取以及在適當的時刻命令智能體進行尋路。
2系統細節
2.1尋路單元
尋路單元為我們的整個系統提供尋路的核心算法,這個算法由尋路網格初始化和尋找最佳路徑兩部分組成,智能體通過調用尋路函數獲得一個被算法承認的最佳路徑。每當智能體調用尋路函數時尋路網格初始化都將進行一次,這是因為我們的尋路網格不是靜態的,而是隨著障礙物或者場景內游戲單元位置變化而動態更新的。我們都知道,A*算法用H值來表示當前節點距離終點的距離,而G值用來表示從起始點到當前節點的消耗值。我們在尋路網格初始化中,將保留A*算法H值的計算方式而對G值,即消耗值,進行適當調整,引入一種軟障礙的概念使其更符合游戲要求。此外,我們在A*算法靜態障礙物的基礎上添加了一個排除列表,用它來標記尋路網格內動態障礙物,和靜態障礙物一樣,路徑將無法從它們上面通過。總之,這個算法是在一個動態更新的網格地圖上,通過考慮靜態障礙物、動態障礙物及軟障礙物的避讓,搜索最佳路徑的過程。下面,我們詳細介紹網格初始化和尋找最佳路徑這兩部分的實現過程:
2.1.1尋路網格初始化
尋路網格由網格細胞的二維數組構成,一個網格細胞中記錄了以下幾個重要的數值:F值、G值及H值,距離損耗,密度損耗。這里,F值、G值及H值的含義和A*算法中保持一致,而G的具體取值由距離損耗和密度損耗計算得出。
距離損耗用于存儲智能體通過該網格所需的移動損耗,密度損耗則用于表示智能體在通過該網格時,由于場景內軟障礙所造成的消耗。在游戲中,我們希望人群在空間充裕的條件下保持一定的距離,但是又不希望當空間比較狹窄時造成堵塞,所以我們引入軟障礙的概念。如圖2所示,在左邊的黑色格子,是一個硬障礙,路徑將無法在黑色區域的格子通行,而右邊具有灰色圓形圖案的則是一個軟障礙,對于中心的黑色格子,路徑無法通過,但是對于灰色的圓形范圍,算法將不鼓勵但不禁止路徑從此通過,并且,越是靠近圓形中心,路徑從此通過受到的阻力越大,即密度損耗的值越大。我們使用軟障礙來表示場景中的NPC和玩家,之所以將存儲軟障礙消耗的變量稱之為密度損耗,正是因為這個值可以幫助我們控制場景中人群的密度。
在程序中,我們首先創建一個空的尋路網格,然后從硬盤讀文本形式的靜態障礙信息,通過靜態障礙信息修改相應網格細胞類型,對場景內每一個智能體所在位置以及它們下一個移動目標所在位置的網格細胞設置為軟障礙,這樣在實際應用中就能極大的降低智能體相互穿越(圖3)、死鎖(圖4)等情況的發生。
圖4死鎖
2.1.2尋找最佳路徑
一旦網格初始化過程完成,我們便基于這個最新初始化的網格進行路徑搜索。
搜索路徑算法首先將起始節點放入closed列表里,并檢查它相鄰的8個子節點;接著,將這些節點放入open列表里,并以F值的大小順序排列;算法接下來挑選open列表中F值最小的節點作為下一個檢查目標,將這個節點從open列表中移除并與結束節點進行比較:
如果它不是結束節點,將其放入closed列表里,并且將它相鄰子節點按照其F值的大小順序放入open列表中,這個過程一直持續到我們搜索到結束節點,或者open列表中為空。如果它是結束節點,路徑搜索完成,我們計算出路徑上的所有節點并返回。
下面給出尋找最佳路徑的偽代碼:
Create Start Node with Current Position
Add Start Node to Open List
while Open List NOT Empty do
Update Nodes in Open List
Sort Open List by F Value in Descending
Get First Node from Open List call Node“N”
Remove N from Open List
在循環搜索的過程中,每一個節點都要首先進行更新,注意到在執行路徑搜索部分之前,網格已經被重新初始化,這意味著每一個節點的F值都是最新的,同時,子節點也已經對父節點的F值進行累加,這樣做是為了保證軟障礙能夠起到控制擁擠程度的作用。此外,在將相鄰節點加入open列表時,我們還需要對節點的類型做出判斷,僅當節點不是靜態障礙物、處于排出列表中(動態障礙物)或穿越者障礙物轉角時,我們才能繼續進行余下操作。為了防止路徑穿越者障礙物轉角,我們對圖5所示的這種情況進行測試,根據實際情況返回真或者假。
圖5智能體在不進行障礙物轉角判斷時的錯誤路徑
2.2動作單元
由于本文涉及的游戲是一款3D游戲,我們除了完成在2D網格中的路徑搜索外,還需要命令我們的智能體按照路徑在3D空間中完成旋轉和移動。動作單元為智能體提供一個通用的移動函數,智能體只要在每次更新的時候調用這個函數便能完成旋轉和移動的動作。下面,我們介紹這個函數的細節:
下面給出移動函數偽代碼:
Calculate the Direction from Agent to the Goal Call“Dire”
Calculate the Dot Product of Dire and Agent’s Face Direction Call“Dot”
if Dot is NOT larger than the Angle Threshold than
if is Clockwise than
Rotate Agent Clockwise
else
Rotate Agent Counterclockwise end if end if
Calculate the Distance between Agent and the Goal Call“Dist”
if Dist is NOT larger than the Distance Threshold than
Move Agent to Dire
else
Set Path Target to Null
end if
函數首先計算得出智能體目的地所在方向,然后計算它與智能體自身朝向之間的夾角,如果夾角大于轉角閥值,進行旋轉,否則不進行旋轉直接移動。在進行旋轉之前,我們還要通過比較這兩個方向向量在極坐標下的極角,得出正確的旋轉方向。接下來,計算智能體與目的地的距離,如果這個距離大于距離閥值,令智能體向目的地方向移動,否則不進行移動,并將移動目標清空。注意到智能體將在每幀渲染前都調用這個函數,我們只需要令其按照計算得出的移動方向和旋轉方向移動和旋轉一個與幀速率相關的微小量即可得到連續播放的動作。
2.3智能體及智能體管理器
智能體由兩部分組成,其一是用于尋路的尋路組件,其二是用于在游戲中顯示的3D組件。尋路組件存儲了智能體在網格地圖上的位置,智能體最近一次成功尋路的路徑以及路徑目標索引。3D組件則用于存儲智能體在3D世界中的位置、朝向、移動目標等信息,它還負責在適當的時候調用動作單元的移動函數,是智能體“真正”的發生移動。
我們注意到,這里存在兩張地圖,一張是用于尋路的網格地圖,而另一張是3D世界中的真實地圖,網格地圖是離散的,而真實地圖是連續的,所以我們需要分別使用尋路組件和3D組件存儲他們各自的位置和目標等信息。并且,在必要的時候,我們還需要將這其中一套信息換算成另外一套。
智能體管理器負責在每一次更新時遍歷場景內的所有智能體,判斷智能體是否已經完成了最新路徑的第一步移動,如果已經完成,則重新搜索最佳路徑,否則不做任何操作。這里,該文和LRA*算法不同,不是在檢查到下一步路徑上有障礙物時才對路徑進行修正,而是每移動一步就要重新計算路徑,這是因為只有這樣才能讓移動著的軟障礙發揮作用。假設我們不是這樣做,一個智能體在第一次尋路時搜索得出一條路徑,而在這個智能體的移動過程中,它路徑周圍的軟障礙變得多起來,而恰好路徑又沒有通過軟障礙的中心,那么就算密度消耗非常的高,智能體還是會沿著路徑一直走,這并不是我們想要的效果。
下面給出智能體管理器更新函數偽代碼:
for all Agent in Agents of the Scene call“A”do
if A’s Path Movement Finished then
Update Pathfinding Unit
Find new Path for A
Set the First Cell of the new Path A’s next Path Target
end if
end for
3結果
這套多智能體尋路系統能夠高效的模擬小規模人群(大約20-40智能體)在中型網格地圖(大約40*40到60*60)上的尋路活動。我們將測試程序在一臺具有3.00GHz Inter Core2 Duo處理器及ATI Radeon 4850顯卡配置的計算機上運行,得到45FPS以上的幀速率,在智能體數量達到100時,幀速率下降到3-6FPS。由于本文沒有將算法在GPU上實現,運行效率受到了明顯限制,在將來的工作中,可以嘗試將這個算法在GPU上實現,這樣便能顯著的提高運行效率,滿足大規模人群在大型網格地圖上的尋路活動。
圖6是一個20智能體在測試地形上的尋路過程。10個女性NPC和10個男性NPC分別在初始化在地圖的兩個角落,女性NPC和男性NPC都以對方的初始位置為移動目標,通過本文實現的尋路系統,他們成功的繞過墻壁,避開NPC之間的碰撞,到達了目的地。
圖6多智能體尋路測試
圖7顯示了將本系統應用在3D游戲上的運行效果。游戲要求每個NPC在場景中都擁有各自的目的,他們可能移動到場景內的任何一個房間,和主角談話,甚至可能停下來發一會呆,所以,這些NPC的行為不是一個群體行為,而本文的尋路系統能夠很好的模擬這一點。
參考文獻:
[1] Ko-Hsin Cindy Wang and Adi Botea.Fast and Memory-Efficient Multi-Agent Pathfinding[C].Proceedings of the Eighteenth International Conference on Automated Planning and Scheduling,2008:380-387.
[2] Peter Hart,Nils Nilsson,Bertram Raphael.A Formal Basis for the Heuristic Determination of Minimum Cost Paths[J].IEEE Transactions on Systems Science and Cybernetics,1968,4(2):100-107.
[3] Ian Millington.Articial Intelligence for Games (The Morgan Kaufmann Series in Interactive 3D Technology)[C].Morgan Kaufmann Publish? ers Inc.,San Francisco, CA, USA,2006.
[4] Silver D.Cooperative pathfinding[J].In Young, R. M.,and Laird, J. E., eds.,AIIDE,AAAI Press,2005:117-122.
篇6
[關鍵詞]三角形單聯絡;中壓配電網;智能規劃
中圖分類號:TM715;TP18 文獻標識碼:A 文章編號:1009-914X(2014)37-0240-02
城市配電網中重要的一部分就是中壓配電網,中壓配電網的“筋骨”是網絡結構,一個堅強的網架對電網的安全可靠運以及經濟的運營有重要的意義。國內一直以來都將網絡架構的研究重點放在接線模式方面,但是當前很多發達國家的網架建設已經不再考慮單純的應用接線模式,而是利用標準的供電模型來對高水平的中壓配電網進行構筑,結合國外的先進經驗,國內一些學者進行了有關供電模型以及其特性的研究,并構建了與我國中壓配電網相適應的若干種典型的供電模型。
一、配電模型分析
配電模型能夠對供電區域的地形特點、負荷密度以及電網現狀之間的關系進行反映,它針對某一供電的區域,以高壓配電的變電站作為源點并以中壓饋線作為網,使供電網絡單元通過組合優選來形成。供電模型的是以供電架構為基礎并對中壓配電網的接線模式相配合來完成構建的。供電模型主要分為點狀供電模型、鏈式供電模型以及三角供電模型和矩形供電模型四種,本文以單聯絡三角形供電模型為研究對象,圖1表示的是單聯絡三角形供電模型,其中是高壓變電站,是分段開關,是聯絡開關,線段代表10KV供電線路。
二、配電網規劃的相關數學模型
本文在配電網絡的規劃數學模型的選擇上,最小的目標函數是以線路的規劃年綜合費用來充當,這其中包含了投資費用以及網損費用。電網的線路主要有主干線線、聯絡線路以及分支線路來組成。如果在進行優化時將這三者都考慮到,是非常復雜的,所以本文主要的優化對象是主干線以及聯絡線路,只將分支線路做近似考慮,就是說在總費用中只將其近似的投資費用計入。目標函數表示為,在該式中表示的是主干以及聯絡線路投資,表示的是主干線路的網損,表示的是分支線路的近似投資。在這其中,又可得:(1)其中是變電站低壓側線路的折舊年限,是貼現率,是單位長度的線路投資費用,N是變電站的總數,是第i座變電站的第j條主要干線長度,是第 個變電站的所出路線總數,K是本組模型的聯絡線路的總數,是第條聯絡線路的長度。(2),φ,b表示線路的網損折算系數,表示單位電能損耗折價系數,表示線路的單位長度電阻,表示線路年損耗的小時數,表示功率因數,U表示變電的壓低壓側線路的線電壓,表示第j條主干線帶的負荷。(3)其中,表示單位長度的分支線路投資,表示分布于第i座變電站第j條主干線路的垂直分支路長度的總和,q表示的是分支線路的曲折系數。
三、智能規劃方法
1、基礎數據
在供電模型的基礎上進行布線規劃時,主要需要變電站的位置、容量以及供電范圍和負荷點的位置以及負荷值,還有配電網絡的地理信息等基礎數據。
2、構建優化模型
2.1 構建輻射線路
在對輻射線路進行構建時,采用的方法是備選路徑集方法。本文采用的是蟻群算法來對備選路徑集進行建立,因為它的性能更優秀。圖2為蟻群算法的流程圖。
2.2 構建聯絡線路
在將輻射線路進行構建后,聯絡線路包含了站間聯絡、站內聯絡,這些都產生于輻射線路的末端。并且,聯絡線路通常都選用的是輻射線路末端節點間的最小路徑,所以可以應用Floyd最短路徑算法的來實現聯絡線路的構建。
2.3 主干線路的供電范圍
在形成了變電站的主干線后,就要對每條主干線路的帶負荷情況進行確定,也就是主干線路的供電范圍,在進行確定時的方法是先將每條主干線路的負載余量進行計算,之后選擇任意一個負荷點,從近到遠的搜索最短的路徑。此方法能夠搜索出所有的負荷點,就可以對每條線路的主干線的供電范圍進行確定。
2.4 構建優化模型
本文采用的主要優化手段是遺傳算法,所以在構建優化模型時,主要的工作是對主干以及聯絡線路的染色體進行建立。生成染色體的初始種群過程為對每個變電站,以每個變電站為中心將其供電范圍近似為一個圓,然后做圓的N等分線,等分線數目等于主干線路的數目。接著隨機選擇來自于等分線末端的任一領域內的一個街道分段點來作為主干線路的末端節點,這樣就形成了一個末端節點的集合,因為隨機選擇所以此集合的組合方式有很多的方式,并且隨著圓的等分線進行轉動,其對應的轉動角會有不同的組合方式。
3、適應度計算
一個染色體代表的是一個供電模型的規劃方案,在這里適應度就代表的是上述的總目標函數。
4、遺傳模擬退火操作
模擬退火操作的對象是遺傳種群中的所有染色體,隨機選擇其鄰域的一種狀態,然后對其進行模擬退火的接受概率接受或是拒絕的過程。本文構建的染色體代表其中的某一主干線路,對和它有一樣末端節點進行選擇,并且選擇之前的K條最短路以外的備選路徑集中的隨便一條線路來作為領域的狀態,并按照下文的接受概率進行接受或拒絕過程。接受概率公式:,其中代表新狀態的評價值,第k代的溫度,代表原狀態評價值。通過這個過程能夠得到新的染色體種群,之后對其做遺傳操作,一直循環一直到能夠滿足終止的條件。
結束語
在過去,先進行輻射線路的布局,之后進行聯絡線路的優化是帶聯絡線路的配電網主要的布線方法,但這種方法具有局限性。本文對基于三角形單聯絡模型的中壓配電網進行智能規劃時,構建了主干以及聯絡線路的整體優化模型,并對其布線的方案進行了優化,這就使得優化的全局性得到了優化,優化的方法的是以優化模型中的染色體的構成特點為依據,并在遺傳算法中引入了模擬退火思想,這樣做的優點是可以克服算法過早收斂的問題,能有效的進行優化。
參考文獻
篇7
關鍵詞:蟻群算法;物流配送;路徑優化;數學模型
DOIDOI:10.11907/rjdk.161974
中圖分類號:TP319
文獻標識碼:A 文章編號文章編號:16727800(2016)011014004
基金項目基金項目:
作者簡介作者簡介:袁文濤(1993-)男,安徽馬鞍山人,上海理工大學光電信息與計算機工程學院碩士研究生,研究方向為模式識別與智能系統;孫紅(1964-)女,上海人,上海理工大學光電信息與計算機工程學院副教授、碩士生導師,研究方向為模式識別與智能系統、 控制理論與控制工程、企業信息化系統與工程。
0 引言
解決組合優化問題的最優化求解算法有多種現代人工智能算法方案,優化算法用來處理問題最優解的求解,該問題通常由多個變量共同決定。當前,求解最短路徑問題是圖論研究中的一個典型求解組合優化算法問題,旨在尋找圖表(由節點和路徑構成)中兩節點或多節點之間的最短路徑。常用的最優化路徑求解方法有Bellman-Ford算法、Dijkstra算法、A*算法和蟻群算法。這些算法都有自身的優點和不足。在對不同算法作出比較后,可以得出蟻群算法在解決網絡路由和城市交通系統的問題中是相對有利的。
就目前研究來看,隨著實際組合問題的變化,基本的智能算法已經不能滿足解決這類組合優化問題,同時其優勢也在減弱[1]。本文采取改進后的組合優化蟻群算法以彌補傳統蟻群算法易陷入局部最優解的不足,加快了求全局最優解的構造速率。
蟻群算法(Ant Colony Optimization, ACO),是一種模擬螞蟻群體智能行為的進化仿生類優化算法,在求解性能上具有強魯棒性、優良的分布式計算能力、便于與其它算法相結合等優點[2-3]。通常作為一種用來在多變量組合優化問題的多候選解中尋找最優化路徑的機率型算法。它由Marco Dorigo于1992年在其博士論文《Ant system: optimization by a colony of cooperating agents》中首先提出,其靈感來源于通過對蟻群社會的長期跟蹤觀察后發現,雖然單個螞蟻沒有視力、智慧程度低、工作方式簡單,但它們卻有強大的執行能力和協同工作能力,依靠復雜群體的自組織協同能力發揮出超出單個個體累加的智能,是一種超個體(superorganism,又稱超有機體)存在現象。蟻群是在這樣的超個體案例中最有名的例子。雖然蟻群算法的嚴格理論基礎和實際應用尚未成熟,國內外相關研究暫處于實驗階段,但這并不妨礙人們對蟻群算法的研究已經由當初單一的解決商旅問題(TSP)發展到解決調度問題、網絡通信等多個方向的最優化求解應用。
目前,蟻群優化算法已廣泛應用于多種求組合最優化問題,在面臨路例如作業安排調度問題和路由車輛的二次分派問題上表現出了良好的性能,也經常被用來求旅行推銷員問題的擬最優解。它在圖表動態變化情況問題的求解上相比螢火蟲算法和遺傳算法具有絕對優勢:蟻群算法的最大優點在于可以連續運行并適應實時變化;缺陷是在處理較大規模和復雜數據問題時,容易存在運算耗時長、收斂速度慢、得不到全局最優解等問題。
在求最優解的歷次迭代中,單個螞蟻會根據給定的規則和限定條件選擇從一個城市(節點)轉移到另一個城市(節點):它必須對所有城市訪問一次,而相對距離越遠的城市被選中為下一個訪問點的機會越少(能見度低);相反,在兩個城市(節點)邊際的一邊形成的信息素越濃烈,則該邊際作為路徑被選擇的概率越大;在較短路程情況下,短時間內更多螞蟻會在所有走過的路徑上留下更多信息素,在每次迭代更新后,信息素軌跡濃度會按百分比揮發從而反饋給下一只途經的螞蟻并影響它作出路徑選擇。
1 車輛路徑問題
傳統的車輛路徑問題也叫VRP(Vehicle Routing Problem)問題,是關系到現代物聯網發展過程中物流配送系統的一個關鍵問題,屬于NP難題。一直以來,該問題也是管理科學和物流運輸方面的重要課題[4],受到國內外學者的廣泛關注。
VRP問題描述如下:在一些由于經濟或者地理限定的條件約束下,組織一個車隊,從一個或者多個初始點出發,規定達到多個不同的地點,設計一個成本最小、路程最短的路線集,使得:① 每個城市只能被一輛車訪問,只訪問一次;②所有送貨車輛必須從起始點出發再回到起始點;③某些特定的約束條件需要被滿足。
VRP的數學模型表示如下:一共有k個客戶,第i個客戶的貨物需求為gi,配送中心派出車輛承擔運輸任務,其載重為q。設gi
如果前提有約束條件用于車輛本身,即容量限制和總長限制,則稱為有能力約束的車輛路徑問題(Capacitated Vehicle Routing Problem)。此模型是車輛路徑問題的基本模型,這類VRP問題叫作CVRP問題[5]。
設每個客戶點只允許被訪問一次,車輛所訪問的客戶點的需求總和不能超過車輛的負載能力,且總行駛的路程也不得超過其最大的行駛距離,達到用最少的車輛最短的路徑完成既定任務。
。
2 可約束蟻群算法實現
2.1 算法實現方式
當前蟻群算法領域存在MPDACO局部更新和MPDACO全局更新兩種方式。前者指當單個螞蟻從一個節點到達下一個節點完成轉移后就立刻更新螞蟻通過路徑時所留下的的信息素,后者是當螞蟻遍歷完所有給定節點后再更新整條路徑上的信息素,不再是對所有的螞蟻,而是僅對全局最優的螞蟻得到的路徑使用。從兩種更新方式得到的結果作對比可以得出,全局信息素更新方法雖然可以加快收斂速率,但是存在著一定的缺陷和不足,易使路徑更快地集中于單一解,易陷入局部最優,這些缺點限制了它的廣泛傳播及應用。
本文綜合上述兩種更新方法的優點和不足,列出了一種新的組合疊加更新方法:在路徑搜索的前十次循環中,采用局部最優解更新,十次固定循環結束后,再采用全局最優解進行更新,這種更新方式可以有效避免蟻群搜索得到的路徑沉入局部最優解中,有利于發現更多較優解。
2.2 算法實現步驟
根據改進的蟻群算法,將優化后的蟻群算法應用于CVRP問題的實現步驟如下:
(1)參數初始化。設迭代次數 Nc=0;每條路徑上的信息素濃度Δτij(0)=c(c為常數),并且Δτij=0;隨機將m個螞蟻放置到初始點上。
(2)更新迭代(循環)次數,即Nc=Nc+1。
(3)初始化禁忌表,螞蟻禁忌表的索引號k=1。
(4)更新螞蟻數目k=k+1。
(5)判斷路徑是否在搜索熱區內。按照式(a)~(f)計算出每只螞蟻應當轉移至下一個城市(節點)的概率并完成移動。
(6)當螞蟻從i城市(節點)出發到達j城市(節點)時,對其所經過的路徑上的信息素進行更新,并修改禁忌表,將禁忌表指針按照當前狀況進行修改,即將新城市(節點)j置于禁忌表tabuk中。
(7)執行步驟(b)~(f),直到所有螞蟻都找到了一條包含所有城市(節點)的可行路徑解。
(8)在新生成的所有可行解中找到一條最短路徑作為本次迭代中的最優路徑解。
(9)判斷循環次數是否小于十次,若小于十次,則對螞蟻找到的最優路徑按照本次迭代最優值進行信息素更新;若循環次數超過十次,則按照全局信息素進行更新。
(10)對所有螞蟻經過的路徑,按式(1)進行一次全局更新。
(11)循環執行(b)~(j),直到連續多次的迭代中得到的解已收斂或循環次數Nc的值已經達到給定的最大迭代次數的情況下選取當前輸出值作為本次最優解。
3 實驗仿真
設存在一個物流中心有4輛運輸車, 單輛車最大載重為1 000kg, 現需要同時向7個隨機分布的客戶點派送貨物, 蟻群算法的初始化參數為: 螞蟻總數為20只, 算法的最大迭代數為100次, α和β分別為1,2, 信息素的揮發速度為0.75, 實驗重復運行100次, 求得的平均結果為最終結果。同時初始時刻各邊上的信息痕跡為1,殘留信息的相對重要度為1,設置預見度為5。原始數據進行處理結果分析如圖3所示。按本文提出的優化蟻群算法求解CVRP后的處理仿真結果如圖4所示。
觀測圖3、圖4的收斂曲線,可以知道蟻群算法優化后的結果相比之前的行車路徑有大幅度優化[810],如圖5所示。針對每個收斂的點結合數據可以看出,傳統蟻群算法的平均路徑在迭代次數為45時可以得到最優解,而改進后的蟻群算法可以在第5次左右得到最優解,相當于收斂速度提高了近80%。
4 結語
在當今應用數學和理論計算機科學的領域中,組合優化(Combinatorial Optimization)是在一個有限的對象集中找出最優對象的一類重要課題,屬于運籌學的一個重要分支。在很多組合優化問題中,窮舉搜索/枚舉法是不可行的。組合優化問題的特征為可行解的集是離散或者可以簡化到離散的,并且目標是找到最優解。解決組合優化問題一般采用智能算法,而這些算法都有自身的優點和缺點。組合優化的難處,主要是加進來拓撲分析,在不同的拓撲形態下,算法也需隨著不同部分的約束關系作出相應調整。從目前研究來看,隨著實際組合問題的變化,基本的智能算法已不能解決這類組合優化問題。
蟻群算法作為一種仿生類進化算法在求路徑最優化解方面具有很好的效果。本文首先引出蟻群算法可以用于解決這一類問題,然后介紹了約束車輛路徑問題,也即CVRP問題,說明了其約束模型;接著研究了基本的蟻群算法步驟,并對其中信息素更新和改進了啟發因子,解析并改良了蟻群算法應用于CVRP問題的實現步驟和處理方法。
本文提出的組合疊加更新方法可有效克服傳統蟻群算法收斂質量低、耗時長、易陷入局部最優解等缺陷,使蟻群算法的全局優化能力得到大幅度提高。對比實驗前數據可以看出,蟻群算法找到最短路徑的收斂速度比傳統方法快了80%左右,確實是一種求解最短物流配送路徑的有效算法。
參考文獻:
[1] 陳昌敏.基于蟻群算法的物流配送路徑優化研究與應用[D].成都:西華大學,2012(4):1154.
[2] 宋留勇,王銳,周永旺,等.動態城市交通網絡優化模型研究及算法設計[J].測繪科學,2011,36(1):134136.
[3] 鐘石泉,賀國光.有時間窗約束車輛調度優化的一種禁忌算法[J].系統工程理論方法應用,2005,14(6):523527.
[4] CHAO YIMING.A tabu search method for the truck and trailer routing problem[J].Computer and Operations Research,2002,29(1):3351.
[5] 楊中秋,張延華.改進蟻群算法在交通系統最短路徑問題的研究[J].科學計算與信息處理,2009,32(8):7678.
[6] 李松,劉興,李瑞彩.基于混合禁忌搜索算法的物流配送路徑優化問題研究[J].鐵道運輸與經濟, 2007, 29(3):66 69.
[7] 陶波, 朱玉琴.改進的7動態規劃法在車輛最短路徑問題中的應用[J].重慶工學院學報, 2009,23(1):2427.
[8] 李軍,郭耀煌.物流配送車輛優化調度理論與方法[M].北京:中國物資出版社, 2001:101113.
[9] 張萬旭,林健良,楊曉偉.改進的最大最小螞蟻算法在有時間窗車輛路徑問題中的應用[J].計算機集成制造系統,2005,11(4):572576.
[10] 余h,胡宏智.基于改進遺傳算法的物流配送路徑求解[J].計算機技術與發展,2009,19(3):5255.
[11] 朱慶保,蟻群優化算法的收斂性分析[J]. 控制與決策,2006,21(7):3016.
[12] 鄭松,侯迪波,周澤魁,動態調整選擇策略的改進蟻群算法[J].控制與決策,2008,23(2):13.
[13] 夏亞梅,程渤,陳俊亮,等.基于改進蟻群算法的服務組合優化[J].計算機學報,2012,35(2):311.
篇8
關鍵詞:群體算法;模糊聚類;預測模型;預測
中圖分類號:TP301文獻標識碼:A
1前言
電力負荷預測是電力系統調度和計劃部門安排購電計劃和制定運行方式的基礎,它對于電力系統規劃、運行與控制有著重要的意義。為了提高電網運行的安全性和經濟性,改善供電質量,負荷預測需要盡可能高的預測精度。隨著分時電價的市場化營運,精度高、速度快的預測理論和方法愈顯重要和迫切。
負荷預測已有很長的研究歷史。早期的方法以時間序列法、回歸分析法為主[1],這類方法計算量小,速度較快,但由于模型過于簡單而無法模擬復雜多變的電力負荷。近年來,隨著人工智能技術的迅猛發展,灰色理論法[2]、神經網絡法[3]、相似日聚類[4],模糊聚類[5]在負荷預測領域得到廣泛應用。它們較以前的方法更能處理負荷和影響因素之間的非線形關系,因而得到了較高的預測精度。但他們有各自的缺點,灰色預測模型從理論上講可以適用于任何非線性變化的負荷指標預測,但其微分方程指數解比較適合于具有指數增長趨勢的負荷指標,對于具有其他趨勢的指標,則擬合灰度大,精度難以提高。利用神經網絡進行電力負荷預測時,神經網絡可以通過學習,從復雜的樣本數據中擬合出輸入輸出之間高維、非線性的映射關系,從而進行較高精度的預測。但是,電力負荷受到多種因素的影響,電力負荷曲線的變化形態差異較大。
目前,針對電力負荷預測較好的方法是采用組合式預測模型-FCBP模型[6]。其原理是這樣的:首先,采用模糊聚類分析方法,以每天的負荷數據、天氣數據以及天類別數據為指標,將歷史數據分成若干類別;然后對每一類別建立相應的神經網絡預測模型;預測時找出與預測天相符的預測類別,利用相應的神經網絡預測模型進行電力負荷預測,實踐證明這種方法是有效的。
但是傳統的模糊聚類算法有易陷入局部最優解,處理大量、高維的數據時,在時間性能上難以令人滿意的缺陷。蟻群算法是最近幾年才提出的一種新型的模擬進化算法,由意大利學者Dorigo,M[7]等人首先提出,用蟻群在搜索食物源的過程中所體現出來的尋優能力來解決一些離散系統優化中困難問題。已經用該方法求解了旅行商問題、指派問題、調度問題等,取得了一系列較好的實驗結果。本文將蟻群算法引入此模型,用蟻群算法改進模糊聚類,并和神經網絡組合,得到新型預測模型-AFCBP模型,經實驗證明得到良好效果。
2理論分析
2.1蟻群算法優化理論
經過大量研究發現,螞蟻個體之間是通過一種稱之為外激素的物質進行信息傳遞,從而能相互協作,完成復雜的任務。螞蟻在運動過程中,能夠在它所經過的路徑上留下該種物質,而且螞蟻在運動過程中能夠感知這種物質的存在及其強度,并以此指導自己的運動方向,螞蟻傾向于朝著該物質強度高的方向移動。因此,由大量螞蟻組成的蟻群的集體行為便表現出一種信息正反饋現象:某一路徑上走過的螞蟻越多,則后來者選擇該路徑的概率就越大。螞蟻個體之間就是通過這種信息的交流達到搜索食物的目的。
以TSP問題為例說明基本蟻群算法的框架,設有m個城市,dij(i,j=1,2,…,n)表示城市i和j間的距離,τij(t)表示在t時刻城市i和j之間的信息量,用它模擬實際螞蟻的外激素。設共有m只螞蟻,用 表示在t時刻螞蟻k由城市i轉移到城市j的概率:
其中,U為螞蟻已經搜索過的部分路徑,S表示螞蟻k下一步允許走過的城市的集合,a表示路徑上的信息量對螞蟻選擇路徑所起的作用大小, 表示為由城市i轉移到城市j的期望程度,例如,可以取 。當a=0時,算法就是傳統的貪心算法;而當b=0時,就成了純粹的正反饋的啟發式算法。經過n個時刻,螞蟻可走完所有的城市,完成一次循環。每只螞蟻所走過的路徑就是一個解,此時,要根據下式對各路徑上信息量作更新:
其中,Q為常數,Lk為螞蟻k在本次循環中所走路徑的長度。在經過若干次循環以后,可以根據適當的停止條件來結束計算。
由上述可知,蟻群算法的優化過程的本質在于:1) 選擇機制,信息量越大的路徑,被選擇的概率越大;2) 更新機制,路徑上面的信息量會隨螞蟻的經過而增長,而且同時也隨時間的推移逐漸減小;3) 協調機制,螞蟻之間實際上是通過信息量來互相通訊、協同工作的,這樣的機制使得蟻群算法具有很強的發現較好解能力。
2.2模糊聚類基本原理
聚類分析算法可以描述為:給定m維空間R中的n個向量,把每個向量歸屬到m個聚類中的某一個,使得每一個向量與其聚類中心的距離最小。經常用的基于劃分的聚類算法是c-均值算法,它把n個向量 (i= 1,2,…,n)分成m個類 (i=1,2,…,m),并求每類的聚類中心,使得非相似性(或距離)指標的目標函數達到最小。當選擇第i個類 中向量 與相應的聚類中心 間的度量為歐基里德距離時,目標函數定義為:
這里p是循環計算的次數, 是類 內的目標函數, 表明參數確定屬于哪個簇團。顯然 的大小取決于聚類中心 和 的形狀, 越小,表明聚類的效果越好。
c-均值算法的隸屬度要么是1,要么是0,這種硬性的劃分數據點屬于某一類團不能反映數據點與簇團中心的實際關系。為了處理這個問題,人們引入了模糊集的概念。自1969年Ruspini首先提出第一個解析的模糊聚類算法以來,已經有很多人提出了許多的模糊聚類算法。基于模糊劃分的模糊聚類算法,其主要思想是將經典劃分的定義模糊化,可以認為數據點以某種隸屬度屬于一個簇團,又以某種隸屬度屬于其它簇團。
在眾多的模糊聚類算法中,應用最廣泛而且較成功的是1974年由Dunn提出并由Bezdek加以推廣的模糊C-均值(fuzzy C-means,簡稱FCM)算法。同樣,FCM算法是把n個向量 (I=1,2,…,n)分成m個模糊簇團 ,并求得每個簇團的聚類中心,使目標函數達到最小,FCM的目標函數定義為:
由于多約束優化問題的求解是一個NPC問題,常用的求解方法是分別對U和C進行偏優化的Fk-prototypes 算法[8],主要思想是:(1)先選擇C的一個初始值,找到使 最小的U值;(2)然后固定U找到使 最小的C;(3)優化過程交替進行,直到前后目標函數的差值與目標函數的比小于ε為止。
這一算法的缺陷在于需要賦予不同的c值進行多次重復計算,且結果通常是局部最優解,同時運算時間是很大的,因為一次矩陣乘法所需要的時間為O(n3),實現算法的第一步的時間復雜度就達到O(n4logn)。
2.3用蟻群算法改進模糊聚類
提高模糊聚類計算速度的關鍵之一是隸屬度矩陣的初始點的選取,如果能開始就得到每個參數點歸于每個簇團的隸屬度近似結果,那么將較大的改進模糊聚算法的速度,蟻群算法就可以實現這以功能。
其基本思想是將數據視為具有不同屬性的螞蟻,聚類中心看作是螞蟻所要尋找的“食物源”[9],所以數據聚類就看作是螞蟻尋找食物源的過程。具體過程如下:每只螞蟻從各個聚類中心出發,在整個解空間中搜索到下一個樣本點后;再從聚類中心出發,在整個解空間中搜索到另一個樣本點,當搜索到樣本點達到該聚類原來的樣本點總數后,就認為螞蟻完成了一個路徑的搜索。為使螞蟻在同一路徑的搜索中不重復搜索同一個樣本點,給每只螞蟻設置禁忌表tabu(N)。規定:如果tabu(j)為1,則結點j是可以選擇的搜索樣本點,當螞蟻選擇了結點j后,就將tabu(j)置為0,此時螞蟻就不能選擇結點。
設 是待進行聚類分析的數據集合,τij(t)表示在t時刻數據 和 之間的信息量。當所有螞蟻都完成了一次路徑搜索后,稱算法進行了一個搜索周期。第t個搜索周期內,路徑選擇概率:
其中 ,其他參數和上面說明一致。在i值確定下,從j=1到m,分析 ,找到最大值后,則 歸并到到 領域。令 , 表示所有歸并到 的數據集合,求出聚類中心當蟻群完成一個搜索周期后,根據 就得到了每個參數點歸于某簇團的可能性,從而得到了模糊聚類隸屬度矩陣的大體準確的初始值,并用 作為模糊聚類的初始中心。
由于蟻群算法本身也有一定的計算量,不宜在每次模糊聚類循環中使用蟻群算法,選用蟻群算法的策略是這樣的:首先在步驟1的初始幾個循環選用蟻群算法和確定初始值 (本文設為4個)和聚類的中心 ,然后根據公式4和5,模糊聚類自己循環迭代,當優化過程趨緩時,再采用一到兩次蟻群算法進行優化,一直得到小于ε的結果為止。
2.4根據聚類結果建立神經網絡預測模型
由于電力系統由各種因素強烈影響,存在著大量的非線性關系。其發展規律很難用一個顯式的數學公式表示,許多文獻利用神經網絡對復雜非線性擬合能力的優點,構造預測模型。文獻[6]采用了3層BP網絡建立預測模型,文獻[10]采用了徑向基函數神經網絡對電力負荷進行預測。本文經過比較和分析,發現采用MATLAB提供的動量BP神經網絡計算結果比較好。由此,將歷史數據聚成簇團以后,采用動量BP神經網絡構造預測模型,此組合模型也稱之為AFCBP模型。進行預測時,首先逐一計算預測天與各聚類中心的歐基里德距離,以距離最短的類別作為預測天的類別,再利用相應AFCBP模型進行預測。
3實際應用
3.1聚類分析
本文以某地區一年的電力負荷變化數據為對象進行實例分析, 把全年的366條負荷曲線的樣本的負荷曲線作為測試樣本以后,進行聚類分析。每一樣本 由29個數據組成即為第i天最高溫度和最低溫度為對第i+1天的最高溫度和最低溫度的預報值為第i+1天的天類別值。
在采用蟻群算法優化(用 表示)的模糊聚類算法時,計算 的參數設為:ρ=0.7,a=1,b=1,η=1,ε=0.01, τij(0)=0。
3.2預測實例
采用上述方法建立預測模型以后,首先對負荷進行負荷預測。并與基于單一神經網絡的預測模型和僅用模糊聚類的組合模型進行比較。這里用于對比的基于單一神經網絡的預測模型采用MATLAB提供的動量BP神經網絡,網絡的樣本簡單地選取了預測天前4星期的負荷數據,統計誤差結果如表1 所示。結果表明:預測任何種類的日負荷,采用AFCBP模型和FCBP模型要遠遠好于僅采用動量BP神經網絡的預測模型,這充分說明了采用組合式神經網絡預測模型的優勢;AFCBP模型和FCBP模型在預測普通工作日的負荷都比較穩定,AFCBP模型僅比FCBP模型略好一些,這是因為聚類簇團中普通工作日樣本數據較多,兩種模型預測都比較好;在預測雙休日和節假日時,AFCBP模型具有更好的預測精度,這是因為AFCBP模型聚類的效果更細致、更準確的結果。
然后分析兩種模型對夏季典型日負荷預測的結果。如圖1所示,可以發現采用AFCBP預測模型整體上要比FCBP預測模型效果要好,尤其在邊緣點和變化劇烈區域預測結果較好。平均絕對百分誤差 和最大絕對百分誤差 的數值也反映了這一點。
圖1:典型負荷預測結果比較
4結論
本文把蟻群算法和c-means算法相結合,把螞蟻k由城市i轉移到城市j的概率 作為隸屬度矩陣的初值,計算出的中心作為FCM的初始中心,對模糊聚類進行改進,得到較好結果,并以每天的24 點負荷數據、天氣數據以及天類別數據為指標,用改進后模糊聚類把歷史數據聚分成若干簇團;然后,采用動量BP神經網絡針對每一簇團建立相應的預測模型。對山東地區1年的實際負荷變化數據進行預測分析的結果表明,該模型不僅對普通工作日有較高的預測精度,對雙休日、節假日和一些特殊情況(夏季典型日負荷)也有較好的預測精度。
參考文獻:
[1] 周繼薌. 實用回歸分析[M]. 上海: 上海科學技術出版社,1990.
[2] Burke J J , et al . Power quality-two different perspectives [J]. IEEE Transaction on Power Delivery, 1990,(3).
[3] Verdelho P , et al . An active filter and unbalanced current compensator [J]. IEEE Transaction on Power Electronics , 1997(3).
[4] Gerbec D,Gasperic S,Smon I et al. An approach to customers daily load profile determination [C]. IEEE Power Engineering Society Summer Meeting,Chicago,IL USA,2002(1).
[5] Papadakis S E,Theocharis J B,Bakirtzis A G.A load curve based fuzzy modeling technique for short-term load forecasting.[J] Fuzzy Sets and Systems, 2003(2).
[6] 陳耀武, 汪樂宇, 龍洪玉等. 基于組合式神經網絡的電力負荷預測模型[J]. 中國電機工程學報,2001(4).
[7] Dorigo, M., Maniezzo, V., Colorni, A., 1996. Ant system: optimizationby a colony of cooperating agents. IEEE Trans. Syst. Man Cybernet. B (1).
[8] 陳寧, 陳安, 周龍驤. 數值型和分類型混合數據的模糊K-Prototypes聚類算法[J]. 軟件學報, 2001(8).
篇9
【關鍵詞】 TSP問題 數學模型 智能優化算法
隨著我國經濟的持續快速發展,人們對交通運輸的各種需求也顯著增長。從1999年到2010年,我國公路總長度從130萬公里上升到370萬公里,增長幅度為185%,同期我國注冊的車輛數量由1500萬輛上升到8000萬輛,增長幅度為433%,明顯高于中國公路總長的增長幅度。由于車輛數量的激增,導致城市交通擁堵嚴重,交通事故頻發,物流成本居高不下,物流時效性也無法得到保證。我國物流成本占GDP的比重持續偏高,約為20%,遠高于發達國家物流成本占GDP的比重10%,以及中等發達國家的16%。而城市閑置土地資源的緊缺,導致修建和拓寬道路的成本越來越高,且修建和拓寬道路的速度遠遠趕不上城市車輛的增長速度,此時提高城市道路的利用率、安全性和舒適性以及降低城市物流成本就成為我們急需解決的問題。
物流配送調度系統就是針對以上問題提出的,它能提供可靠的交通信息、高效快速的應急服務,在降低物流成本方面有著顯著的成效,能滿足現代物流經濟性、準時性和靈活性的多種需求。迄今為止,國外研究物流配送調度系統的理論和算法已經不少,并且在實際應用方面取得顯著的成果,如美國IBM基于最短路徑法和啟發式算法研究出來的VSPX系統,日本富士通以節約法為核心研發出來的VSS系統,以及美國美孚以掃描法為核心研究出來的HPCAD系統。但是國內在這方面的研究僅停滯于初步理論階段,在開發實用的物流配送調度系統方面還是一片空白。造成這種現象的根本原因在于大部分算法只考慮了TSP(Traveling salesman problem)問題的部分約束條件,且設置了許多假設條件,限制了他們的應用范圍,在實際應用中缺乏靈活性。由于研發物流配送調度系統的核心在于解決貼合實際的TSP問題,因此研究可以妥善解決TSP問題的算法,并在此基礎上開發出智能的物流配送調度系統具有現實的理論意義和實踐意義。
一、TSP問題
1、TSP問題的簡介
TSP問題也稱旅行推銷員問題、貨郎擔問題,是經典的組合優化問題,最早的記錄來自于1759年歐拉研究的騎士周游問題,即對象棋中的64個方格,走訪每個方格有且僅有一次。TSP問題的歷史可以分成以下幾個階段:1800―1900年,首次描述TSP問題;1920―1930年,TSP問題得到較好的定義;1940―1950年,研究人員意識到TSP問題是個難題;1954年,42個城市的TSP問題求得最優解;1980年,Crowder和Padberg求解了318個城市的問題;1987年,Padberg和Rinaldi求解了2392個城市的問題;1992年,美國Rice大學的CRPC研究小組解決了3038個城市的問題;1994年,Applegate、Bixby和Chvatal等人解決了7393個城市的問題;1998年,CRPC研究解決了美國13509個城市組成的TSP問題;2003年,Hisao Tamaki發現了TSPLIB中pla33810的一個次優解;2004年,Keld Helsguan 發現了pla85900問題的一個次優解。
2、TSP問題的數學模型
二、求解TSP問題的各種解法
目前求解TSP問題的主要方法主要分兩類:精確求解算法和近似求解算法。
精確求解算法通過搜索整個問題的全部解空間,在所有解集中求得最優解。精確求解算法包括整數規劃法、動態規劃法、分支定界算法等,這類算法雖然可以得到精確解,但由于過大的搜索空間范圍導致計算時間過長,計算效率非常低下,很少用于實際應用。最早用于解決TSP問題的精確求解算法是窮舉法,思路簡單,可以直觀快速地求出少量城市點數的最優解,但是求解大規模數據集時運算量太大,運算效率不高,時間上難以承受。
近似求解法又可稱為啟發式求解算法,部分近似求解算法又被稱為智能優化算法。典型的近似算法有插入算法、r-opt算法和最近鄰算法等,這類算法雖然可以較快的計算出可行解,但是其接近最優解的程度不夠令人滿意。智能優化算法主要包括神經網絡算法、遺傳算法、禁忌搜索算法、模擬退火法、粒子群算法和蟻群算法等,是近幾年來非常活躍的研究領域,它是利用仿生學的原理,讓算法在計算過程中不斷自我調整,使之具備自適應能力。智能優化算法雖然不能在有限的時間內獲得最優解,但其接近最優解的程度是非常可喜的。
求解TSP問題的算法很多,要評價和比較各種算法的優劣,必須有一個綜合的性能評價標準,TSP算法的綜合性能評價標準包括:算法求解的精確程度,即接近最優解的程度;求解算法的復雜度,包括時間的復雜度和空間的復雜度;求解算法的適應性,即算法在各個領域的通用程度;求解算法的嚴密性,即保證求解算法充分的理論基礎。
綜合比較,智能優化算法是一類綜合性能比較強的TSP算法,也是目前最適合用于開發物流配送調度系統的算法,本文將對幾種智能優化算法進行詳細說明。
1、神經網絡算法
人工神經網絡(Artificial Neural Network,簡稱ANN),又名神經網絡(Neural Network,簡稱NN),是一種通過模擬動物神經網絡的特點進行數據分析的方法。1985年,Hopfield和Tank首次將這種算法應用于求解TSP問題。它的主要思想是用能量函數替代TSP問題中的目標函數,通過能量函數確定神經元之間的相互連接權限,隨著網絡狀態的逐漸變化,當能量達到平衡時,就可以得到局部最優解。
由于神經網絡是一種數據驅動型非線性映射模型,可以實現任何復雜的因果關系映射,能夠從大量的歷史數據中進行聚類和學習,進而找到某些行為變化規律,因此可以用來處理難以用數學模型描述的系統,具有很強的并行性、自適應、聯想記憶、容錯魯棒以及任意逼近非線性等特性。目前神經網絡技術在解決TSP問題上取得了一定的成績,但是神經網絡存在嚴重缺陷,很難確定算法的參數,必須通過多次反復的數據測試才能獲得一個相對較好的參數,因此嚴重限制了神經網絡的適用范圍。
2、遺傳算法
遺傳算法是Holland于1973年首次提出的,是一種模擬生物界自然選擇和遺傳機制的隨機搜索算法。它的基本思想是將TSP問題的求解表示成“染色體”的適者生存的過程,通過“染色體”的一代代的進化,即通過選擇、交叉和變異等操作,最終得到“最適應環境”的個體,從而求得最優解或滿意解。
遺傳算法能準確模擬自然界生物進化過程中的染色體,整個遺傳過程操作簡單,在數據優化過程中不受外界條件的限制,能用簡單的計算方法實現全局解空間的搜索。但是遺傳算法中容易出現“早熟”現象,必須通過設置變異概率來控制“早熟”,高的變異率擴大了搜索空間,有利于誘導產生更加優秀的個體,但是交叉概率和變異概率過大會導致收斂速度過慢,迭代次數過大。因此實現收斂速度和最優解之間的平衡是遺傳算法的一大難點。
3、禁忌搜索算法
禁忌搜索算法是由Fred Glovert等于1986年首次提出的,是一種全局性逐步尋優的鄰域搜索算法,可以模擬人類記憶功能的尋優特征,通過局部鄰域搜索機制和相應的禁忌準則來避免重復搜索,并通過藐視準則赦免一些被禁忌的優良狀態,進而保證多樣化的有效搜索,最終實現全局優化。
在禁忌搜索算法的搜索過程中,鄰域結構、候選解、禁忌長度、禁忌對象、藐視準則、終止準則等都是影響算法性能的關鍵因素。且禁忌搜索算法對初始解和鄰域結構有較大的依賴性,由于禁忌算法串行的搜索機制,一個不理想的初始解將直接影響到搜索質量。
4、模擬退火法
現代模擬退火算法是由Kirkpatrick S等于1983年提出,是基于Mente Carlo迭代求解策略的一種隨機尋優算法。它通過模擬物理中固體物質的退火過程,結合具有概率突跳特性的Metropolis抽樣策略,在解空間中隨機尋找目標函數的全局最優解,在降溫過程中不斷重復抽樣,最終實現問題的最優解。
模擬退火算法解的優越性依賴初始溫度和退火時間,當初始溫度過低或者退火速度過快,算法將陷入局部最優解。但是如果迭代次數較高,隨著退火速度的降低將極大增加運行時間。
5、蟻群算法
蟻群算法是由意大利學者Dorigo M于1991年首次提出,是一種模擬自然界螞蟻尋找食物的過程來計算路徑的算法,通過群體間信息素的交換和相互合作尋求最優解的過程。螞蟻獨立尋找食物,在找尋食物的路程中會釋放信息素,信息素會影響隨后的螞蟻對路徑的選擇,信息素越強的路徑,越可能被螞蟻選擇。對于螞蟻算法來說,各條路徑的初始信息素相同,但是隨著時間的推移,較優路徑上的信息素會越來越多,最后實現尋求最優解或次優解的目的。
螞蟻算法中,螞蟻數量M的設置是影響算法性能的重要因素,M過小會導致未被所搜索過的路徑信息素趨向于0,全局搜索能力太差,穩定性變差。M過大會導致所有路徑上的信息素過于平均,隨機性太強,收斂速度過慢,信息正反饋能力過弱。有研究表明,M取值范圍在[0.6n,0.9n](n代表城市規模),螞蟻算法的收斂速度和接近全局最優解的能力最理想。
在螞蟻算法中,總信息量Q表示循環一周螞蟻釋放的信息素的總和,Q也同樣對螞蟻算法的性能有很大的影響。Q越大信息素增長越快,正反饋效果越好,算法收斂速度越快。研究表明,Q的取值與TSP問題的規模和路徑長度有關,在小規模的TSP問題中,Q一般取100。
螞蟻算法具有正反饋、并發性、較強的魯棒性、易于其他算法相結合等優點,但是螞蟻算法易出現停滯現象。
【參考文獻】
[1] 國家發展和改革委員會經濟運行調節局、南開大學現代物流研究中心:中國現代物流發展報告(2010)[M].中國物資出版社,2010.
[2] 唐納德, J.鮑爾索科斯、戴維J.克勞斯:物流管理[M].機械工業出版社,1999.
篇10
【關鍵詞】計算機智能 群體智能 算法
計算機技術不斷發展,算法技術也在不斷更新。群體智能(Swarm Intelligent,SI)算法始于20世紀90年代初,主要是受自然界生物群體智能現象的啟發,通過模仿社會性動物的行為,而提出的一種隨機優化算法。群體智能是基于種群行為對給定的目標進行尋優的啟發式搜索算法,其的核心是由眾多簡單個體組成的群體能夠通過相互之間的簡單合作來實現某一較復雜的功能。所以群體智能可以在沒有集中控制并且缺少全局信息和模型的前提下,為尋找復雜的分布式問題的解決方案提供了基礎。
1 傳統群體智能算法
1.1 蟻群算法(ACO)
1991年意大利學者Dorigo M等受到自然界中蟻群覓食行為啟發而提出了蟻群算法(Ant Colony Optimization,ACO)。蟻群算法的基本理念是蟻群生物性的利用最短路徑的根據局部信息調整路徑上的信息素找尋的特征,這個算法的優勢非常的明顯,而且具有較為突出的應用性,在這個過程中螞蟻可以逐步地構造問題的可行解,在解的構造期間,每只螞蟻可以使用概率方式向下一個節點跳轉,而且由于這個節點是具有較強信息素和較高啟發式因子的方向,直至無法進一步移動。此時,螞蟻所走路徑對應于待求解問題的一個可行解。蟻群算法目前已成功地用于解決旅行商TSP問題、數據挖掘、二次指派問題、網絡路由優化、機器人路徑規劃、圖著色、物流配送車輛調度、PID控制參數優化及無線傳感器網絡等問題。
1.2 人工魚群算法(AFO)
2002年由我國的李曉磊等受魚群運動行為的啟發而提出了人工魚群算法(Artificial Fish-Swarm Algorithm,AFSA)。人工魚群算法的思想主要是利用魚個體的四種行為(覓食、聚群、追尾和隨機)的特征,通過技術應用將人工魚隨機地分布于解空間中,解空間中包含著若干局部最優值和一個全局最優值。在進行應用時,可以有效的利用相關特點進行,特別是應用的尋優期間,每次迭代執行完,人工魚都將對比自身狀態和公告板狀態,如自身具有優勢,則更新公告板狀態,確保公告板為最優狀態。 人工魚群算法已在參數估計、組合優化、前向神經網絡優化、電力系統無功優化、輸電網規劃、邊坡穩定、非線性方程求解等方面得到應用,且取得了較好的效果。
1.3 蜂群算法(ABC)
人工蜂群算法(ABC)是一種非數值優化計算方法。人工蜂群算法的思想是:將虛擬蜜蜂群初始時隨機分布在解空間中,將食物源的位置抽象成解空間中的點(可行解)。蜂群算法由3個基本要素構成:蜜源、采蜜蜂和待工蜂。在蜜蜂與外部環境的交流中蜜蜂通過自身的反應閥值(threshold)和外界的激勵信號(stimulation)來自行安排工作。
1.4 粒子群算法(PSO)
PSO(粒子群算法)是一種新興的基于群體智能的啟發式全局搜索算法,具有易理解、易實現、全局搜索能力強等特點。粒子群算法模擬鳥群的捕食行為,通過群聚而有效的覓食和逃避追捕。在鳥群的捕食過程中,個體之間存在著信息的交換與協作,整個群體中信息是共享,每個個體的行為是建立在群體行為的基礎之上。可以設想這樣一個場景:一群鳥在隨機搜索食物,每只鳥在初始狀態下處于隨機位置,且朝各個方向隨機飛行,在這個區域里只有一塊食物,所有的鳥都不知道食物在那里,但隨著時間推移,處于隨機狀態的鳥通過搜尋目前離食物最近的鳥的周圍區域,聚集成一個個小的群落,并最終將整個群落聚集在食源的位置。受到這種模型的啟示,在PSO算法中,優化問題的解都是被稱為“粒子”。通過類似于鳥群捕食的方式,追隨當前的最優粒子在解空間中搜索,并最終找到最優解。
2 混合群體智能優化方法
2.1 基于PSO的混合優化算法
傳統的粒子群算法在低維空間上,可以快速高效尋找最優解,但隨著函數維數的增加,容易陷入局部極值,導致收斂精度低。而混合粒子群算法是在標準粒子群算法中加入進化算法,保證了群體的多樣性,快速收斂效果和避免陷入局部極值的能力。混合粒子群算法利用選擇機制改進的算法將每個個體的適應度,并與幾個其它個體進行比較,記下最差的一個點,通過這種方式排序之后,最高的得分出現在群體最前面,逐步淘汰掉較差的區域,因此可以更加合理地分配有限的資源。在雜交算子改進的PSO中,將粒子群算法與雜交算子的結合,在該種算法運行過程中根據適應度的大小,粒子之間可以兩兩雜交,這個雜交概率是隨機的。經過雜交操作,將隨機產生粒子的最新位置。這種雜交操作只改變了粒子的方向,而沒有改變粒子的數量,保證群體的多樣性,避免陷入局部極值。因此應用了雜交算子的粒子群算法比傳統粒子群算法效率更高。
2.2 基于BFO的混合優化算法
BFO(細菌覓食算法)來源于細菌的群體行為特性,是近年來研究提出的一種新的算法。BFO搜索通過群體細菌之間的競爭和協作,實現搜索的優化。關于BFO混合算法目前的研究結果基本是加入PSO的機理來解決函數優化問題,通過對分析各種算子的步長以及細菌的生存期的過濾,從而實現算法性能的提高。近年來,Kim和Abraham又將遺傳算法引入BFO,該算法結合了BFO算法中大腸桿菌的覓食機制菌和PSO算法中的鳥類云集模式。基于BFO和PSO提出一種混合優化算法,解決了多模態高維函數的優化,提高了對高維函數優化的收斂速度和局部搜索能力。
2.3 自適應菌群約束優化算法
自適應菌群約束優化算法是基于BFO提出了一種處理約束優化問題新方法。該算法引入Tent混沌方法對符合遷徙條件的細菌進行位置初始化,并加入了基于佳點集的交叉算子,使得遷徙后的新菌群具有隨機性的特點,使群體均勻的分布在搜索空間中,有跳出局部最優的可能;同時選擇精英細菌作為混沌映射的初始解,趨藥性步長的自適應變化使得算法避免了在最優值附近的振蕩,并能夠在維持菌群總數不變的同時得到質量更優的細菌新個體,擴大精英群體的規模。
3 結束語
由于科學技術不斷進步,許多應用領域涉及因素、規模以及難度也越來越高,面對的優化問題日益復雜化,這些常規的優化算法都遠不能滿足要求。而混合智能優化方法,計算簡單,易于實現,能夠在復雜的問題中快速有效的得到最優解。鑒于智能算法的混合結構很多,關于群體智能優化算法的混合算法還有待進一步研究。
參考文獻
[1]李俊.群體智能融合算法研究及其應用[D].南昌航空大學,2013.
[2]向萬里.混合群體智能優化算法及應用研究[D].天津大學,2014.
[3]馮月華,陳州吉.基于群體智能的蟻群算法原理及應用研究[J].蘭州文理學院學報(自然科學版),2014,02期.
作者簡介
劉利波(1983-),男,河南省濟源市人。碩士學位。現為新疆輕工職業技術學院講師。研究方向計算機軟件技術。
作者單位