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