SD-MTSP:萤火虫算法(FA)求解单仓库多旅行商问题MATLAB(可更改数据集,旅行商的数量和起点)

一、萤火虫算法(FA)简介

萤火虫算法(Firefly Algorithm,FA)是Yang等人于2009年提出的一种仿生优化算法。

参考文献:田梦楚, 薄煜明, 陈志敏, et al. 萤火虫算法智能优化粒子滤波[J]. 自动化学报, 2016, 42(001):89-97.

二、单仓库多旅行商问题SD-MTSP

单仓库多旅行商问题(Single-Depot Multiple Travelling Salesman Problem, SD-MTSP):𝑚个推销员从同一座中心城市出发,访问其中一定数量的城市并且每座城市只能被某一个推销员访问一次,最后返回到中心城市,通常这种问题模型被称之为SD-MTSP。

多旅行商问题(Multiple Traveling Salesman Problem, MTSP):单仓库多旅行商问题及多仓库多旅行商问题(含动态视频)_IT猿手的博客-CSDN博客

三、萤火虫算法(FA)求解SD-MTSP

本文选取国际通用的TSP实例库TSPLIB中的测试集bayg29作为测试例子,数据集可以自行修改。

3.1部分代码(可更改起点及旅行商个数)

close all
clear
clc
%数据集参考文献  REINELT G.TSPLIB-a traveling salesman problem[J].ORSA Journal on Computing,1991,3(4):267-384.
global data StartPoint Tnum
% 导入TSP数据集 bayg29
load('data.txt')
Tnum=3;%旅行商个数(可以自行更改)2-6
StartPoint=13; %选择起点城市(可以自行更改)
nVar=size(data,1)-1;%维度
VarMin=-100;%下界
VarMax=100;%上界
CostFunction=@Fun;%计算总距离%% Problem Definition
VarSize=[1 nVar];       % Decision Variables Matrix Size
%% Firefly Algorithm Parameters
MaxIt=200;         % Maximum Number of Iterations
nPop=50;            % Number of Fireflies (Swarm Size)

3.2部分结果

(1)3个旅行商

第1个旅行商的路径:13->24->27->16->7->23->8->28->1->21->13

第1个旅行商的总路径长度:1344.618905

第2个旅行商的路径:13->6->12->9->5->26->3->29->2->20->13

第2个旅行商的总路径长度:1265.859392

第3个旅行商的路径:13->10->19->25->11->22->17->14->18->15->4->13

第3个旅行商的总路径长度:1091.970696

所有旅行商的总路径长度:3702.448993

(2)4个旅行商

第1个旅行商的路径:13->19->16->27->8->23->7->25->13

第1个旅行商的总路径长度:1271.534506

第2个旅行商的路径:13->4->15->11->22->17->14->18->13

第2个旅行商的总路径长度:1042.305138

第3个旅行商的路径:13->20->10->24->1->28->12->5->13

第3个旅行商的总路径长度:1246.835996

第4个旅行商的路径:13->2->29->3->26->9->6->21->13

第4个旅行商的总路径长度:1116.691542

所有旅行商的总路径长度:4677.367181

四、完整Matlab代码

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

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

相关文章

Java基础常考知识点(基础、集合、异常、JVM)

作者:逍遥Sean 简介:一个主修Java的Web网站\游戏服务器后端开发者 主页:https://blog.csdn.net/Ureliable 觉得博主文章不错的话,可以三连支持一下~ 如有需要我的支持,请私信或评论留言! Java基础常考知识点…

【golang】调度系列之sysmon

调度系列 调度系列之goroutine 调度系列之m 调度系列之p 在golang的调度体系中,除了GMP本身,还有另外一个比较重要的角色sysmon。实际上,除了GMP和sysmon,runtime中还有一个全局的调度器对象。但该对象只是维护一些全局的数据&…

ROS2 的行为树 — 第 1 部分:解锁高级机器人决策和控制

一、说明 在复杂而迷人的机器人世界中,行为树(BT)已成为决策过程中不可或缺的一部分。它们提供了一种结构化、模块化和高效的方法来对机器人的行为进行编程。BT起源于视频游戏行业,用于控制非玩家角色,他们在机器人领域…

FPGA板卡启动以及LED灯带调试

环境配置 软件: MobaXterm(free版本即可)下载教程参考: MobaXterm(终端工具)下载&安装&使用教程_蜗牛也不慢......的博客-CSDN博客 Win32 Disklmager 下载教程参考: 不分类工具&am…

公众号迁移多久可以完成?

公众号账号迁移的作用是什么?只能变更主体吗?长期以来,由于部分公众号在注册时,主体不准确的历史原因,或者公众号主体发生合并、分立或业务调整等现实状况,在公众号登记主体不能对应实际运营人的情况下&…

在北京多有钱能称为富

背景 首先声明,此讨论仅限个人的观点,因为我本身不富嘛,所以想法应该非常局限。 举个栗子 富二代问我朋友,100~1000w之间,推荐一款车? 一开始听到这个问题的时候,有被唬住,觉得预…

基于Python+Django的热门旅游景点数据分析系统的设计与实现(源码+lw+部署文档+讲解等)

前言 💗博主介绍:✌全网粉丝10W,CSDN特邀作者、博客专家、CSDN新星计划导师、全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战✌💗 👇🏻…

什么是IoT数字孪生?

数字孪生是资产或系统的实时虚拟模型,它使用来自连接的物联网传感器的数据来创建数字表示。数字孪生允许您从任何地方实时监控设备、资产或流程。数字孪生用于多种目的,例如分析性能、监控问题或在实施之前运行测试。从物联网数字孪生中获得的见解使用户…

18795-2012 茶叶标准样品制备技术条件

声明 本文是学习GB-T 18795-2012 茶叶标准样品制备技术条件. 而整理的学习笔记,分享出来希望更多人受益,如果存在侵权请及时联系我们 1 范围 本标准规定了各类茶叶(除再加工茶)标准样品的制备、包装、标签、标识、证书和有效期。 本标准适用于各类茶叶(除再加工茶)感官品质…

怎么在OPPO手机桌面上添加文字?便签桌面插件添加教程

很多年轻女性在选择手机时,都比较青睐于设计时尚靓丽、轻薄且续航好、系统流畅、拍照清晰的OPPO手机,并且OPPO为不同的用户提供了高中低不同价格档位的手机型号,能够满足绝大多数女性消费者的使用需求。 不过有不少OPPO手机用户表示&#xf…

华为NFC设置教程(门禁卡/公交卡/校园卡等)

今天把华为NFC设置教程分享给大家 出门带门禁卡、校园卡、银行卡、身份证……东西又多,携带又麻烦,还容易搞丢,有没有一种方法可以把它们都装下?有!只要一部手机,出门不带卡包,各种证件&#x…

【知识分享】Java获取全年每个月的有几周且每周是几号到几号

加哥本周给大家分享一期怎么用java把全年每个月有几周,本周是几号到几号的工具类。便于大家根据需求获取想要的形式进行改造。话不多说,直接给大家上代码。 package com.techfantasy.common.utils; import com.techfantasy.common.entity.DateRange; i…

安全测试之w3af 安装

背景: 学习安全测试时,离不开一些安全扫描工具,在类目众多的工具中,w3af是个绕不开的集成工具。由于没有linux环境,故在windows下利用wsl进行部署。亦可通过其它虚拟机安装亦可。 借鉴:Win10下安装w3af_Da…

NSSCTF做题

[第五空间 2021]WebFTP 打开题目 发现是登录的界面 用admin和password试一下发现不行 用dirsearch扫一下 发现了git泄露 但是用githack下载不下来文件 去网上查了一下webftp 发现是一个在线php文件管理系统 WebFTP——在线FTP工具:强大的PHP在线文件管理系统-時日 在这篇博客…

leetcode top100(20) 搜索二维矩阵 II

编写一个高效的算法来搜索 m x n 矩阵 matrix 中的一个目标值 target 。该矩阵具有以下特性: 每行的元素从左到右升序排列。每列的元素从上到下升序排列。 示例 1: 输入:matrix [[1,4,7,11,15],[2,5,8,12,19],[3,6,9,16,22],[10,13,14,17,2…

6.1 使用scikit-learn构建模型

6.1 使用scikit-learn构建模型 6.1.1 使用sklearn转换器处理数据6.1.2 将数据集划分为训练集和测试集6.1.3 使用sklearn转换器进行数据预处理与降维1、数据预处理2、PCA降维算法 代码 scikit-learn(简称sklearn)库整合了多种机器学习算法,可以…

mysql Your password does not satisfy the current policy requirements

在修改密码时遇到 Your password does not satisfy the current policy requirements 原因:您的密码不符合当前策略要求,最好是把密码设置成复杂的,包括字母大小写、数字、特殊字符。 如果你还是先把数据库密码改简单,比如你本地…

C++【个人笔记1】

1.C的初识 1.1 简单入门 #include<iostream> using namespace std; int main() {cout << "hello world" << endl;return 0; } #include<iostream>; 预编译指令&#xff0c;引入头文件iostream.using namespace std; 使用标准命名空间cout …

AUTOSAR 面试知识回顾

如果答不上来&#xff0c;就讲当时做了什么 1. Ethernet基础: 硬件接口&#xff1a; ECU到PHY&#xff1a; data 是MII总线&#xff0c; 寄存器控制是SMI总线【MDCMDIO两根线, half duplex】PHY输出(100BASE-T1)&#xff1a; MDI总线&#xff0c;2 wire 【T1: twisted 1 pair …

【GO】LGTM_Grafana_gozero_配置trace(4)_代码实操及追踪

最近在尝试用 LGTM 来实现 Go 微服务的可观测性&#xff0c;就顺便整理一下文档。 Tempo 会分为 4 篇文章&#xff1a; Tempo 的架构官网测试实操跑通gin 框架发送 trace 数据到 tempogo-zero 微服务框架发送数据到 tempo 本文就是写一下如何在 go-zero 微服务框架里面配置 t…