图的基本知识

1、什么是图

图是用来对对象之间的成对关系建模的数学结构,由"节点"或"顶点"(Vertex)以及连接这些顶点的"边"(Edge)组成。
在这里插入图片描述
如上图所示: 杰斯、维克托、凯特琳等任务是一个节点、人物之间有朋友、敌对等等关系,这种的点边关系就构成了图。

2、图的表示

值得注意的是,图的顶点集合不能为空,但边的集合可以为空。图可能是无向的,这意味着图中的边在连接顶点时无需区分方向。否则,称图是有向的。
在这里插入图片描述

如何去表示一张图?

我们截取上面双城之战任务关系图中的一部分:
在这里插入图片描述
如上图总共有5个人物,人物之间如果有关系,我们在表格中对应填1
对应邻接表邻接矩阵如下:
在这里插入图片描述

3、图的性质:度

在这里插入图片描述

对于无向图来说,无向图的度:
A :3
B: 2
C:2
D:1

对于有向图来说,有向图的度分为出度和入度:
A:出度 2,入度 1
B:出度 1,入度 1
C:出度 1,入度 1
D:出度 0,入度 1

4、连通图、连通分量

在这里插入图片描述
很直观的看出,右图中有一个节点E是一个孤立节点,因此右图是一个非连通图。

无向图G的极大连通子图称为G的连通分量( Connected Component)。任何连通图的连通分量只有一个,即是其自身,非连通的无向图有多个连通分量。

有向图连通性

强连通图:是指在有向图G中,如果对于每一对vi、vj,vi≠vj,从vi到vj和从vj到vi都存在路径,则称G是强连通图。有向图中的极大强连通子图称做有向图的强连通分量。

弱连通图:将有向图的所有的有向边替换为无向边,所得到的图称为原图的基图。如果一个有向图的基图是连通图,则有向图是弱连通图。
在这里插入图片描述

5、度中心性

度中心性(Degree Centrality)是在网络分析中刻画节点中心性(Centrality)的最直接度量指标。一个节点的节点度越大就意味着这个节点的度中心性越高,该节点在网络中就越重要。
在这里插入图片描述
在这里插入图片描述
范德尔 = 3/(5-1) = 0.75
小不点 = 2/(5-1) = 0.5
希尔科 = 1/(5-1) = 0.25

特征向量中心性

在这里插入图片描述

中介中心性

计算公式:
在这里插入图片描述

其中dst表示s到t的最短路径数量,dst()表示从s到t的最短路径中经过节点的数量。
若需要进行标准化,在如上公式基础上,除以(n-1)(n-2),n为节点数量。

举例说明:
在这里插入图片描述
A的中介中心性值为0
因为所有顶点之间的最短路径都不经过A。

B的中介中心性值为8,标准化后为:8/(6*7)

因为有以下路径经过B。
从A出发的最短路径和从A出发的经过B的最短路径条数一致,都是是5,路径如下:

  • ABD
  • ABC
  • ABDE
  • ABDF
  • ABCE
    则从A出发的顶点的对B的贡献为1/1 + 1/1 + 1/1 + 2/2 = 4(因为ABDE和ABCE起始点和终点相同)

没有从B出发的经过B最短路径。

从C出发的经过B的最短路径条数是1,路径为CBA,CA之间的最短路径为CBA
则从C出发的顶点的对B的贡献为1/1 = 1

从D出发的经过B的最短路径条数是1,路径DBA,DA之间的最短路径为DBA
则从D出发的顶点的对B的贡献为1/1 = 1

从E出发的经过B的最短路径条数是2,路径如下:

  • ECBA
  • EDBA

EA之间的最短路径为:

  • ECBA
  • EDBA

则从E出发的顶点的对B的贡献为2/2=1

从F出发的经过B的最短路径条数是1,路径为:FDBA,FA之间的最短路径为FDBA
则从F出发的顶点的对B的贡献为1/1=1

所以B的中介中心性值是8,标准化后为:8/(6*7)

连接中心性

Closeness = (n-1)/节点到其他节点最短路径之和

在这里插入图片描述
A的Closeness = (6-1)/1+2+2+3+3 = 5/11
B的Closeness = (6-1)/1+1+1+2+2 = 5/7
C的Closeness = (6-1)/2+1+1+1+2 = 5/7

代码实现

import numpy as np
import pandas as pd
import networkx as nx

# 初始化图
edges = pd.DataFrame()
edges['sources'] = [1, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 5]
edges['targets'] = [2, 4, 5, 3, 1, 2, 5, 1, 5, 1, 3, 4]
edges['weights'] = [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]

G = nx.from_pandas_edgelist(edges, source='sources', target='targets', edge_attr='weights')
# degree
print('每个节点的度:', nx.degree(G))
# 每个节点的度:[(1, 3), (2, 2), (4, 2), (5, 3), (3, 2)]

# 连通分量
print('连通分量:', list(nx.connected_components(G)))
# 连通分量: [{1, 2, 3, 4, 5}]

# 图直径
print('图直径:', nx.diameter(G))
# 图直径: 2

# 度中心性
print('度中心性:', nx.degree_centrality(G))
# 度中心性: {1: 0.75, 2: 0.5, 4: 0.5, 5: 0.75, 3: 0.5}

# 特征向量中心性
print('特征向量中心性:', nx.eigenvector_centrality(G))
# 特征向量中心性: {1: 0.5298988890761731, 2: 0.35775191431708964, 4: 0.4271316779596084, 5: 0.5298988890761731, 3: 0.35775191431708964}

# betweenness
print('betweenness:', nx.betweenness_centrality(G))
# betweenness: {1: 0.25, 2: 0.08333333333333333, 4: 0.0, 5: 0.25, 3: 0.08333333333333333}

# closeness
print('closeness:', nx.closeness_centrality(G))
# closeness: {1: 0.8, 2: 0.6666666666666666, 4: 0.6666666666666666, 5: 0.8, 3: 0.6666666666666666}

# pagerank
print('pagerank:', nx.pagerank(G))
# pagerank: {1: 0.24369622576677993, 2: 0.1722562971205864, 4: 0.16809495422526696, 5: 0.24369622576677993, 3: 0.1722562971205864}

# HITS
print('HITS:', nx.hits(G))
# HITS: (hubs:{1: 0.24059715204600776, 2: 0.162434564716677, 4: 0.19393656647463042, 5: 0.24059715204600784, 3: 0.16243456471667692}, 
# authorities:{1: 0.24059715204600784, 2: 0.16243456471667692, 4: 0.1939365664746304, 5: 0.24059715204600768, 3: 0.16243456471667697})

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 电路是电子工程领域中重要的形表达方式,用于表示电路中各元件之间的连接关系和工作原理。电路基础知识主要包括以下几个方面。 首先,电路中常用的符号和元件有电源、电阻、电容、电感、开关等。这些符号和元件的形状和示方法是按照国际标准进行规定的,掌握了这些基本符号和元件的认识和使用方法,才能准确地阅读和绘制电路。 其次,电路中的连线和连接方式也是基础知识的一部分。电路中的连线表示元件之间的连接关系,可以通过直线或曲线来表示。在绘制电路时,还需要根据电路的实际需要选择适当的连接方式,如并联、串联、交叉等,以保证电路的正常工作。 此外,电路中的电流方向和电压标记也需要了解。电流方向一般按照常用的电流流动方向规定,即从正极到负极的方向。电压标记则根据元件之间的电势差规定,并用特定的符号表示。 最后,了解一些基本的电路阅读方法也是电路基础知识的一部分。阅读电路时,可以根据电路的拓扑结构、元件的排列方式和连线的走向等信息,来推断电路的功能和工作原理。 总之,电路基础知识是电子工程师必备的知识之一。了解电路的符号、元件、连线、电流方向、电压标记和阅读方法等基本知识,可以帮助我们更好地理解和设计电子电路。 ### 回答2: 电路基础知识pdf是指一个以PDF格式呈现的电路基础知识学习资料。电路是指用特定符号和线条表示电路元件和电路连接关系的示。电路基础知识pdf通常包括以下内容: 1. 电路符号:了解各种电子元器件的基本符号,如电源、电阻、电容、电感、二极管、晶体管等。通过掌握这些符号,可以理解电路中各个元件的功能和连接方式。 2. 电路连接方式:学习如何画简单的串联、并联和混合连接电路。掌握电路中电流、电压和电阻的关系,了解不同连接方式对电路整体性能的影响。 3. 电路分析方法:学习如何使用基本电路分析方法,如基尔霍夫定律、欧姆定律等,来解读和分析电路。通过计算电流、电压和功率等参数,可以了解电路的工作状态和特性。 4. 电路设计:学习如何根据特定需求设计电路,包括电源电压、电路稳定性、功率需求等方面的考虑。通过综合运用各种元器件和连接方式,设计出满足特定功能要求的电路。 通过学习电路基础知识pdf,可以掌握电子电路的基本概念和分析方法,为后续学习和实际应用打下坚实的基础。掌握电路的知识对于从事电子工程、电气工程和通信工程等领域的人士来说是非常重要的。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值