图学习

作者:王小东大将军
来源:CSDN
原文:https://blog.csdn.net/wangdd_199326/article/details/72463567
感谢 !感谢 !

1、 连通图上各边权值均不相同,则该图的最小生成树是唯一的。

(是自由树,即根结点不确定)


2、 用n表示图中顶点数目,e表示边或弧的数目:

(1) 对于无向图,e的取值范围是0~N(N-1)/2;有N(N-1)/2条边的无向图叫完全图。

(2) 对于有向图,e的取值范围0~N(N-1);相应的有N(N-1)条边的有向图叫有向完全图。

(3) 无向图中,对于图中任意两点都是连通的,叫做连通图;连通分量指的是无向图中极大连通子图;

(4) 在有向图中,若对于每一对顶点都存在路径,称图为强连通图。有向图中的极大强连通子图称为有向图的强连通分量;

一颗有n个顶点的生成树有且仅有n-1条边;
如果一个图有n个顶点和小于n-1条边,则是非连通图;
如果一个图多余n-1条边,则一定有环;
有n-1条边的图不一定是生成树;


图的存储结构:

1)邻接矩阵(构造一个具有n个顶点和e条边的无向图的时间复杂度为O(n^2 +e*n)),其中对邻接矩阵初始化耗费O(n^2)、

2)邻接表(在建立邻接表或逆邻接表时,若输入的顶点信息即为顶点编号,则建立邻接表的时间复杂度为O(n+e);否则需要通过查找才能找到顶点在图中的位置,时间复杂度为O(n.e))、

3)邻接多重表(与邻接表的区别在于同一条边在邻接表中用两个结点表示,而在邻接多重表中只有一个结点)、

4)十字链表(与建立邻接表相同的时间复杂度)。




遍历图的实质是对每个顶点查找器邻接点的过程。用邻接矩阵作图的存储结构时,查找每个顶点的邻接点所需要的时间为O(n^2);用邻接表作图的存储结构时,查找邻接点所需要的时间为O(e);当用邻接表作存储结构时,深度优先搜索遍历图的时间复杂度为O(n+e)。

一颗生成树的代价就是树上各边的代价之和。

构造最小生成树算法多利用了MST性质。主要利用 Prim算法(时间复杂度为O(n^2),与网中边数无关,适用于求边稠密的最小生成树)和 Kruskal算法(时间复杂度为O(e log e),适合于求边稀疏的最小生成树)。



3、 图的拓扑排序唯一,则其弧数比为n-1(n为图的顶点数)

4、 有向图中存在拓扑排序,则该图不存在回路。

5、 具有7个顶点的有向图至少应该有7条边才可能成为一个强连通图。

分析:强连通图必须从任何一点出发都可以回到原处,每个结点至少要有一条出路(单节点除外)至少n条边,正好可以组成一个环。


N个顶点的强连通图最多有N(N-1)条边,最少有 N条边。

(强连通图是指有一个有向图中任意两点v1、v2间存在路径及v2到v1的路径的图。)


最多情况:即n个顶点中两两相连,若不计方法,n个点两两相连有N(N-1)/2条边,而由于强连通图是有向图,故每条边有2个方向,N(N-1)/2*2=N(N-1),所以N个顶点的强连通图最多有N(N-1)条边;

最少情况:即N个顶点围成一个圈,且圈上各边方向一致,即均为顺时针或者逆时针,此时有N条边。


6、 要保证连通具有10个顶点的无向图,至少需要37条边。

分析一:要保证连通具有10个顶点的无向图,重点是需要保证连通,则需要前面9个顶点两两相连,就能保证第10个顶点加入一条边时保证连通。即从9个结点中任意选出两个结点链接,则需要C(9,2)条边,再加上最后一条边,则总边数:C(9,2)+1=(98)/(12)=36,再加上1等于37.

分析二:

一个连通图边数最少情况就是这个图中没有回路情况,实际上这个图是一颗树,对于树,分支和结点关系是:分支数比结点数少1.

补充:

1) 具有10个顶点的无向图,边的总数最多为:

10*(10-1)/2=45;

2) G是一个非连通无向图,共有28条边,则该图至少有9个顶点。

分析:假设至少有N个顶点,由于是非连通图,且要满足28条边,所以N=边为28的完全图(顶点最少)的顶点数+1(与完全图不连通)。完全图边数为28,解n(n-1)/2=28,得n=8,因此N=8+1=9;

7、 位示图法用于:磁盘空闲盘块的分配和回收。

8、 任何有向图的结点都可以排成拓扑排序,而且拓扑排序序列不唯一。(错误,有环就不行,有向无环图才能拓扑排序)

拓扑排序:
1)从有向图选择一个入度为0的顶点并输出之;
2)从图中删除该顶点和所有出边,直到不存在入度为0的顶点。
循环结束后,若输出的顶点数小于网中的顶点数,则有回路,否则输出的顶点序列就是一种拓扑序列。

补充:如何查找一个图中是否有环?


1)有向图中用拓扑排序,循环结束后,若输出的顶点数小于网中的顶点数,则有回路,否则输出的顶点序列就是一种拓扑序列。(还有顶点未输出,但已经不存在没有前驱的顶点)。拓扑排序使用前提就是有向完全图。

2)无向图中,若深度优先遍历过程中遇到回边(即指向已访问过的顶点的边),则必定存在环;有向图中用dfs比较复杂。


9、 图G的最小生成树G1中,可能会有某条边的权值超过未选边的权值。(正确,最小生成树是最小权重生成树的简称,只保证了所有权值之和最小,不好找每条路径都有最小权重)



10、 对于一个具有n个顶点的无向图,若采用邻接表表示,则存放表头结点的数组的大小为:n。

分析:邻接表的性质,存在多少个结点就有多少个头结点的数组,每个头结点的数组都指向该结点在图中直接相连的结点。
图的邻接表表示不是唯一的,它与表结点的链入次序有关;


11、 若无向图G=(V,E)中含有7个顶点,则保证图G在任何情况下都是连通的,则需要的边数最少是:16.

分析:与第6题分析一样。任何情况都连通的最少边数边数边分不最浪费的最少边情况,取点数减一的完全图即:
6
(6-1)/2=15,再加上一条边得结果16.
*


12、N个顶点的强连通图的边数至少有N个。

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
pytorch学习是指使用pytorch框架中的神经网络(Graph Neural Networks,GNN)进行数据的学习和分析。数据是一种表示对象之间关系的数据结构,常用于社交网络、推荐系统、化学分子结构等领域。 在pytorch学习中,我们可以通过构建具有结构的神经网络,来对数据进行特征提取、分类、回归等任务。Pytorch提供了一些神经网络的库,如DGL(Deep Graph Library)和PyG(PyTorch Geometric)等,可以方便地构建和训练神经网络。 神经网络的核心思想是将节点和边的特征进行学习,然后利用这些学习到的特征进行下游任务。神经网络通常由多个卷积层(Graph Convolutional Layer)组成,每个卷积层都会更新节点的特征表示。通过多层的卷积层堆叠,可以逐渐扩展节点的感受野,提取更全局的特征。 在pytorch学习中,除了卷积层,还可以使用其他类型的神经网络层,如注意力层(Graph Attention Layer)和池化层(Graph Pooling Layer)等,以提升网络的性能。同时,也可以结合传统的神经网络层,如全连接层和卷积层等,来处理节点和边的特征。 在实践中,pytorch学习常用于各种数据的任务,如节点分类、链接预测和生成等。通过对结构的学习,可以提取出节点和边的有用特征,从而更好地理解和处理数据。 总而言之,pytorch学习是利用pytorch框架进行数据学习的方法,在处理数据时能够更好地利用结构中的信息,并应用于各种相关任务。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值