【智能算法】球形搜索算法(SSO)原理及实现

server/2024/9/22 23:45:57/

在这里插入图片描述

目录


1.背景

2020年,J Zhao等人受到超立方体搜索方式启发,提出了球形搜索算法(Spherical Search Optimizer, SSO)。

在这里插入图片描述
在这里插入图片描述

2.算法原理

2.1算法思想

SSO源于超立方体搜索方式,A和B表示两个个体,两条蓝线(OA和OB)是两个向量。个体A可以以A为圆心在球空间中搜索,而|AB|的长度就是球的半径。如果改变角度和半径,向量AB可以在整个球体内搜索。

在这里插入图片描述

2.2算法过程

球形搜索算子可以表述为:
A i n e w = F ⋅ ∣ ∣ A p − B p ∣ ∣ 2 . C o s ( θ ) A j n e w = F ⋅ ∣ ∣ A p − B p ∣ ∣ 2 ⋅ S i n ( θ ) ⋅ S i n ( ω ) A k n e w = F ⋅ ∣ ∣ A p − B p ∣ ∣ 2 ⋅ S i n ( θ ) ⋅ C o s ( ω ) A i n e w = F ⋅ ∣ ∣ A p − B p ∣ ∣ 2 . S i n ( θ ) (1) \begin{aligned} &A_{i}^{\mathrm{new}} =F\cdot||A_{p}-B_{p}||_{2}.\mathrm{Cos}(\theta) \\ &A_{j}^{\mathrm{new}} =F\cdot||A_{p}-B_{p}||_{2}\cdot\mathrm{Sin}(\theta)\cdot\mathrm{Sin}(\omega) \\ &A_{k}^{\mathrm{new}} =F\cdot||A_{p}-B_{p}||_{2}\cdot\mathrm{Sin}(\theta)\cdot\mathrm{Cos}(\omega) \\ &A_{i}^{\mathrm{new}} =F\cdot||A_{p}-B_{p}||_{2}.\mathrm{Sin}(\theta) \end{aligned}\tag{1} Ainew=F∣∣ApBp2.Cos(θ)Ajnew=F∣∣ApBp2Sin(θ)Sin(ω)Aknew=F∣∣ApBp2Sin(θ)Cos(ω)Ainew=F∣∣ApBp2.Sin(θ)(1)

在这里插入图片描述
伪代码

在这里插入图片描述

3.结果展示

使用测试框架,测试SSO性能 一键run.m

CEC2017-F11

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4.参考文献

[1] Zhao J, Tang D, Liu Z, et al. Spherical search optimizer: a simple yet efficient meta-heuristic approach[J]. Neural Computing and Applications, 2020, 32: 9777-9808.


http://www.ppmy.cn/server/19301.html

相关文章

【Jenkins】持续集成与交付 (六):Gitlab代码托管服务安装

【Jenkins】持续集成与交付 (六):Gitlab代码托管服务安装 一、Gitlab安装1.1 安装相关依赖1.2 启动SSH服务并设置为开机启动1.3 设置Postfix开机自启并启动1.4 开放SSH和HTTP服务,并重新加载防火墙列表1.5 下载GitLab包并安装1.6 修改GitLab配置1.7 重载配置及启动GitLab1.…

Linux怎么安装czmq(物联网消息通讯轻量级消息队列)

首先打开yum源配置文件 ,加载czmq的官方源 [rootlocalhost package]# cd /etc/yum.repos.d/输入czmq的官方yum 源路径 [rootlocalhost yum.repos.d]# wget https://download.opensuse.org/repositories/network:messaging:zeromq:git-stable/CentOS_7/network:mes…

数据分析-pandas1

数据分析-pandas Pandas 是 Wes McKinney 在2008年开发的一个强大的分析结构化数据的工具集。Pandas 以 NumPy 为基础(实现数据存储和运算),提供了专门用于数据分析的类型、方法和函数,对数据分析和数据挖掘提供了很好的支持&…

【Diffusion实战】训练一个diffusion模型生成蝴蝶图像(Pytorch代码详解)

上一篇Diffusion实战是确确实实一步一步走的公式,这回采用一个更方便的库:diffusers,来实现Diffusion模型训练。 Diffusion实战篇:   【Diffusion实战】训练一个diffusion模型生成S曲线(Pytorch代码详解)…

多端统一开发框架Taro、UniApp和WeApp这三个应用各自在前端开发领域有着独特的定位和功能

Taro、UniApp和WeApp这三个应用各自在前端开发领域有着独特的定位和功能,下面是对它们的详细介绍以及三者之间的对比,包括各自的优缺点和社区维护支持程度。 一、应用介绍 Taro Taro是一个多端统一开发框架,支持使用React语法编写一次代码…

LeetCode in Python 72. Edit Distance (编辑距离)

编辑距离的基本思想很直观,即不断比较两个单词每个位置的元素,若相同则比较下一个,若不同则需要考虑从插入、删除、替换三种方法中选择一个最优的策略。涉及最优策略笔者最先想到的即是动态规划的思想,将两个单词的位置对应放在矩…

git的安装与配置教程

Windows系统下Git的安装与配置 一、下载与安装 访问官网并下载: 打开浏览器,访问Git的官方网站(https://git-scm.com/)。在网站首页,找到并点击“Download for Windows”链接,或者类似的下载按钮。根据你的…

python爬虫 - 爬取html中的script数据(zum.com新闻信息 )

文章目录 1. 分析页面内容数据格式2. 使用re.findall方法,编写爬虫代码3. 使用re.search 方法,编写爬虫代码 1. 分析页面内容数据格式 (1)打开 https://zum.com/ (2)按F12(或 在网页上右键 --…