前言:一篇好文章的誕生,需要你不斷地搜集資料、整理思路,本站小編為你收集了豐富的動態規劃思想主題范文,僅供參考,歡迎閱讀并收藏。
Abstract: It is very important for the routing optimization of the apparel chain distribution to raise the service level, reduce the product costs and improve the enterprise benefit of the apparel chain enterprise. According to the basic thought of the dynamic programming, and in combination with the problem of the routing selection and the time-varying factor in the apparel chain distribution logistics process, the impact factor of the unexpected events is introduced and the improved routing optimization algorithm suitable for the apparel chain logistics distribution process. In conjunction with the specific example, the effectiveness and the feasibility of the routing optimization algorithm is validated and the method is too extended to the touting selection of another logistics distribution.
Key words: dynamic programming; apparel chain; distribution; routing optimization
0 引 言
近年來,隨著市場經濟的不斷深入以及人們生活水平的不斷提高,服裝連鎖經營在我國有了很大的發展,品牌服裝的銷售量日益增加,連鎖門店市場的競爭越來越激烈[1]。在電子商務出現以后,由于電子商務突破了時空限制、新媒體對服裝全方位的展示、低的交易成本與低庫存、較少的中間環節所帶來的交易費用的優勢等,給連鎖服裝門店的經營帶來了新的挑戰[2-3]。在人們日益追求服裝個性化、高增值服務的時代,在原材料與人力資源成本挖掘的空間越來越小的情況下,服裝連鎖企業越來越關注作為企業第三利潤源泉的物流的作用[3],通過降低物流成本、加快配送速度、優化配送路徑等措施來提高企業的競爭力。
在優化配送路徑方面,人們做了很多工作。20世紀50年代,美國數學家Bellman等人在研究多階段決策過程的優化問題時提出了動態規劃法。動態規劃法解決了線性規劃和非線性規劃無法處理的多階段決策問題[4]。后來,試圖將圖的廣度優先搜索算法、蟻群算法與動態規劃法結合求解關鍵路徑問題[5-9],或者簡單使用動態規劃法研究物流配送的最短路徑[10-11],但所有這些方法都無法對時變環境下的路徑進行隨機選擇。
本文根據動態規劃的基本思想,通過對傳統動態規劃模型的改進,將服裝物流配送過程中因道路、天氣、車輛狀況等引起的突發事件考慮到模型中,提出了一類高效實用的服裝物流配送路徑優化方法。通過該模型的應用,服裝連鎖企業可以得到盡量優化的配送路徑,對降低配送成本、提高服務質量、提高企業經濟效益具有重要的意義。
1 動態規劃法簡介
1.1 動態規劃法的基本思想[4]
美國數學家Bellman等人在研究多階段決策過程的優化問題時,通過將多階段過程轉化為一系列單階段問題,然后逐一求解,創立了解決多階段過程的動態規劃方法,即通常所說的Bellman最優性原理。動態規劃算法的基本思想是將待求解問題分解為若干子問題,先求解子問題,然后從這些子問題的解得到原問題的解。因此,為了運用動態規劃法,所考慮的問題:(1)必須能夠分解為相互重疊的子問題;(2)滿足最優子結構的特性――子問題的局部最優將導致整個問題的全局最優;(3)無后效性――當前狀態是此前歷史的總結,此前的歷史只能通過當前的狀態去影響未來的決策。
1.2 動態規劃法的求解過程
各個子問題之間的重疊關系通過狀態轉移方程(或動態規劃函數)來表現。為了避免重復計算,將子問題的解填入表中。
動態規劃法利用最優性原理,采用自底向上的方式,先求出子問題的最優解,然后逐步求得整個問題的最優解,其求解思路如圖2所示。
因此,使用動態規劃法進行決策,需要將原問題分解為若干個相互重疊的子問題,進行分段決策;然后根據最優性原理,分析問題,建立狀態轉移方程(或動態規劃函數);最后采用自底向上的求解方法,求出問題的解,從而實現動態規劃過程。
為了構建簡單實用的服裝運輸車輛配送路徑選擇的數學模型,假設:
(1)配送車輛滿足一次配送要求;
(2)配送點是可達的;
(3)完成一次配送所采用的運輸方式相同;
(4)單位成本固定;
(5)配送時間在可接受的范圍內。
所以,從服裝物流配送中心S出發的服裝物流配送最短路徑長度為27,最優路徑為SCBADS。
服裝連鎖企業一般位于人口稠密、交通擁擠的市中心,另外受天氣(如廣東、福建等沿海地區的臺風,北方的霧霾)和道路維護等的影響,在服裝配送過程中,隨時都會發生道路擁堵、車輛故障等突發事件,而且這種突發事件一旦發生,毫無疑問會延誤對其他連鎖店的配送時間。因此,在使用動態規劃法設計服裝物流最短路徑時,必須考慮這些因素的影響。假設突發事件的影響因子為e,其取值為0?芻e≤10,若e=1表明道路通暢、能見度正常,e?芻1表明道路、天氣等優于正常情況,e?酆1表明道理擁堵、能見度低,此值越大,說明情況越糟。
假設圖3中各邊的權重是e=1時的情況,CB段和DS段因道路維護造成擁堵,使得突發事件影響因子e?酆1,令e=5,則圖3調整后得到圖4所示。
對圖4使用上述動態規劃法,得到表2。
由表2可知,當CB段與DS段發生突發時間造成擁堵時,有兩條最優路徑可選,即SCDBAS或SBDCAS,且最優路徑長度均為28。遇到這種多路徑可選的情況,可根據車輛積載情況、配送的具體情況合理選擇,在此不作詳細討論。
論文關鍵詞:背包問題,動態規劃法,回溯法
10/1背包問題
0-1背包問題:給定n種物品和一背包。物品i的重量是Wi,其價值為Vi,背包的容量為C。問應如何選擇裝入背包中物品,使得裝入背包中物品的總價值最大?
對于一個實例:物品種類N=4,背包容量C=10,物品重量數組W={3,5,2,1},相應價值數組V={9,10,7,4}。找一個n元0-1向量(x1,x2,x3….xn)xi∈{0,1},1≤i≤n.使得,達到最大。下面分別以動態規劃法和回溯法來解決這個實例。
2動態規劃法
動態規劃法的基本思想是將待求解問題分解成若干個子問題,先求解子問題,然后從這些子問題的解得到原問題的解。用一個表來保存記錄所有已解決的子問題的答案,在需要的時候再找出已求得的答案,避免重復的計算。
動態規劃法適用于解最優化問題。通常可按以下4個步驟:
(1)找出最優解的性質并刻畫其結構特征。
(2)遞歸的定義最優解。
(3)以自底向上的方式計算出最優值。
(4)根據計算最優值時到得的信息,構造最優解。
對于所給0-1背包問題的子問題:
,
的最優值為m(i,j),即m(i,j)是背包容量為j,可懸著物品為i,i+1,….,n時0-1背包問題的最優值。由于0-1背包問題的最優子結構性質,可以建立計算m(i,j)的如下遞歸式:
(1.1)
(1.2)
從上面算法的執行過程中可以看出假設有Q(n)個子問題,每一個子問題最多需要m次決策,則計算的頻率為nm,回溯的頻率為n,那么整個過程的算法的時間復雜度為T(n)=nm+n,即為Q(nm)。
3回溯法。
回溯法在包含問題的所有解的解空間樹中,按照深度優先的策略,從根結點出發搜索解空間樹。回溯算法搜索至解空間樹的任一結點時,總是先判斷該結點是否肯定不包含問題的解。如果肯定不包含,則跳過對以該結點為根的子樹的系統搜索,逐層向其祖先結點回溯。否則,進入該子樹,繼續按深度優先的策略進行搜索。回溯法在用來求問題的所有解時,要回溯到根,且根結點的所有子樹都已被搜索遍才結束。簡單地說就是確定解空間,建立解空間樹,用深度優先搜索算法遞歸搜索解空間樹,并同時注意剪枝。
用回溯法解題的步驟:
(1)針對所給問題定義問題的解空間;
(2)確定易于搜索的解空間結構;
(3)以深度優先方式搜索解空間,并在搜索過程中用剪枝函數避免無效的搜索。
根據上述0-1背包問題的數學描述解向量可以表示成X={X,X,...X|X=0或=1}若X=0,表示第i個物品不裝入背包,X=1,表示將第i個物品裝入背包。
可以用樹的形式將解空間表達出來。樹中從第i層到第i+1層的邊上的值表示解向量中X的取值,并假定第i層的左子樹描述第i個物品被裝入背包的情況,右子樹描述第i個物品被拒絕的情況。則該0-1背包問題的狀態空間樹就表示為一棵高度為n的完全二叉樹。若n=3時則此0-1背包問題的解空間的結構如圖1-1所示。從根結點到葉子結點的任一路徑就對應解空間中的一個解向量
圖1-1n=3時,0-1背包問題的解空間樹
用回溯法求解0-1背包問題時,可以按照物品的單位價值從大到小排序。計算當前節點的上界,搜索左子樹。只有當右子樹包含可行解時才搜索右子樹。剪去右子樹的條件是當前價值加上剩余物品的總價值小于當前的最優總價值時,不需搜索右子樹,可將右子樹剪去。回溯法用一定的剪枝進行優化,算法的時間復雜度為O(n*2n),n為物品個數。
4總結
動態規劃算法:動態規劃可以把困難得多階段決策變換為一系列相互聯系比較容易的單階段問題。對于背包問題可以對子過程用枚舉法求解,而且約束條件越多,決策的搜索范圍越小,求解也越容易。但是對于規模較大的問題它并不是一個理想的算法。最重要的原因就是它的維數障礙。即計算和存儲量的需要對于狀態空間和決策空間的維數的增長呈指數增長關系,這樣驚人的增長速度是計算機難以承受的。這就使得直接的動態規劃方法求解規劃較大的背包問題發生了困難,且目前尚沒有好的解決辦法。
回溯法:回溯法需要為問題定義一個解空間,這個解空間必須至少包含問題的一個解(可能是最優的)。使用遞歸回溯法解決背包問題的優點在于它算法思想簡單,而且它能完全遍歷搜索空間,肯定能找到問題的最優解。但是由于此問題解的總組合數有2個,因此,隨著物件數n的增大,其解的空間將以2級增長,當n大到一定程度上,用此算法解決背包問題將是不現實的。
用此兩種方法都能得到問題的最優解,從其時間復雜度來看,兩者的速度都較慢。
參考文獻
1 王曉東.算法設計與分析[M] .北京 清華大學出版社 2003.
2 王紅梅.算法設計與分析[M] .北京 清華大學出版社 2006.
關鍵詞:樹型動態規劃;物流配送;配送中心選址
中圖分類號:F252.14 文獻標識碼:A
摘 要:物流配送中心選址問題在物流網絡規劃中占有十分重要的地位,選址的合理與否直接影響配送企業的效益。文章基于樹型動態規劃,提出了物流配送中心的最佳選址算法。該算法利用樹型結構簡化配送網絡,降低了選址的復雜性,具有較高的穩定性。實驗表明,相較于目前較為普遍的算法,如傳統動態規劃、層次分析法等,文章所提出的算法在時間上具有明顯的優勢。
關鍵詞:樹型動態規劃;物流配送;配送中心選址
中圖分類號:F252.14 文獻標識碼:A
Abstract: The problem of logistics distribution center location plays an important role in the logistics network planning. The benefit of enterprises is affected by location selection directly. In this paper, the best location algorithm of logistics distribution center was proposed based on the tree dynamic programming. This algorithm uses the tree structure to simplify the distribution network, and reduces the complexity of location. Moreover, it has higher stability. Experiments show this algorithm has obvious advantage on time, comparing with the convention algorithm, such as traditional dynamic programming and analytic hierarchy process.
Key words: tree dynamic programming; logistics distribution; distribution center location decision
0 引 言
物流企業普遍需要同時確定多個配送地址。因而在已有的客觀條件下,如何選擇配送中心,使得整個系統費用最低,客戶服務效果最好,顯得尤為重要。一個良好的物流配送中心的選址方案,不但能有效節約成本,促進生產和消費的協調、配合,同時能保證物流系統的高效和平衡發展,使企業在激烈的市場競爭中處于有利的地位。
物流配送中心的選址,對其功能的發揮和整個物流系統的經濟效益影響甚大。因此,該問題也引起不少學者的關注。文獻[1]基于傳統動態規劃,提出了最優化網絡銷售運營方案;文獻[2]采用過濾法求解整數規劃數學模型,確定了物流配送中心的最佳地;文獻[3]分析了物流中心選址中涉及的眾多因素,運用層次分析法進行了實現;文獻[4]利用BP神經網絡處理數據,建立選址決策的模糊評價矩陣;文獻[5]借助運籌學思想,以距離為考慮因素,提出合理解決配送中心選址問題的方法。文獻[6]結合聚類蟻群算法與AHP-模糊綜合評價法,得出配送中心選址的最佳方案。
上述提及的問題,均與物流中心選址有著高度的相似性。但配送點較多時,往往要耗費大量時間進行求解。本文基于樹型動態規劃算法,通過分層方法和樹型結構,簡化物流配送網絡,降低選址的復雜度,在時間上具有明顯的優勢。
1 問題分析
配送中心的選址直接影響了配送環節中各項活動的成本,同時也關系到配送中心的正常運作與發展。因此,配送中心的選址和布局須在充分調查分析的基礎上,結合企業自身的經營模式、商品特點及交通狀況等綜合考慮。
結合配送的相關流程,主要需考慮費用:供貨點到配送中心再到用戶的運輸費用、流經配送中心的產品的管理費用、配送中心的固定投資費用。
2 模型建立
物流配送中心的選址涉及眾多的因素和數量關系,因此,在保證模型基本符合現實情況的基礎上,作如下假設,以簡化模型:
(1)假設配送中心所提供的各項服務收入關于物流量成線形函數;
(2)假設各點間(供貨點、配送中心、用戶)運送運費為關于路程的線性函數,且同一運送路線費用相同;
(3)假設各點需求量及所在地區的交通情況在一定時間內不出現較大波動;
(4)假設配送中心的固定費用為已知常數。
基于以上假設,僅考慮物流配送過程中產生的運費,將全國的物流配送網絡劃分為多個區域,每個區域均可確定一個配送中心,且每兩點之間均由雙向邊連接,各邊權值即為兩端點間的運輸成本。分別確定最優點以及最優路徑,使得該點到其他各點的費用為最小。具體目標函數如下:
minValue=min■cost■1≤j≤n (1)
其中,cost■表示i點至j點的費用。
3 樹型動態規劃算法
3.1 符號與定義
3.2 算法求解
普通動態規劃均為線性或是建立在圖上的。對于線性情況,有兩種方向:向前和向后,或稱順推與逆推。樹型動態規劃以“樹”的數據結構為基礎,同樣有兩個方向:
(1)根—葉:該方法在實際問題中應用不多,因此無典型實例;
(2)葉—根:根的子節點向根傳遞有用的信息,再由根通過這些信息求得最優解。
本文所選用的樹型動態規劃即為后者。由于樹型動態規劃屬于動態規劃范疇,因此,它同樣具有無后效性、子問題重疊性和最優子結構的性質[7]。因此,樹型動態規劃建立過程中,只需考慮根節點與子節點間如何進行信息交換即可。
模塊1 預處理節點信息
已知:u,v邊的權值costuv,標記數組mark;
輸入:任意一個點root;
輸出:以x節點為根節點的子樹所具有的節點數和權值和分別為childx, value1:n;
Step 1 用mark數組標記root;
Step 2 當存在與root節點相連且未在mark中標記的點vi時:
(1)以vi作為進行遞歸;
(2)childroot+=childvi+1;
(3)valueroot=childvi+1*childrootvi+valuevi。
任意選取一個點作為樹的根節點root開始進行第一次樹型動態規劃掃描,并計算樹中每個節點的孩子個數,以及以每個子節點到根的權值和,即求出dpi和childi值。相應目標函數如下:
dpi=dpi+childj*cost■ (2)
childi=childi+childj (3)
其中,j∈Son■,初始值dpi=0,childi=1。
模塊2 確定中心點
已知:以x節點為根節點的子樹所具有的節點數和權值分別為childx,value1:n,清空mark數組,圖中點的個數n;
輸入:任意節點root;
輸出:以x為根節點的樹的總權值和rvaluex;
Step1 用mark數組標記root;
Step2 當存在于root節點相連且未在mark中標記的點vi時:
(1)計算rvaluevi=rvalueroot-childvi+1*costrootvi+n-childvi-1*costrootvi;
(2)以vi作為輸入進行遞歸。
從根節點root出發,利用第一次樹型動規中所求得的dpi和childi數組,進行第二次樹型動規。此時需采用從根到葉的方式,通過根已有的信息來更新子節點的信息,從而達到求出解的目的。相應目標函數如下:
total_valj=■ (4)
3.3 時間復雜度分析
模塊1為處理階段,對每個節點i求dpi和childi時,其子節點僅在i的轉移方程中出現,且只出現一次,因此復雜度為ON。
模塊2為決策階段,通過遍歷整棵樹,求解每個點到其他點的費用和。由于求當前節點時,只需知道其父親節點的信息(即父親節點total_val值),因此復雜度亦為ON。
綜合上述分析,總的算法復雜度即為ON。
4 實驗結果與分析
為了更好地檢驗樹型動規算法的效率,隨機產生了8組數據,同時,通過加權取模的方法,對數據范圍作了限定,使其更貼近實際。通過對比,檢驗樹型動態規劃的正確性和高效性。本文用于對比的傳統算法,采用枚舉中心點,求其到其他點的距離和。在所有距離和中,取最小值對應的中心點。
最終得到選址中心確定所需的時間分別為:
對比兩種算法可發現:當備選點個數超過一定數量后,樹型動態規劃的時間效率要遠勝于傳統算法。且樹型動態規劃的時間及空間復雜度只和待處理的作業的數量有關。在內存受限,計算時間要求較高的物流配送中心選址問題中,是一種相對理想的算法。
5 總 結
本文以ON的時間復雜度確定了每一區域的最優中心點,大幅度優化了選址效率。但由于配送中心的選址問題還涉及到經濟、城市規劃等因素,因此算法只能為該問題提供相對較優的參考方案。
本文算法建立在區域劃分的基礎上,后續將進一步研究區域劃分和該算法的結合,并加入影響選址中心的其他因素,提高算法的實用性,使之適用于不同情況,為物流配送中心選址提供更為準確的方案。
參考文獻:
[1] 謝云. 基于動態規劃的最優運輸費用問題探析[J]. 財會通訊,2011(1):138-139.
[2] 劉曉惠. 物流配送中心選址規劃方法研究[J]. 綜合運輸,2012(3):30-32.
[3] 李海洋,劉冬敏,張曉磊. 基于AHP層次分析法的物流中心選址研究[J]. 中州大學學報,2012(2):115-118.
[4] 韓慶蘭,梅運先. 基于BP人工神經網絡的物流配送中心選址決策[J]. 中國軟科學,2004(6):140-143.
[5] 田昌奇. 物流配送中心合理選址問題的研究[J]. 物流工程與管理,2009(10):99-100.
中圖分類號:C935 文獻標識碼:A 文章編號:1009-914X(2014)36-0043-01
1、最優控制問題基本介紹
最優控制是使控制系統的性能指標實現最優化的基本條件和綜合方法,是現代控制理論的核心之一,是從大量實際問題中提煉出來的。它所研究的問題可以概括為:對一個受控的動力學系統或運動過程,從一類允許的控制方案中找出一個最優的控制方案,使系統的運動在由某個初始狀態轉移到指定的目標狀態的同時,其性能指標最優。最優控制是最優化方法的一個應用。從數學意義上說,最優化方法是一種求極值的方法,即在一組約束為等式或不等式的條件下,使系統的目標函數達到極值,即最大值或最小值。從經濟意義上說,是在一定的人力、物力和財力資源條件下,是經濟效果達到最大(如產值、利潤),或者在完成規定的生產或經濟任務下,使投入的人力、物力和財力等資源為最少。
控制理論發展到今天,經歷了古典控制理論和現代控制理論兩個重要發展階段,現已進入了以大系統理論和智能控制理論為核心的第三個階段。對于確定性系統的最優控制理論,實際是從20世紀50年代才開始真正發展起來的,它以1956年原蘇聯數學家龐特里亞金(Pontryagin)提出的極大值原理和1957年貝爾曼提出的動態規劃法為標志。時至今日,隨著數字技術和電子計算機的快速發展,最優控制的應用已不僅僅局限于高端的航空航天領域,而更加滲入到生產過程、軍事行動、經濟活動以及人類的其他有目的的活動中,對于國民經濟和國防事業起著非常重要的作用。
對于靜態優化的方法,解決的主要是如何求解函數的極值問題;變分法則被用來求解泛函的極值問題;極小值原理的方法,適用于類似最短時間控制、最少燃料控制的問題。另外,還有線性系統二次型指標的最優控制,即線性二次型問題。與解析法相比,用最優控制理論設計系統有如下的特點:
(1)適用于多變量、非線性、時變系統的設計。
(2)初始條件可以任意。
(3)可以滿足多個目標函數的要求,并可用于多個約束的情況。
2、最優控制的求解方法
2.1 變分法
變分法是求解泛函極值的一種經典方法,可以確定容許控制為開集的最優控制函數,也是研究最優控制問題的一種重要工具。掌握變分法的基本原理,還有助于理解以最小值原理和動態規劃等最優控制理論的思想和內容。
但是,變分法作為一種古典的求解最優控制的方法,只有當控制向量u(t)不受任何約束,其容許控制集合充滿整個m維控制空間,用古典變分法來處理等式約束條件下的最優控制問題才是行之有效的。在許多實際控制問題中,控制函數的取值常常受到封閉性的邊界限制,如方向舵只能在兩個極限值范圍內轉動,電動機的力矩只能在正負的最大值范圍內產生等。因此,古典變分法不適于解決許多重要的實際最優控制問題。
2.2 最小值原理
極小值原理是對經典變分法的擴展,可以解決經典變分法無法解決的最優控制問題。也就是當控制有約束,哈密頓函數H對U不可微時,要用極小值原理。所得出的最優控制必要條件與變分法所得的條件的差別,僅在于用哈密頓函數在最優控制上取值的條件代替,可以看出,后者可以作為前者的特殊情況。其他條件包括正則方程,橫截條件,邊界條件等都一樣。需要注意的是,極小值原理解決最短時間控制問題時,最短時間的控制量只能取約束的邊界值+1或-1;而最少燃料控制的控制量可取邊界值+1、-1、0。
用極小值原理解非線性系統的最優控制將導致非線性兩點邊值問題,這類問題求解是很困難的。即使系統是線性的,但當指標函數是最短時間、最少燃料這種形式,要求得到最優控制的解析表達式,并構成反饋控制(即把U(t)表示為X(t)的函數)也是非常困難的。
2.3 動態規劃
動態規劃又稱為多級決策理論,是貝爾曼提出的一種非線性規劃方法。它將一個多級決策問題化為一系列單極決策問題,從最后一級狀態開始到初始狀態為止,逆向遞推求解最優決策。動態規劃法原理簡明,適用于計算機求解,在許多理論問題的研究中,都應用到動態規劃的思路。
動態規劃是求解最優化問題的重要方法,在應用動態規劃時,有一個前提條件是系統的狀態變量必須滿足“無后效性”。所謂無后效性的概念是:在任一時刻,系統狀態為x(),以后的狀態僅決定于x()以及x()到達終點時刻的狀態x()的控制策略,而與以前的狀態和以前的控制策略無關。因此,在應用動態規劃方法時,要注意狀態變量的選取,使之滿足“無后效性”的條件。例如,討論物體在空間運動時,不僅選用物體的空間位置座位狀態變量,而且要將速度變量也包括在狀態變量之內,以便滿足“無后效性”的條件。動態規劃法的局限性還表現在所謂的“維數災難”問題:當狀態變量的維數增加,要求計算機內存成指數倍增長,計算工作量也大大增加。此外,求解連續決策過程采用的動態規劃法得到的哈密頓-雅克比方程是偏微分方程,求解x()也是相當困難的。動態規劃雖然提供的是充分條件,但是,由于連續型系統的哈密頓-雅克比方程難于求解而不能滿足實際需要。
2.4 線性二次型最優控制
線性二次型問題的實用意義在于:把它所得到的最優反饋控制與非線性系統的開環最優控制結合起來,可減少開環控制的誤差,達到更精確的控制的目的。
與經典控制問題相比,線性二次型問題有兩個顯著的特點:第一,它研究的是多輸入多輸出動態系統的控制問題,其中包括了作為特例的單輸入單輸出情形;第二,它的性能指標是綜合性的,既包含有誤差的成分,又包含有控制能量的成分。根據線性的最優反饋控制律,即控制量正比與狀態變量,可寫成或。把這種線性二次型問題的最優控制與非線性系統的開環控制結合起來,還可減少開環控制的誤差。線性二次型問題的最優控制一般可分狀態調節器問題和伺服跟蹤問題兩大類。
對于終端時刻tf有限的連續系統狀態調節器問題,要求加權陣P、Q為對稱半正定,R為對稱正定,但并不要求系統完全可控。
3、三種方法之間的相互關系
動態規劃法、極小值原理和變分法,都是求解最優控制問題的重要方法。由動態規劃的哈密頓-雅克比方程,可以推得變分法中的歐拉方程和橫截條件:也可以推得極小值原理的必要條件。
變分法對解決開集約束的最優控制問題十分有效,但對于處理閉集性約束就無能為力了。變分法與極小值原理都可以解微分方程所描述的變分問題作為目標,結果得出了一組常微分方程所表示的必要條件。這三種方法要求的條件不同,其中屬動態規劃要求最高。在所要求的條件都滿足的情況下,使用這三種方法所得結論相同。
參考文獻
[1] 胡壽松-最優控制理論與系統[M].(第二版)北京:科學出版社,2005.
[2] 張蓮-現代控制理論.北京:清華大學出版社,2008.1.
[3] 于長官-現代控制理論及應用.哈爾冰工業大學出版社,2005.1.
關鍵詞:背包問題;貪婪法;動態規劃法;時間復雜度
中圖分類號:TP311文獻標識碼:A 文章編號:1009-3044(2008)25-1534-02
Study on Algorithm Design and Analysis of Knapsack Problem
SUN Hong-li
(Computer Science Department, Shangqiu Normal University, Shangqiu 476000, China)
Abstract: The knapsack problem is a classical question in the area of algorithm design and analysis, in this paper greedy method, the dynamic programming method and the recursion method are used separately to solve the knapsack problem, 0-1 knapsack problem and the simple 0-1 knapsack problem, and to design the algorithm, to discuss the time complexity. Algorithm design and realization process is given, and with example algorithm basic thought to describe different solution is introduced, and the conclusion is gotten by summarizing the goods and shortcoming of three methods.
Key words: knapsack problem; greedy method; dynamic programming method; time complexity
1 引言
算法是計算機科學的核心,也是程序設計的關鍵,對算法的研究是通過程序來實踐的,算法+數據結構=程序,此經典公式表明有了算法,加上合適的數據結構,用高級語言進行實現就可以得到程序。那么要解決背包問題,首要的前提就是設計出好的算法,想求得背包問題的解,就要先設計出算法。本文采用三種方法來對背包問題進行算法設計,并分析其時間復雜度,進而得出結論。
2 背包問題描述
背包問題是整數規劃中的一類特殊問題,在現實生活中具有廣泛應用,如能提出求解此問題的有效算法,則具有很好的經濟價值和決策價值,如物流公司的貨物發配問題,集裝箱的運載問題,如何才能獲得最大利潤。
問題的一般描述是:旅行者背包登山,背包的最大承重為M,現有n個物品可供選擇裝入背包,第i個物品重量為wi,價值為pi,假定物品i的一部分xi(0≤xi≤1)放入背包,獲得價值為xipi,由于背包最大承重為M,要求裝入物品總質量不過超過M,問旅行者應該如何選擇物品裝入背包,使得裝入物品的價值總和達到最大值。
背包問題的數學描述如下:要求找到一個n元向量(x1,x2,…xn),在滿足約束條件:■情況下,使得目標函數max∑xipi,其中,1≤i≤n;M>0;wi>0;pi>0。滿足約束條件的任何向量都是一個可行解,而使得目標函數達到最大的那個可行解則為最優解。
3 局部優先策略的貪婪法求解背包問題
采用貪婪法求解問題的最優解核心是選擇合適的優化測度,下面以一個背包問題的具體實例來說明求解思想。已知:n=3,w=(10,25,30),p=(60,50,90),M=30,求如何裝包可得到最大價值。
分析:如果從剩余的物品中每次都選取當前價值最大的來裝入的話,利用價值優先測度,不能保證獲得最優解,也就是說如果優化側度的選取只考慮價值是不行的;如果每次都選擇背包耗費最小的物品裝入的話,利用質量最小作為優化測度,同樣也不能保證得到最優解,只考慮質量同樣無法得到最優解;最后我們同時考慮價值和質量,以單位質量價值大的物品首先裝入,以此作為優化測度,就可以保證背包問題獲得最優解。上面的例子求解結果如下:最大價值為120,解向量為(1,0,2/3)。其求解過程可以簡單概括如下,首先對所有物品的單位質量價值按非升序排列,然后一個個考慮物品,裝入物品后要修正背包的當前承重及已獲得價值,如果背包的當前承重不足以裝入整個物品時,可以裝入物品的一部分保證背包裝滿而獲得最大價值。由此利用局部最優策略求解背包問題得到的局部最優解肯定是全局最優解。
采用貪婪法局部優先策略算法時間復雜度是T(n)=O(n2)。首先我們對物品單位質量的價值非升序排列,采用冒泡法實現,執行時間為T1(n)=(n-1)+(n-2)+…+1=n(n+1)/2;從排好序的物品中選取加入解向量,最大執行n次T2(n)=O(n),故貪婪法總的時間耗費為:T(n)=T1(n)+T2(n)=O(n2)。
如果對背包問題進行擴展,再裝入物品時只允許全裝或者不裝,不允許裝入物品的部分,也就是xi=1或者xi=0。此時成為0-1背包問題。那么對0-1背包問題,貪婪法可以求得最優解嗎?
答案是否定的,還以上面的實例說明,采用貪婪法求的解向量為(1,0,0),最大價值為60,很明顯,(0,0,1)優于前者,最大價值為90。要求0-1背包問題的最優解就需要采用全新的算法思想,下面具體說明。
4 最優化原理的動態規劃法求解0-1背包問題
動態規劃法的核心基礎是最優化原理,它把已知問題分為很多子問題,按順序求解子問題,在每一種情況下,列出各種情況的局部解,按條件從中選取那些最有可能產生最佳的結果舍棄其余。前一子問題為后面子問題提供信息,而減少計算量,最后一個子問題的解即為問題解。采用此方法求解0-1背包問題的主要步驟如下:
①分析最優解的結構:最有子結構性質;
②建立遞歸方程;
③計算最優值;
④構造最優解。
下面用動態規劃法求解0-1背包問題。首先此問題具有最優子結構性質。簡單說明如下:設(y1,y2,…,yn)是最優解,則(y2, …,yn)是對應子問題的一個最優解:max■ pixi,■
采用反證法說明:假設(y2, …,yn)不是對應子問題的最優解,那么必定存在最優解,令 (z2,…,zn)是對應子問題的一個最優解。由上述假設得到, ■zipi> ■yipi,并且w1y1+ ■ziwi≤M在■zipi> ■yipi兩邊同時加上p1y1,得到 ■zipi+p1y1> ■yipi+p1y1,合并w1y1+ ■ziwi≤M,可得出(y1,z2,…,zn)優于(y1,y2,…,yn),推出矛盾,也即假設不成立。符合最優子結構性質。
根據最優子結構性質可以推出遞歸方程。引入符號v(i,j)表示i個物品當前背包承重為j時可以獲得的最大價值,要求得i個物品可以獲得最大價值要考慮第i個物品質量和當前背包承重大小關系,背包可以容納第i個物品的話,有裝入和不裝兩種情況,表示為v(i-1,j-wi)和v(i-1,j),如果第i個物品質量大于背包當前承重,則只有不裝,即v(i-1,j)。由此可以得出關于解的遞歸方程如下:
■
根據遞歸方程,可以求得0-1背包問題的最大價值和解向量,還以上面的實例說明求解過程。
■
故得到:v(1,30)=60;v(2,30)=60;v(3,30)=90;X=(0,0,1),從這個求解過程可得動態規劃法肯定可以得到0-1背包問題的最優解。
動態規劃法算法執行時間為n*a*b次循環,每次循環都要執行比較運算,算法完成所需總是件為cn2,故時間復雜度為
T(n)=O(n3)。
如果對0-1背包問題的求解目標進行限制,求如何裝包可以使得裝入物品的重量總和恰好是M。那么問題就不再是最優化問題,稱為簡單的0-1背包問題。顯然,用貪婪法或動態規劃法都無法求得此問題的解向量,這時需要用到遞歸法來求解。
5 遞歸法求解簡單0-1背包問題
簡單0-1背包問題可以描述為:現有n個物品,第i個物品質量為wi,有一個可容物品最大質量為M的背包,如何從n件物品中選取出若干件裝入使得放入背包的質量之和正好為M。
由于0-1背包問題對第i件物品要么裝入,要么不裝,故問題可能有解,也可能無解。采用布爾函數表示問題。Knap(i,j)其中i表示物品個數,j表示背包當前容量。如果問題有解函數值為true,否則為false。
先取第n個物品裝入,如果wn=M,knap(n,M)=true;
如果wn1,knap(n,M)= knap(n-1,M-wn)有解可行,否則轉化為knap(n,M)= knap(n-1,M);
如果wn1,knap(n,M)= knap(n-1,M)。
遞歸算法的執行時間是那n2次調用,每次調用完成一次比較和一次棧運算,算法完成總時間是2n2,時間復雜度為T(n)O(n2)。
6 結論
這三種算法都在c語言環境下得到驗證,運行結果證明了算法設計是可行的,正確的。通過對背包問題、0-1背包問題與簡單0-1背包問題的算法設計及時間復雜度分析可以看出,無論采用貪婪法還是動態規劃法,都是在已知約束條件下求解最大值建立數學模型算法實現的過程;但算法具體實現和數據結構的建立要用到遞歸和棧操作。比較貪婪法和動態規劃法,前者的時間復雜度低于后者,從耗費上而言優于后者,但后者的實現算法可讀性要優于前者。
參考文獻:
[1] M.H.Alsuwaiyel.算法設計技巧與分析[M].北京:電子工業出版社,2004.
關鍵詞:算法設計與分析 實例驅動教學 背包問題 教學改革
中圖分類號:G642 文獻標識碼:A 文章編號:1673-9795(2013)06(a)-0070-01
1 問題的提出
《算法設計與分析》[1]是實踐性較強的一門課程。這門課程的主要目的,通過對計算機算法系統的學習與研究,掌握算法設計算法策略和技巧,培養學生對算法的計算復雜性正確分析的能力,對不同的實際問題設計出清晰高效的算法,為獨立設計算法和對算法進行復雜性分析奠定堅實的理論基礎。軟件的效率和穩定性取決于軟件中所采用的算法,學習《算法設計與分析》課程,可以開闊編程思路,有助于編寫出高效程序。因此,提高《算法設計與分析》課程教學水平有著極其深遠的意義和重要的作用。
《算法設計與分析》內容的比較抽象與復雜,從學生的普遍反映來看,這是一門比較難的課程。《算法設計與分析》課程的教學內容按算法分類組織。在教科書中[2],每一章對應一種算法,主要內容涵蓋了動態規劃、貪心法、回溯法和分支限界法經典的算法。本文針對該課程,對典型實例驅動教學在《算法設計與分析》教學中的應用做了一些探索。通過典型的實例教學,一個抽象的算法使其更具體化、形象化,學生能快速理解各種算法的原理及算法之間的區別,因此,在《算法設計與分析》教學中合理利用典型實例,激發學生學習興趣和熱情,從而提高教學效果。
2 0-1背包問題實例
0-1背包問題是經典組合優化問題[3],有著廣泛的實際應用背景,0-1背包問題比較簡單,把抽象的,復雜的算法應用到該問題便于同學理解和掌握。0-1背包問題描述為:給定n種物品和一背包。物品i的重量是wi,其價值為vi,背包的容量為C。問應如何選擇裝入背包的物品,使得裝入背包中物品的總價值最大。
3 動態規劃算法
動態規劃是解決多階段決策過程最優化的一種方法,該方法是由美國數學家貝爾曼等人提出的。用于解決生產管理、工程技術等方面的許多問題,并建立了運籌學的一個新的分支,即動態規劃。動態規劃算法與分治法類似,其基本思想也是將待求解問題分解成若干個子問題。但是經分解得到的子問題往往不是互相獨立的。不同子問題的數目常常只有多項式量級。在用分治法求解時,有些子問題被重復計算了許多次。如果能夠保存已解決的子問題的答案,而在需要時再找出已求得的答案,就可以避免大量重復計算,從而得到多項式時間算法。動態規劃方法能夠把復雜問題的算法從指數階的計算量減少到多項式階。
4 貪心算法
貪心算法通過一系列的選擇來得到問題的最優解,它所做的每一個選擇都是當前狀態最好的選擇,即貪心選擇。雖然貪心算法不能對所有問題都得到整體最優解,但對許多問題它能產生整體最優解。在一些情況下,即使貪心算法不能得到整體最優解,其最終結果卻是最優解的很好近似。用貪心算法不能求解0-1背包問題,但能解決背包問題,背包問題與0-1背包問題類似,所不同的是在選擇物品i裝入背包時,可以選擇物品i的一部分,而不一定要全部裝入背包,即xi∈[0,1]。
5 回溯算法
回溯法在問題的解空間樹中,按深度優先策略,從根結點出發系統地搜索一個問題的所有解或任一解。算法搜索至解空間樹的任意一點時,先判斷該結點是否包含問題的解:如果肯定不包含,則跳過對該結點為根的子樹的搜索,逐層向其祖先結點回溯;否則,進入該子樹,繼續按深度優先策略搜索。
如果采用回溯法解決0-1背包問題,如一個結點的左兒子結點是一個可行結點就搜索其左子樹。而對于右子樹,需要用貪心算法構造一個上界函數,上界函數是通過講將0-1背包問題松弛為背包問題利用貪心算法求得的,這個函數表明這個結點的子樹所能達到的可能的最優值,只在這個上界函數的值超過當前最優解時才進入搜索。隨著搜索進程的推進,最優解不斷得到加強,對搜索的限制就越來越嚴格。如果這個上界小于當前值Bestf,說明該子樹不可能包含最優解,即可以被“剪枝”。
6 分支限界法
分支限界法類似于回溯法,也是一種在問題的解空間樹上搜索問題解的算法。分支限界法則以廣度優先或以最小耗費優先的方式搜索解空間樹。采用分支限界法解決0-1背包問題,同樣需要用到貪心算法構造的上界函數。所不同的是,這個上界函數的作用不在于判斷是否進入一個結點的子樹繼續搜索,因為在搜索到達葉節點之前,大家也無法知道已經得到的最優解是什么。在這里,可用一個最大堆來實現活結點的優先隊列,上界函數的值將作為優先級,這樣一旦有一個葉結點成為擴展結點,就表明已經找到了最優解。
7 結語
通過典型0-1背包問題實例,學生可以快速理解各種算法的基本思想、特點及算法之間區別,便于理解與掌握。筆者在這門課程的教學過程中深刻地體會到,要上好這門課,教師要注意觀察學生的課堂反應及接受能力,采用適當的教學方法。實踐證明,《算法設計與分析》實例教學方法是一種將抽象算法理論與實際典型實例相結合,讓學生帶著感興趣的問題進入課程的學習,其探究能力和創新意識得到了較好的培養,同時培養學生分析問題及解決問題的能力。
參考文獻
[1] 阿霍.計算機算法設計與分析:英文版,[M].北京:機械工業出版社,2006.
關鍵詞:水庫;優化調度決策;動態規劃模型;新方法
在我國,水庫優化調度決策研究相對起步較晚,大多都是通過建立優化模型來求解其優化的目標函數也主要有兩類:一是以庫群多年電能或供水量最大為目標,二是以系統年費用最小為目標,模型既有確定性的,也有隨機型的隨著研究的不斷深入,研究的目標逐漸由單目標擴展到了多目標,研究對象由單庫擴大到了多庫乃至整個流域或系統的庫群,其模型也由單一模型發展到了組合模型近年來,又把系統辯識思想運用到了水庫調度決策研究中,將隨機動態規劃與常規調度決策方法有機結合,為水庫調度決策研究提供了一個新的理論框架。隨著社會經濟的快速發展,社會用水量也急劇增加,水資源供需矛盾日趨尖銳如何合理調配有限的水資源已成為水資源管理中現實而緊迫的任務水庫優化調度決策是水資源系統優化配置的重要手段,因此做好水庫優化調度決策方案及管理對解決這一嚴重的問題無疑具有非常重要的意義。
一、當前水庫調度決策存在的問題
目前,國內外水水庫優化調度決策研究成果較多,常規調度決策方法以水位或入庫流量確定水庫的操作方法,雖然簡明直觀,但在對新技術的應用客觀條件變化對調度決策結果的影響分析等諸方面存在明顯不足優化調度決策決策方法方案存在的主要問題有:
(1)調度決策方案只是一個合理的方案,而不是最優的方案;
(2)無論哪種模型,應用哪種數學方法,仍不能回避未來入庫徑流無法確知的問題,從而大大降低實際應用效果;
(3)應用比較多的動態規劃模型受到數學維數的限制,即維數災問題需借助其它方法,如逐步優化法對模型進行降維處理;
(4)在建立模型求解的過程中計算量大如各項指標的分析優選校核
(5)所建立的模型難以反映復雜系統的真實情況;
(6)模型可操作性較低由于優化調度決策所用的方法和理論比較復雜,使用者因缺少相應的知識,實際操作比較困難,從而影響了模型的應用和推廣。
二、水庫調度決策的優化應用分析
我國對水庫優化調度決策優化研究和應用相對起步較晚,基本上都是通過建立有效的優化模型來進行解答,其優化的目標函數也主要分為兩個方面,一種目標是在庫群用水量最大或發電量最大時,另一種目標是消耗費用最少時。隨著對水庫優化調度決策研究的不斷深入,研究目標變得多元,研究對象也在向多元化發展,研究模型變得更加復雜多變。近些年,系統辯識思想也運用到了水庫調度決策研究中,隨機態規劃與常規調度決策方法互相有機結合,為水庫調度決策研究提供了一個新的理論框架。為了發揮水庫的最大經濟效益,包括防洪、發電、灌溉、供水及航運等效益最佳,我國進行了大量的研究與實踐。
1、水庫調度決策的優化應用實例
我國大約從20 世紀60 年代開始水庫優化調度決策的研究。1960 年吳滄浦最先提出了每年調節水庫的最優動用動態規劃模型。1963 年譚維信、黃守信等通過學習了解動態規劃與Markov 過程理論,順利完成了一個長期調節水電站水庫的優化馬爾柯夫過程理論模型,并在獅子灘水電站的優化調度決策中得到成功嘗試。1979 年張勇傳、熊斯毅等在研究拓溪水電站水庫優化調度決策模型時,采用可變方向探索法,雖然優化調度決策圖依然用Bellman 最優化原理, 由于引進了懲罰項從而使調度決策圖的可靠性提高。同樣是在1979 年,在劉家峽水電站水庫優化調度決策研究時, 董子敖等人提出了對國民經濟有最大效益的目標函數。張玉新、馮尚友在八十年代末研究了多目標動態規劃的迭代法求解方法,建立了一個多維決策的多目標動態規劃模型。由于模糊里路的不斷發展,吳倍益提出應用模糊數學進行水庫群優化調度決策;張勇傳、邴鳳山等把相關的模糊理論引入水庫優化調度決策的研究中。陳守煜于1988 年把動態規劃和模糊優選有機結合起來提出了優選模糊原理模型,此后又提出了系統層次模糊優選模型,這些理論不斷完善了模糊理論。20 世紀末以來,人們開始不斷尋求水庫優化功能來進行模擬。2000 年李會安建立了可以水量隨時自己優化的模型。2000年暢建霞等人為西安市水庫群建立了神經網絡優化調度決策模型,并在2001年改進遺傳算法的水電站基礎上再次進行水庫優化調度決策。2005年邱林等人把混沌優化理論應用到水庫優化調度決策中,徐剛、馬光文等人也在同一年研究了蟻群優化在水庫優化中的作用,并在在單庫、多庫優化調度決策中的成功試用。
2、水庫調度決策的優化應用方案
比如水庫的調度決策來說,將以天堂山水利樞紐工程為例子,全面的分析水庫調度決策的優化應用方案。天堂山水利樞紐工程位于龍門縣城西北約14 km的增江上游天堂山峽谷處,集雨面積461 km2(占增江全流域面積15%,總庫容2.43億m3,是一宗以防洪為主,兼顧灌溉、發電、養殖、旅游等綜合效益的大型水利樞紐工程。
天堂山水利樞紐工程以防洪為主,兼有灌溉、發電、旅游、養殖等綜合利用的大(2)型水利工程,電站安裝有3臺單機容量6500kW的混流立式水輪發電機組。根據原設計標準劃分,本工程為Ⅱ等大(2)型工程,大壩與隧洞進水口工程等別為Ⅱ等,建筑物級別為2級,設計洪水標準為100年一遇,校核洪水標準為1000年一遇;引水隧洞(不包括進水口)、高壓管道、調壓井和電站工程等別為Ⅲ等,建筑物級別為3級,設計洪水標準為50年一遇,校核洪水標準為500年一遇。同時將從水文、氣象、徑流、設計洪水標準、生態環境等等因素考慮,本文將從徑流的調度優化與應用來進行分析。
由于廣東省暫未頒布最新的降雨徑流等值線圖,本階段按《廣東省水文圖集》(1991年版)資料進行初步分析。從圖集中查得天堂山水電站多年平均降雨量為2200mm(查Cv=0.25),多年平均徑流深為1300mm(查算Cv=0.35),計算天堂山水電站降雨徑流系數為0.59。與天堂山還原后多年平均徑流深1216mm相比,兩者誤差6%。可以認為設計年徑流深符合地區規律,徑流設計成果基本合理。
降雨、徑流各參數見表3.4-3。
表3.4-3 天堂山水電站多年平均年降雨量、徑流深比較表
三、水庫調度決策發展優化應用分析的展望
為了解決理論研究方面存在的問題, 應采用系統的調度決策理論, 從全局出發, 不斷完善調度決策理論, 注重理論與生產實際相結合, 注重研究成果向生產的轉化, 把理論研究與實際應用的差距較好的縮短; 必須結合生產需要和具體問題, 研究探討適合某一具體河流或區域、簡便實用并為生產管理者所接受的水庫調度決策模型及應用方法。隨著計算機及人工智能技術的發展, 與計算機及人工智能技術相結合, 并引入新的理論, 成為水庫優化調度決策研究的一個熱點和發展趨勢:
1) 充分應用計算機的快速運算及大容量存儲能力, 研究快速、準確求解水庫優化調度決策模型的方法及算法, 以提高水庫優化調度決策模型效率。
2) 充分利用計算機技術, 結合人工智能開發出人機界面友好的具有智能化、敏捷化的決策支持系統是水庫調度決策決策技術今后的發展趨勢。此外, 全球定位系統、地理信息系統、遙感技術以及虛擬現實技術等高新技術, 在水利行業也具有廣闊的應用前景。
四、結束語
總之, 在水庫調度決策方面更廣泛的、高質量的應用高新技術, 可以使得調度決策決策變得更科學化、更智能化、更敏捷化, 進一步提升調度決策決策的技術水平, 使水庫調度決策向著可視化、交互化、智能化、集成化的方向前進。
參考文獻:
[1]梅亞東. 水庫調度決策研究的若干進展[J]. 湖北水力發電. 2008(01)
[2]羅強,宋朝紅,雷聲隆. 水庫調度決策自優化模擬技術的最優域[J]. 水電能源科學. 2002(03)
單個機器人的路徑規劃是找出從起始點至終點的一條最短無碰路徑。多個機器人的路徑規劃側重考慮整個系統的最優路徑,如系統的總耗時間最少路徑或是系統總路徑最短等。從目前國內外的研究來看,在規劃多機器人路徑時,更多考慮的是多機器人之間的協調和合作式的路徑規劃。
目前國內外多機器人路徑規劃研究方法分為傳統方法、智能優化方法和其他方法三大類。其中傳統方法主要有基于圖論的方法(如可視圖法、自由空間法、柵格法、Voronoi圖法以及人工勢場方法等);智能優化方法主要有遺傳算法、蟻群算法、免疫算法、神經網絡、強化學習等;其他方法主要有動態規劃、最優控制算法、模糊控制等。它們中的大部分都是從單個機器人路徑規劃方法擴展而來的。
1)傳統方法多機器人路徑規劃傳統方法的特點主要體現在基于圖論的基礎上。方法一般都是先將環境構建成一個圖,然后再從圖中尋找最優的路徑。其優點是比較簡單,比較容易實現;缺點是得到的路徑有可能不是最優路徑,而是次優路徑。薄喜柱等人[4]提出的一種新路徑規劃方法的基本思想就是基于柵格類的環境表示和障礙地圖的。而人工勢場方法的基本思想是將移動機器人在環境中的運動視為一種虛擬人工受力場中的運動。障礙物對移動機器人產生斥力,目標點產生引力,引力和斥力周圍由一定的算法產生相應的勢,機器人在勢場中受到抽象力作用,抽象力使得機器人繞過障礙物。其優點是適合未知環境下的規劃,不會出現維數爆炸問題;但是人工勢場法也容易陷入局部最小,并且存在丟失解的部分有用信息的可能。顧國昌等人[5]提出了引用總體勢減小的動態調度技術的多機器人路徑規劃,較好地解決了這個問題。
2)智能優化方法多機器人路徑規劃的智能優化方(算)法是隨著近年來智能計算發展而產生的一些新方法。其相對于傳統方法更加智能化,且日益成為國內外研究的重點。
遺傳算法是近年來計算智能研究的熱點,作為一種基于群體進化的概率優化方法,適用于處理傳統搜索算法難以解決的復雜和非線性問題,如多機器的路徑規劃問題。在路徑規劃中,其基本思想是先用鏈接圖法把環境地圖構建成一個路徑節點鏈接網,將路徑個體表達為路徑中一系列中途節點,并轉換為二進制串;然后進行遺傳操作(如選擇、交叉、復制、變異),經過N次進化,輸出當前的最優個體即機器人的最優路徑。遺傳算法的缺點是運算速度不快,進化眾多的規劃要占據很大的存儲空間和運算時間;優點是有效避免了局部極小值問題,且計算量較小。
孫樹棟等人[6,7]在這方面較早地展開了研究,提出的基于集中協調思想的一種混合遺傳算法來規劃多機器人路徑方法較好地解決了避障問題。但不足的是該方法必須建立環境地圖,在環境未知情況下的規劃沒有得到很好的解決;且規劃只能保證找到一個比較滿意的解,在求解全局最優解時仍有局限。
文獻[8]中提出的一種基于定長十進編碼方法有效降低了遺傳算法的編碼難度,克服了已有的變長編碼機制及定長二進制編碼機制需特殊遺傳操作算子和特殊解碼的缺陷,使得算法更加簡單有效。
智能計算的另一種常見的方法——蟻群算法屬于隨機搜索的仿生算法。其基本思想是模擬螞蟻群體的覓食運動過程來實現尋優,通過螞蟻群體中各個體之間的相互作用,分布、并行地解決組合優化問題。該算法同樣比較適合解決多機器人的路徑規劃問題。
朱慶保[9]提出了在全局未知環境下多機器人運動螞蟻導航算法。該方法將全局目標點映射到機器人視野域邊界附近作為局部導航子目標,再由兩組螞蟻相互協作完成機器人視野域內局部最優路徑的搜索,然后在此基礎上進行與其他機器人的碰撞預測與避碰規劃。因此,機器人的前進路徑不斷被動態修改,從而在每條局部優化路徑引導下,使機器人沿一條全局優化的路徑到達目標點。但其不足是在動態不確定的環境中路徑規劃時間開銷劇增,而且機器人缺乏必要的學習,以至于整個機器人系統路徑難以是最優路徑。
強化學習[10,11](又稱再激勵學習)是一種重要的機器學習方法。它是一種智能體從環境狀態到行為映射的學習,使得行為從環境中獲得積累獎賞值最大。其原理如圖1所示。
強化學習算法一般包含了兩個步驟:a)從當前學習循環的值函數確定新的行為策略;b)在新的行為策略指導下,通過所獲得的瞬時獎懲值對該策略進行評估。學習循環過程如下所示,直到值函數和策略收斂:
v0π1v1π2…v*π*v*
目前比較常見的強化學習方法有:MonteCarlo方法、動態規劃方法、TD(時間差分)方法。其中TD算法包含Sarsa算法、Q學習算法以及Dyna-Q算法等。其Q值函數迭代公式分別為
TD(0)策略:V(si)V(si)+α[γi+1+γV(si+1)-V(si)]
Sarsa算法:Q(st,at)Q(st,at)+α[γt+1+γQ(st+1,at.+1)-Q(st,at)]Qs′學習算法:Qπ(s,a)=∑Pαss′[Rass′+γVπ(s′)]
近年來,基于強化學習的路徑規劃日益成為國內外學者研究的熱點。M.J.Mataric[12]首次把強化學習引入到多機器人環境中。而基于強化學習的多機器人路徑規劃的優點主要體現在:無須建立精確的環境模型,簡化了智能體的編程;無須構建環境地圖;強化學習可以把路徑規劃、避碰、避障、協作等問題統一解決。
張芳等人[13]提出了基于再激勵協調避障路徑規劃方法,把再勵函數設計為基于行為分解的無模型非均勻結構,新的再勵函數結構使得學習速度得以提高且有較好的魯棒性。同時,證明了在路徑規劃中,機器人的趨向目標和避障行為密切相關,對反映各基本行為的再勵函數取加權和來表示總的再勵函數要優于取直接和的表示方式,也反映了再勵函數設計得合理與否及其確切程度將影響再勵學習的收斂速度。王醒策等人[14]在動態編隊的強化學習算法方面展開了研究。宋一然[15]則提出了分段再勵函數的強化學習方法進行路徑規劃。其缺點是學習次數較多、效率不高,當機器人數目增加時,它有可能面臨維數災難的困難。所以,基于強化學習的路徑規劃在多機器人環境下的學習將變得比較困難,需要對傳統的強化學習加以優化,如基于人工神經網絡的強化學習[16]等。
3)其他方法除了以上國內外幾種比較常見且研究較多的方法外,還有唐振民等人[17]提出的基于動態規劃思想的多機器人路徑規劃,把運籌學中的動態規劃思想與Dijkstra算法引入到多機器人的路徑規劃中,用動態規劃的基本思想來解決圖論中的費用流問題和路徑規劃中的層級動態聯盟問題。其選擇距離鄰近法作為聯盟參考依據。一個機器人的鄰居是指在地理位置上分布在這個機器人周圍的其他機器人;與該機器人最近鄰的機器人為第一層鄰居,第一層鄰居的鄰居為該機器人的第二層鄰居,依此類推。那么層級越高(即越近)的鄰居,它滿足協作要求的可能性越大。動態規劃算法實質上是一種以空間換時間的技術,它在實現的過程中,必須存儲產生過程中的各種狀態,其空間復雜度要大于其他算法,故動態規劃方法比較適合多機器人的全局路徑規劃。
孫茂相等人[18]提出了最優控制與智能決策相結合的多移動機器人路徑規劃方法。其首先構造一個以各機器人最優運動狀態數據庫為核心的實時專家系統,在離線狀態下完成;然后各機器人在此專家系統的支持下,以最優規劃策略為基礎,采用速度遷移算法,自主決定其控制。該方法擁有較好的穩定性與復雜度。焦立男等人[19]提出的基于局部傳感和通信的多機器人運動規劃框架較好地解決了多機器人路徑規劃在局部在線規劃的系統框架問題。沈捷等人[20]提出了保持隊形的多移動機器人路徑規劃。以基于行為的導航算法為基礎,把機器人隊列的運動過程劃分為正常運動、避障和恢復隊形三個階段。在避障階段,引入虛擬機器人使隊形保持部分完整;當隊形被嚴重打亂時,規劃機器人的局部目標位姿使隊列快速恢復隊形。其算法重點為避障機器人進入避障狀態,暫時脫離隊列,并以虛擬機器人代替避障機器人。
2多機器人避碰和避障
避障和避碰是多機器人路徑規劃研究中需要考慮的重點問題之一。避障和避碰主要討論的內容有防止碰撞;沖突消解、避免擁塞;如何避免死鎖。在路徑規劃中常見的多機器人避障方法[21]有主從控制法、動態優先法(建立在機器人之間的通信協商上)、交通規則法、速率調整法,以及障礙物膨脹法、基于人工勢場的方法等。
目前國內外對于多機器人避障展開的研究還不是很多,比較典型的有徐潼等人[22]以Th.Fraichard的思想為基礎,擴充并完善了路徑/速度分解方案來協調多機器人,設立集中管理agent進行整體規劃,為每個機器人規劃路徑;并根據優先級規則對運動特征進行分布式規劃以避免機器人間的沖突。周明等人[23]提出分布式智能避撞規劃系統,將原來比較復雜的大系統轉換為相對簡單的子系統問題,由各智能機器人依據任務要求和環境變化,獨立調整自身運動狀態,完成任務的分布式智能決策體系結構。任炏等人[24]提出了基于過程獎賞和優先掃除的強化學習多機器人系統的沖突消解方法。該算法能夠顯著減少沖突,避免死鎖,提高了系統整體性能。歐錦軍等人[25]提出了通過調整機器人的運動速度實現多機器人避碰,將避碰問題轉換為高維線性空間的優化問題,并進一步將其轉換為線性方程的求解。該方法的缺點是系統的復雜度較高、計算量太大。
人工勢場方法的特點是計算簡潔、實時性強、便于數學描述,且適合于多自由度機器人環境,但容易產生抖動和陷入局部極小。為了克服其缺點,景興建等人[26]提出了人工協調場的方法,在傳統排斥力場中增加一個協調力,并將吸引力、排斥力和協調力與局部環境下機器人的運動狀態和運動要求結合起來,有效地保證機器人的安全性,提高機器人在復雜動態環境下行為決策的準確性和魯棒性。
3多機器人協作和協調機制
多機器人間的運動協調[27~31]是多機器人路徑規劃的關鍵,也是多機器人與單機器人路徑規劃相區別的根本所在。多機器人系統在復雜動態實時環境下,由于受到時間、資源及任務要求的約束,需要在有限時間、資源的情況下進行資源分配、任務調配、沖突解決等協調合作問題,而機器人間的協調與協作,能夠大大地提高整個系統的效率和魯棒性,成為系統完成控制或解決任務的關鍵。
目前已有的協調方式分為集中式、分布式和混合式三種。在集中式協調中,集中規劃器詳細地規劃出每個機器人的動作,通常的做法是將多個機器人看做一個多自由度的機器人進行規劃;而分布式協調規劃中,機器人之間進行合作,將一個任務分成多個子任務,根據各自的特點完成不同的子任務,從而共同完成總任務;混合式協調是集中式和分布式混合在一起的形式。
摘要:在查閱大量文獻的基礎上對多機器人路徑規劃的主要研究內容和研究現狀進行了分析和總結,討論了多機器人路徑規劃方法的評判標準,并闡述了研究遇到的瓶頸問題,展望了多機器人路徑規劃方法的發展趨勢。
關鍵詞:多機器人;路徑規劃;強化學習;評判準則
Abstract:Thispaperanalyzedandconcludedthemainmethodandcurrentresearchofthepathplanningresearchformultirobot.Thendiscussedthecriterionofpathplanningresearchformultirobotbasedlargeofliterature.Meanwhile,itexpoundedthebottleneckofthepathplanningresearchformultirobot,forecastedthefuturedevelopmentofmultirobotpathplanning.
Keywords:multirobot;pathplanning;reinforcementlearning;evaluatingcriteria
近年來,分布式人工智能(DAI)成為人工智能研究的一個重要分支。DAI研究大致可以分為DPS(distributedproblemsolving)和MAS(multiagentsystem)兩個方面。一些從事機器人學的研究人員受多智能體系統研究的啟發,將智能體概念應用于多機器人系統的研究中,將單個機器人視做一個能獨立執行特定任務的智能體,并把這種多機器人系統稱為多智能體機器人系統(MARS)。因此,本文中多機器人系統等同于多智能體機器人系統。目前,多機器人系統已經成為學術界研究的熱點,而路徑規劃研究又是其核心部分。
機器人路徑規劃問題可以建模為一個帶約束的優化問題,其包括地理環境信息建模、路徑規劃、定位和避障等任務,它是移動機器人導航與控制的基礎。單個移動機器人路徑規劃研究一直是機器人研究的重點,且已經有許多成果[1~3],例如在靜態環境中常見的有連接圖法、可視圖法、切線圖法、Voronoi圖法、自由空間法、柵格法、拓撲法、鏈接圖法、DempsterShafer證據理論建圖等;動態環境中常見的有粒子群算法、免疫算法、遺傳算法、神經網絡、蟻群算法、模擬退火算法、人工勢場法等。然而,多機器人路徑規劃研究比單個機器人路徑規劃要復雜得多,必須考慮多機器人系統中機器人之間的避碰機制、機器人之間的相互協作機制、通信機制等問題。
1多機器人路徑規劃方法
單個機器人的路徑規劃是找出從起始點至終點的一條最短無碰路徑。多個機器人的路徑規劃側重考慮整個系統的最優路徑,如系統的總耗時間最少路徑或是系統總路徑最短等。從目前國內外的研究來看,在規劃多機器人路徑時,更多考慮的是多機器人之間的協調和合作式的路徑規劃。
目前國內外多機器人路徑規劃研究方法分為傳統方法、智能優化方法和其他方法三大類。其中傳統方法主要有基于圖論的方法(如可視圖法、自由空間法、柵格法、Voronoi圖法以及人工勢場方法等);智能優化方法主要有遺傳算法、蟻群算法、免疫算法、神經網絡、強化學習等;其他方法主要有動態規劃、最優控制算法、模糊控制等。它們中的大部分都是從單個機器人路徑規劃方法擴展而來的。
1)傳統方法多機器人路徑規劃傳統方法的特點主要體現在基于圖論的基礎上。方法一般都是先將環境構建成一個圖,然后再從圖中尋找最優的路徑。其優點是比較簡單,比較容易實現;缺點是得到的路徑有可能不是最優路徑,而是次優路徑。薄喜柱等人[4]提出的一種新路徑規劃方法的基本思想就是基于柵格類的環境表示和障礙地圖的。而人工勢場方法的基本思想是將移動機器人在環境中的運動視為一種虛擬人工受力場中的運動。障礙物對移動機器人產生斥力,目標點產生引力,引力和斥力周圍由一定的算法產生相應的勢,機器人在勢場中受到抽象力作用,抽象力使得機器人繞過障礙物。其優點是適合未知環境下的規劃,不會出現維數爆炸問題;但是人工勢場法也容易陷入局部最小,并且存在丟失解的部分有用信息的可能。顧國昌等人[5]提出了引用總體勢減小的動態調度技術的多機器人路徑規劃,較好地解決了這個問題。
2)智能優化方法多機器人路徑規劃的智能優化方(算)法是隨著近年來智能計算發展而產生的一些新方法。其相對于傳統方法更加智能化,且日益成為國內外研究的重點。
遺傳算法是近年來計算智能研究的熱點,作為一種基于群體進化的概率優化方法,適用于處理傳統搜索算法難以解決的復雜和非線性問題,如多機器的路徑規劃問題。在路徑規劃中,其基本思想是先用鏈接圖法把環境地圖構建成一個路徑節點鏈接網,將路徑個體表達為路徑中一系列中途節點,并轉換為二進制串;然后進行遺傳操作(如選擇、交叉、復制、變異),經過N次進化,輸出當前的最優個體即機器人的最優路徑。遺傳算法的缺點是運算速度不快,進化眾多的規劃要占據很大的存儲空間和運算時間;優點是有效避免了局部極小值問題,且計算量較小。
孫樹棟等人[6,7]在這方面較早地展開了研究,提出的基于集中協調思想的一種混合遺傳算法來規劃多機器人路徑方法較好地解決了避障問題。但不足的是該方法必須建立環境地圖,在環境未知情況下的規劃沒有得到很好的解決;且規劃只能保證找到一個比較滿意的解,在求解全局最優解時仍有局限。
文獻[8]中提出的一種基于定長十進編碼方法有效降低了遺傳算法的編碼難度,克服了已有的變長編碼機制及定長二進制編碼機制需特殊遺傳操作算子和特殊解碼的缺陷,使得算法更加簡單有效。
智能計算的另一種常見的方法——蟻群算法屬于隨機搜索的仿生算法。其基本思想是模擬螞蟻群體的覓食運動過程來實現尋優,通過螞蟻群體中各個體之間的相互作用,分布、并行地解決組合優化問題。該算法同樣比較適合解決多機器人的路徑規劃問題。
朱慶保[9]提出了在全局未知環境下多機器人運動螞蟻導航算法。該方法將全局目標點映射到機器人視野域邊界附近作為局部導航子目標,再由兩組螞蟻相互協作完成機器人視野域內局部最優路徑的搜索,然后在此基礎上進行與其他機器人的碰撞預測與避碰規劃。因此,機器人的前進路徑不斷被動態修改,從而在每條局部優化路徑引導下,使機器人沿一條全局優化的路徑到達目標點。但其不足是在動態不確定的環境中路徑規劃時間開銷劇增,而且機器人缺乏必要的學習,以至于整個機器人系統路徑難以是最優路徑。
強化學習[10,11](又稱再激勵學習)是一種重要的機器學習方法。它是一種智能體從環境狀態到行為映射的學習,使得行為從環境中獲得積累獎賞值最大。其原理如圖1所示。
強化學習算法一般包含了兩個步驟:a)從當前學習循環的值函數確定新的行為策略;b)在新的行為策略指導下,通過所獲得的瞬時獎懲值對該策略進行評估。學習循環過程如下所示,直到值函數和策略收斂:
v0π1v1π2…v*π*v*
目前比較常見的強化學習方法有:MonteCarlo方法、動態規劃方法、TD(時間差分)方法。其中TD算法包含Sarsa算法、Q學習算法以及Dyna-Q算法等。其Q值函數迭代公式分別為
TD(0)策略:V(si)V(si)+α[γi+1+γV(si+1)-V(si)]
Sarsa算法:Q(st,at)Q(st,at)+α[γt+1+γQ(st+1,at.+1)-Q(st,at)]Qs′學習算法:Qπ(s,a)=∑Pαss′[Rass′+γVπ(s′)]
近年來,基于強化學習的路徑規劃日益成為國內外學者研究的熱點。M.J.Mataric[12]首次把強化學習引入到多機器人環境中。而基于強化學習的多機器人路徑規劃的優點主要體現在:無須建立精確的環境模型,簡化了智能體的編程;無須構建環境地圖;強化學習可以把路徑規劃、避碰、避障、協作等問題統一解決。
張芳等人[13]提出了基于再激勵協調避障路徑規劃方法,把再勵函數設計為基于行為分解的無模型非均勻結構,新的再勵函數結構使得學習速度得以提高且有較好的魯棒性。同時,證明了在路徑規劃中,機器人的趨向目標和避障行為密切相關,對反映各基本行為的再勵函數取加權和來表示總的再勵函數要優于取直接和的表示方式,也反映了再勵函數設計得合理與否及其確切程度將影響再勵學習的收斂速度。王醒策等人[14]在動態編隊的強化學習算法方面展開了研究。宋一然[15]則提出了分段再勵函數的強化學習方法進行路徑規劃。其缺點是學習次數較多、效率不高,當機器人數目增加時,它有可能面臨維數災難的困難。所以,基于強化學習的路徑規劃在多機器人環境下的學習將變得比較困難,需要對傳統的強化學習加以優化,如基于人工神經網絡的強化學習[16]等。
3)其他方法除了以上國內外幾種比較常見且研究較多的方法外,還有唐振民等人[17]提出的基于動態規劃思想的多機器人路徑規劃,把運籌學中的動態規劃思想與Dijkstra算法引入到多機器人的路徑規劃中,用動態規劃的基本思想來解決圖論中的費用流問題和路徑規劃中的層級動態聯盟問題。其選擇距離鄰近法作為聯盟參考依據。一個機器人的鄰居是指在地理位置上分布在這個機器人周圍的其他機器人;與該機器人最近鄰的機器人為第一層鄰居,第一層鄰居的鄰居為該機器人的第二層鄰居,依此類推。那么層級越高(即越近)的鄰居,它滿足協作要求的可能性越大。動態規劃算法實質上是一種以空間換時間的技術,它在實現的過程中,必須存儲產生過程中的各種狀態,其空間復雜度要大于其他算法,故動態規劃方法比較適合多機器人的全局路徑規劃。
孫茂相等人[18]提出了最優控制與智能決策相結合的多移動機器人路徑規劃方法。其首先構造一個以各機器人最優運動狀態數據庫為核心的實時專家系統,在離線狀態下完成;然后各機器人在此專家系統的支持下,以最優規劃策略為基礎,采用速度遷移算法,自主決定其控制。該方法擁有較好的穩定性與復雜度。焦立男等人[19]提出的基于局部傳感和通信的多機器人運動規劃框架較好地解決了多機器人路徑規劃在局部在線規劃的系統框架問題。沈捷等人[20]提出了保持隊形的多移動機器人路徑規劃。以基于行為的導航算法為基礎,把機器人隊列的運動過程劃分為正常運動、避障和恢復隊形三個階段。在避障階段,引入虛擬機器人使隊形保持部分完整;當隊形被嚴重打亂時,規劃機器人的局部目標位姿使隊列快速恢復隊形。其算法重點為避障機器人進入避障狀態,暫時脫離隊列,并以虛擬機器人代替避障機器人。
2多機器人避碰和避障
避障和避碰是多機器人路徑規劃研究中需要考慮的重點問題之一。避障和避碰主要討論的內容有防止碰撞;沖突消解、避免擁塞;如何避免死鎖。在路徑規劃中常見的多機器人避障方法[21]有主從控制法、動態優先法(建立在機器人之間的通信協商上)、交通規則法、速率調整法,以及障礙物膨脹法、基于人工勢場的方法等。
目前國內外對于多機器人避障展開的研究還不是很多,比較典型的有徐潼等人[22]以Th.Fraichard的思想為基礎,擴充并完善了路徑/速度分解方案來協調多機器人,設立集中管理agent進行整體規劃,為每個機器人規劃路徑;并根據優先級規則對運動特征進行分布式規劃以避免機器人間的沖突。周明等人[23]提出分布式智能避撞規劃系統,將原來比較復雜的大系統轉換為相對簡單的子系統問題,由各智能機器人依據任務要求和環境變化,獨立調整自身運動狀態,完成任務的分布式智能決策體系結構。任炏等人[24]提出了基于過程獎賞和優先掃除的強化學習多機器人系統的沖突消解方法。該算法能夠顯著減少沖突,避免死鎖,提高了系統整體性能。歐錦軍等人[25]提出了通過調整機器人的運動速度實現多機器人避碰,將避碰問題轉換為高維線性空間的優化問題,并進一步將其轉換為線性方程的求解。該方法的缺點是系統的復雜度較高、計算量太大。
人工勢場方法的特點是計算簡潔、實時性強、便于數學描述,且適合于多自由度機器人環境,但容易產生抖動和陷入局部極小。為了克服其缺點,景興建等人[26]提出了人工協調場的方法,在傳統排斥力場中增加一個協調力,并將吸引力、排斥力和協調力與局部環境下機器人的運動狀態和運動要求結合起來,有效地保證機器人的安全性,提高機器人在復雜動態環境下行為決策的準確性和魯棒性。
3多機器人協作和協調機制
多機器人間的運動協調[27~31]是多機器人路徑規劃的關鍵,也是多機器人與單機器人路徑規劃相區別的根本所在。多機器人系統在復雜動態實時環境下,由于受到時間、資源及任務要求的約束,需要在有限時間、資源的情況下進行資源分配、任務調配、沖突解決等協調合作問題,而機器人間的協調與協作,能夠大大地提高整個系統的效率和魯棒性,成為系統完成控制或解決任務的關鍵。
目前已有的協調方式分為集中式、分布式和混合式三種。在集中式協調中,集中規劃器詳細地規劃出每個機器人的動作,通常的做法是將多個機器人看做一個多自由度的機器人進行規劃;而分布式協調規劃中,機器人之間進行合作,將一個任務分成多個子任務,根據各自的特點完成不同的子任務,從而共同完成總任務;混合式協調是集中式和分布式混合在一起的形式。
多機器人間典型的協調方法[32]有合同網協議[33]、黑板模型、結果共享的協同方法、市場機制。近年來強化學習在多機器人協作方面也得到很好的應用,陳雪江[32]在基于強化學習的多機器人協作方面展開了研究,提出了多智能體協作的兩層強化學習方法來求解在多智能體完全協作、有通信情況下的協作問題。其主要通過在單個智能體中構筑兩層強化學習單元來實現:第一層強化學習單元負責學習智能體的聯合任務協作策略;第二層強化學習單元負責學習在本智能體看來是最有效的行動策略。陳偉等人[34]提出基于多目標決策理論的多機器人協調方法;通過對環境的拓撲建模,從基于行為的機器人學角度出發,對任務進行分解并設計目標行為,以多目標行為決策理論作為決策支持,從而達到多機器人運動協調的目的。
4多機器人路徑規劃方(算)法的判優準則
通常評價機器人路徑規劃方(算)法的標準文獻[35]有正確性、時間/空間復雜度、并行性、可靠性、擴展性、魯棒性和學習。而多機器人的路徑規劃除了以上一些衡量標準之外,還需要考慮整個系統的最優化以及機器人間的協調性。
1)正確性是分析算法的最基本的原則之一。一般來說算法的正確性是指:在給定有效的輸入數據后,算法經過有窮時間的計算能給出正確的答案。但在多機器人路徑規劃算法中,正確性主要指:路徑規劃算法要生成多個機器人協調運動的無碰安全路徑;這條路徑是優化的。
2)安全性一般指多機器人所生成的各路徑中節點與障礙物有一定的距離。但在實際的應用背景下,有人認為安全性可以從兩個方面來理解:a)狹義地講,它就是機器人在行走過程中所做的功。在一定的條件下,它與路徑長度準則是一致的。b)廣義地講,它是各種優化條件加權綜合而得到的結果。
3)復雜度一個算法的復雜性高低體現在該算法所需要的計算機資源的多少上面。所需要的資源越多,該算法的復雜性越高;反之,所需要的資源越少,該算法的復雜性就越低。算法的復雜性包括時間復雜度和空間復雜度。
在多機器人的路徑規劃算法中,算法的復雜度分析顯得尤為重要。一般地,單機器人路徑規劃算法的時空復雜度已經頗高,它們的數量級至少是O(n2);多機器人的路徑規劃算法不僅是m-O(n2)(即m個機器人路徑規劃簡單地疊加),它們之間還存在著對運動空間競爭的沖突,面對不斷變化的沖突的協調需要花費大量的時間和空間。通常多機器人的路徑規劃算法與機器人的個數呈指數關系O(km×n2)(k為常數)。這對多機器人路徑規劃算法的時間/空間復雜度控制是一個很嚴峻的考驗。
4)并行性算法的并行性從算法設計、編寫程序、編譯和運行等多個不同的層次來體現。路徑規劃過程需要大量的計算,當處理的環境比較復雜,機器人工作的環境過于緊湊,尤其是機器人數量很多時,算法的時間/空間復雜度勢必會成為算法效率的關鍵。因此,在算法設計和運行上的并行性是通常考慮的方法。對多個機器人的路徑規劃盡量采用分布式多進程的規劃機制,以實現每個機器人路徑規劃的并行性。
5)可靠性把多個機器人及其工作環境看成是一個系統,多機器人處于它們各自的起始點時,稱該系統處于初始狀態;當它們處于各自的目標點時,稱該系統處于目標狀態。多機器人的路徑規劃就是在該系統的這兩個狀態間建立一串合理的狀態變遷。這一狀態變遷過程可能會歷經許多狀態,如果在狀態變遷過程中,路徑規劃算法控制不好各狀態間的轉移關系,就會導致系統紊亂,出現機器人間的碰撞、找不到路徑等惡性后果,使任務失敗。所以這就對算法的可靠性和完備性提出了挑戰。為了很好地克服這一困難,需要對系統的各種可能狀態建模,分析它們相互間的關系,建立有限狀態自動機模型或Petri網模型,并以此為指導,按照軟件工程的思想,構造恰當的算法輸入來對算法的可靠性進行檢驗。
6)可擴展性在多機器人的路徑規劃算法中,可擴展性主要是指一種路徑規劃算法在邏輯上,或者說在實現上能否容易地從2D空間擴展到3D空間,從低自由度擴展到高自由度,從較少的機器人數到更多的機器人數。可擴展性在各種路徑規劃算法之間沒有一種量的比較標準,只能從實際的具體情況出發、從對環境描述的適宜程度出發、從算法解決這一問題的復雜度出發、從算法本身的自適應出發等來考慮。
7)魯棒性和學習魯棒性對于多機器人系統非常重要。因為許多應用,如路徑規劃要求連續的作業、系統中的單個機器人出現故障或被破壞,要求機器人利用剩余的資源仍然能夠完成任務。學習是在線適應特定的任務。雖然通用的系統非常有用,但將它用于特定應用上時,通常需要調整一些參數。具有在線調整相關參數的能力是非常吸引人的,這在將體系結構轉移到其他應用時可以節省許多工作。尤其是多機器人系統中機器人的自身學習和相互間的學習能夠大大提高整個系統的效率和系統的穩定性。
8)最優化對動態環境有優化反應。由于有些應用領域涉及的是動態的環境條件,具有根據條件優化系統的反應能力成為能否成功的關鍵。
5結束語
綜上所述,國內外研究者在多機器人路徑規劃取得了一些成果,但是在協作、學習、通信機制等方面仍面臨很大的困難和不足。如何進一步提高機器人間的協調性,增強機器人自身以及相互間的學習以提高多機器人系統的效率和魯棒性都有待深入研究。近年來無線通信技術得到長足發展,但在目前的技術條件下,在多機器人系統中實現所有機器人之間的點對點實時通信還有較大困難,這也是大多數多機器人系統仍然采用集中通信方式的主要原因。因此,如何降低多機器人系統對通信速度的依賴程度也是一個非常重要的問題。
總之,多機器人路徑規劃設計和實現是一項極其復雜的系統工程,展望其能在結合計算智能方法,如差分進化、遺傳算法、粒子群算法、免疫算法、模糊邏輯算法、BP網絡、人工勢場的改進、模擬退火和環境建模方法等方面取得新的突破。
參考文獻:
[1]WEISSG.Multiagentsystems:amodernapproachtodistributedmodernapproachtoartificialintelligence[M].Cambridge,Massachusetts:MITPress,1999:121-161.
[2]蔡自興,徐光祐.人工智能及其應用:研究生用書[M].3版.北京:清華大學出版社,2004:124-198.
[3]譚民,王碩,曹志強.多機器人系統[M].北京:清華大學出版社,2005:6-81.
[4]薄喜柱,洪炳熔.動態環境下多移動機器人路徑規劃的一種新方法[J].機器人,2001,23(5):407-410.
[5]顧國昌,李亞波.基于總體勢減小的動態調度技術解決多機器人的路徑規劃[J].機器人,2001,23(2):171-174.
[6]孫樹棟,林茂.基于遺傳算法的多移動機器人協調路徑規劃[J].自動化學報,2000,26(5):672-676.
[7]周明,孫樹棟,彭炎午.基于遺傳算法的多機器人系統集中協調式路徑規劃[J].航空學報,2000,21(2):146-149.
[8]CAIZixing,PENGZhihong.Cooperativecoevolutionaryadaptivegeneticalgorithminpathplanningofcooperativemultimobilerobotsystems[J].JournalofIntelligentandRoboticSystems:TheoryandApplications,2002,33(1):61-71.
[9]朱慶保.全局未知環境下多機器人運動螞蟻導航算法[J].軟件學報,2006,17(9):1890-1898.
[10]SANDHOLMTW,CRITESRH.Multiagentreinforcementlearningintheiteratedprisoner’sdilemma[J].BioSystems,1996,37(1):147-166.
[11]高陽,陳世福,陸鑫.強化學習研究綜述[J].自動化學報,2004,30(1):
86-100.
[12]MATARICMJ.Interactionandintelligentbehavior[D].Massachusetls:DepartmentofElectricalEngineeringandComputerScience,MIT,1994.
[13]張芳,顏國正,林良明.基于再勵學習的多移動機器人協調避障路徑規劃方法[J].計算機工程與應用,2003,39(3):80-83.
[14]王醒策,張汝波,顧國昌.多機器人動態編隊的強化學習算法研究[J].計算機研究與發展,2003,40(10):1444-1450.
[15]宋一然.基于強化學習的多機器人路徑規劃方法[J].莆田學院學報,2006,13(2):38-41.
[16]韓學東,洪炳熔.基于人工神經網絡的多機器人協作學習研究[J].計算機工程與設計,2002,23(6):1-3.
[17]唐振民,趙春霞,楊靜宇,等.基于動態規劃思想的多機器人路徑規劃[J].南京理工大學學報,2003,27(5):610-615.
[18]孫茂相,周明,王艷紅,等.多移動機器人實時最優運動規劃[J].控制與決策,1998,
13(2):125-130.
[19]焦立男,唐振民.基于局部傳感和通訊的多機器人運動規劃框架[J].計算機工程與應用,2007,43(17):89-93.
[20]沈捷,費樹岷,鄭波.多移動機器人保持隊形路徑規劃[J].東南大學學報,2005,35(3):391-395.
[21]MANSORMA,MORRISAS.Pathplanninginunknownenvironmentwithobstaclesusingvirtualwindow[J].JournalofIntelligentandRoboticSystems,1999,24(3):235-251.
[22]徐潼,唐振民.多機器人系統中的動態避碰規劃[J].計算機工程,2003,29(17):
79-81,104.
[23]周明,孫茂相,尹朝萬,等.多移動機器人分布式智能避撞規劃系統[J].機器人,1999,21(2):139-143.
[24]任炏,陳宗海.基于強化學習算法的多機器人系統的沖突消解的方法[J].控制與決策,2006,21(4):430-434,439.
[25]歐錦軍,朱楓.一種多移動機器人避碰規劃方法[J].機器人,2000,22(6):474-481.
[26]景興建,王越超,談大龍.基于人工協調場的多移動機器人實時協調避碰規劃[J].控制理論與應用,2004,21(5):757-764.
[27]PANAITL,LUKES.Cooperativemultiagentlearning:thestateoftheart[J].AutonomousAgentsandMultiAgentSystems,2005,11(3):387-434.
[28]TZAFESTASCS,PROKOPIOUPA,TZAFESTASSG.Pathplanningandcontrolofacooperativethreerobotsystemmanipulatinglargeobjects[J].JournalofIntelligentandRoboticSystems,1998,22(2):99-116.
[29]薛宏濤,葉媛媛,沈林成,等.多智能體系統體系結構及協調機制研究綜述[J].機器人,2001,23(1):85-90.
[30]周風余,李貽斌,宋銳,等.基于混合式多智能體系統的協作多機器人系統研究[J].山東大學學報:工學版,2005,35(1):82-87.
[31]夏冰,張佐,張毅,等.基于多智能體系統的動態路徑選擇算法研究[J].公路交通科技,2003,20(1):93-96.
[32]陳雪江.基于強化學習的多機器人協作機制研究[D].杭州:浙江工業大學,2004.
[33]SMITHR.Thecontractnetprotocol:highlevelcommunicationandcontrolinadistributedproblemsolver[J].IEEETransonComputer,1980,C-29(12):1104-1113.
[34]陳偉,張銘鈞,孟憲松.基于多目標決策理論的多機器人協調方法[J].哈爾濱工程大學學報,2003,24(3):308-312.
[35]李亞波.多機器人的路徑規劃與協調[D].哈爾濱:哈爾濱工程大學,2000.
摘要:在查閱大量文獻的基礎上對多機器人路徑規劃的主要研究內容和研究現狀進行了分析和總結,討論了多機器人路徑規劃方法的評判標準,并闡述了研究遇到的瓶頸問題,展望了多機器人路徑規劃方法的發展趨勢。
Abstract: Through the introduction of the interesting questions of programming contest, which can help to stimulate the students' interest in learning and to raise the students' practical ability. This paper solves a classic competition topic named energy necklace problem by using a typical example named matrix multiply problem of the dynamic programming method, analyzes the similarity and difference of this two problems, and obtains the solving method of energy necklace problem.
關鍵詞: 動態規劃;矩陣連乘問題;能量項鏈問題
Key words: dynamic programming;matrix multiply problem;energy necklace problem
中圖分類號:G42;TP39 文獻標識碼:A 文章編號:1006-4311(2012)35-0170-02
0 引言
在軟件工程專業的算法分析與設計課程中,筆者進行了相關的教學改革,其中最突出的一點就是在講每種算法設計方法時,都從ACM競賽或NOI競賽中挑選有趣的且適合的競賽題目來引入要講的這個例子。例如,在講動態規劃算法時,通過賽題“能量項鏈問題”來引入矩陣連乘問題,通過賽題“回文詞的構造”來引入最長公共子序列問題等。通過這些競賽題目的引入,極大地激發了學生的學習興趣。本文要討論的就是如何利用所學的矩陣連乘問題來解決經典的競賽題目“能量項鏈問題”。
1 問題描述
1.1 矩陣連乘問題 幾乎在任何一本關于算法分析與設計課程的教材中,在介紹動態規劃算法時,都無一例外的會講授矩陣連乘問題,該問題是能用利用動態規劃方法解決的典型問題。該問題是說:給定n個矩陣A1,A2,…,An,其中矩陣Ai(1≤i≤n)的維數為pi×pi+1,于是相鄰的兩個矩陣就是可以相乘的。考慮這n個矩陣的連乘積A1A2…An,由于矩陣乘法滿足結合律,所以求解這個矩陣連乘積時可以有許多不同的計算次序,每種計算次序都對應一個乘法次數。那么矩陣連乘問題就是要確定一個矩陣連乘積的一種最優計算次序,使得計算一個矩陣連乘積時,所需要的乘法次數最少。
假設用二維數組m來保存問題的最優值,數組元素m[i][j]保存的是求解矩陣連乘積AiAi+1…Aj-1Aj時所需的最少乘法次數。則根據最優子結構性質,容易建立m[i][j]所滿足的遞推關系式如下。
(1)i=j m[i][j]=0
(2)i
根據遞推關系式容易給出求解最小乘法次數的動態規劃算法,如下所示。
int p[100],m[100][100];
void matrix_min(int n)
{ for(int i=1;i
m[i][i]=0;
for(int r=2;r
for(int i=1;i
{ int j=i+r-1;
m[i][j]=m[i+1][j]+p[i]*p[i+1]*p[j+1];
for(int k=i+1;k
{ int min=m[i][k]+m[k+1][j]+p[i]*p[k+1]*p[j+1];
if (minm[i][j])
m[i][j]=min;
}
}
}
調用該算法可求出n個矩陣相乘時所需的最少乘法次數,若要求n個矩陣相乘時所需的最大乘法次數則只需將matrix_min算法中if語句條件中的“”即可,為了便于描述,將求n個矩陣相乘時所需的最大乘法次數的算法命名為matrix_max算法。
1.2 能量項鏈問題 在NOIP2006提高組復賽試題中有一道題目,叫做“能量項鏈問題”,題目的大致含義是:在一串能量項鏈上有N顆能量珠。能量珠是一顆有頭標記與尾標記的珠子,這些標記對應著某個正整數。對于相鄰的兩顆珠子,前一顆珠子的尾標記一定等于后一顆珠子的頭標記。因為只有這樣,這兩顆珠子才能聚合成一顆珠子,同時釋放出能量。如果前一顆能量珠的頭標記為m,尾標記為r,后一顆能量珠的頭標記為r,尾標記為n,則這兩顆能量珠聚合后釋放的能量為m×r×n,新產生的珠子的頭標記為m,尾標記為n。
顯然,N顆珠子聚合成一顆珠子時會有許多不同的聚合次序,不同的聚合順序得到的總能量是不同的,能量項鏈問題就是要確定N顆珠子聚合時的一種最優聚合次序,使得按照這種次序將N顆珠子聚合成一顆珠子時,釋放出的總能量最大。
例如:設N=4,4顆珠子的頭標記與尾標記依次為(2,3),(3,5),(5,10),(10,2)。則這4顆珠子的一種最優聚合次序及釋放出的最大能量值如下。
((4?茌1)?茌2)?茌3)=10×2×3+10×3×5+10×5×10=710。
符號?茌表示聚合操作。
2 矩陣連乘問題與能量項鏈問題的相似性與相異性
由以上兩個問題的描述可知,它們之間有許多相似之處,其相似性可歸納為以下五點。
①矩陣和珠子非常相似,每個矩陣都有行數和列數,每個珠子都有頭標記和尾標記;②對于相鄰的兩個矩陣來說,前一個矩陣的列等于后一個矩陣的行,對于相鄰的兩個珠子來說,前一個珠子的尾標記等于后一個珠子的頭標記;③相鄰的兩個矩陣相乘時所需的乘法次數為這兩個矩陣的三個維數的乘積,相鄰的兩個珠子聚合時所產生的能量為這兩個珠子的三個標記的乘積;④兩個矩陣相乘后得到一個矩陣,這個矩陣的行數為第一個矩陣的行,這個矩陣的列數為第二個矩陣的列,中間相同的維數抵消了。兩個珠子聚合后得到一個珠子,這個珠子的頭標記為第一個珠子的頭標記,這個珠子的尾標記為第二個珠子的尾標記,中間相同的標記抵消了;⑤n個矩陣相乘時,一種計算次序所對應的乘法次數是每一次相乘時所需的乘法次數之和,n個珠子聚合時,一種聚合次序所對應的能量值是每一次聚合時所產生的能量之和。
當然,兩個問題之間也有區別,主要有兩點。①在矩陣連乘問題中,第n個矩陣和第1個矩陣是不相鄰的,而在能量項鏈問題中,第n個珠子和第1個珠子是相鄰的,第n個珠子的尾標記一定要等于第1個珠子的頭標記,這兩個珠子是可以進行聚合操作的;②在矩陣連乘問題中,是要確定n個矩陣相乘的一種最優計算次序,使得所需要的乘法次數最少。而在能量項鏈問題中,是要確定n個珠子聚合時的一種最優聚合次序,使得釋放的總能量值最大。
3 能量項鏈問題的解法探討
鑒于以上分析,能量項鏈問題其實就是一個特殊的矩陣連乘問題,可將一個珠子看成是一個矩陣,將n個珠子構成的能量項鏈看成是由n個矩陣構成的環形矩陣連乘積,只不過在這個環形矩陣連乘積中,第n個矩陣的列數一定要等于第1個矩陣的行數。兩個珠子聚合后產生的能量值就是它們對應的兩個矩陣相乘時所需的乘法次數,n個珠子聚合成一個珠子時產生的總能量值就是這n個矩陣相乘后得到一個矩陣時所需的總的乘法次數,要確定n個珠子聚合時的一種最優聚合次序,使得釋放的總能量值最大。也就是要確定這n個矩陣構成的環形矩陣連乘問題的一種最優計算次序,使得所需的乘法次數達到最大。
在n個矩陣直線相乘時,第n個矩陣和第1個矩陣是不相鄰的,即這兩個矩陣是不能相乘的。而當這n個矩陣環形相乘時,第n個矩陣和第1個矩陣是相鄰的,這兩個矩陣是可以相乘的,這種相鄰性的改變使問題變得復雜了。在n個矩陣直線相乘時,長度為n的矩陣連乘積只有一種,就是A1A2…An,而當n個矩陣環形相乘時,長度為n的矩陣連乘積就有n種,分別是:A1A2…An-1An,A2A3…AnA1,依此類推,最后一種是AnA1…An-2An-1。其實要表示出這n種情況,可將n個矩陣構成的圓環在矩陣An和A1之間斷開,拉成一條直線,然后在矩陣An的后面添加上n-1個矩陣,也就是添加上A1A2…An-2An-1,這樣就形成了一個長度為2n-1的直線矩陣鏈,顯然在這個長度為2n-1的直線矩陣鏈中,上述n種情況都可以表示出來。
若用An+i來表示新添加的第i個矩陣,這里1≤i≤n-1,則有An+i=Ai。對于這個長度為2n-1的直線矩陣連乘問題來說,上述n種直線相乘的情況就是這個問題的n個子問題,因此,只需要利用matrix_max算法求長度為2n-1的直線矩陣連乘問題的最大乘法次數即可,在以自底向上方式計算它的最大乘法次數時,所有長度為n的子矩陣連乘積所需的最大乘法次數都已經求完了,共有n個,由matrix_max算法的思想可知,長度為n的子矩陣連乘積所需的最大乘法次數可表示為m[i][i+n-1],這里1≤i≤n,最終這n個m[i][i+n-1]中的最大者就是n個矩陣環形相乘時所需的最大乘法次數。
根據上述方法求解環形矩陣連乘問題最優值的步驟可歸納為三步。
①擴充操作,添加n-1個矩陣,從而將長度為n的環形矩陣連乘問題轉化為長度為2n-1的直線矩陣連乘問題;②調用matrix_max算法求長度為2n-1的直線矩陣連乘問題的最優值;③求n個m[i][i+n-1]中的最大者。
根據上述思想,其求解算法如下所示。
int circlematrix(int n)
{ int i, max=0;
for(i=2;i
p[n+i]=p[i];
matrix_max(2*n-1);
for(i=1;i
if(m[i][i+n-1]>max)
max=m[i][i+n-1];
return max;
}
4 結論
本文利用“矩陣連乘問題”解決了一道經典的競賽題目“能量項鏈問題”,在授課程過程中,筆者曾以一個學生為例引入了這道競賽題目,課堂效果非常好。通過競賽題目的引入和講解,有利于激發學生的學習興趣,對算法分析與設計課程不再有畏難心理,提高學生的算法設計能力,并有利于開展素質教育活動,積極指導學生參加學科競賽。
參考文獻:
[1]潘金貴,顧鐵成等譯.算法導論[M].北京:機械工業出版社,2007:197-202.