一笔画问题(欧拉图)
一笔画问题与图论

一笔画问题与图论所谓—笔画问题就是使笔尖不离开纸面而又不重复地画出一个图形、这个问题起源于十八世纪所谓“哥尼斯堡桥”的难题:在一条河流中有两个小岛,岛与岸之间用七座桥相连(图一),怎样才能不重复地走遍七座桥而回到出发地点?如果我们把岛A、B分别以点v l、v2表示,岸C,D分别以点v3、v4表示,而各桥用连接各点的线表示,就可以得到下面的示意图(图二)、上面的问题就是问是否能一笔画成这样的图、不少人曾为此花费了大量时间,直到1736年大数学家欧拉才解决了这一问题、然而由此引起的对图形的研究却开创了一个新的数学分支,这就是在近代发展很快而且颇受重视的图论、图2我们首先介绍一些图论中最基本的术语,然后看看与上面一笔画问题的有关结论,最后简略地说明一下图论的其它应用、1、图我们把一些点和连接这些点之间的线称为一个图,其中的点叫做顶点,线叫做边、交于同一个顶点的两条边以及同一条边所连接的两个顶点都叫做相邻,而顶点与以它为端点的边之间叫做相关、如图二中与v l相邻的顶点有v2、v3、v4,而与v l相关的边有e l、e2、e3、e4、e6与e5相邻的边有e l、e2、e6、e7,而与e5相关的顶点有v2、v3、只有假设干个顶点而没有边的图叫做空图,而任何两个顶点之间都恰有一条边相连的图叫做完全图、有n个顶点的完全图常记为K n,例如K2就是一条线段,K就是有三个顶点三条边的图,按通常习惯仍叫三角形、32、子图在一个图中,由一部分顶点以及只与这些顶点相关的边所组成的图叫做导出子图,图中一部分边及其端点所组成的图叫做边导出子图,假设边导出子图与原图有完全相同的顶点,就叫做伸延子图、一个图的两个子图假设无公共顶点就叫做不相连的,假设无公共边(可能有公共顶点)就称为边不相连的、图三是一个具体例子、子图是一个相对的概念,假设H是G的子图,那么G可称为H的上图、通过子图来研究较复杂的图是图论中一个基本方法、3、顶点的度在一个图中与任一顶点v有关的边的数目,叫做这个顶点的度,记作d(v),如图三中的G,d(v l)=2,d(v2)=5,d(v3)=4,d(v4)=2,d(v5)=3、这样一来,我们就看到在计算各个顶点的度时,实际上就是计算了边的数目,但每一条边在它的两个顶点处各计算一次,从而我们可以得到:定理一任一个图中各顶点的度数之总和等于其边数的二倍、由此事实,我们知道图中顶点度数之和为偶数,从而奇数度顶点的个数必为偶数、4、连通性在一个图中,我们从任一顶点v0出发,经过与之相关的一条边el到达另一个顶点v l,再经过与v l相关的一条边e2到达v2,……,如此继续下去,便得到一个顶点和边交替出现的序列v0e l v l e2v2……e k v k、当其中所经过的边彼此皆不相同时,我们就叫做一条迹,这时其中诸顶点有可能相同,假设连顶点也都彼此不同,这种迹就叫做路,起点与终点闭合的路又叫做圈、这些都是一些特殊的边导出子图,如图三中的G,假设取v l av2cv3dv2f v5gv3就是—条迹,而v l av2f v5gv3就是—条路,假设取v l av2f v5gv3bv l就得到一个圈、一条迹可以删去一段而成为路、图3一个图中的任意两点都存在一条连接这两点的路,那么称这个图是连通的、对于一个不连通的图,我们可以把它分成假设干个连通的分支、有了这些概念以后,我们就来看看上面的一笔画问题、为了表达方便起见,我们把包含图中所有的边的迹叫做欧拉迹,首尾闭合的欧拉迹叫做欧拉途、如果一个图含有一个欧拉途就说明从任一顶点山发,可以经过每一条边恰好一次并且回到出发点,换言之,它可以一笔画成、这种含有欧拉途的图就叫做欧拉图、不难证明下面两个定理:定理二 一个连通图是欧拉图的充分必要条件是它不含奇数度顶点、定理三 一个连通图含有欧拉迹的充分必要条件是最多有两个奇数度顶点、 由这两个定理可知,一个图可以一笔画成的充分必要条件是,或者不含奇数度顶,或者恰含有两个奇数度顶点、即使复杂的图,也不消一分钟就可以看出它是否能够一笔画成、在我们上面提到的七桥问题中,相应的图的四个顶点皆是奇数度的,所以无法—笔画成,即使不要求回到原出发点,也无法—笔画成、 一笔画问题只是图论中一个很小的侧面、事实上,我们在画出—个图的时候,可以赋予图中的顶点和边以各种不同的含义,从而也就可以用来研究五花八门的问题、下面举几个简单的例子、例— 在世界各国中,必能找到这样两个国家,它们与同样数目的国家有外交关系、我们用顶点表示国家,两国间有外交关系的就用边相连,这样一来就只须证明在任意—个这种图中必有两个顶点有相同的度数,事实上,设诸顶点以v l ,v 2,……v n 表示,假设各顶点的度数皆不相同,那么它们分别是0,1,2,…,(n -1)这n 个数、但这是不可能的,因为既然有0度的顶点就不可能再有n -1度的顶点,故必有两个顶点具有相同的度数、可见与之相应的两国与同样数目的国家有外交关系、例二 平面上有n 个点,其任意两点之间的距离不小于1,试证至多存在3n 对点,其距离恰是l 、以v l ,v 2,…,v n 表示平面上这n 个点,我们规定某两点v i 与v j 的距离恰是1时才用边相连,在如此所得到的图中,边的数日就是距离恰是1的顶点的对数、与任一顶点v 相邻的顶点必在以v 为圆心,1为半径的圆周上,但题设这些点之间的距离又不小于1,所以至多只能有六个顶点与v 相邻,换言之,对于任意1≤i ≤n 皆d 〔v i 〕≤6,于是,1()6ni i d v n =≤∑由定理一,左边就是图中边数的二倍,所以边数≤3n ,即至多有3n 对点距离恰是1、例三 在随意凑集的六个人中,一定能找列三个人,他们或者彼此认识,或者彼此不认识、这是一个Ramsey 问题,曾经是著名的难解问题之一,现在用图论方法很齐易解决、我们用六个点表示六个人,两个人认识就将扪应的两点用线连起来、于是这个问题就转化成下述形式:在任何一个六个顶点的图中,必有三个顶点存在,它们或者连成—个三角形,或者彼此不相邻、设v 是某一顶点,那么其余五个顶点中与v 相邻的顶点数和与v 不相邻的顶点数中必有一个是超过3的、不妨设u 1,u 2,u 3,是与v 相邻的,假设u l ,u 2,u 3中有某两点是相邻的,那么它们与v 将构成——个三角形,假设u 1,u 2,u 3中任意两点都不相邻,那么它们就是题中所要求的三点、下面我们再来看看图论中所研究的其它—些问题、邮路:利用欧拉途的概念可以解决所谓邮递路线问题、我们知道,邮递员总想从邮局出发以最短的路程走遍每一条街道,最后回到邮局,如果这位邮递员所负责的街道可以画成一个欧拉图,那么只须求出其欧拉途就一定是最理想的邮路了、而对于欧拉图要求出其中的欧拉途是不成问题的、但当街道画出一个非欧拉图时,情形就比较复杂了、这时须引入“重量”的概念而转化成求欧拉途的问题、当合理地规定图中的每一条边的重量以后,我们就得到一个所谓“赋重图”、这里的重量可以表示路程的长短,也可以表示运费的多少,也可以表示造价的高低,如此等等,于是有许多实际问题便可转化成求赋重图中的最轻通路问题、图论中已经建立了一些有效的方法、可靠性:要建立一个交通或通讯系统,就要设法使假设干个点之间皆有通路相连,并且还力求使总的造价是比较少的、这一类问题在图论中已通过对一种特殊的子图——“树”的研究得以解决、另一方面,如果在—种交通或通讯系统中任意两点之间都只有一条路相通,那么这种系统是很不可靠的,一旦有一处发生故障,就可能仗整个系统陷于瘫痪,于是图论中又进一步研究了连通的可靠性问题,这主要是将连通程度数量化、货郎担问题:我们把包含图中每一个顶点的路叫做哈密顿路,假设是闭的就叫做哈密顿圈,相应的图就叫做哈密顿图、与欧拉途不同的是哈密顿圈只要求走遍每一个顶点,并不要走遍每条边,著名的货郎担问题与此有关、这个问题是:寻找一条最短路线,使一个货郎不走回头路而走遍几个村镇,这是一个看起来简单却尚未得到解决的问题,没有一个有效方法可以用来判断一个图是否为哈密顿图、印刷电路:当我们设计一种印刷电路时,必须要求有关的电路图是一个平面图,由于我们在画出一个图的时候,其边的长短以及准确位置是无关紧要的,只是关心某条边是连接哪两个顶点而已、所以—个图是否为一个平面图并不是一眼就能看出来的、某些图乍看起来不是平面的,但可以重新画出使成平面图、这在图论中叫做平面嵌入,并且已经找到一些有效方法可以判断任意给出的图是否为平面图,以及如果是平面图怎样进行平面嵌入、四色问题:我们可以把图的顶点或边涂以各种颜色,并研究任意一个图最少要几种颜色)才能合理地进行上色(即使得相邻的顶点或边颜色不同)、著名的四色问题与此有关,四色问题是一种猜想:任一平面图只须四种颜色即可将顶点染色,使每每两相邻顶点皆有不同颜色、这与地图的染色是密切相关的、在图论中图论是一门比较新的学科,它当然可以尽量采取近代数学的概念及方法,诸如集合、映射、矩阵等等来处理其内容,还可以建立图与图之间的一些运算关系、用它可以解决的问题无法估量、图论的内容是丰富的,方法是新颖的,上面罗列的仅是其【一】二而已、。
四年级奥数第一讲-一笔画问题

第十二讲一笔画问题那么,什么叫一笔画1什么样的图可以一笔画出■?欧竝又是如何彻底证明尢桥冋题的不可能性呢?下面,我们就来介貂这一方面的简单知谋数学书我们把由有限个点和连接这些点的线(线段或弧)所组成的图形叫做圈(如圈3 )S圈中的点叫做曙的结点!连按两結点的线叫做圏的边. 如图(b)中,有三个结点:氐F. G,四条边:线段臥FG以及连接臥F的两段呱•从图Q、0>)中可以看岀,任意两点之间都有一条通路〔即可臥从其中一点出发,沿着图的边走到另一点左WJI的通路为或A-Df I…”这样的图,我扪称为连通图;而下图中〔亡)的一些^点之间却不存在通略(如M与N),像这样的图就不是连逋图将所谓图的一笔ML指的就是;从图的一点出发,笔不离纟氐遍历每条边恰好一次,即每条边都只画一次,不推重复■从上图中容曷看出;能一笔画出的图首先必须是连逋图-但是否所有的连逋图都可以一笔画出呢?下面,我们就来探求醉抉这个问题的方法。
为了叙述的方使’我们把与奇数条边相连的结点叫做奇吊把与偶数条边相连的点称为播点■如I上鹵申的八个给点全是寄■点,上扇(b)申卫、F衣奇為G为偶点。
容易知道,上图00可以一笔画出,即从奇点E出发,沿箭头所指方向. 经过匚G> E.最后到达奇点心同理,从奇点F出发也可以一笔画也最后到达奇点氐而从偶点G岀发,却不能一笔画出•这是为什么呢?G事实上,这并不杲偶然现象•假定某个图可以一笔画成,且它的结点X既不是起点,也不是终点,而是中何点,那么X—定是一个偶点.这杲因为无论何时通过一条边到达X,由于不能重复,必须从另一董边离开X.这样与X连纟吉的边 -定成对出现,所以X必为偶点,也就是说:奇点在」笔画中只能作为起或终点•由此可臥看出,在一个可以一笔画出的图中,奇点的个数最多只有两个。
在七桥问题的图中有四个奇点,因此,欧拉断言’这个图无法一笔画岀,也即游人不可能不重复地1次走遍七座桥.更逬1步地,欧拉在解决七桥问题的同时彻底地解决了一笔画的问题,给出了下面的欧拉定理;①凡是由偶点组成的连通图,一定可以一笔画成;画时可以任一偶点为起点,最后一定能以这个点为终点画完此图。
概率论-第二十一讲--欧拉图与哈密尔顿图(略)

二、哈密尔顿图
例5. 证明下图中没有汉密尔顿路径。 图中,3个顶点标记为A,5个顶点 A 标记为B,相差2个,不可能存在 一条汉密尔顿路径。 B B 如果在标记过程中,遇到相邻结 点出现相同标记时,如果有一个 结点的度数为2,可在此对应边上 A A 增加一个结点,并标上相异标 A 记。 B B B B B
11
二、哈密尔顿图
定理3:若无向图G=<V,E>是哈密尔顿图, V1是V的任意非空 真子集,则 ω(G- V1)≤| V1 |。 证明:设C是G的一条哈密尔顿回路,对于V的每个非空真子集 V1有:ω(C-V1) ≤|V1|
ω(C- V1)是C删去V1中所有顶点及关联的边后所得图
的连通分支数。 又因为C - V1是G - V1的生成子图,故有
13
二、哈密尔顿图
定义3:若无向图G=<V,E>的顶点集合V可以划分成两个子集X 和Y,使G中的每一条边e的一个端点在X中,另一个端点 在Y中,则称G为二部图或偶图。二部图可记为 G=<X,E,Y>,X和Y称为互补结点子集。 二部图不会有自回路。
14
二、哈密尔顿图
定理4:设二部图G=<X, E, Y>,设|X|=m,|Y|=n。若m≠n,则G 必不是汉密尔顿图。 证明:方法1. 用汉密尔顿图的性质证明。 因为|X|≠|Y|,不妨设|X|<|Y|。 显然有ω(G-X)=|Y|>|X|, 这与汉密尔顿图的必要条件ω(G-X)≤|X|矛盾。 因此G必不是汉密尔顿图。
定理2:一个有向连通图具有欧拉路径,当且仅当它 的每个顶点的引入次数等于引出次数,可能 有两个顶点除外,其中一个的引入次数比它 的引出次数大1,另一个的引入次数比它的 引出次数小1。 推论: 一个有向连通图具有欧拉回路,当且仅当它 的每个顶点的引入次数等于引出次数。
七桥问题与一笔画的通解

七桥问题与一笔画的通解(论文拟稿)在柯尼斯堡的一个公园里,有七座桥将一条河上的两座岛和两岸相连接。
当时有人提出了这么一个问题:如何一次性不重复不遗漏走完七座桥。
后来,数学家欧拉将它变成了一个一笔画问题(如图)。
从欧拉的简化图来看,似乎我们无论如何,也不能一笔画完图形。
但是,这是为什么呢?在这个图中,有ABCD 4个点,有五条线汇聚到A点,三条线汇聚到B,C,D 点,我们可以把这种有奇数条线(3条及以上)汇聚的点称为奇点,作为对应,把有偶数条线(4条及以上)汇聚的点称为偶点。
那么,我们不难发现,在任意封闭图形中,奇点的个数一定是偶数。
因为一条线定连接两个点(或重合),若存在奇数个奇点,则此图形定不符合封闭图形定义。
从一个奇点来看,若要一笔画成,则此奇点定是起笔点或停笔点。
起笔点,停笔点只有两个,所以说,奇点为两个或没有奇点的封闭图形可以一笔画。
回来看七桥问题,图中有四个奇点,以任意两个作为起笔点和落笔点,则还有两个奇点无法连接。
故七桥问题无解。
从上面总结出以下结论:■⒈凡是由偶点组成的连通图,一定可以一笔画成。
画时可以把任一偶点为起点,最后一定能以这个点为终点画完此图。
■⒉凡是只有两个奇点的连通图(其余都为偶点),一定可以一笔画成。
画时必须把一个奇点为起点,另一个奇点为终点。
■⒊其他情况的图都不能一笔画出。
(奇点数除以二便可算出此图需几笔画成。
)我们可以把得到的结论推广到所有一笔画解法存在问题,如汉字“田”,我们观察到,它有四个奇点,故不可以一笔画。
而汉字“日”,只有两个奇点,则可以一笔画。
早在1736年,欧拉在交给彼得堡科学院的《哥尼斯堡7座桥》的论文报告中,就阐述了这种方法,也为后来的数学新分支--拓扑学的建立奠定了基础。
从这里我们可以看出,伟大的创造一开始可能并不像我们想象的那么高深莫测,仔细观察生活,我们也会有了不起的发现。
一笔画哥尼斯堡七桥问题

一笔画哥尼斯堡七桥问题1736年29岁的欧拉向圣彼得堡科学院递交了《哥尼斯堡的七座桥》的论文,在解答问题的同时,开创了数学的一个新的分支——图论与几何拓扑。
也由此展开了数学史上的新进程。
问题提出后,很多人对此很感兴趣,纷纷进行试验,但在相当长的时间里,始终未能解决。
七桥问题和欧拉定理。
欧拉通过对七桥问题的研究,不仅圆满地回答了哥尼斯堡居民提出的问题,而且得到并证明了更为广泛的有关一笔画的三条结论,人们通常称之为“欧拉定理”。
故事背景七桥问题18世纪著名古典数学问题之一。
在哥尼斯堡的一个公园里,有七座桥将普雷格尔河中两个岛及岛与河岸连接起来(如图)。
问是否可能从这四块陆地中任一块出发,恰好通过每座桥一次,再回到起点?欧拉于1736年研究并解决了此问题,他把问题归结为如下右图的“一笔画”问题,证明上述走法是不可能的。
有关图论研究的热点问题。
18世纪初普鲁士的柯尼斯堡,普雷格尔河流经此镇,奈发夫岛位于河中,共有7座桥横跨河上,把全镇连接起来。
当地居民热衷于一个难题:是否存在一条路线,可不重复地走遍七座桥。
这就是柯尼斯堡七桥问题。
欧拉用点表示岛和陆地,两点之间的连线表示连接它们的桥,将河流、小岛和桥简化为一个网络,把七桥问题化成判断连通网络能否一笔画的问题。
他不仅解决了此问题,且给出了连通网络可一笔画的充要条件是它们是连通的,且奇顶点(通过此点弧的条数是奇数)的个数为0或2.当Euler在1736年访问Konigsberg, Prussia(now Kaliningrad Russia)时,他发现当地的市民正从事一项非常有趣的消遣活动。
Konigsberg城中有一条名叫Pregel的河流横经其中,这项有趣的消遣活动是在星期六作一次走过所有七座桥的散步,每座桥只能经过一次而且起点与终点必须是同一地点。
Euler把每一块陆地考虑成一个点,连接两块陆地的桥以线表示。
著名数学家欧拉后来推论出此种走法是不可能的。
小学奥数 奇妙的一笔画 精选练习例题 含答案解析(附知识点拨及考点)

所谓图的一笔画,指的就是:从图的一点出发,笔不离纸,遍历每条边恰好一次,即每条边都只画一次,不准重复.从图中容易看出:能一笔画出的图首先必须是连通图.但是否所有的连通图都可以一笔画出呢?下面,我们就来探求解决这个问题的方法.什么样的图形能一笔画成呢?这就是一笔画问题,它是一种有名的数学游戏.我们把一个图形中与偶数条线相连接的点叫做偶点.相应的把与奇数条线相连接的点叫做奇点. 一笔画问题:(1)能一笔画出的图形必须是连通的图形;(2)凡是只由偶点组成的连通图形.一定可以一笔画出.画时可以由任一偶点作为起点.最后仍回到这点; (3)凡是只有两个奇点的连通图形一定可以一笔画出.画时必须以一个奇点作为起点,以另一个奇点为终点; (4)奇点个数超过两个的图形,一定不能一笔画. 多笔画问题:我们把不能一笔画成的图,归纳为多笔画.多笔画图形的笔画数恰等于奇点个数的一半.事实上,对于任意的连通图来说,如果有2n 个奇点(n 为自然数),那么这个图一定可以用n 笔画成.模块一、判断奇偶点【例 1】 我们把一个图形上与偶数条线相连的点叫做偶点,与奇数条线相连的点叫做奇点.下图中,哪些点是偶点?哪些点是奇点?J O I H G FED CBA【考点】一笔画问题 【难度】2星 【题型】解答【解析】 奇点: D H J O 偶点:A B C E F G I 【答案】奇点: D H J O 偶点:A B C E F G I【例 2】 同学们野营时建了9个营地,连接营地之间的道路如图所示,贝贝要给每个营地插上一面旗帜,要求相邻营地的旗帜色彩不同,则贝贝最少需要 种颜色的旗子,如果贝贝从某营地出发,不走重复路线就 (填“能”或“不能”)完成任务.【考点】一笔画问题 【难度】2星 【题型】填空例题精讲知识点拨4-1-5.奇妙的一笔画【关键词】华杯赛,六年级,初赛,第10题【解析】最少需要3种颜色的旗子。
因为中间的三点连成一个三角形,要使这三点所代表营地两粮相邻,要使相邻营地没有相同颜色的旗子,必须各插一种与其它两点不同颜色的旗子。
一笔画问题

一笔画问题画一个图案,如果用笔既不重复也不遗漏,纸不离笔,一笔画成,那么就称这个图案是一笔画图案.现在我们来研究的问题是:(1)怎样的图案才能一笔画成?(2)如果一个图案能一笔画成,那么该从哪里起笔到哪里收笔?需提醒大家的是,这些问题与图案中的“奇点”的个数有关.何谓奇点呢?我们知道,任何图案都是由线条(直线或曲线)连成的.在图案中,由三条或三条以上的方向各不相同的线连接在一起的点叫做图案点,通过图案点的线是奇数条就称奇点(当然,通过图案点的线是偶数条就称偶点,现在只需回答前面的问题而与偶点无关).例如,在下面各图案中的奇点个数见统计表(请读者对照图案辨认奇点).统计表:接着就请读者朋友拿起你的笔来逐个试画以上各图案,看能否一笔画成,将结论填在统计表内.并注意体会能一笔画的图案应该怎样画.最后,请根据上表归纳出前面两个问题的答案.【规律】(1)奇点数为0或2的图案可以一笔画成.奇点数多于2的图案不能一笔画成.(2)画奇数为0的图案时,可以选择任意点起笔都能一笔画成;画奇数为2的图案时,必须选择其中的一个奇点起笔,而到另一个奇点收笔才能一笔画成.【练习】1.下面各图案,能一笔画出来吗?试一试.2.容易看出,下面的两个图案都不能一笔画成,请在每个图案上各补画一条线就能使新图案一笔画成了.会吗?3.这是大数学家欧拉曾经研究过的一个著名数学问题----七桥问题.东普士的多尼斯堡城中有一条横贯城区的河流,河上有两个岛,两岸和两岛之间共架有七座桥、如下图所示:问人们能不重复地走遍这七座桥吗?4.回龙州公园的游览点与路线示意图如下.如果要使游人游完所有的游览点而不重复行走的路线,请问入口处和出口处应该设在什么位置?如果一个图形可以用笔在纸上连续不断而且不重复地一笔画成,那么这个图形就叫一笔画。
显然,在下面的图形中,(1)(2)不能一笔画成,故不是一笔画,(3)(4)可以一笔画成,是一笔画。
同学们可能会问:为什么有的图形能一笔画成,有的图形却不能一笔画成呢?一笔画图形有哪些特点?关于这个问题有一个著名的数学故事——哥尼斯堡七桥问题。
一笔画问题

一笔画问题
1.瑞士大数学家欧拉在七桥问题的过程中,发现了一笔画原理,这一原理被命名为“欧拉定理”:
(1)能一笔画的图形必须是连通的。
(2)凡是只由偶顶点组成的连通图形,一定可以一笔画出,画时可以由任一偶顶点为起点,最后仍回到这点。
(3)凡是只有两个奇顶点的连通图形一定可以一笔画出,画时必须以一个奇顶点为起点,以另一个奇顶点为终点。
(4)奇顶点个数超过两个的图形不能一笔画出。
2.能一笔画出的图形的奇顶点数目是2或0,如果图形有奇顶点2N(n为正整数)个,那么图形最少要用N笔画出。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2010-10-18 17:32 by EricZhang(T2噬菌体), 3556 visits, 网摘, 收藏, 编辑
关于一笔画问题的数学分析(对一道面试题的总结与扩展思考)
摘要
前几天参加了一个公司的面试,其中被问到了一个题。
面试官在纸上画了一个图形(具体图形见下文),问我能不能一笔画出这个图形,要求每条边必须只走一次,并且画的过程中笔不能离开纸。
当时我没有试着去画,而是凭着自己图论方面的知识在几秒钟之内告诉面试官不可能做到,然后简单说了一下理由。
面试结束后我翻阅了图论相关的资料,发现当时自己虽然给出了正确答案,但理由并不完全正确。
昨天我花了几个小时仔细研究了一下相关的理论,总结了一下这类问题的类型和解法,写成此文,分享给大家。
问题的提出
当时面试官给我出的问题是这样的:对于下面这个图形,让我一笔画出,要求每条边必须只走一次,并且画的过程中笔不能离开纸。
面试时我给出的回答是不可能做到,面试结束后我也从数学上证明了这个这个回答。
当然有兴趣的朋友可以试着画画看。
这个问题其实就是我们小时候会玩到的一笔画游戏。
这类问题看似简单直观,但是仔细研究下来却蕴含了很多东西,而且涉及了图论中一个非常重要的研究课题——欧拉迹。
而且这类问题可以扩展出很多东西,例如任意给一个图可不可以完成一笔画且最后回到起始点?再如到底什么样的图可以一笔画出来?什么样的图一笔画不出来?如果一个图可以一笔画出来,那么应该如何画?有没有对一切可一笔画图形的通用解法?
下面我们将这个问题抽象成一般问题,然后从图论角度寻找上述疑问的答案。
图论中的一些概念
因为在下文论述过程中需要用到一些图论的基本概念,为了照顾在这方面不熟悉的朋友,我先将要用到的定义和概念列出来,如果您对图论的基本内容已经了然于胸,可以跳过这一节。
另外如不做特殊说明,下文所有的“图”都默认指“无向图”,本文的讨论不涉及“有向图”。
简单图——一个简单图可表示为G=(V, E),其中V是顶点集合,其中每个元素是图的一个顶点;E是边集合,其中每一个的元素是一个顶点对(a, b),其中a和b均属于V,这个顶点对表示顶点a和b 间有一条边相连。
多重图——简单图不允许同一组顶点对在E中出现两次,即一对顶点间最多只有一条边。
如果在简单图的基础上允许任一组顶点对间有任意条边,则简单图变为多重图。
一般图——如果在多重图的基础上允许自关联边,即允许(a, a)这样的顶点对出现在E中,则这种图叫一般图。
(我们后续所有讨论的对象都是一般图,如不做特殊说明,下文所有的“图”均指一般图)顶点的度——一个顶点的度是这个顶点所连接的边的条数。
连通图——如果一个图任意两个顶点之间都存在由边组成的通路,则这种图叫连通图。
(我们后续所有讨论的对象都是连通图,如不做特殊说明,下文所有的“图”均指无向一般连通图)
途径——在一个图G中,{x1, x2}, {x2, x3}, …, {xm-1, xm}叫做G的一个途径,如果x1和xm为同一顶点,则说这个途径是闭的,否则说这个途径是开的。
迹——如果一个途径中没有重复的边,则这个途径叫做“迹”。
欧拉迹——如果图G的一个迹包含了G所有的边,则这个迹叫做“欧拉迹”。
一笔画问题的抽象
有了上面的定义,我们就可以用数学语言描述一笔画问题了:
所谓一笔画问题,就是给定一个无向一般连通图,这个图存在欧拉迹的充分必要条件是什么?如果存在欧拉迹,如何求欧拉迹?
这个问题很庞大,我们化整为零,分几步去讨论。
另外,为了避免枯燥无味,我将不会从绝对严格的数理层面去做推理和证明,而是用一些直观的启发式方法,尽量让每位朋友都能读懂。
问题一:图G存在欧拉迹的必要条件是什么?
首先,我们来推导G存在欧拉迹的必要条件。
虽然满足必要条件不能充分证明G一定存在欧拉迹,但是不满足必要条件就一定不存在欧拉迹。
所以搞清这个问题,可以用来帮助我们判断出显然不能一笔画出的图。
欧拉迹分为开欧拉迹和闭欧拉迹,我们先讨论开欧拉迹的情况。
现已知图G存在开欧拉迹(等价于存在一笔画画法,并且这种画法在完成时不会回到起始顶点),那么可以推导出什么?
现在我们这样想:设{x1, x2}, {x2, x3}, …, {xm-1, xm}是G的一条开欧拉迹,那么{x1, x2, …, xm}是这条欧拉迹所经过的顶点的序列。
需要注意,这里除了x1和xm一定不是同一顶点,其它很多顶点可能是相同的。
因为欧拉迹只要求每个边出现且仅出现一次,但不限制同一顶点出现几次。
例如下图:
其中{a, b}, {b, c}, {c, a}, {a, d}, {d, e}, {e, c}是一个开欧拉迹,顶点序列为{a, b, c, a,d, e, c}。
现在我们这么考虑这个问题,对于某一顶点x,I(x)表示欧拉迹中进入x的次数,即走整个欧拉迹过程中从x以外的顶点进入x顶点的次数,O(x),表示离开x的次数,即当前在x顶点,然后离开x到其它顶点的次数。
我们顺着开欧拉迹走,对于所有顶点此时I(x)和O(x)均为0,当前笔触在x1处。
当从x1走到x2,O(x1)变为1,而I(x2)变为1。
我们可以想象,除起始顶点和终止顶点外,其它顶点当走完这个欧拉迹时,I(x)一定等于O(x),因为对于这些顶点,一次进入必然对应着一次离开。
而起始顶点的不同在于,它多一次离开(第一步),所以I(x1)+1=O(x1),同理,终止顶点多一次进入(最后一步),I(xm)=O(xm)+1。
我们还体会到这样一个事实:对于任意顶点,每一个进入和每一个离开都消耗此顶点的一个度。
因为欧拉迹不允许重复边,所以每一次进入和离开一定是走以前没有走过的边,因此顶点x的度为
I(x)+O(x)。
这样可以得出结论:如果G存在一个开欧拉迹,那么起始顶点和终止顶点的度数为奇数,而其它顶点的度数为偶数。
再来考虑G存在闭欧拉迹的情况。
根据上述思路,如果欧拉迹时闭的,则起始顶点和终止顶点为一个顶点,而这个顶点刚好多一个进入(最后),多一个离开(开始),这么一加,这个顶点的度也一定为偶数,其它顶点的度的推理与开欧拉迹相同。
所以可以得出结论:如果G存在一个闭欧拉迹,那么G所有顶点的度均为偶数。
综上可以得出,一个图G存在欧拉迹的必要条件是所有顶点的度数均为偶数或恰好有两个顶点度数为奇数。
从逻辑上说,如果一个命题成立,则其逆否命题也成立,我们可以得到推论:如果一个图G 不是所有顶点都具有偶数度,也不是恰好有两个顶点为奇数度,则G一定不存在欧拉迹。
现在我们再来看看最初的那个面试题:那个图有四个顶点的度为3,所以根据上述分析,那个图一定不存在欧拉迹,即不可能一笔画出。
问题二:图G存在欧拉迹的充分条件是什么?
上图我们只证明了条件的必要性,这只能告诉我们如何判断一个图不存在欧拉迹,那么如果一个图所有顶点都是偶数度或恰好有两个顶点是奇数度,那么是否可以确定这个图存在欧拉迹呢?也就是说,问题一中的条件是否是充分的?
不卖关子,我很高兴的告诉大家,那个条件确实是充分的。
也就是说,一个无向一般连通图G存在欧拉迹的充分必要条件是G中所有顶点均具有偶数度或恰好有两个顶点具有奇数度。
但是这个定理的数理证明十分复杂,我实在没有兴趣在这里证明,因为我相信大家一定没有兴趣看一堆公式。
因此,我放弃对充分性进行数理证明。
这个证明过程可以在机械工业出版社的《组合数学》(Richard A. Brualdi著)一书的第302-303页找到,有兴趣的朋友请参看。
问题三:如果图G存在欧拉迹,如何求解?
知道了判断欧拉迹存在性的充要条件,下面一个问题自然就是如果G存在欧拉迹,如何找出?
这个算法相当简单:
1、设顶点集合W,边集合F,均初始化为空集。
2、选择一个奇数度点(开欧拉迹)或任意顶点(闭欧拉迹)赋值给x,并将x放入W。
3、如果所有边都已进入F则终止,否则进入4。
4、选择x连接的一条不存在于F中的边(x, y),将(x, y)放入F,将y放入W(如果y不存在于W的话),然后让x=y。
5、回到3。
算法十分直观,就不多做解释,关于算法的正确性证明,有兴趣的朋友请参考上文提到《组合数学》一书中的第301页。
总结
下面总结一下一笔画问题相关的几个定理,记住这些,一笔画问题应该就难不倒你了。
1、一个无向一般连通图G可以一笔画出的充分必要条件是G中所有顶点均具有偶数度或恰好有两个顶点具有奇数度。
2、一个无向一般连通图G可以一笔画出且终止点不是起始点的充分必要条件是G中恰好有两个顶点具有奇数度。
3、一个无向一般连通图G可以一步画出且最后回到初始点的充分必要条件是G中所有顶点均具有偶数度。
4、如果一个无向一般连通图G不是所有顶点都具有偶数度,也不是恰好有两个顶点为奇数度,则G 一定不存在欧拉迹。
扩展阅读
其实对一笔画问题的最早研究可以追溯到欧拉(Leonhard Paul Euler)在1736年发表的一篇关于哥德堡七桥问题的论文。
那篇论文中欧拉解决了著名的哥德堡七桥问题,并且开创了一个全新的数学分支——图论与拓扑学。
有兴趣的朋友可以寻找相关材料阅读。
本文基于署名-非商业性使用 3.0许可协议发布,欢迎转载,演绎,但是必须保留本文的署名张洋(包含链接),且不得用户商业目的。
如您有任何疑问或者授权方面的协商,请与我联系。