榛子树搜索算法(Hazelnut tree search algorithm,HTS)附matlab代码

简介: 榛子树搜索算法(Hazelnut tree search algorithm,HTS)附matlab代码

✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。

🍎个人主页:Matlab科研工作室

🍊个人信条:格物致知。

更多Matlab仿真内容点击👇

智能优化算法  神经网络预测雷达通信 无线传感器

信号处理图像处理路径规划元胞自动机无人机

⛄ 内容介绍

在本文中,提出了一种新颖的自然启发优化算法,榛子树搜索(HST),用于解决数值和工程优化问题。HST 是一种多智能体算法,可模拟在森林中寻找最佳榛子树的搜索过程。该算法由三个主要执行器组成:生长、果实散播和根系传播。在成长阶段,树木在共享资源上相互竞争,以成长并提高其健康度。在水果散播阶段,HTS 在动物和啮齿动物的帮助下,通过模拟榛子在森林周围的运动来进行探索。在根传播中,HTS 通过对周围树木的根传播机制进行建模来执行利用。在多变量无约束数值优化基准和约束工程问题上评估了所提出算法的性能。将所提出的算法与其他一些优化算法进行比较,可以看出 HTS 在解决问题的成功率和在大多数基准问题上找到全局最优值方面的优越性。

⛄ 部分代码

function [x] = growth(Population, AlgorithmParams, ProblemParams, alpha, t)

dmax = norm(ProblemParams.VarMax-ProblemParams.VarMin);


maxCost=max(Population(:,end));

sumCost=sum(Population(:,end));


ProblemParams.dmax=dmax;

ProblemParams.maxCost=maxCost;

ProblemParams.sumCost=sumCost;



for i=1:AlgorithmParams.NumOfTrees

   cored=Population(i,:);

   w1=unifrnd(alpha,alpha);

   g=(1-exp(-4*t/AlgorithmParams.NumOfYears)).*w1;

   R=cored(:,1:end-1)+g;

   

   r=rand;

   if r>=0.5

       x(i,:)=R;

   else

       landa=computeLanda(ProblemParams,AlgorithmParams,Population, i);

       x(i,:)=(1/(1+landa)).*R;

   end    

   x(i,:)=max(x(i,:),ProblemParams.VarMin);

   x(i,:)=min(x(i,:),ProblemParams.VarMax);

end

costs = feval(ProblemParams.CostFuncName,x);

x(:,end+1) = costs;

end

function l=computeLanda(ProblemParams,AlgorithmParams,Population,i)

fi=Population(i,end);

coredTree=Population(i,:);

if ProblemParams.maxCost>0

   nfi = 0.9*(ProblemParams.maxCost-fi)/ProblemParams.sumCost;

else

   nfi = 0.7*max(ProblemParams.maxCost-fi)/ProblemParams.sumCost;

end


zi=round(nfi*(AlgorithmParams.NumOfTrees-1));    % Excluding individual i so the neighbors is selected from N-1 trees

zi=min(zi, AlgorithmParams.NumOfTrees-1);

temp=Population(1:end ~=i, :);       % For deleting individual i

RandomIndex = randperm(AlgorithmParams.NumOfTrees-1);

s=RandomIndex(1:zi);

Ng=temp(s,:);


landa=0;

for j=1:zi

   dij=norm(coredTree(1,end-1)-Ng(j,1:end-1))/ProblemParams.dmax;

   fj=Ng(j,end);

   landa=landa+(fj/fi)*atan(fj/dij);

end

l=landa;

end

⛄ 运行结果

⛄ 参考文献

Emami, H. Hazelnut tree search algorithm: a nature-inspired method for solving numerical and engineering problems. Engineering with Computers (2021). https://doi.org/10.1007/s00366-021-01460-1

❤️ 关注我领取海量matlab电子书和数学建模资料
❤️部分理论引用网络文献,若有侵权联系博主删除


相关文章
|
5月前
|
算法 定位技术 计算机视觉
【水下图像增强】基于波长补偿与去雾的水下图像增强研究(Matlab代码实现)
【水下图像增强】基于波长补偿与去雾的水下图像增强研究(Matlab代码实现)
466 0
|
5月前
|
算法 机器人 计算机视觉
【图像处理】水下图像增强的颜色平衡与融合技术研究(Matlab代码实现)
【图像处理】水下图像增强的颜色平衡与融合技术研究(Matlab代码实现)
181 0
|
5月前
|
算法 数据可视化 测试技术
HNSW算法实战:用分层图索引替换k-NN暴力搜索
HNSW是一种高效向量检索算法,通过分层图结构实现近似最近邻的对数时间搜索,显著降低查询延迟。相比暴力搜索,它在保持高召回率的同时,将性能提升数十倍,广泛应用于大规模RAG系统。
479 10
HNSW算法实战:用分层图索引替换k-NN暴力搜索
|
5月前
|
机器学习/深度学习 算法 机器人
使用哈里斯角Harris和SIFT算法来实现局部特征匹配(Matlab代码实现)
使用哈里斯角Harris和SIFT算法来实现局部特征匹配(Matlab代码实现)
262 8
|
5月前
|
机器学习/深度学习 编解码 算法
基于OFDM技术的水下声学通信多径信道图像传输研究(Matlab代码实现)
基于OFDM技术的水下声学通信多径信道图像传输研究(Matlab代码实现)
268 8
|
5月前
|
机器学习/深度学习 数据采集 测试技术
基于CEEMDAN-VMD-BiLSTM的多变量输入单步时序预测研究(Matlab代码实现)
基于CEEMDAN-VMD-BiLSTM的多变量输入单步时序预测研究(Matlab代码实现)
203 8
|
5月前
|
机器学习/深度学习 算法 自动驾驶
基于导向滤波的暗通道去雾算法在灰度与彩色图像可见度复原中的研究(Matlab代码实现)
基于导向滤波的暗通道去雾算法在灰度与彩色图像可见度复原中的研究(Matlab代码实现)
301 8
|
5月前
|
机器学习/深度学习 算法 机器人
【水下图像增强融合算法】基于融合的水下图像与视频增强研究(Matlab代码实现)
【水下图像增强融合算法】基于融合的水下图像与视频增强研究(Matlab代码实现)
512 0
|
5月前
|
数据采集 分布式计算 并行计算
mRMR算法实现特征选择-MATLAB
mRMR算法实现特征选择-MATLAB
338 2
|
6月前
|
传感器 机器学习/深度学习 编解码
MATLAB|主动噪声和振动控制算法——对较大的次级路径变化具有鲁棒性
MATLAB|主动噪声和振动控制算法——对较大的次级路径变化具有鲁棒性
311 3

热门文章

最新文章