此方法是一种具有偶尔长距离跳跃特征的随机游走模型,其属于其在物理、金融以及群体智能优化算法的改进领域中都具有广泛应用。其特点是在随机游走的过程中,偶尔会进行一次长距离跳跃。
对于随机游走的描述各个论文中都有详细描述,且有着不同的策略和方法,本文采取最简单的形式并不多做阐述只做简单代码的示例:
clc
close all
clear all
% 随机游走模拟参数
N = 1000; % 步数
alpha = 1.5; % 幂律分布参数
% 初始化坐标
x = zeros(1, N);
y = zeros(1, N);
% 生成随机游走轨迹
for i = 2:N
theta = 2 * pi * rand(); % 随机生成角度
step_length = (rand() ^ (-1 / alpha)); % 生成步长
x(i) = x(i - 1) + step_length * cos(theta);
y(i) = y(i - 1) + step_length * sin(theta);
end
% 绘制随机游走轨迹
figure;
plot(x, y, 'b');
xlabel('X');
ylabel('Y');
title('随机游走轨迹图');
axis equal;
grid on;
所生成的随机游走轨迹图如下:
可以看出,所给的随机游走模型以短距离游走为主,偶尔进行长距离的游走,在群智能优化算法中可以给群体中的个体引入,以摆脱局部最优解,有着提高收敛精度的功效。建议使用时引入随机概率,低于某个随机数再使个体进行随机游走,保证群体多样性。