【VRP問(wèn)題】基于節(jié)約算法CW求解帶硬時(shí)間窗的車輛路徑規(guī)劃問(wèn)題(VRPTW)
?


clear
clc
tic
%% 用importdata這個(gè)函數(shù)來(lái)讀取文件
rc208=importdata('rc208.txt');
cap=1000;
%% 提取數(shù)據(jù)信息
vertexs=rc208(:,2:3); ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?%所有點(diǎn)的坐標(biāo)x和y
customer=vertexs(2:end,:); ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? %顧客坐標(biāo)
cusnum=size(customer,1); ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? %顧客數(shù)
demands=rc208(2:end,4); ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?%需求量
h=pdist(vertexs);
dist=squareform(h); ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? %距離矩陣,滿足三角關(guān)系,暫用距離表示花費(fèi)c[i][j]=dist[i][j]
%% CW法構(gòu)造CVRP初始解
[init_vc,init_TD,init_vl]=init_CVRP(rc208,cap);
initNV=size(init_vc,1);
str1=['車輛行駛總距離 = ?' num2str(init_TD)];
disp(str1)
str2=['車輛使用數(shù)目 = ?' num2str(initNV)];
disp(str2)
%% 判斷最優(yōu)解是否滿足時(shí)間窗約束和載重量約束,0表示違反約束,1表示滿足全部約束
flag=Judge(init_vc,cap,demands);
%% 檢查最優(yōu)解中是否存在元素丟失的情況,丟失元素,如果沒有則為空
DEL=Judge_Del(init_vc);
%% 畫出配送路線圖
vertexs=rc208(:,2:3); ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?%所有點(diǎn)的坐標(biāo)x和y
draw_Best(init_vc,vertexs);
toc


?