正弦余弦优化算法[记录]
之前整了一篇花朵授粉算法,本来打算最终应用的时候用那个,结果发现花朵授粉算法还是参数比较多的。所以选择了这个正弦余弦优化算法(Sine and Cosine Algorithm)。这个算法具体实现的时候基本上可以认为是没有参数,也就是说除了个群大小,迭代次数之类的这种优化算法必要的参数以外,可以当做是不存在其他参数的。
首先简单介绍一下正弦余弦算法,这个算法是澳大利亚学者Mirjalili提出的。这个人在这类优化算法中真的是很厉害,像鲸鱼优化算法,多元宇宙算法,包括这个正弦余弦算法,都是他提出的。给我的感觉就是,这类算法大部分在寻优的时候,分为两部分,也就是局部挖掘和全局搜索。这两个部分相互促进又相互矛盾,全局搜索用于快速定位最优解的范围,而局部挖掘用于寻找最优解,这两者必须达到一种动态平衡的状态。全局搜索过多的时候,运行会特别慢,尤其是用MATLAB这种不擅长循环的软件;局部挖掘过多的时候,就容易陷入局部最优解,当然实际工程里,全局最优解可能真的不容易找到,尤其在一些非凸问题里,局部最优解也凑合。
现在重点说一点这个正弦余弦算法。算法第一步要定义什么最大迭代次数啊,什么种群大小(或许不是这个名称)什么的。第二步就是可以直接计入迭代了。用下面这个公式
里面X是种群,t是当前迭代次数,X*是上一代最优解。算法的重点是r1到r4这四个参数,这四个参数除了r1,其他都是随机数!!!这一点非常喜欢,不用为算法参数考虑太多不像上次整的花朵授粉算法,需要一堆参数。r2说是范围在[0,2pi],但是看r2在三角函数里面,所以r2可以随机取任何值。r3是[0,2]控制和最优解的距离,保持种群的多样性。r4是转换概率,范围是[0,1]控制迭代是用正弦函数还是余弦函数。r1用下面这个公式来算
a设置个大于0的数就可以了,也忘记了在哪个文献里看的,a=2,可以参考一下。
具体实现流程跟其他类似的算法(遗传算法、粒子群算法、花朵授粉算法)差不多,就是把迭代公式换成这个就行了。具体学生狗搞数学建模的时候用惯了遗传算法或者粒子群算法的话,用这个试试效果差不多,胜在参数比较少。
正弦余弦优化算法[记录]相关推荐
- 自学习策略和Levy飞行的正弦余弦优化算法-附代码
自学习策略和Levy飞行的正弦余弦优化算法 文章目录 自学习策略和Levy飞行的正弦余弦优化算法 1.正余弦算法 2. 改进的正弦余弦优化算法 2.1 自学习策略 2.2 停滞扰动策略 3.实验结果 ...
- 自学习策略和Lévy飞行的正弦余弦优化算法
文章目录 一.理论基础 1.正弦余弦优化算法 2.改进的正弦余弦优化算法 (1)自学习策略 (2)停滞扰动策略 (3)SCASL寻优步骤 二.仿真结果及分析 三.参考文献 一.理论基础 1.正弦余弦优 ...
- 智能优化算法:正余弦优化算法-附代码
智能优化算法:正余弦优化算法-附代码 文章目录 智能优化算法:正余弦优化算法-附代码 1.算法原理 2.算法流程 3.算法结果 4.参考文献 5.MATLAB代码 6.Python代码 摘要:正 余 ...
- 智能优化算法——正余弦优化算法(SCA)及其改进策略
正余弦优化算法(SCA)及其改进策略 一.基本介绍 1. 背景 2. 算法简介 二.基本的SCA算法 1. 算法介绍 2. 算法步骤 三.算法分析 1. 正余弦分布 2. 算法实验结果 3. 算法优缺 ...
- 融合多策略的黄金正弦黑猩猩优化算法
文章目录 一.理论基础 1.基本黑猩猩优化算法 2.改进的黑猩猩优化算法 2.1 Halton序列初始化种群 2.2 非线性收敛因子和自适应权重 2.2.1 非线性收敛因子 2.2.2 自适应权重因子 ...
- 正余弦优化算法(SCA)
正余弦优化算法 (Sine Cosine Algorithm,SCA) 是Seyedali Mirjalili等于2016年提出的一种新型智能优化算法,在算法中会生成多个初始随机候选解,并使它们基于正 ...
- 数学建模学习(87):正余弦优化算法(SCA)对多元函数寻优
本篇教程通过简洁的方式教大家了解SCA算法,轻松搭建代码块实现寻优. 文章目录 算法简介 一.算法原理 二.数学模型 三.算法流程 四.算法优缺点 五.参考文献 六.案例实现(一) 6.1 目标函数处 ...
- 混合正弦余弦算法和Lévy飞行的麻雀算法
文章目录 一.理论基础 1.基本麻雀搜索算法 2.混合正弦余弦算法和Lévy飞行的麻雀算法(ISSA) (1)融合正弦余弦算法(SCA)思想 (2)Lévy飞行策略 二.ISSA算法流程图 三.算法性 ...
- 融合改进天牛须和正余弦的双重搜索优化算法
文章目录 一.理论基础 1.正余弦优化算法 2.天牛须搜索算法 3.融合改进天牛须和正余弦的优化算法 (1)引入自适应权重 (2)递减参数r1r_1r1的改变 (3)变步长搜索机制 (4)算法流程图 ...
- 黄金正弦混合原子搜索优化算法
文章目录 一.理论基础 1.基本原子搜索优化算法 (1)相互作用力Fid\boldsymbol{F_i^d}Fid (2)共价键约束力Gid\boldsymbol{G_i^d}Gid (3)原子加 ...
最新文章
- 10 行 Python 代码自动清理电脑重复文件,解放双手!
- [转]Cookie/Session机制详解
- php html class,如何使用HTML span标签的class属性?这里有关于class属性的详解
- 服务器网卡的连接速度改成自动检测_ubuntu xftp,ubuntu xftp之间怎么连接,连接步骤...
- 201711月04日普及组 Array
- 区块链技术解决物联网安全问题
- 虚无鸿蒙哪个厉害,【图说鸿蒙】鸿蒙设定之七柱神(五)
- linux系统可以用迅雷吗,在Linux系统下使用wine运行迅雷5的方法
- 数据库的四大特性以及事务的隔离级别
- 【elasticsearch】 Regexes are disabled. Set [script.painless.regex.enabled] to [true]
- UI设计师分析用户的常用方法
- function core.php is missing,PHP代码
- 【测试沉思录】7. 测试左移的一点思考
- 二极管介绍及参数选择
- 如何使用Python 绘制惊艳众人的瀑布图
- 【JavaScript问题】JavaScript 请求后台报错 Invalid character found in the request target
- win7无损分区和硬盘分区调整合并
- 微信开放平台开发第三方授权登陆(三):Android客户端
- php模拟登录QQ空间3.0 2014-11-23
- paillier同态加密算法原理及代码实现
热门文章
- C - One-dimensional Japanese Crossword CodeForces - 721A
- java swing 显示图片_Swing显示图片
- python摄像头人脸识别代码_Python3利用Dlib19.7实现摄像头人脸识别的方法
- 你想学Python爬虫?看看这篇关于开发者工具神器的博客吧
- ubuntu 18.04 安装 wine5.0
- 也许你看了一本假的天龙八部
- WEB后端服务第22天-Django项目第2天
- vue typeScript get set 用法
- 2020年Google SEO 8大趋势
- Android 中的 ClassLoader 摘抄笔记