Self-adaptive opposition-based differential evolution with subpopulation strategy for numerical and engineering optimization problems

Opposition-based differential evolution (ODE) is a well-known DE variant that employs opposition-based learning (OBL) to accelerate the convergence speed. However, the existing OBL variants are population-based, which causes many shortcomings. The value of the jumping rate is not self-adaptively adjusted, so the algorithm easily traps into local optima. The population-based OBL wastes fitness evaluations when the algorithm converges to sub-optimal. In this paper, we proposed a novel OBL called subpopulation-based OBL (SPOBL) with a self-adaptive parameter control strategy. In SPOBL, the jumping rate acts on the individual, and the subpopulation is selected according to the individual’s jumping rate. In the self-adaptive parameter control strategy, the surviving individual’s jumping rate in each iteration will participate in the self-adaptive process. A generalized Lehmer mean is introduced to achieve an equilibrium between exploration and exploitation. We used DE and advanced DE variants combined with SPOBL to verify performance. The results of performance are evaluated on the CEC 2017 and CEC 2020 test suites. The SPOBL shows better performance compared to other OBL variants in terms of benchmark functions as well as real-world constrained optimization problems.


Introduction
Many challenging problems arise in real-world applications [1][2][3][4][5]. Single-objective optimization algorithms play an essential role in many fields. Although some real-world problems can be solved, they are limited by the lack of B Yuelin Gao gaoyuelin@263.net Jiahang Li 13704767290@163.com 1 computational power, and it is crucial to design an efficient algorithm. Bio-inspired computation can easily solve these problems. It is mainly divided into two categories: Evolutionary Computation (EC) and Swarm Intelligence (SI) [6]. Differential Evolution (DE) is the most outstanding evolutionary algorithm.
DE is a simple yet powerful population-based evolutionary algorithm for real-parameter optimization problems in the continuous domain, proposed by Storn and Price [7]. It has the advantages of simplicity, effectiveness, stability, etc. [8], and is widely used in real-world optimization problems [9], engineering applications [10], pattern recognition [11], feature selection [12], machine learning and other fields [13]. DE and its variants are used to solve complex problems. The common issues of DE are premature convergence and stagnation. These issues are closely related to population diversity. If the population diversity is very small, this means that the 123 DE converges very fast. Otherwise, if the population diversity is consistently big, DE will not converge to the global optimal. Hence, it is essential to find a trade-off between exploration and exploitation [14].
Since DE was proposed, many techniques have been combined with DE to improve its performance [9,10]. In the past decade, among different kinds of DE variants, oppositionbased DE (ODE) was one of the best [15]. ODE employed OBL on population initialization and generation jumping [16]. DE employed OBL to accelerate the convergence speed by comparing the fitness of a candidate to its opposite and choosing the fitter one. The mathematical proof of OBL was given in [17][18][19]. Different opposite solutions are always closer to the global optimal with higher probability than random solutions. The issue of OBL variants has received considerable critical attention. Since then, many researchers have designed OBL variants to enhance the performance of soft computing algorithms [20][21][22]. To save the number of fitness evaluations, Rahnamayan et al. proposed OBL with protective generation jumping (OBLPGJ) to stop the opposition if the opposite solution's success rate drops to a fixed threshold [23]. Rahnamayan et al. proposed quasi-opposition DE (QODE) [24]. In QODE, the opposite point was mapped to an interval. QODE reduced the expected distance between the optimum and its opposite. Ergezer et al. proposed quasireflection ODE (QRODE), which was the most cost effective opposition method with the highest probability of being closer to the optimal [18]. Wang et al. proposed generalized opposition-based DE (GODE) and successfully applied it to large-scale optimization problems [25]. Xu et al. proposed current-optimum-ODE (COODE) based on the optimal of the current population [26]. Seif et al. proposed the oppositionbased metaheuristic optimization algorithm (OBA), which introduced extended opposition and reflected extended opposition [27]. Most studies in OBL have only focused on the upper and lower bounds of the current search space. In [28], centroid opposition-based DE (CODE) was proposed, which computed opposition by involving the entire population. In [29], Gaussian distribution-based opposition was presented to solve the inverse problem of structural damage assessment. This opposition aimed to enhance the exploration ability during both the initialization and iteration process. Xu et al. proposed opposition-mutual learning using mutual learning to guarantee the trade-off between exploration and exploitation [30].
In the opposition, some opposite solutions are randomly mapped to the current search space [18,24,27], some are calculated according to the upper and lower bounds of the current search space [15,25], some are calculated according to the optimal of the current population [26], and some are calculated based on entire population [28]. The above OBL variants are all population-based, which calculate opposite solutions by entire population information if the condition of jumping rate is satisfied. No previous study has investigated subpopulation-based opposition. The following drawbacks affect OBL variants: (1) As the OBL variant follows a population-based strategy, fitness evaluations can be wasted if opposite individuals no longer enter the next generation during the optimization process [31]. (2) Up to now, far too little attention has been paid to parameter control strategy in OBL community.
This paper proposes a subpopulation-based OBL (SPOBL) with a self-adaptive parameter control strategy that mitigates all the limitations. Instead of using a population-based opposition, we employed a subpopulation-based opposition to reduce the waste of fitness evaluations. We found that the self-adaptive strategy is introduced by assigning jumping rate to each individual, it is possible to select some individuals as a subpopulation to perform the opposition. In the self-adaptive strategy, the subpopulation size is controlled to balance between exploration and exploitation during the evolutionary process. A generalized Lehmer mean is proposed, and the subpopulation size is dynamically controlled by a new parameter p. We carried out experiments on the CEC 2017 and CEC 2020 test suites [32,33]. The results of 29 benchmark functions and 3 real-world problems confirm the excellent performance of SPOBL compared to eight state-ofthe-art OBL variants. The main contributions of this paper are as follows: 1. A new OBL variant called SPOBL is proposed, which is competitive with eight state-of-the-art OBL variants. 2. The novel SPOBL can be combined with any DE variant and shows superior performance. 3. SPOBL not only performs well on benchmark functions, but also outperforms other algorithms in dealing with realworld optimization problems.
The rest of this paper is organized as follows. The next section reviews the canonical DE algorithm and OBL variants. The subsequent section introduces SPOBL and integrates it with DE. The experimental studies are shown next. Finally, the conclusions are given. search space. The population of DE is initialized as where rand(0, 1) is a random number whose value is uniformly distributed from (0,1). The size of X 0 is D × N P. N P is the population size. The population is expressed as i, j ∈ [a, b]}, G represents the number of iterations.

Mutation
After the population X G = {x G i |i = 1, 2, ..., N P} is initialized. Mutation operator is performed on the target vector .., D}. DE/rand/1 mutation strategy is as follows: where the indexes r 1 = r 2 = r 3 = i are numbers randomly selected from [1, N P]. F is a real positive control parameter scaling difference vector. The value of F is bigger, the diversity of the population is higher. The convergence speed is faster due to the value of F being smaller.

Crossover
To maintain the population diversity after mutation, the donor vector v i and the target vector x i are crossed under the probability of C R. The specific operations are as follows: where C R ∈ [0, 1] is the crossover rate, j rand is a random integer from [1, D]. The donor vector v i differs from its target vector x i due to the use of j rand . C R controls the number of variables from v i to u i , so the larger value of C R maintains the population diversity.

Selection
Selection is an approach after mutation and crossover. The trail vector u i (offspring) should make a one-to-one selection with their corresponding target vector x i (parent). The specific selection formula is as follows: where fitness(.) denotes the fitness function to be minimized. Therefore, if the new trial vector produces a value equal to or less than the objective function, it will replace the current generation's corresponding target vector.

Opposition-based DE
OBL was presented as a machine learning scheme for reinforcement learning [16]. In the past 15 years, various metaheuristic algorithms have been enhanced by OBL and its variants. The primary purpose behind OBL is to consider the fitness values between candidate and opposite candidate simultaneously to obtain a better approximation of the current best candidate [15,19,20]. Let P = (x 1 , x 2 , ..., x D ) be a point in D-dimensional space, where x j ∈ [a j , b j ], j = 1, 2, ..., D. The opposite pointP = (x 1 ,x 2 , ...,x D ) is defined by its segments.

Opposition-based population initialization
Due to a lack of prior knowledge, we can only generate the opposite population based on the initial population. The specific steps are as follows: • Use (1) to generate an initial population X .
• Use (5) to generate the opposite population O i, j = a j + b j − X i, j , i = 1, 2, ..., N P, j = 1, 2, ..., D, where O i, j and X i, j respectively represent the j th dimensional component of the i th vector of the opposite population and the original population. • Select the first N P individuals with the best fitness value from the {X ∪ O} to form the initial population.

Opposition-based generation jumping
In the same way, OBL has been introduced into the evolutionary process. The population can quickly converge to the local optimum during the evolutionary process. The value of the jumping rate J is used to control the number of times the OBL is executed during the evolutionary process. After a population has completed mutation, crossover and selection, it is determined whether the population performs opposition based on the jumping rate. Unlike the population initialization, in generation jumping, the bound of the opposite individual changes with the iteration progress, and the opposite individual is calculated based on dynamic bound.
where L j and U j are the lower bound and upper bound of jth variable in the current population.

OBL variants
In [24], QOBL was proposed, quasi opposite point was introduced as a uniformly random point between the center point and the opposite point. The quasi-oppositionx j qo is defined as follows: where rand(x, y) is a uniformly number between x and y. M j is mid-point of j-dimensional components,x j represents opposite point of j-dimensional components. After quasi opposition proposed, Ergezer et al. [18] introduced QROBL. The quasi-reflection oppositionx j qr is defined as follows: Similar to quasi-opposition and quasi-reflection opposition, Seif et al. designed two OBL variants [27]: extended oppositionx j eo and reflected extended oppositionx j reo are defined by In [26], Xu et al. proposed the current optimum opposition (COOBL), which used the information of the current best individual.
where x best, j is the best solution of current population. Generalized OBL was proposed by Wang et al. [25]. The GOBL is defined by: where k is a random number from [0,1]. In [28], Rahnamayan et al. proposed centroid opposition (COBL), which employed the information of the entire population (centroid point). The COBL is defined by:

Proposed algorithm
First, in the evolutionary process, the generation of the opposite population depends on the jumping rate. All individuals generate corresponding opposite individuals if the random number is smaller than the jumping rate, which is called the population-based opposite strategy. However, population-based opposition reduces the utilization of the opposite population when the global optimal is approached. Therefore, the subpopulation-based opposite strategy is proposed in this paper. Moreover, there is no fixed parameter setting suitable for all problems or at different stages of evolution of the same problem. The self-adaptive parameter control strategy can solve this problem. For these reasons, the subpopulation-based OBL (SPOBL) with a self-adaptive parameter strategy is proposed. SPODE is the proposed algorithm, which is the combination of DE and SPOBL.

Motivations
There are two primary motivations in this paper: (1) previous OBL variants are population-based, and there is no research on subpopulation-based. (2) The research on parameter control of OBL is not deep enough, so parameter control of OBL is a crucial problem in the OBL community. First, OBL and its variants aim to increase population diversity and thus accelerate the convergence of the algorithm. However, there has been a problem that the individual generated by the opposition cannot enter the next generation during the evolutionary process, so the opposition wastes fitness evaluations. Such individual is called insensitive individual, and this individual is commonly found in existing population-based OBL variants. To eliminate the influence of the insensitive individual on the algorithm, this paper proposes a subpopulation-based opposition framework from the individual's perspective. Figure 1 shows the definition of the insensitive individual, where x represents the original individual, and ox represents Fig. 1 Definition of the insensitive individual the opposite individual of x. f (x) and f (ox) represent the corresponding fitness values, respectively. It can be seen that when f (x) < f (ox), then x is the insensitive individual (only consider the problem of minimization). To eliminate the influence of insensitive individuals on the performance of the algorithm, a subpopulation-based opposition is proposed.
The subpopulation-based opposition selects the individuals to perform the opposition by their jumping rates. Hence, insensitive individuals still participate in opposition during the iteration, and the subpopulation-based opposition is also influenced by the individuals. Although populationbased and subpopulation-based oppositions are persistently affected by insensitive individuals, the latter is less impacted than the former. It also inspired us to design another strategy to further eliminate this effect.
Besides, OBL is a mechanism that allows the algorithm to explore more search regions, which will increase the exploration capability of the algorithm. To balance between exploration and exploitation, we proposed a self-adaptive parameter control strategy. This strategy is used to select individuals suitable for the opposition and enhances the exploitation ability by controlling the subpopulation size. At the beginning stage of evolution, the subpopulation size is large because exploration is more important than exploitation. However, overemphasizing exploration and ignoring exploitation will make the population converge too slowly or even not converge. As the iteration progresses, the subpopulation size should become smaller to eliminate the influence of insensitive individuals and finally balance between exploration and exploitation.

Subpopulation strategy
In [34], the population was divided into multiple subpopulations according to fitness values. Then different mutation strategies were assigned to each subpopulation. The subpopulation in this paper is randomly selected according to probability. The opposite subpopulation and the original population are combined. Then select the first N P fittest individuals to enter the next generation. In the improved algorithm, the jumping rate J is a vector and acts on individuals, while the jumping rate J of ODE is a number and acts on the population. The previous OBL variants were all population based, and the OBL variant in this paper is subpopulation based. The specific operation steps are as follows: • After the population X = {x i |i = 1, 2, ..., N P} is initialized, the jumping rate vector J = { j 1 , j 2 , ..., j N P } is generated using a Gaussian distribution with mean μ J , where μ J represents the mean value of the J, and its initial value is set to 0.3 [15].
• After the population undergoes mutation, crossover and selection, the subpopulation S X = {x j | j = 1, 2, ..., m < N P} with size m is generated according to J = { j i |i = 1, 2, ..., N P}. The corresponding individual becomes a member of the subpopulation, if a random number is less than j i . The subpopulation size is related to μ J . The relationship between the subpopulation size and μ J is mean(m) ≈ μ J · N P, mean(•) is the arithmetic mean of •. • Equation (13) performs on S X to generate the opposite subpopulation O S X = {x j | j = 1, 2, ..., m}. • Select the first N P fittest individuals from the set {X ∪ O S X} to enter the next generation and record the surviving opposite individuals' jumping rates as S J .
The individuals of the subpopulation are randomly selected according to their jumping rates. Random selection can increase the population diversity and maintain search efficiency. In each iteration, every individual is matched with a jumping rate. When the individual 's jumping rate is higher than a random number, this individual as the subpopulation member and participates in the opposition. μ J is the mean value of the entire population's jumping rate. With the increase of μ J , the subpopulation size also increases. It can be seen from the above that μ J is an important parameter that affects the subpopulation size. Thus, the generalized Lehmer mean controls the value of μ J in the self-adaptive strategy. In summary, the generalized Lehmer mean can control the subpopulation size during the evolutionary process. More details about self-adaptive parameter control strategy and generalized Lehmer mean are observed in the next subsection.

Self-adaptive parameter control strategy
As the iteration progresses, the individual jumping rate j i is generated by Gaussian random number with the mean value of μ J and variance of 0.1 [35]: S J denotes the set of jumping rates that successfully enters the next generation of individuals from O S X. The initial value of μ J is 0.3 and is updated with the following formula as the iteration progresses [15,22].
where Lehmer(S J , p) represents the generalized Lehmer mean of S J with p as a parameter, the pseudo-code of SPOBL is provided in Algorithm 1. The corresponding explanation of the pseudo-code is shown in Fig. 2 Step 3 Self-adaptive parameter control jumping rates that successfully enter the next generation of individuals. Then, S J is employed to generate parameters more suitable for the evolutionary process. In [35], c = 0.05 usually performs best.

Generalized Lehmer mean
We can conclude from the previous analysis that the subpopulation size is related to μ J , which determines the subpopulation diversity. The diversity will decrease [36] if the convergence speed is accelerated. To better balance between population diversity and convergence speed, the arithmetic mean and Lehmer mean were used to generate the crossover rate and scaling factor [35]. Compared to arithmetic mean, Lehmer mean provides a larger mean from the same group of data. To further extend the range of values of μ J , we introduced the generalized Lehmer mean with the parameter p for controlling the value of μ J during the evolutionary process. Thus, the subpopulation size is dynamically controlled according to parameter p of the generalized Lehmer mean during the evolutionary process. The calculation formula of the generalized Lehmer mean is shown below: Let n = 2, x 1 and x 2 are two positive numbers. In this case, partial derivative of generalized Lehmer mean of two positive numbers with respect to p is: where Eq. (16) is a monotonically increasing function of p. With the increase of p, the value of generalized Lehmer mean obtained from the same set of data gradually increases. According to the previous analysis, the subpopulation size is controlled by controlling the value of p.
Let p is a real number, the value of L is an interesting problem when p tends to infinity. So Eq. (16) can also be expressed in the following form: Step 1 Step 2 Step 3 Step 3 According to Eq. (18), the following conclusions can be drawn: The value of μ J is a crucial problem in the evolutionary process, which affects the algorithm's performance. In [15,22], the recommended value of jumping rate was [0.1,0.4]. On the one hand, if the value of p is too large, it will result in the individual jumping rate with a value of 0.6, thus the fitness evaluations will be wasted. On the other hand, if the value of p is too small, that will cause the value of the individual jumping rate to be 0.1, and the effect of opposition is not significant. Thus, we designed a numerical test and considered four schemes for adapting μ J to gain the best performance. These four schemes are shown below.
1. Positive: The value of p is 2, this scheme results in μ J rapidly grow. 2. Neutral: The value of p is 1, this scheme causes μ J to remain almost unchanged. 3. Negative: The value of p is 0.5, this scheme results in μ J rapidly decrease. 4. Time varying: The μ J is linear decreases from 0.6 to 0.1.
The specific results are shown in Fig. 3. The horizontal axis indicates the number of iterations and the vertical axis represents the value of μ J . We can see that when p equals 1, the value of μ J remains around 0.3 and the trend of μ J is parallel to the horizontal axis. However, when p is 0.5, the value of μ J rapidly decreases in the first 200 iterations, and after 200 iterations it also plateaus and the final value of μ J remains at 0.1. When the value of p is 1.5 and 2, the value of μ J also rapidly increases in the first 200 iterations. However, the speed of increment is different, and the larger the value of p, the faster μ J increases. When p equals 2, the final value of μ J falls around 0.6. Thus, the range of p is determined to be between 0.5 and 2 according to the results. The effect of the four schemes on the performance of SPODE has been further investigated in Sect. 4.2.4.
The generalized Lehmer mean can also be expressed as several common mean values. Without loss of generality, in this case, the generalized Lehmer mean is from Eq. (21), it can be seen that generalized Lehmer mean is the harmonic mean, geometric mean, arithmetic mean and contraharmonic mean when p = 0, p = 0.5, p = 1 and p = 2, respectively.

Subpopulation opposition DE
The SPOBL is proposed by combining the subpopulationbased strategy and the self-adaptive parameter control mechanism with the generalized Lehmer mean. SPODE is a combination of DE and SPOBL. Unlike other ODE variants, SPODE applies the jumping rate to the individual. SPODE executes SPOBL in every iteration according to a predefined jumping rate. If a random number generated according to the uniform distribution is lower than or equal to the jumping rate, the individual corresponding to this jumping rate will be selected as a subpopulation and performs opposition. The entire pseudo-code of SPODE is presented in Algorithm 2. Step 1 Initialization set up MaxFEs, G, μ J . generation the population P0 of NP individuals,

Computational complexity of SPODE
Step 2 Evolution Process while The termination criterion is satisfied do Step 2.1 Mutation Step 3 SPOBL J ind = f ind(rand(si ze( J)) ≤ J); S P = P(J ind, :); C S P = sum(S P)/length(S P); O S P = 2C S P − S P; select first NP fittest individuals from {P, O S P} record survive individuals as P G+1 , record jumping rate J of surviving individuals from O S P as S J .

Experimental setup
All the experiments were conducted on Windows 10 Pro-64 bit of a PC with Inter(R) Core(TM) i7-9700 CPU @ 3.0GHz. All the algorithms were implemented in the MATLAB 9.7 (R2019b) programming language.

Benchmark functions
We employed a set of 29 benchmark functions for explaining the performance of the proposed algorithm. The current wellknown single objective optimization test suites contain CEC 2005, 2013, 2014, and 2017. We chose the CEC 2017 as the test suite for this experiment. In the CEC 2017, there are two unimodal functions (F1, F3), seven simple multimodal functions (F4-F10), ten expanded hybrid functions (F11-20), ten composition functions (F21-F30). Please refer to [33] for more details about CEC 2017.

Comparison metrics
The fitness error value (FEV) evaluates the performance of the test algorithm, which can be defined as follows.
where F(x) represents fitness function,x is the best solution of test algorithm, x * is the global optimal of F(x).

Statistical test
To compare whether there is a significant difference in performance between the two algorithms, we used the pairwise comparison, which is the Wilcoxon rank-sum test with α = 0.05 significance level. The null hypothesis is that the proposed algorithm and the corresponding algorithm are independent. When the null hypothesis is rejected, we used three symbols to denote the relationship between SPODE and the corresponding algorithm.
1. +: The performance of the proposed algorithm is significantly better than that of the corresponding algorithm. 2. =: The performance of the proposed algorithm is not statistically significant than that of the corresponding algorithm. 3. −: The performance of the proposed algorithm is significantly worse than that of the corresponding algorithm.
In pairwise comparison, the family-wise error rate (FWER) loses control, such as the Wilcoxon test, should not be used to conduct various comparisons involving a set of algorithms [38]. Therefore, to determine whether the difference between multiple algorithms. We employ the Friedman test with Tukey-Kramer post hoc [39].

Experiment results
In this subsection, we designed six experiments to verify the performance of the proposed algorithm. In Sect. 4

Comparison for DE with OBL variants
In this part, the performance results on CEC 2017 at 30-D and 50-D are presented. Table 1 provides the results of mean and standard deviation and the Wilcoxon test. From the table, it can be seen that SPODE performs better than most ODE variants. For the unimodal functions (F1, F3), COODE and SPODE find the optimal on F1 and F3, respectively. Both SPODE and CODE converge to the local optimum on F1. This reveals that the exploitation ability of SPODE should be further studied. The performance of COODE on F1 and F3 rank first and second, which indicates that COODE has a high exploitation ability on the unimodal functions. For the multimodal functions (F4-F10), CODE outperforms the other algorithms on F5, F7, F8 and F10. SPODE only achieves the best performance on F6, ODE on F9 and COODE on F4. However, SPODE ranks second on F5, F7 and F8. It indicates that CODE has sufficient exploration ability on multimodal functions. SPODE is inspired by CODE, so SPODE is still very competitive in terms of multimodal functions. For hybrid functions (F11-F20), SPODE converges to global optimal on F11, F13, F14, F15 and F20. QRODE on F12 and F18. CODE on F16, F17 and F19. It demonstrates that SPODE has significant enhancement to performance due to the self-adaptive parameter control mechanism. For composition functions (F21-F30), SPODE has achieved superior results on F22, F23, F24 and F26. QODE has obtained the best performance on the F27, F28 and F30. QRODE on F25. CODE on F21 and F29. The composition functions have many local optima and many complex characteristics. Hence, the results denote that the proposed algorithm has a better balance between exploration and exploitation. The proposed mechanism facilitates better performance.
The Wilcoxon test results show that SPODE significantly finds more accurate solutions than ODE, QODE, QRODE, GODE, COODE, EODE and REODE on more than half of the functions. Compared with CODE, SPODE has significantly improved performance on 12 functions, but decreased performance on 4 functions. In other words, SPODE performs much better than other ODE variants. As shown in Table 2, the Friedman test results with Tukey-Kramer's post hoc are provided. It can be seen from Table 2 that SPODE ranks first among all algorithms, and the outperformance over GODE and COODE is statistically significant. The top three algorithms are SPODE, ODE, and CODE. All in all, SPODE is better than all comparison algorithms in performance on CEC 2017 at 30-D.
Moreover, we analyzed the results of Table 1 based on the function's properties. In unimodal functions (F1,F3), the performance gap of each algorithm is not significant. CODE dominates the best performance on hybrid functions. The performance of SPODE is better than other algorithms on hybrid functions (F11-F20) and composition functions (F21-F30). Table 1 shows that the proposed algorithm better balance between exploration and exploitation, and it can find better solutions than other algorithms when dealing with complex problems.
Furthermore, to clearly observe the convergence curves. We divided the comparison algorithms into two groups. The first group is based on the original OBL and contains QOBL, QROBL, EOBL and REOBL. The calculation of these OBL variants requires less information (only information about the current individual and the midpoint of the search space is needed). The second group includes OBL, COBL, COOBL and GOBL. In these OBL variants, more information is needed, such as the current best individual and centroid individual. Therefore, the second group is more complicated than that of the first group. The first and second groups are shown in Figs       In the first group, we can observe that SPODE achieves better solutions on F6, F8, F9, F13, F14, F15 and F19. SPODE also has the fastest convergence speed compared to ODE variants in the first group. The main reason is that the subpopulation strategy can select the proper individuals to participate in the opposition, and the first group ODE variants have not fully utilized the information in the search space, so SPODE demonstrates superior performance when compared with them. In the second group, a different situation is shown in Fig. 5. SPODE has the best solution on F6, F13, F14 and F15, and the final converged optimal of SPODE is not very different from other algorithms on these functions. However, SPODE still provides the fastest convergence speed. It reveals that the performance of the second group of ODE variants is better than that of the first group. Thus, SPODE has offered superior results than that of the eight ODE variants on CEC 2017 at 30-D.
The performance results on CEC 2017 at 50-D are presented to compare the difference between 30-D and 50-D. The trends in Table 3 are similar to those in Table 1 Table 4, the Friedman test results with Tukey-Kramer's post hoc are provided. It can be seen from Table 4 that SPODE ranks first among all algorithms, and the outperformance over QODE, GODE, EODE and REODE is statistically significant. The top three algorithms are SPODE, CODE and QRODE. In summary, SPODE outperforms all comparative algorithms on the CEC 2017 at 50-D. Moreover, we analyzed the results of Table 3 based on the function's properties. Compared with the results at 30-D, SPODE finds more accurate solutions at 50-D. SPODE significantly exhibits better performance in approximately half of the functions. In summary, the proposed algorithm shows a potent competitive edge on the CEC 2017 test suite at 30-D and 50-D.
To further study the convergence behavior of ODE variants, Figs. 6 and 7 show convergence graphs for eight CEC 2017 functions at 50-D. In Fig. 6, we can observe that SPODE achieves better solutions on these six functions. Similar convergence behavior can also be obtained in Figs. 4 and 6. SPODE demonstrates superior performance on both 30-D and 50-D. A different situation is shown in Fig. 7. SPODE obtains the best solution on F6, F8, F14, F16, F19 and F30. Although SPODE is trapped in a local optimum on F9. SPODE still provides the fastest convergence speed. Thus,

Run-time complexity
In this subsection, we used the widely known run-time complexity criterion to measure the efficiency of different algorithms [33]. In Tables 5 and 6, the run-time complexity results on the CEC 2017 at 30-D and 50-D are introduced. In Table 5, we can see that SPOBL slightly consumes more time than other OBL variants, and we can find a similar tendency on the CEC 2017 at 50-D in Table 6. SPODE has two main aspects that differ from other OBL variants in each iteration. First, the subpopulation strategy needs to select subpopulation based on the jumping rate, which is non-existent in other population-based OBL variants, so this strategy brings extra run-time. Moreover, the indexes of surviving individuals are calculated in the parameter control mechanism to guide the next generation of parameters, and this mechanism is executed in each iteration. As a result, SPOBL slightly consumes more run-time than other OBL variants, but the increased run-time is negligible compared to the performance improvement.

Evaluation on the components in SPODE
The new OBL variant is proposed in this paper includes two strategies: subpopulation-based opposition and self-adaptive parameter control. In this part, to compare the influence of different strategies on the proposed algorithm. SPODEwosa represents SPODE without a self-adaptive control strategy. SPODEwosp denotes SPODE without the subpopulationbased opposition. Table 7 provides the results of mean, standard deviation and Wilcoxon test of the algorithms. SPODE achieves higher accuracy for 18 functions, SPODEwosa for 5 functions and SPODEwosp for 6 functions. For unimodal functions (F1, F3), SPODE significantly enhances the performance than its competitors. For multimodal functions (F4-F10), SPODE achieves the best performance on half of the functions, and the dominance of SPODE's performance on multimodal functions is not significant compared to other types of functions. This indicates that SPODE's exploration ability is not enhanced despite its hybrid subpopulation and self-adaptive parameter strategies. For hybrid functions and composition functions (F11-F30), SPODE has achieved impressive performance improvements on these functions, except for F18 and F20. This means that SPODE has obtained a balance between exploration and exploitation on these functions. The average ranks of these algorithms on the 29 functions are 1.36, 2.16 and 2.36, respectively. It is clear that SPODEwosa performs much better than SPODEwosp.
From the results of the Wilcoxon test listed in Table 7, compared with SPODEwosa, SPODE has significantly improved performance for 21 functions. Compared with SPODEwosp, SPODE has significantly improved performance for 19 functions, but decreased performance for 6 functions. SPODEwosp statistically outperforms SPODE on multimodal, hybrid and composition functions (F4, F9, F18, F25, F27 and F28), which means that the self-adaptive parameter control strategy can achieve a good ratio between exploration and exploitation on complex functions. So, SPODE is significantly better than SPODEwosp and SPODEwosa. Figure 8 shows the convergence curves of SPODE, SPODEwosa and SPODEwosp. From the curve of F6, SPODE finds the global optimal, but both SPODEwosa and SPODEwosp fall into the local optimum. From the other subfigures, similar trends can be observed on F8, F11 and F29. SPODE and SPODEwosa achieve a similar performance. SPODEwosp converges to the local optimum. Both SPODE and SPODEwosa converge faster in the early stage and achieve the global optimal in the later stage, but SPODE always converges a little more rapidly than SPODEwosp. Moreover, it reveals that the influence of the subpopulationbased strategy on the proposed algorithm is more significant than that of the self-adaptive parameter control strategy. The main reason is that the subpopulation-based strategy can

Setting of newly parameter
The jumping rate J is the most important parameter in the ODE and its variants. It affects the frequency of the opposition. ODE will degenerate to DE if J = 0. In the subpopulation-based strategy, J acts on individuals, μ J represents the mean value of J. Moreover, the Gaussian distribution with μ J as the mean generates a jumping rate for each individual. Thus, μ J affects the subpopulation size according to each individual's jumping rate. This paper proposes a self-adaptive formula for μ J to better adapt the algorithm during the evolutionary process. Furthermore, the arithmetic mean is extended to the generalized Lehmer mean in the Eq. (15). In the generalized Lehmer mean, the degree of this mean is expressed by the value of p. In this subsection, a proper setting of this new parameter is provided.
In Table 8, the results of SPODE with different p and time-varying strategies are introduced. SPODE with p = 0.5 significantly outperforms other strategies on 19, 22, 22 and 21 functions. The performance superiority of SPODE with p = 0.5 gradually becomes more significant as the value of p increases. Compared with the time-varying strategy, generalized Lehmer mean with different p has significantly improved the performance on this test suite. In the previous section, p = 0.5 indicates the value of μ J rapidly decreases, which means that subpopulation size gets smaller and smaller during the evolutionary process. When the evolution enters the later stage, the opposition will waste the fitness evaluations, so SPODE with a negative strategy ( p = 0.5) has a more significant advantage than other strategies.
The box plots of fitness error values of all strategies on six functions are depicted in Fig. 9 to show the distribution of SPOBL solutions under different strategies. These six functions are from different categories. All of them have the same trends that the performance superiority of SPODE gradually becomes more significant and stable as the value of p increases. From the figure, we can see SPOBL with p = 0.5 demonstrates the capability to find promising solutions.

Comparison for LSHADE with OBL variants
In the previous part, we combined SPOBL with DE to obtain SPODE. To further verify the performance of SPOBL with DE variants, we combined SPOBL with two state-of-the-art DE variant: LSHADE [40] and jSO [41], and compared the effects of OBL variants on the performance of LSHADE and jSO.
Since DE was proposed, many famous DE variants have been proposed. SHADE was proposed and won 3rd place in the CEC 2013 competition [42], and LSHADE won 1st place in the CEC 2014 competition [40]. SHADE, as a basic powerful DE variant, has been extensively studied by researchers, such as SPS-LSHADE-EIG [43], LSHADE-ND [44], iLSHADE [45], LSHADE-EpSin [46], jSO [41], L_covnSHADE [47], LSHADE-cnEpSin [48], and LSHADE-RSP [49]. The jSO is an improved version of the iLSHADE algorithm [45], mainly with a new weighted version of mutation strategy. The new mutation strategy is called DE/current-to-pBest-w/1. At the early stage of the evolutionary, the smaller F is used, while the higher F is used at the later stage. For illustration simplicity, in this section LSHADE-SPOBL and LSHADE-OBL represent the algorithm after embedding SPOBL and OBL into LSHADE.
Moreover, we analyzed the results of Tables 9 and 11 based on the function's properties. In the unimodal functions (F1, F3), the performance gap between each algorithm is not significant. However, the performance of LSHADE-SPOBL is better than other algorithms on hybrid functions (F11-F20) and composition functions (F21-F30). LSHADE assisted by SPOBL performs better than LSHADE on F13, F19, F22, F23, F24, F26 and F27. It reveals that LSHADE-SPOBL achieves a well-balanced state between exploration  Bold values represent the best results in each row  Tables 13 and 15. jSO-SPOBL performs better than other jSO-OBL variants. To be precise, jSO-SPOBL significantly finds more accurate solutions than jSO-OBL, jSO-QOBL, jSO-QROBL, jSO-GOBL, jSO-COOBL, jSO-EOBL, jSO-REOBL, and jSO-COBL for more than half of the functions. Compared with jSO-QOBL, jSO-SPOBL has significantly improved performance on 22 functions. Compared with jSO-COOBL, jSO-SPOBL has significantly improved performance on 23 functions. Compared with jSO-GOBL, jSO-SPOBL has significantly improved performance on 21 functions. Although there is no obvious difference between jSO-SPOBL and jSO on most functions, the performance of jSO-SPOBL is still significantly better than that of jSO on the 4 problems. In other words, jSO-SPOBL performs much better than all other jSO-OBL variants.
As shown in Table 14, the results of the Friedman test with Tukey-Kramer's post hoc are provided. It can be seen from Table 14 that jSO-SPOBL ranks first among all algorithms, and the outperformance over jSO-OBL variants is statistically significant. The top three algorithms are jSO-SPOBL, jSO, jSO-EOBL. In Table 16, it can be concluded that jSO-SPOBL still surpasses other jSO-OBL variants, except for jSO-QOBL, jSO-QROBL, jSO-EOBL and jSO-REOBL. jSO-SPOBL performs better than these four jSO-OBL vari-ants on 22, 19, 18 and 20 functions at 30-D, respectively. jSO-SPOBL statistically finds the best performance of these four jSO-OBL variants on 12, 11, 13 and 11 functions at 50-D, respectively. However, this does not affect the significant performance of SPOBL among all OBL variants, which indicates that QOBL, QROBL, EOBL and REOBL embedding into jSO exhibit excellent performance with increasing dimensionality. Although SPOBL ranks first, the outperformance over jSO-OBL, jSO-GOBL, jSO-COOBL and jSO-COBL is statistically significant. The top three algorithms are jSO-SPOBL, jSO-QROBL and jSO-REOBL. Thus, jSO-SPOBL is better than all comparison algorithms in performance on CEC 2017 at 30-D and 50-D.
These improvements reveal that SPOBL benefits the performance of jSO and LSHADE. It can be explained by the following reasons. On the one hand, SPOBL employs a subpopulation strategy to select proper individuals to participate in the opposition, which can increase the probability of selecting individuals suitable for the opposition using the jumping rate of each individual during the evolutionary process. On the other hand, the self-adaptive parameter mechanism makes full use of the previous generation's information, since the parameters of the surviving individuals in the previous iteration are very valuable experience for parameter control. Therefore, SPOBL has good scalability which adapts to dif-123 Table 9 Results

Comparison for jSO with OBL variants
In Some observations can be obtained from the Wilcoxon test results in Tables 13 and 15. jSO-SPOBL performs better than other jSO-OBL variants. To be precise, jSO-SPOBL significantly finds more accurate solutions than jSO-OBL, jSO-QOBL, jSO-QROBL, jSO-GOBL, jSO-COOBL, jSO-EOBL, jSO-REOBL, and jSO-COBL for more than half of the functions. Compared with jSO-QOBL, jSO-SPOBL has significantly improved performance on 22 functions. Compared with jSO-COOBL, jSO-SPOBL has significantly improved performance on 23 functions. Compared with jSO-GOBL, jSO-SPOBL has significantly improved performance on 21 functions. Although there is no obvious difference between jSO-SPOBL and jSO on most functions, the performance of jSO-SPOBL is still significantly better than that of jSO on the 4 problems. In other words, jSO-SPOBL performs much better than all other jSO-OBL variants.
As shown in Table 14, the results of the Friedman test with Tukey-Kramer's post hoc are provided. It can be seen from Table 14 that jSO-SPOBL ranks first among all algorithms, and the outperformance over jSO-OBL variants is statistically significant. The top three algorithms are jSO-SPOBL, jSO, jSO-EOBL. In Table 16, it can be concluded that jSO-SPOBL still surpasses other jSO-OBL variants, except for jSO-QOBL, jSO-QROBL, jSO-EOBL and jSO-REOBL. jSO-SPOBL performs better than these four jSO-OBL variants on 22, 19, 18 and 20 functions at 30-D, respectively. jSO-SPOBL statistically finds the best performance of these four jSO-OBL variants on 12, 11, 13 and 11 functions at 50-D, respectively. However, this does not affect the significant performance of SPOBL among all OBL variants, which indicates that QOBL, QROBL, EOBL and REOBL embedding into jSO exhibit excellent performance with Table 11 Results of LSHADE with OBL variants on CEC 2017 at 50-D       These improvements reveal that SPOBL benefits the performance of jSO and LSHADE. It can be explained by the following reasons. On the one hand, SPOBL employs a subpopulation strategy to select proper individuals to participate in the opposition, which can increase the probability of selecting individuals suitable for the opposition using the jumping rate of each individual during the evolutionary process. On the other hand, the self-adaptive parameter mechanism makes full use of the previous generation's information, since the parameters of the surviving individuals in the previous iteration are very valuable experience for parameter control. Therefore, SPOBL has good scalability which adapts to different dimensional problems and portability which embeds into any DE variant.

Real-world constrained optimization problems
To validate the effectiveness of SPOBL, it is essential that the performance is evaluated on real-world optimization problems and is also compared against the popular existing algorithms. The CEC 2020 test suite contains non-linear and non-convex constrained optimization problems [32]. Moreover, the majority of problems of CEC 2020 originate from real-world applications.
In this subsection, SPOBL is compared with three up-todate metaheuristics which are all published on the proceedings of CEC 2020 and GECCO 2020. Among these three algorithms, SASS, sCMAgES and COL-SHADE rank first, second and third, respectively. SASS is an excellent constraint optimization algorithm, and it is an interesting problem to embed SPOBL into SASS and observe the performance improvement. Besides, this paper discusses a new OBL, so there is not much discussion on constraint handling techniques. Since SPOBL is an OBL variant and is not an algorithm for solving constrained optimization problems, this section embeds SPOBL into SASS and the algorithm is denoted as SASS-SPOBL. In this subsection, the abovementioned algorithms are run 25 times on each problem. The max fitness evaluations and performance evaluations are the same as [32]. The mean, std, median, best and worst values of fitness are shown in the following subsection.

Planetary gear train design optimization problem
This problem is concerned with the design of the gear train to determine the number of teeth on each gear to obtain a velocity ratio between the input and output shafts [53]. The main objective of this problem is to minimize the maximum error in the gear ratio. Six integer variables and 11 constraints are contained in this problem. More details of this problem can be found in [32]. In Table 17, the outcomes of planetary gear train design optimization problem are reported for all algorithms. It can be seen that the performance of SASS-SPOBL is better than other algorithms. The top three mean fitness values are 0.529216, 0.530809 and 0.541026, which are SASS-SPOBL, sCMAgES and COLSHADE. SASS-SPOBL can yield a significant minimum fitness value of 0.525769, which is lower      than that of other algorithms. It means that SASS-SPOBL has a better performance than its competitors on this problem.

Four-stage gear box problem
This problem's essential purpose is to minimize the gear box weight. The mixed-integer nonlinear programming formulation of this problem contains 22 design variables and 86 nonlinear constraints. Table 18 shows the result of a four-stage gearbox problem. The best fitness values obtained by SASS-SPOBL and COL-SHADE can reach 35.35923. Besides, the best and std values found by SASS-SPOBL are smaller than those obtained by other metaheuristics. It indicates that COLSHADE is the best algorithm for solving this problem. Besides, it also shows that SASS-SPOBL cannot significantly outperform the comparison algorithms in all problems due to the complexity of the real-world problems.

SOPWM for 13-level inverters
Synchronous optimal pulse-width modulation (SOP) is an up-and-coming technique for medium-voltage high-power drives. An optimization technique is used to minimize the harmonic distortion of the machine stator current while determining the switching angles. SOPWM can be expressed as a scaleable constrained optimization problem. For different levels of frequency inverters, the SOPWM problem is formulated by the following [32]. Minimize: subject to: with bounds: Table 19 shows the best results by these algorithms. The four statistical values found by SASS-SPOBL are superior to the other algorithms, except for the best value. Moreover, the std value of SASS-SPOBL is smaller than that of the rest approaches, which means that SASS-SPOBL is more stable than other competitors. Therefore, the SASS-SPOBL is a very promising method to handle this problem.

Conclusions
In the OBL family, the opposition operator is very important. The opposition operator randomly maps the population to another location in the search space to increase the convergence speed of the algorithm. Many OBL variants are population based and can only ensure either exploration or exploitation. When they converge to the later stage, they will waste the fitness evaluations. Many strategies aim to reduce waste. However, the individual's information on the opposition operator has a great influence on the effect of the operator, but there is no research concentrating on it. To achieve a better balance between exploration and exploitation, we proposed a novel OBL variant called SPOBL, which is subpopulation-based opposition. However, in the past years, many OBL variants have been proposed to enhance the performance of metaheuristic algorithms. The populationbased opposition still has many disadvantages: (1) waste the fitness evaluations, and (2) select suitable parameters for OBL. The main idea of this paper is to overcome the above shortcomings. To reduce the calculation redundancy               of fitness evaluations, we presented a subpopulation-based opposition instead of population-based opposition. Also, we applied a self-adaptive parameter control strategy with generalized Lehmer mean in SPOBL to balance between exploration and exploitation during the evolutionary process. The performance of the proposed algorithm is verified on the CEC 2017 and CEC 2020 test suites. Eight state-of-theart OBL variants are compared in experiments to illustrate the effectiveness of the proposed algorithm. The results confirm that SPOBL has a significant improvement compared with other OBL variants, but also show that SPOBL can be applied to any advanced DE variant to improve the corresponding algorithm's performance.
Future research directions: (1) apply SPOBL to multiobjective EAs, (2) Apply SPOBL to other metaheuristic algorithms and compare their performance, (3) analyze the convergence behavior of subpopulation-based opposition and (4) design a novel OBL variant which aims to balance between exploration and exploitation.

Conflict of interest
We declare that we have no financial and personal relationships with other people or organizations that can inappropriately influence our work, there is no professional or other personal interest of any nature or kind in any product, service and/or company that could be construed as influencing the position presented in, or the review of, the manuscript entitled, "Self-adaptive opposition-based differential evolution with subpopulation strategy for numerical and engineering optimization problems".
Open Access This article is licensed under a Creative Commons Attribution 4.0 International License, which permits use, sharing, adaptation, distribution and reproduction in any medium or format, as long as you give appropriate credit to the original author(s) and the source, provide a link to the Creative Commons licence, and indicate if changes were made. The images or other third party material in this article are included in the article's Creative Commons licence, unless indicated otherwise in a credit line to the material. If material is not included in the article's Creative Commons licence and your intended use is not permitted by statutory regulation or exceeds the permitted use, you will need to obtain permission directly from the copyright holder. To view a copy of this licence, visit http://creativecomm ons.org/licenses/by/4.0/.