四虎國產成人免費觀看_精品蜜桃av中文字幕_曰批全过程120分钟免费视频_玩弄漂亮少妇高潮动态图_成人激情一区二区电影_最新亚洲中文按摩精油视頻_午夜福利理论片_免费人成年激情视频在线观看_五月天丁香社区_又大又粗的久久久精品少妇AV

發(fā)帖
日期

請問目前是否發(fā)布了XGboost算法,謝謝。

請問目前是否發(fā)布了XGboost算法,謝謝。

浪淘沙 2 0 2024-07-29

數(shù)模干貨|優(yōu)化問題的常見算法總結(jié)

      “優(yōu)化”是生活中經(jīng)常使用的詞:開車時(shí)希望能在安全的前提下以最短時(shí)間到達(dá)目的地;雙11做功課考慮各種優(yōu)惠活動,希望獲得最大優(yōu)惠;超市進(jìn)貨時(shí)需要考慮動銷存,最大化提高物品周轉(zhuǎn)效率。 這些問題都是“最優(yōu)化問題”,也是數(shù)學(xué)建模中的典型問題,是各大數(shù)學(xué)建模比賽里的??汀?nbsp;     優(yōu)化題型有三要素:決策變量、目標(biāo)函數(shù)、約束條件。      (1)決策變量:是決策者可以控制的因素,例如根據(jù)不同的實(shí)際問題,決策變量可以選為產(chǎn)品的產(chǎn)量、物資的運(yùn)量及工作的天數(shù)等。      (2) 目標(biāo)函數(shù):是以函數(shù)形式來表示決策者追求的目標(biāo)。例如目標(biāo)可以是利潤最大或成本最小等。      (3) 約束條件:是決策變量需要滿足的限定條件。      歷年國賽優(yōu)化問題:      優(yōu)化問題的出發(fā)點(diǎn)是系統(tǒng)思維,其基本思路是在一定的約束條件下,保證各方面資源的合理分配, 最大限度地提升系統(tǒng)某一性能或系統(tǒng)整體性能,最終實(shí)現(xiàn)最理想結(jié)果。對于這類問題,想要建立并求解數(shù)學(xué)模型,可以參考以下思路:      (1)明確目標(biāo),分析問題背景,確定約束條件,搜集全面的客觀數(shù)據(jù)和信息。      (2)建立數(shù)學(xué)模型,構(gòu)建變量之間的數(shù)學(xué)關(guān)系,設(shè)立目標(biāo)函數(shù)。      (3)分析數(shù)學(xué)模型,綜合選擇最適合該模型的優(yōu)化方法。      (4)求解模型,通常借助計(jì)算機(jī)和數(shù)學(xué)分析軟件完成。      (5)對最優(yōu)解進(jìn)行檢驗(yàn)和實(shí)施。      PS.北太天元內(nèi)已有優(yōu)化工具箱optimization,可以調(diào)用工具箱解決優(yōu)化類問題。      下面給大家分享幾種數(shù)學(xué)建模中常用優(yōu)化算法:      1、線性規(guī)劃      在人們的生產(chǎn)實(shí)踐中,經(jīng)常會遇到如何利用現(xiàn)有資源來安排生產(chǎn),以取得最大經(jīng)濟(jì)效益的問題。此類問題構(gòu)成了運(yùn)籌學(xué)的一個(gè)重要分支—數(shù)學(xué)規(guī)劃,而線性規(guī)劃(Linear Programming 簡記 LP)則是數(shù)學(xué)規(guī)劃的一個(gè)重要分支。      1.1 用北太天元求解線性規(guī)劃問題      北太天元內(nèi)已有優(yōu)化工具箱optimization,其中的linprog等相關(guān)函數(shù)可用于求解線性規(guī)劃問題。      1.2 線性規(guī)劃特點(diǎn)      優(yōu)點(diǎn):      (1)作為經(jīng)營管理決策中的數(shù)學(xué)手段,在現(xiàn)代決策中的應(yīng)用非常廣泛。      (2)有統(tǒng)一算法,任何線性規(guī)劃問題都能求解,解決多變量最優(yōu)決策的方法。      (3)訓(xùn)練速度快。      (4)預(yù)測速度快,可以推廣到非常大的數(shù)據(jù)集,對稀疏數(shù)據(jù)也很有效。      缺點(diǎn):      (1)對于數(shù)據(jù)的準(zhǔn)確性要求高,只能對線性的問題進(jìn)行規(guī)劃約束,而且計(jì)算量大。      1.3 相關(guān)問題      運(yùn)輸問題(產(chǎn)銷平衡)、指派問題(匈牙利算法)、對偶理論與靈敏度分析、投資的收益和風(fēng)險(xiǎn)。      2、整數(shù)規(guī)劃      規(guī)劃中的變量(部分或全部)限制為整數(shù)時(shí),稱為整數(shù)規(guī)劃。若在線性規(guī)劃模型中,變量限制為整數(shù),則稱為整數(shù)線性規(guī)劃。目前所流行的求解整數(shù)規(guī)劃的方法,往往只適用于整數(shù)線性規(guī)劃。目前還沒有一種方法能有效地求解一切整數(shù)規(guī)劃。      2.1 用北太天元求解線性混合整數(shù)規(guī)劃問題      可在北太天元內(nèi)調(diào)用優(yōu)化工具箱optimization,使用intlinprog等相關(guān)函數(shù)求解線性混合整數(shù)規(guī)劃問題。      2.2 整數(shù)規(guī)劃的分類      如不加特殊說明,一般指整數(shù)線性規(guī)劃。對于整數(shù)線性規(guī)劃模型大致可分為兩類:      (1)變量全限制為整數(shù)時(shí),稱純(完全)整數(shù)規(guī)劃。      (2)變量部分限制為整數(shù)的,稱混合整數(shù)規(guī)劃。      2.3 整數(shù)規(guī)劃特點(diǎn)      原線性規(guī)劃有最優(yōu)解,當(dāng)自變量限制為整數(shù)后,其整數(shù)規(guī)劃解出現(xiàn)下述情況:      (1)原線性規(guī)劃最優(yōu)解全是整數(shù),則整數(shù)規(guī)劃最優(yōu)解與線性規(guī)劃最優(yōu)解一致。      (2)整數(shù)規(guī)劃無可行解。      (3)有可行解(當(dāng)然就存在最優(yōu)解),但最優(yōu)解值變差。      整數(shù)規(guī)劃最優(yōu)解不能按照實(shí)數(shù)最優(yōu)解簡單取整而獲得。      2.4 求解方法分類      (1)分枝定界法—可求純或混合整數(shù)線性規(guī)劃。      (2)割平面法—可求純或混合整數(shù)線性規(guī)劃。      (3)隱枚舉法—求解“0-1”整數(shù)規(guī)劃:過濾隱枚舉法;分枝隱枚舉法。      (4)匈牙利法—解決指派問題(“0-1”規(guī)劃特殊情形)。      (5)蒙特卡洛法—求解各種類型規(guī)劃。      3、非線性規(guī)劃      如果目標(biāo)函數(shù)或約束條件中包含非線性函數(shù),就稱這種規(guī)劃問題為非線性規(guī)劃問題。一般說來,解非線性規(guī)劃要比解線性規(guī)劃問題困難得多。而且,也不象線性規(guī)劃有單純形法這一通用方法,非線性規(guī)劃目前還沒有適于各種問題的一般算法,各個(gè)方法都有自己特定的適用范圍。      3.1 線性規(guī)劃與非線性規(guī)劃的區(qū)別      如果線性規(guī)劃的最優(yōu)解存在,其最優(yōu)解只能在其可行域的邊界上達(dá)到(特別是可行域的頂點(diǎn)上達(dá)到);而非線性規(guī)劃的最優(yōu)解(如果最優(yōu)解存在)則可能在其可行域的任意一點(diǎn)達(dá)到。      3.2 相關(guān)問題      無約束問題(一維搜索方法、二次插值法、無約束極值問題的解法)、約束極值問題(二次規(guī)劃、罰函數(shù)法)、飛行管理問題      4、動態(tài)規(guī)劃      動態(tài)規(guī)劃(dynamic programming)是運(yùn)籌學(xué)的一個(gè)分支,是求解決策過程(decisionprocess)最優(yōu)化的數(shù)學(xué)方法。例如最短路線、庫存管理、資源分配、設(shè)備更新、排序、裝載等問題,用動態(tài)規(guī)劃方法比用其它方法求解更為方便。      雖然動態(tài)規(guī)劃主要用于求解以時(shí)間劃分階段的動態(tài)過程的優(yōu)化問題,但是一些與時(shí)間無關(guān)的靜態(tài)規(guī)劃(如線性規(guī)劃、非線性規(guī)劃),只要人為地引進(jìn)時(shí)間因素,把它視為多階段決策過程,也可以用動態(tài)規(guī)劃方法方便地求解。應(yīng)指出,動態(tài)規(guī)劃是求解某類問題的一種方法,是考察問題的一種途徑,而不是一種特殊算法(如線性規(guī)劃是一種算法)。因而,它不象線性規(guī)劃那樣有一個(gè)標(biāo)準(zhǔn)的數(shù)學(xué)表達(dá)式和明確定義的一組規(guī)則,而必須對具體問題進(jìn)行具體分析處理。因此,在學(xué)習(xí)時(shí),除了要對基本概念和方法正確理解外,應(yīng)以豐富的想象力去建立模型,用創(chuàng)造性的技巧去求解。      5、多目標(biāo)規(guī)劃      多目標(biāo)規(guī)劃已經(jīng)應(yīng)用到科學(xué)的許多領(lǐng)域,包括工程、經(jīng)濟(jì)和物流,在兩個(gè)或更多沖突的目標(biāo)之間存在取舍時(shí),需要采取最優(yōu)決策。      解決多目標(biāo)規(guī)劃問題的方法:      (1)將多目標(biāo)化為單目標(biāo) (給多個(gè)目標(biāo)賦予權(quán)重)      (2)保持多目標(biāo)不變,根據(jù)自己的偏好選擇解      實(shí)際問題中,目標(biāo)函數(shù)相互沖突是很常見的,例如購買汽車時(shí),要求花費(fèi)少且舒適度高或者要求性能好油耗低,這種問題并沒有絕對最優(yōu)解(因?yàn)椴]有確定多個(gè)目標(biāo)的權(quán)值),但是我們可以根據(jù)自己的需要選擇一個(gè)相對好的(達(dá)到我們想要的最佳平衡)。為了尋求這種“最佳平衡”,可以采用算法帕累托最優(yōu)(Pareto optimal)。      以上部分內(nèi)容引用公眾號“科研交流”,希望對大家有幫助,覺得有用就點(diǎn)個(gè)贊吧。小助手會不定期更新數(shù)學(xué)建模干貨,可以多多關(guān)注喲。

社區(qū)小助手 0 1 2023-05-06

為了推廣北太天元使用,我自己做了一本教材

數(shù)學(xué)實(shí)驗(yàn)與數(shù)學(xué)建模:基于Baltamatica作者:華中科技大學(xué) 馬世拓首先非常感謝北京大學(xué)盧朓老師和李若老師等大咖對本項(xiàng)目的支持。這個(gè)項(xiàng)目是我春節(jié)的時(shí)候?qū)懙模瑸榱舜龠M(jìn)新手學(xué)習(xí)數(shù)學(xué)建模并推廣北太天元軟件。書稿是我編寫,參考了我大二的時(shí)候?qū)懙摹稊?shù)據(jù)科學(xué)基礎(chǔ):from 0 to 1》和正在北大出版社審稿的《MATLAB數(shù)學(xué)建模》。有些地方可能寫的還有點(diǎn)生草,因?yàn)榈拇_是對我在前期書稿的一個(gè)重排、刪改與整合。里面如果有一些有誤的地方歡迎與我聯(lián)系。項(xiàng)目的下載地址鏈接:github下載鏈接: github版數(shù)學(xué)建模教程gitee下載鏈接: gitee版數(shù)學(xué)建模教程百度網(wǎng)盤鏈接:鏈接:https://pan.baidu.com/s/17Q4_kcgP8Hx7hF6kWaykmA 提取碼:g79k為什么要寫這本教材我在華中科技大學(xué)的時(shí)候就很喜歡數(shù)學(xué)建模競賽,一直探索數(shù)學(xué)建模的教與學(xué)。我講過基于Python版本的數(shù)學(xué)建模,也講過基于MATLAB版本的數(shù)學(xué)建模。但是基于北太天元,我們還是第一次嘗試。Python和MATLAB這兩個(gè)系列更多的要求我們“先知其然,后知其所以然”,這也是“學(xué)術(shù)”和“工程”的辯證統(tǒng)一。北太天元則不同,它是剛起步的,有很多插件還沒有弄好,還存在一些底層的問題,所以在使用北太天元做建模的時(shí)候要注意從底層原理學(xué)習(xí)起,寧可學(xué)的東西沒那么多,但是要理解底層邏輯。這本教材的優(yōu)點(diǎn)據(jù)盧朓老師跟我說,這應(yīng)該是業(yè)內(nèi)第一本開源的北太天元教程。我的初衷是推廣到競賽中,讓學(xué)生有膽氣沖擊北太數(shù)模之星的冠名獎。在編寫過程中,我不喜歡市面上大多數(shù)教材的寫法,太死板,也太沒人性化。恕我直言,對于那些不講人話的學(xué)術(shù)類書稿,你如果是給同行傳閱倒也罷了,但是你的受眾是學(xué)生,我考教師資格證的時(shí)候就明確記得有“量力性”這一條要求。不講人話的書稿我必須得奉上一句“RNM退錢”,所以,我在編寫過程中盡可能做到通俗易懂,讓讀者能夠輕易上手接受。此外,書稿大綱是我在華中科大給同學(xué)們作數(shù)學(xué)建模培訓(xùn)磨了幾輪才形成的大綱,在此基礎(chǔ)上進(jìn)行了刪改,將過于復(fù)雜的一些章節(jié)去掉了,更容易被同學(xué)們接受。作為計(jì)科人,我始終記得譚志虎副院長和秦磊華副院長給我們強(qiáng)調(diào)的軟硬協(xié)同觀。在本書編寫的過程中,雖然更多的是數(shù)值計(jì)算與模擬方面的東西,但是也同樣以自己的理解從軟硬協(xié)同的角度在看這個(gè)軟件。本人在計(jì)算機(jī)領(lǐng)域功力尚淺,是當(dāng)時(shí)專業(yè)課學(xué)的很拉胯的程度,如果有一些錯(cuò)誤之處歡迎批評斧正,讀者朋友們見笑。特此聲明本書將免費(fèi)開源不收取任何費(fèi)用,但是請注意一些版權(quán)問題。如果是從我的github或gitee主頁下載的書稿,還請star一下可以咩謝謝。最后再次感謝盧朓老師和李若老師等人的支持!~

馬世拓 13 27 2023-04-26

基于Baltamulink的汽車單自由度振動力學(xué)模型的建立

基于Baltamulink的汽車單自由度振動力學(xué)模型的建立由于汽車在行走時(shí),路面不平,汽車行駛中的路面可簡化成正弦函數(shù)??砂哑囆凶叩穆访婵醋黾?lì),忽略輪胎的彈性與質(zhì)量,得到分析車身垂直振動的最簡單的單質(zhì)量系統(tǒng),適用于低頻激勵(lì)情況。汽車行駛可看作如下模型: 上圖為單一自由度系統(tǒng)的簡圖,設(shè)X(t)及Xs(t)分別是質(zhì)量塊及支承的位移,支承的運(yùn)動規(guī)律是:Xs =asinwt由于支承的運(yùn)動,質(zhì)量塊收到的彈性恢復(fù)力為k(X - Xs),阻尼力為c(Vx-Vxs)根據(jù)達(dá)朗伯原理可得如下的運(yùn)動微分方程: 由(1)和(2)得: 在此系統(tǒng)中除了有彈性恢復(fù)力及阻尼力作用外,還始終作用于簡諧激勵(lì)力: Px=P0sinwt簡諧激勵(lì):激勵(lì)隨時(shí)間的變化規(guī)律可用正弦或余弦函數(shù)表示;振動響應(yīng)亦為時(shí)間的正弦和余弦函數(shù)(簡諧振動)。結(jié)合上面的運(yùn)動微分方程和簡諧激勵(lì)力方程,可得系統(tǒng)的運(yùn)動微分方程為: 令:物體質(zhì):m = 1 kg,彈簧剛度:k = 3 N/m,阻尼:c = 4 N·s/m,作用力P = 2sin(2t + π/3),研究物體的位移隨時(shí)間的變化規(guī)律。通過北太真元建立系統(tǒng)運(yùn)動微分方程模型,如下圖所示:設(shè)置參數(shù):正弦波產(chǎn)生模塊:幅值:2;偏置:0;頻率(弧度/秒):2;相位(弧度):pi/3≈1;一階積分模塊:積分初始值:0.5;增益模塊:增益數(shù)值:4;常量模塊:常量值:3;結(jié)束時(shí)間:10s;求解器:ode4;步長:0.01s。得到的仿真結(jié)果,如下圖所示: 

搬磚的攻城獅 0 0 2023-03-31

基于北太真元的仿真建模-二階電路動態(tài)系統(tǒng)

問題:二階電路動態(tài)系統(tǒng)中,該系統(tǒng)是由電阻R、電感L和電容C組成的無源網(wǎng)絡(luò);ui(t)為輸入,i(t)為電流,u0(t)為輸出;設(shè)R=1Ω,L= 2H,C=2F;系統(tǒng)的初始狀態(tài)為0,外加的輸入為單位階躍信號。求系統(tǒng)的輸出波形。圖:二階電路動態(tài)系統(tǒng)首先,在解決該問題時(shí),需要了解基爾霍夫電壓定律;它的內(nèi)容是,在任何一個(gè)閉合回路中,各元件上的電壓降的代數(shù)和等于電動勢的代數(shù)和,即從一點(diǎn)出發(fā)繞回路一周回到該點(diǎn)時(shí),各段電壓的代數(shù)和恒等于零,即∑U=0?;鶢柣舴螂妷憾杀砻鳎貉刂]合回路所有元件兩端的電勢差(電壓)的代數(shù)和等于零?;蛘呙枋鰹椋貉刂]合回路的所有電動勢的代數(shù)和等于所有電壓降的代數(shù)和。以方程表達(dá),對于電路的任意閉合回路有:其中,m 是這閉合回路的元件數(shù)目,vk 是元件兩端的電壓,可以是實(shí)數(shù)或復(fù)數(shù)?;鶢柣舴螂妷憾刹粌H應(yīng)用于閉合回路,也可以把它推廣應(yīng)用于回路的部分電路。根據(jù)上述原理,可寫出上面問題的回路方程如下:L di(t)/dt + 1/C∫i(t)dt + Ri(t) = ui(t)消去中間變量i(t),可以得到描述網(wǎng)絡(luò)輸入輸出關(guān)系的微分方程為:LC d2u0(t)/dt2 + RC du0(t)/dt + u0(t) = ui(t)帶入電路參數(shù)R=1Ω,L= 2H,C=2F;整理可得:d2u0(t)/dt2 + 0.5 du0(t)/dt + 0.25u0(t) =  0.25ui(t)從方面方程可以得到,傳遞函數(shù)分子等式右邊系數(shù):[0.25];分母為左邊等式系數(shù):[1 0.5 0.25]根據(jù)該系數(shù),在北太真元設(shè)計(jì)傳遞函數(shù)仿真模型,再加入一個(gè)階躍信號模塊,得到仿真模型如下圖所示:設(shè)置:仿真時(shí)長:40s求解器為:定步長;步長:1s;得到仿真結(jié)果如下圖所示:在MATLAB中創(chuàng)建相同模型,仿真時(shí)間、仿真求解器、步長均相同;仿真模型和仿真結(jié)果如下圖所示:   通過對比發(fā)現(xiàn),北太真元計(jì)算結(jié)果與MATLAB仿真結(jié)果完全一致。

搬磚的攻城獅 0 0 2023-03-23

基于北太真元的仿真建模-單質(zhì)量彈簧阻尼機(jī)械系統(tǒng)

問題:單質(zhì)量彈簧阻尼機(jī)械系統(tǒng)類似于下圖,外力f(x)為輸入量;質(zhì)量位移x(t)為輸出量;質(zhì)量m為1kg;剛度為5N/m;阻尼系數(shù)f為0.3N·s/m。繪制系統(tǒng)位移輸出響應(yīng)曲線。圖1:單質(zhì)量彈簧阻尼機(jī)械系統(tǒng)首先:單質(zhì)量彈簧阻尼機(jī)械系統(tǒng)的震動方程為:m dx2/dt2 + c dx/dt + kx = f(x)取狀態(tài)向量為X(t) = [x(t)  dx/dt]’,輸出向量為U=[f(x)],輸出向量為Y=[x(t)],則狀態(tài)方程為:   dX/dt = AX(t) + BUY = CX(t) + DU式中,A = [0 1; -k/m -c/m]; B = [0; 1/m]; C = [1 0]; D = 0;(m = 1; k = 5; c = 0.3)。其次,通過計(jì)算得到傳遞函數(shù)的分子分母系數(shù)為:[1]; [1 0.3 5];即,傳遞函數(shù)為G(s) = 1/(s^2 + 0.3 s + 5);最后,利用北太真元建立傳遞函數(shù)仿真模型,如下圖所示:設(shè)置:仿真時(shí)長:10s求解器為:定步長 ode4;步長:1s輸入常量10仿真結(jié)果如下圖所示:在MATLAB中創(chuàng)建相同模型,仿真時(shí)間、仿真求解器、步長均相同;仿真模型和仿真結(jié)果如下圖所示:通過對比發(fā)現(xiàn),北太真元計(jì)算結(jié)果與MATLAB仿真結(jié)果完全一致。

搬磚的攻城獅 0 0 2023-03-23

二自由度汽車模型baltamulink仿真

1 模型假設(shè)1) 忽略轉(zhuǎn)向系的影響,以前、后輪轉(zhuǎn)角作為輸入;2) 汽車只進(jìn)行平行于地面的平面運(yùn)動,而忽略懸架的作用;3) 汽車前進(jìn)(縱軸)速度不變,只有沿y軸的側(cè)向速度和繞z軸的橫擺運(yùn)動(ay<0.4g) ;4) 驅(qū)動力不大,對側(cè)偏特性無影響;5) 忽略空氣阻力;6) 忽略左右輪胎因載荷變化引起輪胎特性的變化;7) 忽略回正力矩的變化。2 模型建立根據(jù)模型假設(shè)建立如圖1所示的二自由度汽車模型。對模型受力分析,存在3個(gè)方向的受力平衡,分別為x、y和繞Z的力矩平衡,建立力學(xué)方程如下。3 模型仿真在baltamulink中搭建狀態(tài)空間模型,模型如圖所示。(1)在前輪偏轉(zhuǎn)角為1,后輪偏轉(zhuǎn)角為1,車速為40km/h的情況下,輸出前后輪的橫向位移情況,輸出結(jié)果如圖3。圖34 結(jié)論通過建立汽車動力學(xué)模型,對汽車操縱性進(jìn)行餓模擬。根據(jù)仿真結(jié)果可以發(fā)現(xiàn)車速和前輪轉(zhuǎn)角都對二自由度汽車的操縱穩(wěn)定性有很大影響。汽車以較低速度、較小的前輪轉(zhuǎn)角行駛時(shí),是相對安全的。通過分析圖3可以看出前、后輪的橫向位移都是發(fā)散的,這是因?yàn)榻o前輪的一個(gè)階躍響應(yīng),一直存在前輪轉(zhuǎn)角,同時(shí)系統(tǒng)沒有加入閉環(huán)控制,屬于開環(huán)控制,這就導(dǎo)致前后輪的橫向位移處于發(fā)散狀態(tài)。附錄baltamatica代碼如下clc;clear;close all;%% 基本車輛參數(shù)v=40/3.6;%輸入為km/h,方程單位為m/sm=16000;%車重I=10.85*m;%轉(zhuǎn)動慣量cf=340000;%側(cè)偏剛度cr=cf;lf=2.65;%前軸到重心的距離lr=3.35;%后軸到重心的距離a=pi/180;%% 組裝矩陣A=[-(cf+cr)/(m*v)      -1-(cf*lf-cr*lr)/(m*v^2)          0 0   -(cf*lf-cr*lr)/I     -(cf*lf^2+cr*lr^2)/(I*v)            0 0     v                          lf                0 0     v                          -lr                0 0];B=[cf/(m*v)   cr/(m*v)   cf*lf/I     cr*lr/I     0           0     0           0];C=[0 0 1 0   0 0 0 1];D=zeros(2,2);

搬磚的攻城獅 0 0 2023-03-21

目前l(fā)inprog在北太天元中有直接替代嗎

如題,關(guān)于線性規(guī)劃

匿名 4 0 2023-03-01

英才計(jì)劃與中學(xué)生培養(yǎng)(二): 研發(fā)國產(chǎn)軟件,培養(yǎng)學(xué)生建模能力

點(diǎn)擊鏈接查看:英才計(jì)劃與中學(xué)生培養(yǎng)(一):卡脖子形勢下,人才培養(yǎng)方向何在?本文為北京大學(xué)重慶大數(shù)據(jù)研究院基礎(chǔ)軟件科學(xué)研究中心執(zhí)行主任、北太振寰創(chuàng)始人盧朓副教授在中國科協(xié)組織的中學(xué)生創(chuàng)新人才培養(yǎng)論壇上的分享。前文觀點(diǎn)      計(jì)算是求解數(shù)學(xué)模型的手段。可是對于中學(xué)生來說,很多算法的實(shí)現(xiàn)并非易事,因此可選擇的可以求解的數(shù)學(xué)模型就很少了。例如,求函數(shù)的最大值的問題,往往只能對二次函數(shù),三角函數(shù)來求解,稍微復(fù)雜的函數(shù)就不會了。使用數(shù)值計(jì)算通用軟件,消除中學(xué)生求解難的疑慮      其實(shí),很多數(shù)學(xué)模型對中學(xué)生來說還是比較容易掌握的。為了讓學(xué)生建模的時(shí)候可以選擇更多的模型,我建議學(xué)生使用數(shù)值計(jì)算通用軟件來消除求解難的顧慮。      借助數(shù)值計(jì)算通用軟件,更有利于培養(yǎng)同學(xué)們的數(shù)學(xué)建模能力,我舉幾個(gè)例子:      第一個(gè)例子是線性規(guī)劃、二次規(guī)劃和整數(shù)規(guī)劃之類的模型。實(shí)際上,中學(xué)生已經(jīng)接觸過這樣的問題了,但是往往局限在很小的數(shù)值范疇內(nèi)。這種模型的威力并未得到充分展現(xiàn)。            中學(xué)生如果使用數(shù)值計(jì)算通用軟件來求解此類問題,那么就可以把更多精力放在體會這種數(shù)學(xué)模型的特點(diǎn)上。      我在B站上給出了一個(gè)視頻,展示了如何使用數(shù)值計(jì)算通用軟件求解整數(shù)規(guī)劃問題,我相信感興趣的中學(xué)生可以很快學(xué)會使用計(jì)算機(jī)求解整數(shù)規(guī)劃問題的方式。      第二個(gè)例子與使用常微分方程的初值問題建模有關(guān),這個(gè)可以和物理學(xué)科結(jié)合起來。我們可以通過測量物體在不同時(shí)刻的位移,把數(shù)據(jù)畫出來,借助于常微分方程給出物理運(yùn)動規(guī)律,這樣就是在重走牛頓當(dāng)年的發(fā)現(xiàn)之路。至于常微分方程初值問題的求解則可以借助數(shù)值計(jì)算通用軟件來完成。      第三個(gè)例子是關(guān)于機(jī)器學(xué)習(xí)和人工智能的算法。      我在B站上給出了如何使用數(shù)值計(jì)算通用軟件讀取Excel數(shù)據(jù),然后如何使用樸素貝葉斯來判斷西瓜好壞的例子,也可以供中學(xué)生學(xué)習(xí)。      總之,我建議中學(xué)生借助數(shù)值計(jì)算通用軟件來了解讀取數(shù)據(jù)、數(shù)學(xué)建模、數(shù)值計(jì)算以及計(jì)算結(jié)果的可視化等環(huán)節(jié),然后選取自己感興趣的部分多下功夫,其它環(huán)節(jié)則可以通過數(shù)值計(jì)算通用軟件具有的內(nèi)置函數(shù)以及插件來完成。      參加“英才計(jì)劃”的學(xué)生不一定都要找現(xiàn)實(shí)中的問題來做數(shù)學(xué)建模,還可以通過閱讀文獻(xiàn)來學(xué)習(xí)。如果對數(shù)學(xué)或者其他學(xué)科的某些定理和知識點(diǎn)感興趣,可以通過數(shù)值計(jì)算通用軟件來驗(yàn)證,加深對這些定理的理解。 這樣的計(jì)算不能代替證明,但是幫助大家體會這個(gè)知識點(diǎn)的含義。      通過“英才計(jì)劃”,我希望學(xué)生在多個(gè)方面有所收獲,如:      1.提升搜集、理解、組織數(shù)據(jù)的技能,數(shù)學(xué)建模能力,團(tuán)隊(duì)協(xié)作能力以及論文寫作能力;      2.培養(yǎng)定量研究發(fā)展變化規(guī)律的習(xí)慣,培養(yǎng)好奇心、想象力、創(chuàng)造力和表達(dá)力;      3.了解計(jì)算機(jī)算法和原理、數(shù)值計(jì)算通用軟件的基本用法,對數(shù)學(xué)知識的用途有更深的認(rèn)識等。從數(shù)值計(jì)算通用軟件的推薦談開去:“被禁”以后,我們該做些什么?      科學(xué)計(jì)算已經(jīng)成為與理論和實(shí)驗(yàn)并列的科學(xué)研究的基本手段??茖W(xué)計(jì)算軟件可以分成兩種類型:專用型和通用型。      通用型科學(xué)計(jì)算軟件是開發(fā)工業(yè)軟件的重要基礎(chǔ)性工具,長期以來,這一部分的市場由國外公司壟斷。通用型數(shù)值計(jì)算軟件就好像連接各個(gè)工廠的高速公路一樣,是數(shù)值計(jì)算軟件中的基礎(chǔ)設(shè)施。有了高速公路的連接,工廠的原材料才能運(yùn)進(jìn)來,生產(chǎn)的產(chǎn)品才能更方便地送到用戶手里。      在向參加“英才計(jì)劃”的學(xué)生推薦數(shù)值計(jì)算通用軟件時(shí),我最初考慮的是MATLAB。但由于這是一款商業(yè)軟件,我擔(dān)心購買軟件會給學(xué)生帶來額外的經(jīng)濟(jì)負(fù)擔(dān),所以并未選擇。      2020年,美國商務(wù)部宣布新增33 家中國公司及機(jī)構(gòu)列入 “實(shí)體清單”,中國大陸共有 13 所高校被列入該清單,分別為哈爾濱工業(yè)大學(xué)、哈爾濱工程大學(xué)、中國人民大學(xué)、北京航空航天大學(xué)、西安交通大學(xué)、西北工業(yè)大學(xué)、四川大學(xué)、電子科技大學(xué)、湖南大學(xué)、國防科技大學(xué)、同濟(jì)大學(xué)、南昌大學(xué)、廣東工業(yè)大學(xué)。MATLAB 所屬公司 MathWorks 中止了對以上高校的正版授權(quán)。      這讓我為當(dāng)初自己的選擇感到慶幸,也讓很多人意識到通用型數(shù)值計(jì)算軟件是一個(gè)“卡脖子”技術(shù),沒有這個(gè)技術(shù),我們自己開發(fā)的專用軟件或者算法就無法得到廣泛的應(yīng)用。但當(dāng)時(shí)我仍想著:好在,我們還有Python可以使用。      可在俄羅斯-烏克蘭戰(zhàn)爭爆發(fā)后,據(jù)相關(guān)報(bào)道顯示“目前已經(jīng)有多達(dá)30個(gè)開源項(xiàng)目加入了對俄羅斯的抵制,其中甚至包括亞馬遜(AWS Terraform modules)和Oracle等科技巨頭的項(xiàng)目,也不乏MongoDB、pnpm、es5-ext、Drupal、Redis Desktop Manager等流行項(xiàng)目”。這讓我進(jìn)一步認(rèn)識到:這類開源軟件的主導(dǎo)權(quán)如果是掌握在別人的手里,仍然蘊(yùn)藏著危險(xiǎn)。      事實(shí)上,中國的基礎(chǔ)數(shù)學(xué)和理論數(shù)學(xué)研究在國際上還是處于領(lǐng)先地位。在涉及具體的算法或?qū)S眯蛿?shù)值計(jì)算軟件領(lǐng)域,我們中國的科學(xué)家也取得了很好的成績,在有關(guān)算法的頂級雜志上,中國人發(fā)表論文的數(shù)量和質(zhì)量都位于前列,有很多算法被國外的通用型數(shù)值計(jì)算軟件集成,得到了廣泛的應(yīng)用。      但是我們?nèi)狈ο馦ATLAB這樣的數(shù)值計(jì)算通用軟件。這是為什么呢?      因?yàn)?,通用型的?shù)值計(jì)算軟件的開發(fā)需要耗費(fèi)大量的時(shí)間,需要投入大量的人力物力,無法在短期內(nèi)做出高精尖的成果。研發(fā)過程中需要有關(guān)鍵的技術(shù)基礎(chǔ),要掌握核心關(guān)鍵的規(guī)律、知識和方法,這些都只能通過“學(xué)中干”和“干中學(xué)”相結(jié)合才能獲得。      工業(yè)軟件可以說是現(xiàn)代產(chǎn)業(yè)體系之魂。目前,歐美的工業(yè)軟件幾乎已經(jīng)滲透了所有工業(yè)領(lǐng)域的核心環(huán)節(jié)。發(fā)展具有自主知識產(chǎn)權(quán)的工業(yè)軟件刻不容緩,對掌握我國產(chǎn)業(yè)發(fā)展的主導(dǎo)權(quán),增強(qiáng)工業(yè)體系的韌性和抗打擊性都非常重要。      而通用型數(shù)值計(jì)算軟件的研發(fā)意義尤為重大:它不僅自己就是一個(gè)工業(yè)軟件,還能夠成為其他工業(yè)軟件的底座,防止國產(chǎn)工業(yè)軟件被釜底抽薪;同時(shí),數(shù)值計(jì)算通用軟件也是一個(gè)非常好的創(chuàng)新平臺;正如前文所述,此類軟件對于人才培養(yǎng)也至關(guān)重要。      通用型數(shù)值計(jì)算軟件的成功研發(fā),將是對人類文明的貢獻(xiàn),也是國家軟實(shí)力的標(biāo)志之一。因此,雖然困難重重,我和其他志同道合的伙伴們還是決心開發(fā)具有自主知識產(chǎn)權(quán)的通用型數(shù)值計(jì)算軟件,破解“卡脖子”問題。      (未完待續(xù))作者簡介

社區(qū)小助手 1 1 2023-03-01

路徑規(guī)劃(十七)雙向A *算法

17.1 原理    完整思想請看我前面寫的路徑規(guī)劃(十三)基于搜索的路徑規(guī)劃算法-前言,,和其他的基于搜索的路徑規(guī)劃算法的區(qū)別僅在于啟發(fā)式函數(shù)的不同.    雙向A*則稍微復(fù)雜些,但可以簡單理解為起始節(jié)點(diǎn)和終點(diǎn)同時(shí)將對方視為目標(biāo)節(jié)點(diǎn),并按照A*的啟發(fā)式函數(shù),相向生長,當(dāng)兩者相遇時(shí),則停止迭代,并分別往回追溯自己的父節(jié)點(diǎn)即可得到路徑。17.2 程序示例

王昊 0 0 2023-01-05

路徑規(guī)劃(十六)啟發(fā)式搜索算法(A* )

16.1 原理    完整思想請看我前面寫的路徑規(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

王昊 0 0 2023-01-05

路徑規(guī)劃(十五)Dijkstra算法

15.1 原理完整思想請看我前面寫的路徑規(guī)劃(十三)基于搜索的路徑規(guī)劃算法-前言,和其他的基于搜索的路徑規(guī)劃算法的區(qū)別僅在于啟發(fā)式函數(shù)的不同Dijkstra則和Best-first-searching相反,它不是將到目標(biāo)節(jié)點(diǎn)的距離作為啟發(fā)式函數(shù),而是將到起始節(jié)點(diǎn)的距離作為啟發(fā)式函數(shù)。15.2 程序示例

王昊 0 0 2023-01-05

路徑規(guī)劃(十四)最佳路徑優(yōu)先搜索算法(BFS)

14.1 原理這里的Best-first-searching和數(shù)據(jù)結(jié)構(gòu)里學(xué)的圖搜索算法BFS(廣度優(yōu)先搜索)不是一個(gè)東西。完整思想請看我前面寫的路徑規(guī)劃(十三)基于搜索的路徑規(guī)劃算法-前言下面說說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無法通過碰撞檢測,則為inf,如果能通過碰撞檢測,可以直接用歐幾里得距離代替。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

王昊 0 0 2023-01-05

路徑規(guī)劃(十三)基于搜索的路徑規(guī)劃算法-前言

基于搜索的路徑規(guī)劃算法基本都是一個(gè)套路,它們都是根據(jù)啟發(fā)函數(shù)重備用節(jié)點(diǎn)的集合中來尋找下一個(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)過程:當(dāng)上述偽碼退出循環(huán)后,沿著x_goal的父節(jié)點(diǎn)往前回溯極為路徑各搜索類算法的區(qū)別在于第三行啟發(fā)函數(shù)的類型的不同,導(dǎo)致連接的節(jié)點(diǎn)不同。

王昊 0 0 2023-01-05

路徑規(guī)劃(十二)基于采樣的算法的總結(jié)

幾種RRT對比如下:幾種RRT對比視圖mp4        RRT及其變種都是依托于采樣+在樹結(jié)構(gòu)上加減枝的形式進(jìn)行路徑規(guī)劃的,具有全局收斂特性,但是效率穩(wěn)定性不高。不過可以針對性地對其主要函數(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í)生長RRT樹,這就是connected_RRT。此外,針對變化的環(huán)境,還有extend_RRT和Dynamic_RRT。         RRT*是一種趨近于最優(yōu)路徑的方案,它通過重布線來實(shí)現(xiàn)這一目的,它在理論上能達(dá)到最優(yōu)解,但它全局隨機(jī)撒點(diǎn)的特性導(dǎo)致它在遠(yuǎn)離目標(biāo)路徑的地方做了過多的生長。        為了集中優(yōu)化資源,RRT*-smart應(yīng)運(yùn)而生,它比較在乎路徑和障礙物的拐點(diǎn)的附近的優(yōu)化,它通過路徑優(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*則解決了這一問題,它利用初始路徑的長度,起始點(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è)新路徑的長度,縮小橢圓,進(jìn)一步在有效區(qū)域集中撒點(diǎn)資源,以實(shí)現(xiàn)加速。        然而,RRT*類的算法是總會面臨一個(gè)問題,那就是重布線,這個(gè)令RRT*能夠逼近最優(yōu)解的創(chuàng)新恰恰成為了它慢的原因。        于是,另一種思路被提出,那就是提前給定隨機(jī)點(diǎn),然后通過啟發(fā)式函數(shù)來連接這些點(diǎn)以生長路徑,這就是FMT*,F(xiàn)MT*專門針對解決高維構(gòu)型空間中的復(fù)雜運(yùn)動規(guī)劃問題,在預(yù)先確定的采樣點(diǎn)數(shù)量上執(zhí)行前向動態(tài)規(guī)劃遞歸,并相應(yīng)地通過在代價(jià)到達(dá)空間中穩(wěn)步向外移動生成路徑樹。FMT*能很快的找到一條路徑,但是當(dāng)我們想對這條路徑進(jìn)行優(yōu)化時(shí),只有通過加密隨機(jī)采樣點(diǎn)的方式,然而,F(xiàn)MT*是一種單批算法,面對新的采樣點(diǎn)分布時(shí),它只能重新開始計(jì)算。        為了融合informed RRT*在有效區(qū)域集中隨機(jī)點(diǎn)的特點(diǎn)和FMT*快速生長的特點(diǎn),就誕生了BIT*。它能夠在橢圓區(qū)域內(nèi)分批撒點(diǎn),實(shí)現(xiàn)快速生長的同時(shí),還能自我優(yōu)化。參考https://www.youtube.com/watch?v=TQIoCC48gp4

王昊 0 0 2023-01-05

路徑規(guī)劃(十一)Batch Informed樹(BIT *)

11.1 原理        簡單來說,BIT*是結(jié)合了Informed RRT*和FMT*的優(yōu)點(diǎn)的一種算法?;仡櫼幌拢琁nformed RRT*是對RRT*的一種優(yōu)化,在RRT*生成一個(gè)初始路徑后,則以初始路徑的長度,起始點(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),邊生長樹,而是一次性提前在整個(gè)區(qū)域(不包含障礙物區(qū)域)內(nèi)采lm個(gè)點(diǎn),只重復(fù)一次。        下面我們來說說,Informed RRT*和優(yōu)缺點(diǎn)FMT*,然后就知道為什么要引出BIT*了。        先說FMT*,F(xiàn)MT*的優(yōu)點(diǎn)是從起始位置開始構(gòu)建,沒有重布線過程,因此節(jié)約時(shí)間,適用于復(fù)雜的障礙物環(huán)境。但是FMT*的缺點(diǎn)是,它只有1批,F(xiàn)MT*路徑的精度完全取決于當(dāng)前批撒點(diǎn)的密度,當(dāng)你想要提升精度時(shí),只能重新開始一批,重新更密集的撒點(diǎn),然后重新開始規(guī)劃。        再說Informed RRT*,Informed RRT*的優(yōu)點(diǎn)恰好彌補(bǔ)了FMT*的缺點(diǎn),想要提升精度,只需撒更多的點(diǎn)就好了,而Informed RRT*的撒點(diǎn)過程時(shí)一直在進(jìn)行的,它一批只撒一個(gè)點(diǎn),重復(fù)很多批,開始新的批的時(shí)候之前的信息不會被拋棄,只要Informed RRT*一直撒點(diǎn),就可以達(dá)到任意精度。但是Informed RRT*的缺點(diǎn)也顯而易見,它需要重布線,計(jì)算效率低。        所以自然就想到,能不能利用FMT*的優(yōu)點(diǎn),提前撒好點(diǎn),不用重布線,提升計(jì)算效率,又能多批進(jìn)行,以不斷提升精度?當(dāng)然能,這就是BIT*算法        BIT*的過程總結(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 

王昊 0 0 2023-01-05

路徑規(guī)劃(十)啟發(fā)式Informed RRT *算法

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)過路徑優(yōu)化后的路徑的拐點(diǎn)在障礙物的附近,它認(rèn)為這個(gè)拐點(diǎn)的附近需要著重優(yōu)化,所以RRT*-smart在進(jìn)一步撒點(diǎn)的過程中,將一些隨機(jī)點(diǎn)偏袒的撒在這個(gè)拐點(diǎn)的附近鄰域。        這里的informed RRT*也是這樣認(rèn)為,它認(rèn)為單純的RRT*在整個(gè)區(qū)域內(nèi)隨機(jī)撒點(diǎn),優(yōu)化效果太過分散,如果我能知道我最終優(yōu)化的路徑在哪一塊區(qū)域,那我就只在這一區(qū)域內(nèi)撒點(diǎn)不就好了嗎?informed RRT*就是這樣做的。注意:        informed RRT*是在RRT*算法給出一條初始路徑后,對這個(gè)初始路徑繼續(xù)優(yōu)化的步驟才起作用的,它對于這個(gè)初始路徑的生成沒有幫助。10.2 思路        根據(jù)高中數(shù)學(xué)知識可以知道,在橢圓上的點(diǎn)到橢圓兩焦點(diǎn)的距離之和相同,橢圓外的點(diǎn)的距離到兩焦點(diǎn)的距離之和大于橢圓上的點(diǎn)到兩焦點(diǎn)的距離之和,橢圓內(nèi)的點(diǎn)反之。        回顧一下RRT*的搜索圖,根據(jù)上面這個(gè)知識點(diǎn)可以發(fā)現(xiàn),其實(shí)RRT在已經(jīng)得到一條可行路徑之后,可以將采樣空間收縮到一個(gè)橢圓形區(qū)域中,區(qū)域之外的點(diǎn)對于縮短規(guī)劃出的路徑長度并沒有實(shí)際價(jià)值。        informed RRT就是的主要思想就是上面這種思想,在獲取可行路徑之后,將采樣空間限制在一個(gè)橢圓形區(qū)域中,并且隨著路徑長度的不斷縮短,逐漸縮小該橢圓形區(qū)域。這個(gè)思想其實(shí)在以前就有,但是提出informed RRT的論文中提出了對這個(gè)橢圓形區(qū)域直接采樣的方法。        可能有人會直接想,這里只不過是縮小了采樣空間,并不會明顯改進(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):除了采樣過程外,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 程序示例程序在尋找初始路徑的過程和普通RRT*一樣,在全局域中隨機(jī)撒點(diǎn),迭代到1282次時(shí)首次找到初始路徑,然后我們以起始點(diǎn)和目標(biāo)點(diǎn)為焦點(diǎn),初始路徑的長度為點(diǎn)到兩焦點(diǎn)的距離之和,畫出一個(gè)橢圓:我們隨后的隨機(jī)點(diǎn)的選取范圍不再是全局域了,新采的樣本點(diǎn)被限制在這個(gè)橢圓中,下圖中的圓圈代表迭代1283-2509次的隨機(jī)點(diǎn)的分布,可見,新的隨機(jī)點(diǎn)全部被限制在橢圓中:當(dāng)?shù)?510次時(shí),新的總長度更短的路徑被找到,,隨后,我們以起始點(diǎn)和目標(biāo)點(diǎn)為焦點(diǎn),以這個(gè)新的路徑的長度為到兩焦點(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

王昊 1 0 2023-01-05

路徑規(guī)劃(九)快速行進(jìn)樹(FMT *)

9.1 原理        FMT*算法專門針對解決高維構(gòu)型空間中的復(fù)雜運(yùn)動規(guī)劃問題,它是為高密度障礙物的環(huán)境構(gòu)建的算法。該算法被證明是漸近最優(yōu)的,并且比同類型算法(RRT*)更快收斂到最優(yōu)解。FMT*算法在預(yù)先確定的概率繪制的樣本數(shù)量上執(zhí)行“惰性”動態(tài)規(guī)劃遞歸,以生長路徑樹,該路徑樹在成本到達(dá)空間中穩(wěn)定地向外移動。        FMT*的最終產(chǎn)物是一棵樹,它在連續(xù)空間中獲取一批樣本,然后它能在圖中使用惰性的動態(tài)編程搜索該樣本集合,并以此找到路徑,這也是一個(gè)漸進(jìn)最優(yōu)的解決方案,F(xiàn)MT*相比于RRT*的加速效果優(yōu)勢在高維和碰撞檢查很昂貴的情況下尤其突出。很棒的一點(diǎn)是,F(xiàn)MT*是從起始位置開始構(gòu)建,而不是像RRT*是在空間的任意位置采點(diǎn),因?yàn)檫@可能會得到非常遠(yuǎn)的點(diǎn)或非常近的點(diǎn),這有什么好處呢?這意味著你不必在樹中回溯以進(jìn)行重布線,因?yàn)檫@在計(jì)算上效率低下。FMT*比RRT*更好,因?yàn)樗鼊?chuàng)建的連接接近最佳,沒有重布線。        FMT*算法在預(yù)先確定的采樣點(diǎn)數(shù)量上執(zhí)行前向動態(tài)規(guī)劃遞歸,并相應(yīng)地通過在代價(jià)到達(dá)空間中穩(wěn)步向外移動生成路徑樹。FMT*執(zhí)行動態(tài)規(guī)劃遞歸,其特點(diǎn)有三個(gè)關(guān)鍵特征:·它是為磁盤連接圖量身定制的,其中兩個(gè)樣本的距離低于給定的界限(稱為連接半徑)則這兩個(gè)樣本被認(rèn)為是鄰居,因此是可連接的。·它同時(shí)執(zhí)行圖構(gòu)造和圖搜索?!榱嗽u估動態(tài)規(guī)劃遞歸中的即時(shí)成本,算法“懶惰地”忽略了障礙物的存在,每當(dāng)與新樣本的局部最優(yōu)(假設(shè)沒有障礙物)連接與障礙物相交時(shí),該樣本就會簡單地跳過并留待以后,而不是在鄰域中尋找其他連接。注意:FMT*的樣本點(diǎn)是提前生成好的,然后把這些點(diǎn)固定,再利用這些固定好的點(diǎn)來生成行進(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號節(jié)點(diǎn)的距離并同時(shí)進(jìn)行碰撞檢測,因此,第一次重布線過程就要求待加入的節(jié)點(diǎn)對它的所有鄰居節(jié)點(diǎn)進(jìn)行一次碰撞檢測,第二次重布線過程也需要計(jì)算距離和碰撞檢測,但這在第一次重布線過程中做過了,可以記錄先來直接利用,因此第二次重布線過程碰撞檢測這一步可以不用重復(fù)進(jìn)行,因此,總的來說,RRT*每新加入一個(gè)節(jié)點(diǎn),該節(jié)點(diǎn)需要對它的所有鄰居節(jié)點(diǎn)進(jìn)行一次碰撞檢測。        再看FMT*,上圖(b)(c)中的x就是新考慮的節(jié)點(diǎn),在圖(b)中,x需計(jì)算它到集合V_open中所有的鄰居節(jié)點(diǎn)的cost,但不需要進(jìn)行碰撞檢測,從中選擇一個(gè)能使它到達(dá)初始節(jié)點(diǎn)總cost最小的節(jié)點(diǎn)作為它的父節(jié)點(diǎn),然后,對它和這個(gè)父節(jié)點(diǎn)的連線進(jìn)行碰撞檢測,如果能通過碰撞檢測,則加入x,若不能,則下一個(gè)x,因此,總的來說,F(xiàn)MT*每新加入一個(gè)節(jié)點(diǎn),永遠(yuǎn)只需要進(jìn)行一次碰撞檢測。FMT*比RRT*每新加入一個(gè)節(jié)點(diǎn)需要進(jìn)行的碰撞檢測次數(shù)少得多,而且FMT*也是漸進(jìn)最優(yōu)的,這就是FMT*相比于RRT*的優(yōu)勢所在。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?

王昊 0 1 2023-01-05

路徑規(guī)劃(八)RRT*-smart

8.1 原理        最初,RRT*-Smart 像 RRT* 一樣隨機(jī)搜索狀態(tài)空間。類似地,找到第一條路徑就像 RRT* 會嘗試通過配置空間中的隨機(jī)采樣來找到路徑一樣。一旦找到第一條路徑,它就會通過互連直接可見的節(jié)點(diǎn)來優(yōu)化它。此優(yōu)化路徑產(chǎn)生用于智能采樣的偏置點(diǎn)。在這些偏置點(diǎn),采樣以規(guī)則的間隔進(jìn)行        隨著算法的進(jìn)展和路徑的不斷優(yōu)化,此過程將繼續(xù)進(jìn)行。每當(dāng)找到更短的路徑時(shí),偏差就會轉(zhuǎn)向新路徑。        RRT*是一邊生長一邊優(yōu)化的,RRT*的重心在于找到最優(yōu)路徑。RRT*樹生長到能連接起點(diǎn)和終點(diǎn)后,這就已經(jīng)有一條初始路徑了。        這顆RRT*樹可以繼續(xù)生長,越生長可以得到的路徑相比初始路徑會越優(yōu)。然而,這個(gè)繼續(xù)生長的過程對于RRT*而言效率非常低,由此衍生出RRT*-smart算法,專門解決這一問題。        注意到,RRT*-smart是在RRT*算法已生成初始路徑后,在此基礎(chǔ)上,想對初始路徑繼續(xù)優(yōu)化的步驟才起作用,所以RRT*-smart對于生成初始路徑并沒有加速幫助。        RRT*-smart的優(yōu)勢在于:它專注于提升路徑接近障礙物拐點(diǎn)處的優(yōu)化速度。RRT*-smart算法的思路是這樣的:在原始RRT*算法的基礎(chǔ)上加了兩步:①路徑優(yōu)化路徑優(yōu)化的本質(zhì)是利用三角形兩邊之和大于第三邊 假設(shè)RRT*生成的初始路徑長這樣 具體操作如下:        一旦RRT*給出了一條初始路徑,將初始路徑中彼此可見的節(jié)點(diǎn)直接相連。迭代過程從xgoal開始,向xinit檢查與每個(gè)節(jié)點(diǎn)的連續(xù)父節(jié)點(diǎn)的直接連接,直到無沖突條件失敗。下圖給出一個(gè)示例。 信標(biāo)(Z_beacons):經(jīng)過路徑優(yōu)化后的路徑中除了起點(diǎn)和終點(diǎn)之外的節(jié)點(diǎn),標(biāo)記為信標(biāo)(Z_beacons),如上圖中的綠點(diǎn)。②智能采樣在RRT*算法中,在生成初始路徑后,在此RRT*樹的基礎(chǔ)上繼續(xù)采點(diǎn),采點(diǎn)越多,路徑優(yōu)化效果越好,但此采點(diǎn),是完全隨機(jī)的采點(diǎn),因此效率低下,RRT*-smart則不是完全隨機(jī)的采點(diǎn)。在RRT*-smart算法中,利用了這樣一種思想:智能采樣背后的想法是通過生成盡可能靠近障礙物頂點(diǎn)的節(jié)點(diǎn)來接近最優(yōu)性。在基于采樣的RRT*-smart中,路徑僅沿著靠近障礙物拐點(diǎn)的外圍進(jìn)行優(yōu)化,解決的辦法就是:在障礙物拐點(diǎn)的外圍多多采點(diǎn)。如下圖所示: 問:那么RRT*-smart如何實(shí)現(xiàn)在障礙物拐點(diǎn)的外圍多多采點(diǎn)呢?答:利用①路徑優(yōu)化過程中給出的信標(biāo)(Z_beacons)。一旦找到初始路徑,智能采樣就會開始,在以Z beacons為中心的半徑為R beacons的球中直接生成一定數(shù)量的樣本。采樣偏向于這些信標(biāo),因?yàn)樗鼈兲峁┝擞嘘P(guān)障礙物頂點(diǎn)(或圓形障礙物的外圍)位置的有用線索。因此,這些信標(biāo)需要被最大節(jié)點(diǎn)包圍,以優(yōu)化這些轉(zhuǎn)彎處的路徑。與 RRT* 相比,這一特征迫使所提出的算法以更少的迭代次數(shù)達(dá)到最優(yōu)解。注意:信標(biāo)(Z_beacons)是需要隨著優(yōu)化路徑的更新而更新的。即當(dāng)z_goal.cost變小時(shí),說明路徑得到了優(yōu)化,那么就要啟用之前①路徑優(yōu)化算法來重新確定新的z_beacons。 8.2 偽碼  8.3 程序示例下圖中的線段代表由RRT*生成的初始RRT樹,圓圈代表在初始RRT樹基礎(chǔ)上,繼續(xù)采點(diǎn)的分布,可見在幾個(gè)“拐點(diǎn)處”的圓形領(lǐng)域內(nèi)我們有額外的采點(diǎn)以加強(qiáng)在這部分的采點(diǎn) 路徑優(yōu)化后確定出拐點(diǎn) 經(jīng)過路徑優(yōu)化后的路徑: 8.4 參考1、RRT*-SMART: A Rapid Convergence Implementation of RRT*2、Rapid convergence implementation of RRT* towards optimal solution

王昊 0 0 2023-01-05

路徑規(guī)劃(七)RRT*算法

7.1 原理        RRT*是一種基于采樣的最優(yōu)化路徑規(guī)劃方式,與RRT的區(qū)別是,RRT盡量使新節(jié)點(diǎn)以及其周圍的節(jié)點(diǎn)到起點(diǎn)的cost(可以是路徑或者時(shí)間等目標(biāo)函數(shù))最短,而不是僅僅尋找離它近的節(jié)點(diǎn),而且在找到路徑后不會停止,而是繼續(xù)進(jìn)行采樣來優(yōu)化得到的路徑。        盡管RRT算法是一個(gè)相對高效率,同時(shí)可以較好的處理帶有非完整約束的路徑規(guī)劃問題的算法,并且在很多方面有很大的優(yōu)勢,但是RRT算法并不能保證所得出的可行路徑是相對優(yōu)化的。因此許多關(guān)于RRT算法的改進(jìn)也致力于解決路徑優(yōu)化的問題,RRT*算法就是其中一個(gè)。RRT*算法的主要特征是能快速的找出初始路徑,之后隨著采樣點(diǎn)的增加,不斷地進(jìn)行優(yōu)化直到找到目標(biāo)點(diǎn)或者達(dá)到設(shè)定的最大循環(huán)次數(shù)。RRT*算法是漸進(jìn)優(yōu)化的,也就是隨著迭代次數(shù)的增加,得出的路徑是越來越優(yōu)化的,而且永遠(yuǎn)不可能在有限的時(shí)間中得出最優(yōu)的路徑。因此換句話說,要想得出相對滿意的優(yōu)化路徑,是需要一定的運(yùn)算時(shí)間的。所以RRT*算法的收斂時(shí)間是一個(gè)比較突出的研究問題。但不可否認(rèn)的是,RRT*算法計(jì)算出的路徑的代價(jià)相比RRT來說減小了不少。RRT*算法與RRT算法的區(qū)別主要在于兩個(gè)針對新節(jié)點(diǎn) xnew 的重計(jì)算過程,分別為:·重新為 xnew 選擇父節(jié)點(diǎn)的過程·重布線隨機(jī)樹的過程7.1.1 重新選擇父節(jié)點(diǎn)過程        在新產(chǎn)生的節(jié)點(diǎn) xnew 附近以定義的半徑范圍內(nèi)尋找“近鄰”,作為替換 xnew 父節(jié)點(diǎn)的備選。依次計(jì)算“近鄰”節(jié)點(diǎn)到起點(diǎn)的路徑代價(jià)加上 xnew 到每個(gè)“近鄰”的路徑代價(jià),具體過程見上圖。        圖(a)中表現(xiàn)的是隨機(jī)樹擴(kuò)展過程中的一個(gè)時(shí)刻,節(jié)點(diǎn)標(biāo)號表示產(chǎn)生該節(jié)點(diǎn)的順序,0節(jié)點(diǎn)是初始節(jié)點(diǎn),9節(jié)點(diǎn)是新產(chǎn)生的節(jié)點(diǎn) xnew,6節(jié)點(diǎn)是產(chǎn)生9節(jié)點(diǎn)的 xnear,節(jié)點(diǎn)與節(jié)點(diǎn)之間連接的邊上數(shù)字代表兩個(gè)節(jié)點(diǎn)之間的歐氏距離(這里我們用歐氏距離來表示路徑代價(jià))。        在重新找父節(jié)點(diǎn)的過程中,以9節(jié)點(diǎn) xnew 為圓心,以事先規(guī)定好的半徑,找到在這個(gè)圓的范圍內(nèi) xnew 的近鄰,也就是4,5,8節(jié)點(diǎn)。        原來的路徑0 - 4 - 6 - 9代價(jià)為10 + 5 + 1 = 16,備選的三個(gè)節(jié)點(diǎn)與 xnew 組成的路徑0 - 1 - 5 - 9,0 - 4 - 9和0 - 1 - 5 - 8 - 9代價(jià)分別為3 + 5 + 3 = 11,10 + 4 = 14和3 + 5 + 1 + 3 = 12,因此如果5節(jié)點(diǎn)作為9節(jié)點(diǎn)的新父節(jié)點(diǎn),則路徑代價(jià)相對是最小的,因此我們把9節(jié)點(diǎn)的父節(jié)點(diǎn)由原來的節(jié)點(diǎn)4變?yōu)楣?jié)點(diǎn)5,則重新生成的隨機(jī)樹如圖(b)所示。7.1.2 重布線隨機(jī)樹過程    在為xnew 重新選擇父節(jié)點(diǎn)之后,為進(jìn)一步使得隨機(jī)樹節(jié)點(diǎn)間連接的代價(jià)盡量小,為隨機(jī)樹進(jìn)行重新布線。過程示意如上圖重布線的過程也可以被表述成:如果近鄰節(jié)點(diǎn)的父節(jié)點(diǎn)改為 xnew 可以減小路徑代價(jià),則進(jìn)行更改。    如圖(c),9節(jié)點(diǎn)為新生成的節(jié)點(diǎn) xnew ,近鄰節(jié)點(diǎn)分別為節(jié)點(diǎn)4 , 6 , 8 。它們父節(jié)點(diǎn)分別為節(jié)點(diǎn)0 , 4 , 5。路徑分別為0 - 4,0 - 4 - 6,0 - 1 - 5 - 8,代價(jià)分別為10,10 + 5 = 15 和3 + 5 + 1 = 9。    如果將4節(jié)點(diǎn)的父節(jié)點(diǎn)改為9節(jié)點(diǎn) xnew ,則到達(dá)節(jié)點(diǎn)4的路徑變?yōu)? - 1 - 5 - 9 - 4,代價(jià)為3 + 5 + 3 + 4 = 15 大于原來的路徑代價(jià)10,因此不改變4節(jié)點(diǎn)的父節(jié)點(diǎn)。    同理,改變了8節(jié)點(diǎn)的父節(jié)點(diǎn),路徑代價(jià)將由原來的9變?yōu)?4,也不改變8節(jié)點(diǎn)的父節(jié)點(diǎn)。如果改變6節(jié)點(diǎn)的父節(jié)點(diǎn)為 xnew 則路徑變?yōu)? - 1 - 5 - 9 - 6,代價(jià)為3 + 5 + 3 + 1 = 12小于原來的路徑代價(jià)15,因此將6的父節(jié)點(diǎn)改為節(jié)點(diǎn)9,生成的新隨機(jī)樹如圖(d)。    重布線過程的意義在于每當(dāng)生成了新的節(jié)點(diǎn)后,是否可以通過重新布線,使得某些節(jié)點(diǎn)的路徑代價(jià)減少。如果以整體的眼光看,并不是每一個(gè)重新布線的節(jié)點(diǎn)都會出現(xiàn)在最終生成的路徑中,但在生成隨機(jī)樹的過程中,每一次的重布線都盡可能的為最終路徑代價(jià)減小創(chuàng)造機(jī)會。    RRT*算法的核心在于上述的兩個(gè)過程:重新選擇父節(jié)點(diǎn)和重布線。這兩個(gè)過程相輔相成,重新選擇父節(jié)點(diǎn)使新生成的節(jié)點(diǎn)路徑代價(jià)盡可能小,重布線使得生成新節(jié)點(diǎn)后的隨機(jī)樹減少冗余通路,減小路徑代價(jià)。7.2 偽碼7.3 程序示例7.4 參考1、Sampling-based Algorithms for Optimal Motion Planning2、https://blog.csdn.net/weixin_43795921/article/details/88557317#t03、https://zhuanlan.zhihu.com/p/51087819

王昊 0 1 2023-01-05