欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種多配送中心物流運輸調(diào)度的方法及系統(tǒng)與流程

文檔序號:11952411閱讀:546來源:國知局
一種多配送中心物流運輸調(diào)度的方法及系統(tǒng)與流程

本發(fā)明涉及人工智能物流路徑規(guī)劃控制領域,特別涉及一種多配送中心物流運輸調(diào)度的方法及系統(tǒng)。



背景技術:

現(xiàn)實生活中,物流運輸優(yōu)化調(diào)度是物流的關鍵環(huán)節(jié)之一,而多車場的基于云計算的物流配送模型在現(xiàn)實生活中有很強的應用背景和廣闊的市場。多配送中心模型是指物流公司在規(guī)劃好路徑后對多個客戶進行物流配送服務,各個車場分布在不同的地理位置,能夠解決單配送中心不能在很短的時間內(nèi)為距離遠的客戶服務的問題,能把更好、更便捷、更高效的服務提供給用戶。因此研究多配送中心物流運輸調(diào)度問題有著現(xiàn)實需要和意義。

粒子群優(yōu)化算法是一種基于社會群體行為的演化算法。PSO算法與其他的算法一樣,容易陷入局部最優(yōu)解。因此,如何在規(guī)劃路徑時,提高收斂速度和收斂精度,是本領域技術人員需要解決的技術問題。



技術實現(xiàn)要素:

本發(fā)明的目的是提供一種多配送中心物流運輸調(diào)度的方法及系統(tǒng),能夠在規(guī)劃路徑時,提高收斂速度和收斂精度,得到最優(yōu)物流配送路徑方案,滿足客戶需求。

為解決上述技術問題,本發(fā)明提供一種多配送中心物流運輸調(diào)度的方法,包括:

獲取多配送中心物流運輸調(diào)度問題的基本參數(shù);其中所述基本參數(shù)包括物流配送中心坐標,客戶坐標,配送中心數(shù)量,車輛數(shù)量,車輛最大行駛里程,車輛開始配送時間;

根據(jù)所述基本參數(shù),利用自適應慣性權(quán)重的并行粒子群算法求解多配送中心物流運輸調(diào)度問題的數(shù)學模型,輸出最優(yōu)物流配送路徑方案;

其中,所述數(shù)學模型為N為客戶數(shù),M為配送中心數(shù),km為配送中心m的車輛數(shù),mk為配送中心m的第k輛車,Cv為單位距離車輛行駛費用,dij為客戶i到j的距離,Cd為司機單位費用;為配送中心m的第k輛車是否由客戶i到j,minz為物流運輸過程中的成本耗費。

其中,根據(jù)所述基本參數(shù),利用自適應慣性權(quán)重的并行粒子群算法求解多配送中心物流運輸調(diào)度問題的數(shù)學模型,輸出最優(yōu)物流配送路徑方案,包括:

S1、根據(jù)所述基本參數(shù)對自適應慣性權(quán)重的并行粒子群算法中的參數(shù)進行初始化;

S2、計算各個線程計算粒子的慣性權(quán)重,若線程的粒子最優(yōu)解優(yōu)于當前線程中的粒子最優(yōu)解,則更新對應線程的粒子最優(yōu)解,并執(zhí)行S3,否則執(zhí)行S4;

S3、各個線程獲取讀寫同步鎖,并在獲取當前線程中的粒子最優(yōu)解后設置當前線程的退出標志為真,各個線程釋放讀寫同步鎖;

S4、更新粒子的速度和位置,并將線程迭代次數(shù)加1;并根據(jù)預定條件判斷對應分組線程是否結(jié)束;若是,則執(zhí)行S5,若否,則執(zhí)行S2;

S5、匯總各線程的粒子最優(yōu)解,得到最終的最優(yōu)粒子,對所述最優(yōu)粒子進行解碼操作,得到最優(yōu)物流配送路徑方案。

其中,S1包括:

設置粒子群算法中分組數(shù)和各分組的最大迭代次數(shù),設定種群規(guī)模,計算各分組粒子數(shù);

初始化讀寫同步鎖,根據(jù)設置的分組數(shù)依次創(chuàng)建線程,并將各線程粒子數(shù)和最大迭代次數(shù)分配給各個線程,各個線程初始化粒子種群,并初始化粒子一個隨機值。

其中,計算各個線程計算粒子的慣性權(quán)重,包括:

按照慣性權(quán)重公式計算各個線程計算粒子的慣性權(quán)重wni(t);

其中,慣性權(quán)重公式為:

fni(t)=k×IBestXn(t)/pBestXni(t)

<mrow> <msub> <mi>w</mi> <mi>ni</mi> </msub> <mrow> <mo>(</mo> <mi>t</mi> <mo>)</mo> </mrow> <mo>=</mo> <msub> <mi>w</mi> <mi>max</mi> </msub> <mo>-</mo> <mrow> <mo>(</mo> <msub> <mi>w</mi> <mi>max</mi> </msub> <mo>-</mo> <msub> <mi>w</mi> <mi>min</mi> </msub> <mo>)</mo> </mrow> <mo>&times;</mo> <msup> <mi>e</mi> <mrow> <mo>-</mo> <mi>k</mi> <mo>&times;</mo> <mi>IBest</mi> <msub> <mi>X</mi> <mi>n</mi> </msub> <mrow> <mo>(</mo> <mi>t</mi> <mo>)</mo> </mrow> <mo>/</mo> <mi>t</mi> <mo>&CenterDot;</mo> <mi>pBrst</mi> <msub> <mi>X</mi> <mi>ni</mi> </msub> <mrow> <mo>(</mo> <mi>t</mi> <mo>)</mo> </mrow> </mrow> </msup> </mrow>

其中,IBestXn(t)為整個粒子群最優(yōu)適應度,pBestXni(t)為第i個粒子的個體最優(yōu)適應度,wni(t)為第i個粒子的慣性權(quán)重,k為常數(shù),wni(t)∈[wmin,wmax]。

其中,更新粒子的速度和位置,包括:

按照速度更新公式更新粒子的速度;

按照位置更新公式更新粒子的速度;

其中,速度更新公式為:

vnid(t+1)=wni·vnid(t)+c1·rand()·(pBestXnid-xnid(t))+

c2·rand()·(IBestXnd-xnid(t))+c3·rand()·(gBestXd-xnid(t))

其中,位置更新公式為:

xnid(t+1)=xnid(t)+vnid(t+1)

按照速度更新公式更新粒子的速度;

其中,vnid(t+1)為第n個線程中第i個粒子第t+1次迭代后的速度,vnid(t)為第n個線程中第i個粒子第t次迭代后的速度,wni為第n個線程第i個粒子的慣性權(quán)重,xnid(t+1)為第n個線程第i個粒子第t+1次迭代后的位置,xnid(t)為第n個線程第i個粒子第t次迭代后的位置,pBestXni為第n個線程第i個粒子找到的最優(yōu)位置,IBestXn為第n個線程的最優(yōu)位置,gBestX為整個粒子群全局最優(yōu)位置,rand()為[0,1]之間均勻分布的平均數(shù);c1,c2,c3為學習因子,t為迭代次數(shù)。

本發(fā)明還提供一種多配送中心物流運輸調(diào)度的系統(tǒng),包括:

基本參數(shù)獲取模塊,用于獲取多配送中心物流運輸調(diào)度問題的基本參數(shù);其中所述基本參數(shù)包括物流配送中心坐標,客戶坐標,配送中心數(shù)量,車輛數(shù)量,車輛最大行駛里程,車輛開始配送時間;

配送路徑計算模塊,用于根據(jù)所述基本參數(shù),利用自適應慣性權(quán)重的并行粒子群算法求解多配送中心物流運輸調(diào)度問題的數(shù)學模型,輸出最優(yōu)物流配送路徑方案;

其中,所述數(shù)學模型為N為客戶數(shù),M為配送中心數(shù),km為配送中心m的車輛數(shù),mk為配送中心m的第k輛車,Cv為單位距離車輛行駛費用,dij為客戶i到j的距離,Cd為司機單位費用;為配送中心m的第k輛車是否由客戶i到j,minz為物流運輸過程中的成本耗費。

其中,所述配送路徑計算模塊包括:

初始化單元,用于根據(jù)所述基本參數(shù)對自適應慣性權(quán)重的并行粒子群算法中的參數(shù)進行初始化;

慣性權(quán)重單元,用于計算各個線程計算粒子的慣性權(quán)重,若線程的粒子最優(yōu)解優(yōu)于當前線程中的粒子最優(yōu)解,則更新對應線程的粒子最優(yōu)解;

讀寫同步鎖單元,用于各個線程獲取讀寫同步鎖,并在獲取當前線程中的粒子最優(yōu)解后設置當前線程的退出標志為真,各個線程釋放讀寫同步鎖;

更新單元,用于更新粒子的速度和位置,并將線程迭代次數(shù)加1;并根據(jù)預定條件判斷對應分組線程是否結(jié)束;

配送路徑輸出單元,用于匯總各線程的粒子最優(yōu)解,得到最終的最優(yōu)粒子,對所述最優(yōu)粒子進行解碼操作,得到最優(yōu)物流配送路徑方案。

其中,所述初始化單元包括:

粒子群算法初始化子單元,用于設置粒子群算法中分組數(shù)和各分組的最大迭代次數(shù),設定種群規(guī)模,計算各分組粒子數(shù);

線程初始化子單元,用于初始化讀寫同步鎖,根據(jù)設置的分組數(shù)依次創(chuàng)建線程,并將各線程粒子數(shù)和最大迭代次數(shù)分配給各個線程,各個線程初始化粒子種群,并初始化粒子一個隨機值。

其中,所述慣性權(quán)重單元包括:

慣性權(quán)重子單元,用于按照慣性權(quán)重公式計算各個線程計算粒子的慣性權(quán)重wni(t);

其中,慣性權(quán)重公式為:

fni(t)=k×IBestXn(t)/pBestXni(t)

<mrow> <msub> <mi>w</mi> <mi>ni</mi> </msub> <mrow> <mo>(</mo> <mi>t</mi> <mo>)</mo> </mrow> <mo>=</mo> <msub> <mi>w</mi> <mi>max</mi> </msub> <mo>-</mo> <mrow> <mo>(</mo> <msub> <mi>w</mi> <mi>max</mi> </msub> <mo>-</mo> <msub> <mi>w</mi> <mi>min</mi> </msub> <mo>)</mo> </mrow> <mo>&times;</mo> <msup> <mi>e</mi> <mrow> <mo>-</mo> <mi>k</mi> <mo>&times;</mo> <mi>IBest</mi> <msub> <mi>X</mi> <mi>n</mi> </msub> <mrow> <mo>(</mo> <mi>t</mi> <mo>)</mo> </mrow> <mo>/</mo> <mi>t</mi> <mo>&CenterDot;</mo> <mi>pBrst</mi> <msub> <mi>X</mi> <mi>ni</mi> </msub> <mrow> <mo>(</mo> <mi>t</mi> <mo>)</mo> </mrow> </mrow> </msup> </mrow>

其中,IBestXn(t)為整個粒子群最優(yōu)適應度,pBestXni(t)為第i個粒子的個體最優(yōu)適應度,wni(t)為第i個粒子的慣性權(quán)重,k為常數(shù),wni(t)∈[wmin,wmax]。

其中,所述更新單元包括:

速度更新子單元,用于按照速度更新公式更新粒子的速度;

位置更新子單元,用于按照位置更新公式更新粒子的速度;

其中,速度更新公式為:

vnid(t+1)=wni·vnid(t)+c1·rand()·(pBestXnid-xnid(t))+

c2·rand()·(IBestXnd-xnid(t))+c3·rand()·(gBestXd-xnid(t))

其中,位置更新公式為:

xnid(t+1)=xnid(t)+vnid(t+1)

按照速度更新公式更新粒子的速度;

其中,vnid(t+1)為第n個線程中第i個粒子第t+1次迭代后的速度,vnid(t)為第n個線程中第i個粒子第t次迭代后的速度,wni為第n個線程第i個粒子的慣性權(quán)重,xnid(t+1)為第n個線程第i個粒子第t+1次迭代后的位置,xnid(t)為第n個線程第i個粒子第t次迭代后的位置,pBestXni為第n個線程第i個粒子找到的最優(yōu)位置,IBestXn為第n個線程的最優(yōu)位置,gBestX為整個粒子群全局最優(yōu)位置,rand()為[0,1]之間均勻分布的平均數(shù);c1,c2,c3為學習因子,t為迭代次數(shù)。

本發(fā)明所提供的多配送中心物流運輸調(diào)度的方法,包括:獲取多配送中心物流運輸調(diào)度問題的基本參數(shù);其中所述基本參數(shù)包括物流配送中心坐標,客戶坐標,配送中心數(shù)量,車輛數(shù)量,車輛最大行駛里程,車輛開始配送時間;根據(jù)所述基本參數(shù),利用自適應慣性權(quán)重的并行粒子群算法求解多配送中心物流運輸調(diào)度問題的數(shù)學模型,輸出最優(yōu)物流配送路徑方案;

可見,該方法通過自適應慣性權(quán)重的并行粒子群算法在規(guī)劃路徑時,提高收斂速度和收斂精度,得到最優(yōu)物流配送路徑方案,滿足客戶需求;本發(fā)明還提供了一種多配送中心物流運輸調(diào)度的系統(tǒng),具有上述效果,在此不再贅述。

附圖說明

為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術中的技術方案,下面將對實施例或現(xiàn)有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的實施例,對于本領域普通技術人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)提供的附圖獲得其他的附圖。

圖1為本發(fā)明實施例所提供的多配送中心物流運輸調(diào)度的方法的流程圖;

圖2為本發(fā)明實施例所提供的客戶的坐標位置示意圖;

圖3為本發(fā)明實施例所提供的最優(yōu)物流配送路徑軌跡圖;

圖4為本發(fā)明實施例所提供的多配送中心物流運輸調(diào)度的系統(tǒng)的結(jié)構(gòu)框圖。

具體實施方式

本發(fā)明的核心是提供一種多配送中心物流運輸調(diào)度的方法及系統(tǒng),能夠在規(guī)劃路徑時,提高收斂速度和收斂精度即具有較強的尋優(yōu)能力,時間耗費少,得到最優(yōu)物流配送路徑方案,滿足客戶需求。

為使本發(fā)明實施例的目的、技術方案和優(yōu)點更加清楚,下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例是本發(fā)明一部分實施例,而不是全部的實施例。基于本發(fā)明中的實施例,本領域普通技術人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。

請參考圖1,圖1為本發(fā)明實施例所提供的多配送中心物流運輸調(diào)度的方法的流程圖;該方法可以包括:

S100、獲取多配送中心物流運輸調(diào)度問題的基本參數(shù);其中所述基本參數(shù)包括物流配送中心坐標,客戶坐標,配送中心數(shù)量,車輛數(shù)量,車輛最大行駛里程,車輛開始配送時間;

其中,為了得到最優(yōu)物流配送路徑方案,需要得到一些配送時的基本參數(shù)信息,根據(jù)這些參數(shù)信息計算得到在該參數(shù)下的最優(yōu)物流配送路徑方案。

例如獲取多配送中心VRP問題基本參數(shù):物流配送中心坐標如表1,客戶的坐標如圖2有25個客戶,3個車場即配送中心有三個有載重為8噸的大型車輛,每輛單次出行車最大行駛里程為200km。車輛最早發(fā)車時間是8:00。

表1物流配送中心坐標

S110、根據(jù)所述基本參數(shù),利用自適應慣性權(quán)重的并行粒子群算法求解多配送中心物流運輸調(diào)度問題的數(shù)學模型,輸出最優(yōu)物流配送路徑方案;

其中,所述數(shù)學模型為N為客戶數(shù),M為配送中心數(shù),km為配送中心m的車輛數(shù),mk為配送中心m的第k輛車,Cv為單位距離車輛行駛費用,dij為客戶i到j的距離,Cd為司機單位費用;為配送中心m的第k輛車是否由客戶i到j,minz為物流運輸過程中的成本耗費。

其中,數(shù)學模型需要滿足的約束條件如下:

<mrow> <munderover> <mo>&Sigma;</mo> <mrow> <mi>i</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>N</mi> </munderover> <msub> <mi>x</mi> <mrow> <mi>i</mi> <mi>m</mi> <mi>k</mi> </mrow> </msub> <mo>=</mo> <munderover> <mo>&Sigma;</mo> <mrow> <mi>j</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>N</mi> </munderover> <msub> <mi>x</mi> <mrow> <mi>j</mi> <mi>m</mi> <mi>k</mi> </mrow> </msub> <mo>,</mo> <mi>i</mi> <mo>,</mo> <mi>j</mi> <mo>&Element;</mo> <mo>{</mo> <mn>1</mn> <mo>,</mo> <mn>2</mn> <mo>,</mo> <mo>...</mo> <mo>,</mo> <mi>N</mi> <mo>}</mo> <mo>,</mo> <mi>m</mi> <mo>=</mo> <mn>1</mn> <mo>,</mo> <mn>2</mn> <mo>,</mo> <mo>...</mo> <mo>,</mo> <mi>M</mi> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>1</mn> <mo>)</mo> </mrow> </mrow>

<mrow> <munderover> <mo>&Sigma;</mo> <mrow> <mi>i</mi> <mo>=</mo> <mn>1</mn> </mrow> <mrow> <mi>N</mi> <mo>+</mo> <mi>M</mi> </mrow> </munderover> <munderover> <mo>&Sigma;</mo> <mrow> <mi>m</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>M</mi> </munderover> <munderover> <mo>&Sigma;</mo> <mrow> <mi>k</mi> <mo>=</mo> <mn>1</mn> </mrow> <msub> <mi>k</mi> <mi>m</mi> </msub> </munderover> <msub> <mi>x</mi> <mrow> <mi>i</mi> <mi>m</mi> <mi>k</mi> </mrow> </msub> <mo>=</mo> <munderover> <mo>&Sigma;</mo> <mrow> <mi>j</mi> <mo>=</mo> <mn>1</mn> </mrow> <mrow> <mi>N</mi> <mo>+</mo> <mi>M</mi> </mrow> </munderover> <munderover> <mo>&Sigma;</mo> <mrow> <mi>m</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>M</mi> </munderover> <munderover> <mo>&Sigma;</mo> <mrow> <mi>k</mi> <mo>=</mo> <mn>1</mn> </mrow> <msub> <mi>k</mi> <mi>m</mi> </msub> </munderover> <msub> <mi>x</mi> <mrow> <mi>j</mi> <mi>m</mi> <mi>k</mi> </mrow> </msub> <mo>,</mo> <mi>i</mi> <mo>,</mo> <mi>j</mi> <mo>&Element;</mo> <mo>{</mo> <mn>1</mn> <mo>,</mo> <mn>2</mn> <mo>,</mo> <mn>...</mn> <mo>,</mo> <mi>N</mi> <mo>}</mo> <mo>,</mo> <mi>m</mi> <mo>=</mo> <mn>1</mn> <mo>,</mo> <mn>2</mn> <mo>,</mo> <mo>,</mo> <mn>...</mn> <mi>M</mi> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>2</mn> <mo>)</mo> </mrow> </mrow>

<mrow> <munderover> <mo>&Sigma;</mo> <mrow> <mi>i</mi> <mo>=</mo> <mn>1</mn> </mrow> <mrow> <mi>N</mi> <mo>+</mo> <mi>M</mi> </mrow> </munderover> <munderover> <mo>&Sigma;</mo> <mrow> <mi>m</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>M</mi> </munderover> <munderover> <mo>&Sigma;</mo> <mrow> <mi>k</mi> <mo>=</mo> <mn>1</mn> </mrow> <msub> <mi>k</mi> <mi>m</mi> </msub> </munderover> <msub> <mi>x</mi> <mrow> <mi>i</mi> <mi>m</mi> <mi>k</mi> </mrow> </msub> <mo>=</mo> <munderover> <mo>&Sigma;</mo> <mrow> <mi>j</mi> <mo>=</mo> <mn>1</mn> </mrow> <mrow> <mi>N</mi> <mo>+</mo> <mi>M</mi> </mrow> </munderover> <munderover> <mo>&Sigma;</mo> <mrow> <mi>m</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>M</mi> </munderover> <munderover> <mo>&Sigma;</mo> <mrow> <mi>k</mi> <mo>=</mo> <mn>1</mn> </mrow> <msub> <mi>k</mi> <mi>m</mi> </msub> </munderover> <msub> <mi>x</mi> <mrow> <mi>j</mi> <mi>m</mi> <mi>k</mi> </mrow> </msub> <mo>=</mo> <mi>M</mi> <mo>,</mo> <mi>i</mi> <mo>,</mo> <mi>j</mi> <mo>&Element;</mo> <mo>{</mo> <mn>1</mn> <mo>,</mo> <mn>2</mn> <mo>,</mo> <mn>...</mn> <mo>,</mo> <mi>N</mi> <mo>}</mo> <mo>,</mo> <mi>m</mi> <mo>=</mo> <mn>1</mn> <mo>,</mo> <mn>2</mn> <mo>,</mo> <mo>,</mo> <mn>...</mn> <mi>M</mi> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>3</mn> <mo>)</mo> </mrow> </mrow>

<mrow> <munderover> <mo>&Sigma;</mo> <mrow> <mi>i</mi> <mo>=</mo> <mn>1</mn> </mrow> <mrow> <mi>N</mi> <mo>+</mo> <mi>M</mi> </mrow> </munderover> <msubsup> <mi>x</mi> <mrow> <mi>i</mi> <mi>j</mi> </mrow> <mrow> <mi>m</mi> <mi>k</mi> </mrow> </msubsup> <mo>=</mo> <munderover> <mo>&Sigma;</mo> <mrow> <mi>j</mi> <mo>=</mo> <mn>1</mn> </mrow> <mrow> <mi>N</mi> <mo>+</mo> <mi>M</mi> </mrow> </munderover> <msubsup> <mi>x</mi> <mrow> <mi>i</mi> <mi>j</mi> </mrow> <mrow> <mi>m</mi> <mi>k</mi> </mrow> </msubsup> <mo>=</mo> <mn>1</mn> <mo>,</mo> <mi>i</mi> <mo>&Element;</mo> <mo>{</mo> <mi>N</mi> <mo>+</mo> <mn>1</mn> <mo>,</mo> <mi>N</mi> <mo>+</mo> <mn>2</mn> <mo>,</mo> <mo>...</mo> <mo>,</mo> <mi>N</mi> <mo>+</mo> <mi>M</mi> <mo>}</mo> <mo>,</mo> <mi>t</mi> <mo>&gt;</mo> <mn>0</mn> <mo>,</mo> <mi>k</mi> <mo>&Element;</mo> <mo>{</mo> <mn>1</mn> <mo>,</mo> <mn>2</mn> <mo>,</mo> <mo>...</mo> <mo>,</mo> <msub> <mi>k</mi> <mi>m</mi> </msub> <mo>}</mo> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>4</mn> <mo>)</mo> </mrow> </mrow>

<mrow> <munderover> <mo>&Sigma;</mo> <mrow> <mi>i</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>N</mi> </munderover> <msub> <mi>q</mi> <mi>i</mi> </msub> <munderover> <mo>&Sigma;</mo> <mrow> <mi>j</mi> <mo>=</mo> <mn>1</mn> </mrow> <mrow> <mi>N</mi> <mo>+</mo> <mi>M</mi> </mrow> </munderover> <msubsup> <mi>x</mi> <mrow> <mi>i</mi> <mi>j</mi> </mrow> <mrow> <mi>m</mi> <mi>k</mi> </mrow> </msubsup> <mo>&GreaterEqual;</mo> <mi>G</mi> <mo>,</mo> <mi>i</mi> <mo>,</mo> <mi>j</mi> <mo>&Element;</mo> <mo>{</mo> <mi>N</mi> <mo>+</mo> <mn>1</mn> <mo>,</mo> <mi>N</mi> <mo>+</mo> <mn>2</mn> <mo>,</mo> <mo>...</mo> <mo>,</mo> <mi>N</mi> <mo>+</mo> <mi>M</mi> <mo>}</mo> <mo>,</mo> <mi>m</mi> <mo>=</mo> <mn>1</mn> <mo>,</mo> <mn>2</mn> <mo>,</mo> <mo>...</mo> <mo>,</mo> <mi>M</mi> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>5</mn> <mo>)</mo> </mrow> </mrow>

<mrow> <munderover> <mo>&Sigma;</mo> <mrow> <mi>i</mi> <mo>=</mo> <mi>N</mi> <mo>+</mo> <mn>1</mn> </mrow> <mrow> <mi>N</mi> <mo>+</mo> <mi>M</mi> </mrow> </munderover> <msubsup> <mi>x</mi> <mrow> <mi>i</mi> <mi>j</mi> </mrow> <mrow> <mi>m</mi> <mi>k</mi> </mrow> </msubsup> <mo>=</mo> <munderover> <mo>&Sigma;</mo> <mrow> <mi>j</mi> <mo>=</mo> <mi>N</mi> <mo>+</mo> <mn>1</mn> </mrow> <mrow> <mi>N</mi> <mo>+</mo> <mi>M</mi> </mrow> </munderover> <msubsup> <mi>x</mi> <mrow> <mi>i</mi> <mi>j</mi> </mrow> <mrow> <mi>m</mi> <mi>k</mi> </mrow> </msubsup> <mo>=</mo> <mn>0</mn> <mo>,</mo> <mi>i</mi> <mo>,</mo> <mi>j</mi> <mo>&Element;</mo> <mo>{</mo> <mi>N</mi> <mo>+</mo> <mn>1</mn> <mo>,</mo> <mi>N</mi> <mo>+</mo> <mn>2</mn> <mo>,</mo> <mo>...</mo> <mo>,</mo> <mi>N</mi> <mo>+</mo> <mi>M</mi> <mo>}</mo> <mo>,</mo> <mi>k</mi> <mo>&Element;</mo> <mo>{</mo> <mn>1</mn> <mo>,</mo> <mn>2</mn> <mo>,</mo> <mo>...</mo> <mo>,</mo> <msub> <mi>k</mi> <mi>m</mi> </msub> <mo>}</mo> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>6</mn> <mo>)</mo> </mrow> </mrow>

其中,仍用上述例子中的數(shù)值進行說明,要服務的客戶數(shù)有25個,物流運輸調(diào)度公司的配送中心數(shù)有3個,配送中心共有10臺車,A車場配送的客戶為9個,B車場配送的客戶為8個,C車場配送的客戶為8個,單位距離車輛行駛費用為50元/km,dij表示客戶i到j的距離(km),司機單位費用0.5元/km。數(shù)學模型表示物流運輸過程中的成本耗費,包括物流運輸中車輛行駛費用和司機薪酬費用。

其中,所述數(shù)學模型中N表示要服務的客戶數(shù)(N為正整數(shù)),M為物流運輸調(diào)度公司的配送中心數(shù)(M為正整數(shù)),配送中心m的車輛數(shù)為km,(km為正整數(shù),m=1,2,…,M),配送中心m的第k輛車所要配送的客戶數(shù)目為nk(nk為正整數(shù),k=1,2,…,km,m=1,2,…,M),Cv為單位距離車輛行駛費用(元/km),dij表示客戶i到j的距離(km),Cd為司機單位費用(元/km)。目標函數(shù)公式minz表示物流運輸過程中的成本耗費,包括物流運輸中車輛行駛費用和司機薪酬費用。

式(1)表示客戶點i流出的車輛和客戶點j流入的車輛是同一輛車;式(2)一輛車服務完這個客戶點之后必須離開這個客戶點;式(3)表示每輛車完成配送任務后都要返回配送中心;式(3)表示每個客戶點都可以被服務到;式(5)表示配送車輛必須滿足客戶配送的總重量要求;式(6)表示配送中心的車不能從一個配送中心直接駛?cè)肓硪粋€配送中心。

其中,可選的,根據(jù)所述基本參數(shù),利用自適應慣性權(quán)重的并行粒子群算法求解多配送中心物流運輸調(diào)度問題的數(shù)學模型,輸出最優(yōu)物流配送路徑方案,包括:

S1、根據(jù)所述基本參數(shù)對自適應慣性權(quán)重的并行粒子群算法中的參數(shù)進行初始化;

S2、計算各個線程計算粒子的慣性權(quán)重,若線程的粒子最優(yōu)解優(yōu)于當前線程中的粒子最優(yōu)解,則更新對應線程的粒子最優(yōu)解,并執(zhí)行S3,否則執(zhí)行S4;

S3、各個線程獲取讀寫同步鎖,并在獲取當前線程中的粒子最優(yōu)解后設置當前線程的退出標志為真,各個線程釋放讀寫同步鎖;

S4、更新粒子的速度和位置,并將線程迭代次數(shù)加1;并根據(jù)預定條件判斷對應分組線程是否結(jié)束;若是,則執(zhí)行S5,若否,則執(zhí)行S2;

S5、匯總各線程的粒子最優(yōu)解,得到最終的最優(yōu)粒子,對所述最優(yōu)粒子進行解碼操作,得到最優(yōu)物流配送路徑方案。

具體的詳細過程可以如下所示:

S6-1:粒子群算法初始化,設置分組數(shù)和各分組的最大迭代次數(shù),設定種群規(guī)模,計算各分組粒子數(shù)。

S6-2:初始化讀寫同步鎖,根據(jù)分組數(shù)依次創(chuàng)建線程,并將算法參數(shù),各線程粒子數(shù)和最大迭代次數(shù)分配給各個線程,各個線程開始初始化粒子種群,即對物流配送車編號和物流配送車在各客戶的路徑次序進行初始化和編碼。

S6-3:各個線程開始給初始化粒子一個隨機值。

S6-4:計算各個線程計算粒子的慣性權(quán)重;如果粒子最優(yōu)解優(yōu)于當前線程中的最優(yōu)解,則更新該線程最優(yōu)解,并轉(zhuǎn)S6-5,否則轉(zhuǎn)S6-8。

S6-5:每個線程獲取讀寫同步鎖。

S6-6:如果某個線程最優(yōu)解比目前的全局最優(yōu)解還要好,則當前線程的最優(yōu)解替換原來的最優(yōu)解,并判斷是否滿足閾值要求,如果滿足,說明已經(jīng)找到了當前線程中的最優(yōu)解,則當前線程的退出標志設置為真。

S6-7:每個線程釋放讀寫同步鎖。

S6-8:更粒子的速度和位置;線程迭代次數(shù)加1。

S6-9:首先確定線程退出標志是真還是假?如果為假,在判斷迭代次數(shù)是否達到了最初設定的分線程的最大值,如果滿足上述條件中的任意一條,則結(jié)束該分組線程,否則,轉(zhuǎn)S6-4。

S6-10:等待各個線程結(jié)束,匯總得到最優(yōu)粒子,對最優(yōu)粒子進行解碼操作,便可得到最優(yōu)物流配送路徑方案。

具體的,計算各個線程計算粒子的慣性權(quán)重,包括:

按照慣性權(quán)重公式計算各個線程計算粒子的慣性權(quán)重wni(t);

其中,慣性權(quán)重公式為:

fni(t)=k×IBestXn(t)/pBestXni(t)

<mrow> <msub> <mi>w</mi> <mi>ni</mi> </msub> <mrow> <mo>(</mo> <mi>t</mi> <mo>)</mo> </mrow> <mo>=</mo> <msub> <mi>w</mi> <mi>max</mi> </msub> <mo>-</mo> <mrow> <mo>(</mo> <msub> <mi>w</mi> <mi>max</mi> </msub> <mo>-</mo> <msub> <mi>w</mi> <mi>min</mi> </msub> <mo>)</mo> </mrow> <mo>&times;</mo> <msup> <mi>e</mi> <mrow> <mo>-</mo> <mi>k</mi> <mo>&times;</mo> <mi>IBest</mi> <msub> <mi>X</mi> <mi>n</mi> </msub> <mrow> <mo>(</mo> <mi>t</mi> <mo>)</mo> </mrow> <mo>/</mo> <mi>t</mi> <mo>&CenterDot;</mo> <mi>pBrst</mi> <msub> <mi>X</mi> <mi>ni</mi> </msub> <mrow> <mo>(</mo> <mi>t</mi> <mo>)</mo> </mrow> </mrow> </msup> </mrow>

其中,IBestXn(t)為整個粒子群最優(yōu)適應度,pBestXni(t)為第i個粒子的個體最優(yōu)適應度,wni(t)為第i個粒子的慣性權(quán)重,k為常數(shù),wni(t)∈[wmin,wmax]。

其中,在粒子群算法中加入了自適應權(quán)重,體現(xiàn)了粒子的不對稱性,然后線程之間通過異步通信方式。

具體的,更新粒子的速度和位置,包括:

按照速度更新公式更新粒子的速度;

按照位置更新公式更新粒子的速度;

其中,速度更新公式為:

vnid(t+1)=wni·vnid(t)+c1·rand()·(pBestXnid-xnid(t))+

c2·rand()·(IBestXnd-xnid(t))+c3·rand()·(gBestXd-xnid(t))

其中,位置更新公式為:

xnid(t+1)=xnid(t)+vnid(t+1)

按照速度更新公式更新粒子的速度;

其中,vnid(t+1)為第n個線程中第i個粒子第t+1次迭代后的速度,vnid(t)為第n個線程中第i個粒子第t次迭代后的速度,wni為第n個線程第i個粒子的慣性權(quán)重,xnid(t+1)為第n個線程第i個粒子第t+1次迭代后的位置,xnid(t)為第n個線程第i個粒子第t次迭代后的位置,pBestXni為第n個線程第i個粒子找到的最優(yōu)位置,IBestXn為第n個線程的最優(yōu)位置,gBestX為整個粒子群全局最優(yōu)位置,rand()為[0,1]之間均勻分布的平均數(shù);c1,c2,c3為學習因子(c1,c2,c3為實數(shù)),t為迭代次數(shù)(t為正整數(shù))。速度更新公式中第一項為記憶項;第二項為認知自身項,意味著粒子運動是根據(jù)自己經(jīng)驗;第三項是局部認知項,意味著粒子的運動是根據(jù)本線程所有粒子的經(jīng)驗和位置;第四項是群體認知項,意味著粒子的運動是根據(jù)整個群體的位置和經(jīng)驗。位置更新公式中第一項為更新前粒子位置,第二項為粒子更新走過的距離。

下面用舉例說明上述最優(yōu)物流配送路徑方案的計算過程:

Step1:獲取多配送中心VRP問題基本參數(shù);

Step2:建立數(shù)學模型;

Step3:粒子編碼:假設xi=(xi1,xi2,....,xin)為粒子群中第i個粒子在n維空間中的位置;本文采用三維粒子編碼方式,粒子的第一維用自然數(shù)1,2,…,N表示N個客戶;粒子的第二維xi用于映射分配給各收貨點的車輛編號,粒子的第三維di用于映射各車輛的行駛距離。

Step4:粒子解碼:對粒子的第二維向量xi的元素xij進行取整操作int(xij),即可得到分配給收貨點j的車輛k。對于車輛k的行駛路徑,按照粒子第三維的向量di的元素dij的大小順序來確定,即找出由車輛k完成配送的收貨點j,然后按照j所對應的dij的大小,從而確定車輛k的行駛路徑。

Step5:初始化算法參數(shù)值:粒子群規(guī)模為n=200,最大迭代步數(shù)為Nc=400次,s=3,ω=0.6,c2=0.9,c1=1.5,c3=1.0把粒子群分為四組,每組粒子數(shù)為50。

Step6:初始化讀寫同步鎖,根據(jù)分組數(shù)依次創(chuàng)建線程,并將算法參數(shù),各線程粒子數(shù)和最大迭代次數(shù)分配給各個線程,各個線程開始初始化粒子種群,即對物流配送車編號和物流配送車在各客戶的路徑次序進行初始化和編碼。

Step7:各個線程計算粒子的適應度,如果粒子最優(yōu)解優(yōu)于當前線程中的最優(yōu)解,則更新該線程最優(yōu)解,并轉(zhuǎn)Step10,否則轉(zhuǎn)Step11。

Step8:每個線程獲取讀寫同步鎖。

Step9:如果某個線程最優(yōu)解比目前的全局最優(yōu)解還要好,則當前線程的最優(yōu)解替換原來的最優(yōu)解,并判斷是否滿足閾值要求,如果滿足,說明已經(jīng)找到了當前線程中的最優(yōu)解,則當前線程的退出標志設置為真。

Step10:每個線程釋放讀寫同步鎖。

Step11:各個線程更新粒子的慣性權(quán)重比,進行粒子速度的更新,更新粒子的位置,更新完粒子的權(quán)重比、速度和位置后,線程迭代次數(shù)加1。

Step12:首先確定線程退出標志是真還是假?如果為假,在判斷迭代次數(shù)是否達到了最初設定的分線程的最大值,如果滿足上述條件中的任意一條,則結(jié)束該分組線程,否則,轉(zhuǎn)Step7。

Step13:等待各個線程結(jié)束,匯總得到最優(yōu)粒子,對最優(yōu)粒子進行解碼操作,便可得到最優(yōu)物流配送路徑方案。如圖3所示最優(yōu)物流配送路徑軌跡圖即最有行車路徑軌跡圖。表2所示為最優(yōu)物流配送路表。

表2為最優(yōu)物流配送路表

基于上述技術方案,本發(fā)明實施例提供的多配送中心物流運輸調(diào)度的方法,通過自適應慣性權(quán)重的并行粒子群算法,通過粒子在迭代的過程中能自適應地選擇加入分組的數(shù)量,同時對各個分組的粒子的慣性權(quán)重按照組內(nèi)的位置的變化進行自適應調(diào)整,各組運用多線程技術進行并行處理,粒子間采用新的信息共享方式,有較強的尋優(yōu)能力,時間耗費少,具有較高的收斂速度和收斂精度,功能滿足用戶需求。

本發(fā)明實施例提供了多配送中心物流運輸調(diào)度的方法,具有較高的收斂速度和收斂精度,功能滿足用戶需求。

下面對本發(fā)明實施例提供的多配送中心物流運輸調(diào)度的系統(tǒng)進行介紹,下文描述的多配送中心物流運輸調(diào)度的系統(tǒng)與多配送中心物流運輸調(diào)度的方法可相互對應參照。

請參考圖4,圖4為本發(fā)明實施例所提供的多配送中心物流運輸調(diào)度的系統(tǒng)的結(jié)構(gòu)框圖;可以包括:

基本參數(shù)獲取模塊100,用于獲取多配送中心物流運輸調(diào)度問題的基本參數(shù);其中所述基本參數(shù)包括物流配送中心坐標,客戶坐標,配送中心數(shù)量,車輛數(shù)量,車輛最大行駛里程,車輛開始配送時間;

配送路徑計算模塊200,用于根據(jù)所述基本參數(shù),利用自適應慣性權(quán)重的并行粒子群算法求解多配送中心物流運輸調(diào)度問題的數(shù)學模型,輸出最優(yōu)物流配送路徑方案;

其中,所述數(shù)學模型為N為客戶數(shù),M為配送中心數(shù),km為配送中心m的車輛數(shù),mk為配送中心m的第k輛車,Cv為單位距離車輛行駛費用,dij為客戶i到j的距離,Cd為司機單位費用;為配送中心m的第k輛車是否由客戶i到j,minz為物流運輸過程中的成本耗費。

可選的,所述配送路徑計算模塊200包括:

初始化單元,用于根據(jù)所述基本參數(shù)對自適應慣性權(quán)重的并行粒子群算法中的參數(shù)進行初始化;

慣性權(quán)重單元,用于計算各個線程計算粒子的慣性權(quán)重,若線程的粒子最優(yōu)解優(yōu)于當前線程中的粒子最優(yōu)解,則更新對應線程的粒子最優(yōu)解,若是則執(zhí)行讀寫同步鎖單元,若否則,執(zhí)行更新單元;

讀寫同步鎖單元,用于各個線程獲取讀寫同步鎖,并在獲取當前線程中的粒子最優(yōu)解后設置當前線程的退出標志為真,各個線程釋放讀寫同步鎖;

更新單元,用于更新粒子的速度和位置,并將線程迭代次數(shù)加1;并根據(jù)預定條件判斷對應分組線程是否結(jié)束;若是,則執(zhí)行配送路徑輸出單元,若否則執(zhí)行慣性權(quán)重單元。

配送路徑輸出單元,用于匯總各線程的粒子最優(yōu)解,得到最終的最優(yōu)粒子,對所述最優(yōu)粒子進行解碼操作,得到最優(yōu)物流配送路徑方案。

可選的,所述初始化單元包括:

粒子群算法初始化子單元,用于設置粒子群算法中分組數(shù)和各分組的最大迭代次數(shù),設定種群規(guī)模,計算各分組粒子數(shù);

線程初始化子單元,用于初始化讀寫同步鎖,根據(jù)設置的分組數(shù)依次創(chuàng)建線程,并將各線程粒子數(shù)和最大迭代次數(shù)分配給各個線程,各個線程初始化粒子種群,并初始化粒子一個隨機值。

可選的,所述慣性權(quán)重單元包括:

慣性權(quán)重子單元,用于按照慣性權(quán)重公式計算各個線程計算粒子的慣性權(quán)重wni(t);

其中,慣性權(quán)重公式為:

fni(t)=k×IBestXn(t)/pBestXni(t)

<mrow> <msub> <mi>w</mi> <mi>ni</mi> </msub> <mrow> <mo>(</mo> <mi>t</mi> <mo>)</mo> </mrow> <mo>=</mo> <msub> <mi>w</mi> <mi>max</mi> </msub> <mo>-</mo> <mrow> <mo>(</mo> <msub> <mi>w</mi> <mi>max</mi> </msub> <mo>-</mo> <msub> <mi>w</mi> <mi>min</mi> </msub> <mo>)</mo> </mrow> <mo>&times;</mo> <msup> <mi>e</mi> <mrow> <mo>-</mo> <mi>k</mi> <mo>&times;</mo> <mi>IBest</mi> <msub> <mi>X</mi> <mi>n</mi> </msub> <mrow> <mo>(</mo> <mi>t</mi> <mo>)</mo> </mrow> <mo>/</mo> <mi>t</mi> <mo>&CenterDot;</mo> <mi>pBrst</mi> <msub> <mi>X</mi> <mi>ni</mi> </msub> <mrow> <mo>(</mo> <mi>t</mi> <mo>)</mo> </mrow> </mrow> </msup> </mrow>

其中,IBestXn(t)為整個粒子群最優(yōu)適應度,pBestXni(t)為第i個粒子的個體最優(yōu)適應度,wni(t)為第i個粒子的慣性權(quán)重,k為常數(shù),wni(t)∈[wmin,wmax]。

可選的,所述更新單元包括:

速度更新子單元,用于按照速度更新公式更新粒子的速度;

位置更新子單元,用于按照位置更新公式更新粒子的速度;

其中,速度更新公式為:

vnid(t+1)=wni·vnid(t)+c1·rand()·(pBestXnid-xnid(t))+

c2·rand()·(IBestXnd-xnid(t))+c3·rand()·(gBestXd-xnid(t))

其中,位置更新公式為:

xnid(t+1)=xnid(t)+vnid(t+1)

按照速度更新公式更新粒子的速度;

其中,vnid(t+1)為第n個線程中第i個粒子第t+1次迭代后的速度,vnid(t)為第n個線程中第i個粒子第t次迭代后的速度,wni為第n個線程第i個粒子的慣性權(quán)重,xnid(t+1)為第n個線程第i個粒子第t+1次迭代后的位置,xnid(t)為第n個線程第i個粒子第t次迭代后的位置,pBestXni為第n個線程第i個粒子找到的最優(yōu)位置,IBestXn為第n個線程的最優(yōu)位置,gBestX為整個粒子群全局最優(yōu)位置,rand()為[0,1]之間均勻分布的平均數(shù);c1,c2,c3為學習因子,t為迭代次數(shù)。

說明書中各個實施例采用遞進的方式描述,每個實施例重點說明的都是與其他實施例的不同之處,各個實施例之間相同相似部分互相參見即可。對于實施例公開的裝置而言,由于其與實施例公開的方法相對應,所以描述的比較簡單,相關之處參見方法部分說明即可。

專業(yè)人員還可以進一步意識到,結(jié)合本文中所公開的實施例描述的各示例的單元及算法步驟,能夠以電子硬件、計算機軟件或者二者的結(jié)合來實現(xiàn),為了清楚地說明硬件和軟件的可互換性,在上述說明中已經(jīng)按照功能一般性地描述了各示例的組成及步驟。這些功能究竟以硬件還是軟件方式來執(zhí)行,取決于技術方案的特定應用和設計約束條件。專業(yè)技術人員可以對每個特定的應用來使用不同方法來實現(xiàn)所描述的功能,但是這種實現(xiàn)不應認為超出本發(fā)明的范圍。

結(jié)合本文中所公開的實施例描述的方法或算法的步驟可以直接用硬件、處理器執(zhí)行的軟件模塊,或者二者的結(jié)合來實施。軟件模塊可以置于隨機存儲器(RAM)、內(nèi)存、只讀存儲器(ROM)、電可編程ROM、電可擦除可編程ROM、寄存器、硬盤、可移動磁盤、CD-ROM、或技術領域內(nèi)所公知的任意其它形式的存儲介質(zhì)中。

以上對本發(fā)明所提供的多配送中心物流運輸調(diào)度的方法及系統(tǒng)進行了詳細介紹。本文中應用了具體個例對本發(fā)明的原理及實施方式進行了闡述,以上實施例的說明只是用于幫助理解本發(fā)明的方法及其核心思想。應當指出,對于本技術領域的普通技術人員來說,在不脫離本發(fā)明原理的前提下,還可以對本發(fā)明進行若干改進和修飾,這些改進和修飾也落入本發(fā)明權(quán)利要求的保護范圍內(nèi)。

當前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
平山县| 常山县| 花莲市| 贡嘎县| 津市市| 都昌县| 山丹县| 昂仁县| 麻栗坡县| 平和县| 阿瓦提县| 雅江县| 肇州县| 天门市| 基隆市| 牙克石市| 罗平县| 肥乡县| 兴仁县| 洪泽县| 大庆市| 哈尔滨市| 阳春市| 和林格尔县| 德江县| 梅州市| 玉龙| 讷河市| 兴安盟| 罗定市| 乐清市| 洞口县| 石台县| 商都县| 留坝县| 绥滨县| 武义县| 蒲江县| 玉树县| 闻喜县| 鹿邑县|