网络分析运筹学课件网络分析图与子图图的连通与割集树与支撑树最小树最短有向路最大流最小费用流最大对集运筹学课件图与子图图与网络无向图的基本概念网络的基本概念关联矩阵和邻接矩阵关联矩阵邻接矩阵主要结论子图运筹学课件网络分析无向图的基本概念无向图G:一个有序二元组(N,E),记为G=(N,E)G的点集合:(例如:图(1)中的N=(1,2,3,4,5)是一个无向图的点的集合)G的边集合:E={eij}且eij={ni,nj}为图(1)无序二元组eij的端点:有eij={ni,nj},则称ni和nj为eij的端点,且称eij连接点ni和nj圈:两个端点重合为一点的边(例如图(1)中的e11)孤立点:不与任何边关联的点(例如图(1)中的n5)34512续(1)关联:一条边的端点称为这条边的关联邻接:与同一条边关联的端点称为是邻接的,同时如果两条边有一个公共端点,则称这两条边是邻接的有限图:点和边都是有限集合的图空图:没有任何边的图平凡图:只有一个点的图简单图:既没有圈也没有两条边连接同一对点的图续(2)完全图:每一对点之间均有一条边相连的图二分图G=(N,E):存在的一个二分划(S,T),使得G的每条边有一个端点在S中,另一个端点在T中完全二分图G=(S,T,E):S中的每个点与T中的每个点都相连的简单二分图简单图G的补图:与G有相同顶点集合的简单图,且中的两个点相邻当且仅当它们在G中不相邻GG返回网络的基本概念运筹学课件♂有向图G:一个有序二员组(N,A),记为G=(N,A)G的弧集合:A={aij}且aij={ni,nj}为有序二元组,若aij={ni,nj},则称aij从ni连向nj,ni称为aij的尾,nj为aij的头,ni称为nj的先辈,nj称为ni的后继有向图G的基本图:对于G的每条弧用一条边代替后得到的无向图(有向)网络G:对(有向)图G的每条边(弧)都赋予一个实数,并称为边(弧)的权,则连同它边(弧)上的权称为(有向)网络关联矩阵简单图),(ENG的关联矩阵:一个||||EN阶矩阵)(ikbB,其中,0,1否则关联与边当点kibik简单有向图),(ANG的关联矩阵:一个||||AN阶矩阵)(ikbB,其中,0,1,1否则为头以点当弧为尾以点当弧iaiabikikik运筹学课件关联矩阵示例图(7)的关联矩阵是图(8)的关联矩阵是134521342返回110100001010010001101010000110010000011154321110001011001101000114321邻接矩阵邻接矩阵示例图(7)的邻接矩阵是图(8)的邻接矩阵是134521342返回01110101011101110101011105432154321010000001100011043214321主要结论命题6.1.1G是二分图当且仅当G的邻接矩阵可表成如下形式00TAAA命题6.1.2||2Edii其中id表示简单图G中点i的次是指G中与点i关联的边数命题6.1.3iiiidAd||其中id表示简单有向图G中点i的入次是指G中以点i为头的弧数;id表示点i的出次是指G中以点i为尾的弧数运筹学课件网络分析♂子图运筹学课件网络分析♂图),(ENG的子图),(ENG:NN和EE,对E中任意的一条边},{jiijnne,都有Nni和Nnj图G的支撑子图G:G是G的子图,且NN点导出子图][NG:以N的一个非空子集N作为点集、以两端点均在N中的所有边为边集的子图边导出子图][EG:以E的一个非空子集E作为边集、以E中边的所有端点作为点集的子图图G的不相交子图1G和2G:1G和2G没有公共点图G的边不重子图1G和2G:1G和2G没有公共边子图1G和2G的并21GG:以1G和2G的点集的并为点集,以1G和2G的边集的并为边集的子图子图1G和2G的交21GG:以1G和2G的点集的交为点集,以1G和2G的边集的交为边集的子图无向图的路运筹学课件网络分析135426图G中路:一个点和边交替序列(ni,eij,nj,…,nk,ekl,nl),简单路:边不重的路初级路:点不重的路回路:在G中,一条至少包含一个边并且ni=nl的{ni,nl}路简单回路:边不重的回路初级回路:点不重的回路连通性点i和j点是连通的:G中存在一条(i,j)路G是连通的:G中任意两点都是连通的连通分支:G的极大连通子图命题6.2.1设G有p个连通分支,则G的邻接矩阵可以表示成分块矩阵返回有向路运筹学课件134256有向图G中的一条有向路:个点和弧的交错序列(ni,aij,nj,…,nk,akl,nl),记为(ni,nl)有向路简单有向路:弧不重的有向路初级有向路:点不重的有向路有向回路:至少包含一条弧且ni=nj的(ni,nj)有向路简单有向回路:弧不重的有向回路初级有向回路:点不重的有向回路点i和点j是强连通的:G中存在一条(i,j)有向路,也存在一条(j,i)有向路G是强连通的:G中任意两点都是强连通的G的强连通分支:G的极大连通子图命题6.2.2设G有p个强连通分支,则G的邻接矩阵可以表示成如下形式:返回强连通性割集运筹学课件图G的割边:如果从G中删去它就使图的连通分支数严格增加的边},{TS割:一个端点在S中,另一个端点在T中的边集合,其中S和T是N的两个不相交子集图G的边割},{SS:从G中删去它就使图的连通分支数严格增加的边集合割集:G的极小边割图G的割边:如果从G中删去它就使图的连通分支数严格增加的边),(TS:有向图),(ANG中尾在S中,头在T中的弧集合有向图G的弧割),(SS:从G中删去它就使图的强连通分支数严格增加的弧集合有向割集:G的极小弧割♂割集的性质命题6.2.3任何边割都是不相交割集的并命题6.2.4任给图G,设C是G的一条简单回路},{TS是G的一个割集,并用)(),(ECE分别表示,C所包含的边集合。若)()(ECE,则2|)()(|ECE运筹学课件网络分析♂树与支撑树树及其基本性质概念及符号基本性质支撑树及其基本性质概念及符号基本性质♂运筹学课件网络分析概念及符号树:一个连通且无回路(除非特别声明,以后皆指初级回路)的图k-树(森林):有k个连通分支且无回路的图21HH:子图1H和子图2H的边的并集21HH:子图1H和子图2H的边的交集21\HH:在子图1H中但不在子图2H中的边的集合eG:在图G中加连边eeG:在图G中去掉边eiG:在图G去掉点i及与点i关联的所有边♂运筹学课件网络分析树的基本性质定理6.3.1设),(ENT是3||N的一个图,则下列六个定义是等价的:(1)T连通且无回路;(2)T有1||N条边且无回路;(3)T连通且有1||N条边;(4)T连通且每条边都是割边;(5)T的任两点间都有唯一的路相连;(6)T无回路,但在任一对不相邻的点间加连一条边,则构成唯一的一个回路。定理6.3.2每个树至少有两个次为1的点。♂运筹学课件网络分析概念及符号图G的支撑树:G的一个是树的支撑子图G的反树:TGT\*,其中),(ENT是),(ENG的一个支撑树)(e:割集},{21SS,其中21,SS为eT的两个连通分支的点集合♂运筹学课件网络分析支撑树的基本性质定理6.3.3G有支撑树当且仅当G是连通的。定理6.3.4任给图G,设T是G的支撑树,e是T的一条边,则存在唯一的一个割集)(e包含于eT*中。定理6.3.5设1T和2T是G的两个支撑树,且kTT|\|21,则2T经过k次迭代后就得到1T♂运筹学课件网络分析最小树最小树及其性质求最小树的Kruskal算法算法步骤算例算法复杂性Dijkstra算法算法步骤算例算法复杂性Scilab实现♂运筹学课件网络分析最小支撑树支撑树T的权(或长):EeeWTW)()(最小支撑树:G中权最小的支撑树定理6.4.1设T是G的支撑树,则T是G的最小树当且仅当对任意边*Te有)(max)()(eWeWeCe其中eTeC)(为一个唯一的回路。定理6.4.2设T是G的支撑树,则T是G的最小树当且仅当对任意边Te有)(min)()(eWeWee其中eTe*)(为一个唯一割集。定理6.4.3设T是G的支撑树,则T是G的唯一最小树当且仅当对任意边TGe\,e是)(eC中的唯一最大边。定理6.4.4设T是G的支撑树,则T是G的唯一最小树当且仅当对任意边Te,e是)(e中的唯一最大边。♂运筹学课件算法步骤运筹学课件第1步开始把边按权的大小由小到大排列起来,即maaa,...,,21置S,0i,1j。第2步若1||niS,则停。这时TSG][即为所求;否则,转向第3步。第3步若}]{[jaSG不构成回路,则置jiae1,}{1ieSS,1ii,1jj,转向第2步;否则,置1jj,转向第2步。♂算例运筹学课件网络分析用Kruskal算法求解下图所示网络的最小树,其中每条边上的数表示该边的权值。②143①2④2⑤244③计算的迭代过程运筹学课件网络分析②②11①④⑤①④⑤2③③②②113①④⑤①④2⑤2③③♂算法复杂性运筹学课件网络分析首先,在第1步中把边按权的大小由小到大排列起来,这约需mm2log次比较;其次,第2步最多循环n次;在第3步中,判定加边后是否构成回路总共约需m次比较,而加边后点的重新标号最多需)1(nn次比较。所以,总的计算量为)log(~)1(log222nnOnnmnmm♂算法步骤运筹学课件网络分析第1步置jjwu1,T,}1{R,},...,3,2{nS;第2步取ikjSjkwuu}{min,置}{ikeTT,}{kRR,}{\kSS;第3步若S,则停止;否则,置},{minkjjSjkwuu,Sj,返回第2步。♂算例运筹学课件网络分析用Dijkstra算法求解下图所示网络的最小树,其中每条边上的数表示该边的权值。②143①2④2⑤244③计算的迭代过程运筹学课件网络分析1②②1431433①2④2⑤①2④2⑤244244③③22②②1433143①2④2⑤①2④2⑤244244③③♂算法复杂性运筹学课件网络分析执行第2步时,第一次是2n次比较,第二次为3n次比较,第三次为4n次比较,…,因此总的比较为2)1)(2(nn次。执行第3步时,第一次是2n次比较,第二次为3n次比较,第三次为4n次比较,…因此总的比较为)1)(2(nn次。所以,总的计算量约为)(2nO。♂Scilab实现用Scilab语句求解下列网络的最小树1324242414523Scilab命令及结果cleartail=[11222334];head=[23345455];g=make_graph('g',0,5,tail,head);//制图weight=[12243442];//权向量g('edge_weight')=weight;t=min_weight_tree(g)//用Scilab命令求解t=!1.2.8.5.!//结果返回最短有向路最短有向路方程求最短有向路的Dijkstral算法算法步骤算例算法复杂性Scilab实现♂运筹学课件网络分析最短有向路方程给定有向网络),,(WANG,设P为G中的一条有向路P的权(或长):PaaWPW)()(问题:寻求有向网络中自某一指定点i到另一指定点j间的最短有向路定理6.5.1设有向网络G中不含非正有向回路,并且从点1到其余点都有有限长度的有向路,那么(6.5.2)有唯一有限解。njwuuukjkjkj,...,3,2},{min01(6.5.