這是一個(gè)基于北太天元平臺(tái)開發(fā)的,用于解決具有快速振蕩系數(shù)的多尺度偏微分方程的數(shù)值求解工具箱。它內(nèi)置高階多尺度方法和直接精細(xì)數(shù)值模擬兩種多尺度建模與數(shù)值求解方法,專為模擬復(fù)合材料、多孔介質(zhì)等非均勻材料中的復(fù)雜物理場(chǎng)(如瞬態(tài)熱傳導(dǎo)與波傳播)而設(shè)計(jì)。以下為代碼和幫助文檔下載地址,https://github.com/PokerJin/PDE-Toolbox.git。
大家好,請(qǐng)問(wèn)有沒有偏微分方程工具箱的使用教程,網(wǎng)上有一點(diǎn)點(diǎn)介紹,但不夠全面,能否有一份全面的使用指南?謝謝。
歡迎各位朋友在此貼下回復(fù)反饋問(wèn)題,您的每一條反饋都是在為國(guó)產(chǎn)基礎(chǔ)軟件添磚加瓦。我是北太天元Python工具箱開發(fā)人員。由于開發(fā)過(guò)程中無(wú)法測(cè)試到所有情形,若有遇到的閃退問(wèn)題,或是有需要提出添加/修改的功能都可以在下方留言。
深度學(xué)習(xí)工具箱中支持的預(yù)訓(xùn)練模型可通過(guò)以下鏈接進(jìn)行下載,下載完成后可直接放置于model文件夾下預(yù)訓(xùn)練模型包括AlexNet、VGG16、ResNet18、Densenet121、GoogLeNet等,共31個(gè)百度網(wǎng)盤鏈接: https://pan.baidu.com/s/1r2J1nhyJvUYpxp9o-_muFA?pwd=durb 提取碼: durb夸克網(wǎng)盤鏈接:https://pan.quark.cn/s/c4e7f61f56fe提取碼:MYwq
在目前4.0.1版本中,深度學(xué)習(xí)工具箱中只有g(shù)ooglenet模型,在使用其他模型時(shí)需要前往開發(fā)者社區(qū)下載相應(yīng)模型,但是我并未在社區(qū)找到其他模型
三維光子晶體能帶結(jié)構(gòu)計(jì)算的快速算法(FAME,F(xiàn)ast Algorithms for Maxwell's Equations)作者:南京應(yīng)用數(shù)學(xué)中心林文偉教授團(tuán)隊(duì)及東南大學(xué)李鐵香教授團(tuán)隊(duì)用途:光通訊、光子集成器件設(shè)計(jì)及國(guó)防科技等領(lǐng)域的研究4.0版本的北太天元更新了FAME到FAME2.0,包括Windows版本和Ubuntu22.04版本。FAME2.0 需要 CUDA環(huán)境才能正常加載和使用,推薦 NVIDIA? GeForce? GTX 1050、Tesla? K40、Quadro? P1000 及以上顯卡,并推薦安裝 CUDA 10 及以上版本。FAME2.0配套的CUDA環(huán)境可以在網(wǎng)盤上下載,下載對(duì)應(yīng)的系統(tǒng)的庫(kù)文件后放到 軟件安裝目錄/plugins/FAME目錄下通過(guò)網(wǎng)盤分享的文件:FAME2.0依賴庫(kù)鏈接: https://pan.baidu.com/s/1MQVk8xjzHclt19gpFxmI9Q?pwd=j26v 提取碼: j26v
matlab可以通過(guò)app designer自己設(shè)計(jì)工具箱,請(qǐng)問(wèn)北太天元是否也有這種功能,可以設(shè)計(jì)人機(jī)交互界面
請(qǐng)問(wèn)有沒有個(gè)人開發(fā)者開發(fā)插件或者開發(fā)工具箱的教程,可以開發(fā)具有單獨(dú)界面的工具箱嘛,就像matlab的cftool一樣。
目前,國(guó)外的MathCAD、MathCAD primer、Smath studio、Calcpad等軟件,獨(dú)特的可視化格式和便箋式界面將直觀、標(biāo)準(zhǔn)的數(shù)學(xué)符號(hào)、文本和圖形均集成到一個(gè)工作表中。 采用接近在黑板上寫公式的方式讓用戶表述所要求解的問(wèn)題,通過(guò)底層計(jì)算引擎計(jì)算返回結(jié)果并顯示在屏幕上。計(jì)算過(guò)程近似透明,使用戶專注于對(duì)問(wèn)題的思考而不是繁瑣的求解步驟。希望北太天元可以進(jìn)一步優(yōu)化其交互界面,降低用戶的入門門檻。
17.1 原理 完整思想請(qǐng)看我前面寫的路徑規(guī)劃(十三)基于搜索的路徑規(guī)劃算法-前言,,和其他的基于搜索的路徑規(guī)劃算法的區(qū)別僅在于啟發(fā)式函數(shù)的不同. 雙向A*則稍微復(fù)雜些,但可以簡(jiǎn)單理解為起始節(jié)點(diǎn)和終點(diǎn)同時(shí)將對(duì)方視為目標(biāo)節(jié)點(diǎn),并按照A*的啟發(fā)式函數(shù),相向生長(zhǎng),當(dāng)兩者相遇時(shí),則停止迭代,并分別往回追溯自己的父節(jié)點(diǎn)即可得到路徑。17.2 程序示例
16.1 原理 完整思想請(qǐng)看我前面寫的路徑規(guī)劃(十三)基于搜索的路徑規(guī)劃算法-前言,,和其他的基于搜索的路徑規(guī)劃算法的區(qū)別僅在于啟發(fā)式函數(shù)的不同 A*則是結(jié)合了Best-first Searching和Dijkstra,它將當(dāng)前節(jié)點(diǎn)到初始節(jié)點(diǎn)和到目標(biāo)節(jié)點(diǎn)的距離之和作為啟發(fā)式函數(shù)。16.2 程序示例16.3 參考A Formal Basis for the heuristic Determination of Minimum Cost Paths
15.1 原理完整思想請(qǐng)看我前面寫的路徑規(guī)劃(十三)基于搜索的路徑規(guī)劃算法-前言,和其他的基于搜索的路徑規(guī)劃算法的區(qū)別僅在于啟發(fā)式函數(shù)的不同Dijkstra則和Best-first-searching相反,它不是將到目標(biāo)節(jié)點(diǎn)的距離作為啟發(fā)式函數(shù),而是將到起始節(jié)點(diǎn)的距離作為啟發(fā)式函數(shù)。15.2 程序示例
14.1 原理這里的Best-first-searching和數(shù)據(jù)結(jié)構(gòu)里學(xué)的圖搜索算法BFS(廣度優(yōu)先搜索)不是一個(gè)東西。完整思想請(qǐng)看我前面寫的路徑規(guī)劃(十三)基于搜索的路徑規(guī)劃算法-前言下面說(shuō)說(shuō)Best-first-searching的核心思想:Best-first Searching的啟發(fā)式函數(shù)f(x)=dist(x,x_goal),即Best-first Searching每一步都在預(yù)選集合中尋找距離目標(biāo)節(jié)點(diǎn)最近的的那個(gè)節(jié)點(diǎn)。這里的dist(x,y),如果節(jié)點(diǎn)x,y無(wú)法通過(guò)碰撞檢測(cè),則為inf,如果能通過(guò)碰撞檢測(cè),可以直接用歐幾里得距離代替。14.2 程序示例14.3 參考https://blog.csdn.net/potato_uncle/article/details/109124362?ops_request_misc=&request_id=&biz_id=102&utm_term=best%20first%20search&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduweb~default-1-109124362.nonecase&spm=1018.2226.3001.4187
基于搜索的路徑規(guī)劃算法基本都是一個(gè)套路,它們都是根據(jù)啟發(fā)函數(shù)重備用節(jié)點(diǎn)的集合中來(lái)尋找下一個(gè)節(jié)點(diǎn),不同的啟發(fā)函數(shù)也就有不同的搜索類算法。搜索類算法是離散化的算法,體現(xiàn)在整個(gè)圖的區(qū)域是由有限個(gè)小方塊區(qū)域組成的。我們暫且把這些小方塊區(qū)域稱為“節(jié)點(diǎn)”。因此,整個(gè)區(qū)域被有限個(gè)節(jié)點(diǎn)填充,且每個(gè)節(jié)點(diǎn)的鄰居節(jié)點(diǎn)為有限個(gè)。設(shè)置兩個(gè)集合OPEN,CLOSE,OPEN初始狀態(tài)設(shè)為{x_init},CLOSE 初始狀態(tài)設(shè)為空集。依據(jù)不同的啟發(fā)式函數(shù),從open集中選擇一個(gè)點(diǎn)加入到close集中,然后拓展open集,如上圖,右下角的某個(gè)點(diǎn)被某種啟發(fā)式函數(shù)選中,加入到close集中,并相繼拓展open集下面介紹下搜索類算法的前進(jìn)過(guò)程:當(dāng)上述偽碼退出循環(huán)后,沿著x_goal的父節(jié)點(diǎn)往前回溯極為路徑各搜索類算法的區(qū)別在于第三行啟發(fā)函數(shù)的類型的不同,導(dǎo)致連接的節(jié)點(diǎn)不同。
幾種RRT對(duì)比如下:幾種RRT對(duì)比視圖mp4 RRT及其變種都是依托于采樣+在樹結(jié)構(gòu)上加減枝的形式進(jìn)行路徑規(guī)劃的,具有全局收斂特性,但是效率穩(wěn)定性不高。不過(guò)可以針對(duì)性地對(duì)其主要函數(shù)進(jìn)行優(yōu)化進(jìn)行效率的改進(jìn):優(yōu)化采樣,優(yōu)化樹結(jié)構(gòu)等。一種加速RRT的思路就是,從起始點(diǎn)和目標(biāo)節(jié)點(diǎn)同時(shí)生長(zhǎng)RRT樹,這就是connected_RRT。此外,針對(duì)變化的環(huán)境,還有extend_RRT和Dynamic_RRT。 RRT*是一種趨近于最優(yōu)路徑的方案,它通過(guò)重布線來(lái)實(shí)現(xiàn)這一目的,它在理論上能達(dá)到最優(yōu)解,但它全局隨機(jī)撒點(diǎn)的特性導(dǎo)致它在遠(yuǎn)離目標(biāo)路徑的地方做了過(guò)多的生長(zhǎng)。 為了集中優(yōu)化資源,RRT*-smart應(yīng)運(yùn)而生,它比較在乎路徑和障礙物的拐點(diǎn)的附近的優(yōu)化,它通過(guò)路徑優(yōu)化步驟判斷出路徑和障礙物的拐點(diǎn),并在拐點(diǎn)的鄰域內(nèi)投入更多的資源(即撒更多的點(diǎn)),以實(shí)現(xiàn)集中優(yōu)化資源。 但RRT*-smart依然浪費(fèi)了太多的隨機(jī)點(diǎn)在遠(yuǎn)離目標(biāo)路徑的區(qū)域,那什么才叫不遠(yuǎn)離目標(biāo)路徑的區(qū)域呢?informed RRT*則解決了這一問(wèn)題,它利用初始路徑的長(zhǎng)度,起始點(diǎn)和目標(biāo)點(diǎn),畫出了一個(gè)橢圓,informed RRT*認(rèn)為,這個(gè)橢圓區(qū)域就是不遠(yuǎn)離目標(biāo)路徑的區(qū)域,生成這個(gè)橢圓后,后續(xù)的隨機(jī)撒點(diǎn)只灑在這個(gè)橢圓區(qū)域內(nèi),當(dāng)更優(yōu)的路徑被發(fā)現(xiàn),則根據(jù)這個(gè)新路徑的長(zhǎng)度,縮小橢圓,進(jìn)一步在有效區(qū)域集中撒點(diǎn)資源,以實(shí)現(xiàn)加速。 然而,RRT*類的算法是總會(huì)面臨一個(gè)問(wèn)題,那就是重布線,這個(gè)令RRT*能夠逼近最優(yōu)解的創(chuàng)新恰恰成為了它慢的原因。 于是,另一種思路被提出,那就是提前給定隨機(jī)點(diǎn),然后通過(guò)啟發(fā)式函數(shù)來(lái)連接這些點(diǎn)以生長(zhǎng)路徑,這就是FMT*,F(xiàn)MT*專門針對(duì)解決高維構(gòu)型空間中的復(fù)雜運(yùn)動(dòng)規(guī)劃問(wèn)題,在預(yù)先確定的采樣點(diǎn)數(shù)量上執(zhí)行前向動(dòng)態(tài)規(guī)劃遞歸,并相應(yīng)地通過(guò)在代價(jià)到達(dá)空間中穩(wěn)步向外移動(dòng)生成路徑樹。FMT*能很快的找到一條路徑,但是當(dāng)我們想對(duì)這條路徑進(jìn)行優(yōu)化時(shí),只有通過(guò)加密隨機(jī)采樣點(diǎn)的方式,然而,F(xiàn)MT*是一種單批算法,面對(duì)新的采樣點(diǎn)分布時(shí),它只能重新開始計(jì)算。 為了融合informed RRT*在有效區(qū)域集中隨機(jī)點(diǎn)的特點(diǎn)和FMT*快速生長(zhǎng)的特點(diǎn),就誕生了BIT*。它能夠在橢圓區(qū)域內(nèi)分批撒點(diǎn),實(shí)現(xiàn)快速生長(zhǎng)的同時(shí),還能自我優(yōu)化。參考https://www.youtube.com/watch?v=TQIoCC48gp4
11.1 原理 簡(jiǎn)單來(lái)說(shuō),BIT*是結(jié)合了Informed RRT*和FMT*的優(yōu)點(diǎn)的一種算法?;仡櫼幌?,Informed RRT*是對(duì)RRT*的一種優(yōu)化,在RRT*生成一個(gè)初始路徑后,則以初始路徑的長(zhǎng)度,起始點(diǎn)和目標(biāo)點(diǎn)為焦點(diǎn),畫一個(gè)橢圓,Informed RRT*在后續(xù)隨機(jī)采點(diǎn)時(shí),只取落在這個(gè)橢圓內(nèi)的點(diǎn),一次采一個(gè)點(diǎn),重復(fù)lm次。FMT*則與RRT那一套不同,它不是邊采點(diǎn),邊生長(zhǎng)樹,而是一次性提前在整個(gè)區(qū)域(不包含障礙物區(qū)域)內(nèi)采lm個(gè)點(diǎn),只重復(fù)一次。 下面我們來(lái)說(shuō)說(shuō),Informed RRT*和優(yōu)缺點(diǎn)FMT*,然后就知道為什么要引出BIT*了。 先說(shuō)FMT*,F(xiàn)MT*的優(yōu)點(diǎn)是從起始位置開始構(gòu)建,沒有重布線過(guò)程,因此節(jié)約時(shí)間,適用于復(fù)雜的障礙物環(huán)境。但是FMT*的缺點(diǎn)是,它只有1批,F(xiàn)MT*路徑的精度完全取決于當(dāng)前批撒點(diǎn)的密度,當(dāng)你想要提升精度時(shí),只能重新開始一批,重新更密集的撒點(diǎn),然后重新開始規(guī)劃。 再說(shuō)Informed RRT*,Informed RRT*的優(yōu)點(diǎn)恰好彌補(bǔ)了FMT*的缺點(diǎn),想要提升精度,只需撒更多的點(diǎn)就好了,而Informed RRT*的撒點(diǎn)過(guò)程時(shí)一直在進(jìn)行的,它一批只撒一個(gè)點(diǎn),重復(fù)很多批,開始新的批的時(shí)候之前的信息不會(huì)被拋棄,只要Informed RRT*一直撒點(diǎn),就可以達(dá)到任意精度。但是Informed RRT*的缺點(diǎn)也顯而易見,它需要重布線,計(jì)算效率低。 所以自然就想到,能不能利用FMT*的優(yōu)點(diǎn),提前撒好點(diǎn),不用重布線,提升計(jì)算效率,又能多批進(jìn)行,以不斷提升精度?當(dāng)然能,這就是BIT*算法 BIT*的過(guò)程總結(jié)為下圖:11.2 偽碼11.3 參考1、Batch Informed Trees (BIT*): Informed Asymptotically Optimal Anytime Search2、Batch Informed Trees (BIT*): Sampling-based Optimal Planning via the Heuristically Guided Search of Implicit Random Geometric Graphs
10.1 原理 在RRT中,當(dāng)初始路徑已經(jīng)生成之后,如果重點(diǎn)在初始路徑周圍進(jìn)行采樣的話,可以明顯提高路徑優(yōu)化效率。Informed RRT就是進(jìn)一步優(yōu)化了采樣函數(shù),采樣的方式是以起點(diǎn)和終點(diǎn)為焦點(diǎn)構(gòu)建橢圓形采樣區(qū)域。 回顧一下RRT*-smart,因?yàn)樵谀硡^(qū)域撒點(diǎn)越多,該區(qū)域的優(yōu)化效果越好,而單純的RRT*是在全域內(nèi)隨機(jī)撒點(diǎn),優(yōu)化效果沒有得以集中,RRT*-smart認(rèn)為經(jīng)過(guò)路徑優(yōu)化后的路徑的拐點(diǎn)在障礙物的附近,它認(rèn)為這個(gè)拐點(diǎn)的附近需要著重優(yōu)化,所以RRT*-smart在進(jìn)一步撒點(diǎn)的過(guò)程中,將一些隨機(jī)點(diǎn)偏袒的撒在這個(gè)拐點(diǎn)的附近鄰域。 這里的informed RRT*也是這樣認(rèn)為,它認(rèn)為單純的RRT*在整個(gè)區(qū)域內(nèi)隨機(jī)撒點(diǎn),優(yōu)化效果太過(guò)分散,如果我能知道我最終優(yōu)化的路徑在哪一塊區(qū)域,那我就只在這一區(qū)域內(nèi)撒點(diǎn)不就好了嗎?informed RRT*就是這樣做的。注意: informed RRT*是在RRT*算法給出一條初始路徑后,對(duì)這個(gè)初始路徑繼續(xù)優(yōu)化的步驟才起作用的,它對(duì)于這個(gè)初始路徑的生成沒有幫助。10.2 思路 根據(jù)高中數(shù)學(xué)知識(shí)可以知道,在橢圓上的點(diǎn)到橢圓兩焦點(diǎn)的距離之和相同,橢圓外的點(diǎn)的距離到兩焦點(diǎn)的距離之和大于橢圓上的點(diǎn)到兩焦點(diǎn)的距離之和,橢圓內(nèi)的點(diǎn)反之。 回顧一下RRT*的搜索圖,根據(jù)上面這個(gè)知識(shí)點(diǎn)可以發(fā)現(xiàn),其實(shí)RRT在已經(jīng)得到一條可行路徑之后,可以將采樣空間收縮到一個(gè)橢圓形區(qū)域中,區(qū)域之外的點(diǎn)對(duì)于縮短規(guī)劃出的路徑長(zhǎng)度并沒有實(shí)際價(jià)值。 informed RRT就是的主要思想就是上面這種思想,在獲取可行路徑之后,將采樣空間限制在一個(gè)橢圓形區(qū)域中,并且隨著路徑長(zhǎng)度的不斷縮短,逐漸縮小該橢圓形區(qū)域。這個(gè)思想其實(shí)在以前就有,但是提出informed RRT的論文中提出了對(duì)這個(gè)橢圓形區(qū)域直接采樣的方法。 可能有人會(huì)直接想,這里只不過(guò)是縮小了采樣空間,并不會(huì)明顯改進(jìn)算法。但是實(shí)際上,當(dāng)拓展到高維空間時(shí),效率的提升是巨大的。那么,如何表達(dá)這個(gè)橢圓呢?下面介紹橢圓采樣區(qū)域的表達(dá)方式方法1:先在標(biāo)準(zhǔn)橢圓的方程中采樣,再將采樣點(diǎn)旋轉(zhuǎn)平移到實(shí)際采樣區(qū)域,需要兩個(gè)矩陣:平移向量、旋轉(zhuǎn)矩陣。這兩個(gè)參數(shù)只需要在初始化時(shí)計(jì)算即可轉(zhuǎn)換后的坐標(biāo)為:方法2:利用超橢圓體然后在二維平面映射這里放一段.m文件取橢圓隨機(jī)點(diǎn)的代碼(思路如方法2):除了采樣過(guò)程外,Informed RRT*的流程和RRT*是一樣的。10.3 偽碼偽代碼中是在RRT的偽代碼基礎(chǔ)上改的,標(biāo)紅的地方是informed RRT 更改的地方??梢钥闯?,其實(shí)主體框架上面并沒有太多更改,實(shí)際上也是,主要的更改都在第七行,也就是采樣這一步。這是采樣這一步的偽代碼。informed RRT將目前已經(jīng)搜索到的最短路徑作為cbest,起點(diǎn)和終點(diǎn)之間的距離作為cmin,以此構(gòu)建橢圓。當(dāng)還沒有規(guī)劃結(jié)果時(shí),cbest為inf,也就是和經(jīng)典RRT沒有區(qū)別。10.4 程序示例程序在尋找初始路徑的過(guò)程和普通RRT*一樣,在全局域中隨機(jī)撒點(diǎn),迭代到1282次時(shí)首次找到初始路徑,然后我們以起始點(diǎn)和目標(biāo)點(diǎn)為焦點(diǎn),初始路徑的長(zhǎng)度為點(diǎn)到兩焦點(diǎn)的距離之和,畫出一個(gè)橢圓:我們隨后的隨機(jī)點(diǎn)的選取范圍不再是全局域了,新采的樣本點(diǎn)被限制在這個(gè)橢圓中,下圖中的圓圈代表迭代1283-2509次的隨機(jī)點(diǎn)的分布,可見,新的隨機(jī)點(diǎn)全部被限制在橢圓中:當(dāng)?shù)?510次時(shí),新的總長(zhǎng)度更短的路徑被找到,,隨后,我們以起始點(diǎn)和目標(biāo)點(diǎn)為焦點(diǎn),以這個(gè)新的路徑的長(zhǎng)度為到兩焦點(diǎn)的距離,畫出一個(gè)比之前更小的橢圓:同樣的,迭代次數(shù)為2510-2865次的循環(huán)中的新的隨機(jī)點(diǎn)被限制在這個(gè)新的更小的橢圓中,使隨機(jī)點(diǎn)資源進(jìn)一步集中:當(dāng)?shù)?866次時(shí),找到一個(gè)路徑更短的路徑:10.5 參考Informed RRT*: Optimal Sampling-based Path Planning Focused via Direct Sampling of an Admissible Ellipsoidal Heuristic
9.1 原理 FMT*算法專門針對(duì)解決高維構(gòu)型空間中的復(fù)雜運(yùn)動(dòng)規(guī)劃問(wèn)題,它是為高密度障礙物的環(huán)境構(gòu)建的算法。該算法被證明是漸近最優(yōu)的,并且比同類型算法(RRT*)更快收斂到最優(yōu)解。FMT*算法在預(yù)先確定的概率繪制的樣本數(shù)量上執(zhí)行“惰性”動(dòng)態(tài)規(guī)劃遞歸,以生長(zhǎng)路徑樹,該路徑樹在成本到達(dá)空間中穩(wěn)定地向外移動(dòng)。 FMT*的最終產(chǎn)物是一棵樹,它在連續(xù)空間中獲取一批樣本,然后它能在圖中使用惰性的動(dòng)態(tài)編程搜索該樣本集合,并以此找到路徑,這也是一個(gè)漸進(jìn)最優(yōu)的解決方案,F(xiàn)MT*相比于RRT*的加速效果優(yōu)勢(shì)在高維和碰撞檢查很昂貴的情況下尤其突出。很棒的一點(diǎn)是,F(xiàn)MT*是從起始位置開始構(gòu)建,而不是像RRT*是在空間的任意位置采點(diǎn),因?yàn)檫@可能會(huì)得到非常遠(yuǎn)的點(diǎn)或非常近的點(diǎn),這有什么好處呢?這意味著你不必在樹中回溯以進(jìn)行重布線,因?yàn)檫@在計(jì)算上效率低下。FMT*比RRT*更好,因?yàn)樗鼊?chuàng)建的連接接近最佳,沒有重布線。 FMT*算法在預(yù)先確定的采樣點(diǎn)數(shù)量上執(zhí)行前向動(dòng)態(tài)規(guī)劃遞歸,并相應(yīng)地通過(guò)在代價(jià)到達(dá)空間中穩(wěn)步向外移動(dòng)生成路徑樹。FMT*執(zhí)行動(dòng)態(tài)規(guī)劃遞歸,其特點(diǎn)有三個(gè)關(guān)鍵特征:·它是為磁盤連接圖量身定制的,其中兩個(gè)樣本的距離低于給定的界限(稱為連接半徑)則這兩個(gè)樣本被認(rèn)為是鄰居,因此是可連接的。·它同時(shí)執(zhí)行圖構(gòu)造和圖搜索。·為了評(píng)估動(dòng)態(tài)規(guī)劃遞歸中的即時(shí)成本,算法“懶惰地”忽略了障礙物的存在,每當(dāng)與新樣本的局部最優(yōu)(假設(shè)沒有障礙物)連接與障礙物相交時(shí),該樣本就會(huì)簡(jiǎn)單地跳過(guò)并留待以后,而不是在鄰域中尋找其他連接。注意:FMT*的樣本點(diǎn)是提前生成好的,然后把這些點(diǎn)固定,再利用這些固定好的點(diǎn)來(lái)生成行進(jìn)樹,注意區(qū)別于RRT*那一套,RRT*是生成隨機(jī)點(diǎn)的同時(shí),生成行進(jìn)樹。9.2 算法思路上圖(a)是RRT*添加新節(jié)點(diǎn)的某一步,上圖(b)(c)是FMT*添加新節(jié)點(diǎn)的某一步。 先看RRT*,節(jié)點(diǎn)9是新考慮的節(jié)點(diǎn),它在第一次重布線時(shí),需要從它的所有鄰居節(jié)點(diǎn)中找出一個(gè)父節(jié)點(diǎn),使得節(jié)點(diǎn)9到達(dá)起始節(jié)點(diǎn)的cost最小,因此節(jié)點(diǎn)9需要計(jì)算它到4、5、6、8號(hào)節(jié)點(diǎn)的距離并同時(shí)進(jìn)行碰撞檢測(cè),因此,第一次重布線過(guò)程就要求待加入的節(jié)點(diǎn)對(duì)它的所有鄰居節(jié)點(diǎn)進(jìn)行一次碰撞檢測(cè),第二次重布線過(guò)程也需要計(jì)算距離和碰撞檢測(cè),但這在第一次重布線過(guò)程中做過(guò)了,可以記錄先來(lái)直接利用,因此第二次重布線過(guò)程碰撞檢測(cè)這一步可以不用重復(fù)進(jìn)行,因此,總的來(lái)說(shuō),RRT*每新加入一個(gè)節(jié)點(diǎn),該節(jié)點(diǎn)需要對(duì)它的所有鄰居節(jié)點(diǎn)進(jìn)行一次碰撞檢測(cè)。 再看FMT*,上圖(b)(c)中的x就是新考慮的節(jié)點(diǎn),在圖(b)中,x需計(jì)算它到集合V_open中所有的鄰居節(jié)點(diǎn)的cost,但不需要進(jìn)行碰撞檢測(cè),從中選擇一個(gè)能使它到達(dá)初始節(jié)點(diǎn)總cost最小的節(jié)點(diǎn)作為它的父節(jié)點(diǎn),然后,對(duì)它和這個(gè)父節(jié)點(diǎn)的連線進(jìn)行碰撞檢測(cè),如果能通過(guò)碰撞檢測(cè),則加入x,若不能,則下一個(gè)x,因此,總的來(lái)說(shuō),F(xiàn)MT*每新加入一個(gè)節(jié)點(diǎn),永遠(yuǎn)只需要進(jìn)行一次碰撞檢測(cè)。FMT*比RRT*每新加入一個(gè)節(jié)點(diǎn)需要進(jìn)行的碰撞檢測(cè)次數(shù)少得多,而且FMT*也是漸進(jìn)最優(yōu)的,這就是FMT*相比于RRT*的優(yōu)勢(shì)所在。9.3 偽碼9.4 程序示例下圖中的 圓圈代表提前采好的隨機(jī)點(diǎn)9.5 參考Fast Marching Tree: a Fast Marching Sampling-Based Method for Optimal Motion Planning in Many Dimensions?