智能优化算法:供需优化算法
文章目录
- 智能优化算法:供需优化算法
- 1.算法原理
- 2.实验结果
- 3.参考文献
- 4.Matlab
摘要:供需优化(supply-demand-based optimization,SDO)算法是 Zhao 等于 2019 年受经济学供需机制的启发而提出的一种新型元启发式优化算法。该算法在数学上模拟了消费者的需求关系和生产者的供给关系,通过将供求机制之稳定模式和非稳定模式引入到 SDO 算法中,利用两种模式在给定空间中进行局部搜索和全局搜索求解待优化问题。与传统群智能算法相比,SDO 算法收敛速度快、寻优精度高、调节参数少,具有较好的探索和开发能力。
1.算法原理
SDO 数学描述简述如下:
(1) SDO 算法初始化。假设有 个市场,每个市场有 种不同的商品,每种商品都有一定的数量和价格。市场中 种商品价格表示优化问题 维变量的一组候选解,同时将市场中 种商品数量作为一组可行解进行评估,如果可行解优于候选解,则可行解替换候选解。 个市场商品价格和商品数量分别用 、 两个矩阵表示:
式中: 和 分别为第个商品价格和数量; 和 分别为第个商品在第
利用适应度函数分别对每个市场中的商品价格和数量进行评估,对于个市场,商品价格和商品数量的适应度分别为:
(2)商品均衡数量与均衡价格。假设每种商品的均衡价格和均衡数量在每次迭代过程中都是可变的,从每个市场商品数量集合中选择一种商品数量作为其数量均衡向量,其市场适应度值越大,表示每个市场所选商品数量的概率就越大。同时,每个市场也可以根据其概率从商品价格集合中选择一种商品价格或以所有市场商品价格的平均值作为均衡价格。商品均衡数量 表示如下:
其中:
式中:为商品数量 的适应度值;为比选算子(roulette wheel selection)。
商品均衡价格表示如下:
其中:
式中:为商品价格的适应度值;
供给函数和需求函数。依据均衡数量 、均衡价格分别给出供给函数和需求函数:
式中: 和分别为第 次迭代第个商品价格和数量; 和 分别为需求权重和供给权重,通过调整
将式(6)插入式(7)中,可以将需求算式重写为:
供应权重 和需求权重 分别为:
式中:为最大迭代次数。用变量表示供应权重 和需求权重 的乘积,可以得到:
变量有助于 SDO 算法在勘探和开发之间平稳过渡。 属稳定模式,通过调整供应权重 和需求权重 得到均衡价格 周围不同的商品价格,这些商品价格可以通过随机数 在当前价格和均衡价格之间随机变化,稳定模式机制强调“开发”以改善SDO 算法的局部勘探能力。
算法步骤:
step1:设置 SDO 算法市场群体数,最大迭代次数,问题维度,搜索空间。随机初始化商品价格 和商品数量
step2:计算商品价格和商品数量的适应度值 和 ,如果 优于 ,则用 代替 ,保存
step3确定供应权重和需求权重
step4:对于每个市场,利用式(4)确定均衡数量 ;利用式(5)确定均衡价格。
step5:利用式(6) 更新商品数量;利用式(7)更新商品价格 。基于式(14)计算商品价格 和商品数量 的适应度值 和,如果 优于 ,则用 代替 ,保存
step6:令 t=t+1。判断算法是否达到终止条件,若是,输出最优解 x best ,算法结束;否则重复step2~step6。
2.实验结果
3.参考文献
[1] Engineering; Hebei University of Engineering Details Findings in Engineering (Supply-demand-based Optimization: a Novel Economics-inspired Algorithm for Global Optimization)[J]. Journal of Engineering,2019,{4}{5}:
[1]崔东文,李代华.基坑变形预测的改进供需优化算法-指数幂乘积模型[J].水利水电科技进展,2020,40(04):43-50.
4.Matlab
个人资料介绍