图论基本概念

几种常见的图的分类:

类型 允许多重边 允许环
简单图 无向   否  否
多重图 无向   是  否
伪图 无向   是  是
有向图 有向   否    是
有向多重图 有向   是  是

完全图:n个顶点上的完全图是在每对不同顶点之间都恰有一条边的简单图。

二分图:若把简单图G的顶点集合分为两个不相交的非空集合V1和V2,使得图里的每一条边都连接着V1里的一个顶点和V2里的一个顶点(因此G里面没有边是连接着V1里的两个顶点或V2里的两个顶点),则G称为二分图(从定义中可以看出,二分图必无环,但可以有多重边)。

  用标号法可以方便地判断一个图是否是二分图:

  首先给任意一个顶点标上A,与标记A的顶点邻接的顶点标上B,再将标记为B的顶点邻接的顶点标记上A,续行此法,如果这个过程可以完成,使得没有相邻的顶点标上相同的字母,则该图是二分图,否则它就不是二分图。

  另:如果标记成功,可以将两个顶点子集X与Y中的顶点分开画,与原图形形成一个同构图,这样可以直接地看出它是一个二分图。

完全二分图:设G是一个二分图,若G是一个简单图,并且X中的每个顶点与Y中的每个顶点均邻接,则称G为完全二分图。

  易知,完全二分图中共有|X|·|Y|条边。



图的表示和图的同构:

常见的图的表示方式:边表、相邻矩阵(简单图的相邻矩阵是对称的0-1矩阵,当出现环或多重边时,矩阵对称但不是0-1矩阵,此时第(i, j)项是与{vi, vj}关联的边数。另外,有向图的相邻矩阵不必是对称的)、关联矩阵(顶点与边的n*m矩阵,用相等项的列来表示多重边,恰有一项等于1的列来表示环)。

同构:当两个简单图同构时,两个图的顶点之间具有保持相邻关系的一一对应(注意:同构的图是等价的图,只是画的方式不同而已)。

  容易看出,两图同构的必要条件有:顶点数相等、边数相等、度数相同的顶点数相等(总的顶点度更得相等)。遗憾的是,目前尚没有用来判定简单图是否同构的不变量集。



连通性:

通路:在无向图里从顶点u到v的路径。

回路:若一条通路在相同的顶点上开始和结束,则它是一条回路。

简单通路(回路):若一条通路(或回路)不重复地包含相同的边,则它是简单的。

无向图连通性:若无向图里每一对不同的顶点之间都有通路,则该图称为连通的。

有向图连通性:根据是否考虑边的方向:有向图里由两种连通性概念。

  强连通:每当a和b都是一个有向图里的顶点时,就有从a到b和从b到a的通路。

  弱连通:在有向图的底图(底图:有向图忽略边的方向后得出的无向图)里,任何两个顶点之间都有通路。

    显然,任何强连通的有向图也是弱连通的。

连通分支:不连通的图是两个或两个以上连通子图之并,每一对子图都没有公共顶点,这些不相交的连通子图称为图的连通分支。

由连通性引发的几个概念:

  割点:如果删除一个顶点和它所关联的边,该图的连通分支增加,这样的顶点就叫做割点。

  割边:把一旦删除就产生比原图更多的连通分支的子图的边称为割边(或桥)。



欧拉通路与哈密顿通路:

欧拉通路(或回路):包含着图G的每一条边的简单通路(或回路)。

  定理:连通多重图具有欧拉回路当且仅当它的每个顶点都有偶数度。

  定理:连通多重图具有欧拉通路而无欧拉回路,当且仅当它恰有两个奇数度顶点。

  上述两个定理的证明见这里

哈密顿通路与哈密顿回路:包含图的每一个顶点恰好一次的简单通路和回路(相对而言:欧拉通路和欧拉回路包含多重图每一条边恰好一次)。

时间: 2024-12-15 01:32:26

图论基本概念的相关文章

图论基础概念

原文地址: http://blog.csdn.net/minenki/article/details/8606515 1  图(graph).顶点(vertices).边(edges) 图由顶点和边组成,是表示物件与物件(objects)之间的关系的方法.在其他的术语中,图也被称作网络(network),顶点被称作结点(nodes),边被称作链接(links). 图的数学表示:,其中V是顶点集: ; E是边集: 2 顶点相邻(adjacent) 两个顶点被一条边相连,就说这两个顶点是相邻的(换句

算法系列(十三)图论基本概念和拓扑排序

图的定义 一个图G=(V,E),由定点的集合V,和边的集合E组成.每一条边都是一副点对(v,w),边也称作弧,边上可以有权值.如果点对是有序的,那么图就是有向的. 图中的一条路径是一个顶点序列w1,w2,w3......wN,如果图中包含一条从顶点到自身的边,那么这个路径就是环. 有向无环图也成为DAG 如果在一个无向图中每个顶点到其它顶点都存在路径,则称这个无向图是连通的.具有这样性质的有向图被称为是强连通的.如果一个有向图不是强连通的,但是去掉方向后的基础图是连通的,那么该有向图称为是弱连通

关于图论的若干巴拉巴拉

最近课堂上正在讲图论 先安利MIT课程:http://open.163.com/special/opencourse/algorithms.html 因为本人对图论的概念并不是很清楚,所以还是整理一下吧. 1.图论的基本概念 几种常见的图的分类: 类型 边 允许多重边 允许环 简单图 无向 否 否 多重图 无向 是 否 伪图 无向 是 是 有向图 有向 否 是 有向多重图 有向 是 是 完全图:n个顶点上的完全图是在每对不同顶点之间都恰有一条边的简单图. 二分图:若把简单图G的顶点集合分为两个不

Java虚拟机详解——JVM常见问题总结

[正文] 声明:本文只是做一个总结,有关jvm的详细知识可以参考之前的系列文章,尤其是那篇:Java虚拟机详解04--GC算法和种类.那篇文章和本文是面试时的重点. 面试必问关键词:JVM垃圾回收.类加载机制. 先把本文的目录画一个思维导图:(图的源文件在本文末尾) 一.Java引用的四种状态: 强引用:  用的最广.我们平时写代码时,new一个Object存放在堆内存,然后用一个引用指向它,这就是强引用. * 如果一个对象具有强引用,那垃圾回收器绝不会回收它*.当内存空间不足,Java虚拟机宁

【ACM算法纲要】【转自ALPC】

基本 C/C++.STL(vector.set.map.queue.string.algorithm) 枚举.贪心.递归.分治.递推.模拟 构造.位运算.常数优化 数据结构 队列.堆.栈.链表 排序(插入.冒泡.快速.归并.堆.桶.基数) 二分查找.散列表.并查集.哈夫曼树 排序二叉树.左偏树.平衡树(Splay/Treap/SBT) 树状数组.线段树.归并树.划分树.主席树.树套树 树链剖分.动态树 1/2维RMQ.LCA(在线/离线).稀疏表.字典树 字符串 KMP.扩展KMP AC自动机

算法纲要

基本 枚举.贪心.递归.分治.递推.模拟 STL(pair.vector.set.map.queue.string.algorithm) 构造.位运算.常数优化 数据结构 队列.堆.栈.链表 排序(插入.冒泡.快速.归并.堆.桶.基数) 二分查找.散列表 并查集.哈夫曼树 排序二叉树.左偏树.平衡树(Splay/Treap/SBT) 树状数组.线段树.归并树.划分树.主席树.树套树 树链剖分.动态树 1/2维RMQ.LCA(在线/离线).稀疏表.字典树 字符串 KMP.扩展KMP AC自动机 后

Java虚拟机详解-JVM常见问题总结

[正文] 声明:本文只是做一个总结,有关jvm的详细知识可以参考本人之前的系列文章,尤其是那篇:Java虚拟机详解04----GC算法和种类.那篇文章和本文是面试时的重点. 面试必问关键词:JVM垃圾回收.类加载机制. 先把本文的目录画一个思维导图:(图的源文件在本文末尾) 一.Java引用的四种状态: 强引用: 用的最广.我们平时写代码时,new一个Object存放在堆内存,然后用一个引用指向它,这就是强引用. 如果一个对象具有强引用,那垃圾回收器绝不会回收它.当内存空间不足,Java虚拟机宁

Java虚拟机详解----GC算法和种类

本文主要内容: GC的概念 GC算法  引用计数法(无法解决循环引用的问题,不被java采纳) 根搜索算法 现代虚拟机中的垃圾搜集算法: 标记-清除 复制算法(新生代) 标记-压缩(老年代) 分代收集 可触及性 Stop-The-World 一.GC的概念: GC:Garbage Collection 垃圾收集 1960年 Lisp使用了GC Java中,GC的对象是Java堆和方法区(即永久区) 我们接下来对上面的三句话进行一一的解释: (1)GC:Garbage Collection 垃圾收

·算法」 纲要

基本 C/C++.STL(vector.set.map.queue.string.algorithm) 枚举.贪心.递归.分治.递推.模拟 构造.位运算.常数优化 数据结构 队列.堆.栈.链表 排序(插入.冒泡.快速.归并.堆.桶.基数) 二分查找.散列表.并查集.哈夫曼树 排序二叉树.左偏树.平衡树(Splay/Treap/SBT) 树状数组.线段树.归并树.划分树.主席树.树套树 树链剖分.动态树 1/2维RMQ.LCA(在线/离线).稀疏表.字典树 字符串 KMP.扩展KMP AC自动机