智能优化算法之风驱动优化搜索算法(附matlab实现源码)
领域 | 物理 数学优化 蚁群优化算法 粒子群优化 遗传算法 元启发式 全局优化 多群优化 元优化 无导数优化 |
自然启发的技术,如遗传算法(GA)[1]、蚁群优化(ACO)[2]和粒子群优化(PSO)[3]已经被证明是一些最有效的全局优化策略。因此,这些技术目前在科学和工程界广泛使用。本文提出了一种新的基于风在地球大气中运动的全局优化算法。我们称这种新的自然启发技术风力驱动优化(WDO)。WDO是一种基于种群的迭代启发式全局优化技术。在N维问题空间中分布着一个无限小的空气包群,并分配随机速度,以便在每次迭代时根据控制大尺度大气运动的物理方程更新空气包的位置。
风驱动优化(Wind Driven Optimization,WDO)算法是由Bayraktar Z 等人在 2010年提出的一种基于群体的全局优化算法 。该算法基于对简化的空气质点受力运动模型的模拟,其核心是研究空气质点在大气中的受力运动情况,结合牛顿第二定律及理想气体状态方程,推导出空气质点在每次迭代中的速度和位置更新方程。相比于其他智能优化算法,该算法更新方程具有一定的物理意义,能够保证空气质点的全局“探索”能力与局部“开发”能力的平衡。
1.算法原理
风驱动优化算法(WDO)的启发来自于大气的流动,也就是风的运动可以自动补偿大气压力的不平衡 。根据牛顿第二定律来描述一个极小空气单元的运动规律,以空气单元的最终流动位置为候选解,从而完成对问题的最优求解,该算法概念明确、清晰、易于理解,是自然启发式算法研究领域的一种新型全局优化算法。
1.1 参数的编码
设空气 P 中的空气单元个体数为 S ,每个个体的位置矢量的维数 为D 。该种群可以用一个 SxD的矩阵来表示:
考虑到空气受地域的影响,可以由用户根据具体工程背景决定各个参数的取值范围,初始空气单元在相应的取值范围内随机产生。
1.2 适应度函数的选取
WDO算法在搜索进化过程中不仅用压力函数值来评价个体或解的优劣,并作为以后空气单元位置更新的依据,使得初始解逐步向最优解迭代。压力函数是空气单元优化算法与控制系统结合的纽带,指导着算法按控制目标要求不断迭代。
1.3 空气单元运动范围的确定
对于每一维度,风驱动优化算法只允许空气单元在设定的范围内运动。在任何维度中,如果空气单元试图冲出这些界限,那么这些特殊的维度位置就被设置为界限值。因此空气单元位置约束如下: