图的染色(第四讲)
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
考试时间表编排问题的解
建立图模型
每一个顶点对应为一门考试,任何两点相邻 当且仅当至少有一个学生必须参加该两点所 对应的两门考试。(源自此,该两门考试必须安 排在不同的时间)
问题的解
上述图的一个着色对应于考试时间表编排问 题的一个解。 上述图的着色数即所需要的最少时间段数。
几种特殊的图的着色数
顶色数的算法设计
由此可以得算法步骤: Step1:求G图的所有极大独立集; Step2:求出一切若干极大独立集的和含 所有顶点的子集; Step3:从中挑选所用极大独立集个数最 小值,即为X(G)。
穷举法-Welch Powell着色法
I.将图G中的结点按度数的递减顺序进行排列(这种排 列可能不是唯一的,因为有些结点的度数相同)。因此 ,排出所有的可能,不妨设组合数为m个。 II.for i=1:m,用第一种颜色对第一结点着色,并按排 列顺序对与前面着色结点不邻接的每一结点着上同样的 颜色。 III.用第二种颜色对尚未着色的结点重复II,用第三 种颜色继续这种做法,直到所有的结点全部着上色为止 。记下着色数k(i)=ɑ(i) IV.当i>m退出循环,取α(G)=min(k),着色标号取 find(α(G)=min(k))的储存方案即可。
回溯法
回溯法求解图着色问题:首先把所有顶点的颜色初始化 为0,然后依次为每个顶点着色。如果其中i个顶点已经 着色,并且相邻两个顶点的颜色都不一样,就称当前的 着色是有效的局部着色;否则,就称为无效的着色。如 果由根节点到当前节点路径上的着色,对应于一个有效 着色,并且路径的长度小于n,那么相应的着色是有效 的局部着色。这时,就从当前节点出发,继续探索它的 儿子节点,并把儿子结点标记为当前结点。在另一方面 ,如果在相应路径上搜索不到有效的着色,就把当前结 点标记为d_结点,并把控制转移去搜索对应于另一种颜 色的兄弟结点。
任何k-色图必含有k-临界子图。 如果G是k-临界图,G一定是连通图。
注意:G一定有着色数是k的连通分支。
一个4-临界图的例子
Grö tzwch 图
外围的奇回路必须用3色
中心点的5个邻 点也必须用3色
黄绿对换, 可空出黄色
着色数与顶点次数
若G是k-临界图,则(G)k-1。
(即:G中任一顶点的度数不小于k-1)
问题来源
图的着色
通常所说的着色问题是指下述两类问题: 1.给定无环图G=(V,E),用m种颜色为图中的每条 边着色,要求每条边着一种颜色,并使相邻两条边 有着不同的颜色,这个问题称为图的边着色问题。 2.给定无向图G=(V,E),用m种颜色为图中的每个 顶点着色,要求每个顶点着一种颜色,并使相邻两 顶点之间有着不同的颜色,这个问题称为图的顶着 色问题。
穷举法-Welch Powell着色法
给定图G,用Welch Powell法对图G着色 1
A1
A2
2
A3
3
A4
1
A5 A6
3
A7
2 3
A8
2
穷举法-Welch Powell着色法
第一步:将图G中的结点按度数的递减顺 A 序排列:5 , A7 , A2 , A3 , A4 , A1 , A6 , A8 第二步:用第一种颜色对A5着第一种颜色 ,并对与A5不邻接的结点A1也着第一种颜 色。 第三步:对结点A7及与A7不邻接的结点A2 、A6着第二种颜色。
顶点着色-求顶色数的算法设计
我们由“每个同色顶点集合中的两两顶点不相邻”可以看 出,同色顶点集实际上是一个独立集,当我们用第1种 颜色上色时,为了尽可能扩大颜色1的顶点个数,逼近 所用颜色数最少的目的,事实上就是找出图G的一个极 大独立集并给它涂上颜色1。用第2种颜色上色时,同样 选择另一个极大独立集涂色,...,当所有顶点涂色完 毕,所用的颜色数即为所选的极大独立集的个数。 当然,上述颜色数未必就是X(G),而且其和能够含所有 顶点的极大独立集个数未必唯一。于是我们必须从一切 若干极大独立集的和含所有顶点的子集中,挑选所用极 大独立集个数最小者,其个数即为所用的颜色数X(G) 。
(G)(G)
点着色数的下限
对于任意的无环图: (G)n/(n-)
其中n=|VG|, 是G中最小顶点度数。
证明:vVG, 与v不相邻的顶点最多n--1个, 如果给G正常着色,同颜色的顶点最多n-个, (n-)(G)n
求着色数的例子
上左:二部图 (图中无奇回路) 上右:轮 下左:有奇回路, =3,=3 下右:有奇回路, =4,但不可 能是3
证明:假设存在vVG, 满足d(v)<k-1,则与v相邻的顶 点最多用上k-2种颜色。 G是k-临界图,G-v一定可以用k-1种颜色着色,则其 中至少有一种颜色未用于v的邻点,因此G也可以用k-1 种颜色着色,与G是k-临界图矛盾。
k-色图G中至少有k个顶点的度数不小于k-1。
证明:G必含k-临界子图H,则(H)k-1,而|VH|k。
二部图的着色数
若G中的顶点集VG 存在划分(V1,V2), 满 足eEG, e的两个端点必分属V1,V2,则 G称为二部图。 图G是二部图 当且仅当 G中不含奇回路。
若C是G中任一回路,则G中的 顶点依次交替出现在V1,V2 中,但 始点即终点,C必为偶回路。
二部图的着色数
回溯法
如果对所有m个兄弟结点,都搜索不到一种 有效的着色,就回溯到它的父亲结点,并把父亲 结点标记为d_结点,转移去搜索父亲结点的兄弟 结点。这种搜索过程一直进行,直到根结点变为 d_结点,或者搜索路径长度等于n,并找到了一 个有效的着色为止。
例:利用回溯法给下图(a)着色。
例:利用回溯法给下图(a)着色。
图着色
图的点着色数 着色数的基本性质 Brooks定理 图的边着色数 地图着色问题
应用背景示例
问题1:排考试时间,一方面要总时间尽可 能短(假设教室没问题),另一方面一个同学 所选的任意两门课不能同时间。 问题2:仓库存放若干种化学制品,其中某 些制品相互接触有可能引发爆炸,为预防 事故,将其隔间存放。要达到安全要求, 至少将该仓库隔成多少间?
着色回溯图如下图(b)所示
贪心法
例如,图12-4(a)所示的图可以只用两种颜色着
色,将顶点1、3和4着成一种颜色,将顶点2和顶 点5着成另外一种颜色。为简单起见,下面假定k 个颜色的集合为{颜色1, 颜色2, …, 颜色k}。
贪心法
贪心策略:选择一种颜色,以任意顶点作 为开始顶点,依次考察图中的未被着色的每 个顶点,如果一个顶点可以用颜色1着色, 换言之,该顶点的邻接点都还未被着色,则 用颜色1为该顶点着色,当没有顶点能以这 种颜色着色时,选择颜色2和一个未被着色 的顶点作为开始顶点,用第二种颜色为尽可 能多的顶点着色,如果还有未着色的顶点, 则选取颜色3并为尽可能多的顶点着色,依 此类推,如图12.4(b)所示。
(G)=1当且仅当G是零图(即G中没有边)。 (Kn)=n 若G是一个回路
当|VG|=2k, (G)=2 当|VG|=2k+1,(G)=3
若G是一个轮
当|VG|=2k, (G)=4 当|VG|=2k+1,(G)=3
与点着色数有关的几个“常识”
√ (G)|VG|, 且等号当且仅当G=Kn时成立。 √ 设H是G的子图,若(H)=k, 则(G)k。 √ 若d(v)=k, 则为与v相邻的k个顶点着色至多需 要k种颜色。 √ 图G的着色数等于其着色数最大的连通分支 的着色数。
图的顶点着色
给定简单图G及一有限集合C={c1,c2,…,ck}, 用C 中元素给G中每个顶点指定一个标号,使得任何 相邻顶点的标号不相同,则称为给G做一个点着 色。诸ci (i=1,2,…,k) 称为“颜色”。 如果图G可以用k种颜色着色,则G称为k-可着色 的。 使G是k-可着色的最小的k称为G的着色数,记为 (G)。 若(G)=k,则称G是k色图。
图着色
宋燕子
问题来源
图的着色问题是由地图的着色问题引申而来的:用m种颜 色为地图着色,使得地图上的每一个区域着一种颜色,且 相邻区域颜色不同。 问题处理:如果把每一个区域收缩为一个顶点,把相邻两个 区域用一条边相连接,就可以把一个区域图抽象为一个平 面图。 例如,图12-1(a)所示的区域图可抽象为12-1(b)所表示 的平面图。19世纪50年代,英国学者提出了任何地图都可 以4中颜色来着色的4色猜想问题。过了100多年,这个问 题才由美国学者在计算机上予以证明,这就是著名的四色 定理。例如,在图12-1中,区域用城市名表示,颜色用数 字表示,则图中表示了不同区域的不同着色问题 。
step one:把5元组初始化为(0,0,0,0,0) ,从根结点开始向下搜索,以颜色1为顶点 A着色,生成根结点2时,产生(1,0,0,0,0) ,是个有效着色。
step two:以颜色1为顶点B着色生成结点3时, 产生(1,1,0,0,0),是个无效着色,结点3为d_ 结点。 Step three:以颜色2为顶点B着色生成结点4 ,产生(1,2,0,0,0),是个有效着色。
点着色数的上限
对任意的无环图G,均有: (G)(G)+1, 其中(G)是G中顶点的最大度数。
证明:假设(G)>(G)+1, 则G中至少有(G)个顶点度数 不小于(G)-1, 但(G)-1>(G), 矛盾。
Brooks定理
若连通图G不是完全图Kn(n3), 也不是奇回路,则:
穷举法-Welch Powell着色法
第四步:对结点A3及与A3不邻接的结点A4 、A8着第三种颜色。 可见,图G是三色的。但图G不可能是 二色的,因为A1, A2, A4相互邻接,故必 须着三种颜色。所以x(G)=3。
回溯法
由于用m种颜色为无向图G=(V,E)着色,其中,V的顶点个 数为n,可以用一个n元组C=(c1,c2,…,cn)来描述图的一 种可能着色,其中,ci∈{1, 2, …, m},(1≤i≤n)表示 赋予顶点i的颜色。 例如,5元组(1, 2, 2, 3, 1)表示对具有5个顶点的无向 图12.3(a)的一种着色,顶点1着颜色1,顶点2着颜色2 ,顶点3着颜色2,如此等等 如果在n元组C中,所有相邻顶点都不会着相同颜色,就称 此n元组为可行解,否则为无效解。
设G中至少含一条边,则(G)=2当且仅当G是二部图。 若(G)=2,则G中无奇回路。 若G是二部图,每个二部划分中的顶点可以着一 种颜色。
临界图
定义:若图G的着色数是k, 但vVG, (Gv)<k, 则称G是k-临界图。
G是k-临界图即:G的着色数是k, 但G的任何真 子图的着色数均小于k。
只需考 虑连通图 ,任取uVG, 构造 VG 的划分 (V1,V2)如下:vVG, 若最短uv-通路长度为偶数, 则vV1, 若最短uv-通路长度为奇数,则vV2;假设 有x,yVG, 满足:x,y在同一划分块中,且x,y相邻, 注意:最短xu-通路和yu-通路长度同奇偶性,于是这 两段路加上xy边构成奇回路,与G不含奇回路矛盾。 (V1,V2)即二部划分,G是二部图。
贪心法
设数组color[n]表示顶点的着色情况,贪心法求解 图着色问题的算法如下: 图着色贪心法: 1.color[1]=1; //顶点1着颜色1 2.for (i=2; i<=n; i++) //其他所有顶点置未 着色状态 color[i]=0; 3.k=0;
例:利用回溯法给下图(a)着色 Step four:分别以颜色1和2为顶点C着色生成 结点5和6,产生(1,2,1,0,0)和(1,2,2,0,0),都 是无效着色,因此结点5和6都是d_结点。 Step five:以颜色3为顶点C着色,产生 (1,2,3,0,0),是个有效着色。重复上述步骤, 最后得到有效着色(1,2,3,3,1)。