第7章 图论 -5二部图、平面图
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2)在G中求最大匹配 把 M 可 扩 路 a2b2a5b3 中 的 边 (a5,b2) 从 M 中 去 掉 , 而 把 (a2,b2)和(a5,b3)添加到M中得到 新 的 匹 配 M′=(a3,b1), (a2,b2), (a5,b3),如右图所示。
第9章 图论
对匹配M′= (a3,b1), (a2,b2), (a5,b3) 再用标记法: 用(*)标记V1中所有M′的非饱和点a1和 a4。 ①选V1的新标记过的结点a1,用(a1)标记不通过M′的边与 a1邻接且尚未标记过的V2的所有结点b1;再用(a4)标记b2。 ②选V2的新标记过的结点b1,用(b1)标记通过M′的边与b1 邻接且尚未标记过的V1的所有结点a3;再用(b2)标记a2。 ③选 V1 的新标记过的结点 a2 和 a3 , V2 中已无可标记的结 点。 图中已不存在可扩路,所以M′就是最大匹配。
第9章 图论
由上述讨论可见:利用可扩路可以增加匹配所含的边数。 不断地寻求G的可扩路,直到再也找不到新的可扩路,就可得 到一个最大匹配。将这个结论写成下列的定理。 定理 7.5.2 设 G=V1,V2,E是二部图, M为G的最大匹配的充分 必要条件是G中不存在M可扩路。 证明:设M为G的最大匹配,下证G中不存在M可扩路。 如果G中存在一条M可扩路,则可以得到比M的边数多1的 匹配,所以M 不是最大匹配,矛盾。所以G 中不存在M 可扩路。 设G中不存在M可扩路,下证M为G的最大匹配。 设M1是最大匹配,证明|M|=|M1|。 考察属于M而不属于M1和属于M1而不属于M中的边,由这 些边连同它们的端点一起构成G的子图H。
第9章 图论
7.5 二部图和平面图
• 7.5.1 二部图(Bipartite graph)及匹配(Matching) – 二部图的充要条件 – 二部图的匹配 • 7.5.2 平面图(Plane graph)
第9章 图论
7.5.1 二部图及匹配 二部图(亦称偶图)
定义7.5.1 (二部图)G=V,E是无向图,V1V,V2V,满足: ① V1∪V2= V,V1∩V2=。 ② G中每一条边的两端点,一个属于V1,另一个属于V2。 则称G为二部图或偶图,常记为G=V1,V2,E,V1和V2称为G的互 补的结点子集。 二部图的每一条边的两个端点位于两个互补的结点子集,所 以没有自回路。二部图是无自回路图。 定义7.5.2 (完全二部图)设G=V1,V2,E是二部图,|V1|=r, |V2|=s, 若V1的每个结点和V2的所有结点邻接, 则称G为完全二部图或完全 偶图,常记为Kr,s。
第9章 图论
二部图中最大匹配的求解
有了上面的准备以后,就可以进一步讨论如何在二部图中求最 大匹配的问题。 设G=V1,V2,E是二部图,通常先作G的一个匹配M,再看V1中有 没有M的非饱和点。如果没有,那么M肯定是最大匹配;如果有,就 从这些点出发找M可扩路。由M可扩路作出一个更大的匹配。所以, 在G中求最大匹配的关键是寻找M可扩路,可分如下两个阶段完成: 1)寻找可扩路。一个有效方法是标记法,其基本思想如下: 设G=V1,V2,E是二部图,在 G中作一个匹配 M,用(*)标记 V1 中 所有M的非饱和点,然后交替地进行以下①和②两步: ①选一个V1的新标记过的结点,比如说ai,用(ai)标记不通过M中 的边与ai邻接且尚未标记过的V2的所有结点。对V1所有新标记过的结 点重复这一过程。 ②选一个V2的新标记过的结点,比如说bi,用(bi)标记通过M中的 边与bi邻接且尚未标记过的V1的所有结点。对V2所有新标记过的结点 重复这一过程。 直至标记到一个V2中的M的非饱和点。从该结点倒向追踪到标记 有(*)的结点,就得到了一个M可扩路。
第9章 图论
2)在G中求最大匹配 把边 (a2,b2) 从 M 中去掉,而把 (a1,b2) 和 (a2,b4) 添加到 M 中, 得到新的匹配M′=(a1,b2),(a2,b4),(a3,b3), (a5,b5),如下图所示。 对于匹配M′= (a1,b2),(a2,b4),(a3,b3), (a5,b5)重复上述过程, 已找不到M′可扩路。所以M′就是最大匹配。
第9章 图论
实例
a b f e d
a
e
b c
d
非二部图 b
a g
c
d
c 二部图 V1={a,b,c}, V2={d,e} c b
二部图 V1={a,c,e}, V2={b,d,f}
a
f e
d
f e 二部图 V1={a,c,e},V2={b,d,f,g}
二部图 V1={a,c,e}, V2={b,d,f}
第9章 图论
2)在G中求最大匹配 将第一阶段寻找到的M可扩路中所有属于M的边从M中去掉, 而把M可扩路中所有不属于M的边添加到M中,得到一个新的匹 配M′且其所含边数比匹配M所含的边数多1。 对M′重复上述过程,„„,直到G中已不存在可扩路,此时 的匹配就是最大匹配。
【例7.5.1】右下图是一个二部图,求其最大匹配。
第9章 图论
设G=V1,V2,E是二部图,M 是G的一个匹配,P是G中的一 条M可扩路。把P中所有属于M的边从M中去掉,而把P中所有不 属于 M 的边添加到 M中,得到一个新的边集 M′ ,则 M′也是一个 匹配,其所含边数比匹配M所含的边数多1。 例如,在上页实例图中,把M可扩路L3:b1a3b5a4中属于M的 边(a3,b5) 从M中去掉,而把L3中不属于M的边(a3,b1)和(a4,b5) 添加 到M中,得到一个新的边集: M′=(a1,b2),(a2,b3),(a3,b1), (a4,b5), 显然M′也是匹配且M′的边数比M的边数多l,即|M′|=|M|+1。 如下图所示。
解:1)采用标记法寻找可扩路。 取该二部图的一个匹配: M= (a3,b1), (a5,b2) 用(*)标记V1中所有M的非饱 和点a1, a2, a4。 采用下述过程进行标记:
第9章 图论
①选V1的新标记过的结点a1,用(a1)标记不通过M的边与a1邻 接且尚未标记过的V2的结点b1;类似地用(a2)标记b2。 ②选V2的新标记过的结点b1,用(b1)标记通过 M的边与b1邻接 且尚未标记过的V1的结点a3;类似地用(b2)标记a5。 ③选V1的新标记过的结点a3,因为不存在不通过M的边与a3邻 接的V2的结点,所以不用(a3)标记V2的结点;用(a5)标记b3或 b4, 假定用(a5)标记b3。如上页图中所示。 b3是M的非饱和点,标记结束。 从 b3 倒 向 追踪 到 标 记 有 (*) 的 结 点, 就 得 到 了 M 可 扩 路 : a4b2a5b3或a2b2a5b3,取后者。
第9章 图论
在子图H中,任一结点至多与M中的一条边关联且与M1中 一条边关联。因而任一结点的度数是1或2。故H的连通分支是 一条路,或者是一个回路。 如果 H的连通分支是一条路 P,则它是 M 交替路,也是 M1 交替路。如果P的两个端点均与M中的边关联,则P是M1可扩路。 由假设知, M1 是最大匹配,所以,不存在 M1 可扩路,得到矛 盾。如果P的两个端点均与M1的边关联,那么P是一条M可扩路 与题设矛盾。故 P 只能是一个端点与 M 中的边关联,另一个端 点与M1中的边关联,这样P中属于M的边数与属于M1的边数相 等。 如果 H的连通分支是一个回路,回路中的边交替地属于 M 和M1,因而属于M的边数与属于M1的边数相等。 从上面可以看到,H中属于M的边与属于M1的边的数目相 等。再加上既属于M又属于M1的边,可以得出:M中的边数与 M1中的边数相等。所以,M是最大匹配。
第9章 图论
【例7.5.2】右下图是一个二部图,求其最大匹配。 解: 1) 用标记法寻找可扩路。 取该二部图的一个匹配 M=(a2,b2), (a3,b3), (a5,b5)。 用 (*) 标记 V1中所有 M 的非饱 和点a1, a4。 采用下述过程进行标记: ①选 V1 的新标记过的结点 a1 , 用(a1)标记b2和b3。 ②选V2的新标记过的结点b2和b3,用(b2)标记a2,用(b3)标记a3。 ③选V1的新标记过的结点a2,用(a2)标记b1, b4和b5。 由于b1和b4都是M的非饱和点,说明找到了M可扩路。它 们是:a1b2a2b4和a1b2a2b1,选前者。
二部图
完全二部图K2,3
完全二部图K3,3
第9章 图论
二部图的判别定理
定理7.5.1 设G=V,E是无向图,G为二部图的充分必要条件是 G的所有回路的长均为偶数(即G中无奇长度的回路)。 证明:必要性 设G是二部图,下证G的所有回路的长均为偶数。
设G是二部图,则V可以分成两个互补的结点子集 V1和V2,每一 个边的两个端点分别在V1和V2中,令 C:v0v1v2„vl-1v0 是G中任一长度为l的回路。不失一般性,设v0V1,则v1V2,v2V1, 则 v3V2 ,„„。由此可知, v2iV1 ,v2i + 1V2 。又因为 v0V1 ,所以 vl-1V2,l-1是奇数,l是偶数。 充分性 设G的所有回路的长均为偶数,下证G是二部图。 不妨设G是连通图,否则可对每一个连通分支进行讨论。v0V, 定义V的两个子集V1和V2为: V1=v | vV∧d(v0,v)为偶数 V2=v | vV∧d(v0,v)为奇数 因为G是连通图,任何结点与 v0 之间都有路,d(v0,v)不是偶数就 是奇数,所以V1∪V2=V,V1∩V2=。
非二部图
第9章 图论
匹配(对集)
定义7.5.3 (匹配) 设G=V1,V2,E是二部图,M是G中一些边 组成的集合,如果M中任意两条边都没有公共端点,则称M 为 G 的一个匹配或对集。设 v 是 G的结点,如果 v 是 M 中某条 边的端点,则称v为M的饱和点。否则,称v为M的非饱和点。 实例:下图中,边集M=(a1,b2), (a2,b3), (a4,b1)是一个匹配, a1, a2, a4和b1,b2,b3为M的饱和点。结点a3为M的非饱和点。
第9章 图论
最大匹配(最大对集)
在上页实例的图中,如果用 a1,a2,a3,a4 表示 4 位教师, b1,b2,b3 表示三门待开的课程。当某位教师能开某门课程时,则把它们的 对应结点用边连接起来。如果规定一个教师只能担任一门课程, 那么匹配M 就表示了一种排课方案。为了使排课方案能最大限度 地作到“各尽其能”,下面将引进最大匹配的概念。 定义7.5.4 设G=V1,V2,E是二部图,M是G的一个匹配,如果对G 的任意匹配M′,都有|M′|≤|M|,则称M为G的最大匹配或最大对集。 为寻求二部图的最大匹配,以下引进交替路和可扩路两个概念。 定义7.5.5 设G=V1,V2,E是二部图,M是G的匹配,P是G中的一 条路,如果P是由G中属于M的边和不属于M的边交替组成,则称 P为G的M交替路。如果交替路的始点和终点都是 M的非饱和点, 则称为G的M可扩路。
Baidu Nhomakorabea
第9章 图论
下面证明V1中任意两个结点不邻接,V2中任意两个结点也不邻接。 若存在viV1,vjV1,vi 和vj邻接,由于d(v0,vi)为偶数,v0到vi 有一条长为偶数的路。同样的道理,v0到vj也有一条长为偶数的路。 这两条路和边(vi,vj)构成一条回路,其长度为奇数。与条件矛盾。 所以 V1 中任意两个结点不邻接。类似的可证, V2 中任意两个结点 也不邻接。于是G为二部图。 根据此定理,下图中的(a)和(b)两个图是二部图。这比用定义 判断要方便得多。画二部图时,习惯将互补的结点子集V1和V2分 开画,画成类似左下图的形式。下图中的(a),(b)两个二部图,一 定可以改画为互补的结点子集V1和V2分开的形式(请大家自己尝 试画画)。
第9章 图论
实例:在下图中,匹配M=(a1,b2), (a2,b3), (a3,b5), 路 L1:a1b2a2b3a3, L2:a2b3a3b5a4, L3:b1a3b5a4, L4:b1a1b2a2b3a3b5a4 都是M交替路,其中后两条交替路L3和L4的始点和终点都 是M的非饱和点,所以这两条路是M可扩路。