图论
程勇uestc
电子科大
展开
-
用networkx求图的所有团
\quadpython的networkx库提供了networkx.find_cliques(G)和network.find_cliques_recursive(G)两种方法来求解图的团问题。简单的调用如下:import networkx as nxG = nx.Graph()edges = [(1, 2), (2, 3), (1, 3), (3, 4), (3, 'a')]G.add_e...原创 2019-12-07 10:47:52 · 2863 阅读 · 0 评论 -
图论(十三)——平面图和对偶图
一、平面图概念\quad如果能把图G画在平面上,使得除顶点外,边与边之间没有交叉,称G可以嵌入平面,或称G是可平面图。可平面图G的边不交叉的一种画法,称为G的一种平面嵌入,G的平面嵌入表示的图称为平面图。\quad简单平面图G=(n,m)G=(n,m)G=(n,m)满足m≤3n−6m \le 3n-6m≤3n−6,也满足δ≤5\delta \le 5δ≤5...原创 2019-04-22 18:41:04 · 16871 阅读 · 0 评论 -
图论(十四)——图的着色
考试要求求图的边色数和点色数(结构分析法)色多项式(以前考现在了解)应用题:画图,问题转换一、图的边着色\quad边色数:给图边上色,使得相邻边颜色不同所需要的颜色最少种数。记为χ′(G)χ'(G)χ′(G)\quad对图的正常边着色,实际上是对G的边集合的一种划分,使得每个划分块是G的一个边独立集(无环时是匹配);图的边色数对应的是图的最小独立集划分数。因此,图...原创 2019-05-15 17:13:23 · 11604 阅读 · 2 评论 -
图论——根树
一、根树概念\quad一棵非平凡的有向树T,如果恰有一个顶点的入度为0,而其余所有顶点的入度为1,这样的的有向树称为根树。其中入度为0的点称为树根,出度为0的点称为树叶,入度为1,出度大于1的点称为内点。又将内点和树根统称为分支点。\quad对于根树T,若每个分支点至多m个儿子,称该根树为m元根树;若每个分支点恰有m个儿子,称它为完全m元树。二、重要定理和性质1、在完全m元树T中,若树叶数...原创 2019-05-24 17:33:59 · 12539 阅读 · 0 评论 -
图论(十五)——有向图的概念和算法
考试要求:有向图的相关概念和结论强连通分支和单项连通分支的求法一、有向图概念和性质概念:边有方向的图称为有向图出度:以点v为始点的边的条数称为点v的出度,一个自环算一度入度:以点v为终点的边的条数称为点v的入度,一个自环算一度一个简单图有2m(G)2^{m(G)}2m(G)个定向图。∑d+(v)=∑d−(v)=m(G)\sum d^+(v)=\sum d^-(v)=m(G)...原创 2019-05-17 00:27:12 · 11937 阅读 · 0 评论 -
图论——图代数问题
一、图的邻接矩阵定义:设G为n阶图,V=v1,v2,…,vnV={v_1, v_2, …, v_n}V=v1,v2,…,vn,邻接矩阵A(G)=(aij)A(G)=(a_{ij})A(G)=(aij),其中aij={l,vi和vj间边数0,vi和vj不邻接 a_{ij}=\left\{\begin{aligned}&l ,v_i和v_j间边数 \\&...原创 2019-05-23 19:07:36 · 1862 阅读 · 0 评论 -
ggg
一、填空题1、生成树计数\quad设D(G)D(G)D(G)为图的度对角矩阵,A(G)A(G)A(G)为图的领接矩阵,则C=D(G)−A(G)C=D(G)-A(G)C=D(G)−A(G)的任意一个余子式的值即为图GGG的生成树个数。CCC也成为拉式矩阵。举个例子:\quad则上图生成树个数为3。\quad完全图knk_nkn的生成树个数为nn−2n^{n-2}nn−2。\quad若...原创 2020-07-09 15:26:46 · 1517 阅读 · 0 评论 -
图论——极图和托兰定理
一、lll部图的概念与特征lll部图定义:完全lll部图定义:如果在一个lll部图G中,任意部ViV_iVi中的每个顶点同G中其它各部中的每个顶点均邻接,称G为完全lll部图。记作: G=Kn1,n2,⋯ ,nl(ni=∣Vi∣,1≤i≤l)G=K_{n_1, n_2,\cdots, n_l}(n_i = |V_i|, 1 \le i \le l)G=Kn1...原创 2019-05-23 21:47:30 · 9467 阅读 · 2 评论 -
图论——因子分解
因子分解相关概念1、因子分解是图分解的一种方法2、图G的因子GiG_iGi,指至少包含G的一条边的生成子图(生成子图:包含原图所有顶点,边不管,若边数为m,则不同的生成子图有2m2^m2m个,不同的生成子图≠不同构)3、图G的因子分解:指将G分解为若干边不重的因子之并4、图G的n因子:指G的n度正则因子5、若图G可以分解为若干n因子之并,称G是可n因子分解的一、图的一因子分解\...原创 2019-05-28 14:29:32 · 16105 阅读 · 1 评论 -
图论(十二)——偶图的匹配问题
一、图的匹配与贝尔热问题\quad图匹配概念:如果M是图G的边子集(不含环),且M中的任意两条边没有共同顶点,则称M是G的一个匹配或对集或边独立集。如下图所示:\quad若顶点是M中某条边的顶点,则称它为M饱和点,否则为M非饱和点。\quad最大匹配 M— 如果M是图G的包含边数最多的匹配,称M是G的一个最大匹配。特别是,若最大匹配饱和了G的所有顶点,称它为G的一个完美匹配。一个图一定存在...原创 2019-04-03 10:00:23 · 11005 阅读 · 0 评论 -
图论(十)——欧拉图和哈密尔顿图
一、哈密尔顿图概念\quad如果经过图G的每个顶点恰好一次后能够回到出发点,称这样的图为哈密尔顿图,简称H图。所经过的闭途径是G的一个生成圈,称为G的哈密尔顿圈。(欧拉图是经过每条边再回去)\quad如果存在经过G的每个顶点恰好一次的路,称该路为G的哈密尔顿路,简称H路。\quad上图不是哈密尔顿图。因为在G中,边uv是割边,所以它不在G的任意圈上,于是u与v不能在G的同一个圈上。故G不存...原创 2019-03-27 10:01:43 · 30355 阅读 · 2 评论 -
图论(十一)——度极大哈密尔顿图和TSP问题
一、度极大哈密尔顿图\quad概念:图G称为度极大非H图,如果它的度不弱于其它非H图。1、Cm,nC_{m,n}Cm,n图\quad对于1≤m≤n21 \le m \le \frac{n}{2}1≤m≤2n,Cm,nC_{m,n}Cm,n图定义为Cm,n=KmV(K‾m+Kn−2m)C_{m,n}=K_m V (\overline{K}_m+K_{n-2m})Cm,n=KmV(Km...原创 2019-03-29 15:09:36 · 4278 阅读 · 0 评论 -
图论(一) 图的基本概念
一、完全图、偶图与补图完全图:每两个顶点间都有一条边的简单图n个顶点的完全图即为KnK_nKn,称为n阶完全图完全图边数m(Kn)=n(n−1)2m(K_n)=\frac{n(n-1)}{2}m(Kn)=2n(n−1)偶图:也叫二分图,二部图。具有二分类(X,Y)的偶图,它的点集可以分解为两个非空子集X和Y,使得每一条边的一个端点在X中,另一个端点在Y中记为G=(X, Y)...原创 2019-02-27 09:45:04 · 7148 阅读 · 2 评论 -
图论(四)最短路算法Dantjig的实现
1、建图const int maxNum = 0x3f3f3f3f; // 定义一个足够大的数,代表图中两顶点间无边class graph{private: int V;public: vector<vector<int> > g; graph(int V) { this->V =原创 2019-03-07 17:51:16 · 2941 阅读 · 0 评论 -
图论(七)——最小生成树及其实现
一、最小生成树概念\quad在连通边赋权图G中求一棵总权值最小的生成树。该生成树称为最小生成树或最小代价树。常见的方法有kruscal和prim算法,我国数学家也提出过破圈法,但实现起来稍微复杂,时间复杂度较高。这里我们实现kruscal和prim。二、kruscal算法的实现\quad将边按权值从小到大进行排序;依次遍历排好序的边,若加入某条边后不形成回路,则将该边加入最小生成树边集合,若...原创 2019-03-21 10:46:54 · 2187 阅读 · 0 评论 -
图论(八)——割边割点和块
一、割边(桥)\quad桥,顾名思义,连接两块区域的中介,桥断了,那么这两块区域便不能相互流通了。说明在一张图中,能称之为桥的边是连通图中这样一条边,如果这条边断开了,那么图便不连通。如下图所示,红色的边即为割边(桥),这些边断开了整张图便不连通。\quad如何寻找这样一条边呢?直观来看,我们可以依次遍历图中每一条边,判断断开该边后该图是否连通(判断图是否连通可以从图中任一顶点开始进行DFS...原创 2019-03-21 11:42:46 · 8567 阅读 · 0 评论 -
图论(五)——以图的眼光看树&&编程求解图半径直径中心点
一、树的概念和性质首先借助图来阐述几个概念:树:不含圈的连通图。森林:不含圈的图。树叶:度为1的顶点。\quad由定义可知,树和森林都是简单图,且都是偶图。树有许多特有的性质,接下来我们一一揭晓。1、每棵非平凡树至少有两片树叶\quad首先我们要知道什么是平凡树呢?平凡树即平凡图,即只有一个顶点的图。且看证明:\quad设P=v1v2…vkP=v_1v_2…v_kP=v1v2...原创 2019-03-13 08:31:45 · 5601 阅读 · 1 评论 -
图论(六)——生成树数量计算&&矩阵树定理求解生成树个数
1、生成树的概念和性质\quad定义:图G的一个生成子图T如果是树,称它为G的一棵生成树;若T为森林,称它为G的一个生成森林。(生成子图:包含原图所有顶点,边不管)生成树不唯一生成树的边称为树枝,G中非生成树的边称为弦1、每个连通图至少包含一棵生成树\quad证明:如果连通图G是树,则其本身是一棵生成树;若连通图G中有圈C,则去掉C中一条边后得到的图仍然是连通的,这样不断去掉G中圈,...原创 2019-03-13 10:12:17 · 16653 阅读 · 1 评论 -
图论(九)——图连通度
1、点连通度和边连通度\quad一张连通图G最少删除多少个顶点后使得G不连通,设删除顶点数为m,则称图G的点连通度为K(G)=mK(G)=mK(G)=m。删除顶点集V′V'V′后G−V′G-V'G−V′不连通,则V′V'V′为G的顶点割集,点数最少的顶点割集为最小顶点割,其顶点个数即为刚刚所说的点连通度。\quad在G中,若存在顶点割,称G...原创 2019-03-21 20:14:18 · 11707 阅读 · 0 评论 -
图论(三)——编程实现图连通分量个数求解
\quad求图连通分量个数方法很多,这里主要讨论两种方法,一种是通过dfs、bfs等遍历手段求得,一种是并查集。一、利用dfs求图连通分量\quad算法流程:初始化连通分量个数为ccount=0;从图中任一顶点开始进行dfs,通过该顶点遍历到的所有顶点属于同一连通分量,这些遍历到的顶点做好标记,表示已经被访问。ccount+=1;从未访问过的顶点中取出一个顶点重复第二步,遍历完后cco...原创 2019-03-13 20:11:17 · 8153 阅读 · 1 评论 -
图论(二)——子图和图运算
一、子图点导出子图边到处子图简单图的生成子图(包含原图所有顶点,边不管,若边数为m,则不同的生成子图有2m2^m2m个,不同的生成子图≠不同构)二、图运算删点运算:若V′∈V(G)V'∈V(G)V′∈V(G),删除V′V'V′和与其连接的边,记为G−V′G-V'G−V′删边运算:若E′∈V(E)E&a原创 2019-03-01 10:03:33 · 8857 阅读 · 0 评论