算法学习:图论之图的割点,桥,双连通分支

算法学习:图论之图的割点,桥,双连通分支
算法学习:图论之图的割点,桥,双连通分支

图的割点、桥与双连通分支

[点连通度与边连通度]

在一个无向连通图中,如果有一个顶点集合,删除这个顶点集合,以及这个集合中所有顶点相关联的边以后,原图变成多个连通块,就称这个点集为割点集合。一个图的点连通度的定义为,最小割点集合中的顶点数。

类似的,如果有一个边集合,删除这个边集合以后,原图变成多个连通块,就称这个点集为割边集合。一个图的边连通度的定义为,最小割边集合中的边数。

注:以上定义的意思是,即有可能删除两个或两个以上点的时候才能形成多个连通块!

[双连通图、割点与桥]

如果一个无向连通图的点连通度大于1,则称该图是点双连通的(point biconnected),简称双连通或重连通。一个图有割点,当且仅当这个图的点连通度为1,则割点集合的唯一元素被称为割点(cut point),又叫关节点(articulation point)。

如果一个无向连通图的边连通度大于1,则称该图是边双连通的(edge biconnected),简称双连通或重连通。一个图有桥,当且仅当这个图的边连通度为1,则割边集合的唯一元素被称为桥(bridge),又叫关节边(articulation edge)。

可以看出,点双连通与边双连通都可以简称为双连通,它们之间是有着某种联系的,下文中提到的双连通,均既可指点双连通,又可指边双连通。

[双连通分支]

在图G的所有子图G’中,如果G’是双连通的,则称G’为双连通子图。如果一个双连通子图G’它不是任何一个双连通子图的真子集,则G’为极大双连通子图。双连通分支(biconnected component),或重连通分支,就是图的极大双连通子图。特殊的,点双连通分支又叫做块。

[求割点与桥]

该算法是R.Tarjan发明的。对图深度优先搜索,定义DFS(u)为u在搜索树(以下简称为树)中被遍历到的次序号。定义Low(u)为u或u的子树中能通过非父子边追溯到的最早的节点,即DFS序号最小的节点。根据定义,则有:

Low(u)=Min

{

DFS(u)

DFS(v) (u,v)为后向边(返祖边) 等价于 DFS(v)

}

一个顶点u是割点,当且仅当满足(1)或(2)

(1) u为树根,且u有多于一个子树。(很关键,根节点要特殊处理)

(2) u不为树根,且满足存在(u,v)为树枝边(或称父子边,即u为v在搜索树中的父亲),使得DFS(u)<=Low(v)。

一条无向边(u,v)是桥,当且仅当(u,v)为树枝边,且满足DFS(u)

下面要分开讨论点双连通分支与边双连通分支的求法。

对于点双连通分支,实际上在求割点的过程中就能顺便把每个点双连通分支求出。建立一个栈,存储当前双连通分支,在搜索图时,每找到一条树枝边或后向边(非横叉边),就把这条边加入栈中。如果遇到某时满足DFS(u)<=Low(v),说明u是一个割点,同时把边从栈顶一个个取出,直到遇到了边 (u,v),取出的这些边与其关联的点,组成一个点双连通分支。割点可以属于多个点双连通分支,其余点和每条边只属于且属于一个点双连通分支。

对于边双连通分支,求法更为简单。只需在求出所有的桥以后,把桥边删除,原图变成了多个连通块,则每个连通块就是一个边双连通分支。桥不属于任何一个边双连通分支,其余的边和每个顶点都属于且只属于一个边双连通分支。

[构造双连通图]

一个有桥的连通图,如何把它通过加边变成边双连通图?方法为首先求出所有的桥,然后删除这些桥边,剩下的每个连通块都是一个双连通子图。把每个双连通子图收缩为一个顶点,再把桥边加回来,最后的这个图一定是一棵树,边连通度为1。

统计出树中度为1的节点的个数,即为叶节点的个数,记为leaf。则至少在树上添加(leaf+1)/2条边,就能使树达到边二连通,所以至少添加的边数就是(leaf+1)/2。具体方法为,首先把两个最近公共祖先最远的两个叶节点之间连接一条边,这样可以把这两个点到祖先的路径上所有点收缩到一起,因为一个形成的环一定是双连通的。然后再找两个最近公共祖先最远的两个叶节点,这样一对一对找完,恰好是(leaf+1)/2次,把所有点收缩到了一起。

[图的双连通性问题例题]

备用交换机

求图的割点,直接输出。

pku 3177(3352) Redundant Paths

求桥,收缩边双连通子图,构造边双连通图。

POI 1999 仓库管理员 Store-keeper

求点双连通子图。

POJ 3352

题目大意:给定一个双向连通的公路网,当某些公路路段检修的时候可能会由于该段公路不通,可能会使某些旅游点之间无法通行,求至少新建多少条公路,使得任意对一段公路进行检修的时候,所有的旅游景点之间仍然畅通;

分析:检修某一路段导致公路网不畅通的原因必然是该段公路在图中是桥(割边),因此完全畅通的方法就是,加最若干条边,使图中不存在桥。先找出图中所有的双连通分量,将双连通分量进行缩点,得到一个树形图,求出这个树形图中度为1的点的个数,新加边的条数即是(度为1的点数目+1)/2,考虑到题目只要求求度为1的点数目,因此可以部分缩点,利用并查集,保存每个割边的顶点,统计每个顶点在并查集中的代表元的度数即可。

Sample 1中存在4个双连通分量:{1},{2,5,6},{3,7,8},{4,9,10},进行缩点之后,求得一个4个节点的树形图,其中一个点的度数为3,其余3个点的度数为1,得到需要加的边的数目为(3+1)/2=2。

#include

#include

using namespace std;

const int MAXN = 5001;

vector< vector > adj;

int cnt,low[MAXN],pre[MAXN],visit[MAXN],degree[MAXN];

void dfs(int u,int v){

visit[u]=1;

pre[u]=cnt++,low[u]=pre[u];

int i,len=adj[u].size();

for(i=0;i

if(adj[u][i]==v) continue;

if(!visit[adj[u][i]]) dfs(adj[u][i],u);

if(low[adj[u][i]]

}

visit[u]=2;

}

int main(){

int i,j,u,v,n,m,len,ans;

scanf("%d %d",&n,&m);

adj.assign(n+1,vector());

while(m--){

scanf("%d %d",&u,&v);

adj[u].push_back(v),adj[v].push_back(u);

}

memset(visit,0,sizeof(visit));

cnt=0,dfs(1,1);

memset(degree,0,sizeof(degree));

for(i=1;i<=n;i++){

len=adj[i].size();

for(j=0;j

if(low[i]!=low[adj[i][j]])

degree[low[i]]++;

}

for(ans=i=0;i<=n;i++)

if(degree[i]==1) ans++;

printf("%d\n",(ans+1)/2);

return 0;

}

有向图强连通分量的Tarjan算法

[有向图强连通分量]

在有向图G中,如果两个顶点间至少存在一条路径,称两个顶点强连通(strongly connected)。如果有向图G的每两个顶点都强连通,称G是一个强连通图。非强连通图有向图的极大强连通子图,称为强连通分量(strongly connected components)。

下图中,子图{1,2,3,4}为一个强连通分量,因为顶点1,2,3,4两两可达。{5},{6}也分别是两个强连通分量。

直接根据定义,用双向遍历取交集的方法求强连通分量,时间复杂度为

O(N^2+M)。更好的方法是Kosaraju算法或Tarjan算法,两者的时间复杂度都是O(N+M)。本文介绍的是Tarjan算法。

[Tarjan算法]

Tarjan算法是基于对图深度优先搜索的算法,每个强连通分量为搜索树中的一棵子树。搜索时,把当前搜索树中未处理的节点加入一个堆栈,回溯时可以判断栈顶到栈中的节点是否为一个强连通分量。

定义DFN(u)为节点u搜索的次序编号(时间戳),Low(u)为u或u的子树能够追溯到的最早的栈中节点的次序号。由定义可以得出,

?View Code CPP

Low(u)=Min

{

DFN(u),

Low(v),(u,v)为树枝边,u为v的父节点

DFN(v),(u,v)为指向栈中节点的后向边(非横叉边)

}

当DFN(u)=Low(u)时,以u为根的搜索子树上所有节点是一个强连通分量。

算法伪代码如下

?View Code CPP

tarjan(u)

{

DFN[u]=Low[u]=++Index // 为节点u设定次序编号和Low初值

Stack.push(u)// 将节点u压入栈中

for each (u, v) in E // 枚举每一条边if(v is not visted)// 如果节点v未被访问过

tarjan(v)// 继续向下找

Low[u]= min(Low[u], Low[v])

else if(v in S)// 如果节点v还在栈内

Low[u]= min(Low[u], DFN[v])

if(DFN[u]== Low[u])// 如果节点u 是强连通分量的根

repeat

v = S.pop// 将v退栈,为该强连通分量中一个顶点

print v

until (u== v)

}

接下来是对算法流程的演示。

从节点1开始DFS,把遍历到的节点加入栈中。搜索到节点u=6时,

DFN[6]=LOW[6],找到了一个强连通分量。退栈到u=v为止,{6}为一个强连通分量。

返回节点5,发现DFN[5]=LOW[5],退栈后{5}为一个强连通分量。

返回节点3,继续搜索到节点4,把4加入堆栈。发现节点4向节点1有后向边,节点1还在栈中,所以LOW[4]=1。节点6已经出栈,(4,6)是横叉边,返回3,(3,4)为树枝边,所以LOW[3]=LOW[4]=1。

继续回到节点1,最后访问节点2。访问边(2,4),4还在栈中,所以

LOW[2]=DFN[4]=5。返回1后,发现DFN[1]=LOW[1],把栈中节点全部取出,组成一个连通分量{1,3,4,2}。

至此,算法结束。经过该算法,求出了图中全部的三个强连通分量

{1,3,4,2},{5},{6}。

可以发现,运行Tarjan算法的过程中,每个顶点都被访问了一次,且只进出了一次堆栈,每条边也只被访问了一次,所以该算法的时间复杂度为O(N+M)。

求有向图的强连通分量还有一个强有力的算法,为Kosaraju 算法。Kosaraju 是基于对有向图及其逆图两次DFS 的方法,其时间复杂度也是 O(N+M)。与Trajan 算法相比,Kosaraju 算法可能会稍微更直观一些。但是Tarjan 只用对原图进行一次DFS ,不用建立逆图,更简洁。 在实际的测试中,Tarjan 算法的运行效率也比Kosaraju 算法高30%左右。此外,该Tarjan 算法与求无向图的双连通分量(割点、桥)的Tarjan 算法也有着很深的联系。学习该Tarjan 算法,也有助于深入理解求双连通分量的Tarjan 算法,两者可以类比、组合理解。

求有向图的强连通分量的Tarjan 算法是以其发明者Robert Tarjan 命名的。Robert Tarjan 还发明了求双连通分量的Tarjan 算法,以及求最近公共祖先的离线Tarjan 算法,在此对Tarjan 表示崇高的敬意。

附:tarjan 算法的C++程序

?View Code CPP

1 2 3 4 5 6 7 8 9 10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

void tarjan (int i )

{

int j ;

DFN [i ]=LOW [i ]=++Dindex ;

instack [i ]=true ;

Stap [++Stop ]=i ;

for (edge *e =V [i ];e ;e =e ->next )

{

j =e ->t ; if (!DFN [j ]) { tarjan (j ); if (LOW [j ]

30

31

32

33

34

35

36

37

38

39 } void solve () { int i ; Stop =Bcnt =Dindex =0; memset (DFN,0,sizeof (DFN )); for (i =1;i <=N ;i ++) if (!DFN [i ]) tarjan (i ); }

[参考资料]

图论讲义第2章-连通性

第二章 图的连通性 在第一章中已经定义连通图是任二顶点间都有路相连的图。对于连通图,其连通的程度也有高有低。例如,下列三个图都是连通图。对于图G 1,删除一条边或一个顶点便可使其变得不连通;而对于图G 2,至少需要删除两条边才能使其不连通,也可以删除一个顶点使其不连通;对于图G 3,要破坏其连通性,则至少需要删除三条边或三个顶点。 本章主要讨论如何通过图的顶点集、边集和不交的路集合的结构性质来获知图的连通性程度。通过研究割边和割点来刻画1连通图的特性;定义连通度和边连通度来度量连通图连通程度的高低;通过不交路结构和元素的共圈性质来反映图的2连通和k 连通性。 §2.1 割点和割边 定义2.1.1 设)(G V v ∈,如果)()(G w v G w >?,则称v 为G 的一个割点。 (注:该定义与某些著作中的定义有所不同,主要是在环边的顶点是否算作割点上有区别)。 例如,下图中u , v 两点是其割点。 定理2.1.1 如果点v 是简单图G 的一个割点,则边集E (G)可划分为两个非空子集1E 和2E ,使得][1E G 和][2E G 恰好有一个公共顶点v 。 证明留作习题。 推论2.1.1 对连通图G ,顶点v 是G 的割点当且仅当v G ?不连通。 定理2.1.2 设v 是树T 的顶点,则v 是T 的割点当且仅当1)(>v d 。 证明:必要性:设v 是T 的割点,下面用反证法证明1)(>v d 。 若0)(=v d ,则1K T ?,显然v 不是割点。 若1)(=v d ,则v T ?是有1)(??v T ν条边的无圈图,故是树。从而)(1)(T w v T w ==?。因此v 不是割点。 以上均与条件矛盾。 充分性:设1)(>v d ,则v 至少有两个邻点u ,w 。路uvw 是T 中一条),(w u 路。因T 是树,uvw 是T 中唯一的),(w u 路,从而)(1)(T w v T w =>?。故v 是割点。证毕。

图的连通性总结

图的连通性总结 boboo 目录 1.图的遍历及应用 1.1.DFS遍历 1.2.DFS树的边分类 1.3.DFS树的性质 1.4.拓补排序 1.5.欧拉回路 2.无向图相关 2.1求割顶 2.2求图的桥 2.3求图的块 3.有向图相关 3.1求强连通分量(SCC划分) 3.2求传递闭包 4.最小环问题

一、图的遍历及应用 1.1 DFS遍历 DFS是求割顶、桥、强连通分量等问题的基础。 DFS对图进行染色, 白色:未访问; 灰色:访问中(正在访问它的后代); 黑色:访问完毕 一般在具体实现时不必对图的顶点进行染色,只需进行访问开始时间和访问结束时间的记录即可,这样就可以得出需要的信息了。 -发现时间D[v]:变灰的时间 -结束时间f[v]:变黑的时间 -1<=d[v]

图的连通性判断

基于MATLAB的实现,此方法可以知道有几个连通域,并且知道各个顶点的归属。Branches中显示各个节点的归属,同一行的为同一连通分支中的节点。其第一列为它的分类数。 例如下图,有五个连通分支,1、2、3在同一个连通分支中。 这是上图的邻接矩阵,同一节点间为0。 Branches中的显示内容,第一列为连通分支数,后边跟着的是给连通分支中的节点。第一行就表示1、2、3为一个连通分支,4自己在一个连通分支中等等。 function [Branches,numBranch]=Net_Branches(ConnectMatrix) % ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ % This program is designed to count the calculate connected components in networks. % Usage [Cp_Average, Cp_Nodal] = Net_ClusteringCoefficients(ConnectMatrix,Type) % Input: % ConnectMatrix --- The connect matrix without self-edges. % Output: % Branches --- A matrix, each rows of which represents the

% different connected components. % numBranch --- The numbers of connected components in network % % +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ % Refer: % Ulrik Barandes % Written by Hu Yong, Nov,2010 % E-mail: carrot.hy2010@https://www.360docs.net/doc/483471652.html, % based on Matlab 2008a % Version (1.0),Copywrite (c) 2010 % Input check-------------------------------------------------------------% [numNode,I] = size(ConnectMatrix); if numNode ~= I error('Pls check your connect matrix'); end % End check---------------------------------------------------------------% Node = [1:numNode]; Branches = []; while any(Node) Quence = find(Node,1); %find a non-zero number in Node set subField=[]; %one component % start search while ~isempty(Quence) currentNode = Quence(1); Quence(1) = []; %dequeue subField=[subField,currentNode]; Node(currentNode)=0; neighborNode=find(ConnectMatrix(currentNode,:)); for i=neighborNode if Node(i) ~= 0 %first found Quence=[Quence,i]; Node(i)=0; end end end subField = [subField,zeros(1,numNode-length(subField))]; Branches = [Branches;subField]; %save end numBranch = size(Branches,1);

图论讲义2连通性

第二章 图的连通性 连通图:任二顶点间有路相连。 例 可见在连通图中,连通的程度也是有高有低。 本章的目的就是定义一种参数来度量连通图连通程度的高低。 §2.1 割边、割点与连通度 一、割点: 定义2.1.1 设)(G V v ∈,如果)()(G w v G w >?,则称v 为G 的一个割点。(该定义与某些著作有所不同,主要是在有环边的顶点是否算作割点上有区别)。 例 定理2.1.1 如果点v 是图G 的一个割点,则边集E (G)可划分为两个非空子集1E 和2E ,使得 ][1E G 和][2E G 恰好有一个公共顶点v 。 推论2.1.1 对连通图G ,顶点v 是G 的割点当且仅当v G ?不连通。 以上两个结论的证明留作习题。 定理2.1.2 设v 是树T 的顶点,则v 是T 的割点当且仅当1)(>v d 。 证明:必要性:设v 是T 的割点,下面用反证法证明1)(>v d 。 若0)(=v d ,则1K T ?,显然v 不是割点。 若1)(=v d ,则v T ?是有1)(??v T ν条边的无圈图,故是树。从而)(1)(T w v T w ==?。因此v 不是割点。 以上均与条件矛盾。 充分性:设1)(>v d ,则v 至少有两个邻点u ,w 。路uvw 是T 中一条),(w u 路。因T 是树,uvw 是T 中唯一的),(w u 路,从而)(1)(T w v T w =>?。故v 是割点。证毕。 推论2.1.2 每个非平凡无环连通图至少有两个顶点不是割点。 证明:设T 是G 的生成树,则T 至少有两个叶子u ,v ,由上一定理知,u ,v 都不是T 的割点,即1)()(==?T w u T w 。由于u T ?是图u G ?的生成树,故 )(1)()()(G w T w u T w u G w ===?=?,

图的连通性

图的连通性 图的连通性2010-07-23 21 :02 图的连通性 第十三章图的基本概念 第三节图的连通性 一.连通性概念 图中两点的连通:如果在图G中u、v 两点有路相通,则称顶点u、v 在图G中连通。 连通图(connected graph) :图G中任二顶点都连通。 图的连通分支(connected brch,component) :若图G 的顶点集 V(G)可划分为若干非空子集V 1,V 2, ?,V w, 使得两顶点属于同一子集当且仅当它们在G 中连通,则称每个子图G为图G的一个连通分支(i=1,2, ?,w) 。 注:(1) 图G的连通分支是G的一个极大连通子图。 (2)图G连通当且仅当w=1。 例13.5 设有2n 个电话交换台,每个台与至少n 个台有直通线路,则该交换系统中任二台均可实现通话。 证明:构造图G如下:以交换台作为顶点,两顶点间连边当且仅当对应的两台间有直通线路。问题化为:已知图G有2n 个顶点,且 δ(G) ≥n,求证G连通。 事实上,假如G不连通,则至少有一个连通分支的顶点数不超过n。在此连通分支中,顶点的度至多是n–1。这与δ(G)≥n 矛盾。 证毕

例13.6 若图中只有两个奇度顶点,则它们必连通。 证明:用反证法。假如u与v 不连通,则它们必分属于不同的连通分支。将每个分支看成一个图时,其中只有一个奇度顶点。这与推论13.1 矛盾。证毕 在连通图中,连通的程度也有高有低。 例如 后面将定义一种参数来度量连通图连通程度的高低。 二.割点 定义13.2 设v∈V(G),如果w(G–v)w(G) ,则称v 为G的一个割点。( 该定义与某些著作有所不同,主要是在有环边的顶点是否算作割点上有区别) 。 例如 定理13.3 如果点v 是图G的一个割点,则边集E(G)可划分为两个非空子集E 1和E 2,使得G[E 1]和G[E 2]恰好有一个公共顶点 v。 推论13.2 对连通图G,顶点v 是G的割点当且仅当G–v 不连通。 以上两个结论的证明留作习题。 三.顶点割集 定义13.3 对图G,若V(G)的子集V' 使得 w(G–V')w(G), 则称V'为图G的一个顶点割集。含有k 个顶点的顶点割集称为k-顶点割集

图论讲义第7章-平面图

第七章 平面图 §7.1 平面图的概念 定义7.1.1 如果图G 能画在曲面S 上,使得任意两边互不交叉,则称G 可嵌入曲面S 。若图G 可嵌入平面,则称G 是可平面图或平面图,画出的无交叉边的图形称为图G 的平面嵌入。 例如,下面是三个平面图及其平面嵌入。 根据定义,下列定理是显然的。 定理7.1.1 若图G 是平面图,则G 的任何子图都是平面图。 定理7.1.2 若图G 是非平面图,则G 的任何母图都是非平面图。 定理7.1.3 若图G 是平面图, 则在G 中添加重边或环边后所得之图仍是平面图。 注:由以上定理知 (1) K n ( n ≤4 ) 和 K 1,n (n ≥ 1)及其所有子图都是平面图。 (2) 环边和重边不影响图的平面性。故以下讨论平面性时总假定图G 是简单图。 定义7.1.2 设图G 是平面图 (已平面嵌入),G 的边将平面划分出的若干区域都称为图G 的面。其中面积无限的面称为无限面或外部面,面积有限的面称为有限面或内部面。包围一个面的所有边称为该面的边界。一个面边界上的边数称为该面的次数 (割边按两次计),面R 的次数记为deg (R )。 定理7.1.4 平面图G 中所有面的次数之和等于G 的边数的两倍,即 其中R 1, R 2, … , R r 是G 的所有面。 证明: 对G 的任何一条边e ,若e 是两个面 R i 和 R j 的公共边界,则在计算R i 和 R j 的次数时,e 各提供了1;若e 只是某一个面的边界,则在计算该面的次数时,e 提供了2。可见每条边在计算总次数时,都提供2。因而结论成立。 1 deg()2().r i i R G ε==∑

离散数学图论作业3-图的连通性

离散数学图论作业3-图的连通性 Problem1 判断下列各图是否是强连通的,如果不是,再判断是否是弱连通的。 (1)(2)(3) Problem2 证明:简单图G是二部图(bipartite graph),当且仅当G没有包含奇数条边的回路。 Problem3 a)证明或反驳:存在函数f:N→N使得对于所有k∈N,最小度至少为f(k)的图一定是k-连通的。 b)证明或反驳:存在函数f:N→N使得对于所有k∈N,边连通度至少为f(k)的图一定是k-连通的。Problem4 。(λ(G)表示G的边连通度) 证明:κ(G)=1的r-正则图G,若r>1,总满足λ(G)≤r 2

Problem5 证明:G是2-边连通图当且仅当G中任意两个顶点之间至少有两条不含公共边的通路。 (提示:证明过程中可使用Whitney定理,但需注意和本题的差异) Problem6 证明:若G是k?边连通图,从G中任意删除k条边,最多得到2个连通分支。 Problem7 对于任意的简单连通图G, 1.证明V(G)=E(G)时,G中有且仅有1个简单回路。(可直接使用V(G)=E(G)?1时图G中无简单 回路的结论) 2.该结论能否推广为E(G)≥V(G)时G中有且仅有E(G)?V(G)+1个简单回路? *题中简单回路不存在重复的边,可能存在大于1个重复顶点(见P573定义1) Problem8 证明:若简单图G是不连通的,则G的补图是连通图。 Problem9 证明:任意简单连通图G包含一条长度至少为min{2δ(G),|V(G)|?1}的顶点和边均不重复的通路。 (提示:证明过程中可以考虑图G中最长的[顶点和边均不重复的]通路)

中间P_2-图的边连通性

中间P_2-图的边连通性 图论中边连通度是用来研究网络可靠性的一个参数,它能比较准确的刻画小规模网络的容错性,其相关结论是研究互联网的拓扑结构的有利工具.为了更好的研究图的边连通度,1932年Whitney[1]提出了线图的概念.关于线图已有很多好的结论.后来,Broersmn和Hoede [2]把线图推广,提出了路图的概念.图G的Pk-路图Pk(G)其顶点集是G中所有k长路,其中两点相邻当且仅当在G中它们公共部分是k-1长路且它们的并是k+1长路或圈.显然,k=1时,P1(G)就是图G的线图.图G的中间图M(G)的定义为[15]:顶点集是V(G)∪E(G),其中两点x与y相邻当且仅当{x,y)n E(G)≠φ且x,y在G中相邻或关联.本文中,我们把中间图M(G)的概念推广,给出中间Pk-图Mk(G)的概念.图G的中间Pk-图Mk(G)的定义为:顶点集是V(G)∪V,(Pk(G)),边集是E(Pk(G))∪Ek,其中Ek={(v,p):p∈V(Pk(G)),v 是p的一个端点.}由上面定义,我们有:k=1时,M1(G)=M(G),k=2时,M2(G)=(V(G)∪V{P2(G),E(P2(G))∪E2).如果图G中含有一个包含所有边的闭迹,称图G是欧拉图.所有顶点度数是偶数的图称为偶图;所有顶点度数是奇数的图称为奇图.本文主要证明了:(1)顶点数|V(G)|≥3的连通图G,若6(G)≥2,则P2(G)连 通,M2(G)连通,且入(M2(G))≥2.(2)设G是连通图,如果δ(G)≥3,则λ(M2(G))≥2δ(G).(3)设G是连通图,若G是欧拉图,则M2(G)也是欧拉图.(4)设G和M2(G)都是连通图,若M2(G)是欧拉图,则G是偶图或奇图.

相关文档
最新文档