物流配送中最优路径规划模拟软件
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
物流配送中的最优路径规划模拟
软件说明书
学校:武汉轻工大学
院系:数学与计算机学院
专业:信息与计算科学
指导教师:***
小组名称:一苹微歌
小组成员:胡鹏程新强彭肖飞日期:_____年______月_____日
目录
1引言-----------------------------------------------------1 2算法思路-------------------------------------------------2 3总体设计------------------------------------------------15 4系统出错处理设计----------------------------------------17 5客户数据生成模块设计说明--------------------------------18 6行车路径最短模块设计说明--------------------------------18 7行车时间最短模块设计说明--------------------------------19 8解决堵车问题模块设计说明--------------------------------20 9未解决的问题--------------------------------------------21 10参考资料-----------------------------------------------21
1引言
1.1编写目的
在B2C农产品电子商务物流配送时,物流车装载当日需要配送的货品从仓库出发,按照事先规划好的最优配送路径为每一个客户进行配送,最后返回仓库。物流配送模拟系统就是在配送之前需要根据客户的配送地址间线路间距、经验路况做分析计算出一条最优配送路径。在配送过程中,如果某路段堵车,物流配送模拟系统需要动态调整配送路线。
1.2背景说明
设计一个物流配送中的最优路径规划模拟软件,解决物流配送过程中路程最短,时间最短以及堵车后重新规划等问题,并在软件的界面上模拟车辆的运行。随着市场经济的发展和物流技术专业化水平的提高,物流配送业得到了迅猛发展。配送路径的选择是否合理,对加快配送速度、提高服务质量、降低配送成本及增加经济效益都有较大影响。配送路径的优化问题是物流配送系统的一个主要问题,物流配送路径的优化就是以最低的运营成本,最快捷的响应速度、最短的配送运输时间,把货物运至用户手中,而后两个指标与第一个指标之间存在着一定的制约关系,无法达到全体的最优,因此严格地讲,这是一个多目标的优化问题。
1.3定义
T S P(Traveling Salesman Problem):旅行商问题
Backtrack:回溯
GA (Genetic Algorithm ):遗传算法
SA(Simulated Annealing):模拟退火算法
2算法思路
2.1回溯算法
2.1.1回溯法的定义
回溯法是一种选优搜索法,按选优条件向前搜索,以达到目标。但当探索到某一步时,发现原先选择并不优或达不到目标,就退回一步重新选择,这种走不通就退回再走的技术为回溯法,而满足回溯条件的某个状态的点称为“回溯点”。
2.1.2 回溯法的描述
可用回溯法求解的问题P ,通常要能表达为:对于已知的由n 元组),...,,(21n X X X 组成的一个状态空间E={),...,,(21n X X X ∣i X ∈i S ,i=1,2,…,n},给定关于n 元组中的一个分量的一
个约束集D ,要求E 中满足D 的全部约束条件的所有n 元组。其中i S 是分量i X 的定义域,且 |i S | 有限,i=1,2,…,n 。
我们称E 中满足D 的全部约束条件的任一n 元组为问题P 的一个解。解问题P 的最朴素的方法就是枚举法,即对E 中的所有n 元组逐一地检测其是否满足D 的全部约束,若满足,则为问题P 的一个解。但显然,其计算量是相当大的。
我们发现,对于许多问题,所给定的约束集D 具有完备
性,即i 元组),...,,(21i X X X 满足D 中仅涉及到1X ,2X ,…,i X 的所有约束意味着j 元组(1X ,2X ,…,j X )一定也满足D 中
仅涉及到1X ,2X ,…,j X 的所有约束,i =1,2,…,n 。换句话说,只要存在0≤j≤n -1,使得(1X ,2X ,…,j X )违反D 中仅涉及到1X ,2X ,…,j X 的约束之一,则以(1X ,2X ,…,
j X )为前缀的任何n 元组(1X ,2X ,…,j X ,1+j X ,…,n X )一定也违反D 中仅涉及到1X ,2X ,…,i X 的一个约束,因此,
对于约束集D 具有完备性的问题P ,一旦检测断定某个j 元组(1X ,2X ,…,j X )违反D 中仅涉及1X ,2X ,…,j X 的一个约束,就可以肯定,以(1X ,2X ,…,j X )为前缀的任何n 元组(1X ,2X ,…,j X ,1+j X ,…,n X )都不会是问题P 的
解,因而就不必去搜索它们、检测它们。回溯法正是针对这类问题,利用这类问题的上述性质而提出来的比枚举法效率更高的算法。
回溯法首先将问题P 的n 元组的状态空间E 表示成一棵
高为n 的带权有序树T ,把在E 中求问题P 的所有解转化为在T 中搜索问题P 的所有解。树T 类似于检索树,它可以这样构造:
设i S 中的元素可排成i X (1),i X (2),…,i X (i m -1),|i S |
=i m ,i=1,2,…,n 。从根开始,让T 的第I 层的每一个结
点都有i m 个儿子。这i m 个儿子到它们的双亲的边,按从左到
右的次序,分别带权1+i X (1) ,1+i X (2) ,…,1+i X (i m ) ,i=0,
1,2,…,n-1。照这种构造方式,E 中的一个n 元组),...,,(21n X X X 对应于T 中的一个叶子结点,T 的根到这个叶子结点的路径