弦图与区间图

弦图与区间图-陈丹琦 ppt

弦图与区间图总结_DZYO

弦图 - OI Wiki 这部分 OI-Wiki 上写的很好,证明也很妙。

弦图

弦:指一个大于 3 个点的环中,连接不相邻的两个点的边。非常形象。

弦图:指图中任意环均有弦。显然弦图的点导出子图也是弦图。

团:一个诱导子图满足对于子图内的点是完全图。非常形象。

单纯点:设 N(v) 表示 v 的邻域,一个点称为单纯点当且仅当 v+N(v) 的导出子图为一个团。

引理:任何一个弦图都至少有一个单纯点,不是完全图的弦图至少有两个不相邻的单纯点。

完美消除序列:一个点的序列 v1,v2,,vk 满足 vi{vi,vi+1,,vk} 的导出子图中为一个单纯点。

定理:一个无向图是弦图当且仅当它有一个完美消除序列。

ω(G) 为最大团的点集大小,称为团数。

χ(G) 为最小染色的色数,称为色数。

α(G) 为最大独立集的大小。

κ(G) 为最小团覆盖的团的数量。

ω(G)χ(G),因为最大团中颜色必须互不相同。

α(G)κ(G),因为每个团中最多取一个点。


弦图的判定

MCS 算法

最大势算法 Maximum Cardinality Search,可以在 O(n+m) 的时间内求出无向图的完美消除序列。

逆序从 n1 把节点编号,编号为 i 的点出现在完美消除序列的第 i 个。

labelx 表示 x 与多少个已经标号的点相邻,每次选择 label 最大的未标号节点进行标号。

实现可以用链表维护对于每个 i,满足 labelx=ix

每条边对 i=1nlabeli 的贡献最多是 2,时间复杂度为 O(n+m)

非弦图时要判断每个点是否与后面相邻的点构成团,设 vj1vjki 连向后面的点。继承后面点的判断后,算法只需判断 vj1 是否与其他 vj 都相连即可。时间复杂度 O(n+m)

于是我们可以在 O(n+m) 的时间复杂度内判断图是否是弦图并求出它的完美消除序列。


证明

只需证明求得序列中任意一点的后面与它相连的点两两相连。

pii 在序列中的位置。

引理一:考虑三个点 u,v,wpu<pv<pw,如果 uw 相连,vw 不相连,则 w 只给 ulabel 贡献。为了让 vu 先入序列,需要一个 x 满足 pv<pxvx 相连,ux 不相连。

引理二:任意一个弦图一定不存在一个序列 v0,v1,,vk(k2) 满足下列性质

  • vivj 相连当且仅当 |ij|=1
  • pv0>pvi(i[1,k])
  • 存在 i[1,k1],满足 pvi<pvi+1<<pvkpvi<pvi1<<pv1<pvk<pv0

证明引理:

由于 pv1<pvk<pv0,且 v1v0 相连,vkv0 不相连,所以由引理一,存在 x 满足 pvk<pxvkx 相连,v1x 不相连。

考虑最小的 j(1,k] 满足 vjx 相连,那么 v0x 不相连,否则 v0v1vjx 构成长度大于 4 且无弦的环。

如果 px<pv0,则 v0,v1,,vj,x 是满足性质的序列;如果 pv0<pxx,vj,,v1,v0 是满足性质的序列。

在上面的推导中,我们扩大了 pvk,于是一直推下去,一定在第一步找不到 px>pvk,产生矛盾。

证明原命题:

考虑三个点 u,v,wpu<pv<pw,我们需要证明若 uv 相连,uw 相连,则 vw 一定相连。

反证,假设不相连,那么 w,u,v 就满足引理二中的性质,所以矛盾。


弦图的极大团

i 在弦图的完美消除序列中第 pi 个。令 N(v)={w|pw>pvwv}

定理:弦图的极大团一定是 vN(v) 的形式。

证明:设 v 为极大团 Vp 最小的点,那么 VvN(v),又 V 极大,得证。

推论:弦图最多有 n 个极大团。

要求出最多 n 个极大团,可以判断每个 x+N(x) 是否是极大团。

A=x+N(x),B=y+N(y),若 AB,则 A 不是极大团。此时显然 py<px

那么设 nxtx 表示 N(x) 中最靠前的点,y 表示所有满足 ABy 中最靠后的点。此时必有 nxty=x,否则 y 不是最靠后的,令 y=nxty 仍满足。

AB 当且仅当 |A|+1|B|

判断不是极大团转化为判断是否存在 y,满足 py<px,nxty=x|N(x)|+1|N(y)|,时间复杂度 O(n+m)。实现参考 OI-Wiki。


弦图的团数或色数

团数 ω(G),最大团的点集大小。

色数 χ(G),相邻点不同色的最小颜色数。

定理:ω(G)=χ(G)

一种构造方式:按完美消除序列从后往前依次给每个点染色,给每个点染上可以染的最小颜色,因为一个点只需要考虑在它后面的相连点的颜色。

设染色共用 t 种,那么该过程中 tχ(G)t=ω(G),又因为每个团内点颜色互不相同所以 χ(G)ω(G) 所以 t=χ(G)=ω(G)


弦图的最大独立集或最小团覆盖

最大独立集 α(G),选出两两不相邻的点的最大点集。

最小团覆盖 κ(G),用团覆盖整张图的最小团数。

定理:α(G)=κ(G)

构造最大独立集的方式:完美消除序列从前往后能选就选。

设最大独立集为 v1,v2,,vt,则团的集合 {{v1+N(v1)},{v2+N(v2)},,{vt+N(vt)}} 是图的最小团覆盖。

因为若没有覆盖完那么剩下的点是独立点,与最大独立集矛盾。

tα(G),tκ(G),又因为每个团里都能选一个所以 κ(G)α(G),所以 α(G)=κ(G)


完美图

完美图:一个图 G 的每一个诱导子图(点导出子图)都满足 ω(G)=χ(G)

伴完美图:一个图 G 的每一个诱导子图(点导出子图)都满足 α(G)=κ(G)

完美图等价于伴完美图。

弦图属于完美图。


区间图

给定一些区间,定义一个相交图为每个顶点表示一个区间,两个点有边当且仅当两个区间的交集非空。

一个点为区间图当且仅当它是若干个区间图的相交图。

image.png

性质

区间图一定是弦图,显然不存在长度大于 3 的无弦环。于是区间图具有弦图的一切性质。

区间图的一个完美消除序列是将所有区间按照右端点从小到大排序。显然右边所有与当前区间有交的区间之间都相交。

应用

  • 给定 n 个区间,要求选择最多区间而不互相重叠。

    • 区间图的最大独立集。
  • n 个高为 1,宽为 [Li,Ri] 的积木,求一个下落顺序使最后积木总高度最小。

    • 把一层积木看成一个颜色,转化为区间图的色数问题。
posted @   llmmkk  阅读(620)  评论(1编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
历史上的今天:
2021-10-11 [HNOI2013]游走
2021-10-11 21.10.9 test
点击右上角即可分享
微信分享提示

目录导航