6.1.1图的基本概念

基本概念

图:

顶点集+边集

顶点集:所有顶点的集合,不能为空(因为图是顶点集和边集组成,其中一个顶点集不能为空,则图肯定不为空)

边集:所有边的集合,边是由顶点集中的2个顶点构成,如果边集里的边不是由顶点集里的2个顶点构成,那就构不成图,可以为空

无向图:

(只有度、边、连通、连通图、极大连通子图(连通分量)、生成树、带权路径长度的概念)

各个边没有方向,A和B有一条线,则A可以到B,B可以导A。边用圆括号(),(A,B)=(B,A)

度:

依附于该顶点的边的条数,也就是这个顶点有多少条线。记为TD(V)。TD(C)=2。一条边为2个顶点提供一个度,即无向图的度数之和是边数的2倍

有向图:

(只有入度、出度、弧头、弧尾,强连通、强连通图、强连通分量概念):

各个边有方向,各个边又称为弧,用尖括号<>表示边,<A,B>≠<B,A>,A指向B,B没有指向A,则B就不能到A。有箭头指向的顶点称为弧头,没有箭头指向的顶点称为弧尾,如<v,w>是从v到w的距离,v指向w,w是是弧头,v是弧尾

顶点的入度:

以该顶点为基准,往该顶点指的箭头有几个。有多少边指向该顶点。ID(A)=1

顶点的出度:

以该顶点为基准,往外指的箭头有几个。该顶点指向多少边。OD(A)=4

 简单图:没有顶点到自身的边+没有重复边

多重图:加了顶点到自身的边

路径(2个顶点之间):

从1个顶点到另外一个顶点经过了哪些顶点序列(顶点可以重复,没有重复的顶点序列就是简单路径)。

距离(2个顶点之间):

路径的长度。估摸是路径中的顶点序列个数

无向图A到D的路径:ABD顶点序列(简单路径)或ABED(简单路径)序列或ABECD(简单路径)序列或ABEBD(出现重复顶点B,不是简单路径,但还是路径)即顶点序列

无向图连通(2个顶点之间):

从一个顶点到另外一个顶点之间有没有路径存在,有路径就是连通,没路径就是不连通。F顶点没边,即和其他顶点没有连接,没有路径,不连通,没有路径的距离都是∞,距离都是最短序列(没边的顶点都没有路径,没有路径的距离都是∞)

有向图强连通(2个顶点之间):

如果从A到E有路径,从E到A有路径,则称为两个顶点强连通。如果有向图A到E有路径,E到A没有路径,因为没有从E指出的箭头,

连通图:

针对无向图来说,任意2个顶点都是连通的,即都有路径,称为连通图,否则称为非连通图。

强连通图:

针对有向图来说,任意2个顶点都是强连通的,就是强连通图

子图:

从一个图的顶点集合拿出一些顶点,再从图的边集里拿出一些边,拿出的边集和顶点集构成的图(一定要构成图,有的还构不成图,如下图就够不成图)就是原图的子图

生成子图:

有2个图,图A和图B,图A和图B的顶点集完全相同,但是图B的边集比图A的边集少(即少几条边)那图B就是图A的生成子图 

 

连通分量(极大,无向图):

极大连通子图(无向图的子图中的任意2个顶点之间都是连通的,即有路径,并且尽可能都多的顶点和边)称为连通分量

连通分量如下:无向图中G的三个子图中都是连通图(任意2个顶点之间都有路径,子图G只有一个顶点没边,所以认为也是连通的吧,各个子图带多个顶点啥的就不是连通图了,比如把J这个顶点放到GHI这个子图里,GHI子图就不连通了),且尽可能多的包含了无向图G中的顶点和边(那意思是无向图G原来不是连通图吧,因为J这个顶点和任意顶点都不连通且G、I、H和带A的子图也不连通)

 强连通分量(有向图):

有向图中的ABCDE顶点是强连通的(因为各个顶点之间可以逆推),但是加上F顶点不是(因为ABCDE顶点都可以推到F顶点,即连通,但是F顶点没有到ABCDE的箭头指向,即没有路径不能逆推,故不是强联通的),所以要把F顶点抽离出来,G顶点同,故构成如下三个强联通子图即强连通分量(跟无向图类似,还是让每个子图尽量有多的可强连通的顶点和边)

生成树(极小):

针对无向图来说,首先生成树包含图中的所有顶点还要保持连通,但是还要在连通的请情况下保证边少,即在保证连通的情况下,顶点数-1为最少的边数,因为少一条边的树有各种形式,则一个图的生成树可能有多条。对于生成树而言,少一条边就会变成非连通图,多一条边就会形成一个回路。

一般生成树用于各个没有打通的村修路,各个村就相当于各个顶点,要让各个村打通,不一定要把各个村之间都修上路,因为花费太大,所以可以使用生成树的概念,在保证各个村连通的前提下,有最少的边,边修少了意味着修路的花费变少,且因为一个图的生成树样式不只一种,则可以根据现实中修每条路的实际成本有多少,来确定到底怎样修路

 

生成森林:

顺序是图是非连通图,然后形成一个个连通分量(各个连通分量都是连通的且是图的极大连通子图,即在保证连通的前提下,每个连通分量拥有尽可能多的图的顶点和边),然后连通分量再形成生成树(生成树都是连通的,且生成树拥有连通分量的全部顶点和在保证连通的前提下尽可能少的边),然后就形成了生成森林(估摸是所有的连通分量的生成树合在一起叫生成森林吧)

 

带权路径长度:

给路径标上值,从北京到上海的带权路径长度=经过的路径上标的值之和

带权图:

给路径上标值的图

 

 

有向树并不是强连通图,不是不都是是不是强连通图 

 

做个记录。。。。。。 

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

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

相关文章

WeakAuras Lua Script [TOC BOSS 5 - Anub‘arak ]

WeakAuras Lua Script [TOC BOSS 5 - Anubarak ] 阿努巴拉克 - 小强中虫范围 插件 !WA:2!DE1B0Xrvv8UmuRmIqZwiaXQmgKycwsYUPjPLZPTz3nBYULKnBNDtlYP6o)7T7mMzNz6BMnnBefBqGacIUOsXIkSIki)rCbLkIhLi6h8t3to6h9G2dXt4R9d(rR33mt2MyepQ75KSV3BUZ9FV7VF37g54rDvgU)yX7)GrRgvlQ2Y…

【C/C++】深度探索c++对象模型_笔记

1. 对象内存布局 (1) 普通类&#xff08;无虚函数&#xff09; 成员变量排列&#xff1a;按声明顺序存储&#xff0c;但编译器会根据内存对齐规则插入填充字节&#xff08;padding&#xff09;。class Simple {char a; // 1字节&#xff08;偏移0&#xff09;int b; …

湖北理元理律师事务所:债务优化中的双维支持实践解析

在债务压力与生活质量失衡的社会议题下&#xff0c;法律服务机构的功能边界正在从单一的法律咨询向复合型支持延伸。湖北理元理律师事务所通过“法律心理”双维服务模式&#xff0c;探索债务优化与生活保障的平衡路径&#xff0c;其方法论或为行业提供实践参考。 法律框架&…

Python uv包管理器使用指南:从入门到精通

Python uv包管理器使用指南&#xff1a;从入门到精通 作为一名Python开发者&#xff0c;你是否曾经为虚拟环境管理和依赖包安装而头疼&#xff1f;今天我要向大家介绍一个强大的工具——uv包管理器&#xff0c;它将彻底改变你的Python开发体验。 什么是uv包管理器&#xff1f…

Windows系统安全加固

掌握的加固点&#xff1a; 用户系统检查 口令策略检查 日志审计检查 安全选项检查 信息保护检查 2.2.1 用户系统检查 #检查系统版本内核 判断依据&#xff1a;无 检查方式&#xff1a;命令 msinfo32 dxdiag查看 #检查Administrator账号是否停用 判断依据&#xff1a;禁…

小蜗牛拨号助手用户使用手册

一、软件简介 小蜗牛拨号助手是一款便捷实用的拨号辅助工具&#xff0c;能自动识别剪贴板中的电话号码&#xff0c;支持快速拨号操作。最小化或关闭窗口后&#xff0c;程序将在系统后台运行&#xff0c;还可设置开机自启&#xff0c;方便随时使用&#xff0c;提升拨号效率。 …

c/c++消息队列库RabbitMQ的使用

RabbitMQ C 消息队列组件设计与实现文档 1. 引言 1.1. RabbitMQ 简介 RabbitMQ 是一个开源的消息代理软件&#xff08;也称为面向消息的中间件&#xff09;&#xff0c;它实现了高级消息队列协议&#xff08;AMQP&#xff09;。RabbitMQ 服务器是用 Erlang 语言编写的&#…

线程(二)OpenJDK 17 中线程启动的完整流程用C++ 源码详解之主-子线程通信机制

深入解析OpenJDK 17中Java线程的创建与主-子线程通信机制 引言 在Java中&#xff0c;线程的创建与启动通过Thread.start()实现&#xff0c;但底层是JVM与操作系统协作完成的复杂过程。本文基于OpenJDK 17的C源码&#xff0c;揭秘Java线程创建时主线程与子线程的通信机制&…

多线程爬虫语言选择与实现

之前文中有人提到&#xff1a;想要一个简单易用、能快速实现多线程爬虫的方案&#xff0c;而且目标是小网站&#xff0c;基本可以确定对反爬虫措施要求不高&#xff0c;这些就比较简单了。 以往我肯定要考虑常见的编程语言中哪些适合爬虫。Python、JavaScript&#xff08;Node…

AMD Vivado™ 设计套件生成加密比特流和加密密钥

概括 重要提示&#xff1a;有关使用AMD Vivado™ Design Suite 2016.4 及更早版本进行 eFUSE 编程的重要更新&#xff0c;请参阅AMD设计咨询 68832 。 本应用说明介绍了使用AMD Vivado™ 设计套件生成加密比特流和加密密钥&#xff08;高级加密标准伽罗瓦/计数器模式 (AES-GCM)…

Unity3D仿星露谷物语开发44之收集农作物

1、目标 在土地中挖掘后&#xff0c;洒下种子后逐渐成长&#xff0c;然后使用篮子收集成熟后的农作物&#xff0c;工具栏中也会相应地增加该农作物。 2、修改CropStandard的参数 Assets -> Prefabs -> Crop下的CropStandard&#xff0c;修改其Box Collider 2D的Size(Y…

list重点接口及模拟实现

list功能介绍 c中list是使用双向链表实现的一个容器&#xff0c;这个容器可以实现。插入&#xff0c;删除等的操作。与vector相比&#xff0c;vector适合尾插和尾删&#xff08;vector的实现是使用了动态数组的方式。在进行头删和头插的时候后面的数据会进行挪动&#xff0c;时…

CE17.【C++ Cont】练习题组17(堆专题)

目录 1.P2085 最小函数值 题目 分析 方法1:暴力求解 方法2:二次函数的性质(推荐!) 代码 提交结果 2.P1631 序列合并 分析 方法1:建两个堆 第一版代码 提交结果 第二版代码 提交结果 第三版代码 提交结果 方法2:只建一个堆 代码 提交结果 1.P2085 最小函数值…

题单:表达式求值1

题目描述 给定一个只包含 “加法” 和 “乘法” 的算术表达式&#xff0c;请你编程计算表达式的值。 输入格式 输入仅有一行&#xff0c;为需要计算的表达式&#xff0c;表达式中只包含数字、加法运算符 和乘法运算符 *&#xff0c;且没有括号。 所有参与运算的数字不超过…

DeepSeek超大模型的高效训练策略

算力挑战 训练DeepSeek此类千亿乃至万亿级别参数模型,对算力资源提出了极高要求。以DeepSeek-V3为例,其基础模型参数量为67亿,采用专家混合(MoE)架构后实际激活参数可达几百亿。如此规模的模型远超单张GPU显存容量极限,必须借助分布式并行才能加载和训练。具体挑战主要包…

MFC中DoDataExchange的简明指南

基本概念 DoDataExchange 是 MFC 框架中实现数据自动同步的核心函数&#xff0c;主要用于对话框中控件与成员变量的双向绑定。它能让控件中的数据和成员变量自动保持一致&#xff0c;无需手动读写控件数据。 使用示例 1&#xff09;变量声明 在对话框头文件中声明与控件对应…

FreeCAD源码分析: Transaction实现原理

本文阐述FreeCAD中Transaction的实现原理。 注1&#xff1a;限于研究水平&#xff0c;分析难免不当&#xff0c;欢迎批评指正。 注2&#xff1a;文章内容会不定期更新。 一、概念 Ref. from What is a Transaction? A transaction is a group of operations that have the f…

C++类与对象--1 特性一:封装

C面向对象三大特性&#xff1a; &#xff08;1&#xff09;封装&#xff1b;&#xff08;2&#xff09;继承&#xff1b;&#xff08;3&#xff09;多态&#xff1b; C认为万物皆是对象&#xff0c;对象上有对应的属性&#xff08;数据&#xff09;和行为&#xff08;方法&…

初探Reforcement Learning强化学习【QLearning/Sarsa/DQN】

文章目录 一、Q-learning现实理解&#xff1a;举例&#xff1a;回顾&#xff1a; 二、Sarsa和Q-learning的区别 三、Deep Q-NetworkDeep Q-Network是如何工作的&#xff1f;前处理&#xff1a;Convolution NetworksExperience Replay 一、Q-learning 是RL中model-free、value-…

WebRTC技术EasyRTC嵌入式音视频通信SDK打造远程实时视频通话监控巡检解决方案

一、方案概述​ 在现代工业生产、基础设施维护等领域&#xff0c;远程监控与巡检工作至关重要。传统的监控与巡检方式存在效率低、成本高、实时性差等问题。EasyRTC作为一种先进的实时音视频通信技术&#xff0c;具备低延迟、高稳定性、跨平台等特性&#xff0c;能够有效解决这…