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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人工智能 > 循环神经网络 >内容正文

循环神经网络

matlab遗传算法外卖配送优化(新的约束条件)【matlab优化算法十六】

發布時間:2024/1/8 循环神经网络 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 matlab遗传算法外卖配送优化(新的约束条件)【matlab优化算法十六】 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

模型

問題假設
在外賣配送過程中,會出現很多種不確定情況導致配送時間的浪費,如配送過程中物品損傷,如果配送車輛裝載過多,會導致物品擠壓破損;當天天氣情況的不穩定導致配送不及時;某交通路段發生交通事故等不可人為控制的情況。為了減少外部因素對本次配送路徑優化的影響,針對外賣配送過程中出現上述所描述的情況進行如下問題假設:
(1)一個客戶的訂單只能由一個配送員配送,且配送員接受一個訂單后,先完成該訂單才能接另一個客戶訂單。
(2)每條送餐路徑的配送時間小于配送車輛的最大行駛時間。
(3)忽略天氣、車禍、配送車輛行駛過程中無法使用等不可控的外界因素。
(4)確保每輛車從配送中心出發,完成配送任務后,最終返回到配送中心。
(5)每個客戶僅能服務配送一次。
(6)由于配送車輛在行駛過程中的速度是不可控的,為了可以方便計算路線規劃效果,將行駛速度規定為某個固定值。
2.2模型參數
模型主要參數如下:
N = {O}∪N+∪N-:表示所有節點的集合,包括配送中心(O),n個訂單中所有餐館的集合N +以及所有客戶的集合N-;
A = { (i,j) | i ∈ N , j ∈ N} : 表示所有弧的集合
R:表示訂單集合
其中訂單 r = (pr,dr),pr∈N+,dr∈N-
K:配送車輛數;
L:配送車輛最大行駛里程限制
Zrk:表示將訂單分派給車輛k時為1,否則為0
Xijk:表示第k輛車從結點i行駛到結點j時為1,否則為0
v: 表示配送速度
dij =|xi-xj|+|yi-yj|:表示兩點之間的距離
tij:表示結點i到結點j之間的行駛的時間
C1:單位距離成本(KM)
C2:單位懲罰成本(min)
Wi:配送員在節點i的停留時間
Tick:第k個配送員沒有在規定時間到達節點i時受到的懲罰時間
Li:節點i的最晚服務時間
Ti:配送員到達節點i的時間
2.3模型建立
針對本論文的目標,建立如下的模型:
Min Z = ∑k∈K(∑i∈N∑j∈NC1dijXijk) + ∑k∈K (C2 * ∑i∈N Tick) (1)
s.t.
∑k∈K Zrk =1,?r∈R (2)
確保每一張訂單有且只由一輛車來完成

Zrk=∑i∈N Xi(pr)k=X(pr)(dr)k=∑j∈N X (dr)jk ?k∈K (3)
確保每個訂單都能被選中的車進行正確服務

∑k∈K∑j∈N Xijk=1,?i∈N+∪N- (4)
確保每個結點最多被一輛車訪問一次

∑j∈N Xo+jk=∑i∈N Xio-k<= 1,?k∈K (5)
確保每輛車從配送中心出發,并最終返回到配送中心
可以為0或者1,如果是0說明這輛車沒有被使用

∑i∈N Xihk - ∑j∈N Xhjk = 0, ?k∈K,?h∈N (6)
確保車輛到達一個結點(非配送中心結點),一定會從該結點離開

∑ Xijk * dij ≦ L ,?k∈K,?i∈N,?j∈N (7)
車輛最大行駛里程約束

∑k∈K∑j∈N Xo+jk ≦ K (8)
確保分派出去的配送員數量小于配送員總數

Ti+Wi+tij = Tj ,?i∈N,?j∈N (9)
表示配送員從當前節點行駛到下一節點時,到達下一節點的時間為到達前節點的時間、在前節點停留時間和行駛時間之和

T_ick = {█(T_i - L_(i ),T_i - L_(i )>0@0,其他)┤ (10)
表示判斷第k個配送員是否需要接受懲罰

clear clc close all tic %% 用importdata這個函數來讀取文件 % shuju=importdata('cc101.txt'); load('zdz'); shuju=c101; % bl=importdata('103.txt'); bl=0; cap=20; %車輛最大裝載量 %% 提取數據信息E=shuju(1,5); %配送中心時間窗開始時間 L=shuju(1,6); %配送中心時間窗結束時間 zuobiao=shuju(:,2:3); %所有點的坐標x和y % vertexs= vertexs./1000; customer=zuobiao(2:end,:); %顧客坐標 cusnum=size(customer,1); %顧客數 v_num=6; %車輛最多使用數目 demands=shuju(2:end,4); %需求量 a=shuju(2:end,5); %顧客時間窗開始時間[a[i],b[i]] b=shuju(2:end,6); %顧客時間窗結束時間[a[i],b[i]] s=shuju(2:end,7); %客戶點的服務時間 h=pdist(zuobiao); % dist=load('dist1.mat'); % dist=struct2cell(dist); % dist=cell2mat(dist); % dist=dist./1000; %實際城市間的距離 dist=squareform(h); %距離矩陣,滿足三角關系,暫用距離表示花費c[i][j]=dist[i][j] %% 遺傳算法參數設置 alpha=100000; %違反的容量約束的懲罰函數系數 belta=900; %違反晚到時間窗約束的懲罰函數系數 belta2=60;%違反早到時間窗約束的懲罰函數系數 chesu=100;NIND=100; %種群大小 MAXGEN=500; %迭代次數 Pc=0.9; %交叉概率 Pm=0.05; %變異概率 GGAP=0.9; %代溝(Generation gap) N=cusnum+v_num-1; %染色體長度=顧客數目+車輛最多使用數目-1 n=cusnum/2+v_num-1; nn=cusnum/2; % N=cusnum; %% 初始化種群 % init_vc=init(cusnum,a,demands,cap); %構造初始解 %% 種群初始化 Chrom=InitPop(NIND,n); % Chrom=InitPopCW(NIND,N,cusnum,init_vc); %% 輸出隨機解的路線和總距離 disp('初始種群中的一個隨機值:')[VC,NV,TD]=decode(Chrom(1,:),cusnum,cap,demands,a,b,L,s,dist,chesu,bl,nn); % disp(['總距離:',num2str(TD)]); disp(['車輛使用數目:',num2str(NV),',車輛行駛總距離:',num2str(TD)]); disp('~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~') %% 優化 gen=1; figure; hold on;box on xlim([0,MAXGEN]) title('優化過程') xlabel('代數') ylabel('最優值') ObjV=calObj(Chrom,cusnum,cap,demands,a,b,L,s,dist,alpha,belta,belta2,chesu,bl,nn); %計算種群目標函數值 preObjV=min(ObjV); while gen<=MAXGEN%% 計算適應度ObjV=calObj(Chrom,cusnum,cap,demands,a,b,L,s,dist,alpha,belta,belta2,chesu,bl,nn); %計算種群目標函數值line([gen-1,gen],[preObjV,min(ObjV)]);pause(0.0001)%畫圖 最優函數preObjV=min(ObjV);FitnV=Fitness(ObjV);%% 選擇SelCh=Select(Chrom,FitnV,GGAP);%% OX交叉操作SelCh=Recombin(SelCh,Pc);%% 變異SelCh=Mutate(SelCh,Pm);%% 局部搜索操作 % SelCh=LocalSearch(SelCh,cusnum,cap,demands,a,b,L,s,dist,alpha,belta,belta2,chesu,bl);%% 重插入子代的新種群Chrom=Reins(Chrom,SelCh,ObjV);%% 刪除種群中重復個體,并補齊刪除的個體 % Chrom=deal_Repeat(Chrom);%% 打印當前最優解ObjV=calObj(Chrom,cusnum,cap,demands,a,b,L,s,dist,alpha,belta,belta2,chesu,bl,nn); %計算種群目標函數值[minObjV,minInd]=min(ObjV);disp(['第',num2str(gen),'代最優解:'])[bestVC,bestNV,bestTD]=decode(Chrom(minInd(1),:),cusnum,cap,demands,a,b,L,s,dist,chesu,bl,nn);disp(['車輛使用數目:',num2str(bestNV),',車輛行駛總距離:',num2str(bestTD)]);fprintf('\n')%% 更新迭代次數gen=gen+1 ; end %% 畫出最優解的路線圖 ObjV=calObj(Chrom,cusnum,cap,demands,a,b,L,s,dist,alpha,belta,belta2,chesu,bl,nn); %計算種群目標函數值 [minObjV,minInd]=min(ObjV); %% 輸出最優解的路線和總距離 disp('最優解:') bestChrom=Chrom(minInd(1),:); [bestVC,bestNV,bestTD]=decode(bestChrom,cusnum,cap,demands,a,b,L,s,dist,chesu,bl,nn); disp(['車輛使用數目:',num2str(bestNV),',車輛行駛總距離:',num2str(bestTD)]); disp('-------------------------------------------------------------')%% 畫出最終路線圖 draw_Best(bestVC,zuobiao,nn); % save c101.mat % toc

如需幫助V:zhangshu2274

總結

以上是生活随笔為你收集整理的matlab遗传算法外卖配送优化(新的约束条件)【matlab优化算法十六】的全部內容,希望文章能夠幫你解決所遇到的問題。

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