MATLAB蚁群算法求解带时间窗的旅行商TSPTW问题代码实例

news2025/1/16 2:54:37

MATLAB蚁群算法求解带时间窗的旅行商TSPTW问题代码实例

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

蚁群算法编程求解TSPTW问题实例:

在经纬度范围为(121, 43)到(123, 45)的矩形区域内,散布着1个商家(编号1)和25个顾客点(编号为226),各个点的坐标见表1。节点1表示商家,226表示与商家对应的顾客点。假定车辆行驶速度为30km/h,配送时间从配送员从商家位置出发算起,然后送到各个顾客点,最后返回商家位置。每个顾客点有到达的时间窗范围,不在规定的时间窗范围内到达会有一定的时间惩罚成本。早到的时间惩罚系数为0.2,迟到的时间惩罚系数为0.5,单位距离成本为1。一旦车辆出发则处于配送状态,直到所有配送任务完成停止计算,用蚁群算法求总成本最小(距离成本+时间惩罚成本)的最优路径。
编号 X坐标
(经度) Y坐标
(纬度) 最早时间窗
(分钟) 最晚时间窗
(分钟)
1 122.044 44.4703 150 1860
2 121.2915 44.5052 50 2810
3 122.9038 44.6702 450 2810
4 121.082 44.1601 400 1290
5 122.8507 44.2793 300 1100
6 122.9272 43.3611 400 2430
7 121.1113 44.6827 400 2810
8 121.801 43.3733 450 2810
9 121.9528 44.5705 100 2240
10 122.7934 44.3812 450 2240
11 121.9571 44.0387 300 2240
12 121.6636 44.5933 0 2430
13 121.5183 44.3164 100 2620
14 122.2505 43.0642 400 1480
15 122.671 44.243 300 1480
16 122.8145 44.6338 0 2430
17 121.9659 43.9129 150 1480
18 122.0954 43.4043 400 2240
19 121.1637 44.4004 350 1860
20 121.6539 43.2019 500 1670
21 121.241 43.6942 300 1860
22 122.227 44.7439 500 2050
23 121.0417 43.9196 350 1290
24 121.5933 44.2417 200 3000
25 121.2904 44.1993 250 1670
26 122.5063 44.7392 400 1100

先看下求解结果!
运行结果:
在这里插入图片描述在这里插入图片描述

优化结束!
最优总成本为:1230.2245
其中:
距离成本为:978.1766
早到时间惩罚成本为:203.8713
晚到时间惩罚成本为:48.1766
最优配送路径为:
1->9->22->26->16->3->10->5->15->6->14->18->8->20->21->23->4->25->17->11->24->13->2->19->7->12->1
到达各点的时间为:
0->30->102->164->236->258->327->352->393->597->761->844->910->960->1103->1169->1224->1271->1433->1461->1554->1577->1643->1680->1743->1868->1956
下面进行程序演示!

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

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

相关文章

【Linux】用户组、用户、文件权限(ugo权限),权限掩码,chmod,chown,suid,sgid,sticky,su,sudo

用户组 注意:普通用户只能查看有哪些组,不能创建/修改/删除,会提示:用户名 is not in the sudoers file.This incident will be reported. groupadd 用户组名新建用户组cat /etc/group查看有哪些组(普通用户可以操作…

python模拟QQ聊天的代码

以下是一个简单的Python模拟QQ聊天的代码示例: python # 导入QQ消息包 import tqq # 创建QQ客户端对象 client tqq.TQQClient() # 连接QQ服务器 client.connect("你的QQ号码", "你的QQ密码") # 创建一个QQ会话对象 session client.session() …

字符串函数(二):strlen(求长度),strstr(查找子串),strtok(分割),strerror(打印错误信息)

字符串函数 一.strlen(求字符串长度)1.函数使用2.模拟实现(三种方法) 二.strstr(字符串查找子串)1.函数使用2.模拟实现 三.strtok(字符串分割)四.strerror,perror&#x…

BLDC电机基础知识

1、电机工作原理 电机输入的是电能输出机械能,即电机是一种将电能转换为机械能的装置。电机利用磁场的同名磁极互相排斥以及电磁场原理完成电能与机械能的转换。 由物理电磁场理论知识我们知道,磁铁周围存在磁场,同时运动的电荷或通电导线周…

【强训笔记】day22

NO.1 思路&#xff1a;将情况全部枚举出来。 代码实现&#xff1a; #include <iostream> #include<string> using namespace std;string a,b; int main() {cin>>a>>b;int ma.size(),nb.size();int retm;for(int i0;i<n-m;i){int tmp0;for(int j…

Linux修改终端命令颜色

1.在家目录中修改.bashrc文件 cd ~ vim .bashrc2.找到PS1相关段落&#xff0c;把其他的注释掉&#xff0c;填上该行代码&#xff0c;修改为自己设置的颜色 (具体颜色查看参考文章) 提供两种颜色&#xff0c;其他的自学调色盘吧(下文有)~ (祝你愉快) ①浅蓝色 深蓝 PS1\[\03…

知识图谱 | 语义网络写入图形数据库(含jdk和neo4j的安装过程)

Hi&#xff0c;大家好&#xff0c;我是半亩花海。本文主要介绍如何使用 Neo4j 图数据库呈现语义网络&#xff0c;并通过 Python 将语义网络的数据写入数据库。具体步骤包括识别知识中的节点和关系&#xff0c;将其转化为图数据库的节点和边&#xff0c;最后通过代码实现数据的写…

pytorch学习(一):tensorboard使用

第一次使用需要加入 pip install tensorboard安装后&#xff0c;就可以使用tensorboard&#xff1b; from torch.utils.tensorboard import SummaryWriterwriterSummaryWriter("logs")# writer.add_image() for i in range(100):writer.add_scalar("yx",…

JWT令牌技术实现登录校验

一.简单登录功能 在登录界面中&#xff0c;我们可以输入用户的用户名以及密码&#xff0c;然后点击 "登录" 按钮就要请求服务器&#xff0c;服务端判断用户输入的用户名或者密码是否正确。如果正确&#xff0c;则返回成功结果&#xff0c;跳转至系统首页面。 1.功能…

LeetCode1657确定两个字符串是否接近

题目描述 如果可以使用以下操作从一个字符串得到另一个字符串&#xff0c;则认为两个字符串 接近 &#xff1a; 操作 1&#xff1a;交换任意两个 现有 字符。例如&#xff0c;abcde -> aecdb操作 2&#xff1a;将一个 现有 字符的每次出现转换为另一个 现有 字符&#xff0…

智慧公厕系统:改变“上厕所”体验的科技革新

公共厕所是城市建设中不可或缺的基础设施&#xff0c;然而&#xff0c;由于较为落后的管理模式&#xff0c;会常常存在着管理不到位、脏乱差的问题。为了改善公厕的使用体验&#xff0c;智慧公厕系统应运而生&#xff0c;并逐渐成为智慧城市建设的重要组成部分。本文将以智慧公…

6. RedHat认证-基于公钥的认证方式

6. RedHat认证-基于公钥的认证方式 主要学习客户端访问服务端的时候&#xff0c;免密登录这一方式 注意: 免密登录只是基于公钥认证的一个附带属性(基于公钥认证的方式更加安全&#xff0c;防止黑客暴力破解) 第一步&#xff1a;将客户端生成的秘钥传送到服务器 在客户端通过…

display:flex align-items:center无效的不一样的解决思路

写H5的时候&#xff0c;希望两个元素在div中垂直居中&#xff0c;但是设置align-items:center无效&#xff0c;最终排查原因是引入三方css影响了align-items:center。 具体分析如下&#xff0c;想让搜索图标和input在div里水平居中&#xff1a; 布局如下&#xff1a; <div…

实验十 智能手机互联网程序设计(微信程序方向)实验报告

实验目的和要求 完成以下页面设计。 二、实验步骤与结果&#xff08;给出对应的代码或运行结果截图&#xff09; Wxml <view class"container"> <view class"header"> <view class"logo"…

MHD093C-058-PG1-AA具备哪些特点?

MHD093C-058-PG1-AA是一种高性能的伺服电机控制器。 该产品具备以下特点&#xff1a; 高精度与高性能&#xff1a;MHD093C-058-PG1-AA设计用于提供精确的运动控制和定位&#xff0c;适用于需要高精度定位和控制的场合。快速响应&#xff1a;采用先进的控制技术&#xff0c;确…

C++类与对象基础探秘系列(二)

目录 类的6个默认成员函数 构造函数 构造函数的概念 构造函数的特性 析构函数 析构函数的概念 析构函数的特性 拷贝构造函数 拷贝构造函数的概念 拷贝构造函数的特性 赋值运算符重载 运算符重载 赋值运算符重载 const成员 const修饰类的成员函数 取地址及const取地址操作…

扫码枪与Input的火花

文章目录 前言一、需求&#xff1a;交互细节二、具体实现两个核心的函数&#xff1a;自动聚焦 三&#xff0c;扩展知识input 与 change的区别 前言 在浏览器扫描条形码获取条形的值&#xff0c;再操作对应的逻辑。这是比较常见的业务&#xff0c;这里记录实际操作。 其中PC端…

LeetCode2095删除链表的中间节点

题目描述 给你一个链表的头节点 head 。删除 链表的 中间节点 &#xff0c;并返回修改后的链表的头节点 head 。长度为 n 链表的中间节点是从头数起第 ⌊n / 2⌋ 个节点&#xff08;下标从 0 开始&#xff09;&#xff0c;其中 ⌊x⌋ 表示小于或等于 x 的最大整数。对于 n 1、…

Leaflet系列——【一】初识Leaflet与Leaflet视图操作

初识Leaflet&#xff08;vue3 &#xff09; 前言&#xff1a;当你熟悉了openlayer、mapbox、cesium等一些GIS框架之后&#xff0c;对于我们开发来说其实他们的本质就是往瓦片上面叠加图层、【点、线、面、瓦片、geoJson、热力图、图片、svg等等】都是一层层的Layer图层&#xf…

AI与人类生活的融合:安克创新CEO阳萌的深度洞见

安克创新CEO阳萌分享了他对人工智能未来发展的深刻见解。阳萌不仅深入探讨了大模型技术的应用前景&#xff0c;还对AI与人类生活的融合提出了引人入胜的思考。以下是对这次访谈内容的总结和分析。 大模型技术的现实应用 阳萌提到&#xff0c;尽管大模型在处理通用知识方面表…