数学建模--图论最短路径基础

ops/2024/9/23 3:27:47/

1.图的定义

学过数据结构或者离散数学的小伙伴们应该知道图的概念,我在这里简单的介绍一下:

图的概念和我们理解的是很不一样的,这里的图并不是我们的生活里面的图片,而是一种表示不同的数据之间的关系,例如这里的5个节点,不同的节点之间的关系使用箭头进行表示,这里的1指向2的箭头表示12之间的一种关系;

图里面的不同的节点之间的距离表示的实际含义是根据这个题目的实际意义确定的,我们要看具体的题目,这里的节点之间的横线上面的数值表示的是一种权重;

2.图的种类

有方向的图和无方向的图,无方向的图也叫做双向的图,例如两个城市之间的道路;

3.图的数学语言

我们数学建模的时候使用的是矩阵进行运算的,这里的矩阵叫做邻接矩阵,这里的矩阵是一个方阵,矩阵的大小是根据结点的个数决定的;

这里的邻接矩阵里面的每个元素代表的意义是什么呢?图上有一个简单的分段函数,当不同的两个节点之间有关系的时候,例如我们的12之间有10这个权重,我们就在这个邻接矩阵的第一行第二列写上10就可以了;

0和无穷本质上是没有区别的,但是我们还是既使用0,也是用无穷,这里的0就代表的是自己和自己之间的关系,所以我们可以观察到这个矩阵的主对角线上面的元素都是0;

无穷表示的就是两个节点之间没有关系,例如4没有指向5的关系,所以4行5列的元素就是无穷,5有指向4的关系,所以5行4列的元素就是对应的权重2;

4.单源最短路径

上面的就是单源最短路径的一个具体的例子,下面的是简单的介绍:

(1)路径长度是一个专有的名词,并不是指两个地点之间的距离,而是根据实际的问题决定的;

(2)在这个例子里面的路径长度就是对应的路径的最小权重,在成本问题里面,这个路径长度就是对应的成本,我们的最短路径长度就是指的成本的最小值;

(3)最短路径的实质就是:最短路径的子路径其实也是最短路径,怎么进行理解呢?

对于上面的这张图片,我们可以看到的是12456这5个节点,假设我们已经知道了1到6的最短路径就是1256,那么这个最短路径的子路径125就是1到5的最短路径;

5.适用的赛题

(1)第一类肯定就是最短路径问题,从一个地方到另外的一个地方,要让这个距离最短,这个就是一个典型的最短路径问题;

(2)就是涉及到设备的更新问题,在一定的年限里面,我们如何进行分配是否购买新设备,旧的设备需要一定的维修费,新的设备需要购买的费用;时间越长,维修的成本就会越高,这个其实也是最短路径的范畴,我们后续会使用相关的题目进行介绍;

6.模型介绍

这里使用的是Dijkstra算法:

(1)我们首先圈定1这个节点,对照右边的这个表格,右边的这个表格是一列一列看的,每一列代表的是一次能完整的过程;

(2)圈定1这个节点之后,找1到其他的结点的路径,1->2是10,1->3和1->4都是没有直接的路径的,所以我们使用无穷进行表示;1->5的路径是存在的,所以表格里面的第一列的第五行写的是5;这样第一轮比较完成之后的最小路径就是1到2;

(3)然后我们圈定15这两个节点,看看这个圈里面的到其他的节点之间的距离,内部节点是可以走动的,例如15到节点2的距离,可以是12这个距离就是10,也可以是152,这个距离就是8,显然8更优,15到3这个节点只可以是153是14,如果是123的话之间要经过2这个节点,所以不行;15到4的话就是154距离就是7;第二轮比较完成之后154的距离是最小的;

(4)接下来我们圈定的是154,其中152是最短的,路径的长度是8,到3的话,1543的路径是最短的,距离是13;

(5)最后的一轮,我们圈定的是1245,最短的路径就是1523,最短距离是9;

这几轮的比较完成之后,我们就已经找到了不同的节点之间的最短的路径,就是我们的表格左边的那张图,这样我们的1节点到其他的节点之间的最短的距离就已经很明确了。


http://www.ppmy.cn/ops/30091.html

相关文章

Django框架之视图层

一、三板斧的原理介绍 1、HttpResponse 在Django中,HttpResponse是一个类,用于构建HTTP响应并返回给客户端。当视图函数处理完请求后,需要返回一个响应时,就会使用HttpResponse对象。 (1)创建HttpRespon…

【EI会议|稳定检索】2024年传感技术与图像处理国际会议(ICSTIP 2024)

2024 International Conference on Sensing Technology and Image Processing 一、大会信息 会议名称:2024年传感技术与图像处理国际会议会议简称:ICSTIP 2024收录检索:提交Ei Compendex,CPCI,CNKI,Google Scholar等会议官网:htt…

Vue阶段练习:组件拆分

页面开发思路 分析页面&#xff0c;按模块拆分组件&#xff0c;搭架子&#xff08;局部或全局注册&#xff09;根据设计图&#xff0c;编写html结构css样式拆分封装通用小组件&#xff08;局部或全局注册&#xff09;将来通过js动态渲染实现功能 BaseBrandItem.vue <templ…

ue引擎游戏开发笔记(26)——处理角色死亡敌人仍攻击bug

1.需求分析 对游戏中存在的各种小问题做细节处理&#xff0c;例如玩家在死亡后&#xff0c;敌人仍对着目标开炮&#xff0c;并且仍然触发爆炸效果。 2.操作实现 1.首先分析问题起因&#xff0c;是由于虽然玩家控制的小车被摧毁了&#xff0c;但控制器仍然存在&#xff0c;没有…

设计模式:策略模式

一&#xff0c;策略模式 策略模式&#xff08;Strategy Pattern&#xff09;是一种常用的软件设计模式&#xff0c;属于行为型模式。它的目的是定义一系列算法&#xff0c;并将每个算法封装起来让它们可以互换使用&#xff0c;算法的变化不会影响使用算法的用户。策略模式常用…

设计模式之模板模式

模板模式&#xff08;Template Method Pattern&#xff09;是行为设计模式之一&#xff0c;它定义了一个操作中的算法骨架&#xff0c;而将一些步骤延迟到子类中实现。模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤&#xff0c;从而达到复用算法框架…

SpringBoot实现图片上传(个人头像的修改)

SpringBootlayui实现个人信息头像的更改 该文章适合对SpringBoot&#xff0c;Thymeleaf&#xff0c;layui入门的小伙伴 废话不多说&#xff0c;直接上干货 Springbootlayui实现头像更换 前端公共部分代码 HTML页面代码 <div class"layui-card-header" style&quo…

SSM+Vue在线OA办公系统

在线办公分三个用户登录&#xff0c;管理员&#xff0c;经理&#xff0c;员工。 SSM架构&#xff0c;maven管理工具&#xff0c;数据库Mysql&#xff0c;系统有文档&#xff0c;可有偿安装调试及讲解&#xff0c;项目保证质量。需要划到 最底 下可以联系到我。 功能如下&am…