**1. Introduction**

Evolutionary algorithms (EAs) are nature inspired population-based stochastic search and optimization methods. EAs work on the principle of natural evolution. In EAs, selected population members based on a fitness/selection scheme, the so called parents, undergo perturbation by applying genetic operators, mutation and crossover, to produce offspring. A selection scheme is then adopted to select the fittest individuals with a certain probability among the parents and offspring for the next generation. Many EAs, such as genetic algorithms (GAs), differential evolution (DE), particle swarm optimization (PSO), firefly algorithm (FA), bee algorithm (BA), ant colony optimization (ACO), evolution strategy (ES) etc. have been designed using different genetic operators and selection schemes for the unconstrained optimization problems since 1959.

Differential evolution (DE) [1] has proven to be a simple and efficient EA for many optimization problems. A number of variants of DE were developed and are in practice for unconstrained/constrained optimization [2–9]. In DE, a random initial population of size *NP* is generated in the whole search space to a possible extent and the fittest/best with minimum function value in the initial population is found. It then invokes one of the different mutation strategies such as DE/rand/1, DE/current to best/2, DE/rand/2, DE/current-to-rand/1 to generate a mutant vector. For example in DE/rand/1, the weighted difference scaled by a scaling factor *F* ∈ [0, 2] between two population vectors is added to a target vector to generate a mutant vector. Afterwards, the parameters of mutant vector and target vector are mixed with a certain crossover probability *Cr* ∈ [0, 1] to produce the trial vector. Using the one-to-one-spawning selection mechanism, if the objective function value of the trial vector is less than the objective function value of the target vector, in minimization sense, then the trial vector replaces the target vector and becomes the parent for the next generation. The three steps of producing the mutant vector, the trail vector and comparison of the target and trial vectors are repeated until a stopping criterion is met. Also, the fittest/best individual is updated after every generation by comparing the function values of the trial vector, if it is successful in selection process, and fittest/best individual found so far. For more details of DE and different mutation strategies used in it, the readers are referred to [10,11].

The performance of the original DE algorithm is highly dependent on the mutation strategies and its parameters' settings [11–14]. During different evolution stages, different strategies and different parameters' settings with different global and local search capabilities might be preferred. Huang et al. developed a self-adaptive DE variant, SaDE [10]. SaDE automatically adapts the learning strategies and the parameters' settings during evolution. It probabilistically selects one of the four mutation strategies: DE/rand/1, DE/current to best/2, DE/rand/2, DE/current-to-rand/1 for each individual in the current population. J. Zhang and A. C. Sanderson developed another self-adaptive DE version, self-adaptive differential evolution with optional external archive (JADE) [15]. JADE too automates the parameters and employs the mutation strategy DE/current-to-pbest with the optional external archive. The strategy DE/current-to-pbest uses not only the information of the best solution, but also the information on the other good solutions. The external archive keeps record of the inferior solutions, which are then used for diversity among population members and avoiding premature convergence.

For recent advances in DE, the readers are referred to [16,17]. EAs suit a variety of applications in the fields of engineering and science [18–24]. Generally, EAs outperform traditional optimization algorithms for problems which are not continuous, non-differentiable, multi-modal, noisy and not well-defined. However, EAs are unconstrained optimization techniques. They are not capable to directly solve COPs having constraints of any kind (e.g., equality, inequality, linear and non-linear etc.). To overcome this problem, CHTs are used with EAs to handle all types of constraints. The last three decades have witnessed many techniques for handling constraints by EAs [20,25]. Michalewicz and Schoenauer [26] categorized them into five classes: preserving feasibility of solutions, adopting penalty functions, separating feasible solutions from infeasible ones, decoding, and hybridizing different techniques. However, according to no free lunch theorem (NFL) [27], a single CHT can not outperform all other CHTs on each problem. Same is true for different EAs as well. Thus, one has to try and combine different CHTs and EAs to design a suitable algorithm that can solve most of the problems. So keeping in mind the NFL theorem and some other individual problems of COPs, an ensemble of constraint handling techniques (ECHT) is combined with the basic version of DE in [28,29]. ECHT consists of four different CHTs: superiority of feasible solutions, self-adaptive penalty, *ε*-constraint handling technique and stochastic ranking. SaDE and JADE, being advanced self-adaptive variants, are both unconstrained search and optimization algorithms. Like other EAs, they also need some additional CHTs to solve constrained optimization problems (COPs).

In this work, the ECHT is implemented in the selection scheme, where offspring and parents compete for survival to next generation, of JADE and SaDE. As a result, constrained versions of JADE and SaDE, denoted by JADE-ECHT and SaDE-ECHT, are developed. The performance of JADE-ECHT and SaDE-ECHT is tested and compared based on feasibility rate (FR) and success rate (SR) on 24 COPs according to algorithms' evaluation criteria of CEC'06.

This rest of this paper is ordered as follows. The general COP and ECHT are detailed in Section 2. Section 3 presents the proposed modified algorithms, JADE-ECHT and SaDE-ECHT. Section 4 presents and discusses the experimental results obtained with JADE-ECHT and SaDE-ECHT. Finally, Section 5 describes the concluding remarks of this work.

## **2. Constrained Optimization Problem and ECHT**

This section first describes the constrained optimization problem to be considered in this work. It then illustrates the four CHTs of ECHT.

## *2.1. Constrained Optimization Problem (COP)*

Time, physical, and geometric etc. type constraints exist in most of the real world optimization problems. Such problems can be modelled as a COP. Mathematically, a COP, in case of minimization, can be formulated as follows [30]:

$$\begin{aligned} \text{Minimize} & f(\mathbf{x}), \ \mathbf{x} = [\mathbf{x}\_1, \mathbf{x}\_2, \dots, \mathbf{x}\_n]^T\\ \text{subject to} &\\ g\_i(\mathbf{x}) \le 0 \qquad i = 1, \dots, l, \\ h\_j(\mathbf{x}) &= 0 \qquad j = l+1, \dots, p, \\ l\_i \le \mathbf{x}\_i \le \mathbf{u}\_i, i = 1, 2, \dots, n. \end{aligned} \tag{1}$$

In problem (1), *f*(**x**) is called cost function which will be minimized. In case of maximizing the cost function, it needs to be multiplied with a negative sign. The *n*-dimensional vector **x** is called decision variable vector. There are *l* inequality and *p* − *l* equality constraints. An inequality constraint *gj*(**x**) becomes an active constraint, if *gj*(**x**<sup>∗</sup>) = 0, where **x**<sup>∗</sup> is global optimum solution, whereas equality constraints, *hj*(**x**) = 0, are active by default. Generally, equality constraints are converted into inequality constraints by |*hj*(**x**)| − ≤ 0, where is an acceptable tolerance for equality constraints. According to CEC'06 [30] evaluation criteria, is set to 0.0001 (in this work, we will also use the same value for ). *li* and *ui* are the lower and upper bounds of component *xi* of vector **x**. They form the whole search space *S*. The solution **x** ∈ *S* is referred to be feasible, if it satisfies all the equality and inequality constraints of problem (1); otherwise, it is called infeasible. We denote with *F* the set of all feasible solutions and normally *F* ⊂ *S*. The total constraints' violation for an infeasible solution is defined as [28,29]:

$$w(\mathbf{x}) = \frac{\sum\_{i=1}^{p} c\_i(g\_i'(\mathbf{x}))}{\sum\_{i=1}^{p} c\_i},\tag{2}$$

where

$$g\_i'(\mathbf{x}) = \begin{cases} \max\{g\_i(\mathbf{x}), 0\}, & i = 1, \dots, l \\\max\{|h\_j(\mathbf{x})| - \epsilon, 0\}, & j = l + 1, \dots, p. \end{cases} \tag{3}$$

where *ci*(= 1/*gmaxi* ) denotes weight parameter, *<sup>g</sup>maxi* denotes the maximum constraint violation of constraint *gi*(**x**), *i* = 1, ... , *l* obtained thus far. It maybe noted that *ci* changes during the evolution process. This helps in balancing how each constraint contributes in the problem irrespective of their different numerical ranges. The four constraints handling techniques which are used in this work are detailed as follows.

## *2.2. Superiority of Feasible Solutions (SF)*

As the name suggests, in SF feasible solutions have priority over infeasible solutions. SF was first suggested by Deb [31]. In this method, two solutions, a parent **x***i* and an offspring **x***j* compete. The parent **x***i* is considered better than the offspring **x***j*, if any of the subsequent three settings is met [31]:


## *2.3. Self-Adaptive Penalty (SP)*

Penalty methods are the most common approaches to handle constraints in the family of CHTs. In these techniques, in order to penalize an infeasible solution, the cost value of each infeasible solution and a penalty term corresponding to its constraints' violation are added, in minimization sense (subtracted in maximization sense). In SP [28], an attempt has been made to facilitate the algorithm to search for feasible solutions, in case there are few feasible solutions, and find the optimum, in case there are enough feasible solutions. For this purpose, two penalties are added to the cost of an infeasible solution. This help in identifying the best infeasible solutions in the existing population. The amount of the added penalties considers the number of feasible solutions that exist in the current population. Thus, if there are few feasible solutions in the combined population of parents and offspring, the amount of penalty to infeasible individuals with higher constraints' violation will be greater. On the contrary, with many feasible solutions, the fittest infeasible solutions in terms of cost are less penalized.

## *2.4. The ε-Constraint (EC) Handling Technique*

The *ε*-constraint (EC) handling technique [32] adopts the parameter *ε* to relax the active constraints. The parameter *ε* is updated until a fixed generation counter is reached. Afterwards, *ε* becomes 0 to ge<sup>t</sup> individuals with no constraints' violation (for detailed formulation of this technique, please see [28,32]).

## *2.5. Stochastic Ranking (SR)*

SR [33] stochastically balances overall constraints' violation and fitness function value. A solution is ranked based on its cost value, if it is feasible or if a randomly generated number is smaller than a probability factor *pf* ; otherwise, it is ranked on the constraints' violation. The proposed value of *pf* = 0.475. However, if this constant value is not used, then it decreases linearly from *pf* = 0.475 to *pf* = 0.025 from initial generation to the last generation.

In [28], the ECHT is tested with evolutionary programming (EP) and basic DE. In this paper, we hybridize ECHT with the advanced versions of DE, JADE [15] and SaDE [10]

## **3. JADE-ECHT and SaDE-ECHT**

In this section, we first give the algorithmic details of JADE-ECHT, which is then followed by the details of SaDE-ECHT.

## *3.1. JADE-ECHT*

JADE [15] is an updated version of DE. It is also an unconstrained optimization algorithm. So it needs some additional CHTs to solve COPs. In this work, we embed the four above discussed CHTs in the selection scheme of JADE to modify it for solving COPs. The whole procedure of the proposed technique JADE-ECHT, shown in Figure 1, is discussed as follows.

**Figure 1.** Flowchart of self-adaptive differential evolution with optional external archive (JADE)-ensemble of constraint handling techniques (ECHT).


$$\mathbf{v}\_{l,t}^i = \mathbf{x}\_{l,t}^i + F\_l^i.(\mathbf{x}\_{pbest,t}^i - \mathbf{x}\_{l,t}^i) + F\_l^i.(\mathbf{x}\_{r\_1^l,t}^i - \widetilde{\mathbf{x}}\_{r\_2^l,t}^i)\_{\prime}$$

where **<sup>x</sup>***pbest*,*<sup>t</sup>* is one of the 100*P*% best vectors. and **x***irl*2,*t* = **x***irl*1,*t* = **x***il*,*t* are chosen randomly from the existing population, *P* and from the union of current population and archived population, *P* ∪ *A*. The archive *A* retains the parent individuals that are unsuccessful in the selection scheme.

$$u\_{l,t}^i = \begin{cases} \begin{array}{l} v\_{l,t'}^i \\ x\_{l,t'}^i \end{array} & \text{if } (rand\_j[0,1] < \mu\_{CR} \text{ or } (j=j\_{rand}) \\\ x\_{l,t'}^i & \text{otherwise } . \end{cases} \tag{4}$$

In Equation (4), *vil*,*t* and *xil*,*t* are the *l*th components of the *i*th mutant and trial vectors in generation *t*.

**Step 5:** evaluate the cost and the total constraints' violation for every offspring in each subpopulation using Equations (1)–(3). Every offspring holds the cost and constraints values distinctly.

