0
点赞
收藏
分享

微信扫一扫

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

1 简介

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

【智能优化算法】基于引力搜索算法求解二进制单目标问题附matlab代码_无人机

【智能优化算法】基于引力搜索算法求解二进制单目标问题附matlab代码_搜索算法_02

【智能优化算法】基于引力搜索算法求解二进制单目标问题附matlab代码_无人机_03

【智能优化算法】基于引力搜索算法求解二进制单目标问题附matlab代码_无人机_04

【智能优化算法】基于引力搜索算法求解二进制单目标问题附matlab代码_搜索算法_05

【智能优化算法】基于引力搜索算法求解二进制单目标问题附matlab代码_搜索算法_06

2 部分代码

% BGSA code v1.0.
%?'BGSA: Binary Gravitational Search Algorithm', Natural Computation, vol.9, pp.727- 745, 2010."
%
%This function calculates the accelaration of each agent in the gravitational field.
function a=BGfield(M,X,G,Rpower,ElitistCheck,iteration,max_it)
[N,dim]=size(X);
final_per=2; %In the last iteration, only 2 percent of agents apply force to the others.
%%%%total force calculation
if ElitistCheck==1
kbest=final_per+(1-iteration/max_it)*(100-final_per); %kbest in eq. 3.
kbest=round(N*kbest/100);
else
kbest=N;
end
[Ms ds]=sort(M,'descend');
for i=1:N
E(i,:)=zeros(1,dim);
for ii=1:kbest
j=ds(ii);
if j~=i
R=sum(X(i,:)~=X(j,:)); R=R/dim; %normalized Hamming distance.
for k=1:dim
E(i,k)=E(i,k)+rand*(M(j))*((X(j,k)-X(i,k))/(R^Rpower+1/dim));
%note that Mp(i)/Mi(i)=1
end
end
end
end
%%acceleration
a=E.*G; %note that Mp(i)/Mi(i)=1

3 仿真结果

【智能优化算法】基于引力搜索算法求解二进制单目标问题附matlab代码_参考文献_07

4 参考文献

[1]田昊. 基于引力搜索算法的水火电短期优化调度方法. Diss. 华中科技大学, 2016.

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

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


【智能优化算法】基于引力搜索算法求解二进制单目标问题附matlab代码_参考文献_08


举报

相关推荐

0 条评论