# Self-adaptive Artificial Bee Colony with a Candidate Strategy Pool
## 3 The Proposed Algorithm SAABC-CS
### Scout Bee and Modified Neighborhood Search Operator  
In this stage, we utilize the method proposed by [PERSON] et al. in KFABC [19], adding two methods based on opposition-based learning(OBL) and the Cauchy approach, to generate two additional solutions. Then, we select the best solution from the random solutions, OBL solution, and Cauchy solution, to replace the abandoned solution. The random operator, the OBL operator, and Cauchy disturbance operator that produce the candidate solutions are described in Equations (1), (16) and (17).  
\[OX_{j}=Lower+Upper-X_{a,j} \tag{15}\]  
where the space's boundary is defined by Lower and Upper. j = 1, 2,..., D, and the abandoned solution is represented by \(X_{a}\).  
\[CX_{j}=X_{a,j}+Cauchy() \tag{16}\]  
where \(j=1,2,\ldots,D\), \(Cauchy()\) return a value from the Cauchy distribution.  
In addition, we use a neighborhood search operator in our method as a supplementary operator, which was suggested by [PERSON] et al. in MGABC [30]. The operator continues to use the data from the elite group solution and determines whether to employ the supplemental operator in this generation based on a certain possibility \(p\) (\(p\) is 0.1, as in MGABC [30]. The operator is shown in Equation (18).  
\[TX_{i}=r1\cdot X_{i}+r2\cdot X_{e1}+r3\cdot(X_{e2}-X_{e3}) \tag{17}\]  
where three solutions from the elite group, \(X_{e1}\), \(X_{e2}\), and \(X_{e3}\), were chosen at random and must be distinct from \(X_{i}\). As positive numbers drawn at random from (0,1), r1, r2, and r3 must also satisfy the restriction that r1 + r2 + r3 = 1. If \(TX_{i}\) is superior to \(X_{i}\), \(TX_{i}\) will take the place of \(X_{i}\).  
```
1 Randomly initialize and evaluate the population include SN food sources \(X_{1},X_{2},\ldots,X_{SN}\) and set FEs = SN;
2 Initialize parameter Prob, sFlag, fFlag, sCounter, fCounter, MR, q, p, LP;
3 while\(FEs\leq MaxYes\)do
4 Select a strategy using roulette wheel selection mechanism;
5 Select the elite Group belongs to top q-SN sorted by fitness value; /* Employed bephase */
6 for\(i\) = 1 to SNdo
7 Generate a candidate solution \(V_{i}\) using current strategy and evaluate it;
8 if\(f(V_{i})\leq X_{i}\)then
9 Substitute \(X_{i}\) to \(V_{i}\);
10\(trial_{i}\) = 0, \(sFlag_{i}\) = 1, \(fFlag_{i}\) = 0;
11 else
12\(trial_{i}\) = \(trial_{i}\) + 1, \(sFlag_{i}\) = 0, \(fFlag_{i}\) = 1;
13
14 end if
15
16 end for
17 Update \(sCounter_{j,k}\), \(fCounter_{j,k}\), j represent the jth strategy and k is the generation number; /* Onlooker bephase */
18 Calculate the probability \(p_{i}\) according to Equation (3);
19 Select the elite Group belongs to top q-SN sorted by fitness value;
20 for\(i\) = 1 to SNdo
21 Choose a food source \(X_{j}\) by the roulette wheel selection mechanism;
22 Generate a candidate solution \(V_{i}\) using current strategy and evaluate it;
23 if\(f(V_{i})\leq X_{i}\)then
24 Substitute \(X_{i}\) to \(V_{i}\); \(trial_{i}\) = 0, \(sFlag_{i}\) = 1, \(fFlag_{i}\) = 0;
25 else
26\(trial_{i}\) = \(trial_{i}\) + 1, \(sFlag_{i}\) = 0, \(fFlag_{i}\) = 1;
27 end if
28
29 end for
30 Update \(sCounter_{j,k}\),\(fCounter_{j,k}\), j represent the jth strategy and k is the generation number;
31 if(generation mod LP)==0 then
32 Update Prob using Equation (14) and (15);
33 Reset sFlag, nFlag, sCounter, fCounter;
34
35 end if /* Scout beephase */
36 ifMax(trial) \(\geq\) limitthen
37 Generate three solutions RX, OX and CX by Equations (1), (16) and (17) respectively;
38 Evaluate the three solutions and FEs = FEs+3;
39 Select the best one from RX, OX and CX to replace \(X_{i}\);
40 end if /* Modified neighborhood operator */
41
42
43 end for
```  
**Algorithm 2**The pseudo-code of SAABC-CS.