﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>C++博客-Xredman编程小筑-随笔分类-资料</title><link>http://www.cppblog.com/xredman/category/10542.html</link><description /><language>zh-cn</language><lastBuildDate>Tue, 12 May 2009 11:26:36 GMT</lastBuildDate><pubDate>Tue, 12 May 2009 11:26:36 GMT</pubDate><ttl>60</ttl><item><title>欧拉图与哈密尔顿图</title><link>http://www.cppblog.com/xredman/archive/2009/05/12/82715.html</link><dc:creator>Xredman</dc:creator><author>Xredman</author><pubDate>Tue, 12 May 2009 09:55:00 GMT</pubDate><guid>http://www.cppblog.com/xredman/archive/2009/05/12/82715.html</guid><wfw:comment>http://www.cppblog.com/xredman/comments/82715.html</wfw:comment><comments>http://www.cppblog.com/xredman/archive/2009/05/12/82715.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/xredman/comments/commentRss/82715.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/xredman/services/trackbacks/82715.html</trackback:ping><description><![CDATA[<p style="FONT-SIZE: 14pt; FONT-FAMILY: 楷体_GB2312" align=center>欧拉图与哈密尔顿图</p>
<div style="FONT-SIZE: 14pt; FONT-FAMILY: 楷体_GB2312">
<p style="FONT-SIZE: 14pt; FONT-FAMILY: 楷体_GB2312" align=left>一、问题的提出</p>
<p style="FONT-SIZE: 14pt; FONT-FAMILY: 楷体_GB2312">　　图论起源于18世纪，1736年瑞士数学家欧拉 <img height=21 src="http://cise.sdkd.net.cn/lssx/7StressResolve/cha7/7-4.files/image002.gif" width=53 border=0 v:shapes="_x0000_i1026"> 发表了图论的第一篇论文&#8220;哥尼斯堡七桥问题&#8221;。在当时的哥尼斯堡城有一条横贯全市的普雷格尔河，河中的两个岛与两岸用七座桥联结起来，见图(1)。当时那里的居民热衷于一个难题：游人怎样不重复地走遍七桥，最后回到出发点。</p>
<p style="FONT-SIZE: 14pt; FONT-FAMILY: 楷体_GB2312">　　 <img height=150 src="http://cise.sdkd.net.cn/lssx/7StressResolve/cha7/7-4.files/image003.jpg" width=434 border=0 v:shapes="_x0000_i1028"> </p>
<p style="FONT-SIZE: 14pt; FONT-FAMILY: 楷体_GB2312">　　为了解决这个问题，欧拉用 <img height=21 src="http://cise.sdkd.net.cn/lssx/7StressResolve/cha7/7-4.files/image004.gif" width=68 border=0 v:shapes="_x0000_i1029"> <img height=17 src="http://cise.sdkd.net.cn/lssx/7StressResolve/cha7/7-4.files/image005.gif" width=13 border=0 v:shapes="_x0000_i1030"> 个字母代替陆地，作为 <img height=17 src="http://cise.sdkd.net.cn/lssx/7StressResolve/cha7/7-4.files/image005.gif" width=13 border=0 v:shapes="_x0000_i1031"> 个顶点，将联结两块陆地的桥用相应的线段表示，如图(2)，于是哥尼斯堡七桥问题就变成了图(2)中，是否存在经过每条边一次且仅一次，经过所有的顶点的回路问题了。欧拉在论文中指出，这样的回路是不存在的。</p>
<p style="FONT-SIZE: 14pt; FONT-FAMILY: 楷体_GB2312">二、定义</p>
<p style="FONT-SIZE: 14pt; FONT-FAMILY: 楷体_GB2312">　　<span style="COLOR: #ff0000">欧拉通路</span> (欧拉迹)——通过图中每条边一次且仅一次，并且过每一顶点的<span style="COLOR: #ff0000">通路</span>。</p>
<p style="FONT-SIZE: 14pt; FONT-FAMILY: 楷体_GB2312">　　<span style="COLOR: #ff0000">欧拉回路</span> (欧拉闭迹)——通过图中每条边一次且仅一次，并且过每一顶点的<span style="COLOR: #ff0000">回路</span>。</p>
<p style="FONT-SIZE: 14pt; FONT-FAMILY: 楷体_GB2312">　　欧拉图——存在欧拉回路的图。</p>
<p style="FONT-SIZE: 14pt; COLOR: #ff0000; FONT-FAMILY: 楷体_GB2312"><span style="COLOR: #000000">三、无向图是否具有欧拉通路或回路的判定</span></p>
<p style="FONT-SIZE: 14pt; FONT-FAMILY: 楷体_GB2312">　　 <img height=19 src="http://cise.sdkd.net.cn/lssx/7StressResolve/cha7/7-4.files/image006.gif" width=17 border=0 v:shapes="_x0000_i1032"> 有欧拉通路 <img height=16 src="http://cise.sdkd.net.cn/lssx/7StressResolve/cha7/7-4.files/image007.gif" width=23 border=0 v:shapes="_x0000_i1033"> <img height=19 src="http://cise.sdkd.net.cn/lssx/7StressResolve/cha7/7-4.files/image006.gif" width=17 border=0 v:shapes="_x0000_i1034"> 连通， <img height=19 src="http://cise.sdkd.net.cn/lssx/7StressResolve/cha7/7-4.files/image006.gif" width=17 border=0 v:shapes="_x0000_i1035"> 中<span style="COLOR: #ff0000">只有两个奇度顶点(它们分别是欧拉通路的两个端点)<span style="COLOR: #000080">(对此我觉得可以形成环)<br></span></span><br></p>
<p style="FONT-SIZE: 14pt; FONT-FAMILY: 楷体_GB2312">　　 <span style="COLOR: #ff0000"><img height=19 src="http://cise.sdkd.net.cn/lssx/7StressResolve/cha7/7-4.files/image006.gif" width=17 border=0 v:shapes="_x0000_i1064"> 有欧拉回路( <img height=19 src="http://cise.sdkd.net.cn/lssx/7StressResolve/cha7/7-4.files/image006.gif" width=17 border=0 v:shapes="_x0000_i1065"> 为欧拉图) <img height=19 src="http://cise.sdkd.net.cn/lssx/7StressResolve/cha7/7-4.files/image006.gif" width=17 border=0 v:shapes="_x0000_i1066"> 连通， <img height=19 src="http://cise.sdkd.net.cn/lssx/7StressResolve/cha7/7-4.files/image006.gif" width=17 border=0 v:shapes="_x0000_i1067"> 中均为偶度顶点。</span></p>
<p style="FONT-SIZE: 14pt; FONT-FAMILY: 楷体_GB2312">　　例1、以下图形能否一笔画成？</p>
<p style="FONT-SIZE: 14pt; FONT-FAMILY: 楷体_GB2312"><img height=120 src="http://cise.sdkd.net.cn/lssx/7StressResolve/cha7/7-4.files/image008.gif" width=457 border=0 v:shapes="_x0000_i1068"> </p>
<p style="FONT-SIZE: 14pt; FONT-FAMILY: 楷体_GB2312">　　解：(1)有 <img height=17 src="http://cise.sdkd.net.cn/lssx/7StressResolve/cha7/7-4.files/image005.gif" width=13 border=0 v:shapes="_x0000_i1069"> 个奇度顶点，无欧拉回路或通路，不能一笔画成。</p>
<p style="FONT-SIZE: 14pt; FONT-FAMILY: 楷体_GB2312">　　(2)与(3)都是 <img height=17 src="http://cise.sdkd.net.cn/lssx/7StressResolve/cha7/7-4.files/image009.gif" width=13 border=0 v:shapes="_x0000_i1070"> 个奇度顶点，其余均为偶度顶点，具有欧拉通路，可一笔画成。</p>
<p style="FONT-SIZE: 14pt; FONT-FAMILY: 楷体_GB2312">　　(4)图中均为偶度顶点，具有欧拉回路，可一笔画成。</p>
<p style="FONT-SIZE: 14pt; FONT-FAMILY: 楷体_GB2312">　　例2、&#8220;两只蚂蚁比赛问题&#8221;。两只蚂蚁甲、乙分别处在图 <img height=19 src="http://cise.sdkd.net.cn/lssx/7StressResolve/cha7/7-4.files/image006.gif" width=17 border=0 v:shapes="_x0000_i1036"> 中的顶点 <img height=21 src="http://cise.sdkd.net.cn/lssx/7StressResolve/cha7/7-4.files/image010.gif" width=27 border=0 v:shapes="_x0000_i1037"> 处，并设图中各边长度相等。甲提出同乙比赛：从它们所在顶点出发，走过图中所有边最后到达顶点 <img height=15 src="http://cise.sdkd.net.cn/lssx/7StressResolve/cha7/7-4.files/image011.gif" width=12 border=0 v:shapes="_x0000_i1038"> 处。如果它们速度相同，问谁最先到达目的地？<br>　　　　　　　　 <img height=151 src="http://cise.sdkd.net.cn/lssx/7StressResolve/cha7/7-4.files/image012.gif" width=146 border=0 v:shapes="_x0000_i1039"> </p>
<p style="FONT-SIZE: 14pt; FONT-FAMILY: 楷体_GB2312">　　解：图 <img height=19 src="http://cise.sdkd.net.cn/lssx/7StressResolve/cha7/7-4.files/image006.gif" width=17 border=0 v:shapes="_x0000_i1040"> 中，有两个奇度顶点 <img height=21 src="http://cise.sdkd.net.cn/lssx/7StressResolve/cha7/7-4.files/image013.gif" width=25 border=0 v:shapes="_x0000_i1041"> ，因此存在从 <img height=19 src="http://cise.sdkd.net.cn/lssx/7StressResolve/cha7/7-4.files/image014.gif" width=13 border=0 v:shapes="_x0000_i1042"> 到 <img height=15 src="http://cise.sdkd.net.cn/lssx/7StressResolve/cha7/7-4.files/image011.gif" width=12 border=0 v:shapes="_x0000_i1043"> 的欧拉通路，蚂蚁乙走到 <img height=15 src="http://cise.sdkd.net.cn/lssx/7StressResolve/cha7/7-4.files/image011.gif" width=12 border=0 v:shapes="_x0000_i1044"> 只要走一条欧拉通路，边数为 <img height=19 src="http://cise.sdkd.net.cn/lssx/7StressResolve/cha7/7-4.files/image015.gif" width=12 border=0 v:shapes="_x0000_i1045"> ，而蚂蚁甲要想走完图中所有边到达 <img height=15 src="http://cise.sdkd.net.cn/lssx/7StressResolve/cha7/7-4.files/image011.gif" width=12 border=0 v:shapes="_x0000_i1046"> ，至少要先走一条边到达 <img height=19 src="http://cise.sdkd.net.cn/lssx/7StressResolve/cha7/7-4.files/image014.gif" width=13 border=0 v:shapes="_x0000_i1047"> ，再走一条欧拉通路，故它至少要走 <img height=19 src="http://cise.sdkd.net.cn/lssx/7StressResolve/cha7/7-4.files/image016.gif" width=19 border=0 v:shapes="_x0000_i1048"> 条边到达 <img height=15 src="http://cise.sdkd.net.cn/lssx/7StressResolve/cha7/7-4.files/image011.gif" width=12 border=0 v:shapes="_x0000_i1049"> ，所以乙必胜。</p>
<p style="FONT-SIZE: 14pt; FONT-FAMILY: 楷体_GB2312">四、有向图是否具有欧拉通路或回路的判定</p>
<p style="FONT-SIZE: 14pt; FONT-FAMILY: 楷体_GB2312">　　 <img height=17 src="http://cise.sdkd.net.cn/lssx/7StressResolve/cha7/7-4.files/image017.gif" width=17 border=0 v:shapes="_x0000_i1050"> 有欧拉通路 <img height=16 src="http://cise.sdkd.net.cn/lssx/7StressResolve/cha7/7-4.files/image007.gif" width=23 border=0 v:shapes="_x0000_i1051"> <img height=17 src="http://cise.sdkd.net.cn/lssx/7StressResolve/cha7/7-4.files/image017.gif" width=17 border=0 v:shapes="_x0000_i1052"> 连通，除两个顶点外，其余顶点的入度均等于出度，这两个特殊的顶点中，一个顶点的入度比出度大 <img height=17 src="http://cise.sdkd.net.cn/lssx/7StressResolve/cha7/7-4.files/image018.gif" width=9 border=0 v:shapes="_x0000_i1053"> ，另一个顶点的入度比出度小 <img height=17 src="http://cise.sdkd.net.cn/lssx/7StressResolve/cha7/7-4.files/image018.gif" width=9 border=0 v:shapes="_x0000_i1054"> 。</p>
<p style="FONT-SIZE: 14pt; FONT-FAMILY: 楷体_GB2312">　　 <img height=17 src="http://cise.sdkd.net.cn/lssx/7StressResolve/cha7/7-4.files/image017.gif" width=17 border=0 v:shapes="_x0000_i1055"> 有欧拉回路( <img height=17 src="http://cise.sdkd.net.cn/lssx/7StressResolve/cha7/7-4.files/image017.gif" width=17 border=0 v:shapes="_x0000_i1056"> 为欧拉图) <img height=16 src="http://cise.sdkd.net.cn/lssx/7StressResolve/cha7/7-4.files/image007.gif" width=23 border=0 v:shapes="_x0000_i1057"> <img height=17 src="http://cise.sdkd.net.cn/lssx/7StressResolve/cha7/7-4.files/image017.gif" width=17 border=0 v:shapes="_x0000_i1058"> 连通， <img height=17 src="http://cise.sdkd.net.cn/lssx/7StressResolve/cha7/7-4.files/image017.gif" width=17 border=0 v:shapes="_x0000_i1059"> 中所有顶点的入度等于出度。</p>
<p style="FONT-SIZE: 14pt; FONT-FAMILY: 楷体_GB2312">　　例3、判断以下有向图是否欧拉图。</p>
<p style="FONT-SIZE: 14pt; FONT-FAMILY: 楷体_GB2312">　　 <img height=81 src="http://cise.sdkd.net.cn/lssx/7StressResolve/cha7/7-4.files/image019.gif" width=362 border=0 v:shapes="_x0000_i1115"> </p>
<p style="FONT-SIZE: 14pt; FONT-FAMILY: 楷体_GB2312">解：(1)不是欧拉图，也无欧拉通路，(2)不是欧拉图，但有欧拉通路，(3)是欧拉图。</p>
<p style="FONT-SIZE: 14pt; FONT-FAMILY: 楷体_GB2312" align=center>&nbsp;哈密尔顿图。</p>
<p style="FONT-SIZE: 14pt; FONT-FAMILY: 楷体_GB2312">一、问题的提出</p>
<p style="FONT-SIZE: 14pt; FONT-FAMILY: 楷体_GB2312">　　哈密尔顿图起源于一种游戏，它是由英国数学家哈密尔顿 <img height=21 src="http://cise.sdkd.net.cn/lssx/7StressResolve/cha7/7-4.files/image020.gif" width=81 border=0 v:shapes="_x0000_i1060"> 于1859年提出的&#8220;周游世界游戏&#8221;，它用一个正十二面体的20个顶点代替20个城市(图(1))，这个正十二面体同构于一个平面图(图(2))，要求沿着正十二面体的棱，从一个城市出发，经过每个城市恰好一次，然后回到出发点，这个游戏曾风靡一时，它有若干个解，称为哈密尔顿图。<br><br>　　 <img height=150 src="http://cise.sdkd.net.cn/lssx/7StressResolve/cha7/7-4.files/image021.gif" width=265 border=0 v:shapes="_x0000_i1061"> </p>
<p style="FONT-SIZE: 14pt; FONT-FAMILY: 楷体_GB2312">二、哈密尔顿图</p>
<p style="FONT-SIZE: 14pt; FONT-FAMILY: 楷体_GB2312">　　哈密尔顿通路——通过图中每个顶点一次且仅一次的通路。</p>
<p style="FONT-SIZE: 14pt; FONT-FAMILY: 楷体_GB2312">　　哈密尔顿回路——通过图中每个顶点一次且仅一次的回路。</p>
<p style="FONT-SIZE: 14pt; FONT-FAMILY: 楷体_GB2312">　　哈密尔顿图——存在哈密尔顿回路的图。</p>
<p style="FONT-SIZE: 14pt; FONT-FAMILY: 楷体_GB2312">三、判定</p>
<p style="FONT-SIZE: 14pt; FONT-FAMILY: 楷体_GB2312">　　遗憾的是至今尚未找到一个判别哈密尔顿回路和通路的充分必要条件。虽然有些充分非必要，或必要非充分条件，但在大部分情况下，还是采用尝试的办法。</p>
<p style="FONT-SIZE: 14pt; FONT-FAMILY: 楷体_GB2312">　　例1、判断下图是否具有哈密尔顿回路，通路。</p>
<p style="FONT-SIZE: 14pt; FONT-FAMILY: 楷体_GB2312">　　 <img height=92 src="http://cise.sdkd.net.cn/lssx/7StressResolve/cha7/7-4.files/image022.gif" width=362 border=0 v:shapes="_x0000_i1063"> <br clear=all></p>
<p style="FONT-SIZE: 14pt; FONT-FAMILY: 楷体_GB2312">　　解：(1) 存在哈密尔顿通路，但不存在哈密尔顿回路。</p>
<p style="FONT-SIZE: 14pt; FONT-FAMILY: 楷体_GB2312">　　　　(2) 是哈密尔顿图，存在哈密尔顿回路和通路。</p>
<p style="FONT-SIZE: 14pt; FONT-FAMILY: 楷体_GB2312">　　　　(3) 不存在哈密尔顿回路，也不存在哈密尔顿通路。</p>
<p style="FONT-SIZE: 14pt; FONT-FAMILY: 楷体_GB2312">　　例2、画一个无向图，使它</p>
<p style="FONT-SIZE: 14pt; FONT-FAMILY: 楷体_GB2312">　　　　(1) 具有欧拉回路和哈密尔顿回路，</p>
<p style="FONT-SIZE: 14pt; FONT-FAMILY: 楷体_GB2312">　　　　(2) 具有欧拉回路而没有哈密尔顿回路，</p>
<p style="FONT-SIZE: 14pt; FONT-FAMILY: 楷体_GB2312">　　　　(3) 具有哈密尔顿回路而没有欧拉回路，</p>
<p style="FONT-SIZE: 14pt; FONT-FAMILY: 楷体_GB2312">　　　　(4) 既没有欧拉回路，也没有哈密尔顿回路。</p>
<p style="FONT-SIZE: 14pt; FONT-FAMILY: 楷体_GB2312">　　解：所要的图分别如下：</p>
<p style="FONT-SIZE: 14pt; FONT-FAMILY: 楷体_GB2312"><img height=95 src="http://cise.sdkd.net.cn/lssx/7StressResolve/cha7/7-4.files/image023.gif" width=446 border=0 v:shapes="_x0000_i1062">&nbsp;<br><br>转自:http://cise.sdkd.net.cn/lssx/7StressResolve/cha7/tulun.htm</p>
</div>
<img src ="http://www.cppblog.com/xredman/aggbug/82715.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/xredman/" target="_blank">Xredman</a> 2009-05-12 17:55 <a href="http://www.cppblog.com/xredman/archive/2009/05/12/82715.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>