Semi-steady-state Jaya Algorithm

The Jaya algorithm is arguably one of the fastest-emerging metaheuristics amongst the newest members of the evolutionary computation family. The present paper proposes a new, improved Jaya algorithm by modifying the update strategies of the best and the worst members in the population. Simulation results on a twelve-function benchmark test-suite as well as a real-world problem of practical importance show that the proposed strategy produces results that are better and faster in the majority of cases. Statistical tests of significance are used to validate the performance improvement.


Introduction
For optimization of computationally hard problems and of problems that are mathematically intractable, machine-learning-based strategies such as evolutionary computation (EC) [1] and artificial neural network (ANN) [2] have seen significant success in numerous application areas. The "no-free-lunch theorem" [3] tells us that, theoretically, over all possible optimization functions, all algorithms perform equally well. In practice, however, for specific problems (particularly, hard problems), the need for better and still better algorithms (and heuristics) remains.
The Jaya algorithm [4], one of the newest members of the evolutionary computation family, has seen remarkable success across a wide variety of applications in continuous optimization (see Section 2 below). Jaya's success can arguably be attributed to the following two features: (a) it requires very few algorithm parameters, and (b) compared to most of its EC-cousins, Jaya is extremely simple to implement. A user of the Jaya algorithm has to decide on suitable values for only two parameters -population size and the number of iterations (generations). Because any population-based algorithm (or heuristic) must have a population size, and because the user of any algorithm/heuristic must have an idea of when to stop the process, it can be argued that the population size and the stopping condition are two fundamental attributes of any population-based heuristic and that the Jaya algorithm is parameterless. In this paper, we present an algorithm that improves over the Jaya algorithm by modifying the search strategy, without compromising on the above two qualities. The comparative performance of Jaya and the proposed method is studied empirically on a twelve-function benchmark test-suite as well as on a real-world problem from fuel cell stack design optimization. The improvement in performance afforded by the proposed algorithm is validated with statistical tests of significance. (Technically, Jaya is not an algorithm; it is a heuristic. However, following common practice in the evolutionary computation community, we continue to refer to it as an algorithm in this paper.) The remainder of this paper is organized as follows. A very brief outline of some of the most interesting previous work on the Jaya algorithm is presented in Section 2. Section 3 presents the proposed algorithm. Simulation results and statistical tests for performance analysis are presented in Section 4. Finally, conclusions are drawn in Section 5.

A brief overview of previous work on Jaya
A variation of the standard Jaya algorithm is presented in the multi-team perturbation-guiding Jaya (MTPG-Jaya) [5] where several "teams" explore the search space, with the same population being used by each team, while the "perturbations" governing the progression of the teams are different. The MTPG-Jaya was applied to the layout optimization problem of a wind farm. The Jaya algorithm was originally designed for continuous (real-valued) optimization, and most of Jaya's applications to date have been in the continuous domain. A binary version of Jaya, however, was proposed in [6], where the authors borrowed (from [7]) the idea of combining particle swarm optimization with angle modulation and adapted that idea for Jaya. The binary Jaya was applied to feature selection in [6]. Modifications to the standard Jaya algorithm include a self-adaptive multi-population-based Jaya algorithm that was applied to entropy generation minimization of a plate-fin heat exchanger [8], a multi-objective Jaya algorithm that was applied to waterjet machining process optimization [9], and a hybrid parallel Jaya algorithm for a multi-core environment [10]. Application areas of the Jaya algorithm have included such diverse fields as pathological brain detection systems [11], flow-shop scheduling [12], maximum power point tracking problems in photovoltaic systems [13], identification and monitoring of electroencephalogram-based brain-computer interface for motor imagery tasks [14], and traffic signal control [15].

The proposed algorithm
The new algorithm is presented in Algorithm 1 where, without loss of generality, an array representation with conventional indexed access is assumed for the members (individuals) of a population. At each generation, we examine the individuals in the population one by one, in sequence, conditionally replacing each with a newly created individual. A new individual is created from the current individual by using the best individual, the worst individual, and two random numbers -each chosen uniformly randomly in (0, 1] -per problem parameter (variable). The generation of the new individual x new , given the current individual x current , is described by the following equation (x new , x current , x best and x new are each a d-component vector): where xi, i = 1 to d, represent the d parameters (variables) to be optimized, rt,i,1 and rt,i,2 are each a random number in (0.0, 1.0], t indicates the iteration (generation) number, x best and x worst represent, respectively, the best and the worst individual in the population at the time of the creation of x new from x current . When x new i falls outside its problem-specified lower or upper bound, it is clamped at the appropriate bound.
In the original Jaya algorithm, the new individual replaces the current individual only if it (the former) is better than the latter. The present algorithm, however, accepts the new individual if it is at least as good as the current individual.
The original Jaya updates the population-best and the population-worst individuals once every generation. Algorithm 1, however, checks to see if x best i needs to be updated, and performs the update if needed, after every single replacement of the existing individual. A similar approach is adopted for updating x worst i , but in this case, an update is needed only for the case when the existing (current) individual is the worst one; this is because a replacement is guaranteed never to cause the objective (cost) function to be worse.
The simultaneous presence in the population of more than one best (or worst) individual (clones of the same individual and/or different genotypes with the same phenotype) presents no problem for the new algorithm, because the computation of the best (or worst) is always over the entire population, that is, it is never done incrementally.
We improve upon Jaya by changing the policies of updating the best and the worst members and also by changing the criterion used to accept a new member as a replacement of an existing member. The motivation for the first pair of changes comes from the argument that an early availability and use of the best and worst individuals should lead to an earlier creation of better individuals; this is similar to the idea behind the "steady-state" operation of genetic algorithms [16,17]. The logic behind the second change is to try to avoid the "plateau problem".
We call the proposed algorithm semi-steady-state Jaya or SJaya.

Simulation results
For studying the comparative performance of Jaya and SJaya, we use a benchmark test-suite comprising a dozen well-known test functions from the literature and a real-world problem of fuel cell stack design optimization. All of the thirteen problems involve minimization of the objective function value (fitness). The following metrics [18] are used for performance comparison: • Best-of-run fitness: the best (lowest), mean, and standard deviation (over 30 runs) of the best-of-run fitness values; • The number of fitness evaluations (FirstHitEvals) needed to reach a specified fitness value for the first time in a run: the best (fewest), mean, and standard deviation (over 30 runs) of these numbers; Algorithm 1: Pseudocode of the improved algorithm.
initialize the population; find the best and the worst individuals in the population, and initialize bestIndex to the index of the best individual and worstIndex to the index of the worst individual; while a pre-determined stopping condition is not satisfied do set the parameters (the r's), independently of one another, to random values between 0.0 and 1.0; for each individual in the population starting from the first index do create a new individual using the current individual, the individual at bestIndex, the individual at worstIndex, and the random parameters; if the new individual is at least as good as the current individual then replace the current individual with the new individual; if the current individual is better than the individual at bestIndex then update bestIndex to set it to the current index; end if the current individual's index is the same as worstIndex then find the worst individual in the population and set worstIndex to the index of the worst individual; end end end end • Success count: The number of runs (out of the thirty) in which the specified fitness level is reached (it is possible that the specified level is never reached with the given population size and the given number of generations).
The best-of-run fitness provides a measure of the quality of the solution, while the FirstHitEvals metric expresses how fast the algorithm is able to find a solution of a given quality. The two metrics are thus complementary to each other.

Results on the benchmark test-suite
The benchmark suite ( Table 1) includes functions of a wide variety of features and levels of problem difficulty, including unimodal/multimodal, separable/non-separable, continuous/discontinuous, differentiable/nondifferentiable, and convex/non-convex functions. For each test function, the population size and the number of generations were chosen based loosely on the problem size (number of variables) and the problem difficulty. No systematic tuning of the population size (PopSize) or the number of generations (Gens) was attempted; the values used in this study were found to be reasonably good across a majority of the problems after a few initial trials. Two PopSize-Gens combinations were used for each function (see Table 2). For d = 30, population sizes of 100 and 150 were used, with the corresponding number of generations being 3000 and 5000. For d = 2, the population sizes were 15 and 20, with 5000 generations used for both. Thirty independent runs of each of the two algorithms were executed for each PopSize-Gens combination on each of the test functions. A run is considered a success if it manages to produce at least one solution with a fitness within a distance of ±1.0e-6 from the true (known) global optimum, and the number of fitness evaluations corresponding to the first appearance of such a solution is recorded as the FirstHitEvals of that run. Tables 2 and 3 show the results of SJaya and Jaya, respectively, on the 12-function test-suite. In all the tables in this paper results are rounded at the fourth decimal place.
From Tables 2 and 3 we see that SJaya produces superior results than Jaya on all the metrics. Specifically, • On the best of best-of-runs metric, out of 24 cases, SJaya outperforms Jaya in 12 cases and is outperformed by Jaya in 2 cases, with 10 cases resulting in ties. In a few cases (such as the values of 3.0000 of the best of best-of-run fitnesses and of the mean of best-of-run fitnesses corresponding to the Goldstein-Price function for both SJaya and Jaya), differences exist at the fifth or a later decimal position but do not show in Tables 2 and 3. Step Alpine-1 Bohachevsky-3 Bohachevsky-2 Goldstein-Price   Table 3: Results of Jaya on the 12-function test-suite (each row corresponds to 30 independent runs). Most numbers are shown with rounding at the fourth place after the decimal. • On the mean of best-of-runs metric, SJaya is the winner with win-loss-tie figures of 18-1-5.
• On the mean FirstHitEvals metric, SJaya outperforms Jaya 19-1-4. Table 4 presents the t-scores and one-tailed p-values from Smith-Satterthwaite tests (Welch's tests) [19] (corresponding to unequal population variances) run on the data in Tables 2 and 3 for examining whether or not the difference between the means of Jaya and SJaya (for the best-of-run fitnesses metric and, separately, for the FirstHitEvals metric) is significant. Using the subscripts 1 and 2 for Jaya and SJaya respectively, we obtain the test statistic as a t-score given by , and the degrees of freedom of the t-distribution (this t-distribution is used to approximate the sampling distribution of the difference between the two means) as where the symbolsx, s and n represent mean, standard deviation and sample size, respectively. Note that even though 30 runs were executed in each case, the sample sizes are not always 30 (because not all runs were successful in all cases); for instance, for the Goldstein-Price function (executed with parameters PopSize = 15 and Gens = 5000), n1 = n2 = 30 for the mean best-of-run fitness calculation, whereas n1 = 5 and n2 = 6 for the mean FirstHitEvals computation. (To avoid division by zero, we cannot use the above formulas when both s1 and s2 are zeros or when any one of n1 and n2 is unity.) Using α = 0.05 as the level of significance, we see from the results in Table 4 that on the best-of-run metric, out of a total of 19 cases, ten cases produce a positive t statistic that corresponds to a one-tailed p-value less than α (the p-values were obtained with t-tests from scipy.stats). Thus the null hypothesis x1 =x2 must be rejected in favor ofx1 >x2 for those ten cases. The 19 cases include a lone negative t score, but the corresponding p-value is greater than 0.05. On the FirstHitEvals metric, we have a total of 19 cases (the two occurrences of 19 between best-of-run and FirstHitEvals is a coincidence), of which fourteen have a positive t with a p-value less than 0.05, and a single case has a negative t-score with a less-than-0.05 p-value.
The statistical tests in Table 4 provide performance comparison separately on each of the twelve functions (using two different algorithm parameter settings for each function). A measure of the combined performance on the 12 functions taken together can be obtained using a paired-sample Wilcoxon signed rank test on the 12-function suite. The results of this test for each of the two metrics are presented in Table 5 where the null hypothesis is that the Jaya mean and the SJaya mean are identical and the alternate hypothesis is that the former is larger than the latter. The second column in Table 5 shows the number of zero differences between SJaya and Jaya; n represents the effective number of samples obtained by ignoring the samples, if any, corresponding to zero differences (e.g., n is 24 − 5 = 19 for the mean of best-of-run fitness metric); W is the test statistic obtained as the minimum of W + and W −; α represents the level of significance (a value of 0.05 is used here); and the critical W for a given n and for α = 0.05 is obtained from standard statistical tables. The W statistic is seen to be less than the critical W . Arguing that the sample size is large enough for the discrete distribution of the W statistic to be approximated by a continuous distribution, we obtain the mean of W as mean = n(n + 1) 4 , and its standard deviation as std dev = n(n + 1)(2n + 1) 24 , and, under the normal distribution assumption, the z-statistic is obtained from The one-tailed p-value corresponding to the above z-statistic is obtained from standard tables of the normal distribution. From the results in Tables 4 and 5 we conclude that at the 5% significance level, SJaya is better than Jaya on the benchmark test-set.

Results on fuel cell stack design optimization
A proton exchange membrane fuel cell (PEMFC) [20,21] stack design optimization problem [22][23][24] is considered here. This problem has been investigated in the fuel cell literature as a problem of practical importance for which the global minimum is believed to be mathematically intractable [23]. This is a constrained optimization problem where the task is to minimize the cost of building a PEMFC stack that meets specific requirements. The objective (cost) function is a function of three variables Np, Ns, A cell : where Ns is the number of cells connected in series in each group; Np is the number of groups connected in parallel; A cell is the cell area; V load,r is the rated (given) terminal voltage of the stack; V load,mpp represents the output voltage at the maximum power point of the stack; P load,r is the rated (given) output power of the stack; P load,max is the maximum output power of the stack; Kn, K diff , Ka are pre-determined constants [23] used to adjust the relative importance of the different components of the cost function; and P represents a penalty term given by P = 0 if P load,max ≥ P load,r ; c(P load,r − P load,max ) otherwise. P load,max and V load,mpp are obtained numerically from the following equation by iterating over the load current i load,d (power is voltage times current): where Vst is the stack voltage, ENernst is the Nernst e.m.f., A and B are constants known from electrochemistry, ra is the area-specific resistance, and the i's represent different types of current densities (the subscript d is used to indicate density) in the cell [20,25]. The numerical values of the parameters are provided in Table 7. Tables 8 and 9 present results of the two algorithms on the fuel cell problem; 30 independent runs are executed for each of 13 PopSize-Gens combinations for either algorithm. For this problem, the success of a run is defined as the production of at least one solution with a fitness of 13.62 or lower [23]. For 12 of the 13 cases in Table 8, the mean of the best-of-run costs is better for SJaya than for Jaya. And, on the mean FirstHitEvals metric, SJaya outperforms Jaya 10 out of the 13 times. Again, SJaya beats Jaya 9-3-1 on the success count metric. Results of Smith-Satterthwaite tests (Table 10) show that for the best-of-run cost metric, the t-statistic is positive in all cases but one, but the one-tailed p-values are not less than 0.05. Thus we do not have a strong reason at the 5% significance level to reject the null hypothesis that the two means of the best-of-run costs are equal. For the best-of-run metric, the single negative t-score in Table 10 corresponds to a p-value that is close to 0.5, indicating no reason to consider Jaya to be significantly better than SJaya on that case. The FirstHitEvals metric shows SJaya to be significantly better (at the 5% level) in two of the 12 cases, the other cases being ties at that level of significance. Table 11 shows results of Wilcoxon signed-rank tests for the PEMFC problem. For each of the two metrics, the W -statistic is less than the critical W . Moreover, the one-tailed p-value computed from the z-score is less than 0.05 for both the metrics, thereby establishing a statistically significant (at the 5% level) superiority of SJaya over Jaya on the fuel cell problem.

Conclusions
This paper presented an improvement to the Jaya algorithm by introducing new update policies in the search process. The usefulness of the present approach is that, unlike most other improvements to Jaya reported in the literature, our strategy does not require the introduction of any additional parameter. It retains both the features that the original Jaya is famous for, namely "parameterlessness" and simplicity, while providing performance that is statistically significantly better (in terms of the solution quality) and/or faster (in terms of the speed of finding a near-optimal solution) than that produced by Jaya.