【管理运筹学】第 7 章 | 图与网络分析(1,图论背景以及基本概念、术语、矩阵表示)

文章目录

  • 引言
  • 一、图与网络的基本知识
    • 1.1 图与网络的基本概念
      • 1.1.1 图的定义
      • 1.1.2 图中相关术语
      • 1.1.3 一些特殊图类
      • 1.1.4 图的运算
    • 1.2 图的矩阵表示
      • 1.2.1 邻接矩阵
      • 1.2.2 可达矩阵
      • 1.2.3 关联矩阵
      • 1.2.4 权矩阵
  • 写在最后


引言

按照正常进度应该学习动态规划了,但我想换换口味,而且动态规划听说也有一定难度,还不一定会考。

先说说图论的一些背景知识和发展情况吧。

图论是几十年来发展迅速、应用广泛的一个新的数学分支。它与数学的其他分支如矩阵论、概率论、数值分析等都有着密切地联系。事实上,图论为任何一个包含了一种二元关系的系统提供了一个数学模型;也因为它使用了图解式的表示法,图就具有了一种直观的和符合美学的外形。

图论的发展大致分为 3 个阶段。

在这里插入图片描述
第一阶段是从 18 世纪中叶到 19 世纪中叶,称为萌芽期。起源是“七桥游戏”问题,如下图所示。

在这里插入图片描述

问题是:能否从这四块陆地中的任何一块开始,通过每一座桥一次,并且仅一次,再次回到起点。

瑞士数学家欧拉(Euler)就这一问题发表了图论的第一篇论文,证明了不存在七桥游戏问题的解,并且把这个问题(边一笔画问题)深入一步地一般化了,给出了一个图存在欧拉圈的判定法则。

自从中国邮递员问题(Chinese Postman Problem)提出来以后,欧拉问题才具有了强烈的实用价值。

中国邮递员问题是这样的:邮递员在沿着邮路出发前,必须先从邮局取走他所应分发的邮件。为了节约时间,每一位邮递员都愿意以尽可能少的行程走完他所必须走的所有路线。用图论的话来说,是指如何以尽可能少的行程遍历邮路上所有各条街道后又回到他的出发点。

这类问题的第一篇论文是由中国数学家、山东师范大学的管梅谷教授在 1962 年提出的,因而得名“中国邮递员问题”。

在这里插入图片描述
19 世纪中叶到 20 世纪中叶是图论发展的第二阶段,这一时期图论大量问题涌现,其中以 Hamilton 问题和四色猜想最为著名。

1856 年英国数学家 William Hamilton 爵士发明了“绕行世界”的游戏。这个游戏用一个规则十二面体,它的 20 个顶点标以 20 个城市的名字,要求游戏者找一条从某一城市出发的路线,它经过每个城市恰好一次,并且最终回到出发点。

将正十二面体投影到平面上,就得到了下图。

在这里插入图片描述
实际上 Hamilton 周游世界问题,是图论中的点一笔画问题,是要在上图中找具有以下两个特点的一个圈 H H H :1.图中的每一个顶点都在圈 H H H 中出现;2.在 H H H 中顶点不重复出现(起终点不算重复)。这个圈称为 Hamilton 圈。

四色猜想问题,即能否仅用 4 种颜色给地图染色,使得相邻国家有不同的颜色。用图来描述就是:用点来表示国家,两个国家若有公共边界,就用一条边将这两点连接起来,于是,四色猜想问题就转化为能否用四种颜色给平面的点染色,使得相邻的点有不同颜色。

在这里插入图片描述
20 世纪中叶以后,是图论发展的第三个阶段,这一时期图论经过爆炸性的发展,成长为一门独立学科。其中最重要的是:出现了研究问题和解决问题的强有力工具:计算机。


一、图与网络的基本知识

1.1 图与网络的基本概念

1.1.1 图的定义

自然界和人类社会中,大量的事物及事物之间的关系,常可以用图形来描述。常将所研究对象看成一个点,用连线(带箭头或者不带箭头)表示对象之间的某种特定关系。为了区别起见,我们称不带箭头连线称为,带箭头的连线称为

定义 1.1 —— 一个图是由一个非空集合 V V V ,以及 V V V 中元素的无序(或有序)点对组成的集合 E E E (或 A A A)所组成。 V V V 中元素的无序点对所构成的集合称为边集合 E E E ,由点集合 V V V 和边集合 E E E 构成的图称为无向图(简称图),记作 G = ( V , E ) G=(V,E) G=(V,E) 。一条连接点 v i , v j v_i,v_j vi,vj 的边 e i j e_{ij} eij ,记为 e i j = [ v i , v j ] e_{ij}=[v_i,v_j] eij=[vi,vj] e i j = [ v j , v i ] e_{ij}=[v_j,v_i] eij=[vj,vi] V V V 中元素的有序点对构成的集合称为弧集合 A A A ,由点集合 V V V 和弧集合 A A A 构成的图为有向图,记为 D = ( V , A ) D=(V,A) D=(V,A) 。一条方向是从 v i v_i vi 指向 v j v_j vj 的弧记为 a i j = ( v i , v j ) a_{ij}=(v_i,v_j) aij=(vi,vj)

在这里插入图片描述
若图 G G G 中,某个边的两个端点相同,称该边为环,若两个点之间有多于一条的边,称为多重边。一个无环、无多重边的图称为简单图,无环但允许有多重边的图称为多重图

G G G D D D 中的点数记为 n = ∣ V ∣ n=|V| n=V ,边(弧)数记为 m = ∣ E ∣ ( m = ∣ A ∣ ) m=|E| (m=|A|) m=E(m=A) ,在不引起混乱的情况下,分别简记为 n , m n,m n,m ,其中 n n n 为图的阶,若 n n n 为有限的,称为有限阶。

1.1.2 图中相关术语

  1. 端点。当 e i j = [ v i , v j ] e_{ij}=[v_i,v_j] eij=[vi,vj] 时,与边 e i j e_{ij} eij 相连的顶点称为边 e i j e_{ij} eij 的端点。
  2. 边与点相关联。当 e i j = [ v i , v j ] e_{ij}=[v_i,v_j] eij=[vi,vj] 时, e i j e_{ij} eij v i , v j v_i,v_j vi,vj 称为边顶相关联。
  3. 邻点。
  4. 邻边。
  5. 环。只与一个顶点相关联的边称为环。
  6. 平行边。具有相同的两个端点的边称为平行边。
  7. 邻域。与某点相邻接的点的集合。
  8. 次。以点 v i v_i vi 为端点的边的数目称为点 v i v_i vi G G G 中的次,记为: d ( v i ) d(v_i) d(vi)
    如果有环,则按两条边记,即 d ( v i ) = d l ( v i ) + 2 l ( v i ) d(v_i)=d_l(v_i)+2l(v_i) d(vi)=dl(vi)+2l(vi) 其中: d l ( v i ) d_l(v_i) dl(vi) 是与 v i v_i vi 相关联的非环边数, l ( v i ) l(v_i) l(vi) 是与 v i v_i vi 相关联的环数。
  9. 次序列。若 V = { v 1 , v 2 , … , v p } V=\{v_1,v_2,\dots,v_p\} V={v1,v2,,vp} ,则相对于每个点都有一个次,则可以得到一个次序列 ( d ( v 1 ) , d ( v 2 ) , … ) (d(v_1),d(v_2),\dots) (d(v1),d(v2),)

定理 1.1 —— 对于图 G = ( V , E ) G=(V,E) G=(V,E) ,其中 ∣ V ∣ = n , ∣ E ∣ = m |V|=n,|E|=m V=n,E=m ,则有: ∑ v ∈ V d ( v ) = 2 m \sum_{v \in V}d(v)=2m vVd(v)=2m 定理 1.2 —— 奇数次顶点的总数是偶数。

  1. 悬点。次为 1 的点。
  2. 悬边。悬点关联的边。
  3. 孤立点。次为 0 的点。
  4. 链。
  5. 初等链。链 Q Q Q 中的顶点均不相同。
  6. 简单链。链中边都不相同。
  7. 链的长度。为所包含的边数。
  8. 圈。
  9. 路。
  10. 路径。有向图中路每个顶点均不相同称为路径。
  11. 回路。路的第一个点和最后一个点相同。

1.1.3 一些特殊图类

  1. 平凡图。节点数 n = 1 n=1 n=1 ,边数 m = 0 m=0 m=0 的图。
  2. 零图。边数 m = 0 m=0 m=0
  3. 连通图。图中每对节点都有一条链(路)连接,称这个图是连通的。
  4. 树。无圈的连通图。
  5. 完备图。任意两个顶点之间恰有一条边相关联。
  6. 二分图。
  7. 完全二分图。
  8. 正则图。每个点的次数均相同。
  9. 有向网络。加权的有向图。

1.1.4 图的运算

(1)子图和支撑
子图、支撑子图都是图 G G G 的点或边作删除运算得到的。子图点和边都是原图的子集,支撑子图点和原图一样,边是原图子集。

(2)图的收缩运算

(3)割集
常记为 Φ ( X ) \varPhi(X) Φ(X) ,如下图中,若 X = { V 1 } X=\{V_1\} X={V1} ,则割集为 Φ ( X ) = { [ v 1 , v 2 ] , [ v 1 , v 3 ] , [ v 1 , v 4 } \varPhi(X)=\{[v_1,v_2],[v_1,v_3],[v_1,v_4\} Φ(X)={[v1,v2],[v1,v3],[v1,v4} 。即用一条线去割,要求可以将 X X X 完整割出来,这条线碰着的边记为割集。

在这里插入图片描述

(4)图的同构
G 1 , G 2 G_1,G_2 G1,G2 为两个同阶图,若顶点集合 V 1 , V 2 V_1,V_2 V1,V2 以及边集合 E 1 , E 2 E_1,E_2 E1,E2 之间在保持关联性质条件下一一对应,则称图 G 1 , G 2 G_1,G_2 G1,G2 同构。如下图所示。

在这里插入图片描述

1.2 图的矩阵表示

为了方便利用计算机识别图的相关信息,我们通过矩阵表示法来表示一个图,主要有邻接矩阵、关联矩阵、可达矩阵、权矩阵等。

1.2.1 邻接矩阵

邻接矩阵用于描述两个顶点之间是否有边(弧)相连。若两点之间有边(弧)相连,对应矩阵元素为 1 ,否则对应矩阵元素为 0 。

显然,无向图的邻接矩阵是一个关于对角线对称的矩阵。

图源网络

1.2.2 可达矩阵

在有向图中可达矩阵用于描述两点之间是否有路相连,若有路相连,对应矩阵元素为 1 ,否则为 0 。

1.2.3 关联矩阵

有向图的关联矩阵也称为顶点—边关联矩阵。其每一行表示一个点 v i v_i vi ,每一列表示一条弧 a j a_j aj ,若 v i v_i vi 是弧 a j a_j aj 的起点,则对应矩阵元素 m i j = 1 m_{ij}=1 mij=1 ;若为弧的终点,记为 -1 ,无关则记为 0 。

1.2.4 权矩阵

可以理解为邻接矩阵的延伸,当两点之间存在边或弧时,对应矩阵元素为该边或弧的权重;当两点之间无边时,对应元素为 ∞ \infty ;权矩阵对角元素全为 0 。


写在最后

这概念可是真的多,不过结合图来理解就还好,后面我们就来说说图论中的一些经典问题。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/69974.shtml

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

相关文章

fatal error: -fuse-linker-plugin, but liblto_plugin.so not found 解决方法

参考文章:https://blog.csdn.net/tt_tantao/article/details/91646875 在工具链目录下找到 liblto_plugin.so.0.0.0 复制成一份 liblto_plugin.so 顺利解决

架构师 软件测试

架构师 软件测试 目录概述需求: 设计思路实现思路分析1.软件测试方法 软件测试工具 参考资料和推荐阅读 Survive by day and develop by night. talk for import biz , show your perfect code,full busy,skip hardness,make a better result,wait for c…

C语言入门 Day_14 for循环

目录​​​​​​​ 1.for循环 2.循环执行顺序 3.易错点 4.思维导图 前言 我们定义了一个数组以后,要使用(读取或者修改)数组元素的话,可以一个一个的读取,就前两课学的那样,代码类似这个结构。 int …

基于SpringBoot的Web开发案例过程讲解-项目准备

基于SpringBoot的Web开发案例过程笔记-项目准备 1)环境搭建【1】准备数据库表【2】创建Springboot项目并引入相关依赖【3】配置application.properties文件【4】创建相关的包和类 2) 三层架构工作流程3)开发规范-Restful4)相关的注解5)项目开…

MySQL中分区与分表的区别

MySQL中分区与分表的区别 一、分区与分表的区别 分区和分表是在处理大规模数据时的两种技术手段,尽管它们的目标都是提升系统的性能和数据管理的效率,但它们的实现方式和应用场景略有不同。 1. 分区 分区是将一个大表分割为多个更小的子表&#xff0c…

AggregateFunction结合自定义触发器实现点击率计算

背景: 接上一篇文章,ProcessWindowFunction 结合自定义触发器会有状态过大的问题,本文就使用AggregateFunction结合自定义触发器来实现,这样就不会导致状态过大的问题了 AggregateFunction结合自定义触发器实现 flink对于每个窗…

小白开始学习C++

​​​​第一节&#xff1a;控制台输出hello word&#xff01; #include<iostream> //引入库文件 int main() { //控制台输出 hello word! 之后回车 std::cout << "hello word!\n"; #include<iostream> //引入库文件int main() {//控制…

Python3 循环语句

Python3 循环语句 本章节将为大家介绍 Python 循环语句的使用。 Python 中的循环语句有 for 和 while。 Python 循环语句的控制结构图如下所示&#xff1a; while 循环 Python 中 while 语句的一般形式&#xff1a; while 判断条件(condition)&#xff1a;执行语句(statem…

【LeetCode算法系列题解】第61~65题

CONTENTS LeetCode 61. 旋转链表&#xff08;中等&#xff09;LeetCode 62. 不同路径&#xff08;中等&#xff09;LeetCode 63. 不同路径 II&#xff08;中等&#xff09;LeetCode 64. 最小路径和&#xff08;中等&#xff09;LeetCode 65. 有效数字&#xff08;困难&#xff…

py脚本解决ArcGIS Server服务内存过大的问题

在一台服务器上&#xff0c;使用ArcGIS Server发布地图服务&#xff0c;但是地图服务较多&#xff0c;在发布之后&#xff0c;服务器的内存持续处在95%上下的高位状态&#xff0c;导致服务器运行状态不稳定&#xff0c;经常需要重新启动。重新启动后重新进入这种内存高位的陷阱…

回复:c#的Winform如何让ComboBox不显示下拉框?https://bbs.csdn.net/topics/392565412

组合框.Parent this;组合框.Items.AddRange(new object[] { "111", "222", "333", "444" });组合框.DropDownHeight 1;组合框.SelectedIndex 0;//组合框.DropDownStyle ComboBoxStyle.Simple; ComboBox 组合框 new ComboBox();Li…

51单片机电子钟六位数码管显示整点提醒仿真设计( proteus仿真+程序+原理图+报告+讲解视频)

51单片机电子钟六位数码管显示整点提醒仿真设计( proteus仿真程序原理图报告讲解视频&#xff09; 1.主要功能&#xff1a;2.仿真3. 程序代码4. 原理图参考元器件清单 5. 设计报告6. 设计资料内容清单 51单片机电子钟六位数码管显示整点提醒仿真设计( proteus仿真程序原理图报告…

[HDCTF 2023]YamiYami

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言涉及知识点解题详细过程session伪造反弹shell 前言 从暑假末尾一直搁置&#xff0c;当时卡在反弹shell搞得离flag就差一步。不过最近一两天学习完反弹shell的知…

8.(Python数模)(预测模型一)马尔科夫链预测

Python实现马尔科夫链预测 马尔科夫链原理 马尔科夫链是一种进行预测的方法&#xff0c;常用于系统未来时刻情况只和现在有关&#xff0c;而与过去无关。 用下面这个例子来讲述马尔科夫链。 如何预测下一时刻计算机发生故障的概率&#xff1f; 当前状态只存在0&#xff08;故…

虚拟机扩容

系统环境centos8&#xff0c;分两步&#xff0c;第一步先在vmware扩容&#xff0c;第二部在虚拟机内部扩容 1.vmware分配磁盘空间 2.虚拟机内部扩容 查看当前磁盘信息&#xff0c;这个是扩容之前的&#xff0c;扩容完成才会显示新的 df -h查看系统分区信息 fdisk -l查看目录…

C语言基础知识理论版(很详细)

文章目录 前述一、数据1.1 数据类型1.2 数据第一种数据&#xff1a;常量第二种数据&#xff1a;变量第三种数据&#xff1a;表达式1、算术运算符及算术表达式2、赋值运算符及赋值表达式3、自增、自减运算符4、逗号运算符及其表达式&#xff08;‘顺序求值’表达式&#xff09;5…

Spring Boot日志基础使用 设置日志级别

然后 我们来说日志 日志在实际开发中还是非常重要的 即可记录项目状态和一些特殊情况发生 因为 我们这里不是将项目 所以 讲的也不会特别深 基本还是将Spring Boot的日志设置或控制这一类的东西 相对业务的领域我们就不涉及了 日志 log 初期最明显的作用在于 开发中 你可以用…

深入浅出了解BeanFactory 和 ApplicationContext

一.区别 BeanFactory和ApplicationContext是Spring的两大核心接口&#xff0c;都可以当做Spring的容器。其中ApplicationContext是BeanFactory的子接口。 1.依赖关系 BeanFactory&#xff1a;是Spring里面最底层的接口&#xff0c;包含了各种Bean的定义&#xff0c;读取bean…

Mac 手动安装 sshpass

1. 下载安装包 https://sourceforge.net/projects/sshpass/ 解压并进入到安装包目录 tar -zxvf sshpass-xx.xx.tar.gz cd sshpass-xx.xx2. 检验环境&#xff0c;编译源码安装 ./configuremake&&make install3. 检测安装是否成功 ▶ sshpass Usage: sshpass [-f|-…

Golang专题精进

Golang专题精进 Golang单元测试Golang错误处理Golang正则表达式Golang反射Golang验证码Golang日期时间处理库CarbonGolang发送邮件库emailGolang log日志Golang log日志框架logrusGolang加密和解密应用Golang访问权限控制框架casbinGolang使用swagger生成api接口文档Golang jwt…