图论基础(信息学奥赛)
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1.2 图的定义
• 相邻:如果图G的两个顶点Vi与Vj之间有边 相连,我们就说Vi与Vj是相邻的,否则就说 Vi与Vj是不相邻的。如果顶点V是边e的一个 端点,就说顶点V与边e是相邻的,e是从V 引出的边。 • 度数:从一个顶点V引出的边的条数,称为 V的度数,记作d(V)。
1.2 图的定义
• 下图中, d(V1)=d(V2)=d(V3)=d(V4)=d(V5)=51=4,d(Y3)=2等等。
3. 1求无向图的最小生成树
一、最小生成树的由来 • 设G=[V,E]是一个无向图,如果T=[V,E1]是由G的 全部顶点及一部分边组成的子图并且T是树(连通、 没有圈的图),则称T是G的一个生成树。一个连 通图G一般有许多种生成树。现在考虑一个连通 图G=[V,E],它的每一条边Ej,有一个长度L(Ej)>0。 这时对于G的任意一个生成树T,我们把属于T的 各条边的长度之和称为T的长度,记作L(T)。
1.2 图的定义
• K度正则图:把每个顶点的度数为常数K的 图叫做K度正则图。 • 经常使用下面两个符号:
1.2 图的பைடு நூலகம்义
• 从顶点度数问题的讨论中,引出一些有趣 的结论:
– 1. – 2.对于任意的图G,奇次顶点的个数一定是偶 数。
1.2 图的定义
• 例1、空间是否有这样的多面体存在, 它们有奇数个面,而每个面又有奇数 条边?
1.3 道路与回路
• 下图中e1,e2,e3,e4,e5,e6组成一条道路
1.3 道路与回路
• 轨道:在道路的定义中,并不要求V0至Vg, 互不相同。如果V0至Vg互不相同,这样的 道路称为轨道,记成P(V0,Vg) 。 • 回路:V0=Vg的路称为回路。 • 圈:V0=Vg的轨道叫做圈。 • K阶圈:长为K的圈叫做K阶圈。 • 显然,如果有一条从V到V'的道路上去掉若 干个回路,便可得到一条从V到V'的轨道。
2.1 求最短路
• 用一个集合表示左岸的所有可能情况。很 显然,可能出现的情况有16种:
• 剔除下述6种可能发生狼吃羊、羊吃白菜的 情况:
2.1 求最短路
• 构造一个图G,它的顶点就是剩下的10种情况。 G中的边是按下述原则来连的:如果经过一次渡河, 情况甲可以变成情况乙,那么就在情况甲与情况 乙之间连一条边。
二、求最短有向路的标号法 • 所谓标号,是指与图的每一个顶点对应的 一个数字。设:
– b(j):顶点Vj的标号,代表的是Vs到Vj的最短的 长度。Vj已标号则意味着Vs到Vj的最短路以及 这条路径的长度已经求出。显然初始时b(s)=0。 – l(i,j):弧(Vi,Vj)的非负长度。 – K(i,j):当前有向路加入弧(Vi ,Vj)后,Vs到Vj的 有向路长度。
1.2 图的定义
• 图:由若干个不同顶点与连接其中 某些顶点的边所组成的图形。 • 图的表示:通常用一个大写字母G 来表示图,用V来表示所有顶点的 集合,E表示所有边的集合,并且 记成G=(V,E)。
1.2 图的定义
• 子图:如果对图G=(V,E)与G'=(V',E'),G'的顶点集 是G的顶点集的一个子集(V'⊆V),G'的边集是G的 边集的一个子集(E'⊆E),我们说G'是G的子图
第二章 求最短路径的算法及应用
• • • • 2.1 求最短路 2.2 服务点设置间题1—求图的中心 2.3 服务点设置间题2—求图的P中心 2.4 服务点设置间题3—求图的中央点
2.1 求最短路
一、什么是最短路问题: • 1.求有向图(图中从一个顶点连到相邻 顶点的边有方向性)的最短路问题:
– 设G= (V ,A)是一个有向图,它的每一条 弧Ai都有一个非负的长度L(Ai),在G中指 定一个顶点Vs,要求把从Vs到G的每一个 顶点Vj的最短有向路找出来(或者指出不 存在从Vs到Vj的有向路,即Vs不可达Vj
1.2 图的定义
• 环:如果一条边,它的起点和终点相同,这样的 边称为环。 • 平行边:若连接两个顶点的边有多条,则这些边 称之为平行边。 • 孤立点:不与任何边关联的顶点称为孤立点。
1.2 图的定义
• 简单图:如果一个图没有环,并且每两个顶点之 间最多只有一条边,这样的图称之为简单图。在 简单图中,连接Vi与Vj的边可以记成(Vi,Vj) • 完全图:如果G是一个简单图,并且每两个顶点 之间都有一条边,我们就称G为完全图。通常将 具有n个顶点的完全图记为Kn。 • 二分图:如果G是一个简单图,它的顶点集合V是 由两个没有公共元素的子集X= {X1,X2,...,Xn}与Y= {Yl ,Y2, ...,Ym}组成的,并且Xi与Xj (1<i , j<n ) ,Ys 与Yt(1<s,t<m)之间没有边连接,则G叫做二分图。
2.1 求最短路
• 2.求无向图(图中连接两个顶点的边无 方向性)的最短路问题:
– 设G=(V,E)是一个无向图,它的每一条边 ei都有一个非负长度L(ei)。在G中指定一 个顶点Vs,要求把从Vs到G的每一个顶点 Vs的最短无向路找出来(或者指出不存在 从Vs到Vj的无向路,即Vs不可达Vj。
2.1 求最短路
1.3 道路与回路
• 显然,由于七桥问题对应的图中有4个奇顶 点,因而不能一笔画成,即一个旅行者要 既无重复也无遗漏地走过图中七座桥是不 可能的。 • 需要几笔呢????
1.4 树
• 树:没有圈的连通图称作树,通常用T表示。 T中d(V)=1的顶点叫做叶; • 森林:每个连通分支皆为树的图叫做森林。 • 平凡树:孤立的顶点叫做平凡树。 • 树的图论特征:如果树T的顶点数为N,那 么它的边数M= N-1;倒过来,一个具有N个 顶点、M=N-1条边的连通图G,一定是一棵 树。
– 分析:一个图,以人为顶点,两人握手时,则相 应的两个顶点之间连一条边,于是每人握手的 次数即相应顶点的度数。由结论2,奇次顶点 的个数总是偶数,所以握过奇次手的人数是奇 数的情况不可能出现。
1.3 道路与回路
• 道路:在图G中,一个由不同的边组成的序 列e1,e2...,eg,如果ei是连接Vi-1与 Vi(i=1,2,..,g)的,我们就称这个序列为从V0 到Vg的一条道路,数g称为路长,V0与Vg称 为这条道路的两个端点,Vi(1<=i<=g-1)叫 做道路的内点。如果G是简单图,这条道路 也可以记作(V0,V1,...,Vg)
3. 1求无向图的最小生成树
2.1 求最短路
• 标号法的算法流程如下:
2.1 求最短路
• 标号法通用于有向、无向图。
2.1 求最短路
• 实例:渡河问题。一个人带了一只狼、一 只羊和一裸白菜想要过河,河上有一只独 木船,每次除了人以外,只能带一样东西。 另外如果人不在旁时狼就要吃羊,羊就要 吃白菜。问应该怎样安排渡河,才能做到 既把所有东西都带过河,在河上来回的次 数又最少? • 分析:设变量M代表人,W代表狼,S代表 羊,V代表白菜,Φ代表空,什么都没有。 开始时设人和其它三样东西在河的左岸, 这种情况用MWSV表示。
1.1 引言
• 例2属于图的连通性问题。找出图中的割顶 集,就是问题的解。军事指挥中很多此类 问题。
1.1 引言
• 例3 飞行大队有若干个来自各地的驾驶员, 专门驾驶一种型号的飞机,这种飞机每架 有两个驾驶员。由于种种原因,例如相互 配合的间题,有些驾驶员不能在同一架飞 机上飞行,问如何搭配驾驶员,才能使出 航的飞机最多。
1.3 道路与回路
• 问: • (1)一个旅行者能否经过每座桥恰好一次, 既无重复也无遗漏? • (2)能否经过每座桥恰好一次,并且最后能 够回到原来出发点? • 七桥问题转换成图后,实际上就成了图的 一笔画问题:能否一笔画出这个图,每条 边既无遗漏,也无重复?能否一笔画出这 个图,并且最后回到出发点。 • 根据道路和回路的知识解答
1.4 树
• 《红楼梦》中荣国府的世系图就是一棵树:
1.4 树
• 树T具有以下性质:
– 1.在T中去掉一边后所得的图G是不连通的, – 2. T添加一条边后所得的图G一定有圈; – 3. T的每一对顶点V与V'之间有且仅有一条轨 道相连。
1.4 树
• 设G是一个连通图,如果G中有圈, 我们在这个圈中去掉一条边,得到 的G'还是连通的,如果G'仍然有圈, 再在圈中去掉一条边得连通图 G'',......,这样继续下去,最后得 到一个树T,T与G的顶点是相同的, 并且从T陆续添加一些边就得到G。 具有这样性质的树称为连通图G的 生成树。
1.3 道路与回路
• 有限图G是一条道路(即可以一笔画成)的充分必要条件是G 是连通的,且奇顶点的个数等于0或2,并且当且仅当奇顶 点的个数为0时,连通图G是一条回路(孤立点可以看作是 回路)。
1.3 道路与回路
• 七桥问题:一条河从城市穿过,河中有两个岛A与D,河 有七座桥,连接这两个岛及河的两岸B,C。如下图所示:
2.1 求最短路
• 作了图G以后,渡河的问题就归结为下述问题了: 在G中找一条连接顶点MWSV与Φ,并且包含边 数最少的路。如果设G中各边的长度都是1,那么 也可以把渡河间题归结为:“找一条连接MWSV与 Φ的最短路”。最终问题归结为求最短路径问题。
第三章 求最小生成树
• 3.1 求无向图的最小生成树 • 3.2 求有向图的最小树形图
1.2 图的定义
• 简单图、完全图、二分图
1.2 图的定义
• 完全二分图:如果在二分图G中,IXI=N, IYI=M,每一个Xi∈X与每一个Yj∈Y有一条 边相连,则G叫做完全二分图
1.2 图的定义
• 如果G是一个N个顶点的简单图,从完全图 Kn中把属于G的边全部去掉后,得到的图称 为G的补图,通常记为G。 • 一个图的补图的补图就是自身。
1.1 引言
• 例3 用V1 ,V2,...,V10代表这10个驾驶员。如果两个 人可以同机飞行,就在代表他们两个之间连一条 线;两个人不能同机飞行,就不连。例如V1和V2可 以同机飞行,而V1和V 3就不行。
1.1 引言
• 例3此类问题属于图的最大匹配问题
• 将实际生活中的事物分析转化为图论问题 的实例还很多...
– 分析:根据题意,可以构造一个图,以面 为顶点,当且仅当两个面有公共棱时, 则在G的相应两顶点间连一条边,得到图 G。依题意,图的顶点个数是奇数,而且 每个顶点的度数d(V)是奇数,从而 也是奇数,与结论1相违,故这种多面体 不存在。
1.2 图的定义
• 例2、晚会上大家握手联欢,问是否会出现 握过奇次手的人是奇数的情况?
1.3 道路与回路
• U,V两顶点的距离:U,V间最短轨道的长度, 记作为D(U,V)。 • 连通图:若U与Y之间存在道路,则称U与V 相连通。图G中任意两个顶点皆连通时,称 G为连通图。
1.3 道路与回路
• 如果图G是一条从V0到Vg的道路,那么该条 道路上的每一个内点Vi(1<=i<=g-1)都是度 数为偶数的顶点。因为对Vi来说,有一条进 入Vi的边,就有一条从Vi引出的边,而且进 出的边不能重复已走过的边,所以与Vi相邻 的边总是成双的。故图G至多有两个奇顶点, 即V0与Vg。如果G是一条回路,那么根据上 面推理,V0与Vg 的度数也是偶数。由此, 我们可以引出下面一个结论:
1.1 引言
• 例1实际上,就是图论中的求最短路径问题。 在现实中有很多此类问题,所以图论中求 最短路径算法是一个非常经典和重要的算 法。
1.1 引言
• 例2 下图是一个公路网,V1 ,V2,...,V10看成 公路网的一个站点,若这个公路网目前被 敌方占领。请分析一下,最少需要破坏其 公路网的几个站点,就可摧毁敌方整个运 输线
图论及其算法
吴闻
第一章 基本概念
• • • • 1.1 引言 1.2 图的定义 1.3 道路和回路 1.4 树
1.1 引言
• 图论是一个应用十分广泛而又极其有趣的 数学分支。物理、化学、生物、科学管理、 计算机等各个领域都可找到图论的足迹。 • 介绍几个图论有关的简单例子
1.1 引言
• 例1 下图是一个公路网,V1 ,V2,...,V10是一 些城镇,每条线旁边的数字代表这一段公 路的长度。现在问,要从V1把货物运到V10, 走哪条路最近?