20101910072卢富毓——二部图的边染色问题

合集下载

高中数学竞赛中的染色、覆盖问题

高中数学竞赛中的染色、覆盖问题

染色问题和覆盖问题第一部分。

染色问题例1.已知(2)n n >条直线把平面划分成为若干块,其中的一些区域被染上颜色,使得任何两个染色的区域都没有公共边界,求证:染色区域的数目不超过2.3n n + 解答:不妨假定这些直线有相交直线。

设有k 条边的染色区域的数目为(1,2,...,)k m k n =。

注意到2m 就是有两条边的区域,两个射线形成的角域。

至多有2n 个线段。

因为每一段(线段或射线)至多是一个染色区域的边界,所以 22323...n m m nm n +++≤。

因为一条直线上只有两段的射线部分才可能是有两条边的染色区域,所以2m n ≤。

22322323 (333)n n m m nm m n n m m m +++++++≤+≤。

注意:这里有个很关键的不等式2m n ≤需要说明一下。

设12,,...,n L L L 是平面上直线束,那么每一个直线上至多有两个被染色(如题目中定义的染色)的角域;同时每一个被染色的角域值只占有两个直线。

设12,,...,m ΩΩΩ是m 个被染色的角域。

如果某个直线i L 上被染色的角域少于两个,那么根据数学归纳法假设可以直接证明2m n ≤。

否则的话,每一个直线上面恰好有两个被染色的角域。

这样可以得到一个2-正则的二部图()1212,,,{,,...,},{,,...,}.(,)n m i j i j G X Y E X L L L Y L E L ===ΩΩΩΩ∈⇔Ω是的边界这个二部图一定有1-因子。

从而也有2m n ≤成立。

例2. 平面上给定了)2(≥n n 条直线,其中任何两条不平行,任何三条不共点。

它们将平面划分成为若干个小区域。

试在每一个区域内部填写一个绝对值不大于n 的非负整数,使得任何一条直线的同一侧所有区域中各数之和为零。

解:一个为人们关心的问题是:这个题目是怎样产生的?那个出题人为什么出这个题?它的背景是什么?如果我们将这个问题放在球面上去,让所有的直线对应于一些大圆(从拓扑学的观点看,这是完全允许的),将每一个交点看成一个节点。

高中竞赛数学讲义第14讲染色问题

高中竞赛数学讲义第14讲染色问题

第14讲 染色问题本节主要讲述用染色的方法解有关的竞赛题.染色,是一种辅助解题的手段,通过染色,把研究对象分类标记,以便直观形象地解决问题,因此染色就是分类的思想的具体化,例如染成两种颜色,就可以看成是奇偶分析的一种表现形式.染色,也是构造抽屉的一个重要方法,利用染色分类,从而构造出抽屉,用抽屉原理来解题.A 类例题例1⑴ 有一个6×6的棋盘,剪去其左上角和右下角各一个小格(边长为1)后,剩下的图形能不能剪成17个1×2的小矩形?⑵ 剪去国际象棋棋盘左上角2×2的正方形后,能不能用15个由四个格子组成的L 形完全覆盖?分析 把棋盘的格子用染色分成两类,由此说明留下的图形不能满足题目的要求.证明 ⑴如图,把6×6棋盘相间染成黑、白二色,使相邻两格染色不同.则剪去的两格同色.但每个1×2小矩形都由一个白格一个黑格组成,故不可能把剩下的图形剪成17个1×2矩形. ⑵如图,把8×8方格按列染色,第1,3,5,7列染黑,第2、4、6、8列染白.这样染色,其中黑格有偶数个.由于每个L 形盖住三黑一白或三白一黑,故15个L 形一定盖住奇数个黑格,故不可能.说明 用不同的染色方法解决不同的问题.例2 用若干个由四个单位正方形组成的“L ”形纸片无重叠地拼成一个m n 的矩形,则mn 必是8的倍数.分析 易证mn 是4的倍数,再用染色法证mn 是8的倍数.证明:每个L 形有4个方格,故4|mn .于是m 、n 中至少有一个为偶数.设列数n 为偶数,则按奇数列染红,偶数列染蓝.于是红格与蓝格各有12mn 个,而12mn 是偶数.每个L 形或盖住3红1蓝,或盖住1红3蓝,设前者有p 个,后者有q 个.于是红格共盖住3p +q 个即p +q 为偶数,即有偶数个L 形.设有2k 个L 形.于是mn =2k ×4=8k .故证.例例1(!)说明 奇偶分析与染色联合运用解决本题.情景再现1.下面是俄罗斯方块的七个图形:请你用它们拼出(A)图,再用它们拼出(B)图(每块只能用一次,并且不准翻过来用).如果能拼出来,就在图形上画出拼法,并写明七个图形的编号;如果不能拼出来,就说明理由.2.能否用图中各种形状的纸片(不能剪开)拼成一个边长为75的正方形?(图中每个小方格的边长都为1)请说明理由.B 类例题例3 ⑴ 以任意方式对平面上的每一点染上红色或者蓝色.证明:一定存在无穷条长为1的线段,这些线段的端点为同一颜色.⑵ 以任意方式对平面上的每一点染上红色或者蓝色.证明:存在同色的三点,且其中一点为另两点中点.分析 任意染色而又要求出现具有某种性质的图形,这是染色问题常见的题型,常用抽屉原理或设置两难命题的方法解. 证明 ⑴取边长为1的等边三角形,其三个顶点中必有两个顶点同色.同色两顶点连成线段即为一条满足要求的线段,由于边长为1的等边三角形有无数个,故满足要求的线段有无数条.⑵ 取同色两点A 、B ,延长AB 到点C ,使BC =AB ,再延长BA 到点D ,使AD =AB ,若C 、D 中有一点为红色,例如点C 为红色,则点B 为AC 中点.则命题成立.否则,C 、D 全蓝,考虑AB 中点M ,它也是CD 中点.故无论M 染红还是蓝,均得证.说明 ⑴中,两种颜色就是两个“抽屉”,三个点就是三个“苹果”,于是根据抽屉原理,必有两个点落入同一抽屉.⑵中,这里实际上构造了一个两难命题:非此即彼,二者必居其一.让同一点既是某两个红点的中点,又是两个蓝点的中点,从而陷入两难选择的境地,于是满足条件的图形必然(5)(6)(7)(4)(2)(3)(1)(B)(A )存在.达到证明的目的.例4 ⑴ 以任意方式对平面上的每一点染上红色或者蓝色.证明:一定可以找到无穷多个顶点为为同一种颜色的等腰三角形.⑵ 以任意方式对平面上的每一点染上红色或者蓝色.证明:一定可以找到无穷多个顶点为为同一种颜色的等腰直角三角形.分析 ⑴同样可以设置两难命题:由于等腰三角形的顶点在底边的垂直平分线上,故先选两个同色点连成底边,再在连线的垂直平分线上找同色的点,这是解法1的思路.利用圆的半径相等来构造等腰三角形的两腰,这是解法2的思路.利用抽屉原理,任5个点中必有三点同色,只要这5点中任三点都是一个等腰三角形的顶点即可,而正五边形的五个顶点中任三个都是等腰三角形的顶点,这是解法3的思路.⑵连正方形的对角线即得到两个等腰直角三角形,所以从正方形入手解决相题第2问. ⑴ 证明1 任取两个同色点A 、B (设同红),作AB 的垂直平分线MN ,若MN 上(除与AB 交点外)有红色点,则有红色三角形,若无红色点,则MN 上至多一个红点其余均蓝,取关于AB 对称的两点C 、D ,均蓝.则若AB 上有(除交点外)蓝点,则有蓝色三角形,若无蓝点,则在矩形EFGH 内任取一点K (不在边上)若K 为蓝,则可在CD 上取两点与之构成蓝色三角形,若K 为红,则可在AB 上找到两点与之构成红色三角形.证明2 任取一红点O ,以O 为圆心任作一圆,若此圆上有不是同一直径端点的两个红点A 、B ,则出现红色顶点等腰三角形OAB ,若圆上只有一个红点或只有同一直径的两个端点是红点,则圆上有无数蓝点,取两个蓝点(不关于红点为端点的直径对称)C 、D ,于是CD 的垂直平分线与圆的两个交点E 、F 为蓝点,于是存在蓝色顶点的等腰三角形CDE . 证明3 取一个正五边形ABCDE ,根据抽屉原理,它的5个顶点中,必有三个顶点(例如A 、B 、C)同色,则△ABC 即为等腰三角形. ⑵证明 任取两个蓝点A 、B ,以AB 为一边作正方形ABCD ,若C 、D 有一为蓝色,则出现蓝色三角形.若C 、D 均红,则对角线交点E 或红或蓝, 出现红色或蓝色等腰直角三角形.显然按此作法可以得到无数个等腰直角三角形.(由本题也可以证明上一题.)例5 设平面上给出了有限个点(不少于五点)的集合S ,其中若干个点被染成红色,其余点被染成蓝色,且任意三个同色点不共线.求证:存在一个三角形,具有下述性质:⑴ 以S 中的三个同色点为顶点; ⑵ 此三角形至少有一条边上不含另一种颜色的点.分析 要证明存在同色三角形不难,而要满足第⑵个条件,可以用最小数原理.证明 由于S 中至少有五点,这些点染成两种颜色,故必存在三点同色.且据已知,此三点不共线,故可连成三角形.取所有同色三角形,由于S 只有有限个点,从而能连出的同色三角形只有有限个,故其A B C D E K HE N M D C A (2)(1)F E D C O B A O A B O C D E中必有面积最小的.其中面积最小的三角形即为所求.首先,这个三角形满足条件⑴,其次,若其三边上均有另一种颜色的点,则此三点必可连出三角形,此连出三角形面积更小,矛盾.说明 最小数原理,即极端原理.见第十二讲.例6 将平面上的每个点都染上红、蓝二色之一,证明:存在两个相似的三角形,其相似比为1995,且每一个三角形的三个顶点同色.(1995年全国联赛加试题)分析 把相似三角形特殊化,变成证明相似的直角三角形,在矩形的网格中去找相似的直角三角形,这是证法1的思路.证法2则是研究形状更特殊的直角三角形:含一个角为30˚的直角三角形.证明可以找到任意边长的这样的三角形,于是对任意的相似比,本题均可证.证法3则是考虑两个同心圆上三条半径交圆得的三组对应点连出的两个三角形一定相似,于是只要考虑找同心圆上的同色点,而要得到3个同色点,只要任取5个只染了两种颜色的点就行;而要得到5个同色点,则只要取9个只染了两种颜色的点即行. 证明 1 首先证明平面上一定存在三个顶点同色的直角三角形.任取平面上的一条直线l ,则直线l 上必有两点同色.设此两点为P 、Q ,不妨设P 、Q 同着红色.过P 、Q 作直线l 的垂线l 1、l 2,若l 1或l 2上有异于P 、Q 的点着红色,则存在红色直角三角形.若l 1、l 2上除P 、Q 外均无红色点,则在l 1上任取异于P 的两点R 、S ,则R 、S 必着蓝色,过R 作l 1的垂线交l 2于T ,则T 必着蓝色.△RST 即为三顶点同色的直角三角形.下面再证明存在两个相似比为1995的相似的直角三角形.设直角三角形ABC 三顶点同色(∠B 为直角).把△ABC 补成矩形ABCD (如图).把矩形的每边都分成n 等分(n 为正奇数,n >1,本题中取n=1995).连结对边相应分点,把矩形ABCD 分成n 2个小矩形.AB 边上的分点共有n +1个,由于n 为奇数,故必存在其中两个相邻的分点同色,(否则任两个相邻分点异色,则可得A 、B 异色),不妨设相邻分点E 、F 同色.考察E 、F 所在的小矩形的另两个顶点E '、F ',若E '、F '异色,则△EFE '或△DFF '为三个顶点同色的小直角三角形.若E '、F '同色,再考察以此二点为顶点而在其左边的小矩形,….这样依次考察过去,不妨设这一行小矩形的每条竖边的两个顶点都同色.同样,BC 边上也存在两个相邻的顶点同色,设为P 、Q ,则考察PQ 所在的小矩形,同理,若P 、Q 所在小矩形的另一横边两个顶点异色,则存在三顶点同色的小直角三角形.否则,PQ 所在列的小矩形的每条横边两个顶点都同色.现考察EF 所在行与PQ 所在列相交的矩形GHNM ,如上述,M 、H 都与N 同色,△MNH 为顶点同色的直角三角形.由n=1995,故△MNH ∽△ABC ,且相似比为1995,且这两个直角三角形的顶点分别同色. 证明2 首先证明:设a 为任意正实数,存在距离为2a 的同色两点.任取一点O (设为红色点),以O 为圆心,2a 为半径作圆,若圆上有一个红点,则存在距离为2a 的两个红点,若圆上没有红点,则任一圆内接六边形ABCDEF 的六个顶点均为蓝色,但此六边形边长为2a .故存在距离为2a 的两个蓝色点. 下面证明:存在边长为a ,3a ,2a 的直角三角形,其三个顶点同色.如上证,存在距离为2a 的同色两点A 、B (设为红点),l l以AB 为直径作圆,并取圆内接六边形ACDBEF ,若C 、D 、E 、F 中有任一点为红色,则存在满足要求的红色三角形.若C 、D 、E 、F 为蓝色,则存在满足要求的蓝色三角形. 下面再证明本题:由上证知,存在边长为a ,3a ,2a 及1995a ,19953a ,1995⨯2a 的两个同色三角形,满足要求.证明3 以任一点O 为圆心,a 及1995a 为半径作两个同心圆,在小圆上任取9点,其中必有5点同色,设为A 、B 、C 、D 、E ,作射线OA 、OB 、OC 、OD 、OE ,交大圆于A ',B ',C ',D ',E ',则此五点中必存在三点同色,设为A '、B '、C '.则∆ABC 与∆A 'B 'C '为满足要求的三角形.情景再现3.以任意方式对平面上的每一点染上红色或者蓝色.证明:一定存在一个矩形,它的四个顶点同色.4.以任意方式对平面上的每一点染上红色或者蓝色.证明:一定可以找到无穷多个顶点全为同一种颜色的全等三角形.5.图中是一个6×6的方格棋盘,现将部分1×1小方格涂成红色。

图着色问题

图着色问题

ac b ed c g e bgd b ed f b ec f df
故G的极小覆盖为 { a , c , e , g } { b , c , , d , e , g } { b , d , , e ,f } { b , c , , d ,f } 取• 其S补te集p2,:得求到出G一的切所若有干极极大大独独立立集集:和所{ 有b ,顶d ,点f} 的{ a 子,,f 集} { a ,, c ,g } { a ,, e ,g }
回溯法
14
回溯法
step two:以颜色1为顶点B着色生成结点3时,产生 (1,1,0,0,0),是个无效着色,结点3为d_结点。
Step three:以颜色2为顶点B着色生成结点4,产 生(1,2,0,0,0),是个有效着色。
Step four:分别以颜色1和2为顶点C着色生成结点 5和6,产生(1,2,1,0,0)和(1,2,2,0,0),都是无效着 色,因此结点5和6都是d_结点。
9
穷举法-Welch Powell着色法
• 给定图G,用Welch Powell法对图G着
色1
A2 3
2
A3
1
A4
A5
A6 3
10
穷举法-Welch Powell着色法
• 第一步:将图G中的结点按度数的递减顺序排
列: A 5,A 3,A 7,A 1,A 2,A 4,A 6,A 8
• 第二步:用第一种颜色对A5着第一种颜色, 并对与A5不邻接的结点A1也着第一种颜色。
//搜索下一个颜色

if (color[k]<=m && k= =n)
//求解完毕,输出解

{ for (i=1; i<=n; i++)

二部图欧拉图哈密尔顿图平面图教学课件

二部图欧拉图哈密尔顿图平面图教学课件

网络设计:用于设计网络拓扑结构,如路由器、交换机等设备的连接
电路设计:用于设计电路板布局,如PCB板、集成电路等
地图绘制:用于绘制地图,如城市地图、交通地图等
建筑设计:用于设计建筑布局,如房屋、办公楼等
物流规划:用于规划物流网络,如仓库、配送中心等
城市规划:用于规划城市布局,如道路、公园等
汇报人:
哈密尔顿图是平面图的一种特殊情况,即每个顶点的度数都是2
哈密尔顿图定义:每个顶点的度数等于图中的边数
哈密尔顿图的性质:哈密尔顿图是欧拉图
哈密尔顿图的判定方法:通过计算每个顶点的度数来判断
哈密尔顿图的应用:在图论、计算机科学等领域有广泛应用
PART FIVE
平面图是一种特殊的图,其顶点和边都在同一个平面上
哈密尔顿图是一种特殊的图,其每个顶点的度数都是2或0。
哈密尔顿图是一种特殊的欧拉图,其每个顶点的度数都是2。
哈密尔顿图是一种特殊的平面图,其顶点和边都可以在平面上表示出来。
哈密尔顿图是一种特殊的图,其每个顶点的度,即每个顶点的度数都是2
哈密尔顿图是二部图的一种特殊情况,即每个顶点的度数都是2
在数学中,哈密尔顿图可以用于研究图的性质,如图的连通性、图的色数等。
哈密尔顿图在图论中具有重要的应用价值,特别是在网络流、电路设计等领域。
在计算机科学中,哈密尔顿图可以用于解决一些NP-hard问题,如旅行商问题、背包问题等。
在物理学中,哈密尔顿图可以用于描述量子系统的状态空间,从而进行量子计算和量子信息处理。
汇报人:
,
CONTENTS
PART ONE
PART TWO
二部图是一种特殊的图,由两个部分组成,每个部分包含一组节点每个节点只能与另一部分的节点相连,不能与同一部分的节点相连二部图的节点可以分为两个集合,每个集合中的节点只能与另一个集合中的节点相连二部图的边可以分为两种类型,一种是连接两个不同集合的边,另一种是连接同一集合中的边二部图的性质包括:每个节点度数之和等于边数,每个节点度数之和等于边数,每个节点度数之和等于边数,每个节点度数之和等于边数,每个节点度数之和等于边数,每个节点度数之和等于边数,每个节点度数之和等于边数,每个节点度数之和等于边数,每个节点度数之和等于边数,每个节点度数之和等于边数,每个节点度数之和等于边数,每个节点度数之和等于边数,每个节点度数之和等于边数,每个节点度数之和等于边数,每个节点度数之和等于边数,每个节点度数之和等于边数,每个节点度数之和等于边数,每个节点度数之和等于边数,每个节点度数之和等于边数,每个节点度数之和等于边数,每个节点度数之和等于边数,每个节点度数之和等于边数,每个节点度数之和等于边数,每个节点度数之和等于边数,每个节点度数之和等于边数,每个节点度数之和等于边数,每个节点度数之和等于边数,每个节点度数之和等于边数,每个节点度数之和等于边数,每个节点度数之和等于边数,每个节点度数之和等于边数,每个节点度数之和等于边数,每个节点度数之和等于边数,每个节点度数之和等于边数,每个节点度数之和等于边数,每个节点度数之和等于边数,每个节点度数之和等于边数,每个节点度数之和等于边数,每个节点度数之和等于边数,每个节点度数之和等于边数,每个节点度数之和等于边数,每个节点度数之和等于边数,每个节点度数之和等于边数,每个节点度数之和等于边数,每个节点度数之和等于边数,每个节点度数之和等于边

图论讲义第6章-图的着色问题

图论讲义第6章-图的着色问题

| c1 (ν ) | = 1 ,其中 ci (υ ) 表示 υ 阶第 i 类图的集合。这 v →∞ | c (ν ) ∪ c (ν ) | 1 2
vk
… v3 v2
i4 i3 i2
u
… H2
ik i0

im ik
i1
vm
v1
v
但是,因 vk 在 H 1 中的度为 2(恰与一条 i0 色边和一条 ik 色边相关联) ,故它在 H 2 中的 。这与 H 2 是奇圈矛盾。 (注意 vk 必在分支 H 2 中,因它与 度为 1(仅与一条 i0 色边相关联) 。由此可知反证法假设不能成立。证毕。 vk-1 有 i0、ik 交错路( H 1 的一段)相连) 对于有重边的图 G,设 μ (G ) 表示 G 中边的最大重数,Vizing 实际上证明了一个更一般 的结论: Δ (G ) ≤
(其中 v0 点的关联边有可能是同一种色) 。按这 样可得 G*的一个边 2-染色 c = ( E1 , E 2 ) , 种办法给 G*的边染色后,去掉 v0 及其关联的边,便得到 G 的一个边 2-染色。对于 G 中偶 度点,它关联的边及其颜色与 G*中相同;对 G 的任何奇度点 v,在 G 中比在 G*中少关联一 条边,但只要 d G ( v ) > 1 , 便有 d G ( v ) ≥ 3 , 故由染色的方法知,与 v 点关联的边中两种颜色 的都有。这说明 G 的边 2-染色 c = ( E1 ∩ E (G ), E 2 ∩ E (G )) 即为所求的边 2-染色。证毕。
… H1 vk-1
ikik i0
( Δ + 1) 边染色。由引理 6.1.2, G[ Ei′0 ∪ Ei′k ] 中含有 u 的那个分支 H 1 是个奇圈。

图论课件第七章图的着色

图论课件第七章图的着色
总结词
平面图的着色问题是一个经典的图论问题,其目标是在满足相邻顶点颜色不同 的条件下,使用最少的颜色对平面图的顶点进行着色。
详细描述
平面图的着色问题可以使用欧拉公式和Kuratowski定理进行判断和求解。此外 ,也可以使用贪心算法、分治策略等算法进行求解。
树图的着色问题
总结词
树图的着色问题是一个经典的图论问 题,其目标是使用最少的颜色对树图 的顶点进行着色,使得任意两个相邻 的顶点颜色不同。
分支限界算法
总结词
分支限界算法是一种在搜索树中通过剪枝和 优先搜索来找到最优解的算法。
详细描述
在图的着色问题中,分支限界算法会构建一 个搜索树,每个节点代表一种可能的着色方 案。算法通过优先搜索那些更有可能产生最 优解的节点来加速搜索过程,同时通过剪枝 来排除那些不可能产生最优解的节点。分支 限界算法可以在较短的时间内找到最优解,
尤其适用于大规模图的着色问题。
03
图的着色问题的复 杂度
计算复杂度
确定图着色问题的计算复杂度为NP-完全,意味着该问题在多项式时间 内无法得到确定解,只能通过近似算法或启发式算法来寻找近似最优解 。
图着色问题具有指数时间复杂度,因为对于n个顶点的图,其可能的颜色 组合数量为n^k,其中k为每个顶点可用的颜色数。
02
图的着色算法
贪心算法
总结词
贪心算法是一种在每一步选择中都采取当前状态下最好或最优(即最有利)的选 择,从而希望导致结果是最好或最优的算法。
详细描述
贪心算法在图的着色问题中的应用是通过逐个对顶点进行着色,每次选择当前未 被着色的顶点中颜色数最少的颜色进行着色,直到所有顶点都被着色为止。这种 算法可以保证最小化使用的颜色数量,但并不保证得到最优解。

16染色问题

16染色问题

16染色问题染色是将一组对象进行分类的一种直观描述. 例如,我们将集合A 中的一部分元素染成红色,另一部分元素染成兰色,再把剩下的元素全染成黄色,这时我们就把集合的元素分成了红、蓝、黄三类.由于这种描述方法形象直观,因而在竞赛数学中得到广泛的应用. 下面我们主要讨论图的染色、平面染色及网格染色问题. 1.基本原理为了说话方便,我们作如下约定:若将图G 的边用k 种颜色染,每条边恰染一种颜色,则把这种染色图称为k 染色图.若将图G 的顶点用k 种颜色染,每个顶点恰染一种颜色,则把这种染色图称为k 顶点染色图. 若将平面上的点用k 种颜色染,每个点恰染一种颜色,则把这种染色平面称为k 染色平面.若将m n ⨯的棋盘的()()11m n ++个格点用k 种颜色染,每个格点恰染一种颜色,则把这种染色的棋盘称为k 染色的网格.需要说明的是,将一组对象用k 种颜色染色时,并不要求染色完后每种颜色的对象都要出现. 另外,我们还约定:在对图的边染色之后,边的颜色全相同的r 阶完全子图称为同色r k ,同色3k 又称为同色三角形.定理1 二染色的6k 必有同色三角形. 完全图5k 可以二染色使其不含同色三角形. 二染色的5k 不含同色三角形的充要条件是5k 由2个颜色相异的长为5的同色圈构成.证 不妨设6k 的边用红、蓝两种颜色染. 取6k 的一个顶点1v ,与1v 相邻的边有5条,两种颜色,由抽屉原则知必有3条同色. 不妨设121314,,v v v v v v 同为红色,那么当234,,v v v 中有两点间连红边时,则得一个红三角形;当234,,v v v 中任两点间的连边均不是红边时,则以234,,v v v 为顶点的3k 的三条边全为兰色,从而有一个蓝三角形,故结论成立.若5k 用红兰两色染后不含同色三角形,则每个顶点连出的4要边必是两红两兰.事实上,若5k 的某一个顶点引出了3条同色边,则由上面的证明知5k 中必含同色三角形,这与5k 不含同色三角形矛盾. 现考虑二染色的5k 中由红边组成的子图5k ',则5k '的每个顶点的度为2,从而知5k '是一个长为5的欧拉圈. 同理可证5k 中由兰边组成的子图5k ''也是一个长为5的欧拉圈. 故必要性成立. 又当5k 二染色后是由2个颜色相异的长为5的同色圈构成时,5k 中显然不能含同色三角形.定理2 三染色的17k 必含同色三角形,16k 可以二染色使其不含同色三角形.证 设17k 的边用红、兰、黄三种颜色染,取17k 的顶点1v ,1v 连出16条边,共3种颜色,由抽屉原则知必有6条边同色. 不妨设121314151617,,,,,v v v v v v v v v v v v 同为黄色,那么在234567,,,,,v v v v v v 这6个点中,若有两个顶点之间连黄边,则可得一个黄三角形. 若234567,,,,,v v v v v v 中任两点间的连边均不是黄色,则以这6个点为顶点的完全图6k 的边只有红、兰两种颜色,由定理1知这个6k 中必含同色三角形,从而知17k 中含同色三角形.又对于16k ,我们可以给出一种三染色的方法,使其染色后不含同色三角形(见熊斌,郑仲义编著的图论P66页).定理3 若能将n k 的边用t 种颜色染,使其不含同色三角形,又能将m k 的边用r 种颜色染使其不含同色三角形. 则可将mn k 的边用r t +种颜色染,使其不含同色三角形.证设(),mn k V E =. 令12n V V V V = ,使得当1i j n ≤≠≤时,,i j i V V V m φ== . 将以i V 为顶点的完全图记为,1,2,,im k i n = . 因m k 可用r 种颜色染使其不含同色三角形,故可将每一个im k 均用前r 种颜色染,使其不含同色三角形. 现将每个im k 收缩(或包装)成一个点i v ,则得一个以12,,n v v v 为顶点的完全图nk '. 因n k 可用t 种颜色染,使其不含同色三角形. 那么将nk '用后t 种颜色染使其不含同色三角形后,若n k '中的边i j v v 染第l 种颜色,则集合i V 的点与j V 的点之间的连边均染第l 种颜色. 可以证明上述r t +种颜色染的mn k 中不含同色三角形.注 上述证明中用到图的收缩(或包装)方法是处理图论问题的一个重要的方法. 定理4 对于任意正实数d ,二染色平面上必存在距离为d 的同色点;若两种颜色的点都存在,则一定存在距离为d 的两个颜色相异的点.证 取边长为d 的正三角形ABC ,由于3个顶点,,A B C 染成两种颜色,故由抽屉原则知必有两点同色,这两个同色点的距离为d .又设,A B 为平面上两个异色点,将点,A B 用线段长为d 的折线段相连接. 由于点A 、B 异色,因此这条折线段上必有一条线段的两个端点异色,故结论成立.定理5 对于任意的正实数a ,在二染色的平面上,必存在边长为a 且三顶点同色的正三角形.证 若二染色平面上所有点的颜色均相同,则结论显然成立. 若二染色平面上两种颜色的点均存在,不妨设平面上的点是用红兰两种颜色染. 由定理4知,平面上存在距离为2a 的两个异色点,A B . 如图1,不妨设A 为红点,B 为兰点, 取AB 的中点C ,则C 必与,A B 之一同色. 不妨设C 与A 同为红色,以AC 为边作正ACE ∆和正三角形ACD . 若,E D 中有一个为红点,则得到一个边长为a的三顶点同为红色的正三角形. 若E 与D 均为兰点,由 图1于B 也为兰点,则EDB ∆的三顶点同色的正三角形.定理6 设k 为正实数,1k ≠,n 为不小于3的正整数,则在r 染色平面上一定存在两个n 边形12n A A A 与12n B B B ,使得点12,,,n A A A 同色,点12,,,n B B B 同色,n 边形12n A A A 与n 边形12n B B B 相似,且相似比为k .证 在r 染色平面上任取一点O ,以O 为圆心作半径为1和半径为k 的两个同心圆1C 与2C . 将圆1C 用点()21211,,,n r A A A -+ 等分,连i OA 并延长交圆2C 于i B ,()21,2,,11i n r =-+ . 因为点()21211,,,n r A A A -+ 的颜色不超过r ,由抽屉原则知其中必有()11n r -+个点同色.不妨设()1211,,,n r A A A -+ 同色,那么由于点()1211,,,n r B B B -+ 的颜色不超过r 种,由抽屉原则知必存在n 个点同色,不妨设12,,,n B B B 同色,则n 边形12n A A A 与n 边形12n B B B 相似,相似比为k ,12,,,n A A A 同色,12,,,n B B B 同色,故结论成立. 3.方法解读解染色问题时,经常用到的原理是抽屉原则. 对于图上的染色问题,常常要对同色边的条数,同色角(两边颜色相同的角)的个数、异色角(两边颜色相异的角)的个数进行计数与估值,从中寻求解决问题的方法. 另外,利用染色图中由某种颜色的边构成的子图及图论的基本原理也是解决问题的方式之一. 在解染色平面上的问题时,常常利用特殊图形去寻找问题的答案. 在解决网格问题时,常常对格点对进行计数与估值. 在下面的解题中,我们要用到如下结论:结论1 已知i a 为正整数,1,2,,i n = ,且12n a a a t +++= ,则21ina i C=∑取最小值的充要条件是对于1i j n ≤<≤,有1i j a a -≤.结论1 可用调整法证明.例1 平面上给出10个不同的点,任三点不共线,每一对点间连线段. 能否用4种颜色将这些线段染色,每条线段染一种颜色,使得对于10点中的任意4个点,这4个点之间的线段均有4种颜色.分析 将点看成图的顶点,所连线段看成图的边,则问题归结为能否将完全图10k 用4种颜色染,使得染色后的10k 的任意一个4阶完全子图4k 中都含有4种颜色的边. 由于4阶完全子图可看成是由10k 逐次删去一个顶点以及与这个顶点相邻的边而得到. 因此,在这个删去顶点及边的过程中,尽可能多地删去同一种颜色的边,再来观察删去6个顶点后的效果.解 满足题意的染色方式不存在.事实上,对于10k 的一种4染色方式,因为10k 的边有21045C =条,45114⎡⎤=⎢⎥⎣⎦,所以必有一种颜色的边不超过11条. 不妨设红边不超过11条,设A 是连出红边最多的顶点,去掉顶点A 及与顶点A 相邻的边,得到一个9阶完全图9k ,下证9k 中的红边至多有8条.事实上,若顶点A 连出的红边数不小于3,则结论成立. 若顶点A 连出的红边数为2,则原来的10k 中红边数210102⨯≤=条,所以剩下的9k 中至多有8条红边. 若顶点A 连出的红边数为1,则原来的10k 中红边数11052⨯≤=,故结论成立.再在9k 中去掉一个连出红边最多的顶点及与这个顶点相邻的边,得到一个8k . 同理可证8k 中红边数不超过6. 再在8k 中去掉一个连红边最多的顶点及与这个顶点相邻的边,得到一个7k ,同理可证7k 中的红边数不超过4条. 再在7k 中去掉一个连出红边最多的点,得到一个6k ,同理可证6k 中红边的条数不超过2. 再在6k 中去掉分别与剩下2条红边(若存在的话)相邻的顶点及与这2个顶点相邻的边,得到一个4k ,则这个4k 中没有红边.上述证明表明对于10k 的任一个4染色方案,10k 中必有一个4阶子图4k ,使得4k 中边的颜色至多有3种,故满足题意的染色方式不存在.例2 试问二染色的7k 中,最少存在几个单色三角形?分析 若能建立单色三角形的个数y 所满足的不等式,则可估计y 的下界,进而求出y 的最小值.解 将两边颜色相同的角称为同色角,两边颜色相异的角称为异色角,设二染色的7k 中同色三角形有y 个,则异色三角形的个数为3735C y y -=-.由于一个同色三角形恰有3个同色角,一个异色三角形恰有1个同色角,故二染色的7k 中同色角的个数为()335235y y y +-=+(1)另一方面,设7k 用红兰两种颜色染,7k 的顶点分别为127,,,v v v .对于1,2,,7i = ,7k 中与i v 相邻的红边有i x 条,则与i v 相邻的兰边有()6i x -条,从而以i v 为顶点的同色角有()226i i x x C C -+个,故7k 中同色角的个数为()72261i i x x i CC -=+∑.又由结论1知,22226336i i x x C C C C -+≥+=,从而有()7722611642iix x i i CC-==+≥=∑∑ (2)由(1),(2)可得 23542y +≥, 从而有 27y ≥. 由于y 为整数,所以4y ≥.又如图5所示的二染色的7k 恰有4个同色三角形, 图5 其中画出来的边染红色,未画出的边染兰色,故二染色的7k 至少存在4个同色三角形.例3 将10k 任意去掉n 条边后,得到的图任意二染色均含同色三角形,试求满足上述条件的n 的最大值.分析 二染色必含同色三角形的阶数最小的完全图是6k ,因而若去掉边后所得的图含有6阶完全子图,那么该图二染色后必含同时三角形,因而可考虑最多去掉多少条边可保证所得的图中含有6k .解 设所求的最大值为m . 我们先证明在10k 中任意去掉4条边,所得的图G 中必含有6阶完全子图.事实上,设在10k 中去掉的4条边分别为1234,,,e e e e ,所得的图为G ,那么我们在G 中依次去掉1e 的一个端点,2e 的一个端点,3e 的一个端点,4e 的一个端点以及与这些端点相邻的边,这样我们就在G 中去掉了4个顶点及与这4个顶点相邻的边. 显然,保留下来的图是一个完全图6k ,从而知G 中有6阶完全子图. 由于6k 二染色后必含同色三角形,所以将G 二染色必含同色三角形,这表明4m ≥(1)又设10k 的顶点为1210,,,v v v ,在10k 中去掉5条边12345678910,,,,v v v v v v v v v v ,并把所得的图按图6所给的方式二染色,则在该二染色图中不含同色三角形. 所以4m ≤(2)由(1),(2)知4m =.例4 求最小正整数n ,使得在任何n 个无理数 中,总有3个无理数,它们中任两数之和都是无理数.分析 如果用n 个点代表n 个无理数,由于要考 虑两个顶点所代表的数的和是无理数还是有理数,所以 需用两种颜色的边表示这两种状态,因而应用染色图来模拟这一问题. 图6解 4个数中任何3个数中都含有一对相反数,这对相反数的和为0,所以5n ≥.设,,,,a b c d e 是5个无理数,我们用5个点,,,,A B C D E 分别代表这5个数.若两数之和为有理数,则在代表这两个数的顶点间连一条红边;若两数之和为无理数,则在代表这两个数的顶点间连一条兰边,得到一个二染色的5k . 下证5k 必含有一个兰三角形.事实上,如果5k 中含有一个红三角形,不妨设三角形ABC 为红三角形,则,,a b b c c a +++均为有理数,又()()()12a a b c a b c =+++-+⎡⎤⎣⎦, 这说明a 为有理数,矛盾. 这个矛盾表明5k 中不含红三角形.若5k 含有长为5的红圈,不妨设为ABCDE ,则()()()()(),,,,a b b c c d d e e a +++++均为有理数,又()()()()()2a b e a c d b c d e a +++++-+-+=,这表明a 为有理数,矛盾. 这个矛盾表明5k 中不含长为5的红圈. 由定理1知5k 含同色三角形,又5k 不含红三角形,故5k 中必含兰三角形. 由于兰边表示的是两数之和为无理数,这表明这个兰三角形的三顶点代表的3个无理数中任何两个的和仍为无理数,所以n 的最小值为5.例5 证明:在二染色的平面上,a R +∀∈,一定存在斜边长为a 且三个内角分别为30,60,90︒︒︒的三顶点同色的三角形.分析 直角三角形的顶点在以斜边为直径的圆上,为了找到满足条件的3个顶,可在圆的六等分点中去找.证 由定理4知,二染色平面上存在距离为a 的同色点.不妨设平面上的点用红兰两种颜色染,且平面上存在距离为a 的两个红点,A B .以AB 为直径作圆,如图7,用,,,,,A B C D E F 将圆六等分. 若,,,C D E F 中有一个红点,譬如C为红点,则ABC ∆满足要求;若,,,C D E F 全为兰点,则DEF ∆满足要求. 图7例6 将1111⨯的棋盘(共1212⨯个格点)的格点用红兰白三种颜色去染,每个格点只染一种颜色,求证存在一个矩形,它的边与棋盘的边平行且四角上的格点同色.分析 只要证明有位于两列的两个同色格点对位于相同的行即可. 证 因为144483=,由抽屉原则知必有一种颜色至少染了48个格点. 不妨设红格点不少于48个,其中第i 行有i a 个,1,2,,12i = ,则12148ii a=≥∑.对于第i 列的红点,可组成2ia C 个红格点对,因此12列上的红色格点对共有1221ia i C=∑个. 由结论1知12122241161272ia i i CC ==≥=⨯=∑∑.又由于12行组成的行对共有21266C =个,7262>,故由抽屉原则知必有两个红格点对位于相同的行对,因而以这四点为顶点的矩形满足要求.例7 用不在多边形内部相交的对角线将凸()4n n ≥边形分割成若干个三角形,求证:可用三种颜色给凸n 边形的顶点着色,每个顶点染一种颜色,使分割所得的每个三角形的三个顶点的颜色均不相同.分析 我们可对四边形,五边形寻找满足条件的染色方法,不难发现n 边形的染色可化为()1n -形的染色,因而想到用数字归纳法.证 设凸n 边形共分割成x 个三角形,则()1802180x n ︒⋅=-︒,2x n ∴=-. 设这2n -个小三角形中有1k 个恰含凸n 边形的两条边,2k 个恰含凸n 边形的一条边,则122k k n +≤- (1)又 122k k n += (2) 由(1),(2)中消去2k ,得()1122k n k n +-≤-,12k ∴≥.故至少有两个三角形恰含凸n 边形的两条边. 这表明,对于凸n 边形的任意一个分割方案,分割成的小三角形中至少有两个小三角形恰含凸n 边形的两条边. 下面利用这一结论对n 行归纳.当4n =时,如图8知结论成立,其中1,2,3分别代表3种颜色. 假设对n 结论成立,那么对于()1n +,由上面的证明知,()1n +边形分割成小三角形后必有一个小三角形含凸()1n +边形的两条边,不妨设这个三角形为11n n A A A +∆,那 图8么凸n 边形12n A A A 被不相交的对角线分成()2n -个小三角形,由归纳假设知,可将12n A A A ,,,用三种颜色染色,使每个小三角形的顶点的颜色全不相同. 由于1,n A A 是同一小三角形的顶点,所以1,n A A 的颜色不同,故1n A +可用不同于1,n A A 的颜色染,这样所有的小三角形的顶点的颜色均不相同,故对1n +结论成立. 由归纳法原理知结论成立.习题161. 试证二染色的6k 中至少有2个同色三角形.2. 两个航空公司为10个城市通航,使得任何两个城市之间恰有一个公司开设直达航班进行往返服务. 试证至少有一个公司能提供两个不相交的旅游圈,每个圈可游览奇数个城市.3. 能否将21n k +二染色,使得每个顶点引出的红边和兰边各有n 条.。

染色问题

染色问题

什么是染色问题这里的染色问题不是要求如何染色,然后问有多少种染色方法的那类题目,它指的是一种解题方法。

染色方法是一种将题目研究对象分类的形象化方法,通过将问题中的对象适当染色,我们可以更形象地观察分析出其中所蕴含的关系,再经过一定的逻辑推理,便能得出问题的答案。

这类问题不需要太多的数学知识,但技巧性、逻辑性较强,要注意学会几种典型的染色方法。

染色问题基本解法:三面涂色和顶点有关 8个顶点。

两面染色和棱长有关。

即新棱长(棱长-2)×12一面染色和表面积有关。

同样用新棱长计算表面积公式(棱长-2)×(棱长-2)*60面染色和体积有关。

用新棱长计算体积公式(棱长-2)×(棱长-2)×(棱长-2)长方体的解法和立方体同理,即计算各种公式前长、宽、高都要先减2再利用公式计算。

染色问题的解题思路染色问题是数奥解题中的难点,这类问题初看起来好像无从着手,其实只要认真思考问题也很容易解决,下面就染色问题的解题思路说一下。

图一首先,拿到一道题先认真观察,看这个题的突破点。

什么是染色问题的突破点呢?那就是找染色区域中的一个最多,这个最多是指一个区域,其他区域与它连接的最多。

例如图一中A区域A与B、C、D、E、 F连接最广所以A为特殊区域。

找到这个区域问题就容易解决了。

这个区域可以任意添色就是染最多的颜色。

本题中有4种颜色那么A可以染4种颜色了。

完成这个事件需要A、B、C、D、E、F6步所以用乘法原理。

这道题找到了最特殊的A 区域第二特殊区域和第三区域的确定也就容易了,C区域是与A相连,连接区域的数量仅次于A区域图一中的C和E区域都可以做第二个特殊区域了,但只能选一个,我们把C当成第二特殊的区域,则C可以染3种颜色。

区域B跟A、C相连那么 B可以染2种。

D与A、C、E相连则只能选1种,对吗?我们仔细观察,按顺序说A----4,C------3,B-------2,D 则连接A、C当A 选色后C有3种可能,D在A、C选色后只有2种可能。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第 1 页 共 9 页 云南大学数学与统计学院 实 验 报 告 课程名称:算法图论实验 学期:2013~2014学年上学期 成绩: 指导教师: 李建平 姓名: 卢富毓 学号: 20101910072 实验名称:二部图的染色问题 实验要求: 必做 实验学时: 2学时 实验编号: 05 实验日期:2013-12-13 完成日期:2013-12-14 学院: 数学与统计学院 专业 : 信息与计算科学 年级: 2010级

一、实验目的 掌握二部图边染色数问题和二部图最大匹配问题的求解算法,给出二部图的边染色方案 二、实验环境 VS2010(C++) 三、实验内容 给定一个二部图EVG,,求边染色数G',并给出染色方案。 四、 实验过程 A.二部图边染色问题求解思想 1) 对于给定的二部图G,利用二部图最大匹配算法求得G的一个最大匹配M1,对G1=G-M1再利用二部图匹配算法求得G1的一个最大匹配M2,..., 这样可以得到图G的边子集被划分成G个集合MMM,...,,21,从而可对G进行G染色。根据定理6.1,设ETSG;,是一个二部图,则GG',其中G为G的最大的度。

2) 二部图最大匹配算法 设图G=(S,T;E)为二部图,可用反圈法求二部图的匹配 ① 选初值:取的未盖点是关于M|0uSuX ② 在kX中选边jiuu原则,这里kjkiXVuXu,: 若SXuki,则只能选以iu为端点的非M边 若TXuki,则只能选以iu为端点的M边 ③ 若在某步出现下列情形之一停止 情形1:kX中有T型未盖点,即已找到增广路P,进行增广匹配,构造新的匹配 MPEPEMPEMM)('

情形2:上述情形1不存在,而kX中无边可选,说明G不存在关于M的增广路,进而M为最大匹配。 B.实现过程 对任意给定的一个图,首先判断它是否为二部图,若是二部图,则给出二部图的边染色方案,若不是二部图,程序结束。二部图的S集和T集的划分,这里采用如下定义: 是奇数,是偶数vudVuTvudVuS,|,|,计算两点之间的最短距离用到的是第 2 页 共 9 页

Dijkstra算法(令各边权值为1),注意到二部图可能是不连通图,在代码实现过程中也加入了相关设计,保证程序的健壮性,运行结果中给出一个测试实例。 运行结果:

五、实验总结 求二部图的边染色数方案是基于二部图的最大匹配算法的实现,了解了设计思路之后解决的时候可能是非常简单的。但是对一般图来说,求二部图的边染色数是NP-完备问题,如何解决还需要查阅相关资料。 第 3 页 共 9 页

六、源代码 #include #include #include

using namespace std; #define Max_vex 100 #define M 1000 //SetTextC1是原来的颜色 //SetTextC2 是设置的输出输入颜色 #define SetTextC1 SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY | FOREGROUND_RED | FOREGROUND_GREEN |FOREGROUND_BLUE) #define SetTextC2 SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY | FOREGROUND_GREEN) #define SetTextC3 SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY | FOREGROUND_GREEN | FOREGROUND_BLUE) #define SetTextC4 SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY | FOREGROUND_RED) #define SetTextC5 SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY | FOREGROUND_RED | FOREGROUND_BLUE) #define SetTextC6 SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_RED | FOREGROUND_GREEN |FOREGROUND_BLUE) #define SetTextC7 SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_GREEN)

class Arcll{ public: int weight; //权重 bool m; //TRUE—匹配边,FALSE—自由边 };

class Vex{ public: string v; char c; //S,T bool m; //TRUE—已盖点,FALSE—未盖点 int from;//增广路调整 };

class Graphics{ //创建一个图的类 private: int vexnum; //顶点数 int arcnum; //边数 int maxdegree; Vex vexs[Max_vex]; //顶点 Arcll arcs[Max_vex][Max_vex]; //边数

public: void CreateGraphics(Graphics &G);//创建一个图 int LocateIndex(Graphics G, string v);// 寻找下标 bool DijkStra(Graphics &G); //划分S集和T集 void Match(Graphics &G); //二部图的最大匹配算法 void Color(Graphics &G); //染色 void GivenMethod(Graphics &G,int k);//给出染色方案 第 4 页 共 9 页

}; //找到相应顶点的下标 int Graphics::LocateIndex(Graphics G, string vt){ int i=0; for(i=0; iif(G.vexs[i].v.compare(vt)==0){ return i; } }

return -1; }

//创建一个无向图 void Graphics::CreateGraphics(Graphics &G){ int i,j,k; string Vi,Vj;

SetTextC1; cout<<"-------------------------创建无向图的存储-------------------------------">G.vexnum; SetTextC1;//设置颜色 if(G.vexnum == 0){ cout<<"空图!请检查!"

cout<<"请输入图的边数:"; SetTextC4; cin>>G.arcnum; SetTextC1; if(G.arcnum == 0){ cout<<"无边染色!请检查!"

cout<<"请输入顶点名:"; SetTextC4; for(i=0; icin>>G.vexs[i].v; G.vexs[i].from = 0; G.vexs[i].m = FALSE; } SetTextC1;

for(i=0; ifor(j=0; jG.arcs[i][j].weight = M; G.arcs[i][j].m = FALSE; } }

for(k=0; k第 5 页 共 9 页

cout<<"请输入第">Vi>>Vj; SetTextC1;

i = LocateIndex(G,Vi); j = LocateIndex(G,Vj);

if(i == -1 || j == -1){ cout<<"输入错误!请检查..."

G.arcs[i][j].weight = 1; G.arcs[j][i].weight = 1;

G.vexs[i].from++; G.vexs[j].from++; }

cout

SetTextC3; for(i=0; iSetTextC2; cout<<"\t"

//最大度 G.maxdegree = 0; for(i=0; iif(G.vexs[i].from > G.maxdegree){ G.maxdegree = G.vexs[i].from;

相关文档
最新文档