Reference: Rashedi E, Nezamabadi-Pour H, Saryazdi S. GSA: a gravitational search algorithm[J]. Information Sciences, 2009, 179(13): 2232-2248.
| Variables | Meaning |
|---|---|
| pop | Population size |
| iter | Iteration number |
| lb | The lower bound (list) |
| ub | The upper bound (list) |
| pos | The position of agents (list) |
| score | The score of agents (list) |
| mass | The mass of agents (list) |
| acc | The acceleration of agents (list) |
| vel | The velocity of agents (list) |
| G | The gravitational constant |
| dim | Dimension |
| gbest | The score of the global best agent |
| iter_best | The global best score of each iteration (list) |
| con_iter | The last iteration number when "gbest" is updated |
clear all;
clc;
pop = 50;
iter = 1000;
lb = ones(1, 30) .* (-100);
ub = ones(1, 30) .* 100;
[gbest, gbest_pos, iter_best, con_iter] = GSA(pop, iter, lb, ub);
% Plot the convergence curve
x = 1 : iter;
loglog(x, iter_best);
grid on;
title('Convergence curve');
xlabel('Iteration');
ylabel('Objective value');The GSA converges at its 999-th iteration, and the global best value is 2.1691e-17.
