(源码)群体智能优化算法之正余弦优化算法(Sine Cosine Algorithm,SCA)
获取更多资讯,赶快关注上面的公众号吧!
文章目录
- 正余弦优化算法(Sine Cosine Algorithm,SCA)
- SCA
正余弦优化算法(Sine Cosine Algorithm,SCA)
该算法是由澳大利亚的Mirjalili于2016年提出的一种基于种群的新型随机优化算法,SCA创建多个初始随机候选解,然后利用基于正弦和余弦函数的数学模型,使得这些解朝最优解方向或反向波动。算法源代码可以关注公众号后回复"正余弦"获取。
SCA
SCA本质上为基于种群的优化算法,而基于种群的优化算法的共同点是都包含两个阶段:探索和利用。探索阶段,算法以较大的概率随机搜索以充分探索搜索空间,而在利用阶段,随机概率逐渐下降。
SCA使用以下两个等式进行位置更新:
Xit+1=Xit+r1×sin(r2)×∣r3Pit−Xit∣(1)X_{i}^{t+1}=X_{i}^{t}+r_{1} \times \sin \left(r_{2}\right) \times\left|r_{3} P_{i}^{t}-X_{i}^{t}\right|\tag{1}Xit+1=Xit+r1×sin(r2)×∣∣r3Pit−Xit∣∣(1)
Xit+1=Xit+r1×cos(r2)×∣r3Pit−Xit∣(2)X_{i}^{t+1}=X_{i}^{t}+r_{1} \times \cos \left(r_{2}\right) \times\left|r_{3} P_{i}^{t}-X_{i}^{t}\right|\tag{2}Xit+1=Xit+r1×cos(r2)×∣∣r3Pit−Xit∣∣(2)
其中XitX_{i}^{t}Xit为第ttt次迭代中当前解在第iii个维度上的位置,r1r_1r1/r2r_2r2/r3r_3r3为随机数,PiP_{i}Pi为第iii维终点的位置。
这两个等式通常按照如下的组合方式使用:
Xit+1={Xit+r1×sin(r2)×∣r3Pit−Xit∣,r4<0.5Xit+r1×cos(r2)×∣r3Pit−Xit∣,r4≥0.5(3)X_{i}^{t+1}=\left\{\begin{array}{ll} X_{i}^{t}+r_{1} \times \sin \left(r_{2}\right) \times\left|r_{3} P_{i}^{t}-X_{i}^{t}\right|, & r_{4}<0.5 \\ X_{i}^{t}+r_{1} \times \cos \left(r_{2}\right) \times\left|r_{3} P_{i}^{t}-X_{i}^{t}\right|, & r_{4} \geq 0.5 \end{array}\right. \tag{3}Xit+1={Xit+r1×sin(r2)×∣r3Pit−Xit∣,Xit+r1×cos(r2)×∣r3Pit−Xit∣,r4<0.5r4≥0.5(3)
其中r4r_4r4为[0,1]之间的随机数。
可以看出,在SCA中主要涉及四个参数:r1r_1r1,r2r_2r2,r3r_3r3和r4r_4r4。参数r1r_1r1为下一位置的所在区域(或移动方向),该区域既可以位于解和终点之间的空间内,也可以不在。参数r2r_2r2定义了朝向或背离终点的距离远近。参数r3∈[0,2]r_3\in[0,2]r3∈[0,2]为终点引入了随机权重,以随机强调(r3>1r_3>1r3>1)或弱化(r3<1r_3<1r3<1)终点在距离计算时的作用。参数r4r_4r4用于以相等的概率在正弦和余弦之间进行切换。
等式(1)和(2)中正弦和余弦对下一位置的影响如图1所示,正弦和余弦的周期模式可以允许一个解在另一个解周围重新定位,从而保证利用两个解之间定义的空间,同时为了探索搜索空间,解应该能够搜索其对应终点之间之外的空间,而这可以通过改变正弦和余弦函数的取值范围来实现,如图2所示。
图3展示了改变正余弦的取值范围可以更新解的位置,该随机位置到底是在空间内还是空间外,是通过等式(3)中定义的r2∈[0,2π]r_2\in[0, 2\pi]r2∈[0,2π]来实现的。
为了平衡探索和利用,正弦和余弦的取值范围应该自适应地调整:
r1=a−taT(4)r_{1}=a-t \frac{a}{T}\tag{4}r1=a−tTa(4)
其中ttt为当前迭代,TTT为最大迭代次数,aaa是一个常数。图4展示了当a=2a=2a=2时取值范围递减的过程。
所以通过图3和图4可知,当取值范围在(1,2]和[-2,-1)范围内时,SCA算法在空间内进行探索,而当取值范围在[-1,1]之间时,SCA在空间内进行利用。
SCA算法的伪代码如下:
初始化初始解(XXX)
Do
评估每个代理的目标函数
更新当前最优解(P=X∗P=X^*P=X∗)
更新r1r_1r1,r2r_2r2,r3r_3r3和r4r_4r4
更新代理的位置(式3)
While(ttt<最大迭代次数)
Return全局最优解
(源码)群体智能优化算法之正余弦优化算法(Sine Cosine Algorithm,SCA)相关推荐
- 智能优化算法:正余弦优化算法-附代码
智能优化算法:正余弦优化算法-附代码 文章目录 智能优化算法:正余弦优化算法-附代码 1.算法原理 2.算法流程 3.算法结果 4.参考文献 5.MATLAB代码 6.Python代码 摘要:正 余 ...
- (SCA)正弦余弦算法SCA: A Sine Cosine Algorithm(代码可复制粘贴)
[优化算法]正弦余弦算法(SCA):SCA: A Sine Cosine Algorithm 论文题目:SCA is a novel algorithm for solving single-obje ...
- 智能优化算法——正余弦优化算法(SCA)及其改进策略
正余弦优化算法(SCA)及其改进策略 一.基本介绍 1. 背景 2. 算法简介 二.基本的SCA算法 1. 算法介绍 2. 算法步骤 三.算法分析 1. 正余弦分布 2. 算法实验结果 3. 算法优缺 ...
- 正余弦优化算法(SCA)
正余弦优化算法 (Sine Cosine Algorithm,SCA) 是Seyedali Mirjalili等于2016年提出的一种新型智能优化算法,在算法中会生成多个初始随机候选解,并使它们基于正 ...
- 数学建模学习(87):正余弦优化算法(SCA)对多元函数寻优
本篇教程通过简洁的方式教大家了解SCA算法,轻松搭建代码块实现寻优. 文章目录 算法简介 一.算法原理 二.数学模型 三.算法流程 四.算法优缺点 五.参考文献 六.案例实现(一) 6.1 目标函数处 ...
- LiteOS内核源码分析:动态内存之Bestfit分配算法
本文分享自华为云社区<LiteOS内核源码分析系列十三 动态内存Bestfit分配算法>,原文作者:zhushy . 内存管理模块管理系统的内存资源,它是操作系统的核心模块之一,主要包括内 ...
- 视觉机器学习20讲-MATLAB源码示例(6)-贝叶斯学习算法
视觉机器学习20讲-MATLAB源码示例(6)-贝叶斯学习算法 1. 贝叶斯学习算法 2. Matlab仿真 3. 小结 1. 贝叶斯学习算法 贝叶斯分类算法是统计学的一种分类方法,它是一类利用概率统 ...
- 抖音seo源码账号矩阵程序开发搭建,优化排名置顶。
前言:抖音seo源码账号矩阵程序开发搭建,优化排名置顶.抖音seo搜索逻辑是什么,作为技术开发公司,我们在在抖音开放平台需要完成注册--申请系统服务商---入驻---关联应用----提供审核,拿到正规 ...
- (附源码)计算机毕业设计SSM基于协同过滤算法的甜品推荐系统
(附源码)计算机毕业设计SSM基于协同过滤算法的甜品推荐系统 项目运行 环境配置: Jdk1.8 + Tomcat7.0 + Mysql + HBuilderX(Webstorm也行)+ Eclisp ...
- 手机下载小说为php格式的,PHP响应式小说网站整站源码(自适应手机移动端+深度SEO优化自动采集+图文安装教程)...
[温馨提示]源码包解压密码:www.youhutong.com 资源描述 PHP响应式小说网站整站源码(自适应手机移动端+深度SEO优化自动采集+图文安装教程) 源码介绍: 深度SEO优化自动采集的新 ...
最新文章
- 程矢Axure夜话:Axure基础系列视频教程之图片自动播放鼠标悬停
- python语音播报-使用pyttsx3实现python语音播报
- [LeetCode226]Invert Binary Tree
- 【LDA学习系列】LDA-Python库
- Jenkins任务失败,发送邮件通知
- 探索性数据分析入门_入门指南:R中的探索性数据分析
- 《大数据》2020年第6期目次摘要
- 【Vue】—Vue的基本介绍与插件安装
- c++ vector api summary
- Mysql数据库更新操作导致死锁问题
- pe系统安装win10系统
- 如何利用计算机模拟分子生物学,利用计算机模拟研究氨基酸序列对于朊病毒分子间聚集的影响...
- linux去除内容重复行,Linux删除文本中的重复行 - 米扑博客
- 根据二叉树创建字符串
- 基于机器学习的心脏病预测方法(1)——心脏病及Heart Disease UCI数据集介绍
- get(obj, “a.b[0].c“, 0)
- [DFS/递推/DP] 2327 [SCOI2005] 扫雷 ( 普及+/提高
- 使用设计模式出任CEO迎娶白富美(4)--走马上任,华丽转身
- 玩转控件:Fucking ERP之流程图
- java 滑块验证码 开源,Java AWT生成滑动验证码
热门文章
- json字符串中的大括号转义传到后台_string.format格式化字符串中转义大括号“{}”...
- 对象数组题目 Student类
- 2021-1-31linux学习纪要
- 实验室服务器系统设计,实验室教学管理系统设计与实现
- 电脑键盘下划线怎么打_电脑键盘失灵鼠标不动怎么办 键盘失灵鼠标不动解决办法...
- vue组件之间的参数传递
- 查询数据去除后面无用的0_OTM数据库清理超时无效连接--SQLNET.EXPIRE_TIME=10
- Java编程:树(基础部分)
- Jquery ajax, Axios, Fetch区别之我见
- 论文笔记_S2D.14-2014-NIPS_利用多尺度深度网络从单张图像预测深度图