【智能算法】正切搜索算法(TSA)原理及实现

目录

    • 1.背景
    • 2.算法原理
      • 2.1算法思想
      • 2.2算法过程
    • 3.结果展示
    • 4.参考文献
    • 5.代码获取


1.背景

2022年,A Layeb受到正切函数启发,提出了正切搜索算法(Tangent Search Algorithm, TSA)。

在这里插入图片描述

在这里插入图片描述

2.算法原理

2.1算法思想

TSAT基于正切函数的数学模型将给定的解决方案移动到更好的解决方案,提出了切线飞线函数,其具有平衡开发与勘探搜索的优点。

在TSA中,所有的运动方程都由一个全局阶跃控制,其形式为 s t e p ∗ t a n ( θ ) step*tan(\theta) steptan(θ),类似于levy飞行函数,称为正切飞行

无论是基于导数还是无导数的最优算法都是基于如下的下降方程:
X t + 1 = X t +  step ∗ d (1) X^{t+1}=X^t+\text{ step}*d\tag{1} Xt+1=Xt+ stepd(1)
其中step是移动的大小,d是移动的方向。
切线飞行乘以一个递减对数函数的行为。探索搜索在早期迭代中很大,在最后迭代中减少。TSA由三个主要部分组成:强化搜索、探索搜索和逃离局部最小。探索阶段的目的是很好地探索搜索空间并找到最有希望的候选对象。而强化分量则用于将搜索过程导向种群中当前的最佳解。最后,在随机搜索代理(解)的每次迭代中应用逃离局部最小值过程,以避免陷入局部最小值。
在这里插入图片描述

2.2算法过程

强化搜索

在强化搜索中,TSA首先进行随机局部行走,然后将得到的解中的一些变量替换为当前最优解中对应变量的值。对于大于4的问题,替换变量的比例等于20%,对于小于或等于4个变量的问题,替换变量的比例等于50%。
X i t + 1 = X i t + s t e p ∗ tan ⁡ ( θ ) ∗ ( X i t − o p t S i t ) X i t + 1 = o p t S i t  if variable i is selected (2) X_i^{t+1}=X_i^t+step*\tan(\theta)*\left(X_i^t-optS_i^t\right)\\X_i^{t+1}=optS_i^t\text{ if variable i is selected}\tag{2} Xit+1=Xit+steptan(θ)(XitoptSit)Xit+1=optSit if variable i is selected(2)

探索搜索

TSA使用变步长与切线飞行的乘积来进行全局随机游动。正切函数有助于有效地探索搜索空间。h接近于/2会使正切值变大,得到的解会远离当前解,而h接近于0会使正切函数的值变小,得到的解会接近当前解。因此,探索搜索方程在全局随机漫步和局部随机漫步之间合并。将探索搜索方程应用于每个变量,其概率为1/D,其中D为问题的维度。
X i t + 1 = X i t + s t e p ∗ tan ⁡ ( θ ) (3) X_i^{t+1}=X_i^t+\mathrm{step}*\tan(\theta)\tag{3} Xit+1=Xit+steptan(θ)(3)
强化搜索和探索搜索是根据给定的概率进行的,称为Pswitch。

在这里插入图片描述

逃离局部最小

为了避免局部最小停滞问题,TSA采用了一种机制通过使用如图所示的特定程序来处理这个问题,这个过程有两个部分以一定的概率执行。
X = X + R . ∗ ( o p t S − r a n d ∗ ( o p t S − X ) ) X = X + tan ⁡ ( tan ⁡ ) ∗ ( u b − l b ) (4) \begin{aligned}&X =X + R.*(\mathrm{opt}S- \mathrm{rand}*(\mathrm{opt}S-X))\\&X = X+ \tan(\tan)*(\mathrm{ub}-\mathrm{lb})\end{aligned}\tag{4} X=X+R.(optSrand(optSX))X=X+tan(tan)(ublb)(4)

在这里插入图片描述
与许多优化算法相比,TSA使用的参数较少,Pswitch, Pesc和step, h是强调开发和探索搜索的主要参数。TSA在早期采用较大的步长,随着搜索过程的进行,步长在迭代过程中呈非线性减小。切线飞行除了对步长有很大的影响外,还使其具有振荡性和周期性。为了适应挖掘和强化搜索过程,TSA采用了基于对数函数的自适应步长非线性递减格式。TSA使用两种步长变量,在强化搜索中使用第一个步长变量:
s t e p 1 = 10 ∗ s i g n ( r a n d − 0.5 ) ∗ n o r m ( o p t S ) ∗ l o g ( 1 + 10 ∗ dim ⁡ / t ) (5) \begin{array}{c}\mathrm{step}1=10*\mathrm{sign}(\mathrm{rand}-0.5)*\mathrm{norm}(\mathrm{opt}S)*\mathrm{log}(1+10*\dim/t)\end{array}\tag{5} step1=10sign(rand0.5)norm(optS)log(1+10dim/t)(5)
在探索搜索中,步长为:
s t e p 2 = 1 ∗ s i g n ( r a n d − 0.5 ) ∗ n o r m ( o p t S − X ) / l o g ( 20 + t ) (6) \begin{aligned}\mathrm{step}2=1*\mathrm{sign}(\mathrm{rand}-0.5)*\mathrm{norm}(\mathrm{opt}S-X)/\mathrm{log}(20+t)\end{aligned}\tag{6} step2=1sign(rand0.5)norm(optSX)/log(20+t)(6)
norm()是欧几里得范数,X是当前解,optS是当前最佳解,用于引导搜索过程走向最佳解。

流程图

在这里插入图片描述

3.结果展示

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

  • 【智能算法】省时方便,智能算法统计指标——一键运行~

CEC2017-F20
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4.参考文献

[1] Layeb A. Tangent search algorithm for solving optimization problems[J]. Neural Computing and Applications, 2022, 34(11): 8853-8884.

5.代码获取

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/612587.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【YashanDB知识库】ycm托管数据库时报错OM host ip:127.0.0.1 is not support join to YCM

问题现象 问题的风险及影响 导致数据库无法托管监控 问题影响的版本 问题发生原因 安装数据库时修改了OM的监听ip为127.0.0.1 解决方法及规避方式 后台修改OM的ip为本机的ip或者0.0.0.0 问题分析和处理过程 1、修改env文件中的om IP地址,修改为0.0.0.0或本机…

Windows:管理用户账户,密码策略和安全配置

在Windows操作系统中,管理用户账户和密码策略是确保系统安全的关键步骤。本文将探讨如何通过PowerShell和其他Windows工具管理用户账户,包括查看和设置密码策略、检查用户状态,以及导出和导入安全策略。这些管理任务对于系统管理员尤其重要&a…

如何通过PHP语言实现远程控制空调

如何通过PHP语言实现远程控制空调呢? 本文描述了使用PHP语言调用HTTP接口,实现控制空调,通过不同规格的通断器,来控制不同功率的空调的电源。 可选用产品:可根据实际场景需求,选择对应的规格 序号设备名称…

docker安装nginx支持ssl 实现https访问(完整版)

全文目录,一步到位 1.前言简介1.1 专栏传送门1.1.1 本文简介 2. docker安装nginx支持ssl2.0 准备ssl证书(例: 阿里云)2.0.1 配置域名解析2.0.2 找到数字证书管理服务并签发ssl证书2.0.3 选择默认证书 填写域名 创建2.0.4 提交审核, 签发成功2.0.5 解压并上传到宿主机ssl路径下 …

【算法与数据结构】数组

文章目录 前言数组数组的定义数组的基本操作增加元素删除元素修改元素查找元素 C STL 中的数组arrayvector Python3 中的列表访问更改元素值遍历列表检查列表中是否存在某元素增加元素删除元素拷贝列表总结 Python3 列表的常用操作 参考资料写在最后 前言 本系列专注更新基本数…

Acrobat Pro DC 2023 for Mac:PDF处理的终极解决方案

Acrobat Pro DC 2023 for Mac为Mac用户提供了PDF处理的终极解决方案。它具备强大的文档处理能力,无论是查看、编辑还是创建PDF文件,都能轻松胜任。在编辑功能方面,Acrobat Pro DC 2023支持对文本、图像进行精准的修改和调整,还能添…

2024-05-10 Ubuntu上面使用libyuv,用于转换、缩放、旋转和其他操作YUV图像数据,测试实例使用I420ToRGB24

一、简介:libyuv 最初是由Google开发的,主要是为了支持WebRTC项目中的视频处理需求。用于处理YUV格式图像数据的开源库。它提供了一系列的函数,用于转换、缩放、旋转和其他操作YUV图像数据。 二、执行下面的命令下载和安装libyuv。 git clo…

杰发科技AC7801——ADC之Bandgap和内部温度计算

0. 参考 电流模架构Bandgap设计与仿真 bandgap的理解(内部带隙电压基准) ​ ​ 虽然看不懂这些公式,但是比较重要的一句应该是这个:因为传统带隙基准的输出值为1.2V ​ 1. 使用 参考示例代码。 40002000是falsh控制器寄…

LeetCode 112. 路径总和 || LeetCode 113. 路径总和ii

LeetCode 112. 路径总和 1、题目 题目链接:112. 路径总和 给你二叉树的根节点 root 和一个表示目标和的整数 targetSum 。判断该树中是否存在 根节点到叶子节点 的路径,这条路径上所有节点值相加等于目标和 targetSum 。如果存在,返回 true…

Qt三方库:QuaZIP介绍、编译和使用

前言 Qt使用一些压缩解压功能,探讨过libzip库,zlib库,libzip库比较原始,还有其他库,都比较基础,而在基础库之上,又有高级封装库,Qt中的QuaZIP是一个很好的选择。Quazip是一个用于压缩…

Win11安装Docker Desktop运行Oracle 11g 【详细版】

oracle docker版本安装教程 步骤拉取镜像运行镜像进入数据库配置连接数据库,修改密码Navicat连接数据库 步骤 拉取镜像 docker pull registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g运行镜像 docker run -d -p 1521:1521 --name oracle11g registry.cn-ha…

MySQL的表级锁

📝个人主页:五敷有你 🔥系列专栏:面经 ⛺️稳中求进,晒太阳 表级锁 介绍 对于表锁,分为两类: 表共享读锁表独占写锁 语法 1. 加锁:lock tables 表名... read/write 2.…

Multitouch for Mac:手势自定义,提升工作效率

Multitouch for Mac作为一款触控板手势增强软件,其核心功能在于手势的自定义和与Mac系统的深度整合。通过Multitouch,用户可以轻松设置各种手势,如三指轻点、四指左右滑动等,来执行常见的任务,如打开应用、切换窗口、滚…

网络编程——Socket——模拟用户登录

功能一:模拟用户登录 功能二:实现客户发送登录用户信息,服务器端显示登录信息并响应给客户端登录成功 这里设置的用户登录信息为:admin,123456 实现: 1.首先,服务端创建并启动服务器&#x…

MyBatis——MyBatis入门程序

一、数据准备 二、开发步骤 1、引入依赖 <dependencies><dependency><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId><version>3.5.15</version></dependency><dependency><groupId>c…

如何打开远程桌面连接?

远程桌面连接是一项强大的功能&#xff0c;它允许我们远程访问其他计算机&#xff0c;并在远程计算机上进行操作。这对于远程办公、技术支持和远程培训等场景非常有用。本文将介绍如何在不同操作系统中打开远程桌面连接。 Windows系统 在Windows操作系统中&#xff0c;打开远程…

算法练习day7

四数相加II 代码随想录 0454.四数相加II 454. 四数相加 II - 力扣&#xff08;LeetCode&#xff09; &#xff08;用时&#xff1a;0.5小时&#xff09; 思路 本道题是需要在四个数组中&#xff0c;各找一个数&#xff0c;这些数加起来能够等于0&#xff0c;那么就是答案元…

mysql基础概念

文章目录 登录mysqlmysql和mysqld数据库操作主流数据库MYSQL架构SQL分类 登录mysql 登录mysql连接服务器&#xff0c;mysql连接时可以指明主机用-h选项&#xff0c;然后就可以指定主机Ip地址&#xff0c;-P可以指定端口号 -u指定登录用户 -P指定登录密码 查看系统中有无mysql&…

【系统架构师】-选择题(十二)计算机网络

1、网闸的作用&#xff1a;实现内网与互联网通信&#xff0c;但内网与互联网不是直连的 2、管理距离是指一种路由协议的路由可信度。15表示该路由信息比较可靠 管理距离越小&#xff0c;它的优先级就越高&#xff0c;也就是可信度越高。 0是最可信赖的&#xff0c;而255则意味…

(Java)心得:LeetCode——11.盛最多水的容器

一、原题 给定一个长度为 n 的整数数组 height 。有 n 条垂线&#xff0c;第 i 条线的两个端点是 (i, 0) 和 (i, height[i]) 。 找出其中的两条线&#xff0c;使得它们与 x 轴共同构成的容器可以容纳最多的水。 返回容器可以储存的最大水量。 说明&#xff1a;你不能倾斜容…