规划求解求最短路径

Posted 麦斯花园

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了规划求解求最短路径相关的知识,希望对你有一定的参考价值。

小编语:经过一次讨论课,对EXCEL开启了改观生涯,之前的应付考试到现行的感兴趣,有一番外感受就是案例教学值得推广,在某种程度上能改变一个人的思维路径和学习的兴趣点,从而激发内源自主性,这一点很重要。今天PO上冯Sir的一节课教案,个人觉得讲的已经很清楚了,能直接用在问题上,欢迎留言讨论。


一、案例:根据上级指示我部必须在最短时间内由汤泉镇机动至七佛寺待命。根据前期侦察,由汤泉镇前往七佛寺的路径,如图

在不考虑路途差别等情况下,如何找出最短路径?

二、模型准备

1、抽象出地图示意图并标出距离

规划求解求最短路径

2、输入最短路径问题路径信息

(1)工作簿更名为“最算路径解法2”。

2)加载工具。单击【工具】→【加载宏】菜单项,打开【加载宏】对话框。选中【规划求解】复选框,然后单击【确定】按钮将规划求解宏加载到Excel中。

2)将工作表Sheet1重命名“最短路径问题”,输入如图所示内容,“-”表示不存在路径。

规划求解求最短路径三、模型的建立与求解

1、建立解决问题的模型

如图所示,其中C14:H19单元格区域用来记录实际的路径选择情况,0表示路径未选择,1表示选择了从某地出发前往某地的路径。“来源统计”用来统计出发地的情况,“目标统计”用来统计抵达地情况。

规划求解求最短路径

2、规划求解最短路径:

  (1)加载工具。单击【工具】→【加载宏】菜单项,打开【加载宏】对话框。选中【规划求解】复选框,然后单击【确定】按钮将规划求解宏加载到Excel中。

  (2)在C4:H9单元格区域,将“-”用9999替代,如图所示。用一个很大的数表示不存在的路径,避免以后选此路径。

规划求解求最短路径

  (3)在I14单元格输入公式:

=SUM(C14:H14)

填充I15:I19单元格区域。

C20单元格输入公式:

=SUM(C14:C19)

填充D20:H20单元格区域。

J14单元格输入公式:

=SUMPRODUCT(C4:H4,C14:H14)

填充J15:J19单元格区域。

J20单元格输入公式:

=SUM(J14:J19)

设置C14:H19单元格区域的格式,选【格式】→【单元格】→【数字】→【自定义】的“0”类型。

(4)选中J20单元格,单击菜单【工具】→【规划求解】,打开“规划求解参数”对话框,在“设置目标单元格”文本框中选J20单元格。选中【最小值】单选按钮。在“可变单元格”文本框中选择C14:H19单元格区域。

(5)添加约束条件。单击【添加】按钮打开“添加约束”对话框添加如下约束条件:

条件1$C$14:$H$19=二进制

条件2$C$20=1,表示A为起点,必定存在以A为出发点的路径

条件3$I$19=1,表示F为终点,必定存在以F为抵达地的路径

条件4$I$14=0,表示以A为终点的路径不存在

条件5$H$20=0,表示以F为起点的路径不存在

条件6$D$20: $G$20=$I$15: $I$18,表示除AF外,其余节点有进则有出

各个条件添加完成后单击【确定】按钮返回“规划求解参数”对话框,结果如图所示。

规划求解求最短路径

(6)为了提高规划求解的运算效率,单击“规划求解参数”对话框中的【选项】按钮,打开“规划求解选项”对话框,勾选其中的【采用线性模型】复选框,如图所示。

规划求解求最短路径

  (7)按【确定】返回“规划求解参数”对话框,单击【求解】按钮开始求解运算,显示找到一个结果,按【确定】退出“规划求解参数”对话框。运算结果如图所示。

所求最短路径为:A→C→E→F,即:汤泉镇→ 虎凹→ 兴隆庵→七佛寺,路径长为120。

冯Q:若某条路塌方无法通行,应如何规划?







以上是关于规划求解求最短路径的主要内容,如果未能解决你的问题,请参考以下文章

a*算法求最短路径和floyd还有dijsktra算法求最短路径的区别?

路径规划基于遗传算法求最短路径

求最短路径问题 送货郎问题

求出最短路径,要过程,用Dijkstra算法。。。

bfs_迷宫求最短路径

Dijkstra算法求单源最短路