引言
前期已分享430多种基础优化算法(【史上最全】超过430种!群智能优化算法Matlab代码免费获取(截至2026.04.09))。根据“没有免费的午餐”,没有一个单一的群体智能优化算法可以解决所有的优化问题,每一个群体智能优化算法都有局限性和限制。所以很多学者根据自身的专业问题需求,对基础优化算法进行了改进和提升,以期获得更为优秀的性能。将初始化方法与优化算法相结合是一种常见的改进方式。
初始种群是算法搜索的基础,相对均匀的个体分布可在一定程度上提高算法寻优性能。本期不完全整理了6种常见的初始化策略,并将他们运用在算法的初始化中。该策略适用于所有优化算法。具体有:
% 1.- Hammerley初始化% 2.- Latin Hypercube初始化% 3.- Halton初始化% 4.- Sobol初始化% 5.- Faure初始化% 6.- van der Corput初始化

02. 简要介绍
低差异序列(Low-discrepancy sequence,又称拟随机序列)是一类在数值空间中分布高度均匀的确定性序列。它的核心目标是让采样点尽可能均匀地覆盖整个空间,避免纯随机采样中常见的 “聚集扎堆” 和 “空白区域” 问题,从而大幅提升采样类算法的收敛效率。它和纯随机序列最本质的区别是:纯随机采样的均匀性是概率意义上的,而低差异序列的均匀性是确定性的、可量化的。
下面介绍常见的低差异序列:
1. Hammersley序列

通过Hammersley序列实现高质量的初始种群生成,从而增强了算法的全局搜索能力和聚类性能。Hammersley序列的生成主要包括三个步骤:
1. 将任意整数表示为以素数p为其位数的多项式的和,如式所示。

2. 将数字的系数反向排序,将小数点放在后面,形成以p为基数的十进制,并计算相应的十进制值,如式所示。

3. 生成序列。

2. Latin Hypercube 拉丁超立方

拉丁超立方体采样被认为是一种强大的采样方法,减少了样本之间存在的方差,保持了生成元素之间的低相互作用。
1. 将空间划分成矩阵相等距离的空间,每一个维度上,区间定义为

2. 为每一个j≤d决策变量,一个π的随机排列在中定义的区间,防止在同一决策变量中重复,并且决策变量的每个区间仅使用一次。
3. 每个样本的值-决策变量由以下公式确定:

3. Halton 序列

对于二维的Halton序列,其实现过程为:选取两个质数作为基础量,通过对两个基础量不断展开,从而组合成一系列均匀分布且不重复的点,其展开过程数学模型描述为

4. Sobol 序列

Sobol序列拥有低差异的特性,能在多维空间中生成均匀的点集;对比随机初始化,可显著降低个体在解空间的聚集,从而提升早期全局探索质量与算法鲁棒性,适用于复杂与多峰优化问题。Sobol序列基于二进制方向数与格雷码的按位运算构造数字网,对区间(0,1)逐位细分并组合取值,可构建分布均匀的点集,确保解空间具备良好的均匀多样性。其数学模型为:

5. Faure 序列

Faure序列是使用其作为数基b的最小素数的s维序列,该最小素数不小于维数s.

6. Van der Corput 序列

Van der Corput 序列的核心思想是:选定一个整数基数 b,将自然数 n 表示为 b 进制数,再将数位反转后移到小数点右侧,得到 [0,1) 区间内的对应值。


03. 结果展示
1,对上述5种初始化方法(Van der Corput 序列一维暂不展示),进行分布上的遍历,与随机分布进行对比。可以清楚看到它们不同的分布特征。

2,将它们运用到种群初始化中。以经典粒子群PSO和灰狼优化算法GWO为例,在cec2005测试函数上对比。代码全部封装好,有细致的注释。自带PSO和GWO示例算法,跟着学,也会仅一行改进所有优化算法。


注意:初始化策略只是在算法迭代前,使得空间分布更加均匀,避免种群单一化,从而提升搜索效率。不参与算法的迭代过程,所以性能也是仁者见仁,智者见智,与其他改进策略配合使用,效果可能更佳。
参考文献
Matlab代码下载
微信搜索并关注-优化算法侠(英文名:Swarm-Opti),或扫描下方二维码关注,以算法名字搜索历史文章即可下载。
完整代码

SCI思路!低差异序列加持,优化算法改进彻底爆发了… -附matlab代码
点击链接跳转:
400多种优化算法免费下载-matlab
https://mp.weixin.qq.com/s?__biz=MzkxMDQ5MDk4Ng==&mid=2247488871&idx=1&sn=ea026691584099bc23b5d9a8c0d9d9cf&scene=21&poc_token=HG5-tWijLKDzrao_cHY0NlLHnIgBxRgsfIQFxbLi
https://mp.weixin.qq.com/s?__biz=MzkxMDQ5MDk4Ng==&mid=2247488871&idx=1&sn=ea026691584099bc23b5d9a8c0d9d9cf&scene=21&poc_token=HG5-tWijLKDzrao_cHY0NlLHnIgBxRgsfIQFxbLi
求解cec测试函数-matlab
cec2017测试函数使用教程及matlab代码免费下载
cec2018测试函使用教程及matlab代码免费下载
cec2019测试函使用教程及matlab代码免费下载
cec2020测试函使用教程及matlab代码免费下载
cec2021测试函使用教程及matlab代码免费下载
cec2022测试函使用教程及matlab代码免费下载 绘制cec2017/018/2019/2020/2021/2022函数的三维图像教程,SO EASY!
215种群智能优化算法python库
Amazing!Python版215种群智能优化算法
https://mp.weixin.qq.com/s?__biz=MzkxMDQ5MDk4Ng==&mid=2247486669&idx=1&sn=6b439e55b37b6482b8d3831ca85f1d55&chksm=c12be0c8f65c69de71ad51d3b736b871ff52f8646e90624f95dd32b024dfaad369d654aaf8fc#rd
解决12工程设计优化问题-matlab
略微出手,工程设计问题(12)(附Matlab代码)
https://mp.weixin.qq.com/s?__biz=MzkxMDQ5MDk4Ng==&mid=2247485052&idx=1&sn=80e5573c1c005ee5640e44935044ee35&chksm=c12bea79f65c636fc73758b4f4893502bd89cbd1c5d15d7db15e8b5c94eeae40450439d44944&token=681266555&lang=zh_CN#rd
求解11种cec测试函数-python
【选择自由,免费下载】215种优化算法求解11种cec测试函数-python代码
https://mp.weixin.qq.com/s?__biz=MzkxMDQ5MDk4Ng==&mid=2247486669&idx=2&sn=eea8fb04dc507ab9119e2c97c03ca2f6&chksm=c12be0c8f65c69decd6c8109f6b997986bf58725fdbbd7ab03752cb6f61aacdb5a2dc7fec762#rd
解决30种工程设计优化问题-python
【一码解决】215种优化算法求解30个现实世界的工程设计优化问题,让你的论文增色10倍(附Python代码)
https://mp.weixin.qq.com/s?__biz=MzkxMDQ5MDk4Ng==&mid=2247486669&idx=3&sn=ea6d26ae7cb651e5c368f4c73ade228e&chksm=c12be0c8f65c69de739af72d9793838f59ab77bfee36bc2c204f96e2a9e5c6d87dfbbbae698e#rd
《一行破万法》:80余种改进策略仅需一行,可改进所有优化算法(附matlab代码)
https://mp.weixin.qq.com/s?__biz=MzkxMDQ5MDk4Ng==&mid=2247487693&idx=1&sn=2e112a6ecad1a302179ed83a955fb26b&scene=21&poc_token=HBF_tWijdJadHRqwV2szg8ee9k-p1DTwa8W7GF4C
https://mp.weixin.qq.com/s?__biz=MzkxMDQ5MDk4Ng==&mid=2247487693&idx=1&sn=2e112a6ecad1a302179ed83a955fb26b&scene=21&poc_token=HBF_tWijdJadHRqwV2szg8ee9k-p1DTwa8W7GF4C
【有经典,有最新】24种信号分解方法(附matlab代码)
沙场大点兵:24种信号分解方法(附matlab代码)
https://mp.weixin.qq.com/s?__biz=MzkxMDQ5MDk4Ng==&mid=2247486001&idx=1&sn=a87c24cb401017a78a90bd1b1439fcb0&chksm=c12be634f65c6f22368b7229a59ac5ef330b89d710c826dbfd1a1c34a02b1dd7e909c7f40d79&token=25423484&lang=zh_CN#rd






