《電子技術應用》
您所在的位置:首頁 > 通信與網絡 > 設計應用 > MapReduce求解物流配送單源最短路徑研究
MapReduce求解物流配送單源最短路徑研究
來源:電子技術應用2014年第3期
鈕 亮, 張寶友
(中國計量學院經濟與管理學院, 浙江 杭州 310018)
摘要: 針對物流配送路線優化,提出了將配送路線問題分解成若干可并行操作的子問題的云計算模式。詳細論述了基于標色法的MapReduce廣度優先算法并行化模型、節點數據結構、算法流程和偽代碼程序,并通過將該算法應用于快遞公司的實際配送,驗證了該算法的可行性。
中圖分類號: TP301
文獻標識碼: A
文章編號: 0258-7998(2014)03-0123-03
Reseach on solving the single source shortest path of logistics distribution by MapReduce
Niu Liang, Zhang Baoyou
College of Economics and Management, China Jiliang University, Hangzhou 310018, China
Abstract: Aiming at the optimization of logistics distribution routing, this paper proposes the cloud computing model which decomposes the routing problem into the several parallel operation sub problems, detailly discusses the parallel model,the node data structure,the algorithm flow and the pseudo code program of MapReduce breadth first algorithm based on color marking method , and applies the algorithm to the actual distribution of the express company to verify its feasibility.
Key words : logistics distribution; MapReduce; parallel computing; shortest path

    隨著電子商務的普及,人們網上購物的習慣逐漸形成。截止2012年11月30日,阿里巴巴集團旗下淘寶和天貓2012年總交易額已經突破一萬億。綜合淘寶和天貓的交易數據來看,以快遞員為主體的中國物流配送業對電子商務發展的促進起到了巨大作用。同時傳統郵政擔負的包裹配送業務比重也逐漸地傾斜于第三方物流配送公司。目前我國物流配送運輸成本占整個物流成本的35%~50%左右[1]。由于網購物品用戶分布在城市的不同地方,為了控制配送運輸成本,改善配送秩序,需要優化配送路線。優化配送路線的求解有串行算法和并行算法。串行算法主要表現在基于算法本身以及其優化組合的方法,例如CLARK G和WRIGHT J的節約算法、GILLETT B E和MILLER L R的掃描算法、Christofides等人的k度中心樹和相關算法、Gendrean的禁忌搜索方法、LAWRENCE J 的遺傳算法、Dijkstra算法、Nordbeck提出的橢圓限制搜索區域改進算法[2]。隨著計算數據的海量化以及摩爾定律的失效(晶體管電路已經接近了其物理改進的極限),串行算法本身的改進和組合已不能適應需求。計算機科學領域出現了另一類并行最短路徑分析算法設計,目前關于并行最短路徑分析算法設計有基于MPI的主從Dijkstra并行算法[3]、MPI+open-MP混合算法[4]、社區分析的最短路徑LC-2q并行算法[5]等。
    本文針對物流及時配送和成本控制需求,提出基于標色法的MapReduce廣度優先算法并行化模型,并應用于配送線路優化問題。由于MapReduce本身封裝了數據分割、負載均衡、容錯處理等細節,用戶只需要將實際應用問題分解成若干可并行操作的子問題,有效降低了求解難度,為解決物流配送運輸路徑優化問題提供了技術支持。
1 MapReduce算法描述
    信息技術和網絡技術的發展為云計算的產生提供了條件。MapReduce并行編程模型是云計算的核心技術之一。MapReduce是Google 實驗室提出的一個分布式并行編程模型或框架, 主要用來處理和產生海量數據的并行編程模式,2004 年DEAN J和GHEMAWAT S第一次發表了這一新型分布式并行編程模型[6]。用戶不必關注MapReduce 如何進行數據分割、負載均衡、容錯處理等細節,只需要將實際應用問題分解成若干可并行操作的子問題,這種分解思路遵守主從架構模型。Mapreduce框架的主要程序分為Master、Map和Reduce。在Hadoop 中,MapReduce由一個主節點(Jobtracker,屬于Master)和從節點(Tasktracker,屬于Map和Reduce)組成[7]。
1.1 基于標色法的MapReduce廣度優先算法模型
    給定一個帶權有向圖,用G=(N,E,W)模型來表示,其中N={ni∣i=1,2,...,m}為完全圖的點的集合;E={e(ni,nj)∣i≠j, ni,nj∈N}為弧段集;W={w(ni,nj)∣i≠j,ni,nj∈N}為權值集。一般向圖的權值表示節點與節點之間的幾何長度,記為w(ni,nj)=dij,dij表示節點ni到節點nj的距離。最短路徑計算就是計算從起始點ni到終止點nj的最短幾何長度之和為最小。在有向圖起始點和終止點的最短路徑計算中,MapReduce采用的是廣度優先算法。MapReduce計算最短路徑用鄰接表來表示圖,在鄰接表中每一行數據構成Map和Reduce的一個數據內容。Map和Reduce的(key,value)中key為N,value值為與這個節點鄰接的所有節點的 AdjacentList。在用標色法求解最短路徑時,AdjacentList節點的信息包括源點到頂點的距離distance(除到本身的距離為0外,其余初始值皆為無窮大);節點的顏色color(其值可分別取0、1、2,0表示未處理的頂點,1表示等待處理的頂點,2表示已處理的頂點,源點的初始值為1,其余頂點皆為0);被訪問頂點和邊的權值記為N和W。頂點的數據結構如表1所示。

1.2 MapReduce求解步驟
    (1)Master對輸入文件按行(每行代表圖中的一個頂點)進行自動切分,并將數據作為輸入分發到每個Map任務(keyin,valuein),即輸入[(ID,<Distance;color;pnodes and weight>)];
    (2)接收(keyin,valuein)對,當valuein中的color的值為1時,則處理當前頂點,產生臨時的{(keyout,valueout)│out=1...k}集;
    (3)MapReduce對Map執行過程輸出的臨時中間結果進行分組(Shuffle/sort),將相同的key值即ID號合并成同一組(key,list(valuei)│i=1...m),并將其分發給空閑的Reduce;
    (4)Reduce接收(key,list(valuei)),對相同ID的value進行合并,找到當前的最短路徑;
    (5)如果每次Reduce后,結果收斂,則停止計算;如果未收斂,則繼續發給下一輪的Map過程,多次迭代計算直到color值全部為2,得到最終的最短路徑,算法結束。
    MapReduce算法流程如圖1所示。

1.3 MapReduce算法偽代碼
    (1)MapReduce的第一次迭代偽代碼,Map部分為:
    Map:<k1,v1> &rarr; list(<k2,v2>)
其中k1為節點的ID;v1為該節點的距離、邊、邊的權值、顏色;每一個輸入的<k1,v1>會輸出一批<k2,v2>,它們是計算的中間結果。
    Begin
    If( color(k1) = 1)
                    //如果k1的還需處理,即k1的顏色為灰色
    {
    for ki (<k1,ki>in k1.edges)
       //對所有k1指向的節點, 只處理所有標記為1的節點
    If ( distance(k1) + weight(k1 ,ki)  <  distance(ki))
    {
    Set distance(distance(ki)) = distance(k1) + weight(k1,ki);
    Set color(ki) = 1;
    emit (ki, v1)
                //將該記錄加入到鍵值對中,將標記為1
                  的節點所關聯的節點加入中間結果。
    }
    Set color(k1) = 2;
              //標記為1的節點被變更為2,表示處理完畢
    }
    emit (k1, v1)
    End
    (2)Mapreduce的第一次迭代偽代碼,Reduce部分
    Reduce <k2,list(v2)> &rarr;  <k3,v3>
            //<k2,list(v2)>輸入的中間結果,其中list(v2)表示
            一批屬于同一個K2的value。<k3,v3>為輸出結果
    Begin
    Set  color(k2) =0;
    Set  distance(k2) = &infin;;
    vi&isin; list(v2);
    If( vi.color > k2.color)
                      //按照節點對計算中間結果進行合并
    {
    Set color(k2) = vi.color;
    }
    If {vi.distance < distance(k2))
              //如果中間結果比原有結果小,將節點標記為1
    {
    Set  distance(k2)  =  vi.distance;
    If(vi.color = 1),Set color(k2) = 1;
    }
     If vi.edges != null, Set Edges(k2) = vi.edges;
    }
    emit (k2, vi.) 
    End
2 案例分析
2.1 基本情況
       韻達快遞浙江杭州西湖區文一路公司是民營韻達快運的子公司,為客戶提供快遞、物流及電子商務等一系列門到門服務。企業的配送范圍為文一路、文二路、教工路及學院路構成的矩形區域,該區域面積大約20 km2的范圍。
       隨著第三方物流公司的增多,物流配送競爭越來越激烈。為了壓縮成本,按照配送點情況優化線路是節約成本的途徑之一,優化后的單源配送線路線可以將途經的配送點一并發送,形成一車多配的節約模式。
2.2 問題提出及求解
       公司某次接到為4個區域(西湖科技大廈、節能工業園、高新大廈及華門公寓)配送貨物的任務,配送員決定分頭配送,而如何組織好路線使得路程最短就可以歸結為單源最短路徑問題。為了計算方便,設置配送中心點為n1,被配送的4個地方分別設置西湖科技大廈為n2,節能工業園為n3,高新大廈為n4,華門公寓為n5。4個區域之間及其與配送中心的幾何路線長度取整數(km)。有向圖見圖2(a),其中幾何路線長度d1(n1,n2)=10,d2(n1,n4)=5,d3(n2,n3)=1,d4(n2,n4)= 2,d5(n3,n5)=4,d6(n4,n2)=3,d7(n4,n3)=9,d8(n5,n1)=7,d9(n5,n3)=6。從配送中心n1出發選取怎樣的路線可以滿足到達n2、n3、n4、n5的長度是最短的。采用標色法的MapReduce廣度優先算法計算,依照偽代碼的計算邏輯計算出源點到其他各點的最短路徑。通過4次迭代頂點到各點的最短路徑見圖2(f),其中加粗的圓圈表示被訪問過的頂點,color值為2,圈內的數值為其與n1的最短路徑長度;color值為0,虛線圈為未訪問的頂點,圈內值為&infin;;color值為1,虛線圈為待訪問的頂點,圈內值為標注值。MapReduce第一次迭代驗算數據如表2所示,其余幾次迭代過程格式與此類似。

    如果從配送點n1到節能工業園n3進行配送,配送的最優路線就是配送點n1&rarr;高新大廈n4&rarr;西湖科技大廈n2&rarr;節能工業園n3。優化后的長度為n1&rarr;n4&rarr;n2&rarr;n3=9。相比其他配送路線選擇,如

 

n1&rarr;n2&rarr;n3=11,n1&rarr;n2&rarr;n4&rarr;n3=21,n1&rarr;n2&rarr;n4&rarr;n5&rarr;n3=20,n1&rarr;n2&rarr;n4&rarr;n5&rarr;n3=20,n1&rarr;n4&rarr;n3=14,n1&rarr;n4&rarr;n5&rarr;n3=13,優化后的路線長度更短。在選擇這樣的配送路線后,途中高新大廈n4和西湖科技大廈n2的一些貨物也可以一并被配送,這樣就滿足了一車多配的情況,達到了節約成本的目的。
    本文將MapReduce并行編程模式引入了物流配送最短路徑查詢,用戶不必關注MapReduce 如何進行數據分割、負載均衡、容錯處理等細節,只需將實際應用問題分解成若干可并行操作的子問題,即可解決配送線路優化問題,簡化了算法設計。為優化配送、節約成本、提高配送系統的運行效率提供了技術參考。
參考文獻
[1] 劉榮華,孫皓,趙娟.基于供應鏈的運輸決策研究[J].中國海洋大學學報,2007(1):63-65.
[2] ZHAN F B. Three fastest shortest path algorithms on real  road networks[J]. Journal of Geographic Information and Decision Analysis, 1997,1(1):69-82.
[3] 盧照.基于城市路網最短路徑并行搜索算法的研究[D].陜西:陜西師范大學,2010.
[4] 楊慶芳,劉東,楊兆生.基于MPI+openMP混合編程模型的城市路網最短路徑并行算法[J].吉林大學學報(工學版),2011,41(6):1581-1584.
[5] 馬明全,周明全,耿國華,等.基于社區分析的最短路徑計算[J].計算機應用與軟件,2009,25(4):177-181.
[6] DEAN J, GHEMAWAT S. MapReduce:simplified data processing on large clusters[J]. Communications of the ACM,2005,51(1):107-113.
[7] 劉曉群,鄒 欣,范 虹.基于并行云計算模式的建筑結構設計[J].電子技術應用,2011,37(10):123-125.

此內容為AET網站原創,未經授權禁止轉載。
热re99久久精品国产66热_欧美小视频在线观看_日韩成人激情影院_庆余年2免费日韩剧观看大牛_91久久久久久国产精品_国产原创欧美精品_美女999久久久精品视频_欧美大成色www永久网站婷_国产色婷婷国产综合在线理论片a_国产精品电影在线观看_日韩精品视频在线观看网址_97在线观看免费_性欧美亚洲xxxx乳在线观看_久久精品美女视频网站_777国产偷窥盗摄精品视频_在线日韩第一页
  • <strike id="ygamy"></strike>
  • 
    
      • <del id="ygamy"></del>
        <tfoot id="ygamy"></tfoot>
          <strike id="ygamy"></strike>
          欧美日韩黄色大片| 亚洲欧美日韩在线播放| 国语自产精品视频在线看抢先版结局| 1769国内精品视频在线播放| 欧美国产日韩亚洲一区| 亚洲免费精彩视频| 欧美在线免费视频| 亚洲视频福利| 亚洲欧美日韩中文播放| 在线看国产日韩| 国产精品二区在线观看| 久久成人资源| 国产日韩精品一区二区三区在线| 免费观看久久久4p| 激情婷婷久久| 国产一区二区三区的电影| 欧美性开放视频| 最新热久久免费视频| 中国日韩欧美久久久久久久久| 国内精品视频666| 欧美/亚洲一区| 亚洲国产美女精品久久久久∴| 91久久精品日日躁夜夜躁国产| 美女尤物久久精品| 欧美日韩亚洲免费| 在线精品一区| 欧美高清在线视频观看不卡| 欧美日韩国产综合在线| 鲁大师成人一区二区三区| 亚洲欧洲中文日韩久久av乱码| 亚洲国产精品ⅴa在线观看| 久久精品国产77777蜜臀| 国产精品欧美风情| 久久九九精品| 亚洲精品乱码久久久久久日本蜜臀| 国产精品一区毛片| 欧美精品久久99| 国产精品日本一区二区| 欧美一进一出视频| 亚洲高清精品中出| 亚洲激情小视频| 久久综合色婷婷| 国产精品草莓在线免费观看| 亚洲国产1区| 亚洲国产精品一区在线观看不卡| 国产精品女同互慰在线看| 国产综合欧美| 国产精品嫩草99a| 亚洲午夜在线观看视频在线| 亚洲黄色成人网| 亚洲黄色有码视频| 在线观看一区二区视频| 欧美色欧美亚洲另类七区| 国产日本欧洲亚洲| 国产精品电影观看| 精品999久久久| 国产精品中文字幕在线观看| 中文精品一区二区三区| 免费精品视频| 亚洲美女尤物影院| 亚洲欧洲一区二区在线观看| …久久精品99久久香蕉国产| 另类欧美日韩国产在线| 久久精品99国产精品| 亚洲在线播放| 午夜精品久久久久久久久久久| 永久免费精品影视网站| 精品999在线观看| 国产伊人精品| 欧美日韩亚洲一区二区三区在线观看| 美女999久久久精品视频| 9国产精品视频| 国产最新精品精品你懂的| 亚洲综合大片69999| 亚洲一区二区网站| 欧美国产成人精品| 亚洲女同在线| 亚洲第一免费播放区| 国产精品亚洲欧美| 亚洲免费中文字幕| 国产亚洲激情在线| 欧美日韩一区二区欧美激情| 欧美成人免费播放| 亚洲激情网址| 亚洲婷婷综合久久一本伊一区| 欧美成人免费全部观看天天性色| 亚洲午夜精品久久久久久app| 欧美一区二区三区视频在线| 国产欧美一区二区精品婷婷| 一区二区国产在线观看| 国产精品久久77777| 国产精品国产三级国产专播品爱网| 国产精品视频久久| 欧美精品在欧美一区二区少妇| 久久精品一区二区三区不卡牛牛| 狠狠久久亚洲欧美| 欧美日韩一级视频| 午夜精品久久久久久久久久久久| 欧美日韩精品是欧美日韩精品| 国产精品狼人久久影院观看方式| 日韩视频一区二区三区在线播放| 久久一二三区| 亚洲欧洲精品一区二区三区不卡| 亚洲精品影视| 亚洲欧美区自拍先锋| 国产精品日韩在线观看| 欧美日韩一区二区三区四区五区| 亚洲人成人77777线观看| 欧美视频中文在线看| 国产精品实拍| 亚洲黄色成人久久久| 久久久免费精品视频| 亚洲一区成人| 亚洲欧洲视频| 亚洲欧美怡红院| 国产视频一区在线| 亚洲精品中文字幕在线观看| 国产精品伦子伦免费视频| 狠狠色丁香婷综合久久| 欧美在线free| 欧美有码视频| 欧美日韩一本到| 夜夜嗨av一区二区三区网页| 好吊视频一区二区三区四区| 国产欧美一区二区三区久久| 日韩网站在线| 久久免费黄色| 欧美精品在线极品| 一区二区三区欧美日韩| 亚洲男女自偷自拍| 国产精品久久久久久久久婷婷| 亚洲日本中文字幕区| 欧美激情一级片一区二区| 宅男噜噜噜66一区二区| 欧美日韩视频一区二区三区| 国产一区二区无遮挡| 亚洲国产日韩在线| 国产一区二区在线免费观看| 一本色道久久综合狠狠躁篇的优点| 欧美久久久久久蜜桃| 欧美激情在线有限公司| 亚洲第一在线综合网站| 久久综合激情| 欧美成人亚洲成人日韩成人| 欧美99在线视频观看| 在线播放亚洲一区| 国模大胆一区二区三区| 欧美日韩午夜剧场| 亚洲一区在线视频| 亚洲精品123区| 久久一二三国产| 国产视频丨精品|在线观看| 国产精品乱码一区二区三区| 国产欧美日韩综合精品二区| 欧美日韩国产一区二区| 欧美日韩国产限制| 欧美日本免费一区二区三区| 国产亚洲精品一区二555| 亚洲黄一区二区| 欧美一区二区三区视频免费播放| 欧美一区激情视频在线观看| 亚洲欧美清纯在线制服| 亚洲一区影音先锋| 一区二区三区在线免费视频| 亚洲区在线播放| 国产精品中文在线| 性欧美18~19sex高清播放| 免费观看久久久4p| 欧美日韩成人在线视频| 中文国产成人精品久久一| 欧美日韩亚洲激情| 欧美成人a∨高清免费观看| 欧美第一黄色网| 欧美日韩调教| 久久青青草原一区二区| 欧美国产极速在线| 老鸭窝亚洲一区二区三区| 一区二区三区日韩在线观看| 欧美另类69精品久久久久9999| 亚洲一区二区毛片| 国产精品久久久久久久久免费樱桃| 99www免费人成精品| 国产精品日韩欧美一区二区三区| 欧美日本在线| 亚洲视频在线看| 奶水喷射视频一区| 在线观看日韩欧美| 亚洲精品综合在线| 免费在线看一区| 亚洲精品久久久久久一区二区| 国产精品无人区| 欧美激情片在线观看| 亚洲一区二区免费看| 久久精品亚洲乱码伦伦中文| 亚洲影视中文字幕| 欧美成人免费全部| 国产一区二区按摩在线观看| 欧美成人第一页| 久久久人成影片一区二区三区| 欧美国产一区二区| 久久精品亚洲国产奇米99| 在线亚洲精品| 1204国产成人精品视频| 国产精品视频专区| 亚洲国产成人av| 国产精品毛片| 国产精品二区在线| 亚洲人成亚洲人成在线观看| 欧美在线91| 国产精品乱码一区二区三区| 欧美激情二区三区| 国产精品亚洲第一区在线暖暖韩国| 欧美影片第一页| 国产精品男gay被猛男狂揉视频| 亚洲欧美日韩精品久久奇米色影视| 亚洲一级在线观看| 国产日韩欧美视频在线| 国产精品免费区二区三区观看| 亚洲国产高清自拍| 欧美激情五月| 在线日韩中文字幕| 亚洲欧美日韩一区在线观看| 亚洲欧美成aⅴ人在线观看| 在线视频一区二区| 国产精品99久久久久久人| 99精品视频一区| 亚洲在线观看| 国产一区免费视频| 美女被久久久| 亚洲电影在线免费观看| 国产欧美日韩一区二区三区在线| 在线成人免费观看| 国产一区二区三区av电影| 日韩亚洲欧美在线观看| 久久久五月天| 久久精品91久久久久久再现| 男人的天堂亚洲在线| 午夜欧美大尺度福利影院在线看| 性欧美xxxx视频在线观看| 亚洲天堂网在线观看| 一区二区三区 在线观看视频| 欧美一区免费视频| 亚洲精品中文在线| 亚洲欧美日韩精品久久久久| 国产精品你懂的在线| 韩日在线一区| 国产日韩在线播放| 欧美国产三级| 亚洲无限乱码一二三四麻| 欧美一区亚洲| 亚洲欧美制服另类日韩| 久久久久久久一区二区| 国产精品狼人久久影院观看方式| 亚洲承认在线| 性亚洲最疯狂xxxx高清| 欧美一区国产一区| 久久阴道视频| 亚洲欧美日韩国产一区二区| 狠狠久久综合婷婷不卡| 极品少妇一区二区三区精品视频| 午夜日韩电影| 一区二区欧美日韩视频| 国产精品videossex久久发布| 久久久五月婷婷| 久久综合伊人77777麻豆| 开元免费观看欧美电视剧网站| 国产主播在线一区| 欧美精品成人91久久久久久久| 国产精品任我爽爆在线播放| 亚洲一级在线观看| 亚洲免费在线观看视频| 99国产精品一区| 久久精品免费| 亚洲香蕉伊综合在人在线视看| 国产亚洲一区二区三区| 亚洲一区二区在线免费观看视频| 亚洲欧美综合| 国产亚洲女人久久久久毛片| 久久精品72免费观看| 99成人在线| 亚洲一品av免费观看| 原创国产精品91| 在线成人av.com| 国产精品一区二区男女羞羞无遮挡| 老鸭窝毛片一区二区三区| 久久久久久电影| 激情综合色丁香一区二区| 国产精品自拍小视频| 先锋影音久久久| 亚洲丶国产丶欧美一区二区三区| 亚洲中无吗在线| 狠狠色丁香久久婷婷综合丁香| 国产精品欧美久久久久无广告| 欧美成人免费在线| 日韩亚洲精品在线| 国产日韩在线看| 欧美综合激情网| 蜜桃av一区| 国产精品视频在线观看| 欧美在线视频在线播放完整版免费观看| 亚洲精品一区中文| 亚洲视频 欧洲视频| 国产在线观看一区| 欧美一区二区在线免费观看| 亚洲理伦在线| 一本色道久久综合亚洲精品高清| 黄色影院成人| 欧美精品观看| 国产女同一区二区| 欧美国产先锋| 亚洲精品国产精品乱码不99按摩| 国产视频一区在线| 久久激情久久| 久久久久九九视频| 欧美久久视频| 欧美国产视频日韩| 美女福利精品视频| 在线亚洲自拍| 亚洲天堂久久| 亚洲欧美一区二区三区久久| 噜噜噜久久亚洲精品国产品小说| 国产精品草草| 亚洲少妇最新在线视频| 在线观看成人一级片| 亚洲第一成人在线| 国产精品不卡在线| 免费观看30秒视频久久| 国产精品成人观看视频免费|