Skip to main content
. 2023 Nov 4;8(7):525. doi: 10.3390/biomimetics8070525
Algorithm 6: Tri-Criterion Selection Scheme
Inputs: N P=[X1,,Xn,,XN] Poff=[X1off,,Xnoff,.,XNoff]
01: Initialize PNext;
02: for n=1 to N do
03:      Assign Xn.Impr=0 for each n-th original learner stored in P;
04:      Calculate Xnoff.Impr of every n-th offspring learner stored in Poff with Equation (16);
05: end for
06: Construct the merged population PMG using Equation (17);
07: Sort the solution members in PMG ascendingly based on fitness values;
08: for n=1 to 2N do
09:    Calculate XnMG.Dis of every n-th solution stored in PMG with Equation (18);
10: end for
11: Randomly generate the integers of K1{1,N}K2{1,NK1} and K3=NK1K2;
12: for n=1 to K1 do /*Fitness criterion*/
13:    XnNextXnMG;
14:     PNextPNextXnNext;
15: end for
12: for n=K1+1 to 2N do
13:    Randomly generate α based on a normal distribution of N(0.9,0.05);
14:    Restrict the value of α in between 0.8 and 1.
15:    Compute the XnMG.WF of each n-th solution stored in PMG with Equation (19);
16:    Initialize the flag variable of each n-th solution stored in PMG as XnMG.Flag=0;
17: end for
18: for n=K1+1 to K1+K2  do   /*Diversity criterion*/
19:    Randomly select XaMG and XbMG from PMG, where a,b{K1+1,2N}ab, and XaMG.Flag=XbMG.Flag=0.
20:    Determine XnNext with Equation (20);
21:       PNextPNextXnNext;
22:    if XaMG is selected as XnNext then  /*Prevent the selection of same solution members*/
23:        XaMG.Flag=1;
24:    else if XbMG is selected as XnNext then
25:        XbMG.Flag=1;
26:     end if
27: end for
28: for n=K1+K2+1 to N  do   /*Improvement rate criterion*/
29:    Randomly select XeMG and XfMG from PMG, where e,f{K1+1,2N}, e f, and XeMG.Flag=XfMG.Flag=0.
30:    Determine XnNext using Equation (21);
31:       PNextPNextXnNext;
32:    if XeMG is selected as XnNext then /*Prevent the selection of same solution members*/
33:        XeMG.Flag=1;
34:    else if XfMG is selected as XnNext then
35:        XfMG.Flag=1;
36:     end if
37: end for
Output:   PNext=[X1Next,,XnNext,.,XNNext]