SDMTSP:黑翅鸢算法(Black-winged kite algorithm,BKA)求解单仓库多旅行商问题,可以更改数据集和起点(MATLAB代码)

news2024/12/21 20:07:20

一、黑翅鸢算法BKA

黑翅鸢算法(Black-winged kite algorithm,BKA)由Wang Jun等人于2024年提出,该算法受黑翅鸢的迁徙和掠食行为启发而得。BKA集成了柯西突变策略和领导者策略,增强了算法的全局搜索能力,提高了算法的收敛速度。

参考文献:

[1]Wang J, Wang W, Hu X, et al. Black-winged kite algorithm: a nature-inspired meta-heuristic for solving benchmark functions and engineering problems[J]. Artificial Intelligence Review, 2024, 57(4): 1-53.

二、单仓库多旅行商问题

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

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

三、BKA求解单仓库多旅行商问题

figure
plot(data(:,1),data(:,2),'go','color','k','MarkerFaceColor','g')
hold on
%% 无箭头 (二选一)
ColorStr={'r-','m-','b-','c-','k-','g-'};
LegStr={'城市','旅行商1','旅行商2','旅行商3','旅行商4','旅行商5','旅行商6'};
for i=1:Tnum
    Dis(i)=(sum(sum((data(Kd(i,1:end-1),:)-data(Kd(i,2:end),:)).^2)).^0.5); %求解两两城市之间的距离
    Qid=Kd(i,1:2+Lnum(i));
    plot(data(Qid,1),data(Qid,2),ColorStr{i},'linewidth',1.5);
    hold on;
end
xlabel('横坐标')
ylabel('纵坐标')
legend(LegStr{1:Tnum+1})

第1个旅行商的路径:13->25->7->11->20->28->13
第1个旅行商的总路径长度:1765.672676
第2个旅行商的路径:13->4->18->17->22->14->13
第2个旅行商的总路径长度:1053.944970
第3个旅行商的路径:13->5->9->26->3->19->13
第3个旅行商的总路径长度:1829.371477
第4个旅行商的路径:13->16->15->10->29->6->13
第4个旅行商的总路径长度:1490.369082
第5个旅行商的路径:13->1->24->27->23->8->12->21->2->13
第5个旅行商的总路径长度:1415.697708
所有旅行商的总路径长度:7555.055913

第1个旅行商的路径:13->4->11->7->25->13
第1个旅行商的总路径长度:1279.765604
第2个旅行商的路径:13->18->22->14->19->13
第2个旅行商的总路径长度:1077.868267
第3个旅行商的路径:13->6->26->29->5->13
第3个旅行商的总路径长度:1245.070279
第4个旅行商的路径:13->24->8->28->1->13
第4个旅行商的总路径长度:744.446103
第5个旅行商的路径:13->10->17->15->16->13
第5个旅行商的总路径长度:1292.439554
第6个旅行商的路径:13->2->3->21->27->23->12->9->20->13
第6个旅行商的总路径长度:2199.090721
所有旅行商的总路径长度:7838.680527

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

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

相关文章

[oeasy]python054_python有哪些关键字_keyword_list_列表_reserved_words

python有哪些关键字_keyword_list_列表_reserved_words 回忆上次内容 hello world 不是 从来就有的 来自于 c语言 print、小括号 和 双引号 也来自于 c语言 添加图片注释,不超过 140 字(可选) python 标识符 的 命名规则 依然 完全 学习…

OpenCV 学习记录:首篇

最近在学习机器视觉,希望能通过记录博客的形式来鞭策自己坚持学完,同时也把重要的知识点记录下来供参考学习。 1. OpenCV 介绍与模块组成 什么是 OpenCV? OpenCV (Open Source Computer Vision Library) 是一个开源的计算机视觉和机器学习软…

GTID详解

概念和组成 1,全局事务表示:global transaction identifiers 2, GTID和事务一一对应,并且全局唯一 3,一个GTID在一个服务器上只执行一次 4,mysql 5.6.5开始支持 组成 GTID server_uuid:transaction_id 如&#xf…

[Unity]【图形渲染】【游戏开发】Shader数学基础4-更多矢量运算

在计算机图形学和着色器编程中,矢量运算是核心的数学工具之一。矢量用于描述空间中的位置、方向、速度等各种物理量,并在图形变换、光照计算、纹理映射等方面起着至关重要的作用。本篇文章将详细讲解矢量和标量之间的乘法与除法、矢量的加法与减法、矢量的模与单位矢量、点积…

项目管理工具Maven(一)

Maven的概念 什么是Maven 翻译为“专家”,“内行”Maven是跨平台的项目管理工具。主要服务于基于Java平台的项目构建,依赖管理和项目信息管理。什么是理想的项目构建? 高度自动化,跨平台,可重用的组件,标准…

中间件 redis安装

redis官网地址:Redis - The Real-time Data Platform 环境 CentOS Linux release 7.9.2009 (Core) java version "17.0.12" 2024-07-16 LTS 1、通过压缩包安装redis 1,远程下载redis压缩包,或去官网下载:Downloads …

穷举vs暴搜vs深搜vs回溯vs剪枝系列一>找出所有子集的异或总和再求和

题目&#xff1a; 解析&#xff1a; 代码&#xff1a; private int ret;//返回周结果private int path;//枚举一个元素就异或进去public int subsetXORSum(int[] nums) {dfs(nums, 0);return ret;} private void dfs(int[] nums, int pos){ret path;for(int i pos; i <…

C# 从控制台应用程序入门

总目录 前言 从创建并运行第一个控制台应用程序&#xff0c;快速入门C#。 一、新建一个控制台应用程序 控制台应用程序是C# 入门时&#xff0c;学习基础语法的最佳应用程序。 打开VS2022&#xff0c;选择【创建新项目】 搜索【控制台】&#xff0c;选择控制台应用(.NET Framew…

创新实训——前端:配置问题及解决

在配置前端环境中&#xff0c;出现了一些问题&#xff1a; Error: The following dependencies are imported but could not be resolved: element-plus (imported by C:/Users/30753/Desktop/cxsx/Coarse-grained-information-processing-front/src/request.js) element-plus…

【解决方案】三方云仓与各电商平台的电子面单对接

为实现三方云仓与各电商平台的电子面单对接&#xff0c;您需要确保您的WMS&#xff08;仓库管理系统&#xff09;能够通过奇门接口&#xff08;假设这是一个特定的API或中间件服务用于连接不同的系统&#xff09;与各个电商平台进行数据交换。下面是一个简化的解决方案框架&…

属性描述符

什么是属性描述符 1 数据描述符 2 存取描述符 3 获取属性描述符 4 设置属性描述符 4.1 配置writable 4.2 配置configurable 4.3 configurable的特殊性 4.4 配置enumerable 5.同时设置多个属性的属性描述符 6.get和set的用法具体看访问器属性getter和setter帖子。 什…

PostgreSQL技术内幕21:SysLogger日志收集器的工作原理

0.简介 在前面文章中介绍了事务模块用到的事务日志结构和其工作原理&#xff0c;本文将介绍日志的另一个部分&#xff0c;操作日志&#xff0c;主要去描述SysLogger日志的工作原理&#xff0c;流程以及其中关键的实现&#xff1a;日志轮转&#xff0c;刷盘性能问题等&#xff…

Unity3D仿星露谷物语开发6之角色添加动画

1、目的 给角色添加素材中的动画&#xff0c;最终让角色动起来。 2、准备工作 当前的预设体中的Player对象还不够完善&#xff0c;需要删除掉再优化下。此时应当&#xff1a;Hierarchy中的Player对象切断和预设体的关联&#xff0c;同时删除Prefabs中的Player对象。 首先&a…

Go框架比较:goframe、beego、iris和gin

由于工作需要&#xff0c;这些年来也接触了不少的开发框架&#xff0c;Golang的开发框架比较多&#xff0c;不过基本都是Web"框架"为主。这里稍微打了个引号&#xff0c;因为大部分"框架"从设计和功能定位上来讲&#xff0c;充其量都只能算是一个组件&…

CS 144 check4: interoperating in the world

Lectures Note 略 Exercises 执行cmake --build build --target check_webget发现超出12s了。 1、回看check0的代码&#xff0c;似乎不需要关闭写入方向&#xff0c;于是注释掉&#xff08;关键&#xff09; 2、将request的变量类型从string转为string_view&#xff08;顺手…

现代风格VUE3易支付用户控制中心

适用系统 彩虹易支付 技术栈 vitevue3elementuiplusphp 亮点 独立前端代码,扩展开发,不改动系统文件,不影响原版升级 支持功能订制 界面预览

go语言zero框架中启动脚本.sh的编写与配置

在Go语言项目中&#xff0c;编写启动脚本 (.sh 文件) 通常用于自动化启动Go程序、配置环境变量、执行一些初始化任务或处理不同环境下的配置。下面是编写和配置启动脚本的步骤。 ### 1. 基本的 .sh 启动脚本 假设你已经在 Go 中编写了应用程序并编译为二进制文件&#xff0c;启…

React,Antd实现文本输入框话题添加及删除的完整功能解决方案

最终效果就是实现该输入框&#xff1a; 添加话题时&#xff0c;话题自动插入到输入框前面多文本输入框左侧间距为话题的宽度多行文本时&#xff0c;第二行紧接开头渲染删除文本时&#xff0c;如果删除到话题&#xff0c;再次删除&#xff0c;话题被删除 首先构造div结构 cons…

坑人 C# MySql.Data SDK

一:背景 1. 讲故事 为什么说这东西比较坑人呢?是因为最近一个月接到了两个dump,都反应程序卡死无响应,最后分析下来是因为线程饥饿导致,那什么原因导致的线程饥饿呢?进一步分析发现罪魁祸首是 MySql.Data,这就让人无语了,并且反馈都是升级了MySql.Data驱动引发,接下…

(五)FT2232HL高速调试器之--三步实现STM32的VSCODE在线仿真工程搭建

对于单片机开发&#xff0c;rtthread studios 与 vscode&#xff0c;鱼与熊掌可以兼得否&#xff0c;其实是可以的&#xff0c;下面通过三个步骤&#xff0c;实现基于FT2232HL高速调试器的&#xff0c;stm32的VSCODE在线仿真工程的搭建。 1、软件下载与VSCODE插件安装配置 软…