The detailed version of the optimization algorithm for the three-dimensional shelf space layout welcome to subscribe to this blog: https://blog.csdn.net/ccsss22/article/details/115290774
1. Problem description:
optimization goal
It is required that the higher the outbound frequency of the goods, the shorter the outbound time, that is, the cargo location is arranged closer to the outbound platform. For the goods with lower inbound and outbound frequency, the inbound and outbound time can be relatively long. .
The distributed storage of materials avoids the problem of uneven force of the cargo compartment caused by centralized storage. The heavy objects are on the bottom and the light objects are on the top, making the shelf more stable (minimum center of gravity).
Targeting at the principle of the relevance of classified goods, and the same kind of goods that are put into the warehouse first, they have priority when they are out of the warehouse. The
optimization objective function is constructed as follows:
The first objective function, f1 is the storage efficiency function
The second function f2, the meaning is the stability target of the shelf, stability.
mk is the weight of the cargo. Can be set to a random number between 0 and 30. But it is known. The meaning of this formula is that the higher the weight of the goods, the lower the position, the smaller the value of the function.
The third function is the objective optimization function of the category of goods you require.
The principle of the relevance of classified goods is the goal, and the same goods that are put into the warehouse first have priority when they are out of the warehouse. This means that the distance between similar goods is the shortest, that is, the same goods are placed as much as possible together. Through these three functions, the final optimization is realized, and finally, the genetic optimization algorithm is used to optimize.
2. Part of the program:
while gen < MAXGEN;
gen
if gen <= 1
Pe0 = 0.7;
pe1 = 0.05;
else
Pe0 = 0.7*1/(1+exp(-5*df));
pe1 =0.75-Pe0;
end
FitnV=ranking(Objv);
Selch=select('sus',Chrom,FitnV);
Selch=recombin('xovsp', Selch,Pe0);
Selch=mut( Selch,pe1);
phen1=bs2rv(Selch,FieldD);
for a=1:1:NIND
if gen == 1
tmps = POS_index;
Data1(a,:) = tmps(1:sum(Num_lb));
else
Data1(a,:) = floor(phen1(a,:))+1;
end
%Calculate the corresponding target value
[epls,f1,f2,f3] = func_obj2(Data1(a,:));
E = epls;
JJ(a,1) = E;
end
Objvsel=(JJ);
[Chrom, Objv]=reins(Chrom,Selch,1,1,Objv,Objvsel);
gen=gen+1;
%Save parameter convergence process and error convergence process and function value fitting conclusion
Error1(gen) = mean(JJ);
Error2(gen) = min(JJ);
fmax = max(JJ);
fmean = mean(JJ);
df = fmax-fmean;
if gen == 1
[f1,f2,f3]
end
if gen == MAXGEN-1
[f1,f2,f3]
end
end
3. Simulation conclusion:
A-011-046