Gravitational Search Algorithm (GSA)
The GSA is a metaheuristic optimization algorithm developed by Rashedi
et al. [8]. In GSA, the search agents are a collection of masses
which interact with each other based on the Newtonian gravity and the
laws of motion. The position of the mass corresponds to the solution of
the problem, and its gravitational and inertial masses are determined
using a fitness function. In other words, each mass presents a solution.
The algorithm is navigated by properly adjusting the gravitational and
inertial masses.
After evaluating the current population fitness, the mass of each agent
is calculated as follows:
(25)
where:
(26)
where fiti (t ) represent the fitness value
of the agent i at iteration t . best (t ) andworst (t ) is the best and worst fitness of all agents,
respectively. According to Newton gravitation theory, the total force
that acts on the i th agent at iteration t is specified as
follows:
(27)
where r is a random number within the interval [0, 1].G (t) is gravitational constant at iteration t ,Mi (t ) andMj (t ) are masses of agents i andj , ɛ is a small constant andRij (t ) is the Euclidian distance between
the two agents i and j , Kbest is the set of firstK agents with the best fitness value and biggest mass.
According to the law of motion, the acceleration of the i th
agent, at iteration t is given by the following equation:
(28)
The velocity and position of an agent are updated as follows:
(29) (30)
where ri is a uniform random variable in the
interval [0, 1].
The gravitational constant G (t ) in Eq. (27) is a function
of the initial value G 0 and time t :
(31)
The parameters of maximum iteration tmax , population sizeN , initial gravitational constant G 0 and
constant α control the performance of GSA.