一种求解非线性单目标优化问题的混合粒子群算法
PS:本文为原创文章:未经允许禁止转载(程序:PSOMA)
引言
传统的优化方法(如牛顿法、单纯形法)需要遍历整个搜索空间,无法在短时间内完成搜索,也容易陷入局部最优,并且最优解受初始点的选择影响甚大。
智能优化算法的出现,它们具有简单、通用和便于并行处理等特点,使之很容易用来求解复杂优化问题,但是对于复杂问题算法的收敛速度可能较慢。
本文贡献
提出了一个PSOMA的基础框架,可以将不同数值优化方法进行加入到局部策略中;
本文提出的算法求解的精度比不加入局部策略的算法的求解精度更高,收敛速度更快,也更适合解决复杂的数学问题。
相关工作
一般的,一个单目标非线性规划的数学模型如下:
粒子群优化算法PSO:
粒子群优化算法流程:
数学规划问题(M1)
一家彩电制造商计划推出两种新产品:一种19英寸液晶平板电视机,制造商建议零售价339美元;另一种21英寸液晶平板电视机,零售价为399美元。公司付出的成本为19英寸彩电每台195美元,21英寸彩电每台225美元,还要加上400000美元的固定成本。在竞争的销售市场中,每年销售处的彩电数量会影响彩电的平均售价。据统计,对每种类型的彩电,每多售出一台,平均销售价格会下降1美分。而且19英寸彩电的销售会影响21英寸彩电的销售,反之亦然,据估计,每售出一台21英寸彩电,19英寸彩电的平均售价会下降0.3美分,而每售出一台19英寸彩电,21英寸彩电的平均售价会下降0.4美分。问:每种彩电应该各生产多少台?收益最大。
测试函数(C1-C6)
算法思想
算法流程
数值优化局部策略
如果局部搜索过程中,获得的最优解超出搜索区域,则进行边界处理1
,
更新粒子最优值
粒子群算法更新
如果粒子群算法更新最优解过程中,超出边界限制,则粒子的边界处理如下所示,即在搜索区域内随机初始化:
实验与分析
为了验证本文提出的算法的效果,做了一系列实验,实验所用系统为 Window10 Intel(R) Core(TM) i5-1135G7 @ 2.40GHz 2.42,MATLAB R2018b。
评价指标
本文使用平均误差来评价算法的好坏,误差均值越小,算法求解效果越好,收敛速度越快。
粒子群算法和PSOMA算法对比
PSOMA 带有不同数值优化对比
PSOMA 算法和其他经典算法对比
总结
本文通过以粒子群算法为框架,在其中加入了数值优化局部搜索方法,通过局部方法获得的最优解引导粒子群算法的粒子更新和搜索方向和位置的更新,同时根据粒子群算法的位置反过来引导局部策略向最优解方向进化,有效防止了局部策略陷入局部最优,也加快了粒子群算法的收敛速度和求解精度。通过一系列对比实验,发现比较适合的两种局部搜索策略(GRAD 和 FRCG)可以用来求解非线性多目标优化问题,本文提出的算法求解方法优于经典的进化算法
缺点,对于没有准确数学模型的问题,无法求出导数的复杂问题、离散问题以及复杂约束问题,本文的算法无法用来求解。 由于加入了局部搜索策略本文的算法的运行时间略慢于不加局部策略的算法。 对于如何解决算法的缺陷问题,如何在多目标优化问题中加入数值策略,也是 进一步研究的方向。
PS:本文为原创文章:未经允许禁止转载