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.