資源簡介
本文件共包含5個.m文件,完成了阿里巴巴最后一公里極速配送EC訂單配送的任務(wù),經(jīng)測評程序可知,時間控制在20萬左右。并且包含了官方提供的數(shù)據(jù)

代碼片段和文件信息
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%下面程序是對O2O商戶的貨物進行規(guī)劃安排
%要求1?每個快遞員必須得從網(wǎng)店出發(fā)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%?根據(jù)路線長度,配送點服務(wù)時間,初始化快遞員的狀態(tài)
??%當(dāng)?shù)诙械淖帜敢訟或者S開頭時,第三列、第四列均為0,第五列為正;
??%若以B字開頭,第三列,第四列時間根據(jù)實際情況輸入,第五列為負(fù);
??%S1S2S3S4S5S6分別為123456變量
?fid=fopen(‘out_solution1.xls‘‘a(chǎn)+‘);
?m=0;
?Flag=0;
?for?i=1:length(DepartRoute)
??????m=m+1;
??????S3=0;
??????S4=0;
??????S1=Courier_id{1}{m};
??????for?j=1:length(DepartRoute{i})
????????Flag=Flag+DTotalTime{i}(j);
????????if?Flag>720
???????????Flag=DTotalTime{i}(j);
???????????m=m+1;
???????????S3=0;
???????????S4=0;
%?????????elseif?j==length(DepartRoute{i})
???????????????%?m=m+1;
%?????????????????S3=0;
%??????????????????S4=0;
????????end
????????
????????
???????S1=Courier_id{1}{m};
????????
%??????????if?j==length(DepartRoute{i})
%???????????Flag=0;
%???????????m=m+1;
%???????????S1=Courier_id{1}{m};
%???????????end
???????????????
??????????for?k=1:length(DepartRoute{i}{j})
??????????????%%每個快遞員選擇不同的路線,保證路線總時間不會超過720
??????????????S2=Site_id1{i};
??????????????S5=Demand{i}(DepartRoute{i}{j}(k));
??????????????S6=Order_id4{OrderId{i}(DepartRoute{i}{j}(k))};
??????????????if?S5>0?
??????????????????%以a+方式創(chuàng)建文件out_solution.csv
??????????????????fprintf(fid‘%s\t%s\t%d\t%d\t%d\t%s\n‘S1S2S3S4S5S6);
??????????????end
??????????end??%%初始化完成
??????????
??????????%%電商配送開始
???????????for?k=2:length(DepartRoute{i}{j})
?????????????%?S1=Courier_id{1}{m};S2=Site_id1{i};
??????????????S2=Spot_id4{OrderId{i}(DepartRoute{i}{j}(k))};
??????????????S6=Order_id4{OrderId{i}(DepartRoute{i}{j}(k))};
??????????????%計算兩點之間的距離
??????????????%第一個配送點與網(wǎng)點之間的距離
??????????????%SDistance=Distance(Lat{i}(k-1)Lng{i}(k-1)Lat{i}(DepartRoute{i}{j}(k))Lng{i}(DepartRoute{i}{j}(k)));%Distance(lat1lng1lat2lng2)
??????????????SDistance=D{i}(DepartRoute{i}{j}(k-1)DepartRoute{i}{j}(k));
??????????????S3=round(S4)+round(SDistance/(Speed));
??????????????S4=?S3+?round(ServeTime{i}(DepartRoute{i}{j}(k)));?
??????????????S5=Demand{i}(DepartRoute{i}{j}(k))*(-1);
??????????????if?S5<0
?????????????fprintf(fid‘%s\t%s\t%d\t%d\t%d\t%s\n‘S1S2S3S4S5S6);
??????????????end
???????????end??%%電商配送完成
??????end
??????Flag=0;
??end
%%配送員從D0001到D0415完成了電商的配送任務(wù),耗時234066分鐘(增加迭代次數(shù)后變?yōu)?33489分鐘)
%%計算總時間
for?i=1:length(DTotalTime)
AllTime(i)=sum(DTotalTime{i});
end
TT=sum(AllTime);
%%O2O商戶配送
%fid=fopen(‘out_solution3.xls‘‘a(chǎn)+‘);
%?現(xiàn)在需要將O2O的訂單按照時間先后順序插入到表格中來
%%?首先配送特殊的12個商戶(不可能在規(guī)定時間送達),標(biāo)號用SpecialPot保存
%%?其次,配送每個網(wǎng)點只對應(yīng)于一個商戶的情況,安排1個快遞員進行配送
??
%?for?i=1:length(DepartRoute{1})
%??????T(i)=sum(Demand{1}(DepartRoute{1}{i}));
%??end
%?
%???
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???????3805??2016-08-15?11:21??EC\1.csv
?????文件?????246541??2016-08-15?11:21??EC\2.csv
?????文件??????14575??2016-08-15?11:21??EC\3.csv
?????文件?????182926??2016-08-15?11:21??EC\4.csv
?????文件?????106115??2016-08-15?11:21??EC\5.csv
?????文件???????6010??2016-08-15?11:21??EC\6.csv
?????文件???????3074??2016-08-15?11:21??EC\Arrange.m
?????文件????????228??2016-08-15?11:21??EC\Distance.m
?????文件???????3358??2016-08-15?11:21??EC\Result.m
?????文件???????7452??2016-08-15?11:21??EC\VRPPSO.m
?????目錄??????????0??2016-08-15?11:21??EC
-----------?---------??----------?-----??----
???????????????574084????????????????????11
評論
共有 條評論