温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片!

温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片!

温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片!

作者简介:Java领域优质创作者、CSDN博客专家 、CSDN内容合伙人、掘金特邀作者、阿里云博客专家、51CTO特邀作者、多年架构师设计经验、多年校企合作经验,被多个学校常年聘为校外企业导师,指导学生毕业设计并参与学生毕业答辩指导,有较为丰富的相关经验。期待与各位高校教师、企业讲师以及同行交流合作

主要内容:Java项目、Python项目、前端项目、PHP、ASP.NET、人工智能与大数据、单片机开发、物联网设计与开发设计、简历模板、学习资料、面试题库、技术互助、就业指导等

业务范围:免费功能设计、开题报告、任务书、中期检查PPT、系统功能实现、代码编写、论文编写和辅导、论文降重、长期答辩答疑辅导、腾讯会议一对一专业讲解辅导答辩、模拟答辩演练、和理解代码逻辑思路等。

收藏点赞不迷路  关注作者有好处

                                         文末获取源码

感兴趣的可以先收藏起来,还有大家在毕设选题,项目以及论文编写等相关问题都可以给我留言咨询,希望帮助更多的人

介绍资料

1 引言

1.1  编写目的

编写该项说明书的主要目的是对该物流配送软件的总体设计所 产生的功能模块进行过程描述,包括程序的策划、实现、测试三个方 面。 我组主要基于类库 MFC 开发物流配送最优路径规划模拟系统, 基本解决了物流公司从仓库出发依次向各客户配送货物再返回仓库 所存在的最短路线、最优路线的静态规划、动态规划问题。

1.2  背景说明

软件系统名称:物流配送最优路径规划模拟系统

软件开发平台:VC++6.0(Microsoft  Visual  C++6.0   中文版) Macromedia Firework 8 Adobe Photoshop

类库技术支持:MFC(Microsoft Foundation Classes) 开发语言:C\C++

运行平台:Windows 系统平台

1.3  定义及说明

对文档中的特殊名词的简单定义及说明,如表 1-1:

 1-1  名词定义及说明

名称

定义

输入区

用户需要手动输入、选择的区域

状态区

根据输入信息及行进信息最后反馈的区域

地图区

用户需要手动标记仓库、客户、堵车路段的区域

推荐货车配置

写有小车型号、功率、自重、耗油量的对话框

演算公式

写有状态栏各种指标结果的计算公式的对话框

使用说明

写有详细的使用说明信息的对话框

需求量(吨)

客户需要货物的总吨数,影响平均行驶速度(额定功率÷质量)

燃油费(元/公里)

和行驶里程数共同影响配送成本(里程数 x 燃油费)

其余费(元)

配送过程中需要的其他费用

比例尺

图上每像素:实际千米数=301

总里程(km

从仓库出发依次配送到各个客户后再返回仓库的总距离

配送成本(元)

(里程数 x 燃油费+时间 x 每小时损失费+其余费)的计算结果

预期时长(h

估计全程耗时,(各路段里程/各路段速度)再求和的结果

速度(km/h

由汽车当前所行驶在的道路路况、平均行驶速度、波动值决定

路况(流畅、拥挤)

由汽车当前所行驶在的道路路况决定

方案选择

可以选择不同种配送方案

最短路径

搜索最短里程数的路线,只以里程数最小优先,忽视堵车路段

最短时间

首先按最短路线搜索,后随用户设置的堵车路段以时间最短优先

静态规划

汽车未出发前就事先设置好的路况,寻找一条最短里程的路

动态规划

汽车出发后在行进途中设置路况,寻找一条可绕开堵车路段的路

寻路按钮

输入信息合法、标记合法后按该按钮进行初次的路线规划

暂停按钮

行进暂停,用户可以利用此按钮动态标注堵车路段

启动按钮

行进继续,系统会根据刚才用户标记的堵车路段重新规划理想路线

重置按钮

清空标记的所有地点与路段,用户可以重新进行输入与选择

重找按钮

随机算法的缺陷导致每次不一定能找到最短路线,用户按下后系统 可以向着更短里程的方向重新搜索路线

收敛重找模式

重找得到的结果一定比上一次搜索得到的结果短(实际用)

非收敛重找模式

重找得到的结果是经过一次算法得到的随机值(测试算法用)

测试按钮

输入信息合法、标记合法后按该按钮进行手动测试,用户可以朝着 想要前进的方向,双击道路,汽车会自动按用户的思路行进

重测按钮

测试时点错路线,用户可按下此按钮重新来过

结点

道路与道路之间的交叉点或在道路旁边的客户、仓库地点

标记点

可以按右键进行仓库、客户标记的深蓝色点

仓库点

右键点击标记仓库后出现的黑白相间的旗帜

客户点

右键点击标记客户后出现的橙色的旗帜

ID

结点、道路的标号(具体请见测试文档)

A 星算法

一种静态路网中求解最短路径的有效算法

OPEN 链表

用来添加已经遍历过的相邻结点的链表

CLOSE 链表

用来添加已经扩展过的中心结点的链表

TRAFFIC 链表

用来添加遍历到堵车结点的链表

堵车结点

一条堵车道路的两端的结点

中心结点

扩展出其周围有相邻道路的结点的结点

相邻结点

由中心结点扩展而出的结点

父结点

同中心结点类似,但该结点一定是到子结点最近的结点

子结点

一个指向父结点的结点

复活结点

 OPEN 链表已没有任何中心结点可以扩展,而扩展 TRAFFIC  的堵车结点的结点

估价函数 f(n)

到一个结点的路程与该结点到终点的预计路程之和,f(n)=g(n)+h(n)

已走路程 g(n)

从起始点到一个结点所走过的路程

启发路程 h(n)

预计从一个结点到终止点大概需要走过的路程

回溯路线

调用 A 星算法后每个结点指向了其父结点,从终止点依次追溯至起

始点找到最短路线的过程

改进模拟退火算法

一种经改进的模拟物理学中固体退火原理的算法

遗传算法

一种模拟自然进化过程的算法

数组顺序

用户标记完仓库和客户后动态产生一个数组,该数组的首尾存放仓 库的 ID,中间以一种顺序有且仅存放一次不同客户的 ID

父亲数组

未经下一次打乱顺序的当前数组

儿子数组

经过父亲数组打乱顺序而得的数组

变异

模拟退火算法中以一定概率接受路程稍长的数组顺序,将其作为父 亲数组,通过打乱顺序可能得到比舍弃的数组更优的儿子数组

记忆

接受稍长数组的时候记住旧数组的过程

重升温

经过一次退火过程后找到的最短路程大于文件中记录的历史最小 值时,需要重新进行退火过程

最终路线链表

经过改进模拟退火算法后得到的最终路线的链表,该链表内部依次 存有先后到达结点的 ID,通过此 ID 可以画出行进路线

1.4  参考资料

[1]  盖伊曼德若利().软件工程基础[M].  中国电力出版社 .2006

[2]  佚名 .深入 A*算法.http://dev.gameres.com/Program/Abstract/a8first_2.htm

[3]  康立山、谢云等.计算方法丛书——非数值并行算法[M].  科学出版社, 1994 - 244  .2007

[4]  王小平、曹立明.遗传算法——理论、应用与软件实现[M].西安交通大学出版社

[5]  钟敏.A*算法估价函数的特性分析[J].武汉工程职业技术学院学报, 2006  02

[6] 田明星.路径规划在车辆导航系统中的应用研究[J].  北京交通大学.2009

2  程序系统的结构

2.1 全程模块

介绍本软件的设计及开发过程的介绍与分工,如表 2-1

 2-1  系统开发过程及描述

模块名称

开发负责人

功能描述

市场调查

A

对市场应用价值、需求度等信息的调查与统计。增强系 统的价值性。

资料归纳

A

通过查阅资料,归纳总结物流配送需要的指标,及计算 公式与计算方法。增强系统的实际准确性。

文档编写

B

编写需求规格书、系统设计说明书、测试文档,让软件 的编写游刃有余。增强了编写的有条理性。

界面与图形

C

设计简洁清晰界面,并利用 Photoshop Firework 处理

各种图样。增强系统的美观性。

消息响应

D

各控件包括按钮、鼠标右键、鼠标移动、鼠标双击、定 时器、弹出式菜单需要响应的动作。增强人机交互性。

算法设计

E

A 星算法、改进模拟退火算法、遗传算法三者结合实现 最短路径、动态规划。增强了系统的智能性。

后期优化

F

添加选中状态、音效、使用说明等功能。增强了观赏性。

测试数据

G

演示坐标,注明坐标,通过手动测算得到的数据与系统 状态栏的数据进行对比。增强了说服性。

视频制作

H

宣传视频的制作与处理

运行截图

推荐项目

上万套Java、Python、大数据、机器学习、深度学习等高级选题(源码+lw+部署文档+讲解等)

项目案例

优势

1-项目均为博主学习开发自研,适合新手入门和学习使用

2-所有源码均一手开发,不是模版!不容易跟班里人重复!

🍅✌感兴趣的可以先收藏起来,点赞关注不迷路,想学习更多项目可以查看主页,大家在毕设选题,项目代码以及论文编写等相关问题都可以给我留言咨询,希望可以帮助同学们顺利毕业!🍅✌

源码获取方式

🍅由于篇幅限制,获取完整文章或源码、代做项目的,拉到文章底部即可看到个人联系方式。🍅

点赞、收藏、关注,不迷路,下方查看👇🏻获取联系方式👇🏻

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐