基于引力搜索算法的涵数优化分析matlab优化算法十三

Posted 张叔zhangshu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了基于引力搜索算法的涵数优化分析matlab优化算法十三相关的知识,希望对你有一定的参考价值。

基于引力搜索算法的涵数优化分析

万有引力搜索算法( Gravitational Search algorithm,GSA)是由伊朗克曼大学的Esmat rashed等人于2009年所提出的一种新的启发式优化算法,其源于对物理学中的万有引力进行模拟产生的群体智能优化算法。万有引力搜索算法GSA的原理是通过将搜索粒子看作一组在空间运行的物体,物体间通过万有引力相互作用吸引,物体的运行遵循动力学的规律。适度值较大的粒子其惯性质量越大,因此万有引力会促使物体们朝着质量最大的物体移动,从而逐渐逼近求出优化问题的最优解。万有引力搜索算法GSA具有较强的全局搜索能力与收敛速度。随着GSA理论研究的进展,其应用也越来越广泛,逐渐引起国内外学者的关注。但是万有引力搜索算法GSA与其他全局算法一样,存在易陷入局部解,解精度不商等问题,有很多待改进之处本章将着重向广大编程爱好者介绍最基本的万有引力算法,各编程科研人员可以基于本章算法加以改进并应用到实际案例中
在这里插入图片描述

惯性质量计算

在这里插入图片描述

参数分析

在这里插入图片描述
万有引力算法实际上跟差分进化算法(DE)有些类似,公式的后半部分是粒子与其他粒子的差分向量与惯性质量,以及随机向量跟距离的乘积之和。由于粒子间的距离同样可由各向量之间的差分向量得到,因此,万有引力搜索算法GSA算法中实际中有作用的参数为常量Go,变化量a,以及惯性质量M。
在这里插入图片描述

% 万有引力搜索算法
function [Fbest,Lbest,BestChart,MeanChart]=GSA(F_index,N,max_it,ElitistCheck,min_flag,Rpower)
%V:   速度
%a:   加速度
%M:   质量.  Ma=Mp=Mi=M;
%dim: 待求解未知量维数
%N:   智能粒子个数
%X:   种群个体位置. dim-by-N matrix.
%R:   种群之间的距离
%[low-up]: 取值范围
%Rnorm:  范数
%Rpower: Power of R 
Rnorm=2;  % 2阶范数,即欧氏距离
% 获取待求解目标方程的未知数个体以及取值范围
[low,up,dim]=test_functions_range(F_index); 
% 随机的初始化个体
X=initialization(dim,N,up,low); 
% 适应度值数组初始化
BestChart=[];
MeanChart=[];
V=zeros(N,dim); % 速度初始化
for iteration=1:max_it  % 迭代开始
%     iteration
    
    % 检查x个体是否在取值范围内
    X=space_bound(X,up,low); 
    % 计算适应度值
    fitness=evaluateF(X,F_index); 
    
    if min_flag==1
        [best best_X]=min(fitness); %minimization.
    else
        [best best_X]=max(fitness); %maximization.
    end        
    
    if iteration==1
       Fbest=best;Lbest=X(best_X,:);
    end
    if min_flag==1
      if best<Fbest  % 极小值求解
       Fbest=best;Lbest=X(best_X,:);
      end
    else 
      if best>Fbest  % 极大值求解
       Fbest=best;Lbest=X(best_X,:);
      end
    end
      
BestChart=[BestChart Fbest];          % 最优适应度值
MeanChart=[MeanChart mean(fitness)];  % 平均适应度值

% M计算
[M]=massCalculation(fitness,min_flag); 
%万有引力常数计算
G=Gconstant(iteration,max_it); 
%加速度a计算
a=Gfield(M,X,G,Rnorm,Rpower,ElitistCheck,iteration,max_it);

% 个体更新
[X,V]=move(X,a,V);

end % 迭代终止


在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
代码下载地址

以上是关于基于引力搜索算法的涵数优化分析matlab优化算法十三的主要内容,如果未能解决你的问题,请参考以下文章

ELM预测基于matlab引力搜索算法优化极限学习机预测(含前后对比)含Matlab源码 2205期

优化分配基于matlab模拟退火策略优化免疫算法求解无人机协同优化分配问题含Matlab源码 1978期

优化求解麻雀算法matlab源码

优化算法基于matlab内存进化算子和局部搜索改进灰狼优化算法含Matlab源码 2378期

图像增强基于matlab GSA灰度图像增强含Matlab源码 1172期

基于GA优化的BP网络算法分析与MATLAB实现matlab优化算法三