0
点赞
收藏
分享

微信扫一扫

【智能优化算法】基于自适应引力搜索算法求解单目标问题附matlab代码

1 简介

2009 年伊朗的克曼大学教授 Esmat Rashedi 等人提出了引力搜索算法[5(] Gravitational Search Algorithm),该算法是基于牛顿万有引力定律:“在宇宙间,每一个粒子由于万有引力的作用而彼此相互吸引,这力的大小与粒子的质量成正比,与他们之间的距离成反比”。

【智能优化算法】基于自适应引力搜索算法求解单目标问题附matlab代码_搜索算法

【智能优化算法】基于自适应引力搜索算法求解单目标问题附matlab代码_lua_02

【智能优化算法】基于自适应引力搜索算法求解单目标问题附matlab代码_matlab代码_03

【智能优化算法】基于自适应引力搜索算法求解单目标问题附matlab代码_lua_04

【智能优化算法】基于自适应引力搜索算法求解单目标问题附matlab代码_lua_05

【智能优化算法】基于自适应引力搜索算法求解单目标问题附matlab代码_matlab代码_06

2 部分代码

% GSA code v1.0.

% Generated by Esmat Rashedi, 2009. 

% Adopted from: " E. Rashedi, H. Nezamabadi-pour and S. Saryazdi,

% 揋SA: A Gravitational Search Algorithm? Information sciences, vol. 179,

% no. 13, pp. 2232-2248, 2009."


% Gravitational Search Algorithm.

function [Fbest,Lbest,BestChart,MeanChart]=GSA(F_index,N,max_it,ElitistCheck)


%V:   Velocity.

%a:   Acceleration.

%M:   Mass.  Ma=Mp=Mi=M;

%dim: Dimension of test function.

%N:   Number of agents.

%X:   Position of agents. dim-by-N matrix.

%R:   Distance between agents in search space.

%[low-up]: Allowable range for search space.

%Rnorm:  Norm in eq.8.

%Rpower: Power of R in eq.7.


 Rnorm=2; 

 Rpower=1; 

 min_flag=1; % 1: minimization, 0: maximization


%get allowable range and dimension of the test function.

[low,up,dim]=test_functions_range(F_index); 


%random initialization for agents.

X=initialization(dim,N,up,low); 


%create chart of best so far and average fitnesses.

BestChart=[];MeanChart=[];


V=zeros(dim,N);


for iteration=1:max_it

%     iteration


    %Checking allowable range. 

    X=space_bound(X,up,low); 


    %Evaluation of agents. 

    fitness=evaluateF(X,F_index); 


    [best best_X]=min(fitness); %min: minimization.  max: maximization.


    if iteration==1

       Fbest=best;Lbest=X(:,best_X);

    end

    if best<Fbest  % < : minimization. > : maximization

       Fbest=best;Lbest=X(:,best_X);

    end


BestChart=[BestChart Fbest];

MeanChart=[MeanChart mean(fitness)];


%Calculation of M. eq.14-20

[M]=massCalculation(fitness,min_flag); 


%Calculation of Gravitational constant. eq.13.

G=Gconstant(iteration,max_it); 


%Calculation of accelaration in gravitational field. eq.7-10,21.

a=Gfield(M,X,G,Rnorm,Rpower,ElitistCheck,iteration,max_it);


%Agent movement. eq.11-12

[X,V]=move(X,a,V);



end %iteration

3 仿真结果

【智能优化算法】基于自适应引力搜索算法求解单目标问题附matlab代码_matlab代码_07


4 参考文献

[1]陈功贵等. "基于改进引力搜索算法的无功优化仿真研究." 实验技术与管理 33.5(2016):5.

博主简介:擅长智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真,相关matlab代码问题可私信交流。

部分理论引用网络文献,若有侵权联系博主删除。

【智能优化算法】基于自适应引力搜索算法求解单目标问题附matlab代码_lua_08


举报

相关推荐

0 条评论