-
當(dāng)前位置:首頁 > 創(chuàng)意學(xué)院 > 技術(shù) > 專題列表 > 正文
路徑規(guī)劃問題算法(路徑規(guī)劃問題算法公式)
大家好!今天讓創(chuàng)意嶺的小編來大家介紹下關(guān)于路徑規(guī)劃問題算法的問題,以下是小編對(duì)此問題的歸納整理,讓我們一起來看看吧。
開始之前先推薦一個(gè)非常厲害的Ai人工智能工具,一鍵生成原創(chuàng)文章、方案、文案、工作計(jì)劃、工作報(bào)告、論文、代碼、作文、做題和對(duì)話答疑等等
只需要輸入關(guān)鍵詞,就能返回你想要的內(nèi)容,越精準(zhǔn),寫出的就越詳細(xì),有微信小程序端、在線網(wǎng)頁版、PC客戶端
官網(wǎng):https://ai.de1919.com。
創(chuàng)意嶺作為行業(yè)內(nèi)優(yōu)秀的企業(yè),服務(wù)客戶遍布全球各地,如需了解SEO相關(guān)業(yè)務(wù)請(qǐng)撥打電話175-8598-2043,或添加微信:1454722008
本文目錄:
一、A*算法用于路徑規(guī)劃,有什么缺點(diǎn)?
缺點(diǎn):A*算法通過比較當(dāng)前路徑柵格的8個(gè)鄰居的啟發(fā)式函數(shù)值F來逐步確定下一個(gè)路徑柵格,當(dāng)存在多個(gè)最小值時(shí)A*算法不能保證搜索的路徑最優(yōu)。
A*算法;A*(A-Star)算法是一種靜態(tài)路網(wǎng)中求解最短路徑最有效的直接搜索方法。估價(jià)值與實(shí)際值越接近,估價(jià)函數(shù)取得就越好。A*[1] (A-Star)算法是一種靜態(tài)路網(wǎng)中求解最短路最有效的直接搜索方法。注意是最有效的直接搜索算法。之后涌現(xiàn)了很多預(yù)處理算法(ALT,CH,HL等等),在線查詢效率是A*算法的數(shù)千甚至上萬倍。公式表示為: f(n)=g(n)+h(n),其中 f(n) 是從初始點(diǎn)經(jīng)由節(jié)點(diǎn)n到目標(biāo)點(diǎn)的估價(jià)函數(shù),g(n) 是在狀態(tài)空間中從初始節(jié)點(diǎn)到n節(jié)點(diǎn)的實(shí)際代價(jià),h(n) 是從n到目標(biāo)節(jié)點(diǎn)最佳路徑的估計(jì)代價(jià)。保證找到最短路徑(最優(yōu)解的)條件,關(guān)鍵在于估價(jià)函數(shù)f(n)的選?。汗纼r(jià)值h(n)<= n到目標(biāo)節(jié)點(diǎn)的距離實(shí)際值,這種情況下,搜索的點(diǎn)數(shù)多,搜索范圍大,效率低。但能得到最優(yōu)解。并且如果h(n)=d(n),即距離估計(jì)h(n)等于最短距離,那么搜索將嚴(yán)格沿著最短路徑進(jìn)行, 此時(shí)的搜索效率是最高的。如果 估價(jià)值>實(shí)際值,搜索的點(diǎn)數(shù)少,搜索范圍小,效率高,但不能保證得到最優(yōu)解。
二、遺傳算法路徑規(guī)劃是什么原理
遺傳算法有相當(dāng)大的引用。遺傳算法在游戲中應(yīng)用的現(xiàn)狀在遺傳編碼時(shí), 一般將瓦片的坐標(biāo)作為基因進(jìn)行實(shí)數(shù)編碼, 染色體的第一個(gè)基因?yàn)槠瘘c(diǎn)坐標(biāo), 最后一個(gè)基因?yàn)榻K點(diǎn)坐標(biāo), 中間的基因?yàn)槁窂浇?jīng)過的每一個(gè)瓦片的坐標(biāo)。在生成染色體時(shí), 由起點(diǎn)出發(fā), 隨機(jī)選擇當(dāng)前結(jié)點(diǎn)的鄰居節(jié)點(diǎn)中的可通過節(jié)點(diǎn), 將其坐標(biāo)加入染色體, 依此循環(huán), 直到找到目標(biāo)點(diǎn)為止, 生成了一條染色體。重復(fù)上述操作, 直到達(dá)到指定的種群規(guī)模。遺傳算法的優(yōu)點(diǎn):1、遺傳算法是以決策變量的編碼作為運(yùn)算對(duì)象,可以直接對(duì)集合、序列、矩陣、樹、圖等結(jié)構(gòu)對(duì)象進(jìn)行操作。這樣的方式一方面有助于模擬生物的基因、染色體和遺傳進(jìn)化的過程,方便遺傳操作算子的運(yùn)用。另一方面也使得遺傳算法具有廣泛的應(yīng)用領(lǐng)域,如函數(shù)優(yōu)化、生產(chǎn)調(diào)度、自動(dòng)控制、圖像處理、機(jī)器學(xué)習(xí)、數(shù)據(jù)挖掘等領(lǐng)域。2、遺傳算法直接以目標(biāo)函數(shù)值作為搜索信息。它僅僅使用適應(yīng)度函數(shù)值來度量個(gè)體的優(yōu)良程度,不涉及目標(biāo)函數(shù)值求導(dǎo)求微分的過程。因?yàn)樵诂F(xiàn)實(shí)中很多目標(biāo)函數(shù)是很難求導(dǎo)的,甚至是不存在導(dǎo)數(shù)的,所以這一點(diǎn)也使得遺傳算法顯示出高度的優(yōu)越性。3、遺傳算法具有群體搜索的特性。它的搜索過程是從一個(gè)具有多個(gè)個(gè)體的初始群體P(0)開始的,一方面可以有效地避免搜索一些不必搜索的點(diǎn)。另一方面由于傳統(tǒng)的單點(diǎn)搜索方法在對(duì)多峰分布的搜索空間進(jìn)行搜索時(shí)很容易陷入局部某個(gè)單峰的極值點(diǎn),而遺傳算法的群體搜索特性卻可以避免這樣的問題,因而可以體現(xiàn)出遺傳算法的并行化和較好的全局搜索性。4、遺傳算法基于概率規(guī)則,而不是確定性規(guī)則。這使得搜索更為靈活,參數(shù)對(duì)其搜索效果的影響也盡可能的小。5、遺傳算法具有可擴(kuò)展性,易于與其他技術(shù)混合使用。以上幾點(diǎn)便是遺傳算法作為優(yōu)化算法所具備的優(yōu)點(diǎn)。遺傳算法的缺點(diǎn):遺傳算法在進(jìn)行編碼時(shí)容易出現(xiàn)不規(guī)范不準(zhǔn)確的問題。
三、關(guān)于時(shí)間依賴的最短路徑算法
Dijkstra 最短路徑算法的一種高效率實(shí)現(xiàn)*
隨著計(jì)算機(jī)的普及以及地理信息科學(xué)的發(fā)展,GIS因其強(qiáng)大的功能得到日益廣泛和深入的應(yīng)用。網(wǎng)絡(luò)分析作為GIS最主要的功能之一,在電子導(dǎo)航、交通旅游、城市規(guī)劃以及電力、通訊等各種管網(wǎng)、管線的布局設(shè)計(jì)中發(fā)揮了重要的作用,而網(wǎng)絡(luò)分析中最基本最關(guān)鍵的問題是最短路徑問題。最短路徑不僅僅指一般地理意義上的距離最短,還可以引申到其他的度量,如時(shí)間、費(fèi)用、線路容量等。相應(yīng)地,最短路徑問題就成為最快路徑問題、最低費(fèi)用問題等。由于最短路徑問題在實(shí)際中常用于汽車導(dǎo)航系統(tǒng)以及各種應(yīng)急系統(tǒng)等(如110報(bào)警、119火警以及醫(yī)療救護(hù)系統(tǒng)),這些系統(tǒng)一般要求計(jì)算出到出事地點(diǎn)的最佳路線的時(shí)間應(yīng)該在1 s~3 s內(nèi),在行車過程中還需要實(shí)時(shí)計(jì)算出車輛前方的行駛路線,這就決定了最短路徑問題的實(shí)現(xiàn)應(yīng)該是高效率的。其實(shí),無論是距離最短、時(shí)間最快還是費(fèi)用最低,它們的核心算法都是最短路徑算法。經(jīng)典的最短路徑算法——Dijkstra算法是目前多數(shù)系統(tǒng)解決最短路徑問題采用的理論基礎(chǔ),只是不同系統(tǒng)對(duì)Dijkstra算法采用了不同的實(shí)現(xiàn)方法。
據(jù)統(tǒng)計(jì),目前提出的此類最短路徑的算法大約有17種。F.Benjamin Zhan等人對(duì)其中的15種進(jìn)行了測(cè)試,結(jié)果顯示有3種效果比較好,它們分別是:TQQ(graph growth with two queues)、DKA (the Dijkstra's algorithm implemented with approximate buckets) 以及 DKD (the Dijkstra�s algorithm implemented with double buckets ),這些算法的具體內(nèi)容可以參見文獻(xiàn)〔1〕。其中TQQ算法的基礎(chǔ)是圖增長理論,較適合于計(jì)算單源點(diǎn)到其他所有點(diǎn)間的最短距離;后兩種算法則是基于Dijkstra的算法,更適合于計(jì)算兩點(diǎn)間的最短路徑問題〔1〕。總體來說,這些算法采用的數(shù)據(jù)結(jié)構(gòu)及其實(shí)現(xiàn)方法由于受到當(dāng)時(shí)計(jì)算機(jī)硬件發(fā)展水平的限制,將空間存儲(chǔ)問題放到了一個(gè)很重要的位置,以犧牲適當(dāng)?shù)臅r(shí)間效率來換取空間節(jié)省。目前,空間存儲(chǔ)問題已不是要考慮的主要問題,因此有必要對(duì)已有的算法重新進(jìn)行考慮并進(jìn)行改進(jìn),可以用空間換時(shí)間來提高最短路徑算法的效率。
1 經(jīng)典Dijkstra算法的主要思想
Dijkstra算法的基本思路是:假設(shè)每個(gè)點(diǎn)都有一對(duì)標(biāo)號(hào) (dj, pj),其中dj是從起源點(diǎn)s到點(diǎn)j的最短路徑的長度 (從頂點(diǎn)到其本身的最短路徑是零路(沒有弧的路),其長度等于零);pj則是從s到j(luò)的最短路徑中j點(diǎn)的前一點(diǎn)。求解從起源點(diǎn)s到點(diǎn)j的最短路徑算法的基本過程如下:
1) 初始化。起源點(diǎn)設(shè)置為:① ds=0, ps為空;② 所有其他點(diǎn): di=∞, pi= ;③ 標(biāo)記起源點(diǎn)s,記k=s,其他所有點(diǎn)設(shè)為未標(biāo)記的。
2) 檢驗(yàn)從所有已標(biāo)記的點(diǎn)k到其直接連接的未標(biāo)記的點(diǎn)j的距離,并設(shè)置:
dj=min〔dj, dk+lkj〕
式中,lkj是從點(diǎn)k到j(luò)的直接連接距離。
3) 選取下一個(gè)點(diǎn)。從所有未標(biāo)記的結(jié)點(diǎn)中,選取dj 中最小的一個(gè)i:
di=min〔dj, 所有未標(biāo)記的點(diǎn)j〕
點(diǎn)i就被選為最短路徑中的一點(diǎn),并設(shè)為已標(biāo)記的。
4) 找到點(diǎn)i的前一點(diǎn)。從已標(biāo)記的點(diǎn)中找到直接連接到點(diǎn)i的點(diǎn)j*,作為前一點(diǎn),設(shè)置:
i=j*
5) 標(biāo)記點(diǎn)i。如果所有點(diǎn)已標(biāo)記,則算法完全推出,否則,記k=i,轉(zhuǎn)到2) 再繼續(xù)。
2 已有的Dijkstra算法的實(shí)現(xiàn)
從上面可以看出,在按標(biāo)記法實(shí)現(xiàn)Dijkstra算法的過程中,核心步驟就是從未標(biāo)記的點(diǎn)中選擇一個(gè)權(quán)值最小的弧段,即上面所述算法的2)~5)步。這是一個(gè)循環(huán)比較的過程,如果不采用任何技巧,未標(biāo)記點(diǎn)將以無序的形式存放在一個(gè)鏈表或數(shù)組中。那么要選擇一個(gè)權(quán)值最小的弧段就必須把所有的點(diǎn)都掃描一遍,在大數(shù)據(jù)量的情況下,這無疑是一個(gè)制約計(jì)算速度的瓶頸。要解決這個(gè)問題,最有效的做法就是將這些要掃描的點(diǎn)按其所在邊的權(quán)值進(jìn)行順序排列,這樣每循環(huán)一次即可取到符合條件的點(diǎn),可大大提高算法的執(zhí)行效率。另外,GIS中的數(shù)據(jù) (如道路、管網(wǎng)、線路等)要進(jìn)行最短路徑的計(jì)算,就必須首先將其按結(jié)點(diǎn)和邊的關(guān)系抽象為圖的結(jié)構(gòu),這在GIS中稱為構(gòu)建網(wǎng)絡(luò)的拓?fù)潢P(guān)系 (由于這里的計(jì)算與面無關(guān),所以拓?fù)潢P(guān)系中只記錄了線與結(jié)點(diǎn)的關(guān)系而無線與面的關(guān)系,是不完備的拓?fù)潢P(guān)系)。如果用一個(gè)矩陣來表示這個(gè)網(wǎng)絡(luò),不但所需空間巨大,而且效率會(huì)很低。下面主要就如何用一個(gè)簡(jiǎn)潔高效的結(jié)構(gòu)表示網(wǎng)的拓?fù)潢P(guān)系以及快速搜索技術(shù)的實(shí)現(xiàn)進(jìn)行討論。
網(wǎng)絡(luò)在數(shù)學(xué)和計(jì)算機(jī)領(lǐng)域中被抽象為圖,所以其基礎(chǔ)是圖的存儲(chǔ)表示。一般而言,無向圖可以用鄰接矩陣和鄰接多重表來表示,而有向圖則可以用鄰接表和十字鏈表〔4〕 表示,其優(yōu)缺點(diǎn)的比較見表 1。
表 1 幾種圖的存儲(chǔ)結(jié)構(gòu)的比較
Tab. 1 The Comparsion of Several Graph for Storing Structures
名 稱 實(shí)現(xiàn)方法 優(yōu) 點(diǎn) 缺 點(diǎn) 時(shí)間復(fù)雜度
鄰接矩陣 二維數(shù)組 1. 易判斷兩點(diǎn)間的關(guān)系 占用空間大 O(n2+m*n)
2. 容易求得頂點(diǎn)的度
鄰接表 鏈表 1. 節(jié)省空間 1. 不易判斷兩點(diǎn)間的關(guān)系 O(n+m)或O(n*m)
2. 易得到頂點(diǎn)的出度 2. 不易得到頂點(diǎn)的入度
十字鏈表 鏈表 1. 空間要求較小 結(jié)構(gòu)較復(fù)雜 同鄰接表
2.易求得頂點(diǎn)的出度和入度
鄰接多重表 鏈表 1. 節(jié)省空間 結(jié)構(gòu)較復(fù)雜 同鄰接表
2. 易判斷兩點(diǎn)間的關(guān)系
目前,對(duì)于算法中快速搜索技術(shù)的實(shí)現(xiàn),主要有桶結(jié)構(gòu)法、隊(duì)列法以及堆棧實(shí)現(xiàn)法。TQQ、DKA 以及 DKD 在這方面是比較典型的代表。TQQ雖然是基于圖增長理論的,但是快速搜索技術(shù)同樣是其算法實(shí)現(xiàn)的關(guān)鍵,它用兩個(gè)FIFO的隊(duì)列實(shí)現(xiàn)了一個(gè)雙端隊(duì)列結(jié)構(gòu)來支持搜索過程〔1〕。
DKA和DKD是采用如圖 1 所示的桶結(jié)構(gòu)來支持這個(gè)運(yùn)算,其算法的命名也來源于此。在DKA算法中,第i個(gè)桶內(nèi)裝有權(quán)值落在 〔b*i, (i+1)*b) 范圍內(nèi)的可供掃描的點(diǎn),其中b是視網(wǎng)絡(luò)中邊的權(quán)值分布情況而定的一個(gè)常數(shù)。每一個(gè)桶用隊(duì)列來維護(hù),這樣每個(gè)點(diǎn)有可能被多次掃描,但最多次數(shù)不會(huì)超過b次。最壞情況下,DKA的時(shí)間復(fù)雜度將會(huì)是O(m*b+n(b+C/b)),其中,C為圖中邊的最大權(quán)值。DKD將點(diǎn)按權(quán)值的范圍大小分裝在兩個(gè)級(jí)別的桶內(nèi),高級(jí)別的桶保存權(quán)值較大的點(diǎn),相應(yīng)的權(quán)值較小的點(diǎn)都放在低級(jí)別的桶內(nèi),每次掃描都只針對(duì)低級(jí)別桶中的點(diǎn)。當(dāng)然隨著點(diǎn)的插入和刪除,兩個(gè)桶內(nèi)的點(diǎn)是需要?jiǎng)討B(tài)調(diào)整的。在DKA算法中,給每個(gè)桶一定的范圍以及DKD中使用雙桶,在一定程度上都是以空間換時(shí)間的做法,需要改進(jìn)。
圖 1 一個(gè)桶結(jié)構(gòu)的示例
Fig. 1 An Example of the Bucket Data Structure
3 本文提出的Dijkstra算法實(shí)現(xiàn)
3.1 網(wǎng)絡(luò)拓?fù)潢P(guān)系的建立
上面介紹的各種圖的存儲(chǔ)結(jié)構(gòu)考慮了圖在理論上的各種特征,如有向、無向、帶權(quán)、出度、入度等。而GIS中的網(wǎng)絡(luò)一般為各種道路、管網(wǎng)、管線等,這些網(wǎng)絡(luò)在具有圖理論中的基本特征的同時(shí),更具有自己在實(shí)際中的一些特點(diǎn)。首先,在GIS中大多數(shù)網(wǎng)絡(luò)都是有向帶權(quán)圖,如道路有單雙向問題,電流、水流都有方向(如果是無向圖也可歸為有向圖的特例),且不同的方向可能有不同的權(quán)值。更重要的一點(diǎn)是,根據(jù)最短路徑算法的特性可以知道,頂點(diǎn)的出度是個(gè)重要指標(biāo),但是其入度在算法里則不必考慮。綜合以上4種存儲(chǔ)結(jié)構(gòu)的優(yōu)缺點(diǎn), 筆者采用了兩個(gè)數(shù)組來存儲(chǔ)網(wǎng)絡(luò)圖,一個(gè)用來存儲(chǔ)和弧段相關(guān)的數(shù)據(jù)(Net-Arc List),另一個(gè)則存儲(chǔ)和頂點(diǎn)相關(guān)的數(shù)據(jù)(Net-Node Index)。Net-Arc List用一個(gè)數(shù)組維護(hù)并且以以弧段起點(diǎn)的點(diǎn)號(hào)來順序排列,同一起點(diǎn)的弧段可以任意排序。這個(gè)數(shù)組類似于鄰接矩陣的壓縮存儲(chǔ)方式,其內(nèi)容則具有鄰接多重表的特點(diǎn),即一條邊以兩頂點(diǎn)表示。Net-Node Index則相當(dāng)于一個(gè)記錄了頂點(diǎn)出度的索引表,通過它可以很容易地得到此頂點(diǎn)的出度以及與它相連的第一條弧段在弧段數(shù)組中的位置。此外,屬性數(shù)據(jù)作為GIS不可少的一部分也是必須記錄的。這樣,計(jì)算最佳路徑所需的網(wǎng)絡(luò)信息已經(jīng)完備了。在頂點(diǎn)已編號(hào)的情況下,建立Net-Arc List和Net-Node Index兩個(gè)表以及對(duì)Net-Arc List的排序,其時(shí)間復(fù)雜度共為O(2n+lgn),否則為O(m+2n+lgn)。這個(gè)結(jié)構(gòu)所需的空間也是必要條件下最小的,記錄了m個(gè)頂點(diǎn)以及n條邊的相關(guān)信息,與鄰接多重表是相同的。圖 2 是采用這個(gè)結(jié)構(gòu)的示意圖。
3.2 快速搜索技術(shù)的實(shí)現(xiàn)
無論何種算法,一個(gè)基本思想都是將點(diǎn)按權(quán)值的大小順序排列,以節(jié)省操作時(shí)間。前面已經(jīng)提到過,這兩個(gè)算法都是以時(shí)間換空間的算法,所以在這里有必要討論存儲(chǔ)空間問題 (這部分空間的大小依賴于點(diǎn)的個(gè)數(shù)及其出度)。根據(jù)圖中頂點(diǎn)和邊的個(gè)數(shù)可以求出頂點(diǎn)的平均出度e=m/n(m為邊數(shù),n為頂點(diǎn)數(shù)),這個(gè)數(shù)值代表了圖的連通程度,一般在GIS的網(wǎng)絡(luò)圖中,e∈〔2,5〕。這樣,如果當(dāng)前永久標(biāo)記的點(diǎn)為t個(gè),那么,下一步需掃描點(diǎn)的個(gè)數(shù)就約為t~4t個(gè)。如果采用鏈表結(jié)構(gòu),按實(shí)際應(yīng)用中的網(wǎng)絡(luò)規(guī)模大小,所需的總存儲(chǔ)空間一般不會(huì)超過100 K。所以完全沒有必要采用以時(shí)間換空間的做法,相反以空間換時(shí)間的做法是完全可行的。在實(shí)現(xiàn)這部分時(shí),筆者采用了一個(gè)FIFO隊(duì)列,相應(yīng)的操作主要是插入、排序和刪除,插入和刪除的時(shí)間復(fù)雜度都是O(1),所以關(guān)鍵問題在于選擇一個(gè)合適的排序算法。一般可供選擇的排序算法有快速排序、堆排序以及歸并排序等,其實(shí)現(xiàn)的平均時(shí)間都為O(nlgn)。經(jīng)過比較實(shí)驗(yàn),筆者選擇了快速排序法。另外,Visual C++提供的run-time庫也提供了現(xiàn)成的快速排序的函數(shù)qsort( )可供使用。
圖 2 基于最佳路徑計(jì)算的網(wǎng)絡(luò)拓?fù)浔硎?/p>
Fig. 2 The Presentation of the Network Topology
Used for Computing the Shortest Path
按照以上思路,筆者用Visual C++實(shí)現(xiàn)了吉奧之星(GeoStar)中的最佳路徑模塊。以北京的街道為數(shù)據(jù)(共6 313個(gè)結(jié)點(diǎn),9 214條弧段(雙向)),在主頻為133、硬盤為1 G、內(nèi)存為32 M的機(jī)器上,計(jì)算一條貫穿全城、長為155.06 km的線路,約需1 s~2 s。如圖 3所示。
圖 3 GeoStar中最佳路徑實(shí)現(xiàn)示意圖
ps:圖片沒有辦法貼上去.
你可以參考《算法導(dǎo)論》第二版
四、用matlab解決車輛路徑規(guī)劃問題,主要是遺傳算法
遺傳算法(Genetic Algorithm)是模擬達(dá)爾文生物進(jìn)化論的自然選擇和遺傳學(xué)機(jī)理的生物進(jìn)化過程的計(jì)算模型,是一種通過模擬自然進(jìn)化過程搜索最優(yōu)解的方法,它最初由美國Michigan大學(xué)J.Holland教授于1975年首先提出來的,并出版了頗有影響的專著《Adaptation in Natural and Artificial Systems》,GA這個(gè)名稱才逐漸為人所知,J.Holland教授所提出的GA通常為簡(jiǎn)單遺傳算法(SGA)。遺傳算法(Genetic Algorithm)是一類借鑒生物界的進(jìn)化規(guī)律(適者生存,優(yōu)勝劣汰遺傳機(jī)制)演化而來的隨機(jī)化搜索方法。它是由美國的J.Holland教授1975年首先提出,其主要特點(diǎn)是直接對(duì)結(jié)構(gòu)對(duì)象進(jìn)行操作,不存在求導(dǎo)和函數(shù)連續(xù)性的限定;具有內(nèi)在的隱并行性和更好的全局尋優(yōu)能力;采用概率化的尋優(yōu)方法,能自動(dòng)獲取和指導(dǎo)優(yōu)化的搜索空間,自適應(yīng)地調(diào)整搜索方向,不需要確定的規(guī)則。遺傳算法的這些性質(zhì),已被人們廣泛地應(yīng)用于組合優(yōu)化、機(jī)器學(xué)習(xí)、信號(hào)處理、自適應(yīng)控制和人工生命等領(lǐng)域。它是現(xiàn)代有關(guān)智能計(jì)算中的關(guān)鍵技術(shù)。 對(duì)于一個(gè)求函數(shù)最大值的優(yōu)化問題(求函數(shù)最小值也類同),一般可以描述為下列數(shù)學(xué)規(guī)劃模型:遺傳算法 式中為決策變量,為目標(biāo)函數(shù)式,式2-2、2-3為約束條件,U是基本空間,R是U的子集。滿足約束條件的解X稱為可行解,集合R表示所有滿足約束條件的解所組成的集合,稱為可行解集合。 遺傳算法的基本運(yùn)算過程如下: a)初始化:設(shè)置進(jìn)化代數(shù)計(jì)數(shù)器t=0,設(shè)置最大進(jìn)化代數(shù)T,隨機(jī)生成M個(gè)個(gè)體作為初始群體P(0)。 b)個(gè)體評(píng)價(jià):計(jì)算群體P(t)中各個(gè)個(gè)體的適應(yīng)度。 c)選擇運(yùn)算:將選擇算子作用于群體。選擇的目的是把優(yōu)化的個(gè)體直接遺傳到下一代或通過配對(duì)交叉產(chǎn)生新的個(gè)體再遺傳到下一代。選擇操作是建立在群體中個(gè)體的適應(yīng)度評(píng)估基礎(chǔ)上的。 d)交叉運(yùn)算;將交叉算子作用于群體。所謂交叉是指把兩個(gè)父代個(gè)體的部分結(jié)構(gòu)加以替換重組而生成新個(gè)體的操作。遺傳算法中起核心作用的就是交叉算子。 e)變異運(yùn)算:將變異算子作用于群體。即是對(duì)群體中的個(gè)體串的某些基因座上的基因值作變動(dòng)。 群體P(t)經(jīng)過選擇、交叉、變異運(yùn)算之后得到下一代群體P(t 1)。 f)終止條件判斷:若tT,則以進(jìn)化過程中所得到的具有最大適應(yīng)度個(gè)體作為最優(yōu)解輸出,終止計(jì)算。
以上就是關(guān)于路徑規(guī)劃問題算法相關(guān)問題的回答。希望能幫到你,如有更多相關(guān)問題,您也可以聯(lián)系我們的客服進(jìn)行咨詢,客服也會(huì)為您講解更多精彩的知識(shí)和內(nèi)容。
推薦閱讀:
簡(jiǎn)要描述什么是seo(簡(jiǎn)要描述什么是相對(duì)路徑和絕對(duì)路徑)
實(shí)施策略和實(shí)施路徑的區(qū)別(實(shí)施策略和實(shí)施路徑的區(qū)別和聯(lián)系)
sql數(shù)據(jù)庫存儲(chǔ)圖片路徑(sql數(shù)據(jù)庫存儲(chǔ)圖片路徑絕對(duì)地址)
湖的景觀設(shè)計(jì)(湖的景觀設(shè)計(jì)案例)
翼聯(lián)科技是干嘛的(翼聯(lián)科技是干嘛的啊)