两个指定顶点间最短路径问题

数学建模自学心得系列1

两个指定顶点间最短路径问题

之前在研究《数学建模算法与研究》中第四章的内容时,注意到了4.2.2这个问题,但是对于其中的约束条件如何得到非常疑惑,经过一段时间的思考才想明白,所以打算写一篇博客记录一下,第一次写博客,也算是全新的尝试。

定义

关于这个问题的定义如下:
在这里插入图片描述
这个pdf是司守奎老师后来自己写的,和原书有着细微的不同,完整的定义应该是,当Xij=1时,说明弧位于顶点1至顶点n的最短路上,这个差别一开始也对我造成了一些误导,我看了很多别的博客,好像也都是保留了上面这种不严谨的版本,所以我在此先强调一下。
在这里插入图片描述

约束条件

然后我们重新回到题目本身,我之前对于这个约束条件不太理解,重新修改题目之后再看,觉得应该是这样:
在这里插入图片描述

第一种情况,当i=1时,

  • 第一项代表所有路径中从顶点1出发的路径,其中最少且只能有1条路径位于最短路径上,所以求和之后的结果为1.
  • 第二项代表所有路径中通向顶点1的路径,这个时候需要注意,我们这个案例是在讨论有向图中顶点1到顶点n的最短路径,所以通向顶点1的路径,一定不会出现在最短路径上,求和结果为0

所以当i=1时,等式右侧为1-0=1。

用相同的方法分析后两种情况,结果也很清楚。

  • 第二种情况讨论的是从顶点n出发通向顶点n的所有路径是否位于最短路径上,结果是0-1=-1
  • 第三种情况是讨论图中不经过顶点1和顶点n的其他所有路径,此时只能是0-0=0。

这个模型里的约束条件大概表达的就是这个意思。

补充一个例子

在这里插入图片描述
在这里插入图片描述
如果你搞明白了约束条件的定义,那么你也就自然而然的明白,为什么lingo代码里倒数的5行为什么这么写了。

当然了,这只是我个人的一点简单的理解,如果有看到这篇博客的朋友发现我哪里想的不对,一定要在评论区告诉我哦!万分感谢!!

  • 6
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值