1 Introduction
2 Methodology
2.1 Analysis of the problem
2.2 Establishment of mathematical model
2.2.1 Determination of objective function
2.2.2 Constraint description
2.3 Solution of model
2.3.1 Algorithm for solving the problem
2.3.2 Initial optimization of distribution path
2.3.3 Design of the distribution path algorithm based on the pickup cargo information
2.3.4 Inspection and display
3 Experiment and discussion
3.1 The example design
Street | Numbering (north-south) | Road | Numbering (east-west) |
---|---|---|---|
Tieshun Street | 1 | Hexing Road | 1 |
Tielu Street | 2 | Ngbin Alley | 2 |
Second Kangning Street | 3 | First Hexing Street | 3 |
Intersection x-coordinate | Intersection y-coordinate | Street number on the intersection | Road number on the intersection |
---|---|---|---|
2.127 | 35.746 | 2 | 4 |
− 3.5873 | 25.9683 | 2 | 5 |
− 12.0106 | 9.2487 | 2 | 7 |
− 22.8889 | − 5.1852 | 2 | 8 |
Index | Order 1 | Order 2 | Order 3 |
---|---|---|---|
Mark number of each distribution point | 1 | 1 | 1 |
Address of the x | − 18 | 6 | 0 |
Address of the y | 23 | 44 | 34 |
North-south road number | 1 | 2 | 2 |
East-west road number | 0 | 0 | 0 |
Volume qj /mm3 | 7,020,000 | 1,125,000 | 7,020,000 |
Weight hj /kg | 1 | 2 | 3 |
Upper limit of time T1 /h | 8 | 10 | 10 |
Lower limit of time T2 /h | 10 | 12 | 12 |
Index | Order 1 | Order 2 | Order 3 |
---|---|---|---|
Mark number of each distribution point | 2 | 2 | 2 |
Address of the x | − 42 | − 6 | − 36 |
Address of the y | 8 | 24 | 8 |
North-south road number | 0 | 2 | 0 |
East-west road number | 8 | 0 | 8 |
Volume qj /mm3 | 1,120,000 | 936,000 | 4,784,000 |
Weight hj /kg | 2 | 2 | 1 |
Upper limit of time T1 /h | 10 | 10 | 8 |
Lower limit of time T2 /h | 12 | 12 | 10 |
Type of vehicle | Speed of vehicle | Number of vehicle | Vehicle continued mileage Dk | Maximum carrying capacity Wk/mm3 | Maximum carrying weight Mk/kg (does not include the driver’s weight) |
---|---|---|---|---|---|
1.3-m truck | < 25 km/h | 1 | < 60 km | 1300–900–890 | 200 |
1.4-m truck | < 25 km/h | 2 | < 60 km | 1400–950–1050 | 300 |
3.2 Tabu search design based on MATLAB
Number of rows | Code |
---|---|
1 | if zzz(Si(i,j),1)==1 peiz1(i)=peiz1(i)+zzz(Si(i,j),7); |
2 | peiz2(i)=peiz2(i)+zzz(Si(i,j),6); |
3 | end |
4 | if zzz(Si(i,j),1)==1 |
5 | pei1(i)=pei1(i)+zzz(Si(i,j),7); |
6 | pei2(i)=pei2(i)+zzz(Si(i,j),6); |
7 | kong1(i)=at(1,2)-peiz1(i)+pei1(i); |
8 | kong2(i)=at(1,3)-peiz2(i)+pei2(i); |
9 | end |
10 | if zzz(Si(i,j),1)==2 |
11 | lan1(i)=lan1(i)+zzz(Si(i,j),7); lan2(i)=lan2(i)+zzz(Si(i,j),6); |
12 | end |
13 | if(kong1(i)>=0.5*at(1,2))&&(kong2(i)>=0.5*at(1,3))&&(lan1(i)==0)&&(lan2(i)==0) |
14 | Sii=[Sii;Si(i,:)];Ai=[Ai;i]; |
15 | break |
Number of rows | Code |
---|---|
1 | DistanV=0;n=size(s,2); |
2 | for i=1:(n-1) |
3 | DistanV=DistanV+20*dislist(s(1,i),s(1,i+1)); |
4 | end |
5 | DistanV=DistanV+20*dislist(s(1,n),s(1,1)); |
6 | P=[]; timecost(1,1)=0; P(1,1)=8; |
7 | for i=2:n |
8 | P(1,i)=dislist(s(1,i-1),s(1,i))*20/(at(1,4)*1000)+P(i-1)+0.1; |
9 | if(zzz(s(1,i),8)<=P(1,i))&&(P(1,i)<=zzz(s(1,i),9)) |
10 | timecost(1,i)=0; |
11 | if (zzz(s(1,i),8)-P(1,i))<=1 |
12 | timecost(1,i)=(zzz(s(1,i),8) -P(1,i)); |
13 | if (P(1,i)-zzz(s(1,i),9))<=1 |
14 | timecost(1,i)=(P(1,i)-zzz(s(1,i),9)); |
15 | else timecost(1,i)=2; |
16 | end end end end |
17 | F=0.35*DistanV+sum(timecost); |