• <del id="qqie6"><sup id="qqie6"></sup></del>
  • <tfoot id="qqie6"></tfoot>
  • <ul id="qqie6"></ul>
  • 杭州藍芯科技有限公司

    初級會員·7年

    聯系電話

    13675884706

    您現在的位置: 首頁> 技術文章 > 開學季 | 課《車輛路徑問題與算法》

    智能搬運機器人

    3D視覺傳感器

    智能搬運AGV

    3D視覺傳感器解決方案

    工業機器人

    叉車系列

    裝車系統

    智能揀貨機器人

    核心技術-深度視覺系統

    醫療機器人

    上下料機器人

    復合機器人

    初級會員·7年
    址:
    www.lanxincn.com

    掃一掃訪問手機商鋪

    開學季 | 課《車輛路徑問題與算法》

    2020-4-9  閱讀(1906)

    分享:

    請問膜拜技術大牛除了獻上膝蓋還有什么更好的方式?答:可以把大家的膝蓋一起獻上,又或者好好學習天天向上,利用碎片化時間多為自己充電,一起參與技術的交流與探討。——四月,我們迎來了藍芯科技的開學季,我們將在此分享機器人相關技術知識。今天是開學課《車輛路徑問題與算法》,歡迎大家留言一起探討。
     


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

     

    圖1 TSP問題
     

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

     


    圖 2 VRP問題

    在理解了車輛路徑問題后,接下來介紹幾個常用的路徑搜索算法。

     

    二、路徑搜索算法

    在路徑搜索算法中,常用的算法用Dijkstra算法和 A*算法。這里不對算法原理進行詳細介紹,僅簡單給出相應的使用示例。給出一個網格圖,如圖3所示。在該網格圖中,僅橫、縱向相鄰網格可以通過,其中黑色背景網格不可通過。在網各圖中,每移動一格會增加一個單位成本?,F給定一個起點(46)和終點(49),通過Dijkstra算法和A*算法分別求解短路徑。

    圖 3網格圖示例

     

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

     

    圖 4 Dijkstra算法拓展過程

     

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

     


    圖 5 A*算法拓展過程示例
     

    2.3 多訪問點的路徑搜索算法
    前面提到的Dijkstra和 A*算法主要是針對兩個點(起點、終點)尋找一條短路徑,但是對于多訪問點找短路的問題,比如在文初提到的TSP問題,就不適用了。我們開發了一個快速求解的算法。

    我們首先使用 Dijkstra算法找出所有兩點之間的短路并存儲相應的路線信息。然后針對多訪問點尋短路問題,分兩個階段進行搜索。
    階段:基于動態規劃(DP)求解 TSP的框架,控制初始搜索步長快速得出初始解。
    第二階段:對階段得到的初始解使用變鄰域搜索(VND)進行優化。


    假設我們有1個出發點(編號為)和6個訪問點(編號為),車輛從出發,需要完成對所有訪問點的訪問。如果終讓車輛停留在后一個訪問點的訪問點,這就是一個開環的路徑,如果要求車輛必須返回出發地,則是閉環的路徑。這里假設為開環路徑,即認為路徑結束的標志是完成所有任務中所有訪問點的配貨。

     

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

     

    圖 6基于 DP框架的step示例

     

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

     

    圖7基于 DP框架的部分搜索過程示例

     

    我們這里控制了初始搜索步長len,意為從step(1) 到step(len) 搜索出的路徑是按照 DP的方式搜索到的當前精確合適的路線,而從step(len+1)開始,只記錄該step下的n條路徑中合適的結果。因此,當len的值越大,終搜索的結果越接近精確合適解,但是相應的求解時間也會越長。假設通過該階段終搜索出的合適結果為,接下來將基于此結果執行變鄰域搜索操作。由于是規定的出發點需要保持在輸出路徑的首先位置,因此我們對序列{2,6,1,5,4,3}進行鄰域搜索。VND的框架如圖8 所示。

     

    圖 8  VND算法框架

     

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


    圖 9 三種常見的鄰域變換策略

     

    使用VND不斷地對序列變換得到新的序列,并求新序列的路徑成本。需要注意的是,求路徑成本時要將出發點考慮在內,即將出發點添加到序列前,求該完整路徑的旅行成本。經過VND過程的處理,輸出的路線即作為終規劃的路線,例如一個可能的終輸出路徑果是,需要注意的是,這里的節點相當于是“關鍵節點”,即只包含的出發點和需要進行配貨操作的訪問點。而相鄰“關鍵節點”之間的路線,則是根據前述的 Dijkstra計算的兩點之間的路線進行行駛。今天的介紹就到這里,希望小伙伴們能對路徑規劃問題和算法有所了解和收獲!

    本文為杭州藍芯科技有限公司原創文章,轉載請注明出處

    會員登錄

    ×

    請輸入賬號

    請輸入密碼

    =

    請輸驗證碼

    收藏該商鋪

    X
    該信息已收藏!
    標簽:
    保存成功

    (空格分隔,最多3個,單個標簽最多10個字符)

    常用:

    提示

    X
    您的留言已提交成功!我們將在第一時間回復您~
    產品對比 二維碼

    掃一掃訪問手機商鋪

    對比框

    在線留言
    主站蜘蛛池模板: 国产成人亚洲综合一区| 成人区人妻精品一区二区不卡 | 日韩成人精品日本亚洲| 麻豆国产成人AV在线| 成人性a激情免费视频| 国产亚洲综合成人91精品| 香蕉久久久久久AV成人| 成人一级片在线观看| caoporn成人| 国产成人综合久久久久久| 亚洲欧美成人完整版在线| 欧美成人免费全部观看在线看| 国产成人av免费观看| 成人欧美在线视频| 78成人精品电影在线播放| 国产成人免费高清视频网址| 日本成人在线网站| 四虎精品成人免费永久| 亚洲AV成人无码网站| 亚洲国产成人久久一区二区三区| 欧洲成人r片在线观看| 亚洲国产欧美目韩成人综合| 成人亚洲成人影院| 欧美成人免费网站| 久久久久亚洲av成人网| 国产成人免费A在线视频| 性欧美成人免费观看视| 狠狠色成人综合首页| 亚洲AV无码成人网站在线观看| 成人a视频高清在线观看| 欧美成人xxx| 成人无码WWW免费视频| 欧美.成人.综合在线| 久久久久国产成人精品| 国产一级一级一级成人毛片| 在线观看www成人影院| 成人免费播放视频777777| 无码成人AAAAA毛片| 成人影片在线免费观看| 成人动漫在线观看免费| 成人18xxxx网站|