VRPTW:新雀优化算法NOA求解带时间窗的车辆路径问题

news2024/12/23 6:50:07

一、新雀优化算法NOA求解带时间窗的车辆路径问题

1.1VRPTW模型如下:

带时间窗的车辆路径问题(Vehicle Routing Problem with Time Windows, VRPTW)

1.2新雀优化算法NOA求解VRPTW

close all
clear 
clc
SearchAgents_no=30; % 种群大小
Function_name='F1'; 
Max_iteration=100; % 最大迭代次数
[lb,ub,dim,fobj]=Get_Functions_details(Function_name);
[fMin,bestX,curve]=NOA(SearchAgents_no,Max_iteration,lb,ub,dim,fobj);  %算法求解

code link: https://mbd.pub/o/bread/mbd-ZJiXkphx

%% 显示最终结果
Pos=ShowResult(bestX);
%% 画图
figure
plot(curve,'Color','g','linewidth',1.5)%semilogy
xlabel('迭代次数');
ylabel('路径成本');
grid on
box on
legend('NOA')
%% 保存数据
save curve curve
save bestX bestX

部分结果:

配送路线1:0->2->21->10->0 服务顾客数量:3 路径长度:96.65542 装载量:34

服务顾客2的起始时间:18.00000,结束时间:28.00000

服务顾客21的起始时间:38.44031,结束时间:48.44031

服务顾客10的起始时间:91.16033,结束时间:101.16033

抵达配送中心的时间:126.65542

配送路线2:0->7->0 服务顾客数量:1 路径长度:42.42641 装载量:5

服务顾客7的起始时间:21.21320,结束时间:31.21320

抵达配送中心的时间:52.42641

配送路线3:0->5->25->0 服务顾客数量:2 路径长度:105.14674 装载量:32

服务顾客5的起始时间:20.61553,结束时间:30.61553

服务顾客25的起始时间:81.60572,结束时间:91.60572

抵达配送中心的时间:125.14674

配送路线4:0->11->8->13->0 服务顾客数量:3 路径长度:95.79470 装载量:44

服务顾客11的起始时间:33.54102,结束时间:43.54102

服务顾客8的起始时间:67.70711,结束时间:77.70711

服务顾客13的起始时间:104.61436,结束时间:114.61436

抵达配送中心的时间:125.79470

配送路线5:0->9->4->0 服务顾客数量:2 路径长度:97.01562 装载量:35

服务顾客9的起始时间:32.01562,结束时间:42.01562

服务顾客4的起始时间:82.01562,结束时间:92.01562

抵达配送中心的时间:117.01562

配送路线6:0->16->24->0 服务顾客数量:2 路径长度:116.16353 装载量:22

服务顾客16的起始时间:29.15476,结束时间:39.15476

服务顾客24的起始时间:96.16353,结束时间:106.16353

抵达配送中心的时间:136.16353

配送路线7:0->14->15->6->1->0 服务顾客数量:4 路径长度:113.39314 装载量:41

服务顾客14的起始时间:32.01562,结束时间:42.01562

服务顾客15的起始时间:57.82701,结束时间:67.82701

服务顾客6的起始时间:93.32211,结束时间:103.32211

服务顾客1的起始时间:128.16159,结束时间:138.16159

抵达配送中心的时间:153.39314

配送路线8:0->18->0 服务顾客数量:1 路径长度:31.62278 装载量:12

服务顾客18的起始时间:15.81139,结束时间:25.81139

抵达配送中心的时间:41.62278

配送路线9:0->12->3->0 服务顾客数量:2 路径长度:48.54102 装载量:32

服务顾客12的起始时间:15.00000,结束时间:25.00000

服务顾客3的起始时间:36.18034,结束时间:46.18034

抵达配送中心的时间:68.54102

配送路线10:0->19->20->0 服务顾客数量:2 路径长度:94.05221 装载量:26

服务顾客19的起始时间:32.01562,结束时间:42.01562

服务顾客20的起始时间:72.42943,结束时间:82.42943

抵达配送中心的时间:114.05221

配送路线11:0->23->22->17->0 服务顾客数量:3 路径长度:122.37102 装载量:49

服务顾客23的起始时间:36.05551,结束时间:46.05551

服务顾客22的起始时间:57.23585,结束时间:67.23585

服务顾客17的起始时间:111.95721,结束时间:121.95721

抵达配送中心的时间:152.37102

配送路线总长度:963.18259

二、参考代码

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

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

相关文章

准备“开黑”,电脑却“告退”?游戏闪退的解决方法

游戏玩家近期可能会发现,不少大作陆陆续续登录PC市场,比如《死亡岛 2》、《无畏契约》等。但也有不少游戏用户会发现,电脑玩游戏时容易出现闪退的情况。特别是在进行高负荷运算的时候,有一些游戏更为容易出现这种情况,…

[架构之路-176]-《软考-系统分析师》-17-嵌入式系统分析与设计 -1- 实时性(任务切换时间、中断延迟时间、中断响应时间)、可靠性、功耗、体积、成本

目录 前言: 1 7 . 1 嵌 入 式 系 统 概 述 1 . 嵌入式系统的特点 (1) 系统专用性强。 (2) 系统实时性强。 (3) 软硬件依赖性强 (4) 处理器专用。 ( 5 ) 多种技术紧密结合。 (6) 系统透明性。 (7) 系统资源受限。 2 . 嵌入式系统的组成 1 7 . 3 嵌入式实…

拷贝构造函数和赋值重载函数详解

1.拷贝构造函数 1.1拷贝构造函数的概念 拷贝构造函数:只有单个形参,该形参是对本类类型对象的引用(一般常用const修饰),在用已存在的类类型对象创建新对象时由编译器自动调用。拷贝构造函数也是特殊的成员函数,其特征如下&#…

Golang每日一练(leetDay0051)

目录 151. 颠倒字符串中的单词 Reverse Words In A String 🌟🌟 152. 乘积最大子数组 Maximum Product Sub-Array 🌟🌟 🌟 每日一练刷题专栏 🌟 Golang每日一练 专栏 Python每日一练 专栏 C/C每日一…

【分布式】CAP原则和BASE理论

CAP原则概述 CConsistency一致性AAvailability可用性PPartition tolerance分区容错性 1998年,加州大学的计算机科学家Eric Brewer提出,分布式系统有三个指标 一致性(C):在分布式系统中的所有数据备份,在同…

TiDB实战篇-基于索引的SQL优化

简介 TiDB实战篇-基于索引的SQL优化。 Online DDL 允许直接在线执行ddl操作,不会锁表,但是执行多个ddl的时候会要排队。 原理 控制创建索引的速度 查看影响 标红的是加了多少行索引。 添加索引的线上的影响(读写频繁) 只读场…

Linux程序设计之IP地址转换

1.通常,人们习惯于使用可读性好的字符串来表示IP的地址,但是,在实际的使用过程中,需要使用的IP地址应该为无符号的整数(在计算机中存储时是对应的二进制,只有二进制计算机才能识别,即0、1)。已经封装好的函…

windows开机不自动挂载磁盘的方法

本人的电脑系统为win11 写作时间20230430 开机不挂载某块磁盘的理由 1.本人电脑上有个仓库盘是机械硬盘,并不是每次开机都要用到,开机不挂载也许有利于增加数据盘的寿命 2.挂载了数据盘,有时候打开文件页面会比较慢,不够丝滑 …

MATLAB绘制汽车理论的仿真图片

这里写自定义目录标题 仿真绘图内容发动机最优曲线最优燃油消耗率曲线最优效率曲线工作时间/能量消耗的分布 传统车动力性分析绘制三(或多个)y坐标轴函数统计数据分布情况函数 仿真绘图内容 从传统车到新能源混合动力车型的不同绘制。 发动机最优曲线 …

排序算法 - 选择排序

文章目录 选择排序介绍选择排序实现选择排序的时间复杂度和稳定性选择排序时间复杂度选择排序稳定性 代码实现核心&总结 每日一道算法,提高脑力。第四天,选择排序。 选择排序介绍 它的基本思想是: 首先在未排序的数列中找到最小(or最大)元素&#…

Vue3超详细的ref()用法,看这一篇就够了

ref()接受一个内部值,返回一个响应式的、可更改的 ref 对象,此对象只有一个指向其内部值的属性 .value。 ref() 将传入参数的值包装为一个带 .value 属性的 ref 对象。 1、ref 对象是可更改的,即可以为 .value 赋予新的值 举例: c…

使用Vscode调试shell脚本 环境搭建基本步骤

操作系统: Linux --CentOS. step1: 在Vscode 中安装Bash Debug Step2:创建一个名字为123.sh的shell脚本; 输入123.sh, 回车: ​​​​​​Step3:编辑简单的待打印的内容,如下: Step4: 配置编译器 修改为下面内容: Step5: 点击按…

spring源码搭建记录

spring源码搭建记录 一.环境1.1 构建工具1.1.1 Gradle简介1.1.2 与常见的项目构建工具对比1.1.3 gradle下载1.1.4 Gradle安装 1.2 jdk与源码版本1.3 源码下载与导入 一.环境 1.1 构建工具 Spring源码工程使用的项目构建工具不是Maven,而是Google的Gradle。首先需了…

Docker搭建配置Gitlab

Docker搭建配置Gitlab 1 参考文档2 Gitlab相关介绍2.1 Gitlab2.2 Git和SVN的区别2.3 Git、Gitlab、GitHub的简单区别 3 搭建Gitlab仓库3.1 拉取镜像3.2 启动容器3.3 修改配置文件 4 管理员登录Gitlab5 Gitlab配置邮箱6 创建组7 创建项目8 创建用户9 Gitlab 数据备份【这块待实践…

第29步 机器学习分类实战:支持向量机(SVM)建模

文章目录 前言一、数据预处理二、SVM的调参策略三、SVM调参演示总结 前言 支持向量机(SVM)建模。 一、数据预处理 import numpy as np import matplotlib.pyplot as plt import pandas as pd dataset pd.read_csv(X disease code fs.csv) X dataset.…

SSM整合(二) | 表现层数据封装格式及封装步骤

文章目录 表现层数据封装数据返回格式数据封装 表现层数据封装 数据返回格式 表现层数据封装是什么意思呢? 我们根据目前做的增删改查功能来看看目前返回数据的格式存在哪些问题 增删改的数据返回格式如下: true查询单条数据的返回格式如下: {"id": 1,"type&…

【致敬未来的攻城狮计划】— 连续打卡第十七天:FSP固件库开发GPT — PWM通用定时器 定时2s LED 闪烁

系列文章目录 1.连续打卡第一天:提前对CPK_RA2E1是瑞萨RA系列开发板的初体验,了解一下 2.开发环境的选择和调试(从零开始,加油) 3.欲速则不达,今天是对RA2E1 基础知识的补充学习。 4.e2 studio 使用教程 5.…

MySQL提权/条件竞争漏洞分析和利用(37)

预备知识 漏洞描述 CVE编号&#xff1a;CVE-2016-6663 / CVE-2016-5616 && CVE-2016-6664-5617漏洞级别&#xff1a;严重 漏洞影响&#xff1a;漏洞影响&#xff1a; MariaDB < 5.5.52 < 10.1.18 < 10.0.28 MySQL < 5.5.51 < 5.6.32 < 5.7…

【MATLAB数据处理实用案例详解(18)】——利用自组织特征映射网络实现亚洲足球水平聚类

目录 一、问题描述二、自组织特征映射网络实现亚洲足球水平聚类原理三、算法步骤3.1 定义样本3.2 创建网络3.3 网络训练3.4 测试3.5 显示聚类结果 四、运行结果五、完整代码 一、问题描述 中国男子足球队的比赛成绩一直牵动着广大球迷的心。很多人认定中国队已处于亚洲三流甚至…

SpringBoot 多数据源及事务解决方案

1. 背景 一个主库和N个应用库的数据源&#xff0c;并且会同时操作主库和应用库的数据&#xff0c;需要解决以下两个问题&#xff1a; 如何动态管理多个数据源以及切换&#xff1f; 如何保证多数据源场景下的数据一致性(事务)&#xff1f; 本文主要探讨这两个问题的解决方案…