CDQ大神的讲稿:弦图与区间图-陈丹琦
图
设有图 G(V,E)
基本概念
子图
G′(V′E′) 是图 G(V,E) 的子图当且仅当 V′∈V,E′∈E
诱导子图
G′(V′E′) 是图 G(V,E) 的子图当且仅当 V′∈V,E′={∀u∈V′,v∈V′(u,v)∈E′}
团
G′(V′E′) 是图 G(V,E) 的子图,且 G′(V′E′) 是关于 V′ 的完全图
极大团
G′(V′E′) 是团,且不是其他团的子集。
最大团
G′(V′E′) 是极大团,且点数最多。特别地,记图G最大团的点集大小为 ω(G)
最小染色
用最小的颜色个数给点染色且相邻点颜色不同。记最小的颜色个数(色数)为 λ(G) 。
最大独立集
图
G′
是G的子集且
G′
中所有点不相邻,取最大点集大小的图
G′
为图
G
的最大独立集。记作
最小团覆盖
用最少个数的团覆盖所有图
G
的点。记作
两个结论
1.
w(G)≤λ(G)
因为最大团中颜色必须互不相同。
2.
α(G)≤χ(G)
每个团中最多取一个点。
弦图
概念
弦
连接环中不相邻的两个点的边。
弦图
一个无向图称为弦图当图中任意长度大于3的环都至少有一个弦
两个结论
1.弦图的每一个诱导子图一定是弦图。
2.弦图的任一个诱导子图不同构于
Cn(n>3)
.
弦图的判定
bzoj1242:Fishing net
给一个无向图,判定其是否为弦图。
单纯点
设
N(v)
表示与点
v
相邻的点集。一个点称为单纯点当
引理:任何一个弦图都至少有一个单纯点,不是完全图的弦图至少有两个不相邻的单纯点。
完美消除序列
一个点的序列(每个点出现且恰好出现一次) v1,v2,…,vn 满足 vi 在 vi,vi+1,…,vn 的诱导子图中为一个单纯点。
定理:一个无向图是弦图当且仅当它有一个完美消除序列。
证明:
充分性
由引理知任何一个弦图都至少有一个单纯点以及弦图的诱导子图都是弦图。可以使用数学归纳法假设当点数 <n 的弦图一定有完美消除序列,那么点数为 n 的弦图的完美消除序列可以由一个单纯点加上剩余点的诱导子图的完美消除序列得到。必要性
反证若无向图存在一个长度>3 的无弦环,不妨设环中在完美消除序列中出现在最前面的点为 v ,设环中v 与 v1,v2 相连,根据完美消除序列的性质知 v1,v2 相连,与环无弦矛盾。所以无向图为弦图。
算法
1.朴素算法
最朴素的算法:
每次找一个单纯点
v
,加入到完美消除序列中。
将v以及相关的边从图中删掉。
重复以上过程直到所有点都被删除(图为弦图,得到了完美序列)或不存在单纯点
时间复杂度:
O(n4)
2.
字典序广度优先搜索(Lexicographic BFS)
从
n
到
每个点维护一个list记录与它相邻的已标号点的标号,list中的标号按照按从大到小排序。
每次选择list字典序最大的未标号点标号。
时间复杂度
O(n+m)
。
3,
最大势算法 Maximum Cardinality Search
从
n
到
设
label[i]
表示第i个点与多少个已标号的点相邻,每次选择
label[i]
最大的未标号的点进行标号.
判断一个提取出来的序列是否为完美消除序列?(如果原图是弦图则一定是,但是这里是要判定)
朴素的算法
依次判断
vi+1,…,vn
中所有与vi相邻的点是否构成了一个团。
时间复杂度:
O(∑deg(v)2)
优化后的算法
设
vi+1,…,vn
中所有与vi相邻的点依次为
vj1,…,vjk
。
只需判断vj1是否与vj2, …, vjk相邻即可。
时间复杂度:
O(m+n)
弦图的最小染色
bzoj1006:神奇的国度
设第
i
个点在弦图的完美消除序列第
弦图的极大团
令
N(v)=w|(w,v)∈E且p(w)>p(v)
弦图的极大团一定是
v∪N(v)
的形式。
证明:
设点集 V 的诱导子图为弦图的极大团,设v 为 V 中p(i) 值最小的点即出现在完美消除序列中最前面的点。由于 v∪N(v) 为一个团, V 为极大团,所以V=v∪N(v) 。
推论
弦图最多有n个极大团。
极大团的判断
设 A=v∪N(v) ,若存在 B=w∪N(w) 使得 A⊆B 则 A 不是极大团。
此时:
设
next(v)
表示
N(v)
中最前的点。令
w∗
表示所有满足
A⊆B
的
w
中最后的一个点。则
v∪N(v)⊆w∪N(w)
当且仅当
|N(v)|+1≤|N(w)|
只需判断是否存在一个
w
,满足
且
|N(v)|+1≤|N(w)|
即可。
时间复杂度:
O(m+n)
最小染色的解法
现在得到了弦图的完美消除序列,容易发现从后往前一个点加入只需考虑后面已染且与自己相邻的点的颜色,而这些点恰好是一个团,所以问题转化为求 ω(G)
弦图的最大独立集
同样,得到完美消除序列后,从前往后找,对于一个点,前面的已经考虑,而后面的点与他不能同时被选择,而且后面的点不只会影响这个点(还可能影响其他与它相邻的点),所以从前往后贪心即可。
弦图的最小团覆盖
设弦图的最大独立集为 {p1,p2,p3,...,pt} ,则 {p1∪N(p1),p2∪N(p2),p3∪N(p3),...,pn∪N(pn)} 是一个团覆盖。
证明
若没有覆盖完那么剩下的点是独立点,与最大独立集矛盾。
{p1∪N(p1),p2∪N(p2),p3∪N(p3),...,pn∪N(pn)} 是最小团覆盖。
证明
n≤α(G),n≥χ(G),α(G)≤χ(G)⇒α(G)=χ(G)
总结
在弦图中,有:
完美图(Perfect Graph)的概念
一个图G称为完美图若它的每一个诱导子图都满足 ω(G)=λ(G) 。
伴完美图(Co-perfect Graph)的概念
一个图G称为完美图若它的每一个诱导子图都满足 α(G)=χ(G) 。
弦图是完美图。
区间图
概念
给定一些区间,定义一个相交图为每个顶点表示一个区间,两个点有边当且仅当两个区间的交集非空。
一个图为区间图当它是若干个区间的相交图。
性质
1.区间图一定是弦图。
证明
若区间图中存在一个长度 >3 的无弦环 v0,v1,…,vl−1,vl=v0,l>3 ,设第 i 个点对应的区间为Ii 。由 Ii 与 Ii+1 相交, 取 pi=Ii∩Ii+1 ,由于 Ii 与 Ii+2 不相交,则 pi 一定严格递增或严格递减。由 p0∈I0 及 pl−1∈I0 得到 p1∈I0 ,与 I0 与 I2 不相交矛盾。所以区间图一定是弦图。
区间图具有弦图具有的一切性质。
2.
给定n个区间,所对应的区间图为G
G的一个完美消除序列:
将所有的区间按照右端点从小到大排序。
证明:
对于一个区间后面的所有与之相交的区间,左端点在该区间左边,右端点在该区间右边。所有这样的区间互相相交。
应用
1.给定n个区间,要求选择最多的区间使得区间不互相重叠。
区间图的最大独立集。
2.有n个积木,高度均为1,第i个积木的宽度范围为[Li, Ri],选择一个积木的下落顺序使得最后积木总高度尽可能小。
把一层积木看成一个颜色,转化为区间图的色数问题。
判定
自己看论文去吧,我看不懂了。。。。
本文详细介绍了弦图和区间图的相关概念,包括弦图的定义、判定、最小染色和最大独立集等问题,以及区间图的性质和应用。通过讲解完美消除序列和最大团覆盖,阐述了弦图与区间图的完美图特性,提供了问题解决的思路和算法。

1万+

被折叠的 条评论
为什么被折叠?



