智能优化算法:树种算法-附代码

智能优化算法:树种算法-附代码


摘要:树种优化算法(Tree seed Optimizer Algorithm,TSA)是由 Kiran 等人于 2015年提出的一种基于大自然树木生长繁衍方式的新型群智能优化算法。树种算法被提出后,因标准树种智能优化算法较一些传统智能优化算法结构更简单,搜索精度更高,鲁棒性更强,从而引起了国内外一些学者的广泛关注。

1.算法原理

树种算法是一种通过模拟大树的繁殖方式来寻找最优解的元启发式优化算法。在基本树种算法中,首先利用式(1)在搜索空间中生成一批树木:
T i , j = L j , m i n + r i , j ( H j , m i n − L j , m i n ) (1) T_{i,j}=L_{j,min}+r_{i,j}(H_{j,min}-L_{j,min})\tag{1} Ti,j=Lj,min+ri,j(Hj,minLj,min)(1)
中, T i , j T_{i,j} Ti,j为树木的位置; L j , m i n L_{j,min} Lj,min为 搜 索 空 间 的 下 界; H j , m i n H_{j,min} Hj,min
搜索空间的上界; r i , j r_{i,j} ri,j是一个随机数,取值范围为[0,1]。

通过式(1)随机生成的树木中,并不是所有的树木产生种子的能力都一样强,针对最小化问题,需要利用式(2)找出位置最优的树。
B = m i n { f ( T i ) } , i = 1 , 2 , . . . , N (2) B = min\{f(T_i)\},i=1,2,...,N \tag{2} B=min{f(Ti)},i=1,2,...,N(2)
接着,位置最优的树木会产生新的种子。在 TSA 中,为了平衡算法全局搜索和局部搜索的能力,提出两种机制来产生新的种子,如式(3)和式(4)所示。式(3)侧重于全局搜索,全局搜索可以避免算法在迭代过程中陷入局部最优。式(4)侧重于局部搜索,局部搜索有利于算法的收敛。
S i , j = T i , j + α i , j ( T i , j − T r , j ) (3) S_{i,j}=T_{i,j}+\alpha_{i,j}(T_{i,j}-T_{r,j})\tag{3} Si,j=Ti,j+αi,j(Ti,jTr,j)(3)

S i , j = T i , j + α i , j ( B j − T r , j ) (4) S_{i,j}=T_{i,j}+\alpha_{i,j}(B_j-T_{r,j})\tag{4} Si,j=Ti,j+αi,j(BjTr,j)(4)

其中, S i , j S_{i,j} Si,j为第 i i i颗树上繁殖的第 i i i 颗种子的第 j j j个元素, T i , j T_{i,j} Ti,j是第 i i i颗树上的第 j j j 个元素,是当前位置最优的树上的第 j j j个元素, α i , j \alpha_{i,j} αi,j是步长因子,是一个属于[-1,1]的随机数。

算法流程:

Step1. 树种算法的初始化。设置种群数量 N,搜索趋势常数ST,问题的维数 D。利用式(1)对树木的位置进行初始化,并通过式(2)求出位置最佳的树。
Step2. 生成种子。根据式(5)生成搜索趋势常数值,利用式(3)和式(4)生成新的种子。
Step3 选择最优解。选出最优解,若生成的种子比上一代树木位置更佳,则用新的种子取代上一代树木的位置。
Step4 判断是否满足终止条件,如果满足则循环结束;否则跳转到步骤 Step4 。

2.算法结果

在这里插入图片描述

3.参考文献

[1] Kiran M S. TSA: Tree-seed algorithm for continuous optimization[J]. Expert Systems with Applications, 2015, 42(19): 6686-6698.

[2] 彭浩,和丽芳.基于改进树种算法的彩色图像多阈值分割[J].计算机科学,2020,47(S1):220-225.

4.Matlab代码

5.Python代码

个人资料介绍

  • 3
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

智能算法研学社(Jack旭)

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值