“华为杯“第四届中国研究生数学建模竞赛-D题:邮路规划与邮车调度

news2024/11/13 9:35:07

目录

摘 要:

1.问题的重述

2.模型的假设与符号说明

2.1 针对本问题,本文做出如下假设

2.2 符号说明

3.问题的数学模型

4.问题的求解

4.1 问题一的求解

4.1.1 最少邮车数的求法

4.1.2 邮路规划及路径选择

4.1.3 问题的求解结果

4.2 问题二的求解

4.2.1 问题的分析

4.2.2 问题的求解结果

4.3 问题三的求解

4.3.1 问题分析

4.3.2 求解结果

4.4 问题四的求解

4.4.1 问题分析

4.4.2 求解结果

5.模型的进一步讨论

参考文献


摘 要:

本文研究的问题是典型的车辆调度问题 (VRP) ,可归结为图论中的多旅行商
问题,通过采用 人造顶点 分区方法同时结合最小生成树分解法,将其转化为多
个单旅行商问题,并借助 LINGO 软件求解单旅行商问题。
针对问题一,本文首先根据邮件寄送总量和邮车承载量,求出所需的最少邮
车数为 3 。接着,建立了一个以最小化总邮路空车率为目标的优化模型。通过将
总邮车空车率简化为邮路总路程最短,将此问题转化为带容量限制车辆调度问题
(CVRP) 问题来求解。最后在满足邮车容量约束的条件下,结合求解多旅行商问
(MTSP) 问题的方法来求解 CVRP ,求得总的因空车率减少的收入为 72 元,同
3 辆邮车能满足运输要求。
针对问题二,对于每个地市局和县局的邮路规划和调度方案,采用类似问题
一的方法求解,计算结果为:地市局 D 、县局 X1 X5 所需的最少邮车数分别为
4 2 2 2 2 3 辆,全区总的运行成本为 7354 元。
针对问题三,本文对问题二求出的邮路按一定的启发式算法进行调整,使总
的运行成本减少 8% ,同时县局 X3 X5 分别可以减少一辆邮车的投入。
针对问题四,本文通过对各县区各支局关联的路数的计算,将县局 X3 调整
Z31 X5 调整为 Z51 ,通过计算发现这两个县区的总路程分别减少近 30%
10%
关键词: CVRP MTSP TSP 、邮路规划

1.问题的重述

某地区的邮政局、所分为地市中心局(简称地市局)、县级中心局(简称县
局)和支局三级机构,该地区的邮政运输网络由区级邮政运输网和县级邮政运输
网构成。区级邮政运输网由从地市局出发并最终返回地市局的区级邮车所行驶的
全部邮路构成,县级邮政运输网由从县局出发并最终返回县局的县级邮车所行驶
的全部邮路构成。为使邮政企业实现低成本运营和较高的服务质量,我们需要对
该地区的邮政运输网络进行重构,确定合适的邮路规划方案并进行邮车的合理调
度。
问题 1:
以县局 X1 及其所辖的 16 个支局 Z1, Z2, ……, Z16 为研究对象,假设区级
第一班次邮车 08:00 到达县局 X1,区级第二班次邮车 16:00 从县局 X1 再出发返
回地市局 D,若每辆县级邮车最多容纳 65 袋邮件,试问最少需要多少辆邮车才
能满足该县的邮件运输需求?同时,为提高邮政运输效益,应如何规划邮路和如
何安排邮车的运行?
问题 2:
采用尽可能少、尽可能短的邮路可以减少邮政部门车辆和人员等的投入,从
而显著降低全区邮政运输网的总运行成本。考虑投入车况较好的邮车,通常每条
邮路只需要一辆邮车即能满足运载能力要求,试问应如何构建该地区的邮政运输
网络(县的划分不能变更),请你给出邮路规划和邮车调度方案。请注意邮车的
调度必须满足上文中有关该地区的邮政运输流程及时限规定。
问题 3:
考虑到部分县与县交界地带的支局,其邮件由邻县县局负责运送可能会降低
全区的运行成本,带来可观的经济效益。若允许在一定程度上打破行政区域的限
制,你能否给出更好的邮路规划和邮车调度方案?
问题 4:
县局选址的合理与否对构建经济、快速的邮政运输网络起到决定性的作用。
假设图 2 中县局 X1,……,X5 均允许迁址到本县内任一支局处,同时原来的县
局弱化为普通支局。设想你是该地区网运部门负责人,请你重新为各个县局选址,
陈述你的迁址理由并以书面材料形式提交省局网运处。

2.模型的假设与符号说明

2.1 针对本问题,本文做出如下假设

1、公路不考虑等级差别,也不受灾情或交通情况的影响;
2、各条公路段骑车行驶速度认为是均匀;
3、此地区的行政划分比较合理;
4、假设区级邮车第一班邮车邮路和第二班邮车邮路一样。
5、假设支局的邮件只由一辆邮车运输。

2.2 符号说明

3.问题的数学模型

本题给出了某地市的邮政交通网络图,要求的是在不同的要求及条件下,邮
路的规划及邮车的调度方案。这是一类图上点的行遍性问题,也就是要用若干条
闭链覆盖图上所有的顶点,并使某些指标达到最优。
点的性变性问题在图论和组合最优化中分别称为哈密尔顿问题和旅行商问
题,就是研究图中是否存在经过所有顶点恰好一次的圈或路,这种圈或路 ( 如果
存在 ) 分别称为哈密尔顿圈或哈密尔顿路,简称为 H - 圈或 H - 路。而旅行商问题
通常是指在赋权图上经过所有顶点至少一次,且使总长度 ( 即边权之和 ) 达到最小
的闭链。而本题所求的多条邮路问题,则与多旅行商问题 (MTSP) 类似,也就是 m
条经过同一点并覆盖所有其它顶点又使边权之和达到最小的闭链 [1]
求解非完全图的多旅行商问题,通常所用的方法可分两步。
第一步是利用任意两点间的 最短路长度 作为该两点间边的权构造一个完全
图。这一点对于原图中没有边相连的点尤为重要。已经证明,该完全图中最优哈
密尔顿圈与原图上的最优旅行商路线等价。
在拓展完全图上求解最优哈密尔顿圈,可以表达成下述线性规划 ( 更确切地
讲是 0-1 规划)的形式:
值得注意的是,该模型求得的最优解(也就是多旅行商问题的最优解),能
使 k 条旅行商路线的总路程达到最小,但是这 k 条路线的均衡性可能相当差。因
此,但要求均衡性时还需要做大量的调整问题。
因为最小生成树能包含图 G 中的所有顶点 E ,而且最小树的边权是相邻两
顶点之间的距离,它描述了顶点之间的相近程度,因此可以考虑利用最小生成树
初步分块。
哈密尔顿问题和旅行商问题都属于 NP-完全难问题,也就是说上述模型的
求解目前没有多项式时间算法。对于本题的规模(由于各县局及地市局分开考虑,
包括构造增广完全图时添加的 k 1 个点不会超过 30),因此利用现有的软件(如
LINGO、ILOG)可以求到最优解,当然当问题的规模增大时,此法将变的不可行。
容易证明,单旅行商的最优路线长度,必定是多旅行商最优路线总长度的下界。

4.问题的求解

4.1 问题一的求解

此题的求解分为两步,第一步,求得最少需要的邮车数 m 。第二步,邮路规
划及路径选择。

4.1.1 最少邮车数的求法

最少邮车数m 可以采用下式求得:
当然,按此法求得邮车数,可能在有限的时间内不能遍历所有支局,由于邮
车在各支局需要卸装邮件,也有可能出现邮车的容量不足的冲突。如果出现这种
情况,可以按步长 1 加大邮车数,直到满足所有约束条件为止。

4.1.2 邮路规划及路径选择

定义 1 邮路是指邮车在完成邮件运输任务的过程中,从邮件分检中心到邮
政局所所运行的线路,即邮路。邮路是邮车运行过程中所经过的分检中心、各邮
件集散地、各邮政局所组成的交顶点序列,邮路包括辐射型邮路、环形邮路、混
合型邮路。
需注意的是, 邮路的逆序和顺序的邮路空车率将不同。因此,在运行时需要
考虑邮路的顺序。
b)问题的简化
此问题是典型的 CVRP Capacitated Vehicle Routing Problem 问题的扩展,
不同的地方有:
此问题的求解类似非完全图的多旅行商问题的求解:首先,对顶点分组,分
别求出各组的单旅行商路线,然后在组间进行适当的调整求得近似解。
分组以后,每组中求最佳旅行商回路,即为当个旅行商问题(TSP),再进行
进一步调整,使得各部分满足均衡条件(3)(4)。由于规模较小,路径选择将变得
较为简单,可以用 LINGO 算出。

4.1.3 问题的求解结果

县局 X1 的邮政线路图如下:
a) 最小邮车数
通过 Floyd 算法求出任意两点间的最短距离和路径来构造一个完全图,借助
LINGO 软件求出此图的最小哈密尔顿圈,其长度为 279 公里,县级邮车平均时
速为 30km/h ,因此一辆邮车只需要 9.3 小时就可以遍历所有支局(如果不考虑
邮车容量限制)。
考虑到第一班次邮车 08:00 到达县局 X1,区级第二班次邮车 16:00 从县局
X1 再出发返回地市局 D,且县局对邮件的集中处理时间为 1 小时(包括邮件的卸
装、分拣封发等处理时间),所以一辆邮车只有 6 小时工作时间。
寄达支局总的邮件数量有 176 袋,支局收寄的总的邮件数量有 170 袋,考虑
到每辆邮车总容量 65 袋,因此 最少的邮车数可能是 3。
通过求解于是总邮寄时间可达 18 小时,远大于 9.3 小时,应该可以满足时
间限制。
b) 邮路规划与路径选择
假设最少邮车数为 3,按前面论述的方法构造增广完全图,需要加入 2 个人
工顶点。
借助 LINGO 软件求出此增广完全图的哈密顿圈,如下图所示:
上图中的 17、18、19 号顶点为县局 X1,从图中可以看出,此圈包含 3 个交
叉的哈密顿圈。但同时考虑到邮车的容量及运行时间限制,按上述的启发式方法
应进行调整,结果如下表。
各邮路的方向及因空车率减少的收入如下表:

4.2 问题二的求解

4.2.1 问题的分析

问题二中考虑投入车况较好的邮车即每辆邮车能满足每条邮路的运载能力
要求,邮路规划及路径选择,使全区总的邮政运输网的总运行成本最低。
由于行政区域的限制,使得地市局和县局邮运相互独立,因此全区总的邮政
运输网的总运行成本最低等价于分别使地市局和 5 个县局的邮政运输网的总运
行成本最低。
此问题在数学上类似与多旅行商问题(MTSP)。因此,针对于每个县局(地市
局)的邮路规划及路径选择可以采用类似问题一的求法,区别在于此问题中的邮
车没有邮车容量的约束。

4.2.2 问题的求解结果

a) 地市区的邮路问题
Step1 最少邮车数的确定
通过 Floyd 算法求出任意两点间的最短距离和路径并加入县局 X1 X5 点构
造一个完全图,此完全图有顶点 Z58 Z73 16 点)、 X1 X5 (5 点)、 D 22
个顶点。
借助 LINGO 软件求出此图的最小哈密尔顿圈,哈密尔顿圈如下图:
最小哈密尔顿圈路径长度为:721 公里,区级邮车的平均时速为 65km/h,所
以一辆邮车至少需要 11.1 小时才能走完。
考虑到区级第一班次邮车出发时间必须在 06:00 之后,返回地市局 D 时间必
须在 11:00 之前,因此每辆邮车最多有 5 小时可工作时,因此最少需要 3 辆邮车。
Step2 规划与路径选择
同第一问的计算一样,加入 2 个虚拟点,求解结果如下表:
市局 D 总运行成本为 2870.4 元,最终 4 条邮路如下图所示:
b) 县区的邮路规划与路径选择
考虑到地市级邮车的工作时间及从地市局到县局的路程,计算出县局邮车工
作时间范围如下表:
全地区的总运行成本为 7354.1 元,地区的邮路如下图所示:

4.3 问题三的求解

4.3.1 问题分析

问题三在问题三的基础上考虑打破行政区域的限制,使全区总的邮政运输网
的总运行成本最低。
因此,让更近的县局来处理支局的邮件服务很有可能降低全区的邮政服务
成本,此将问题的求解变的非常复杂。
为了简化问题的求解,我们可以分析问题二的求解结果。
针对问题二的求解结果,在邮车运行过程中,某些邮路邮车的工作时间较
短,此条邮路可能还能处理邻县支局的邮政服务。在处理过程中,应尽量 减少邮
路,同时使邮路减短。

4.3.2 求解结果

综合分析各县区邮车工作时间范围,及全区各地市、县局的邮路中。我们发
现:
1. 县区 X2 X3 的邮路时间均有空闲,经过调整后结果如下:
经全面调整后,总运行成本为 6766.8 元,共减少 587.3 元即 8% ,调整后邮
路如下图所示,同时,县区 X3 X5 各减少一条邮路,即可少投入 2 辆邮车。

4.4 问题四的求解

4.4.1 问题分析

邮政服务的高效性在很大程度上取决于交通系统的有效性,一般而言县局处
于交通枢纽位置。
如果求得的中心顶点有m ( m > 1 ) 个,则逐个比较用这 m 个中心顶点替换县
局后多旅行商路程的大小,选择其中最小的那个作为县局。

4.4.2 求解结果

Step1 求各县局或地市局的中心顶点
针对每个县局或地市局,通过 Floyd 算法求出任意两点间的最短距离和路径
来构造一个完全图,然后再计算出给顶点的度如下:
由上面各表的数据可知,各县局的中心顶点是 X1、 X2 Z31 X4 Z51
即县区 3 和县区 5 的县局点可能需要分别迁到 Z31 Z51 顶点,其他县区的县
局点保持不变。
Step2 验证中心顶点是否调整为县局
1.Z31 替换 X3 作为县局
采用前面求解其多旅行商路线及路程长度的方法,求出其邮路及邮路的路程
如下表所示:
其中,顶点 76 代表 X3 点,两邮路总路程为 184 公里。替换前总路程为:
254 公里,缩短了 70 公里,近 30% 。替换后的邮路图如下图所示:
2. Z51 替换 X5 作为县局
采用前面求解其多旅行商路线及路程长度的方法,求出其邮路及邮路的路程
如下表所示:
县局迁址申请书
尊敬的市领导:
为了在全市区构建经济、快速的邮政运输网络,特申请将县区 X3 县局地址
迁至 Z31 ,将县区 X5 县局地址迁至 Z51 。理由如下:
县区 X3 X5 的县局位置处在县区的边缘位置,不利于邮政运输,若将县局
地址分别迁至 Z31 Z51 ,这 2 个位置均处于县区交通中心位置,区级邮车送来
的邮件可方便、快速地分发到县内各支局,县内邮车行驶路程可分别减少 28%
7.2% ,可节省大量运输成本。
基于以上理由,特向市领导提出申请。
申请人: ΧΧΧ
2007-10-22

5.模型的进一步讨论

该问题是一个 CVRP 问题,是已被论证的 NPC 问题,至今仍无有效的算法。
求最优 Hamilton 回路是该问题的常见的计算机近似算法,它不能保证得到最优
解,运算量很大,这种算法能很容易在图论文献中查到。
我们的策略改进方法不能保证求得最优解,但接近最优解。并且所提出的策
略能大幅度减少计算量。
我们提出一组规则对图分块,但未能给出一个准确的原则定量地给出总路程
最短通均衡性最好的制约关系。

参考文献

[1] 丁颂康,灾情巡视的最佳路线,数学的实践与认识,第 29 卷 第 1 1999 1 月。
[2] 肖峰,邮政车辆调度问题研究,硕士论文, 2007 3 月。
[3] 罗卢杨,龙继东,唐小军,灾情巡视路线寻优模型,数学的实践与认识,第 29 卷 第 1
1999 1 月。
[4] Chen Ailing, Yang Genke, Wu Zhiming, An Effective Hybr id Optim ization Algor ithm
for Capac itated Vehicle Routing Problem, Journal of Shanghai J iao tong U niversity
(Science) ,Vo l. E211,No. 1, 2006, pp.50 55.
[5 ] R Fukasawa, H Longo, J Lysgaard , Robust Branch and Cut and Price for the Capacitated Vehicle
Routing Problem, Mathematical Programming,2005.

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

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

相关文章

FPGA之初探

FPGA的构成 基本逻辑单元CLB CLB是FPGA的基本逻辑单元, 一个 CLB 包括了 2 个 Slices,所以知道Slices的数量就可以知道FPGA的“大概”逻辑资源容量了。一个 Slice 等于 4 个6输入LUT8个触发器(flip-flop)算数运算逻辑,每个 Slice 的 4 个触发…

在线的货币兑换平台源码下载

在线的货币兑换平台,可帮助全球各地的个人和企业将货币从一种货币兑换为另一种货币。该货币兑换平台是 Codecanyon 中最先进的脚本。 源码下载:https://download.csdn.net/download/m0_66047725/88728084

VMware 安装及创建一个 CentOS Stream 的详细指南

文章目录 1. 简介2. 下载和安装1)通过官网安装2)通过电脑管家安装 3. 下载操作系统镜像包4. 创建虚拟机结语 1. 简介 在过去,服务器通常是运行单一操作系统和应用程序的物理设备。这就导致了硬件资源浪费和管理复杂性的增加。为了解决这些问…

【C++刷题】位运算

【C刷题】位运算 一、二进制中最右侧的11、位1的个数(1)题目链接(2)解析(3)代码 2、比特位计数(1)题目链接(2)解析(3)代码 3、汉明距离…

LTESniffer:一款功能强大的LTE上下行链路安全监控工具

关于LTESniffer LTESniffer是一款功能强大的LTE上下行链路安全监控工具,该工具是一款针对LTE的安全开源工具。 该工具首先可以解码物理下行控制信道(PDCCH)并获取所有活动用户的下行链路控制信息(DCI)和无线网络临时…

重温经典struts1之自定义全局异常处理类处理异常以及<exeception>标签的配置

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 前言 前面的文章,我们学习了,Action类中调用Service,通过try…catch代码块,catch自定义异常类,通过ActionMessage…

cesium粒子效果——船舰水花效果

效果: 实现思路(最后有完整代码): 与上篇文章思路一样 无非就是更换了模型与粒子图片以及粒子的配置,上一篇文章链接:https://blog.csdn.net/m0_63701303/article/details/135551667?spm1001.2014.3001.5…

neo4j 图数据库 py2neo 操作 示例代码

文章目录 摘要前置NodeMatcher & RelationshipMatcher创建节点查询获取节点节点有则查询,无则创建创建关系查询关系关系有则查询,无则创建 Cypher语句创建节点 摘要 利用py2neo包,实现把excel表里面的数据,插入到neo4j 图数据…

React Native 环境安装

Notion – The all-in-one workspace for your notes, tasks, wikis, and databases. 搭建开发环境 React Native 中文网 Homebrew(包管理器) → rvm(ruby版本管理) → ruby → cocoapods 安装 Homebrew Homebrew /bin/ba…

java每日一题——ATM系统编写(答案及编程思路)

前言: 基础语句学完,也可以编写一些像样的程序了,现在要做的是多加练习,巩固下知识点,打好基础,daydayup! 题目:模仿银行ATM系统,可以创建用户,存钱,转账&…

分布式搜索引擎--认识

elasticsearch的作用 elasticsearch是一款非常强大的开源搜索引擎,具备非常多强大功能,可以帮助我们从海量数据中快速找到需要的内容 。 elasticsearch结合kibana、Logstash、Beats,也就是elastic stack(ELK)。被广泛…

极简Oracle 11g Release 2 (11.2.0.1.0)

注意:此法无法安装oracle11g(11.2.0.4),会报如下错: [FATAL] [INS-10105] The given response file /assets/db_install.rsp is not valid. 一、下载解压ORACLE安装包。 从 oracle 官网 下载所需要的安装包,这里我们以 oracle 11…

【MCAL】MCU模块详解

目录 前言 正文 1. MCU模块介绍 2. MCU依赖的模块 3. MCU模块提供服务 3.1 时钟的初始化 3.2 MCU模式的配置 3.3 MCU软件复位功能 3.4 RAM的初始化 4.MCU重要数据类型 4.1 Mcu_ResetType 4.2 Mcu_ModeType 5. MCU重要API 5.1 Mcu_Init 5.2 Mcu_InitClock 5.3 M…

Open3D 点云等比例缩放(20)

Open3D 点云等比例缩放(20) 一、算法介绍二、算法实现1.代码世人慌慌张张,不过图碎银几两, 偏偏这碎银几两,能解世间万种慌张。 一、算法介绍 实现这样一个功能,沿着中心,按照指定的比例,比如1/2,缩小或者放大点云,保存到新的文件中 二、算法实现 1.代码 import…

Matlab:toposort

语法: n toposort(G) %调用toposort函数,对有向图G进行拓扑排序,并将排序结果存储在变量n中 n toposort(G,Order,algorithm) [n,H] toposort(___) %使用了两个输出参数的形式来调用toposort函数。除了返回排序结果n外&am…

uniapp 编译后文字乱码的解决方案

问题: 新建的页面中编写代码,其中数字和图片都可以正常显示,只有中文编译后展示乱码 页面展示也是乱码 解决方案: 打开HuilderX编辑器的【文件】- 【以指定编码重新打开】- 【选择UTF-8】 然后重新编译就可以啦~ 希望可以帮到你啊~

bootloader学习笔记及SD卡启动盘制作

Bootloader介绍 在操作系统运行之前运行的一小段代码,用于将软硬件环境初始化到一个合适的状态,为操作系统的加载和运行做准备(其本身不是操作系统) Bootloader基本功能 1、初始化软硬件环境 2、引导加载linux内核 3、给linux…

golang实现rpc方法二:使用jsonrpc库【跨平台】

首先在golang实现rpc方法一net/rpc库中实现了RPC方法,但是那个方法不是跨平台的,没法在其他语言中调用这个实现的RPC方法,接下来我们可以通过jsonroc库实现跨语言的RPC方法。俩种实现方式的代码其实也是差不多的,大差不差&#xf…

变更数据捕获:概述、原因及最佳实践

当今的企业,尤其是那些已将数字化转型置于优先地位的企业,需要接近实时的数据。每周和每月的批处理已不再适用。然而,从多种来源获取实时数据以自动化流程并做出动态优化决策并非易事。 最近,在为客户重新架构遗留系统并将单体架构…

强化学习应用(六):基于Q-learning的无人机物流路径规划研究(提供Python代码)

一、Q-learning简介 Q-learning是一种强化学习算法,用于解决基于马尔可夫决策过程(MDP)的问题。它通过学习一个价值函数来指导智能体在环境中做出决策,以最大化累积奖励。 Q-learning算法的核心思想是通过不断更新一个称为Q值的…