Adaptive Chemical Reaction Optimization for
Global Numerical Optimization

arXiv:1507.02492v1 [cs.NE] 9 Jul 2015

James J.Q. Yu, Student Member, IEEE, Albert Y.S. Lam, Member, IEEE, and Victor O.K. Li, Fellow, IEEE

Abstract—A newly proposed chemical-reaction-inspired metaheurisic, Chemical Reaction Optimization (CRO), has been
applied to many optimization problems in both discrete and
continuous domains. To alleviate the effort in tuning parameters,
this paper reduces the number of optimization parameters in
canonical CRO and develops an adaptive scheme to evolve them.
Our proposed Adaptive CRO (ACRO) adapts better to different
optimization problems. We perform simulations with ACRO on a
widely-used benchmark of continuous problems. The simulation
results show that ACRO has superior performance over canonical
CRO.
Index Terms—Chemical Reaction Optimization, continuous
optimization, adaptive scheme, metaheuristic, evolutionary algorithm.

I. I NTRODUCTION
Optimization techniques are frequently used in science
and engineering research and development. For example, the
problem of computing the contact force in mechanics can
be regarded as a quadratic programming problem [1]. In
economics, firms are usually expected to maximize their profit,
while customers aim to maximize their utilities. So the asset
price can be modelled by optimization techniques [2]. We
also encounter numerous optimization problems in our daily
lives, such as finding the shortest route to a destination while
avoiding traffic congestion [3], and assigning various tasks to
different time slots to maximize the amount of work done
before the deadline [4].
Chemical Reaction Optimization (CRO), proposed in [5],
is a chemical-reaction-inspired general-propose metaheuristic. CRO is variable population-based and it was initially
designed to solve combinatorial problems. Then Lam et al.
proposed a Real-Coded CRO (RCCRO) [6], which aims to
solve continuous optimization problems. In this paper, with
abuse of notation, we use CRO to refer to both CRO in [5]
and RCCRO in [6]. In a chemical reaction, the reactants tend
to release the excessive energy to the environment to approach
relatively lower energy states. CRO utilizes this tendency
and incorporates the chemical reaction ideas to construct an
optimization algorithm.
CRO has been applied to solve many optimization problems. Lam and Li adopted CRO to solve Quadratic Assignment Problem (QAP), Resource-Constraint Project Scheduling
Problem, and Channel Assignment Problem in [5]. The first
two are classical combinatorial problems while the last one
is a practical NP-hard combinatorial problem according to
[7]. They are used as benchmark problems for many other
algorithms [8][9] and CRO outperforms many of such algorithms [5]. Xu et al. [10] applied CRO to a task scheduling
978-1-4799-7492-4/15/$31.00 c 2015 IEEE

problem in grid computing, which is a multi-objective NPhard optimization problem. Lam et al. addressed the cognitive
radio spectrum allocation problem with CRO in [11]. Yu et
al. proposed a sensor deployment problem for air pollution
detection and solved it with CRO [12]. All these problems
mentioned are NP-hard combinatorial optimization problems
and CRO was shown to be effective and efficient in solving
these problems. Lam et al. also studied the convergence
characteristics of CRO in [13].
Lam et al. then proposed RCCRO to tackle continuous
problems [6]. They made three major modifications on the
structures of molecule and algorithm to make CRO applicable
to continuous problems. A classic benchmark set with 23
continuous functions were adopted for testing and the simulation results indicated that RCCRO outperformed most of the
other Evolutionary Algorithms (EAs) compared. Lam et al.
proposed a population transition problem for peer-to-peer live
streaming and applied CRO to solve the problem [14]. Yu et al.
proposed a CRO-based Artificial Neural Network (CROANN)
algorithm to train neural networks (NN) for classification [15].
CROANN also outperformed most previously proposed EAbased NN training algorithms. Yu et al. also studied different
perturbation functions for RCCRO in [16]. They compared
the Gaussian distribution function used in [6] with three other
distribution functions for the 23 benchmark functions and
provided guidelines for further RCCRO research.
According to our experience, proper parameter setting is key
for CRO to solve optimization problems efficiently. However,
we usually tune the parameters according to our experiences
and by trial and error. Moreover, there are no theoretical results
on parameter setting for EAs in general. To avoid the timeconsuming parameter tuning process, we may pursue adaptive
approaches. We developed a deterministic parameter control
scheme for CRO in [6], but this scheme is still lacking as it
only modifies the StepSize parameter of CRO deterministically
and there is no feedback to inform the modification. On
the contrary, adaptive parameter schemes have been proposed
for some other EAs and they allow one to minimize the
effort on parameter tuning and focus on the formulation of
the optimization problem and the design of the algorithm
operators.
This paper is focused on developing an adaptive scheme for
CRO. This new version of CRO with the adaptive scheme is
called Adaptive CRO (ACRO). ACRO reduces the number of
parameters defined in canonical CRO from eight to three, and
makes them adaptive to feedback information in the course of
searching. To evaluate its optimization performance, we use
ACRO to solve a set of benchmark functions mainly selected
from the latest IEEE CEC Real-Parameter Single Objective

Optimization Competition problem set [17].
The rest of this paper is organized as follows. In Section
II, we briefly introduce the framework of CRO. We present
ACRO with parameter adaptation in Section III, and Section
IV describes the benchmark problems used to examine the
performance of ACRO and the simulation configuration. The
comparisons with the canonical CRO are presented in Section
V. We conclude the paper in Section VI.
II. C HEMICAL R EACTION O PTIMIZATION
In this section, we introduce the general framework of CRO.
We consider a number of molecules in a container, with an
attached central energy buffer.
A. Molecule
A molecule is the basic operating agent of CRO. CRO
controls and manipulates a set of molecules systematically to
explore the solution space. Each molecule is characterized by
attributes such as the molecular structure, potential energy, and
kinetic energy. We relate chemical reactions to optimization
by assigning mathematical meanings to these attributes. In
a typical implementation of CRO, we include the following
attributes:
1) Molecular Structure: We denote the molecular structure
by ω, which represents the solution carried by the molecule.
The detailed structure of ω is problem-dependent, which
means that the configuration of ω is usually determined by the
encoding scheme of the problem. For different optimization
problems, ω can be a vector, a matrix, a graph, or a string
[18].
2) Potential Energy: We use PEω to denote the potential
energy (PE) of the molecule with molecular structure ω. In
CRO, PEω represents the objective function value of the
solution carried by the molecule, i.e., f (ω). So our goal of
optimization is to reduce PEω as much as possible. Since
“Every reacting system seeks to achieve a minimum of free energy” [19], the chemical reaction process drives the molecules
toward the lowest energy state on the potential energy surface
(PES).
3) Kinetic Energy: We use KEω to denote the kinetic
energy (KE) of the molecule with molecular structure ω. In
CRO, KEω is regarded as the tolerance of the molecule to
accept a worse ω ′ with higher PEω′ than the existing PEω .
The main purpose of introducing KE to CRO is to avoid the
algorithm from getting stuck in local optima. This will be
elaborated in Section II-C.
B. Energy Conservation Law
Energy transformation between different forms and conservation of energy are features which distinguish CRO from
other metaheuristics [6]. The law of conservation of energy
states that although energy is allowed to transform between
types, the total energy in an isolated system (i.e. the container
in CRO) shall remain constant. We use Etotal and E′total to
denote the total energy in the container before and after an
elementary reaction, respectively. Similarly, we denote the energy in the central energy buffer before and after an elementary

reaction by Ebuffer and E′buffer , respectively. In an elementary
reaction, consider that the original molecules ω1 , ω2 , ..., ωn
are transformed into new molecules ω1′ , ω2′ , ..., ωp′ . The total
energy before the change is given by
Etotal =Ebuffer + PEω1 + KEω1 + PEω2 + KEω2 + ...
+ PEωn + KEωn ,

(1)

and it will remain constant, i.e.,
E′total =E′buffer + PEω1′ + KEω1′ + PEω2′ + KEω2′ + ...
+ PEωp′ + KEωp′

(2)

=Etotal .
The transformation among Ebuffer , PE, and KE for CRO is
stated in [5] and interested readers can refer to [18] for more
details.
C. Elementary Reactions
There are four types of elementary reactions defined in
CRO, including on-wall ineffective collision, decomposition,
inter-molecular ineffective collision, and synthesis. We classify
the elementary reactions by the number of molecules involved
(see Table I). For uni-molecular reactions, only one molecule
is involved in the reaction as the reactant. For inter-molecular
collisions, two molecules act as the reactants of the reaction.
An elementary reaction may or may not change the total
number of molecules in the system. Constant population size
collisions do not change the number of molecules in the
container, while variable population size collisions increase
or decrease the number of molecules by one. A uni-molecular
reaction is triggered when a molecule collides with a wall of
the container, while an inter-molecular reaction corresponds
to two molecules colliding with each other. Moreover, only
successful reactions (subject to energy constraints) will modify
the molecular structures of the involved molecules. CRO modifies the molecular structures of the molecules to explore the
solution space with these elementary reactions. The detailed
information about these elementary reactions can be found in
[5] and [18].
III. ACRO
In this section we propose our new CRO with parameter
adaptation.
Canonical CRO has eight parameters, namely, initial population size (iniPopSize), initial molecular kinetic energy (iniKE),
initial central energy buffer (iniBuffer), molecular collision
rate (CollRate), energy loss rate (LossRate), decomposition
occurrence threshold (DecThres), synthesis occurrence threshold (SynThres), and perturbation step size (StepSize). These
parameters cooperate to control the performance of the algorithm.
In our proposed new CRO algorithm, we modify six
parameters of CRO, including iniKE, iniBuffer, LossRate,
DecThres, SynThres, and StepSize. We categorize them into
three classes: energy-related, reaction-related, and real-codedrelated as shown in Table II. We will discuss our modifications
in the following subsections. In general, we will simplify the

TABLE I
C LASSIFICATION OF E LEMENTARY R EACTIONS

Constant Population Size Collision
Variable Population Size Collision

Uni-Molecular Collision
On-wall Ineffective Collision
Decomposition

Inter-Molecular Collision
Inter-Molecular Ineffective Collision
Synthesis

TABLE II
CRO PARAMETER C ATEGORIES

Category
Energy Related
Reaction Related
Real-Code Related

design of iniKE, iniBuffer, and LossRate. Then we will use a
new parameter to replace both DecThres and SynThres. The
new parameter ChangeRate, along with a newly proposed elementary reaction selection scheme, will make the occurrence
of elementary reactions adaptive. Finally we will employ a
modified “1/5 success rule” to make StepSize adaptive. The
remaining parameters (iniPopSize and CollRate) retain the
original definitions in CRO presented in [5].
A. Energy-Related Parameters
Parameters iniKE, iniBuffer, and LossRate cooperate with
each other to control the convergence of CRO [6]. iniKE and
iniBuffer determine the total energy in the system before the
algorithm starts, while LossRate controls the rate of transforming KE to the central energy buffer in on-wall ineffective
collisions.
In CRO, KE controls the tolerance of the molecule to accept
a worse structure [5]. So a large KE may potentially lead
to a situation in which the molecule keeps accepting worse
solution structures, resulting in bad optimization performance.
Meanwhile, small KE may cause the molecule to get stuck
in local optima since the molecule does not have enough
tolerance to jump out of local optima. As stated in [5], the
energy of the central buffer and PE in molecules can be
transformed into KE, and this process is partially controlled by
LossRate in on-wall ineffective collision. So iniKE, iniBuffer,
and LossRate also impact the performance, and proper values
of these parameters are very important in controlling the
convergence of the algorithm.
1) iniKE: This parameter is used to control the initial KE of
molecules. When the algorithm starts and the initial population
is generated, all the molecules in the population are assigned
with KE according to iniKE. The selection of iniKE shall be
made based on the characteristics of the objective function
value.
In ACRO, we first generate a population of molecules
popinit = {m1 , m2 , ..., miniPopSize } by choosing feasible solutions in the solution space randomly. Their corresponding PEs
are determined. We label the molecular structures of the two
molecules with the largest and the smallest PE by ωl and ωs in

Parameter
iniKE
iniBuffer
LossRate
DecThres
SynThres
StepSize

popinit , respectively. Then we define the initial kinetic energy
of all the molecules as
iniKE = (PEωl − PEωs ) × iniPopSize

(3)

and this initial KE rule is applied whenever a new molecule
is generated in subsequent decompositions.
2) iniBuffer: The central energy buffer Ebuffer accumulates
energy in on-wall ineffective collisions, and energy is withdrawn in decomposition [5]. As Ebuffer is initiated according to
iniBuffer, this value is very important in determining whether
a decomposition is successful, especially in the early stage of
the search.
Decomposition is often manipulated with operators performing vigorous modifications to the molecular structures,
assisting molecules to jump out of local optima. But a decomposition that occurs too early may potentially hamper
the convergence of the algorithm, especially in those cases
in which the decomposition modifies the molecules that are
still evolving, i.e. not stuck in a local optimum. This hinders
ACRO from performing an effective optimization search as
the molecule will switch to another region of PES instead of
performing a local search. In other words, this may lead to
missing a possible global optimum in a particular region. As
stated previously, the success rate of decomposition is partially
controlled by Ebuffer . We can reduce the initial energy in the
central buffer to suppress the decomposition at the early stage
since a small central buffer, initialized with a small iniBuffer,
renders it less likely for decomposition to occur [6]. When
the molecules have collided and explored the solution space
for some time, Ebuffer is then gradually increased due to onwall ineffective collisions, and the molecules are more likely
to get stuck in the local optima. Since Ebuffer is getting larger,
more decomposition will be successful and the molecules can
explore other parts of the solution space without getting stuck.
Therefore, according to the previous analysis, we assign
zero to iniBuffer to suppress decomposition in the early stage
of searching in ACRO. The idea of setting the initial buffer
to zero was also supported numerically by the simulations in
[10] and [6].

3) LossRate: Parameter LossRate is used in the energy
transformation process of the on-wall ineffective collision.
When a molecule is involved in a successful on-wall ineffective collision, a portion of the energy that the molecule
originally holds will be transferred to Ebuffer .
In a successful on-wall ineffective collision, the excessive
energy Eexcess is divided into two parts. One part becomes the
KE of the new molecule according to
KEω′ = Eexcess × q

(4)

where ω ′ is the new molecular structure, and q is a random
number generated from the interval [LossRate, 1]. The remaining energy Eexcess − KEω′ is transferred to Ebuffer . Hence, LossRate affects the KE a molecule possesses after a successful
on-wall ineffective collision.
In many previous works of CRO, LossRate is set to be
a very small number (e.g., 0.1 in [6], 0.2 in [16]). In our
ACRO algorithm, the parameter LossRate is designed to be
a molecular attribute, instead of the original global attribute.
The value for LossRate of each molecule in the system is
approximated by a modified folded normal distribution. This
distribution is generated from a normal distribution with a
mean value of 0 and standard deviation of 0.3. All negative
values in this normal distribution is “folded” over by taking
their absolute values, and all values larger than 1 are considered as 1. By doing so, we attempt to make the energy loss
rate a small enough number, but without losing the original
searching characteristics provided by large LossRate.
B. Reaction-Related Parameters
In CRO, we use CollRate, DecThres, and SynThres to
control the ratio among the four kinds of elementary reactions.
We first apply CollRate to determine whether a uni-molecular
collision or an inter-molecular collision would happen in the
current iteration. Then one or two molecules are randomly
chosen from the population as the input molecule(s) to an
elementary reaction. For a uni-molecular collision, we compare the “inactive degree” [5] of the molecule with DecThres.
If the inactive degree is larger than DecThres, decomposition
will occur. For an inter-molecular collision, the KEs of the two
input molecules are compared with SynThres. If both of the
KEs are smaller than SynThres, synthesis will occur. However,
this scheme may result in an imbalance between the number
of decompositions and syntheses when inappropriate values
are set to CollRate, DecThres, and SynThres. For example, if
we have too many syntheses, the population size is likely to
be reduced to one most of the time during simulation. Then it
is highly likely for the molecules to get stuck in local optima
and the population diversity is no longer maintained. On the
other hand, if there are many decompositions, too many new
molecules will be generated. The limited number of function
evaluations will be exhausted without thoroughly searching the
potential regions. Then, CRO may turn into a random search.
For simplicity but without loss of generality, we assume that
the population diversity can be maintained when the number of
molecules is stable in the course of searching, with population
size similar to the initial value, i.e., iniPopSize.

In ACRO, we introduce a new parameter ChangeRate to
replace the original parameters DecThres and SynThres to control the frequency of decompositions and syntheses. Generally
ChangeRate describes the probability of having decomposition
and synthesis. For example, if we set ChangeRate = 0.01,
then we will roughly have 1000 × 0.01 = 10 decompositions
or syntheses among 1000 elementary reactions. However,
ChangeRate alone is not enough to control the population
size and maintain the population diversity. As in the previous
example, it is possible that all 10 reactions are syntheses. Then
if the iniPopSize is set to 11, the population size will finally
be reduced to one. In such a case, the population diversity
is still not maintained. In order to handle this problem, we
shall increase the occurrence rate of decomposition when the
population size is smaller than iniPopSize, and increase the
rate of synthesis when the population size is large. To do this,
we introduce two population feedbacks fdec and fsyn to control
the occurrences of decomposition and synthesis, respectively.
In ACRO, in each iteration, the algorithm will first decide
whether it is a variable population-size collision or constant
population-size collision using ChangeRate. Then the algorithm will decide whether a decomposition or synthesis shall
happen. We define the population feedback term as
fpop =

curPopSize − iniPopSize
.
iniPopSize

(5)

Then the decomposition and synthesis feedbacks are defined
as
1
fdec = × (1 − fpop )
(6)
2
and
1
(7)
fsyn = 1 − fdec = × (1 + fpop ),
2
respectively, where curPopSize is the current population size.
fdec and fsyn determine the probability the current iteration is
a decomposition and a synthesis, respectively.
The population feedback term fpop is positive when curPopSize is larger than iniPopSize. A positive fpop will encourage
the occurrence of synthesis by increasing its probability and
decreasing the probability of decomposition, and vice versa.
If the current population size equals iniPopSize, fpop = 0
and fdec = fsyn = 0.5, which means that decomposition and
synthesis are equally likely to occur. If the current population
size is one and iniPopSize is not one, fpop = −1 and the
probability of having synthesis is zero. This matches the
requirement of synthesis that at least two molecules in the
population are needed. If iniPopSize and curPopSize are both
one, despite fsyn = 0.5, we stipulate that only decomposition
can occur. To conclude, fdec cooperates with fsyn to control the
population size and keeps its fluctuations within a small range
by controlling the relative occurrences of decomposition and
synthesis.
C. Real-Code-Related Parameter
For continuous optimization problems, there are infinite feasible values for each variable. In CRO, we apply the zero-mean
Gaussian distribution in the neighborhood searching operator
for continuous optimization problems. Parameter StepSize is

employed to control the variance of the Gaussian distribution,
which determines “how far” the molecule can go in the on-wall
and inter-molecular ineffective collisions [6]. This parameter
is set to be a constant in CRO, and decreased at a predefined
rate in the adaptive scheme [6].
In CRO, the neighborhood search operator works as follows. Given a molecular structure, we first randomly pick an
element from it. Then we randomly generate a new number
s∆ ∼ N (0, StepSize) according to the Gaussian distribution
and add this number to the value of the element. Suppose the
selected element is the i-th element in the solution, and its
original value is si . Then the new value si ′ of this element
after applying the neighborhood search operator is
si ′ = si + s∆ .

(8)

In CRO, a proper value of StepSize is critical to the
performance of the algorithm. While an overly large StepSize
prevents the algorithm from converging, an unreasonably small
StepSize will result in the algorithm getting stuck in local
optima. The modification in StepSize is twofold: initial value
assignment and its subsequent update.
1) Initial Value of StepSize: In ACRO, we set an initial
value to the StepSize and then update this parameter in the
course of searching. For each element in a solution, there is
an upper bound and lower bound to confine the feasible range.
We set the initial StepSize for this element to be
StepSizeinit,i = (Boundupper,i − Boundlower,i )/2

(9)

where StepSizeinit,i is the initial StepSize for the i-th element
in the solution, Boundupper,i and Boundlower are the upper and
lower bounds for the i-th element. For simplicity, we omit i
in the subscript of StepSize in the sequel.
2) Evolution of StepSize: We adapt the “1/5 success rule”
[20] to modify StepSize in the course of searching. This rule
was originally stated as follows:
After every n mutations, check how many successes have
occurred over the preceding 10n mutations. If the number is
less than 2n, multiply the step lengths by the factor 0.85; divide
them by 0.85 if more than 2n successes occurred.
The “1/5 success rule” has been applied to EP, ES and
other EAs successfully [21] and demonstrated outstanding
performance. So we adopt this rule to manipulate the “stepsize” parameter adaptively. However it cannot be employed
directly in CRO since there is no “mutation” defined in CRO.
In CRO, whenever an elementary reaction is successfully
performed, new solution(s) are generated, and we have an
“update” process at the end of each iteration [5]. In “update”,
the algorithm compares the newly explored solutions with the
best ever solution. If one of the new solutions is even better, the
algorithm stores its PE (objective function value) and regards
this solution as the best ever solution. In ACRO, we apply a
modified “1/5 success rule” in “update”.
The modification is as follows. The frequency at which
StepSize is changed is kept the same, i.e., 10n updates, and the
adaptation factor of StepSize is also kept constant at 0.85. n is
set to be one hundredth of the maximum allowable function
evaluation number (FELimit). The new update mechanism
with “1/5 success rule” is presented in Algorithm 1.

Algorithm 1 O N U PDATE N EW S OLUTION (ωnew , ωbest )
1: Compare the new solution ωnew with the stored best ever
solution ωbest .
2: if ωnew is better then
3:
ωbest = ωnew
4:
This update is successful.
5: end if
6: for Every n updates do
7:
if Previous 10n updates have more than 2n successful
ones then
8:
StepSize = StepSize/0.85
9:
else
10:
StepSize = StepSize × 0.85
11:
end if
12: end for

D. Summary
In ACRO, we make StepSize adaptive. We remove LossRate, DecThres, and SynThres and introduce a new parameter
ChangeRate to control the occurrence of the elementary reactions. In addition, we formulate rules to assign initial values
for iniKE and iniBuffer. So we reduce the total number of
parameters from eight to three as indicated in Table III. The
decrease in the total number of parameters can reduce the
effort to tune the parameter values. We will show that ACRO
performs equally well or even better than the canonical CRO
in the next section.
IV. E XPERIMENT S ETTING
In order to compare the performance improvement of our
proposed ACRO algorithm over the canonical CRO in solving global optimization problems, we conduct a series of
simulations on a full set of different benchmark functions.
As revealed in [22], many benchmark functions commonly
employed for evaluating the optimization performance of
evolutionary algorithms suffer from two major problems: the
global optimal points are located at the center of the search
space, and they are positioned along the coordinate axes,
i.e., there is no correlation among different dimensions. We
can shift and rotate the conventional benchmark functions
to resolve these problems. We make a comprehensive test
suite by employing 26 benchmark functions mainly selected
from the latest CEC 2013 Real-Parameter Single Objective
Optimization Competition [17] as well as the benchmark
functions employed to test the performance of canonical CRO
in [6]. All of these benchmark functions except f13 and f14 are
shifted and a part of them are further rotated. The benchmark
functions are listed in Table IV. All benchmark functions are
simulated on 30 dimensions. The search space and population
initialization range are both defined to be [−100, 100]. The
global optimum value of these benchmark functions are all 0,
and all simulation results smaller than 10−8 are considered as
0 [17].
Both ACRO and canonical CRO are implemented in Python
2.7 on Microsoft Windows 7. All simulations are performed
on a computer with an Intel Core i7-3770 @ 3.4GHz CPU.

TABLE III
PARAMETER M ODIFICATIONS IN ACRO
Parameter

Initial Design in CRO

iniKE
iniBuffer
LossRate

User assigns a proper initial value.

DecThres
SynThres
StepSize

Modification in ACRO
The initial KE is assigned according to the PE of the initial population.
The formula is iniKE = (PEωl − PEωs ) × iniPopSize.
The initial central energy buffer is set to zero.
This parameter is unique for each molecule, and the value is generated
from a folded normal distribution.
These two parameters are replaced with a new parameter ChangeRate,
to control the occurrences of decomposition and synthesis.
The initial StepSize is set according to the feasible solution bounds. It
evolves according to a modified “1/5 success rule”.

iniPopSize
CollRate

No modification

TABLE IV
B ENCHMARK F UNCTIONS
f
f1
f2
f3
f4
f5
f6
f7
f8
f9
f10
f11

Function
XD
2
zi
i=1 X
XD
i
2
z
i=1
j=1 i
XD Xi
2
zi
i=1
j=1
max{|zi |, 1 ≤ i ≤ D}
max{|zi |, 1 ≤ i ≤ D}
XD
YD
|z | +
|z |
i=1 i
i=1 i
XD
YD
|zi | +
|z |
i=1 i
Xi=1
D−1
2
2
2
(100(zi − zi+1 ) + (zi − 1) )
i=1
XD−1
2
2
2
(100(zi − zi+1 ) + (zi − 1) )
i=1 X
D
6 2
2
10 z1 +
z
i=2
s i
1 Xn
1 Xn
−20 exp(−0.2
z 2 ) − exp(
cos 2πzi )
i=1 i
i=1
n
n

Solution Transformation*

Name

z = x−o

Shifted Sphere Function

z = x−o

Shifted Schwefel’s Problem 1.2

z = M(x − o)

Shifted Rotated Schwefel’s Problem 1.2

z = x−o
z = M(x − o)

Shifted Schwefel’s Problem 2.21
Shifted Rotated Schwefel’s Problem 2.21

z = (x − o) × 0.1

Shifted Schwefel’s Problem 2.22

z = M(x − o) × 0.1

Shifted Rotated Schwefel’s Problem 2.22

z = (x − o) × 0.3

Shifted Rosenbrock’s Function

z = M(x − o) × 0.3

Shifted Rotated Rosenbrock’s Function

z = x−o

Shifted Discus Function

z = (x − o) × 0.32

Shifted Ackley’s Function

z = M(x − o) × 0.32

Shifted Rotated Ackley’s Function

z = x×5

Schwefel’s Problem 2.26

+20 + e

f12

s

−20 exp(−0.2

1 Xn
1 Xn
z 2 ) − exp(
cos 2πzi )
i=1 i
i=1
n

n

+20 + e

f13
f14
f15
f16
f17
f18

f19

f20

f21 +

f22 +

f23 +

f24 +

*o

XD
418.9829D −
z sin |zi |
i=1 i
q
XD
418.9829D −
z sin |zi |
i=1 i
XD
2
(zi − 10 cos 2πzi + 10)
i=1
XD
2
(z − 10 cos 2πzi + 10)
i=1 i
D
Y
XD
zi
zi2
cos
−
+1
i=1 4000
i
i=1
2
D
XD
Y
zi
zi
cos
−
+1
i=1 4000
i
i=1
X
n−1
2
2
2
sin (πy1 ) +
[(yi − 1) (1 + 10(sin yi+1 ))]+
i=1
q

1
2
2
(yn − 1) (1 + sin (2πyn )), yi = 1 +
(zi + 1)
4
Xn−1
sin2 (πy1 ) +
[(yi − 1)2 (1 + 10(sin2 yi+1 ))]+
i=1

1
(yn − 1)2 (1 + sin2 (2πyn )), yi = 1 +
(zi + 1)
4
X
1
n−1
2
2
2
[sin (3πz1 ) +
(zi − 1) (1 + sin (3πzi+1 ))+
i=1
10
Xn
2
2
(zn − 1) (1 + sin (2πzn ))] +
u(zi , 5, 100, 4)
i=1
X
1
n−1
[sin2 (3πz1 ) +
(zi − 1)2 (1 + sin2 (3πzi+1 ))+
i=1
10
Xn
2
2
(zn − 1) (1 + sin (2πzn ))] +
u(zi , 5, 100, 4)
i=1
Xn−1
π
2
2
2
[10 sin (πy1 ) +
(yi − 1) (1 + 10 sin (πyi+1 ))+
i=1
n
X
1
n
(yn − 1)2 ] +
u(zi , 10, 100, 4), yi = 1 + (zi + 1)
i=1
4
X
π
n−1
2
2
2
[10 sin (πy1 ) +
(yi − 1) (1 + 10 sin (πyi+1 ))+
i=1
n
X
1
n
2
(yn − 1) ] +
u(zi , 10, 100, 4), yi = 1 + (zi + 1)
i=1
4

is a shifting vector
 and M is a
m

k(x − a)
+ u(x, a, k, m) =
0

k(−x − a)m

z = Mx × 5

Rotated Schwefel’s Problem 2.26

z = (x − o) × 0.0512

Shifted Rastrigin’s Function

z = M(x − o) × 0.0512

Shifted Rotated Rastrigin’s Function

z = (x − o) × 6

Shifted Griewank’s Function

z = M(x − o) × 6

Shifted Rotated Griewank’s Function

z = (x − o) × 0.1

Shifted Levy’s Function

z = M(x − o) × 0.1

Shifted Rotated Levy’s Function

z = (x − o) × 0.5

Shifted Penalized Function 1

z = M(x − o) × 0.5

Shifted Rotated Penalized Function 1

z = (x − o) × 0.5

Shifted Penalized Function 2

z = M(x − o) × 0.5

Shifted Rotated Penalized Function 2

transformation matrix. o and M can be obtained from [17].
for x > a
for − a ≤ x ≤ a .
for x < −a

In order to reduce statistical errors and generate statistically
significant results, each benchmark function is repeated for 51
independent runs for each algorithm, which also satisfies the
requirement of [17]. In each run, we use the maximum number
of function evaluations (maxFEs) as the termination criteria:
100 000 maxFEs are employed for 10 dimensional tests and
300 000 maxFEs for 30 dimensional tests [17].
To evaluate the performance improvement of our proposed
ACRO algorithm over the canonical CRO, we compare the
simulation results between these two algorithms. Lam et al.
proposed four different CRO in [6], distinguished by different constraint handling schemes, synthesis operators, and
deterministic stepsize adaptation schemes. We use CRO/BP,
CRO/HP, CRO/BB, and CRO/D to refer to RCCRO1, RCCRO2, RCCRO3, and RCCRO4 in [6], respectively. Similarly,
we consider the two different constraint handling schemes and
two synthesis operators discussed in [6], and propose three
variants of ACRO for performance comparison:

comparing the mean simulation results, especially in unimodal functions (f1 –f10 ). Meanwhile, the superiority
of ACRO in solving multi-modal functions is still very
significant. While the deterministic stepSize adaptation
scheme proposed in [6] has better overall performance
than other CRO variants, ACRO algorithms outperform
it by a large margin.
2) While CRO has no significant preference on the boundary handling scheme selection, ACRO favors the boundary constraint handling rule (9) discussed in [6] more
than the hybrid handling rule discussed in the same
paper. This phenomenon can be observed in the benchmark functions where ACRO/BP performs better than
ACRO/HP, e.g. f7 and f13 .
3) ACRO has no significant preference between the two
different types of synthesis employed by ACRO/BB and
ACRO/BP. These two algorithms perform similarly in
all the benchmark functions tested.

1) ACRO/BP: This ACRO variant employs the boundary
constraint handling rule (9) discussed in [6], and the
“probablistic select” synthesis operator.
2) ACRO/HP: This ACRO variant is based on ACRO/BP
and the boundary constraint handling rule is the hybrid
handling rule (10) in [6].
3) ACRO/BB: This ACRO variant is based on ACRO/BP
and the synthesis operator is replaced by BLX-0.5 in
[6].

In terms of the computational time consumed by the proposed adaptation scheme, we observed that the additional time
needed for ACRO algorithms is less than 5% of the computation time of canonical CRO algorithms. As the computational
overhead of the evolutionary algorithms on a given number
of function evaluations with the same parameter setting is
approximately constant when solving different optimization
problems, we believe that the extra time used by the adaptation
scheme can be considered negligible when solving problems
with relatively long fitness evaluation time.

The parameters for CRO are set according to the recommendation of [6] for solving multimodal problems, i.e. population
size is 20, stepsize is 1, initial energy buffer is 105 , initial
kinetic energy for molecules is 107 , molecular collision rate is
0.2, kinetic energy loss rate is 0.1, decomposition threshold is
1.5×105 , and synthesis threshold is 10. The stepsize adaptation
interval for CRO/D is set to 100 and the change rate is 0.99.
As we only have three parameters for ACRO, we set the
population size and the molecular collision rate the same with
CRO configurations, and ChangeRate as 10−4 .
V. S IMULATION R ESULTS
In this section we present the simulation results of different
variants of our proposed ACRO and canonical CRO described
in Section IV. We present the raw simulation result data as well
as the statistical analysis based on the data. We also analyze
the convergence of the different algorithms.
The mean value obtained by all ACRO and canonical CRO
algorithms on different benchmark functions are presented in
Table V. The mean values in bold font indicate superiority
of the corresponding algorithm over the benchmark function.
The simulation results indicate that ACRO generally gives
superior performance over the canonical CRO algorithms.
ACRO algorithms generate best results in 14 out of 24 30D functions.
From the simulation results in Table V the following key
points can be observed:
1) ACRO algorithms generally have better performance
than CRO algorithms in all benchmark functions when

VI. C ONCLUSION
In this paper, we proposed a new CRO-based metaheuristic
called ACRO. To alleviate the parameter tuning process, we
reduce the number of parameters defined in CRO. We also
design an adaptive scheme for CRO. We manipulate six of
the existing CRO parameters and successfully reduce the total
number of parameters from eight to three. The advantages of
ACRO over canonical CRO include:
1) ACRO achieves superior optimization performance over
canonical CRO within a similar amount of time.
2) ACRO convergences faster than canonical CRO, and can
effectively prevent pre-mature convergence.
3) ACRO can significantly reduce the time needed to find
a suitable combination of optimization parameters.
These advantages can be observed in the simulation we conducted over a set of 24 benchmark functions. The simulation
results demonstrate the superiority of ACRO.
In the future, we will test the performance of ACRO on other
practical problems. We will refine the settings for the proposed
adaptive schemes. We can also include ACRO in an ensemblebased algorithm for real-parameter optimization [23][24]. Developing ACRO-hybrid algorithms with other swarm intelligence algorithms, such as Particle Swarm Optimization [25]
and Social Spider Algorithm [26], is also a potential research
topic.

TABLE V
T HE M EAN S IMULATION R ESULTS OF ACRO AND C ANONICAL CRO
Problem
f1
f2
f3
f4
f5
f6
f7
f8
f9
f10
f11
f12
f13
f14
f15
f16
f17
f18
f19
f20
f21
f22
f23
f24

ACRO/BP
0.0000e+00
0.0000e+00
1.9827e-06
6.0942e-01
4.8004e+00
2.4722e-07
8.4892e+01
2.4860e+01
2.2388e+01
1.7196e-07
8.4478e-02
2.3127e+00
2.9281e+02
4.1386e+03
6.9226e+00
1.6828e+02
3.0256e-03
5.8008e-04
0.0000e+00
3.9330e+01
4.0374e-08
2.2444e+00
1.8949e-03
3.5586e+00

ACRO/HP
0.0000e+00
0.0000e+00
5.8651e-06
7.3579e-01
7.1049e+00
2.1478e-07
1.0700e+02
2.9761e+01
2.3080e+01
3.7136e-01
9.2534e-02
2.4233e+00
6.8552e+02
3.6792e+03
6.1607e+00
1.9685e+02
2.3141e-03
1.9328e-04
0.0000e+00
4.3081e+01
3.4969e-06
2.2262e+00
1.7269e-05
3.5509e+00

ACRO/BB
0.0000e+00
0.0000e+00
1.4231e-06
1.0329e+00
6.1221e+00
9.0862e-05
8.7758e+01
2.4685e+01
2.2836e+01
4.2115e-06
7.8069e-02
2.3163e+00
2.3939e+02
3.8300e+03
4.8700e+00
1.6156e+02
1.5916e-03
2.9004e-04
0.0000e+00
4.0080e+01
9.4729e-10
2.5946e+00
1.2809e-03
3.4288e+00

CRO/BP
2.7374e-06
1.8280e-05
4.3676e-04
4.7625e-03
5.8131e+01
5.2846e-04
1.2944e+07
8.4063e+01
3.1328e+01
5.1422e-03
1.1503e+01
1.1388e+01
5.8231e+03
5.7527e+03
4.2171e+02
4.3566e+02
2.3064e+00
4.7648e-03
1.9428e+01
3.7536e+01
2.6110e-07
2.9582e+01
1.6633e+01
2.1111e+00

R EFERENCES
[1] H. Naceura, Y. Guob, and J. Batozc, “Blank optimization in sheet metal
forming using an evolutionary algorithm,” J. Materials Processing Tech.,
vol. 151, no. 1-3, pp. 183–191, Sep. 2004.
[2] M. G. C. Tapia and C. A. C. Coello, “Applications of multi-objective
evolutionary algorithms in economics and finance: A survey,” in Proc.
IEEE Congress on Evolutionary Computation (CEC), Singapore, Sep.
2007, pp. 532–539.
[3] X. Yang and Y. Li, “Hybrid genetic algorithm for searching efficient
paths in traffic assignment,” in Proc. IEEE Int. Congr. Natural Comput.
(ICNC), Valencia, Spain, Oct. 2010, pp. 2374–2377.
[4] C.-C. Chiu, C.-H. Hsu, and Y.-S. Yeh, “A genetic algorithm for
reliability-oriented task assignment with k duplications in distributed
systems,” IEEE Trans. Rel., vol. 55, no. 1, pp. 105–117, Mar. 2006.
[5] A. Y. S. Lam and V. O. K. Li, “Chemical-reaction-inspired metaheuristic
for optimization,” IEEE Trans. Evol. Comput., vol. 14, no. 3, pp. 381–
399, 2010.
[6] A. Y. S. Lam, V. O. K. Li, and J. J. Q. Yu, “Real-coded chemical reaction
optimization,” IEEE Trans. Evol. Comput., vol. 16, no. 3, pp. 339–353,
2012.
[7] S. Sahni and T. Gonzalez, “P-complete approaximation problems,” J.
ACM, vol. 23, no. 3, pp. 333–346, Jul. 1976.
[8] J. G. Digalakis and K. G. Margaritis, “On benchmark functions for
genetic algorithms,” Int. J. Comput. Math., vol. 77, no. 4, pp. 481–506,
Sep. 2000.
[9] E. D. Taillard, “Robust taboo search for the quadratic assignment
problem,” Parall. Comput., vol. 17, no. 4–5, pp. 443–455, Jul. 1991.
[10] J. Xu, A. Y. S. Lam, and V. O. K. Li, “Chemical reaction optimization
for task scheduling in grid computing,” IEEE Trans. Parallel Distrib.
Syst., vol. 22, no. 10, pp. 1624–1631, Jan. 2011.
[11] A. Y. S. Lam and V. O. K. Li, “Chemical reaction optimization for
cognitive radio spectrum allocation,” in Proc. IEEE Global Commun.
Conf. (GLOBECOM), Miami, FL, U.S., Dec. 2010, pp. 1–5.
[12] J. J. Q. Yu, V. O. K. Li, and A. Y. S. Lam, “Sensor deployment for air
pollution monitoring using public transportation system,” in Proc. IEEE
Congress on Evolutionary Computation (CEC), Brisbane, Australia, Jun.
2012, pp. 1–7.
[13] A. Y. S. Lam, V. O. K. Li, and J. Xu, “On the convergence of chemical
reaction optimization for combinatorial optimization,” IEEE Trans. Evol.
Comput., vol. 17, no. 5, pp. 605–620, 2013.
[14] A. Y. S. Lam, J. Xu, and V. O. K. Li, “Chemical reaction optimization
for population transition in peer-to-peer live streaming,” in Proc. IEEE
Congress on Evolutionary Computation (CEC), Barcelona, Spain, Jul.
2010, pp. 1–8.
[15] J. J. Q. Yu, A. Y. S. Lam, and V. O. K. Li, “Evolutionary artificial
neural network based on chemical reaction optimization,” in Proc. IEEE

[16]
[17]

[18]
[19]
[20]
[21]

[22]
[23]
[24]
[25]
[26]

CRO/HP
2.6684e-06
1.9248e-05
5.3923e-04
4.7484e-03
5.8909e+01
5.9767e-04
6.8512e+06
8.4381e+01
2.9001e+01
5.6744e-03
1.1305e+01
1.1562e+01
6.0672e+03
5.5973e+03
4.3384e+02
4.5059e+02
2.1902e+00
1.9807e-03
1.2036e+01
3.8191e+01
2.3093e-07
2.7701e+01
1.5481e+01
2.4530e+00

CRO/BB
2.6009e-06
1.8690e-05
4.1359e-04
4.4301e-03
5.3928e+01
6.2956e-04
4.6210e+06
7.1735e+01
2.8922e+01
1.1732e-02
1.1177e+01
1.1231e+01
6.1206e+03
5.6308e+03
3.8941e+02
4.1632e+02
2.6168e+00
4.0542e-03
1.0251e+01
6.9319e+01
2.1121e-07
2.8518e+01
6.9264e+00
2.5946e+00

CRO/D
2.9454e-05
1.4972e-04
1.4130e-01
1.2716e-02
3.5403e+01
1.7779e-03
2.2111e+01
6.8128e+01
3.0114e+01
1.9617e-01
2.1326e-04
3.0470e+00
0.0000e+00
8.6744e+02
1.4585e-04
2.4930e+02
1.0624e-02
9.1952e-03
1.8466e-08
7.2789e+01
1.5477e-06
1.9143e+00
1.5812e-07
3.1687e+00

Congress on Evolutionary Computation (CEC), New Orleans, LA, U.S.,
Jun. 2011, pp. 2083–2090.
——, “Real-coded chemical reaction optimization with different perturbation functions,” in Proc. IEEE Congress on Evolutionary Computation
(CEC), Brisbane, Australia, Jun. 2012, pp. 1–8.
J. J. Liang, B.-Y. Qu, P. N. Suganthan, and A. G. Hernndez-Dłaz,
“Problem definitions and evaluation criteria for the CEC 2013 special
session and competition on real-parameter optimization,” Computational
Intelligence Laboratory, Zhengzhou University, Zhengzhou China and
Nanyang Technological University, Singapore, Technical Report 201212,
2013.
A. Y. S. Lam and V. O. K. Li, “Chemical reaction optimization: A
tutorial,” Memetic Computing, vol. 4, no. 1, pp. 3–17, 2012.
R. I. Masel, Chemical Kinetics & Catalysis. Wiley, 2001.
H.-P. Schwefel, Evolution and Optimum Seeking. John Wiley and Sons,
New York, 1995.
S. D. Muller, N. N. Schraudolph, and P. D. Koumoutsakos, “Step size
adaptation in evolution strategies using reinforcement learning,” in Proc.
IEEE Congress on Evolutionary Computation (CEC), Honolulu, Hawaii,
May 2002, pp. 151–156.
A. Qin, V. Huang, and P. Suganthan, “Differential evolution algorithm
with strategy adaptation for global numerical optimization,” IEEE Trans.
Evol. Comput., vol. 13, no. 2, pp. 398–417, 2009.
R. Mallipeddi, S. Mallipeddi, P. N. Suganthan, and M. F. Tasgetiren,
“Differential evolution algorithm with ensemble of parameters and
mutation strategies,” Appl. Soft Comput., vol. 11, pp. 1679–1696, 2011.
R. Mallipeddi and P. Suganthan, “Ensemble of constraint handling
techniques,” IEEE Trans. Evol. Comput., vol. 14, no. 4, pp. 561–579,
Aug. 2010.
J. Kennedy and R. Eberhart, “Particle swarm optimization,” in Proc.
IEEE Int. Conf. Neural Networks, Perth, WA, U.S., Nov. 1995, pp. 1942–
1948.
J. J. Q. Yu and V. O. K. Li, “A social spider algorithm for global
optimization,” Appl. Soft Comput., vol. 30, pp. 614–627, 2015.

