基于地理位置的物流配送路徑規(guī)劃方法和系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及一種基于地理位置的物流配送路徑規(guī)劃方法,還涉及一種基于地理位置的物流配送路徑規(guī)劃系統(tǒng)。
【背景技術(shù)】
[0002]生鮮農(nóng)產(chǎn)品具有易腐、時(shí)鮮的特點(diǎn),其連鎖化、規(guī)模化經(jīng)營已成為發(fā)展趨勢,生鮮超市即該發(fā)展模式的典型代表。該模式中,超市配送中心負(fù)責(zé)下轄區(qū)域所有門店的產(chǎn)品配送,由于超市門店需求量小,如單獨(dú)配送,運(yùn)輸車輛一般不能滿載運(yùn)行,利用率較低,因此配送中心采用零擔(dān)配送方式(單車同時(shí)為多門店配送產(chǎn)品)提高車輛滿載率。零擔(dān)配送方式帶來的最大問題是如何將多個(gè)門店訂單分配到不同車輛上,并以最小的運(yùn)輸成本(里程、時(shí)間)配送到各個(gè)門店,即訂單分配及路徑規(guī)劃。目前,訂單分配和路徑規(guī)劃,主要基于工作人員的個(gè)人經(jīng)驗(yàn),或者是在缺少實(shí)際位置數(shù)據(jù)的情況下,分別對兩者做一些簡單規(guī)劃,規(guī)劃方案具有一定合理性,但方法還具有改進(jìn)的空間。
[0003]訂單分配及路線規(guī)劃是配送中心零擔(dān)配送方式所面臨的主要決策問題,但目前決策方法也存在一些缺陷,第一,在缺少對各門店地理位置數(shù)據(jù)及各門店間實(shí)地距離認(rèn)知的情況下,工作人員通常會(huì)基于個(gè)人經(jīng)驗(yàn)對訂單分配和路徑規(guī)劃進(jìn)行決策,決策基礎(chǔ)薄弱,隨機(jī)性也較大;第二,訂單分配與路線規(guī)劃并不是相互獨(dú)立的階段,而目前訂單分配及路線規(guī)劃分別由出庫員與駕駛員決定,因此,將兩者作為一個(gè)整體來進(jìn)行決策,可進(jìn)一步降低運(yùn)輸成本。
【發(fā)明內(nèi)容】
[0004]本發(fā)明提供一種使每條配送路徑達(dá)到最優(yōu)的物流配送路徑規(guī)劃方法。
[0005]一種基于地理位置的物流配送路徑規(guī)劃方法,包括以下步驟:
[0006]獲取配送中心和各需求點(diǎn)的地理位置、配送中心和各需求點(diǎn)之間以及任意兩個(gè)需求點(diǎn)之間的最短實(shí)際距離;
[0007]根據(jù)所述各需求點(diǎn)的地理位置將各需求點(diǎn)劃分進(jìn)不同分區(qū);
[0008]根據(jù)節(jié)約里程數(shù)確定每一分區(qū)內(nèi)的以配送中心為起止點(diǎn),各需求點(diǎn)為目標(biāo)點(diǎn)的配送路徑;所述節(jié)約里程數(shù)為第一距離減去第二距離的差值,所述第一距離為從配送中心為起止點(diǎn)到分區(qū)內(nèi)任意兩個(gè)需求點(diǎn)的往返最短實(shí)際距離之和,所述第二距離為從配送中心為起止點(diǎn),依次經(jīng)過所述兩個(gè)需求點(diǎn)的往返最短實(shí)際距離。
[0009]進(jìn)一步地,在所述根據(jù)所述各需求點(diǎn)的地理位置將各需求點(diǎn)劃分進(jìn)不同分區(qū)之后,根據(jù)節(jié)約里程數(shù)確定每一分區(qū)內(nèi)的以配送中心為起止點(diǎn),各需求點(diǎn)為目標(biāo)點(diǎn)的配送路徑之前,所述方法還包括:
[0010]遍歷各分區(qū),獲取當(dāng)前分區(qū)中各需求點(diǎn)的配送量之和,并計(jì)算所述配送量之和與預(yù)設(shè)運(yùn)量容限的余數(shù);
[0011]判斷所述當(dāng)前分區(qū)中各需求點(diǎn)的配送量之和與預(yù)設(shè)運(yùn)量容限的余數(shù)是否小于第一預(yù)設(shè)余數(shù);
[0012]在當(dāng)前分區(qū)中各需求點(diǎn)的配送量之和與預(yù)設(shè)運(yùn)量容限的余數(shù)小于第一預(yù)設(shè)余數(shù)時(shí),判斷所述當(dāng)前分區(qū)和可合并需求點(diǎn)的配送量之和與所述預(yù)設(shè)運(yùn)量容限的余數(shù)是否大于等于第二預(yù)設(shè)余數(shù),所述可合并需求點(diǎn)為所述當(dāng)前分區(qū)的下一相鄰分區(qū)中與所述當(dāng)前分區(qū)距離最近的需求點(diǎn),所述下一相鄰分區(qū)為起始角度大于所述當(dāng)前分區(qū)的最大角度或小于所述當(dāng)前分區(qū)的最小角度的相鄰分區(qū),所述距離最近的需求點(diǎn)為與所述當(dāng)前分區(qū)內(nèi)各需求點(diǎn)形成的外接多邊形的幾何重心之間的直線距離最小或與所述當(dāng)前分區(qū)中各需求點(diǎn)的極角平均值小于等于一預(yù)設(shè)角度的需求點(diǎn);
[0013]若所述當(dāng)前分區(qū)和可合并需求點(diǎn)的配送量之和與所述預(yù)設(shè)運(yùn)量容限的余數(shù)大于等于第二預(yù)設(shè)余數(shù),則判斷所述下一相鄰分區(qū)的剩余配送量與所述預(yù)設(shè)運(yùn)量容限的余數(shù)是否大于等于所述第二預(yù)設(shè)余數(shù),所述剩余配送量為所述下一相鄰分區(qū)中刨除所述可合并需求點(diǎn)后剩余需求點(diǎn)對應(yīng)的配送量之和;
[0014]若所述剩余配送量大于等于所述第二預(yù)設(shè)余數(shù),則將所述可合并需求點(diǎn)合并到所述當(dāng)前分區(qū);
[0015]若所述剩余配送量小于所述第二預(yù)設(shè)余數(shù),則保持當(dāng)前分區(qū)不變;
[0016]若所述當(dāng)前分區(qū)和可合并需求點(diǎn)的配送量之和與所述預(yù)設(shè)運(yùn)量容限的余數(shù)小于第二預(yù)設(shè)余數(shù),則保持當(dāng)前分區(qū)不變;
[0017]在當(dāng)前分區(qū)中各需求點(diǎn)的配送量之和與預(yù)設(shè)運(yùn)量容限的余數(shù)大于等于第一預(yù)設(shè)余數(shù)時(shí),保持當(dāng)前分區(qū)不變。
[0018]優(yōu)選的,所述第一預(yù)設(shè)余數(shù)為1/3預(yù)設(shè)運(yùn)量容限,所述第二預(yù)設(shè)余數(shù)為2/3預(yù)設(shè)運(yùn)量容限。
[0019]優(yōu)選的,所述根據(jù)所述各需求點(diǎn)的地理位置將各需求點(diǎn)劃分進(jìn)不同分區(qū)步驟具體包括:
[0020]構(gòu)建一以配送中心為極點(diǎn)、經(jīng)過所述配送中心的任一直線為極軸的極坐標(biāo)系,所述極軸按照順時(shí)針或逆時(shí)針依次逐個(gè)掃描需求點(diǎn);
[0021]創(chuàng)建一新建分區(qū),將所述一新建分區(qū)作為當(dāng)前分區(qū),將第一個(gè)需求點(diǎn)加入所述當(dāng)前分區(qū);
[0022]獲取加入所述當(dāng)前分區(qū)的需求點(diǎn)構(gòu)成的外接多邊形的幾何重心和所述需求點(diǎn)的極角平均值;
[0023]將與所述幾何重心之間的直線距離小于等于一預(yù)設(shè)距離或與所述極角平均值小于等于一預(yù)設(shè)角度的下一需求點(diǎn)劃分進(jìn)所述當(dāng)前分區(qū)中,重復(fù)所述獲取加入所述當(dāng)前分區(qū)的需求點(diǎn)構(gòu)成的外接多邊形的幾何重心和所述需求點(diǎn)的極角平均值步驟,直到所有需求點(diǎn)分區(qū)完畢;
[0024]創(chuàng)建另一新建分區(qū),將所述另一新建分區(qū)作為當(dāng)前分區(qū),將與所述幾何重心之間的直線距離大于一預(yù)設(shè)距離且與所述極角平均值大于一預(yù)設(shè)角度的下一需求點(diǎn)劃分進(jìn)所述當(dāng)前分區(qū)中,重復(fù)所述獲取加入所述當(dāng)前分區(qū)的需求點(diǎn)構(gòu)成的外接多邊形的幾何重心和所述需求點(diǎn)的極角平均值步驟,直到所有需求點(diǎn)分區(qū)完畢。。
[0025]優(yōu)選的,所述根據(jù)節(jié)約里程數(shù)確定每一分區(qū)內(nèi)的以配送中心為起止點(diǎn),各需求點(diǎn)為目標(biāo)點(diǎn)的配送路徑步驟具體包括:
[0026]計(jì)算各分區(qū)的各需求點(diǎn)中任意一對需求點(diǎn)的節(jié)約里程數(shù);
[0027]遍歷各分區(qū),判斷當(dāng)前分區(qū)內(nèi)節(jié)約里程數(shù)最大的一對需求點(diǎn)對應(yīng)的配送量之和是否小于等于預(yù)設(shè)運(yùn)量容限;
[0028]若所述配送量之和小于等于預(yù)設(shè)運(yùn)量容限,則將所述的一對需求點(diǎn)相連形成的路徑作為所述配送路徑,將所述配送路徑添加至路徑集合中,同時(shí)將所述一對需求點(diǎn)的全部貨物裝進(jìn)一輛配送車中;
[0029]若所述配送量之和大于預(yù)設(shè)運(yùn)量容限,則為所述的一對需求點(diǎn)中的每個(gè)需求點(diǎn)分別分配一條配送路徑,將兩條配送路徑添加至所述路徑集合中,同時(shí)將所述每個(gè)需求點(diǎn)的貨物分別裝進(jìn)一輛配送車中;
[0030]按照所述節(jié)約里程數(shù)由大到小的順序選擇下一對需求點(diǎn),判斷所述下一對需求點(diǎn)與所述路徑集合的配送路徑是否有且僅有一個(gè)相同需求點(diǎn);
[0031]若有且僅有一個(gè)相同需求點(diǎn),則判斷所述下一對需求點(diǎn)中的非相同需求點(diǎn)的配送量與所述相同需求點(diǎn)所屬的配送車中已有配送量之和是否小于等于預(yù)設(shè)運(yùn)量容限;
[0032]若所述配送量之和小于等于預(yù)設(shè)運(yùn)量容限,則將所述相同需求點(diǎn)和非相同需求點(diǎn)相連形成的路徑加入所述相同需求點(diǎn)所屬的配送路徑中,同時(shí)將所述非相同需求點(diǎn)的全部貨物裝進(jìn)所述相同需求點(diǎn)所屬的配送車中;
[0033]若所述配送量之和大于預(yù)設(shè)運(yùn)量容限,則為所述非相同需求點(diǎn)分配另一配送路徑,并將所述另一配送路徑添加至所述路徑集合中,同時(shí)將所述非相同需求點(diǎn)的全部貨物全部裝進(jìn)一輛新生成的配送車中;
[0034]對剩余需求點(diǎn)重復(fù)所述按照所述節(jié)約里程數(shù)由大到小的順序選擇下一對需求點(diǎn),判斷所述下一對需求點(diǎn)與所述路徑集合的配送路徑是否有且僅有一個(gè)相同需求點(diǎn)步驟,直到所述當(dāng)前分區(qū)的所有需求點(diǎn)都分配進(jìn)相應(yīng)配送路徑中且所有需求點(diǎn)的全部貨物都裝進(jìn)相應(yīng)配送車;
[0035]若下一對需求點(diǎn)與所述路徑集合的配送路徑中的需求點(diǎn)不含有相同需求點(diǎn),則對所述當(dāng)前分區(qū)的剩余需求點(diǎn)重復(fù)所述判斷當(dāng)前分區(qū)內(nèi)節(jié)約里程數(shù)最大的一對需求點(diǎn)對應(yīng)的配送量之和是否小于等于預(yù)設(shè)運(yùn)量容限步驟,直到所述當(dāng)前分區(qū)的所有需求點(diǎn)都分配進(jìn)相應(yīng)配送路徑中且所有需求點(diǎn)的全部貨物都裝進(jìn)相應(yīng)配送車。
[0036]進(jìn)一步地,在所述需求點(diǎn)都分配進(jìn)相應(yīng)配送路徑中且所有需求點(diǎn)的全部貨物都裝進(jìn)相應(yīng)配送車中之后,所述方法還包括:
[0037]計(jì)算各配送車的配送量,并將所述配送量按照由小到大排序;
[0038]當(dāng)排在前兩位的配送量之和小于所述預(yù)設(shè)運(yùn)量容限時(shí),將與所述前兩位的配送量對應(yīng)的配送車合并為一輛配送車,
[0039]將兩輛配送車對應(yīng)的配送路徑合并,并將合并后節(jié)約里程數(shù)最大的路徑作為新的配送路徑;
[0040]對新形成的所有配送車重復(fù)所述計(jì)算各配送車的配送量,并將計(jì)算所得的配送量按照由小到大排序步驟,直到合并后的配送車的配送量大于等于所述預(yù)設(shè)運(yùn)量容限。
[0041]本發(fā)明還涉及一種基于地理位置的物流配送路徑規(guī)劃系統(tǒng),包括:
[0042]地理位置獲取單元,獲取配送中心和各需求點(diǎn)的地理位置、配送中心和各需求點(diǎn)之間以及任意兩個(gè)需求點(diǎn)之間的最短實(shí)際距離;
[0043]分區(qū)單元,根據(jù)所述各需求點(diǎn)的地理位置將各需求點(diǎn)劃分進(jìn)不同分區(qū);
[0044]配送路徑生成單元,根據(jù)節(jié)約里程數(shù)確定每一分區(qū)內(nèi)的以配送中心為起止點(diǎn),各需求點(diǎn)為目標(biāo)點(diǎn)的配送路徑;所述節(jié)約里程數(shù)為第一距離減去第二距離的差值,所述第一距離為從配送中心為起止點(diǎn)到分區(qū)內(nèi)任意兩個(gè)需求點(diǎn)的往返最短實(shí)際距離之和,所述第二距離為從配送中心為起止點(diǎn),依次經(jīng)過所述兩個(gè)需求點(diǎn)的往返最短實(shí)際距離。
[0045]進(jìn)一步地,所述物流配送路徑規(guī)劃系統(tǒng)還包括
[0046]分區(qū)余數(shù)獲取單元,遍歷各分區(qū),獲取當(dāng)前分區(qū)中各需求點(diǎn)的配送量之和,并計(jì)算所述配送量之和與預(yù)設(shè)運(yùn)量容限的余數(shù);
[0047]判斷單元,判斷所述當(dāng)前分區(qū)中各需求點(diǎn)的配送量之和與預(yù)設(shè)運(yùn)量容限的余數(shù)是否小于第一預(yù)設(shè)余數(shù);
[0048]合并后當(dāng)前分區(qū)余數(shù)預(yù)判單元,在當(dāng)前分區(qū)中各需求點(diǎn)的配送量之和與預(yù)設(shè)運(yùn)量容限的余數(shù)小于第一預(yù)設(shè)余數(shù)時(shí),判斷所述當(dāng)前分區(qū)和可合并需求點(diǎn)的配送量之和與所述預(yù)設(shè)運(yùn)量容限的余數(shù)是否大于等于第二預(yù)設(shè)余數(shù),所述可合并需求點(diǎn)為所述當(dāng)前分區(qū)的下一相鄰分區(qū)中與所述當(dāng)前分區(qū)距離最近的需求點(diǎn),所述下一相鄰分區(qū)為起始角度大于所述當(dāng)前分區(qū)的最大角度或小于所述當(dāng)前分區(qū)的最小角度的相鄰分區(qū),所述距離最近的需求點(diǎn)為與所述當(dāng)前分區(qū)內(nèi)各需求點(diǎn)形成的外接多邊形的幾何重心之間的直線距離最小或與所述當(dāng)前分區(qū)中各需求點(diǎn)的極角平均值小于等于一預(yù)設(shè)角度的需求點(diǎn);
[0049]合并后相鄰分區(qū)余數(shù)預(yù)判單元,若所述當(dāng)前分區(qū)和可合并需求點(diǎn)的配送量之和與所述預(yù)設(shè)運(yùn)量容限的余數(shù)大于等于第二預(yù)設(shè)余數(shù),則判斷所述下一相鄰分區(qū)的剩余配送量與所述預(yù)設(shè)運(yùn)量容限的余數(shù)是否大于等于所述第二預(yù)設(shè)余數(shù),