二进制版的引力搜索算法(BGSA)程序,还挺有意思的。它其实就是经典的 GSA 算法在离散场景下的一个变形,适合二进制优化问题,比如特征选择、组合优化那类问题。代码是用 Matlab 写的,结构清晰,变量命名也比较规范,新手都能看得明白。

Matlab 的 BGSA 实现用了比较标准的引力模型,把个体位置、速度、质量都离散化了,效果还不错。和传统 GSA 相比,BGSA 更适合像 0-1 背包问题这种只能取 1 或 0 的情况。运行下来,结果收敛得挺快,调参空间也大。

想深入了解原理,可以看看这篇论文:BGSA: Binary gravitational search algorithm。写得蛮清楚的,里面公式也不复杂,懂点优化算法的人一看就明白。

如果你平时在用 Matlab 做算法仿真或者研究二进制优化问题,那这个 BGSA 代码挺值得一试的。顺便推荐几个相关资源:

如果你对 BGSA 算法感兴趣,又刚好在做二进制方向的研究,可以直接把代码跑一跑,改几个参数看看效果,说不定能省你不少时间哦~