单目标应用:求解旅行商问题(TSP)的猎豹优化算法(The Cheetah Optimizer,CO)提供MATLAB代码

news2024/11/20 14:20:04

一、猎豹优化算法

猎豹优化算法(The Cheetah Optimizer,CO)由MohammadAminAkbari等人于2022年提出,该算法性能高效,思路新颖。

参考文献: Akbari, M.A., Zare, M., Azizipanah-abarghooee, R. et al. The cheetah optimizer: a nature-inspired metaheuristic algorithm for large-scale optimization problems. Sci Rep 12, 10953 (2022). https://doi.org/10.1038/s41598-022-14338-z
在这里插入图片描述

CO算法描述:

在这里插入图片描述

二、旅行商问题

旅行商问题(Traveling salesman problem, TSP)是一个经典的组合优化问题,它可以描述为一个商品推销员去若干城市推销商品,要求遍历所有城市后回到出发地,目的是选择一个最短的路线。当城市数目较少时,可以使用穷举法求解。而随着城市数增多,求解空间比较复杂,无法使用穷举法求解,因此需要使用优化算法来解决TSP问题。
一般地,TSP问题可描述为:一个旅行商需要拜访n个城市,城市之间的距离是已知的,若旅行商对每个城市必须拜访且只拜访一次,求旅行商从某个城市出发并最终回到起点的一条最短路径。
记n个城市序号构成集合为N={1,2,…,n},旅行商拜访完n个城市所经过的回路记为:
P = { p 1 → p 2 → ⋯ → p n → p 1 } P=\left\{p_{1} \rightarrow p_{2} \rightarrow \cdots \rightarrow p_{n} \rightarrow p_{1}\right\} P={p1p2pnp1}
其中, p i ∈ N , p i ≠ p j ( i ≠ j ) , i = 1 , 2 , ⋯   , n p_{i} \in N, p_{i} \neq p_{j}(i \neq j), i=1,2, \cdots, n piN,pi=pj(i=j),i=1,2,,n
若城市之间的距离矩阵为 D = ∣ d i j ∣ n × n D=\left|d_{i j}\right|_{n \times n} D=dijn×n,则TSP问题的数学模型可表示为:
min ⁡ f ( P ) = ∑ i = 1 n − 1 d p i , p i + 1 + d p n , p 1 \min f(P)=\sum_{i=1}^{n-1} d_{p_{i}, p_{i+1}}+d_{p_{n}, p_{1}} minf(P)=i=1n1dpi,pi+1+dpn,p1
其中, f ( P ) f(P) f(P)表示旅行商行走路线的总路径长度。

三、CO求解TSP

本文选取国际通用的TSP实例库TSPLIB中的测试集bayg29,bayg29中城市分布如下图所示:
在这里插入图片描述

本文采用猎豹优化算法求解bayg29:

close all
clear
clc
%数据集参考文献  REINELT G.TSPLIB-a traveling salesman problem[J].ORSA Journal on Computing,1991,3(4):267-384.
global data
% TSP数据集bayg29
Dim=size(data,1)-1;%维度
lb=-10;%下界
ub=10;%上界
fobj=@Fun;%目标函数是总距离
SearchAgents_no=100; % 种群大小(可以修改)
Max_iteration=5000; % 最大迭代次数(可以修改)
[bestX,fMin,curve]=CO(SearchAgents_no,Max_iteration,lb,ub,Dim,fobj);  %猎豹优化算法
figure
plot(curve)
xlabel('迭代次数')
ylabel('总距离')
legend('CO')


链接:https://pan.baidu.com/s/11I6eMyMU3k-UHfUu1O_mIA 
提取码:1234

部分结果如下:

3.1第1次路径规划结果及算法收敛曲线

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

3.2第2次路径规划结果及算法收敛曲线

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

3.3第3次路径规划结果及算法收敛曲线

在这里插入图片描述

在这里插入图片描述

3.4第4次路径规划结果及算法收敛曲线

在这里插入图片描述

在这里插入图片描述

3.5第5次路径规划结果及算法收敛曲线

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

3.6第6次路径规划结果及算法收敛曲线

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

3.7第7次路径规划结果及算法收敛曲线

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

3.8第8次路径规划结果及算法收敛曲线

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

四、参考代码

文件夹内包含猎豹优化算法CO求解旅行商问题bayg29的完整Matlab代码,点击main.m即可运行,可以更改数据集。
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Linux实战案例——使用LNMP+WordPress搭建个人博客网站

一、案例目标 了解 LNMP 环境的组成。 了解 LNMP 环境的部署与安装。 了解 WordPress 应用的部署与使用二、环境介绍 1.LNMP LNMP是指一组通常一起使用来运行动态网站或者服务器的自由软件名称首字母缩写。L指Linux,N指Nginx,M一般指MySQL,也…

技术分享 | TiUP工具 - TiDB集群滚动升级核心流程解析

作者:贲绍华 爱可生研发中心工程师,负责项目的需求与维护工作。其他身份:柯基铲屎官。 本文来源:原创投稿 *爱可生开源社区出品,原创内容未经授权不得随意使用,转载请联系小编并注明来源。 引言&#xff1a…

运维工程师怎么找兼职?什么样的兼职合适?

运维老哥们应该都知道,这个岗位其实是个很宽泛的定义,不同公司对运维的要求也不一样。有些公司所谓运维就是桌面helpdesk ,有些公司就是网管。基本上从修电脑到会写点脚本做自动化,各个层次的都有。现状就是,有少数公司或者大厂的…

基于Django的图书交易系统

摘 要 随着信息化时代的到来,管理系统都趋向于智能化、系统化,图书交易系统也不例外,但目前国内的有些公司仍然都使用人工管理,图书销量越来越大,同时信息量也越来越庞大,人工管理显然已无法应对时代的变化…

第五课 算术运算

一、加法与减法 经过上次课的学习,我们已经学会了该如何在控制台中输出我们想要的内容了,但是计算机计算机,最早其实是用来进行计算的,Python能做这事吗,我们来试试。 看到这结果,估计很多同学就该说了&…

【每周研报复现】基于阻力支撑相对强度(RSRS)的市场择时

原创文章第106篇,专注“个人成长与财富自由、世界运作的逻辑, AI量化投资”。 今天要复现的研报是:”光大证券_金融工程深度:基于阻力支撑相对强度(RSRS)的市场择时——技术择时系列报告之一“。 研报核心…

写个注解帮你净化使用分布式锁的重复操作

RedissonAop实现分布式锁 前言 简介 Aop的意义 AOP 旨在从业务逻辑中分离出来通用逻辑,切面实现了跨越多种类型和对象的关注点(例如事务管理、日志记录、权限控制)的模块化。 例子 就以这段代码为例子,这段代码总是回去获取锁之…

【HTML】关于height值设置和显示不同的原因以及font-size对象为中文和英文的区别

关于height值设置和显示不同的原因 height: 100px; CSS中把高度设置为100px,但是实际测量发现高度为125px 这个是因为:笔记本默认显示大小为125%,所以100的125%就是125. 还有一点,在你写网页时,要注意网页的缩放一定…

050_阵列天线方向图乘积原理

天线增益概念。原创不易,恐有错误,恳请读者指正。碎片三分钟逛电巢App,收获一丢丢。 天线定向性(directivity) 假设理想的无定向性天线,在远场区的3D球面空间各方向的辐射功率都相等,则定义球面等辐射功率的方向图的定…

Linux内存泄露案例分析和内存管理分享

作者:李遵举 一、问题 近期我们运维同事接到线上LB(负载均衡)服务内存报警,运维同事反馈说LB集群有部分机器的内存使用率超过80%,有的甚至超过90%,而且内存使用率还再不停的增长。接到内存报警的消息&…

代码随想录day56|583. 两个字符串的删除操作|72. 编辑距离|编辑距离总结篇|Golang

代码随想录day56 考试周了解一下 目录 代码随想录day56 583. 两个字符串的删除操作 72. 编辑距离 动态规划之编辑距离总结篇 583. 两个字符串的删除操作 思路 动态规划一 本题和动态规划:115.不同的子序列相比,其实就是两个字符串都可以删除了&am…

2023职教高考报名开启,报考人数继续增加

进入11月起,各地区2023年职教高考报名已经陆续开始,报考考生主要以中职学校学生为主。根据南京日报的报道,11月1日就启动的江苏省职教高考报名,吸引了不少家长和学生的关注,有些专业的报名人数已经比2022年翻了不止一倍…

Flutter Hooks — 快速了解

Flutter Hooks — 快速了解 前言 Hooks,直译过来就是"钩子",是前端 React 框架加入的特性,用来分离状态逻辑和视图逻辑。现在这个特性并不只局限在于 React 框架中,其它前端框架也在借鉴。 我们都知道在 FLutter 开发中的一大痛点就…

图解 | 监控系统 Prometheus 的原理

本篇将会以图解的方式剖析 Prometheus 的原理。本文主要内容如下: 一、Prometheus 是什么? ELK Stack 日志收集和检索平台想必大家应该比较熟悉,Elasticsearch Filebeat Logstash Kibana。 ELK 架构 而 Prometheus 就相当于一整个 ELK&a…

功率放大器的主要指标有哪些呢

功率放大器是电子测量行业比较常见的能够放大信号源电压信号的仪器,虽然功率放大器的应用十分广泛,但是很多人对于功率放大器的主要指标参数还不了解,就让安泰电子来为大家介绍功率放大器的主要指标。 功率放大器的核心参数指标包括带宽、电压…

python多线程返回值问题重写Thread类的run方法

python多线程使用 文章目录python多线程使用一、案例二、说明1、针对第一种是有返回值的 ,可以通过future.result() 去拿到每个线程返回值2、无返回值问题3、我们可以重写这个Thread类重写了__init__、run方法和join方法,主要是start()涉及的方法太多了而…

Redis篇(5)——持久化

持久化 RDB 1、save会阻塞所有命令。而bgsave则不能与其他持久化命令同时执行 2、自动rdb的发起:servercorn默认每100ms执行一次,根据redisserver里面记录的dirty(上次save后修改的次数)和lastsave(上次save的时间&a…

sklearn基础篇(七)-- 随机森林(Random forest)

上一节我们提到决策树的一个主要缺点在于经常对训练数据过拟合。随机森林是解决这个问题的一种方法。随机森林是属于集成学习,其核心思想就是集成多个弱分类器以达到一个强分类器的效果。 1 bagging的原理 随机森林采用Bagging的思想,所谓的Bagging可以…

HDFS的高级功能

3.6 HDFS的高级功能 3.6.1 安全模式 安全模式(Safemode)是HDFS所处的一种特殊状态。处于这种状态时,HDFS只接受读数据请求,不能对文件进行写、删除等操作。安全模式是保证一个系统保密性、完整性及可使用性的一种机制&#xff0…

精彩回顾:CACTER邮件数据防泄露EDLP亮相2022世界互联网大会

2022年世界互联网大会乌镇峰会于11月11日胜利闭幕。 本届峰会是世界互联网大会国际组织成立后的首届年会,以“共建网络世界 共创数字未来—携手构建网络空间命运共同体”为主题,共设置1场全体会议和20场分论坛,围绕全球网络空间热点问题展开讨…