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

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.mzph.cn/diannao/4992.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C++中auto关键字的用法详解

1.简介 auto作为一个C语言就存在的关键字,在C语言和C之间却有很大区别。 在C语言中auto修饰的变量,是具有自动存储器的局部变量,但因为局部变量默认类别默认是auto修饰导致一直没有人去使用它。 C11中,标准委员会赋予了auto全新…

XY_RE复现(二)

一,何须相思煮余年 0x55 0x8b 0xec 0x81 0xec 0xa8 0x0 0x0 0x0 0xa1 0x0 0x40 0x41 0x0 0x33 0xc5 0x89 0x45 0xfc 0x68 0x9c 0x0 0x0 0x0 0x6a 0x0 0x8d 0x85 0x60 0xff 0xff 0xff 0x50 0xe8 0x7a 0xc 0x0 0x0 0x83 0xc4…

【智能算法】火烈鸟搜索算法(FSA)原理及实现

目录 1.背景2.算法原理2.1算法思想2.2算法过程 3.结果展示4.参考文献 1.背景 2021年,W Zhiheng等人受到火烈鸟迁徙觅食行为启发,提出了火烈鸟搜索算法(Flamingo Search Algorithm, FSA)。 2.算法原理 2.1算法思想 FSA受到火烈鸟…

C++|STL简介-string-vector基础运用

目录 什么是STL STL里面有什么 容器 string 序列式容器 vector deque list 关联式容器 set multiset map multimap 算法 非可变序列算法 可变序列算法 排序算法 数值算法 什么是STL STL(标准模板库):是C标准库的重要组成部分,不仅是一…

MVC架构简述

MVC简介 MVC 是一种非常常见且常用的分层架构,主要包括;M - mode 对象层,封装到 domain 里。V - view 展示层,但因为目前都是前后端分离的项目,几乎不会在后端项目里写 JSP 文件了。C - Controller 控制层&#xff0c…

站群SEO优化策略及其遭遇DDoS攻击时的应对方法

一、站群SEO优化策略 站群优化主要是指通过合理布局和内容优化提升一系列网站在搜索引擎中的整体排名表现。以下是一些关键步骤与相关代码示例(以WordPress为例): 差异化内容建设: 每个站点的内容必须具有独立性和价值性&#x…

CSS-vminvmax单位

vmin 和 vmax 单位 vmin 是相对于视口宽度和高度中较小值进行计算,它的值为视口宽度和高度中的较小值的百分比。 例如,如果视口宽度为 800px,高度为 1000px,那么 1vmin 等于 8px(800px 的 1%)。 vmax 是…

【Unity基础】TextMeshPro组件学习过程记录

目录 1.TextMeshPro组件渲染创建文本RTL Editor字体Font Asset字体加粗,下划线等字体大小控制字体颜色控制字体渐变控制字符间隔、单词间隔、行间距、段落间距控制WrappingUV映射控制代码 2.TextMeshPro组件AssetFace InfoGeneration Setting 3.使用Dynamic SDF Sys…

【可视化3D卷积计算过程】

目录 1. 可视化过程2. 代码验证 前言:开始处理视频数据,遇到了陌生又熟悉的3D卷积,但对其计算过程有点疑惑,网上也没找到什么可视化动画,所以研究明白并做个记录,方便日后复习。有点简化,但认真…

基于FCN网络实现的多类别图像分割任务

1、前言 FCN 作为图像分割的开山之作,将分割任务作为逐个像素点的分类任务 之前完成了基于unet、resnetunet、deeplab等等网络的分割任务,具体的可以参考本专栏: 图像分割_听风吹等浪起的博客-CSDN博客 因为FCN网络的实现较为复杂&#xf…

杰发科技AC7840——CAN通信简介(7)_波形分析

参考: CAN总线协议_stm32_mustfeng-GitCode 开源社区 0. 简介 隐形和显性波形 整帧数据表示 1. 字节描述 CAN数据帧标准格式域段域段名位宽:bit描述帧起始SOF(Start Of Frame)1数据帧起始标志,固定为1bit显性(b0)仲裁段dentify(ID)11本数…

网安行业拐点!网络安全6大企业2023年报盘点

回顾2023:寒冬中的市场概览 2023年,网络安全行业经历了前所未有的挑战。全球经济波动与行业竞争加剧,加之下游客户预算收紧,招投标流程延长,使得整个行业感受到了冬日的严寒。裁员和不发年终奖金的决定在行业中成为普…

记录些RAG-Fusion、Agent、NL2SQL的问题

RAG-Fusion RAG-Fusion 的实现原理 Query Duplication with a Twist:用 LLM 根据用户的 Query 生成几个相关的但不同的 Queries。Vector Search Unleashed:对原 Query 和生成的 Queries 都进行向量(或者其他方式的)搜索。Intell…

DiffusionGAN ——最快的小波扩散模型应用研究

介绍 扩散模型最近出现并迅速发展,吸引了许多研究人员的兴趣。这些模型能从随机的噪声输入生成高质量的图像。在图像生成任务中,它们的表现尤其优于最先进的生成模型(GANs)。扩散模型可以灵活地处理各种条件输入,从而…

meterpreter运行run getgui -e报错

meterpreter运行run getgui -e报错 meterpreter > run getgui -e [!] Meterpreter scripts are deprecated. Try post/windows/manage/enable_rdp. [!] Example: run post/windows/manage/enable_rdp OPTIONvalue [...] [-] The specified meterpreter session script cou…

【C++第三阶段】list容器排序

以下内容仅为当前认识,可能有不足之处,欢迎讨论! 文章目录 构造函数赋值和交换大小操作插入和删除数据存取反转和排序排序案例 list容器在STL中是双向循环链表。 如图所示,每一个节点三个域,前向指针域,后…

用户中心(上)

文章目录 企业做项目流程需求分析技术选型计划初始化项目数据库设计登录/注册⽤户管理(仅管理员可⻅) 初始化项目⼀、前端初始化1.下载nodejs2.Ant Design Pro相关问题1.前端项目启动时报错、无法启动?2.如何初始化前端项目?为什么…

vue 模板字符串

1.模板字符串换行问题 white-space: pre-wrap; 2. 鼠标移入 显示提示框 点击手动隐藏 myChart.on("mouseover", function (params) {myChart.dispatchAction({type: "downplay",}); }); tooltip: {show: true, //是否显示提示框组件,包括…

机器人实验室CNRS-AIST JRL, IRL介绍

一、背景 作为搞机器人方向的学生,必须时常关注国际上顶尖实验室的研究成果,以免自己做的方向out,除了大家耳熟能详的Boston Dynamics,还有许多非常厉害的机器人实验室值得我们关注,如日本的CNRS-AIST JRL, IRL实验室…

spring cache(一)介绍

一、介绍 1、背景 项目中使用最多的缓存技术就是Redis,用Redis就可以实现了,为什么需要使用spring cache? 先看下我们使用缓存步骤: (1)查寻缓存中是否存在数据,如果存在则直接返回结果 (2&#xff09…