本發(fā)明涉及物流配送
技術(shù)領(lǐng)域:
,特別涉及一種多點(diǎn)配送線路規(guī)劃方法及系統(tǒng)。
背景技術(shù):
:車輛路徑問題(vrp,vechiclerouteproblem)是物流配送領(lǐng)域的重要研究方向,通常被描述為:從配送中心出發(fā),在一定的約束條件下,安排適當(dāng)?shù)能囕v到達(dá)一系列指定地點(diǎn)的路線,并使總成本最小。為了節(jié)約日常物資配送的物流費(fèi)用成本,電力企業(yè)希望通過一定的方法工具規(guī)劃出一條合理的配送路線,使總成本最小。雖然當(dāng)前比較流行的地圖服務(wù)如百度地圖、高德地圖,都提供了指定途徑點(diǎn)的線路規(guī)劃服務(wù),但對于多點(diǎn)的線路規(guī)劃未能提供滿足實(shí)際需要的解決方案。目前解決多點(diǎn)線路規(guī)劃問題的算法主要包括兩類:精確算法和啟發(fā)式算法。精確算法是指運(yùn)用數(shù)學(xué)規(guī)劃技術(shù)來描述物流配送中的數(shù)量關(guān)系,以求得最優(yōu)解。啟發(fā)式算法主要包括由clarke&wright提出的規(guī)劃配送線路的經(jīng)典算法─節(jié)約里程算法,以及由fredglover提出的解決貨車配送點(diǎn)順序的禁忌搜索法。精確算法主要包括:分支定界法、割平面法、網(wǎng)絡(luò)流算法和動態(tài)規(guī)劃法。精確算法基于嚴(yán)格的數(shù)學(xué)手段,在可求解的情況下,獲得的結(jié)果通常優(yōu)于啟發(fā)式算法。但由于精確算法基于嚴(yán)格的數(shù)學(xué)手段,其計(jì)算量一般會隨問題規(guī)模的增大成指數(shù)增長,所以只能求解中小規(guī)模的vrp問題,適應(yīng)性能力差,應(yīng)用范圍有限。節(jié)約里程算法是根據(jù)物資中心的運(yùn)輸能力、物資中心與各個配送點(diǎn)之間的距離、以及各個配送點(diǎn)之間的距離來制定使總的車輛運(yùn)輸噸公里數(shù)最小的配送方案。但節(jié)約里程算法獲得的最優(yōu)解與實(shí)際的最優(yōu)解可能存在差距,并且過于強(qiáng)調(diào)節(jié)約路程,未考慮行程中的時間因素,無法對客戶需求進(jìn)行靈活多變的處理和應(yīng)急物質(zhì)的配送,缺少計(jì)算工具。地圖數(shù)據(jù)服務(wù)商提供的線路規(guī)劃服務(wù),能夠根據(jù)配送線路的途徑點(diǎn)順序規(guī)劃出最短線路,或根據(jù)指定起點(diǎn)和終點(diǎn)批量計(jì)算路線的距離和耗時。但地圖數(shù)據(jù)服務(wù)商提供的線路規(guī)劃服務(wù),無法滿足配送點(diǎn)數(shù)量、到貨時間、車輛不超載等具體業(yè)務(wù)需求。技術(shù)實(shí)現(xiàn)要素:為了解決現(xiàn)有電力企業(yè)配送業(yè)務(wù)中遇到的多個配送點(diǎn)及車輛線路規(guī)劃無合理參考標(biāo)準(zhǔn)的問題,本發(fā)明提供了一種多點(diǎn)配送線路規(guī)劃方法,包括:根據(jù)倉庫和各個配送點(diǎn)的地理坐標(biāo),分別計(jì)算出倉庫與各個配送點(diǎn)以及任意兩個配送點(diǎn)之間的距離;建立倉庫到各個配送點(diǎn)的最初配送路徑集合,將任意兩個配送點(diǎn)與倉庫組成一個運(yùn)算組合,并根據(jù)倉庫與各個配送點(diǎn)以及任意兩個配送點(diǎn)之間的距離,計(jì)算每個運(yùn)算組合的節(jié)約里程數(shù);按照節(jié)約里程數(shù)由大到小順序依次遍歷每個運(yùn)算組合,每次從所述最初配送路徑集合中選取包含運(yùn)算組合中配送點(diǎn)的兩條路徑,對兩條路徑進(jìn)行合并;根據(jù)路徑合并結(jié)果更新所述最初配送路徑集合,直至生成且顯示路徑最節(jié)約的配送線路規(guī)劃。所述方法還包括:采用禁忌搜索法對所述路徑最節(jié)約的配送線路規(guī)劃進(jìn)行修正。所述節(jié)約里程數(shù)的計(jì)算公式為:s(i,j,w)=d(w,i)+d(w,j)-d(i,j);其中:w表示倉庫;i、j表示任意兩個配送點(diǎn);s(i,j,w)表示配送點(diǎn)組合(i,j,w)可節(jié)約的里程數(shù);d(w,i)表示倉庫w到配送點(diǎn)i的距離;d(w,j)表示倉庫w到配送點(diǎn)j的距離;d(i,j)表示配送點(diǎn)i到配送點(diǎn)j的距離。所述按照節(jié)約里程數(shù)由大到小順序依次遍歷每個運(yùn)算組合,每次從所述最初配送路徑集合中選取包含運(yùn)算組合中配送點(diǎn)的兩條路徑,對兩條路徑進(jìn)行合并的步驟具體包括:選取節(jié)約里程數(shù)對應(yīng)的運(yùn)算組合,并從所述最初配送路徑集合中選取包含所述運(yùn)算組合中配送點(diǎn)的兩條路徑,分別標(biāo)記為第一路徑和第二路徑;所述第一路徑和第二路徑的第一個配送點(diǎn)或最后一個配送點(diǎn)為所述運(yùn)算組合中的配送點(diǎn),以及所述第一路徑和第二路徑中的配送點(diǎn)總需求數(shù)量之和不大于車輛的最大負(fù)荷;將所述第二路徑中的所有配送點(diǎn)依次插入到所述第一路徑的不同位置,分別計(jì)算所有配送點(diǎn)插入不同位置時所述第一路徑的里程增加量;將含有所述第二路徑中全部配送點(diǎn)且使所述第一路徑的里程增加量最小的路徑標(biāo)記為新配送路徑,加入到所述最初配送路徑集合中,并從所述最初配送路徑集合中刪除所述第一路徑和第二路徑。所述采用禁忌搜索法對所述路徑最節(jié)約的配送線路規(guī)劃進(jìn)行修正的步驟具體包括:從全部配送點(diǎn)中隨機(jī)選取若干個配送點(diǎn)作為子集,根據(jù)所述子集中的配送點(diǎn),在全部配送點(diǎn)中查找出與所述子集中的配送點(diǎn)距離由小到大的若干個配送點(diǎn)作為鄰域點(diǎn);根據(jù)所述子集中的配送點(diǎn)與鄰域點(diǎn)生成交換操作,并對所述路徑最節(jié)約的配送線路規(guī)劃執(zhí)行所述交換操作,生成候選配送線路規(guī)劃;根據(jù)預(yù)設(shè)的可行性及評價規(guī)則,將所述候選配送線路規(guī)劃與所述路徑最節(jié)約的配送線路規(guī)劃進(jìn)行比較,確定最優(yōu)配送線路規(guī)劃。所述交換操作包括兩兩交換、兩一交換或移動交換。本發(fā)明還提供了一種多點(diǎn)配送線路規(guī)劃系統(tǒng),包括移動終端和服務(wù)器,所述移動終端包括采集模塊和規(guī)劃路徑展示模塊;所述服務(wù)器包括計(jì)算模塊、建立模塊、線路規(guī)劃模塊和更新輸出模塊;所述采集模塊,用于采集倉庫和各個配送點(diǎn)的地理坐標(biāo);所述計(jì)算模塊,用于根據(jù)所述采集模塊采集的地理坐標(biāo),分別計(jì)算出倉庫與各個配送點(diǎn)以及任意兩個配送站點(diǎn)之間的距離;所述建立模塊,用于建立倉庫到各個配送點(diǎn)的最初配送路徑集合,將任意兩個配送點(diǎn)與倉庫組成一個運(yùn)算組合,并根據(jù)所述計(jì)算模塊計(jì)算出的倉庫與各個配送點(diǎn)以及任意兩個配送點(diǎn)之間的距離,計(jì)算每個運(yùn)算組合的節(jié)約里程數(shù);所述線路規(guī)劃模塊,用于按照節(jié)約里程數(shù)由大到小順序依次遍歷每個運(yùn)算組合,每次從所述最初配送路徑集合中選取包含運(yùn)算組合中配送點(diǎn)的兩條路徑,對兩條路徑進(jìn)行合并;所述更新輸出模塊,用于根據(jù)路徑合并結(jié)果更新所述最初配送路徑集合,生成路徑最節(jié)約的配送線路規(guī)劃;所述規(guī)劃路徑展示模塊,用于顯示所述更新輸出模塊生成的配送線路規(guī)劃。所述系統(tǒng)還包括修正模塊;所述修正模塊,用于采用禁忌搜索法對所述輸出模塊生成的配送線路規(guī)劃進(jìn)行修正。所述線路規(guī)劃模塊包括選取標(biāo)識單元、插入單元和更新單元;所述選取標(biāo)識單元,用于選取節(jié)約里程數(shù)對應(yīng)的運(yùn)算組合,并從所述最初配送路徑集合中選取所述運(yùn)算組合中配送點(diǎn)的兩條路徑,分別標(biāo)記為第一路徑和第二路徑;所述第一路徑和第二路徑的第一個配送點(diǎn)或最后一個配送點(diǎn)為所述運(yùn)算組合中的配送點(diǎn),以及所述第一路徑和第二路徑中的配送點(diǎn)總需求數(shù)量之和不大于車輛的最大負(fù)荷;所述插入單元,用于將所述第二路徑中的所有配送點(diǎn)依次插入到所述第一路徑的不同位置,分別計(jì)算所有配送點(diǎn)插入不同位置時所述第一路徑的里程增加量;所述更新單元,用于將含有所述第二路徑中全部配送點(diǎn)且使所述第一路徑的里程增加量最小的路徑標(biāo)記為新配送路徑,加入到所述最初配送路徑集合中,并從所述最初配送路徑集合中刪除所述第一路徑和第二路徑。所述修正模塊包括查找單元、執(zhí)行單元和比較單元;所述查找單元,用于從全部配送點(diǎn)中隨機(jī)選取若干個配送點(diǎn)作為子集,根據(jù)所述子集中的配送點(diǎn),在全部配送點(diǎn)中查找出與所述子集中的配送點(diǎn)距離由小到大的若干個配送點(diǎn)作為鄰域點(diǎn);所述執(zhí)行單元,用于根據(jù)所述子集中的配送點(diǎn)與鄰域點(diǎn)生成交換操作,并對所述路徑最節(jié)約的配送線路規(guī)劃執(zhí)行所述交換操作,生成候選配送線路規(guī)劃;所述比較單元,用于根據(jù)預(yù)設(shè)的可行性及評價規(guī)則,將所述候選配送線路規(guī)劃與所述路徑最節(jié)約的配送線路規(guī)劃進(jìn)行比較,確定最優(yōu)配送線路規(guī)劃。本發(fā)明提供的多點(diǎn)配送線路規(guī)劃方法及系統(tǒng),通過節(jié)約里程算法,生成初始最優(yōu)規(guī)劃路徑,并采用禁忌搜索法對初始最優(yōu)路徑進(jìn)行修正,以保證最終規(guī)劃路徑的準(zhǔn)確性,從而為多點(diǎn)配送提供了優(yōu)化的參考方案,同時考慮了車輛負(fù)荷量,這樣有利于制定更合理且符合實(shí)際的多點(diǎn)配送方案,節(jié)約配送成本,提高了企業(yè)經(jīng)濟(jì)效益。附圖說明圖1是本實(shí)施例多點(diǎn)配送線路規(guī)劃方法的流程圖;圖2是本實(shí)施例節(jié)約里程數(shù)計(jì)算公式的推導(dǎo)原理示意圖;圖3是本實(shí)施例路徑最節(jié)約的配送線路規(guī)劃;圖4是本實(shí)施例多點(diǎn)配送線路規(guī)劃系統(tǒng)的組成結(jié)構(gòu)示意圖。具體實(shí)施方式下面結(jié)合附圖和實(shí)施例,對本發(fā)明技術(shù)方案作進(jìn)一步描述。參見圖1,本發(fā)明實(shí)施例提供了一種多點(diǎn)配送線路規(guī)劃方法,包括如下步驟:步驟s101:錄入倉庫和各個配送點(diǎn)的地理坐標(biāo)。倉庫和各個配送點(diǎn)的地理坐標(biāo)由經(jīng)度和緯度數(shù)據(jù)構(gòu)成。假設(shè)本實(shí)施例涉及1個倉庫w和5個配送點(diǎn)a、b、c、d、e,它們的地理坐標(biāo)分別為sw(40.45,116.34)、sa(40.54,116.35)、sb(40.34,116.45)、sc(40.35,116.46)、sd(40.32,116.41)和se(40.36,116.42)。步驟s102:根據(jù)倉庫和各個配送點(diǎn)的地理坐標(biāo),分別計(jì)算出倉庫與各個配送點(diǎn)以及任意兩個配送點(diǎn)之間的距離。根據(jù)任意兩點(diǎn)的地理坐標(biāo),可通過如下公式(1)計(jì)算出該兩點(diǎn)之間的距離:rad(m,n)=cos-1(cosyn×cosym×cos(xm-xn)+sinyn×sinym)其中:r為常數(shù),r=6371.004;xm,ym分別為地點(diǎn)m的經(jīng)度和緯度的弧度數(shù);xn,yn分別為地點(diǎn)n的經(jīng)度和緯度的弧度數(shù);d(m,n)為地點(diǎn)m到地點(diǎn)n的距離。經(jīng)度和緯度轉(zhuǎn)換為弧度的公式為:根據(jù)公式(1)計(jì)算出倉庫w與配送點(diǎn)a的距離d(w,a)為:rad(w,a)=cos-1(cosya×cosyw×cos(xw-xa)+sinya×sinyw)=1.328431×10-4其中:ya=116.35/180×π=2.0305,yw=116.34/180×π=2.0305,xw=40.45/180×π=0.7059,xa=40.54/180×π=0.7059;d(w,a)=6371.004×1.328431×10-4=0.84634千米=846.34米同理,倉庫w與配送點(diǎn)b的距離d(w,b)為9307.85米;倉庫w與配送點(diǎn)c的距離d(w,c)為10154.19米;倉庫w與配送點(diǎn)d的距離d(w,d)為5923.76米;倉庫w與配送點(diǎn)e的距離d(w,e)為6769.46米;配送點(diǎn)a與b之間的距離d(a,b)為8450.16米;配送點(diǎn)a與c之間的距離d(a,c)為9295.37米;配送點(diǎn)a與d之間的距離d(a,d)為5070.61米;配送點(diǎn)a與e之間的距離d(a,e)為5915.18米;配送點(diǎn)b與c之間的距離d(b,c)為847.73米;配送點(diǎn)b與d之間的距離d(b,d)為3389.62米;配送點(diǎn)b與e之間的距離d(b,e)為2542.54米;配送點(diǎn)c與d之間的距離d(c,d)為3389.76米;配送點(diǎn)c與e之間的距離d(c,e)為3389.76米;配送點(diǎn)d與e之間的距離d(d,e)為847.33米。步驟s103:建立倉庫到各個配送點(diǎn)的最初配送路徑集合。本實(shí)施例倉庫w到配送點(diǎn)a、b、c、d、e的最初配送路徑集合共有5條配送路徑,分別標(biāo)記為路徑r1(w→a→w)、r2(w→b→w)、r3(w→c→w)、r4(w→d→w)和r5(w→e→w)。步驟s104:遍歷全部配送點(diǎn),將任意兩個配送點(diǎn)與倉庫組成一個運(yùn)算組合,并根據(jù)倉庫與各個配送點(diǎn)以及任意兩個配送點(diǎn)之間的距離,計(jì)算每個運(yùn)算組合的節(jié)約里程數(shù)。節(jié)約里程數(shù)的計(jì)算公式為s(i,j,w)=d(w,i)+d(w,j)-d(i,j);其中:w表示倉庫、i、j表示任意兩個配送點(diǎn);s(i,j,w)表示任意兩個配送點(diǎn)與倉庫組成的運(yùn)算組合(i,j,w)的節(jié)約里程數(shù),即一次從倉庫w出發(fā),連續(xù)配送i和j兩個配送點(diǎn),而不分別單獨(dú)配送可以節(jié)約的里程數(shù),如圖2所示;d(w,i)表示倉庫w到配送點(diǎn)i的距離;d(w,j)表示倉庫w到配送點(diǎn)j的距離;d(i,j)表示配送點(diǎn)i到配送點(diǎn)j的距離。例如:本實(shí)施例配送點(diǎn)a到配送點(diǎn)b的距離d(a,b)=8450.16米,倉庫w到配送點(diǎn)a的距離d(w,a)=846.34米,倉庫w到配送點(diǎn)b的距離d(w,b)=9307.85米,則配送點(diǎn)a、b與倉庫w組成的運(yùn)算組合(a,b,w)的節(jié)約里程數(shù)為:s(a,b,w)=d(w,a)+d(w,b)-d(a,b)=846.34+9307.85-8450.16=1704.03米同理,得到本實(shí)施例其他運(yùn)算組合的節(jié)約里程數(shù),如下表1所示:表1序號配送點(diǎn)i配送點(diǎn)jd(w,i)d(w,j)d(i,j)s(i,j,w)1ab846.349307.858450.161704.032ac846.3410154.199295.371705.163ad846.345923.765070.611699.494ae846.346769.465915.181700.625bc9307.8510154.19847.7318614.316bd9307.855923.763389.6211841.997be9307.856769.462542.5413534.778cd10154.195923.763389.7612688.199ce10154.196769.463389.7613533.8910de5923.766769.46847.3311845.89步驟s105:按照節(jié)約里程數(shù)由大到小順序依次遍歷每個運(yùn)算組合,每次從最初配送路徑集合中選取包含運(yùn)算組合中配送點(diǎn)的兩條路徑,對兩條路徑進(jìn)行合并,并根據(jù)路徑合并結(jié)果更新最初配送路徑集合,直至生成且顯示路徑最節(jié)約的配送線路規(guī)劃。表2序號配送點(diǎn)i配送點(diǎn)jd(w,i)d(w,j)d(i,j)s(i,j,w)1bc9307.8510154.19847.7318614.312be9307.856769.462542.5413534.773ce10154.196769.463389.7613533.894cd10154.195923.763389.7612688.195de5923.766769.46847.3311845.896bd9307.855923.763389.6211841.997ac846.3410154.199295.371705.168ab846.349307.858450.161704.039ae846.346769.465915.181700.6210ad846.345923.765070.611699.49表2為由大到小順序排列的節(jié)約里程數(shù)。選取運(yùn)算組合(w,b,c);從最初配送路徑集合中選取包含運(yùn)算組合(w,b,c)中的配送點(diǎn)(b、c)的兩條路徑,分別標(biāo)記為第一路徑和第二路徑,即路徑r2(w→b→w)和路徑r3(w→c→w),并且第一路徑和第二路徑的第一個配送點(diǎn)或最后一個配送點(diǎn)為選取的運(yùn)算組合中的配送點(diǎn)(需要說明是:配送點(diǎn)b既為路徑r2的第一個配送點(diǎn),也為路徑r2的最后一個配送點(diǎn);配送點(diǎn)c既為路徑r3的第一個配送點(diǎn),也為路徑r3的最后一個配送點(diǎn)),以及第一路徑和第二路徑中的配送點(diǎn)總需求數(shù)量之和不大于車輛的最大負(fù)荷;將第二路徑(路徑r3)的所有配送點(diǎn)c依次插入到第一路徑(路徑r2)的不同位置,分別計(jì)算第一路徑(路徑r2)的里程增加量,里程增加量v(k)=d(k,p)+d(k,q)-d(p,q),v(k)表示第二路徑中某個配送點(diǎn)k插入到第一路徑的不同位置時第一路徑的里程增加量,d(k,p)表示位于第一路徑中的配送點(diǎn)k與其在第一路徑中的上游配送點(diǎn)或倉庫p的距離,d(k,q)表示位于第一路徑中的配送點(diǎn)k與其在第一路徑中的下游配送點(diǎn)或倉庫q的距離,d(p,q)表示第一路徑中的配送點(diǎn)或倉庫p與配送點(diǎn)或倉庫q的距離;將含有第二路徑中全部配送點(diǎn)且使第一路徑的里程增加量最小的路徑標(biāo)記為新配送路徑,加入到最初配送路徑集合中,并從最初配送路徑集合中刪除第一路徑和第二路徑,完成最初配送路徑集合的更新,實(shí)現(xiàn)第一路徑和第二路徑的合并。例如:如果將路徑r3中配送點(diǎn)c插入到路徑r2中配送點(diǎn)b的后面(w→b→c→w),則路徑r2的里程增加量為1694.07米;如果將路徑r3中配送點(diǎn)c插入到路徑r2中配送點(diǎn)b的前面(w→c→b→w),則路徑r2的里程增加量為1694.07米;因此,配送點(diǎn)c可設(shè)置在配送點(diǎn)b之后或b點(diǎn)之前,本實(shí)施例設(shè)置在配送點(diǎn)b之后,這樣標(biāo)記新配送路徑為w→b→c→w;將新配送路徑w→b→c→w加入到最初配送路徑集合中,并從最初配送路徑集合中刪除配送路徑r2和r3,實(shí)現(xiàn)配送路徑r2和r3的合并;此時最初配送路徑集合更新為:路徑w→b→c→w、路徑r1(w→a→w)、路徑r4(w→d→w)和路徑r5(w→e→w)。選取運(yùn)算組合(w,b,e),從前次更新后的最初配送路徑集合中選取包含配送點(diǎn)b和e的路徑,即路徑w→b→c→w和路徑r5(w→e→w)(配送點(diǎn)b為路徑w→b→c→w的第一個配送點(diǎn);配送點(diǎn)e既為路徑r5的第一個配送點(diǎn),也為路徑r5的最后一個配送點(diǎn)),分別計(jì)算將路徑r5中配送點(diǎn)e插入到路徑w→b→c→w中的配送點(diǎn)b之前(w→e→b→c→w)、配送點(diǎn)b之后且配送點(diǎn)c之前(w→b→e→c→w)或配送點(diǎn)c之后(w→b→c→e→w)的路徑w→b→c→w的里程增加量,分別為4.15米、5084.57米、5.03米;因此,配送點(diǎn)e應(yīng)設(shè)置在配送點(diǎn)b之前,標(biāo)識新配送路徑為w→e→b→c→w;將路徑w→e→b→c→w加入到前次更新后的最初配送路徑集合中,從前次更新后的最初配送路徑集合中刪除路徑w→b→c→w和路徑r5(w→e→w),實(shí)現(xiàn)路徑w→b→c→w和路徑r5(w→e→w)的合并;此時前次更新后的最初配送路徑集合更新為:路徑w→e→b→c→w、路徑r1(w→a→w)和路徑r4(w→d→w)。同理,繼續(xù)依次選取其他的運(yùn)算組合,進(jìn)行路徑合并,更新最初配送路徑集合,直至生成路徑最節(jié)約的配送線路規(guī)劃w→d→c→b→e→a→w。需要說明的是:在兩條路徑合并時,可以將含有較少配送點(diǎn)的路徑合并到含有較多配送點(diǎn)的路徑中,也可以將含有較多配送點(diǎn)的路徑合并到含有較少配送點(diǎn)的路徑中;此外,如果兩條路徑相同,那么合并后的路徑與合并之前的路徑相同。步驟s106:采用禁忌搜索法對生成的配送線路規(guī)劃進(jìn)行修正。設(shè)置運(yùn)算參數(shù),建立禁忌表集合及候選方案解集合;其中,運(yùn)算參數(shù)包括最大搜索次數(shù)、鄰域配送點(diǎn)的數(shù)量n、隨機(jī)子集的數(shù)量s、禁忌長度q等;在本實(shí)施例中設(shè)置最大搜索次數(shù)imax=300;每次搜索從全部配送點(diǎn)中隨機(jī)選取2個配送點(diǎn)作為子集,共10個隨機(jī)子集,例如[b,d];從全部配送點(diǎn)中查找出與隨機(jī)子集中的配送點(diǎn)距離由小到大的4個配送點(diǎn)作為鄰域點(diǎn),例如:與配送點(diǎn)b距離由小到大的4個配送點(diǎn)[c,e,d,a]作為鄰域點(diǎn)。根據(jù)配送點(diǎn)v與其鄰域點(diǎn)vn,生成一個交換操作;交換操作包括“兩兩交換”、“兩一交換”或“移動交換”;“兩兩交換”,如果配送點(diǎn)v及與其鄰域點(diǎn)vn各自所在路徑有鄰居vb,vnb,則可以采取兩兩交換,即將配送點(diǎn)v及其鄰居配送點(diǎn)vb從原路徑r1移除,重新插入到鄰域點(diǎn)vn所在路徑r2上,將vn及其鄰居配送點(diǎn)vnb也從原路徑r2移除,重新插入到配送點(diǎn)v所在路徑r1上,實(shí)現(xiàn)兩條路徑上兩組配送點(diǎn)兩兩交換;“兩一交換”,如果配送點(diǎn)所在路徑或其鄰域點(diǎn)所在路徑只有一條路徑上可以找到鄰居,則可以進(jìn)行兩一交換,操作同上;“移動交換”,無法滿足以上條件,可將配送點(diǎn)從原路徑移除,插入到鄰域點(diǎn)所在路徑。例如:假設(shè)當(dāng)前解決方案路徑:w→d→c→b→e→a→w;配送點(diǎn)d與其鄰域點(diǎn)e各自所在路徑上有鄰居b和c,將配送點(diǎn)d,生成“兩兩交換”操作s(d,b,e,c):表示隨機(jī)抽取的配送點(diǎn)d,距離最近的鄰域點(diǎn)e,以及配送點(diǎn)d所在路徑上的鄰近點(diǎn)b,e所在路徑上的鄰近點(diǎn)c執(zhí)行“兩兩交換”操作,生成對應(yīng)的規(guī)劃方案:w→e→c→b→d→a→w,路徑總里程為20313.40米。判斷禁忌表集合中是否存在該交換操作,如果不存在,則將當(dāng)前規(guī)劃方案生成一個副本,執(zhí)行上述生成的交換操作,生成候選規(guī)劃方案;判斷候選規(guī)劃方案的可行性(滿足路徑中配送點(diǎn)總需求量<車輛最大負(fù)荷),并且對生成的候選規(guī)劃方案進(jìn)行評價,評價規(guī)則為:方案中所有路徑總成本最小,如調(diào)整后的新方案的路徑總成本優(yōu)于之前生成的規(guī)劃方案,則將調(diào)整后的方案設(shè)置為最新的可行方案,并將此交換步驟存入禁忌表集合中;如果禁忌表集合中存儲的交換操作數(shù)量大于禁忌長度q,則將最先加入的操作移除,使其解禁。假設(shè)本實(shí)施例某次搜索中生成2個交換操作(表示為:s(d,b,e,c),s(b,c,c))及對應(yīng)的2個候選規(guī)劃方案為:s(d,b,e,c)w→e→c→b→d→a→w路徑總里程:20313.40米;s(b,c,c)w→d→c→b→e→a→w路徑總里程:20313.35米;判斷兩個候選規(guī)劃方案的可行性(此例各方案配送點(diǎn)需求總和均小于車輛最大負(fù)荷),并對上面生成的候選方案按路徑總成本最小進(jìn)行評價,找出滿足條件的交換操作s(b,c,c)及對應(yīng)的方案:w→d→c→b→e→a→w,并將此操作保存到禁忌表集合中,對應(yīng)的候選規(guī)劃方案更新為當(dāng)前最優(yōu)規(guī)劃方案;通過預(yù)設(shè)的300次上述禁忌搜索過程,修正之前生成的規(guī)劃方案為最優(yōu)規(guī)劃方案;最終評價結(jié)果生產(chǎn)方案為:w→d→c→b→e→a→w,總里程:20313.35米,并將線路規(guī)劃繪制在地圖上,如圖3所示。參見圖4,本發(fā)明實(shí)施例還提供一種實(shí)現(xiàn)上述多點(diǎn)配送線路規(guī)劃方法的系統(tǒng),該系統(tǒng)包括移動終端和服務(wù)器。其中,移動終端包括采集模塊和規(guī)劃路徑展示模塊;服務(wù)器包括計(jì)算模塊、建立模塊、線路規(guī)劃模塊和更新輸出模塊;采集模塊,用于采集倉庫和各個配送點(diǎn)的地理坐標(biāo);計(jì)算模塊,用于根據(jù)采集模塊采集的地理坐標(biāo),分別計(jì)算出倉庫與各個配送點(diǎn)以及任意兩個配送站點(diǎn)之間的距離;建立模塊,用于建立倉庫到各個配送點(diǎn)的最初配送路徑集合,將任意兩個配送點(diǎn)與倉庫組成一個運(yùn)算組合,并根據(jù)計(jì)算模塊計(jì)算出的倉庫與各個配送點(diǎn)以及任意兩個配送點(diǎn)之間的距離,計(jì)算每個運(yùn)算組合的節(jié)約里程數(shù);線路規(guī)劃模塊,用于按照節(jié)約里程數(shù)由大到小順序依次遍歷每個運(yùn)算組合,每次從最初配送路徑集合中選取包含運(yùn)算組合中配送點(diǎn)的兩條路徑,對兩條路徑進(jìn)行合并;更新輸出模塊,用于根據(jù)路徑合并結(jié)果更新最初配送路徑集合,生成路徑最節(jié)約的配送線路規(guī)劃;規(guī)劃路徑展示模塊,用于顯示更新輸出模塊生成的配送線路規(guī)劃。該系統(tǒng)還包括修正模塊;修正模塊,用于采用禁忌搜索法對輸出模塊生成的配送線路規(guī)劃進(jìn)行修正。線路規(guī)劃模塊包括選取標(biāo)識單元、插入單元和更新單元。其中,選取標(biāo)識單元,用于選取節(jié)約里程數(shù)對應(yīng)的運(yùn)算組合,并從最初配送路徑集合中選取運(yùn)算組合中配送點(diǎn)的兩條路徑,分別標(biāo)記為第一路徑和第二路徑;第一路徑和第二路徑的第一個配送點(diǎn)或最后一個配送點(diǎn)為運(yùn)算組合中的配送點(diǎn),以及第一路徑和第二路徑中的配送點(diǎn)總需求數(shù)量之和不大于車輛的最大負(fù)荷;插入單元,用于將第二路徑中的所有配送點(diǎn)依次插入到第一路徑的不同位置,分別計(jì)算所有配送點(diǎn)插入不同位置時第一路徑的里程增加量;更新單元,用于將含有第二路徑中全部配送點(diǎn)且使第一路徑的里程增加量最小的路徑標(biāo)記為新配送路徑,加入到最初配送路徑集合中,并從最初配送路徑集合中刪除第一路徑和第二路徑。修正模塊包括查找單元、執(zhí)行單元和比較單元。其中,查找單元,用于從全部配送點(diǎn)中隨機(jī)選取若干個配送點(diǎn)作為子集,根據(jù)子集中的配送點(diǎn),在全部配送點(diǎn)中查找出與子集中的配送點(diǎn)距離由小到大的若干個配送點(diǎn)作為鄰域點(diǎn);執(zhí)行單元,用于根據(jù)子集中的配送點(diǎn)與鄰域點(diǎn)生成交換操作,并對路徑最節(jié)約的配送線路規(guī)劃執(zhí)行交換操作,生成候選配送線路規(guī)劃;比較單元,用于根據(jù)預(yù)設(shè)的可行性及評價規(guī)則,將候選配送線路規(guī)劃與路徑最節(jié)約的配送線路規(guī)劃進(jìn)行比較,確定最優(yōu)配送線路規(guī)劃。本發(fā)明實(shí)施例提供的多點(diǎn)配送線路規(guī)劃方法及系統(tǒng),通過節(jié)約里程算法,生成初始最優(yōu)規(guī)劃路徑,并采用禁忌搜索法對初始最優(yōu)路徑進(jìn)行修正,以保證最終規(guī)劃路徑的準(zhǔn)確性,從而為多點(diǎn)配送提供了優(yōu)化的參考方案,同時考慮了車輛負(fù)荷量,這樣有利于制定更合理且符合實(shí)際的多點(diǎn)配送方案,節(jié)約配送成本,提高了企業(yè)經(jīng)濟(jì)效益。另外,本發(fā)明實(shí)施例對多點(diǎn)配送線路規(guī)劃采用兩種優(yōu)化算法,不僅可以快速生成最優(yōu)規(guī)劃路徑,而且還可以對生成的配送線路規(guī)劃方案進(jìn)行修正,保證了實(shí)際規(guī)劃方案的正確性,有利于對配送過程進(jìn)行全程計(jì)劃控制和監(jiān)督管理,方便物流部門進(jìn)行管理優(yōu)化,規(guī)避物資的配送過程中存在風(fēng)險。在實(shí)際應(yīng)用中,本實(shí)施例中所涉及的各個功能模塊及單元,均可以由運(yùn)行在計(jì)算機(jī)硬件上的計(jì)算機(jī)程序?qū)崿F(xiàn),所述的程序可存儲于計(jì)算機(jī)可讀取存儲介質(zhì)中,該程序在執(zhí)行時,可包括如上述各方法的實(shí)施例的流程。其中,所述的硬件指的是包含一個或者多個處理器和存儲介質(zhì)的服務(wù)器或者臺式計(jì)算機(jī)、筆記本電腦等;所述的存儲介質(zhì)可為磁碟、光盤、只讀存儲記憶體(read-onlymemory,rom)或隨機(jī)存儲記憶體(randomaccessmemory,ram)等;所述計(jì)算機(jī)程序由不限于c、c++等計(jì)算機(jī)語言實(shí)現(xiàn)。以上所述的具體實(shí)施例,對本發(fā)明的目的、技術(shù)方案和有益效果進(jìn)行了進(jìn)一步詳細(xì)說明,所應(yīng)理解的是,以上所述僅為本發(fā)明的具體實(shí)施例而已,并不用于限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所做的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。當(dāng)前第1頁12