引言
近年来,在合理框架内求解优化问题的元启发式算法的发展引起了全球科学界的极大关注。本期介绍一种新的创新算法------B样条曲线优化算法B-spline curves optimizer,BSO。基于B样条曲线的数学特性,与传统的优化算法相比,BSO引入了数学公式的基本改进。BSO的关键概念是构造b样条基曲线的线性组合,描述每次迭代中连接最差位置和最佳位置的曲线的多样性,于2026年3月最新发表 在 JCR 1区,中科院2区期刊 APPLIED SOFT COMPUTING 。

本章将详细介绍一种新的基于b样条曲线的优化算法。这是一种基于将物理坐标系转换为参数坐标系思想的新算法。
- BSO中从参数空间到物理域的映射。为了简化和配合优化算法的特点,本研究中,BSO算法采用多项式次为2的b样条曲线(𝑝= 2)。为了简化计算编程,将结向量归一化为范围内的值
0,1,其值如下式

基于结点向量的约束,并考虑b样条曲线的数学约束,得到需要固定的b样条曲线控制点个数必须有6个。使用b样条曲线的一个优点是,它允许我们通过映射将参数空间转换为物理空间。假设优化问题的上界约束为𝑈𝑏,下界是𝐿𝑏,物理域空间定义为Ω =𝐿𝑏,𝑈𝑏。将该空间变换为由结向量定义的参数空间Ω =0≤𝜉≤1。通过映射,用b样条曲线表示

基于增加0.25倍的结矢量值,BSO定义如下4个独立的参数空间

对应于4个独立的参数空间Ω̃1,Ω̃2,Ω̃3,Ω̃4,我们将找到相应的物理域空间Ω1,Ω2,Ω3,Ω4. 该过程在BSO算法中进行,如图所示

- 初始化:和其他群优化算法一样,采用随机初始化。

建立一个度𝑝= 2对应于结向量𝚵={0,0,0,0.25, 0.5, 0.75, 1,1,1}的b样条曲线。因此,选择控制点来建立这条曲线是第一步BSO算法。BSO的搜索过程将通过迭代进行。假设在𝑘次迭代中,我们找到了最佳位置𝑃∗(𝑘),而最坏的位置是𝑃∗∗(𝑘)。这些位置将被选为b样条曲线的起点和终点。剩下的点将从目标值介于最佳和最差解之间的候选解中随机选择,如式所定义

因此,通过赋值这个参数𝜉(∗)𝑗=1,...,我们将根据物理曲线确定它的值

从参数空间到随机参数物理空间的转换过程

- 局部搜索(开发)的第一趋势:在BSO中陷入局部最优的可能性将被忽略,因此该领域的搜索策略将受到梯度下降算法的启发。然而,该算法将进行调整,在移动步骤中引入更多的随机性,这有助于增加发现新的全局最优位置的机会。


3.局部搜索(开发)的第二趋势:在第一步扩大空间的基础上,提出第二步,目的是减少到位置的距离. 通过这种方式,将识别出在当前迭代中发现的最优位置附近的新空间。按照这两个步骤进行更新的过程如式所示。

- 全局搜索的第一趋势:两个运动步骤相结合,探索不同运动方向的新位置。这种方法极大地增强了在不同空间中的搜索过程,并希望避开局部最优位置。

- 全局搜索的第二趋势:第二步的设计倾向于通过创建一个在下边界条件之间更加平衡的新位置来刷新搜索空间L b和上界条件Ub这个问题。这样,BSO的搜索空间就会不断刷新,这将有助于BSO在空间中建立多样性,增加逃逸局部的机会。

算法伪代码:

通过包括CEC2005、CEC2017和CEC2020在内的23个标准基准函数验证了BSO的性能,在准确性和稳定性方面始终优于其他元启发式算法。为了进一步评估其在现实世界中的适用性,将BSO应用于总高180 m的50层钢筋混凝土建筑的优化,展示了其解决具有多设计变量和严格性能约束的大规模实际工程问题的能力。结果表明,BSO是一种功能强大、高效、数学严谨的优化算法,在科学和工程领域具有很强的应用潜力。

参考文献
Minh, H.-L. and T. Cuong-Le, An integrated B-spline curves optimization framework with gradient learning capability for high-rise structural design and deep learning models. Applied Soft Computing, 2026: p. 114975.
Matlab代码下载
微信搜索并关注-优化算法侠(英文名:Swarm-Opti),或扫描下方二维码关注,以算法名字搜索历史文章即可下载。
完整代码


链接:https://pan.quark.cn/s/29556d4fcd1c
点击链接跳转:
400多种优化算法免费下载-matlab
求解cec测试函数-matlab
cec2022测试函使用教程及matlab代码免费下载
绘制cec2017/018/2019/2020/2021/2022函数的三维图像教程,SO EASY!
215种群智能优化算法python库
解决12工程设计优化问题-matlab
求解11种cec测试函数-python
解决30种工程设计优化问题-python
《一行破万法》:80余种改进策略仅需一行,可改进所有优化算法(附matlab代码)
【有经典,有最新】24种信号分解方法(附matlab代码)
【分类新范式】28种一维数据转换成二维图像的方法-matlab代码
2025年故障诊断的创新思路在哪里?赶紧来学习这28种创新方法!
https://mp.weixin.qq.com/s/EdRYeziIhnZE5zK0ZZhwmg