数学建模——图与网络(3)——最短路问题

本文介绍了如何利用数学建模解决两个指定顶点之间的最短路径问题,重点讲解了迪克斯特拉算法,并通过实例展示了如何绘制带权网络图,包括在线工具和Matlab代码实现。同时,给出了一个公司航线票价最便宜路径设计的案例。
摘要由CSDN通过智能技术生成

一、两个指定顶点之间的最短路径

1. 问题描述

  • 给出了一个连接若干个城镇的铁路网络,在这个网络的两个指定城镇间, 找一条最短铁路线。

2. 问题理解

  1. 以各城镇为图G的顶点,两城镇间的直通铁路为图G相应两顶点间的边,得图G
  2. 对G的每一边e,赋以一个实数w(e) ——直通铁路的长度,称为e的权,得到赋权图G,G的子图的权是指子图的各边的权和。
  3. 到此,问题转化为 求赋权图G 中指定的两个顶点u0,v0间的最小权的轨。这条轨叫做u0,v0间的最短路,它的权叫做u0,v0间的距离,亦记作 d(u0,v0)。

3. 相关算法:迪克斯特拉(Dijkstra)算法

在这里插入图片描述

4. 示例问题

某公司在六个城市c1,c2,…,c6中有分公司,从ci到cj的直接航程票价记在下述矩阵的(i,j)位置上。(∞表示无直接航路),请帮助该公司设计一张城市c1到其它城市间的票价最便宜的路线图。

在这里插入图片描述

1. 绘制带权网络图:

方法1:在线绘图

在这里插入图片描述
使用该工具所制作的赋权无向图如下所示:
在这里插入图片描述

方法2:使用Matlab绘图
  1. 无权无向图
  • 代码如下
	%% Matlab作无向图
	%1)无权重(每条边的权重默认为1);
	% 函数graph(s,t):可在 s 和 t 中的对应节点之间创建边,并生成一个图;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Mr.Persimmon

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值