今日要聞
-
1
2025年6月中旬流通領(lǐng)域重要生產(chǎn)資
2025年6月中旬與6月上旬相比, 【詳細】
-
2
近日,國家統(tǒng)計局發(fā)布關(guān)于2025 【詳細】
-
3
本次培訓(xùn)由廣東省塑膠行業(yè)協(xié)會 【詳細】
-
4
此次位于德國Züttlingen 【詳細】
-
5
6月26日-28日,震雄即將亮相20 【詳細】
-
6
2025上海國際食品加工與包裝機 【詳細】
-
7
促進創(chuàng)新與共創(chuàng)!巴斯夫正式啟用全
巴斯夫于2025年6月17日在韓國 【詳細】
-
8
為進一步強化全體員工的安全意 【詳細】
-
9
中國合成橡膠工業(yè)協(xié)會領(lǐng)導(dǎo)赴貴州調(diào)
6月18日,中國合成橡膠工業(yè)協(xié) 【詳細】
-
10
2025年6月,一份溫暖的改變?nèi)?【詳細】
-
11
6月23日消息,江門市生態(tài)環(huán)境 【詳細】
-
12
近日,有報道顯示,Westlake將 【詳細】
推薦展會
更多 > >
-
地點: 上海市 開展時間: 2025-06-24 舉辦單位: 中國食品和包裝機械工業(yè)協(xié)會、中國包裝和食品機械有限公司、上海博華國際展覽有限公司
-
地點: 深圳市 開展時間: 2025-06-25 舉辦單位: 深圳國際導(dǎo)熱散熱展組委會、深圳勵悅展覽有限公司、博寒展覽(深圳)有限公司
推薦視頻
更多 > >
開學(xué)季 | 第一課《車輛路徑問題與算法》
請問膜拜技術(shù)大牛除了獻上膝蓋還有什么更好的方式?答:可以把大家的膝蓋一起獻上,又或者好好學(xué)習(xí)天天向上,利用碎片化時間多為自己充電,一起參與技術(shù)的交流與探討。——四月,我們迎來了藍芯科技的開學(xué)季,我們將在此分享機器人相關(guān)技術(shù)知識。今天是開學(xué)第一課《車輛路徑問題與算法》,歡迎大家留言一起探討。

一 、車輛路徑問題
在介紹 VRP問題前,先介紹它的一個特例,旅行商問題(Traveling Salesman Problem, TSP):有一個旅行商人,要拜訪n個城市,每個城市只能訪問一次,后返回到原來出發(fā)的城市。該商人要選擇一條路徑,路徑的選擇目標(biāo)是旅程短。

圖1 TSP問題
車輛路徑問題(Vehicle Routing Problem,VRP)早是由Dantzig和Ramser于1959年*提出,它是指一定數(shù)量有一定數(shù)量(n個)的客戶,各自有不同數(shù)量的貨物需求(qi),配送中心或車場(depot)向客戶提供貨物,由一個車隊(m輛車)負責(zé)分送貨物,組織適當(dāng)?shù)男熊嚶肪€,目標(biāo)是使得客戶的需求得到滿足,并能在一定的約束下(例如車輛存在載荷上限Q、里程長度上限L),達到總旅行成本小、耗費時間少等目的[1, 2]。

圖 2 VRP問題
在理解了車輛路徑問題后,接下來介紹幾個常用的路徑搜索算法。
二、路徑搜索算法
在路徑搜索算法中,常用的算法用Dijkstra算法和 A*算法。這里不對算法原理進行詳細介紹,僅簡單給出相應(yīng)的使用示例。給出一個網(wǎng)格圖,如圖3所示。在該網(wǎng)格圖中,僅橫、縱向相鄰網(wǎng)格可以通過,其中黑色背景網(wǎng)格不可通過。在網(wǎng)各圖中,每移動一格會增加一個單位成本。現(xiàn)給定一個起點(46)和終點(49),通過Dijkstra算法和A*算法分別求解短路徑。

圖 3網(wǎng)格圖示例
2.1 Dijkstra算法
該算法的思想是從起點開始,每次新擴展一個距離短的點,并更新從起點到該點的距離與路線。直到拓展到終點,并且往其他方向拓展點的距離不比該點的距離更近時停止。對圖 3 的求解過程如圖4所示。終的路線是

圖 4 Dijkstra算法拓展過程
2.2 A*算法在Dijkstra中,當(dāng)前拓展到的點的距離為從起點到當(dāng)前點的實際短距離。而A* 算法與 Dijkstra相比增加了一個啟發(fā)項,即在計算當(dāng)前點的路線距離時,使用從起點到當(dāng)前點的實際短距離加上從當(dāng)前拓展的點到終點的估計距離。因此,在實際距離相同時,估計距離近的點優(yōu)先繼續(xù)拓展。使用A*算法對圖3 的求解結(jié)果如圖5 所示。終的路線是

圖 5 A*算法拓展過程示例
2.3 多訪問點的路徑搜索算法
前面提到的Dijkstra和 A*算法主要是針對兩個點(起點、終點)尋找一條短路徑,但是對于多訪問點找短路的問題,比如在文初提到的TSP問題,就不適用了。我們開發(fā)了一個快速求解的算法。
我們首先使用 Dijkstra算法找出所有兩點之間的短路并存儲相應(yīng)的路線信息。然后針對多訪問點尋短路問題,分兩個階段進行搜索。
第一階段:基于動態(tài)規(guī)劃(DP)求解 TSP的框架,控制初始搜索步長快速得出初始解。
第二階段:對第一階段得到的初始解使用變鄰域搜索(VND)進行優(yōu)化。
假設(shè)我們有1個出發(fā)點(編號為


因為一共有7個點(1個出發(fā)點加6個訪問點),所以搜索劃分為6個step,方向為從右至左(從終點至起點),如圖6所示。

圖 6基于 DP框架的step示例
計算過程為,以后一列的點為終點,搜索第一個弧(arc),即step(1)的路徑,然后再增加一個 arc,即在step(1)的基礎(chǔ)上搜索step(2)的路徑,以此類推。假設(shè)以為終點進行搜索,搜索中的部分過程如圖7所示。終搜索完step(6) 時會搜索出完整的路線。需要注意的一點是,一旦發(fā)現(xiàn)某條路線不是可行解時(比如一個訪問點在路線中多次出現(xiàn)),后面可以不再基于此結(jié)果進行搜索。

圖7基于 DP框架的部分搜索過程示例
我們這里控制了初始搜索步長len,意為從step(1) 到step(len) 搜索出的路徑是按照 DP的方式搜索到的當(dāng)前精確合適的路線,而從step(len+1)開始,只記錄該step下的n條路徑中合適的結(jié)果。因此,當(dāng)len的值越大,終搜索的結(jié)果越接近精確合適解,但是相應(yīng)的求解時間也會越長。假設(shè)通過該階段終搜索出的合適結(jié)果為

圖 8 VND算法框架
在鄰域搜索中,常用的變換策略有Reinsert、Exchange和Reverse,如圖9所示。

圖 9 三種常見的鄰域變換策略
使用VND不斷地對序列變換得到新的序列,并求新序列的路徑成本。需要注意的是,求路徑成本時要將出發(fā)點考慮在內(nèi),即將出發(fā)點

本文為杭州藍芯科技有限公司原創(chuàng)文章,轉(zhuǎn)載請注明出處
- 凡本網(wǎng)注明"來源:塑料機械網(wǎng)"的所有作品,版權(quán)均屬于塑料機械網(wǎng),轉(zhuǎn)載請必須注明塑料機械網(wǎng),http://www.jeefix.com。違反者本網(wǎng)將追究相關(guān)法律責(zé)任。
- 企業(yè)發(fā)布的公司新聞、技術(shù)文章、資料下載等內(nèi)容,如涉及侵權(quán)、違規(guī)遭投訴的,一律由發(fā)布企業(yè)自行承擔(dān)責(zé)任,本網(wǎng)有權(quán)刪除內(nèi)容并追溯責(zé)任。
- 本網(wǎng)轉(zhuǎn)載并注明自其它來源的作品,目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點或證實其內(nèi)容的真實性,不承擔(dān)此類作品侵權(quán)行為的直接責(zé)任及連帶責(zé)任。其他媒體、網(wǎng)站或個人從本網(wǎng)轉(zhuǎn)載時,必須保留本網(wǎng)注明的作品來源,并自負版權(quán)等法律責(zé)任。
- 如涉及作品內(nèi)容、版權(quán)等問題,請在作品發(fā)表之日起一周內(nèi)與本網(wǎng)聯(lián)系,否則視為放棄相關(guān)權(quán)利。