日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

遗传算法配送路径优化java_基于遗传算法的配送中心路径优化问题分析

發布時間:2024/3/26 编程问答 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 遗传算法配送路径优化java_基于遗传算法的配送中心路径优化问题分析 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1. 引言

VRP問題指車輛路線優化問題,一般而言,有一個或多個供應點,多個需求點有不同的貨物需求,分析如何組織貨車在這些需求點中進行配送從而達到總里程最小、配送時間最短、總成本最低等目標。VRP問題普遍被認為是NP問題(多難問題),目前有許多關于該問題的研究,并衍生出了更多的相關問題,比如VRPTW問題(帶時間窗的車輛路線問題)、CVRP (簡單的車輛路線問題)、VRPDP問題(追求最佳服務時間的車輛路線問題)等等。

關于VRPTW問題最早提出的是Solomon [1] 的啟發式算法研究,隨后有更多學者對該問題進行了深入的研究,Paessens [2] 為了降低該問題的復雜度,使用了更加簡單的結構體系,Wee-Kit [3] 通過對啟發式算法進行深入研究,利用多種啟發式算法的進行組合尋求近似最優解。Ombuki [4] 分別將最短時間和最少車輛定為優化目標,使用遺傳算法和禁忌搜索算法對該目標進行了求解,并發現該組合算法的求解結果優于各種單一算法的運算結果。謝秉磊 [5] 通過設立不同的約束條件設計出了能夠同時解決軟時間窗約束和硬時間窗約束的遺傳算法。張麗萍 [6] 等人通過交叉算子,提出了改進遺傳算法,在某種程度上能夠有效避免局部最優的現象出現。張海剛 [7] 使用改進免疫遺傳算法,實現了帶硬時間窗的車輛調度問題的優化改進。楊宇棟 [8] 引入客戶直接排列的解的表示方式,改進了模擬退火算法,提高了求解VRPTW問題的效率。吳勇民將我國現行的生鮮農產品網絡配送網絡與其他國家進行比較,找出缺點,提出問題,并提出了一種新的物流模式。高斌、張仁顧 [9] 在針對物流中心選址問題上提出了更加全面的選址方式,更加貼合實際,加入了更多的影響決策的因素,并建立出了非線性規劃模型,將多種方法進行了混合,從性質和數量上都進行了考慮,建立了更加完善的選址方式。索志林、王棟 [10] 在針對生鮮農產品在配送過程中的表現性質,提出了腐爛函數這個概念,并通過大量的實踐,提出了生鮮農產品在相同條件下時間對生鮮農產品自身價值的數學模型,并進行了證明。史曉原 [11] 根據生鮮農產品的固有特性,并參照相關腐爛函數,對其與時間的關系進行了分析,發現了他們之間的規律,并建立了數學模型,以最低成本,降低貨損率為目標,進行了分析,并使用遺傳算法進行了相關計算,并得出了相關的優化方案。李明澤 [12] 針對城市內農產品車輛路徑問題進行了探討,根據運輸貨物的特性對配送路線進行優化研究。姜大立 [13] 構造了車輛路徑問題的染色體表達,并以此建立了相關模型證明遺傳算法是求解該問題的較好方案。鐘惟鈺 [14] 通過對傳統遺傳算法求解過程進行分析后,發現收斂速度較慢,嘗試采用新的雙層編碼方式對種群進行優化,提高了遺傳算法運行時的收斂速度。周艷聰 [15] 同樣是針對車輛路徑問題的遺傳算法的收斂速度進行改善,通過對交叉算子引入局部競爭擇優機制保證種群的多樣性,減少相似個體的出現。金仙力 [16] 利用遺傳算法對多目標路徑優化問題進行探索,有效解決了服務點有序且帶時間窗約束條件的車輛路徑問題。

本文以某市配送中心為例,將所需要滿足的各個需求點抽象為一個點,假定每個需求點的需求量可一次配送滿足,每個需求點對應不同的需求重量以及對應的體積和時間窗約束,加入時間窗懲罰機制,并將懲罰成本加入到配送成本,同時考慮每個配送車輛的固定費用,以最小成本為最終優化目標,探究基于遺傳算法的帶有時間窗約束的車輛路線問題。

2. 問題描述

本文采用石家莊某物流企業所急需解決的問題作為優化目標,將其企業提供的基礎數據輸入程序,由于該市物流企業當前物流成本過高,客戶滿意度極低,使企業進入虧損狀態,該物流企業的配送中心共有2個,共有需求點18個,每個配送車輛的固定費用為150元,速度為40 km/h,每輛車每公里費用為15元,超過每個客戶要求的時間窗后每個小時的系數為1000,每個客戶的服務時間為15分鐘,加入對每個配送車輛負重空余的懲罰系數以及配送車輛的體積限制。該企業的配送中心以及需求點如圖1所示。

Figure 1. Distribution point and demand point location

圖1. 配送點與需求點位置

并建立優化模型如下:

目標函數:

min

f

=

50

?

i

=

1

z

(

volume

?

W

i

)

+

15

?

i

=

1

z

D

i

+

Z

?

150

+

1000

?

r

=

1

n

T

r (1)

約束條件:

i

=

1

z

r

=

1

n

a

i

r

=

1 (2)

W

i

=

w

i

?

a

i

r (3)

D

i

=

d

i

s

o

i

+

i

=

1

n

p

=

1

n

d

i

p

+

d

i

s

p

o (4)

t

r

=

d

i

s

o

i

+

a

i

r

?

i

=

1

n

p

=

1

n

d

i

p

v

+

0.25 (5)

T

r

=

i

=

1

r

b

i

(

timewindow

?

t

r

) (6)

W

i

volume (7)

a

i

r

?

i

=

1

n

v

n

V

o

l (8)

a

i

r 表示第r個需求點是否在第i條配送路線中,等于1時表示在該條路線上,等于0時表示不在該條路線上;

W

i 表示第i條配送路線上的需求點所需配送貨物的重量之和;

D

i 表示每條配送路線的距離;

d

i

s

1 表示從起點出發的距離;

d

i

p 表示同一條路線上各個需求點之間的距離;

d

i

s

o

i 表示車輛從配送中心o到達第一個需求點i的距離;

d

i

s

p

o 表示從最后一個需求點返回配送中心o的距離;

b

i 表示配送車輛到達需求點時是否滿足客戶要求的時間區間,等于1時不滿足,等于0時滿足客戶要求的時間區間;

t

r 表示每個需求點配送車輛的到達時間;

timewindow表示用戶滿意的達到時間的區間;

volume表示配送車輛最大貨物負載;

v

n 表示同一條配送路線上各個需求點所需貨物體積的總和;

V表示配送車輛最大可容納的貨物體積。

(2)表示每個需求點都在配送路線中,且只由一輛配送車輛進行配送,(3)表示第i條配送路線上的需求點所需配送貨物的重量之和,(4)每條配送路線的距離,(5)表示每個需求點配送車輛的到達時間,(6)通過將到達時間與用戶要求到達時間進行對比,(7)表示該配送路線未超過車輛額定載重,(8)表示配送路線上個需求點的貨物體積值之和未超過配送車輛最大可容納的貨物體積。

3. 遺傳算法運算

遺傳算法主要通過五個步驟對復雜問題進行運算,包括編碼、適應度函數、選擇、交叉、變異從而得到最接近最優解的近似解,能夠對非線性目標問題進行優化,同時對多個個體進行計算,有效避免陷入局部最優的情況出現。

(一) 編碼

通過將目標個體轉化為染色體的形式并以字符串表示,將該染色體放置在約束條件所形成的解空間中進行運算。編碼直接決定了后續步驟的實現方法,常用的編碼方法包括Grey編碼、實數編碼、多級參數編碼等等。本論文采用的是實數編碼,不需要進行編碼的轉換。

(二) 適應度函數

適應度函數是評價群體中個體好壞的標準,是進行自然選擇的唯一依據,一般是由目標函數加以變化得到,根據求解最大值還是最小值問題的不同,適應度的選擇也不同。

如6,3,11點需求量分別為4,1,2噸,車輛負重為6噸。

當配送路線計算到11時,超過負重上限,此時得到第一條配送路線,對比第一個需求點與哪個配送中心的距離最接近后,以此為起點,同理尋找返回的配送中心點,并計算其里程,從點11開始計算第二條配送路線,重復上述過程。

(三) 選擇操作

選擇操作是從就群體中選擇優良個體組成新的種群,得到下一代種群,個體的選擇概率與適應度相關,個體適應度值越高,被選中的概率越大。遺傳算法選擇操作有輪賭盤法、錦標賽發等多種方法。

(四) 交叉操作

交叉操作指從種群個體中最近選擇兩個染色體,通過兩個染色體的交換組合,把優秀的基因遺傳給子代,從而產生新的優秀個體。因為個體采用實數編碼,所以交叉操作采用實數交叉法,第K個染色體

a

k 和第L個染色體

a

l 在j位的交叉操作方法,b為[0,1]區間的隨機數。

隨機生成2個染色體如下:

4 12 6 7 2 5 10 14 13 19 3 8 11

3 12 13 9 5 4 14 6 11 10 78 1 2

隨機生成[0,1]之間的數,當這個數字小于交叉概率Pc時,與臨近的染色體進行交叉,例如為0.3,然后在[1,5]之間隨機選取一個整數為1,就從染色體中位于第一位的基因進行交叉,將兩者找到相同的基因進行交換得到:

|3|126 7 2 5 10 14 13 1 9 |4| 8 11

|4|12 13 9 5 |3|14 6 11 10 7 8 1 2

然后從第二位的基因繼續進行交換,循環10次,從而得到交叉之后的染色體,并將產生的個體存儲到子代的種群中,然后對產生的子代進行適應度計算,當子代的適應度比父代要差時,保留父代,保證不會出現退化解。

(五) 變異操作

變異操作的主要目的是保持種群多樣性。變異操作從種群中隨機選取一個個體,選擇個體中的一點進行變異從而產生更加優秀的個體,統稱下一代的群體為子代,上一代群體為父代。

將交叉后的子代進行變異操作,隨機生成[0,1]之間的數,當其取值大于變異概率Pm時,對該染色體進行變異操作,隨機生成一個數組,將該數組的第一位和第二位的數字所對應的交叉后產生的染色體的基因的位置進行調換。

(六) 終止條件

一般情況下,有以下幾種情況發生時計算會停止:達到目標時,達到設置的時間,達到設置的迭代次數,在相同多代內沒有任何變化時,系統自動停止。本文使用的方法是設置規定的迭代次數,當未達到最大次數時會重復上面的運算,然后選擇適應度最好的個體進行輸出。

4. 用遺傳算法研究配送中心路徑問題

其配送中心的坐標分別為(40,50)、(60,40),其他需求點的具體情況如下圖2、圖3所示。其中需求點的時間約束條件如表1所示。

Figure 2. Demand of distribution points and distribution time requirements

圖2. 配送點需求量及配送時間要求

Figure 3. Distribution of distribution point distance from demand point

圖3. 配送點距需求點距離分布

Table 1. Demand point time constraint

表1. 需求點時間約束

各個需求點距離配送中心的距離如圖3所示,如果與配送中心1的距離小于配送中心2的距離第三列為1,否則為2。

在求出各個配送點之間的距離之后,使用matlab進行計算,設定種群大小為150,迭代次數為200次,交叉概率為0.8,變異概率為0.3。

通過運算,迭代過程如圖4所示。

Figure 4. Calculation process

圖4. 迭代過程

得到優化后路線如表2,表3所示。

Table 2. Before optimization

表2. 優化前路線

Table 3. After optimization

表3. 優化后路線表

優化前、后路線如圖5、圖6所示。

Figure 5. Pre-optimization roadmap

圖5. 優化前路線圖

Figure 6. Optimized roadmap

圖6. 優化后示意圖

優化前該市配送中心一共需要8輛車,但很大程度上無法滿足需求點的時間窗要求,加入懲罰成本后,總成本為64,124元,在通過是用遺傳算法進行優化之后,不僅沒有增加車輛的使用,而且能在很大程度上滿足客戶對于時間的要求,加上時間窗懲罰成本后總成本為24,541元,在配送成本上有顯著的降低,達到了對配送中心配送路線優化的目的。

5. 結論

本文利用了遺傳算法的全局性和自適應性對NP問題的最優解進行尋找,以石家莊市某物流企業所提供數據作為基礎數據,著重考慮用戶的滿意度,在相同成本的基礎上,盡可能的滿足客戶的需求,通過建立模型并進行求解,科學地規劃配送路線,將優化前后的路線方案進行對比,結果表明獲得了較好的優化方案。

本文目前只針對企業較突出的問題進行研究,未來會通過加入更多約束條件和優化算法完善內容,比如應用神經網絡算法、數據分析模型進行需求預測,幫助提前安排用車,利用改進的遺傳算法提高路徑優化效率等。

基金項目

石家莊鐵道大學青年項目(Z6612536)。

總結

以上是生活随笔為你收集整理的遗传算法配送路径优化java_基于遗传算法的配送中心路径优化问题分析的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。