优化算法通用的优化策略:单纯形法

前些天在忙,他们学生刚盲审完,给他们改完,本想着自己写了一篇准备投出去,事情太多了,现在文章也差不多在写一半了,还有些小细节在修改。

所以现在有些时间写,今天讲的是一个叫做单纯形法的东西。

很多人一听起来就感觉很陌生,什么是单纯形法?

听我下面讲来

单纯形法是代数拓扑中的概念, 通过反射、扩张、收缩等几何变换寻求问题的最优解。是指在空间中构造一个多面体,找出该多面体每个顶点的适配度并进行比较, 找出最佳、次最佳和最差, 通过反射、收缩、扩张等操作更新最差, 形成一个新的多面体。它具有使用方便、适用范围广、收敛速度快等特点。

每一次操作,都会用一个更好的解替换当前的最差解。单纯形法的搜索点如图 1所示。

图片

单纯形法步骤如下: 以最优化问题  为例, 计算最优点  、最差点  、次优点  的函数值, 根据最优点和最差点计算中点位置 , 基本操作如下。

  1. 反射操作

计算反射点 , 其中  为反射系数 , 常取 1 。

  1. 扩展操作

如果 , 则计算扩张点 , 其中  为扩展系数, 本文取 2 。如果 , 则用扩张点代替最差点, 否则用反射点替代最差点。

  1. 压缩操作

如果 , 说明反射方向有误, 进行向内压缩操作 , 其中  为压缩系数, 本文取 0.5 。如果 , 则用压缩点替代最差点。如果 $w<rw则用收缩点s替代最差点w$, 否则用反射点替代最差点。</r

以鲸鱼算法为例,

图片

因此, 反射操作能使最差点搜索所有可行解; 扩张操作能使最优值点向距最差点更远的反方向搜索。如果当前最优值点为极值点, 扩张操作能使该点跳出局部极小值处; 收缩操作则能使较差点收缩到更好的位置, 提高算法的搜索能力和寻优能力。

综上,单纯形法具有较高的价值,很多人也没见过听过,可以说很新颖,适合喜欢自己动手改进的,当然每种策略应用在各种算法上效果各有不同。

代码和参考文献都在里面,直接用即可。

在公众号:算法仓库。链接直接下面点击:阅读原文,或者后台发送:DCX,即可

 。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值