图论经典问题

图论经典问题
图论经典问题

常见问题:

1、图论的历史

图论以图为研究对象的数学分支。图论中的图指的是一些点以及连接这些点的线的总体。通常用点代表事物,用连接两点的线代表事物间的关系。图论则是研究事物对象在上述表示法中具有的特征与性质的学科。

在自然界和人类社会的实际生活中,用图形来描述和表示某些事物之间的关系既方便又直观。例如,国家用点表示,有外交关系的国家用线连接代表这两个国家的点,于是世界各国之间的外交关系就被一个图形描述出来了。另外我们常用工艺流程图来描述某项工程中各工序之间的先后关系,用网络图来描述某通讯系统中各通讯站之间信息传递关系,用开关电路图来描述IC中各元件电路导线连接关系等等。

事实上,任何一个包含了某种二元关系的系统都可以用图形来模拟。由于我们感兴趣的是两对象之间是否有某种特定关系,所以图形中两点之间连接与否最重要,而连接线的曲直长短则无关紧要。由此经数学抽象产生了图的概念。研究图的基本概念和性质、图的理论及其应用构成了图论的主要内容。

图论的产生和发展经历了二百多年的历史,大体上可分为三个阶段:

第一阶段是从1736年到19世纪中叶。当时的图论问题是盛行的迷宫问题和游戏问题。最有代表性的工作是著名数学家L.Euler于1736年解决的哥尼斯堡七桥问题(Konigsberg Seven Bridges Problem)。

东普鲁士的哥尼斯堡城(现今是俄罗斯的加里宁格勒,在波罗的海南岸)位于普雷格尔(Pregel)河的两岸,河中有一个岛,于是城市被河的分支和岛分成了四个部分,各部分通过7座桥彼此相通。如同德国其他城市的居民一样,该城的居民喜欢在星期日绕城散步。于是产生了这样一个问题:从四部分陆地任一块出发,按什么样的路线能做到每座桥经过一次且仅一次返回出发点。这就是有名的哥尼斯堡七桥问题。

哥尼斯堡七桥问题看起来不复杂,因此立刻吸引所有人的注意,但是实际上很难解决。

瑞士数学家(Leonhard Euler)在1736年发表的“哥尼斯堡七桥问题”的文章中解决了这个问题。这篇论文被公认为是图论历史上的第一篇论文,Euler也因此被誉为图论之父。

欧拉把七桥问题抽象成数学问题---一笔画问题,并给出一笔画问题的判别准则,从而判定七桥问题不存在解。Euler是这样解决这个问题的:将四块陆地表示成四个点,桥看成是对应结点之间的连线,则哥尼斯堡七桥问题就变成了:从A,B,C,D任一点出发,通过每边一次且仅一次返回原出发点的路线(回路)是否存在?Euler证明这样的回路是不存在的。

第二阶段是从19世纪中叶到1936年。图论主要研究一些游戏问题:迷宫问题、博弈问题、棋盘上马的行走线路问题。一些图论中的著名问题如四色问题(1852年)和Hamilton环游世界问题(1856年)也大量出现。同时出现了以图为工具去解决其它领域中一些问题的成果。1847年德国的克希霍夫(G.R.Kirchoff)将树

的概念和理论应用于工程技术的电网络方程组的研究。1857年英国的凯莱(A.Cayley)也独立地提出了树的概念,并应用于有机化合物的分子结构的研究中。1936年匈牙利的数学家哥尼格(D.Konig)写出了第一本图论专著《有限图与无限图的理论》(Theory of directed and Undirected Graphs)。标志着图论作为一门独立学科。

第三阶段是1936年以后。由于生产管理、军事、交通运输、计算机和通讯网络等方面的大量问题的出现,大大促进了图论的发展。特别是电子计算机的大量应用,使大规模问题的求解成为可能。实际问题如电网络、交通网络、电路设计、数据结构以及社会科学中的问题所涉及到的图形都是很复杂的,需要计算机的帮助才有可能进行分析和解决。目前图论在物理、化学、运筹学、计算机科学、电子学、信息论、控制论、网络理论、社会科学及经济管理等几乎所有学科领域都有应用。

2、平面图和印刷电路板的设计

有时候,实际问题要求我们把图画在平面上,使得不是节点的地方不能有边交叉,这在图论中就是判断一个图是否是平面图的问题。

像印刷电路板(Printed Circuit Board,PCB)(单层印刷电路板,多层印刷电路板)几乎会出现在每一种电子设备中。PCB的主要功能是提供上头各项零件的相互电气连接。随着电子设备越来越复杂,需要的元件越来越多,PCB上头的导线与元件也越来越密集了。

板子本身的基板是由绝缘隔热、不易弯曲的材料制作而成。在表面可以看到的细小线路材料是铜箔,原本铜箔是覆盖在整个板子上的,而在制造过程中部份被蚀刻处理掉,留下来的部份就变成网状的细小线路了。这些线路被称作导线或布线,并用来提供PCB上元件的电路连接。

因此在设计和制造印刷电路板时,首先要解决的问题是判定一个给定的电路图是否能印刷在同一层板上而使民线不发生短路?若可以,怎样给出具体的布线方案?

将要印刷的电路图看成是一个无向简单连通图G,其中顶点代表电子元件,边代表导线,于是上述问题归结为判定G是否是平面图?若G是平面图,由怎样给出它的一个平面表示来?

平面图的判断问题,在数学上已由波兰数学家库拉托夫斯基(Kuratowski) 于1930年解决。库拉托夫斯基定理给出的充要条件看似简单,但实现起来很难。但是许多研究拓扑图论的数学家提出了比较有效的图的平面性判定的准则,如DMP方法以就是其中的一个有代表性方法。

3、图的着色和四色问题

图的着色起源于“四色问题”。四色问题又称四色猜想,是世界近代三大数学难题之一。

四色问题是说画在纸上的每张地图只需要用4种颜色就能使具有共同边界的国家不会有相同的颜色。用数学语言表示,就是将平面任意地细分为不相重迭的区域,每一个区域总可以用1,2,3,4这四个数字之一来标记,而不会使相邻的两个区域得到相同的数字。

这里所指的相邻区域,是指有一整段边界是公共的。如果两个区域只相遇于一点或有限多点,就不叫相邻的。因为用相同的颜色给它们着色不会引起混淆。

四色猜想的提出来自英国。1852年,毕业于伦敦大学的格思里(F.Guthrie)来到一家科研单位搞地图着色工作时,发现了一种有趣的现象:“看来,每幅地图都可以用四种颜色着色,使得有共同边界的国家都着上不同的颜色。”这个现象能不能从数学上加以严格证明呢?他和在大学读书的弟弟格里斯决心试一试。兄弟二人为证明这一问题而使用的稿纸已经堆了一大叠,可是研究工作没有进展。1852年10月23日,他的弟弟就这个问题的证明请教了他的老师、著名数学家德?摩尔根(De Morgan),摩尔根也没有能找到解决这个问题的途径,于是写信向自己的好友、著名数学家汉密尔顿爵士(W.R. Hamilton)请教。汉密尔顿接到摩尔根的信后,对四色问题进行论证。但直到1865年汉密尔顿逝世为止,问题也没有能够解决。

起初,这个问题并没有引起数学家们的注意,认为这是一个不证即明的事实。但经过一些尝试之后,发现并不是那么回事。1878年,英国当时最著名的数学家凯利(A. Cayley)正式向伦敦数学学会提出了这个问题,于是四色猜想成了世界数学界关注的问题。世界上许多一流的数学家都纷纷参加了证明四色猜想的大会战。

1878~1880年两年间,著名的律师兼数学家肯普(Kempe)和泰勒(Taylor)两人分别提交了证明四色猜想的论文,宣布证明了四色定理,大家都认为四色猜想从此也就解决了。

但是后来人们发现他们都错了。后来,越来越多的数学家虽然对此绞尽脑汁,但一无所获。于是,人们开始认识到,这个貌似容易的题目,其实是一个可与费马大定理相媲美的难题。

不过肯普的证明虽然失败了,但它在证明中提供的思想和方法仍然是后来许多数学家冲击四色问题的基础。美国数学家富兰克林于1939年证明了22国以下的地图都可以用四色着色。1950年,有人从22国推进到35国。1960年,有人又证明了39国以下的地图可以只用四种颜色着色;随后又推进到了50国。但是这种推进仍然十分缓慢。

电子计算机问世以后,由于演算速度迅速提高,加之人机对话的出现,大大加快了对四色猜想证明的进程。1976年6月,美国伊利诺大学的阿佩尔(Appel)、哈肯(Haken)和柯齐(Koch)三人合作编制了一个程序,在美国伊利诺斯大学的两台不同的电子计算机上,用了1260个小时,作了100多亿次逻辑判断,给出了四色猜想证明,轰动了世界。

这是一百多年来吸引许多数学家与数学爱好者的大事,当两位数学家将他们的研究成果发表的时候,当地的邮局在当天发出的所有邮件上都加盖了“四色足够”的特制邮戳,以庆祝这一难题获得解决。

“四色问题”的被证明不仅解决了一个历时100多年的难题,而且成为数学史上一系列新思维的起点。在“四色问题”的研究过程中,不少新的数学理论随之产生,也发展了很多数学计算技巧。如将地图的着色问题化为图论问题,丰富了图论的内容。不仅如此,“四色问题”在有效地设计航空班机日程表、设计计算机的编码程序上都起到了推动作用。

不过不少数学家并不满足于计算机取得的成就,他们认为应该有一种简捷明快的书面证明方法。直到现在,仍由不少数学家和数学爱好者在寻找更简洁的证明方法。

4、运输网络

自从克希霍夫运用图论从事电路网络的结构分析以来,网络理论的研究和应用就越来越广泛。特别是近几十年来,电路网络、运输网络、通讯网络等与工程和应用密切相关的课题受到了高度的重视。

无自回路的有向赋权图称为网络(Network)。在一个网络中,有向边上的权称为容量(Capacity)。网络中入度为0的结点称为源(Source),用字母s表示;出度为0的结点称为汇(Trap),用字母t表示。

在某些问题,只考虑有单一源和单一汇的网络(即运输网络),而在另一些问题中(如通讯网络),根本就不考虑源和汇。

运输网络的实际意义可以用公路网、铁路网、和供水系统、电网等来说明,也就是“货物从产地s,通过若干中转站,到达目的地t”这类情形的一般模型。这里将源和汇分别看成是货物的产地和目的地,其他结点是中转站,有向边是连接两站的道路(公路、铁路、水管或电线等),容量则是某一段道路允许的通行能力的上限。

在运输网络中要考虑的是从源到汇的实际流通量,显然它与每条有向边的容量有关,也和每个结点的转运能力有关。对运输货物来讲,除了容量之外,每条边还被赋予一个非负实数,这一组数若满足以下条件:单位时间内通过每条道路运送的货物总量不能超过道路的容量;每一个中转站的流入量等于流出量;源的流出量等于汇的总流入量(即网络的流量(Discharge))。则称这组数为该运输网络的一个流(Flow)。

一个运输网络中具有可能的最大值的流称为最大流。在一个运输网络中,可能不止一个最大流,即可能有几个不同的流,都具有最大值。

给定运输网络求其最大流的问题,就是怎样使给定网络在单位时间运输量最大的问题,并且确定当网络的流量最大时的流。

最大流问题的解决显然在现实生活中有很重大的应用价值。

5、通讯网络

网络应用的另一重要方面是通讯网络,如电话网络、计算机网络、管理信息系统、医疗数据网络、银行数据网络、开关网络等等。这些网络的基本要求是网络中各用户能够快速安全地传递信息,不产生差错和故障,同时使建造和维护网络所需费用低。

通讯网络中最重要的整体问题是网络的拓扑结构。根据用途和性能指标的不同要求,通讯网络有不同的拓扑结构,如环形网络、树形网络、星形网络、分布式网络、网状网络及混合型网络等等。通讯网络是一个强连通的有向图。

除了网络的拓扑结构之外,通讯网络还要考虑流量和控制问题、网络的可靠性等问题。图论中的连通度在通讯网络中有着重要的应用,是大规模互连容错网络可靠性的有效性分析的基础。当然网络的可靠性涉及的因素很多,但是从通讯网络作为一个强连通的有向图来说,一个具有最佳连通性的网络就不易出现阻碍问题。

6、二元树的应用----前缀码(哈夫曼编码)

在通讯系统中,常用二进制来表示字符。但由于字符出现的频率不一样以及为了保密的原因,能否用不等长的二进制数表示不同的字符,使传输的信息所用的总码元尽可能少呢?

但是不等长的编码方案给编码和译码带来了困难。为了解决这个问题,我们引入

了前缀码(哈夫曼编码)。

设ab…cd为一个长为n的字符串,则a,ab,…,ab…c分别为它的长为1,2,…,n-1的前缀(Prefix)。

设A是一个字符串集,若其中的任一字符串都不是其它字符串的前缀,则称A

为一个前缀码(哈夫曼编码)(Prefixed Code)。若组成A的字符串的只有字符0和1,则称A为二元前缀码(Binary Prefixed Code)。如{000,001,01,10,110,111}是一个二元前缀码,而{000,001,01,10,11,111}不是一个二元前缀码。

那么如何构造一个二元前缀码并用它进行编码和译码呢?

我们利用二元树来产生一个二元前缀码:

1 构造一棵二元树,树根的左侧用0标记,右侧用1标记;

2 分支点v的左侧(右侧)的标记就是标记v的二进制数最右端加上0(1);

3 任一片树叶的标记串不是其它树叶的标记串的前缀;

4 将所有树叶的标记串取来就可构成一个二元前缀码。

然后对要发送的信息中的每个字符分别用这个二元前缀码中的字符串代表,当然应该用越长的字符串代表出现频率越最低的字符串。

当接收方接到发送方发过去的信息(实际上是二进制位组成的一个序列),他也将按照那棵标记过的二元树来进行译码,还原出真正的信息。过程如下:

接收方一边接收一边译码,从第一个接收的二进制位开始,按接收到的是0还是1,分别从当前结点的左子树和右子树往下走。如果遇到一片树叶,说明已得到一个字符的码元。从下一个接收的位开始又从根结点起重复上述过程。

如我们由一棵二元树得到一个二元前缀码{010(确),011(实),11(爱),10(我),00(你)}对应的二元树,现将下列二进制串“101100100100111100”译码。译码的结果是:10,11,00,10,010,011,11,00。翻译成中文就是“我爱你,我确实爱你。”

图论算法及其MATLAB程序代码

图论算法及其MATLAB 程序代码 求赋权图G =(V ,E ,F )中任意两点间的最短路的Warshall-Floyd 算法: 设A =(a ij )n ×n 为赋权图G =(V ,E ,F )的矩阵,当v i v j ∈E 时a ij =F (v i v j ),否则取a ii =0,a ij =+∞(i ≠j ),d ij 表示从v i 到v j 点的距离,r ij 表示从v i 到v j 点的最短路中一个点的编号. ①赋初值.对所有i ,j ,d ij =a ij ,r ij =j .k =1.转向② ②更新d ij ,r ij .对所有i ,j ,若d ik +d k j <d ij ,则令d ij =d ik +d k j ,r ij =k ,转向③. ③终止判断.若d ii <0,则存在一条含有顶点v i 的负回路,终止;或者k =n 终止;否则令k =k +1,转向②. 最短路线可由r ij 得到. 例1求图6-4中任意两点间的最短路. 解:用Warshall-Floyd 算法,MATLAB 程序代码如下: n=8;A=[0281Inf Inf Inf Inf 206Inf 1Inf Inf Inf 8607512Inf 1Inf 70Inf Inf 9Inf Inf 15Inf 03Inf 8 Inf Inf 1Inf 3046 Inf Inf 29Inf 403 Inf Inf Inf Inf 8630];%MATLAB 中,Inf 表示∞ D=A;%赋初值 for (i=1:n)for (j=1:n)R(i,j)=j;end ;end %赋路径初值 for (k=1:n)for (i=1:n)for (j=1:n)if (D(i,k)+D(k,j)

第5-6章:如何建立数学模型及实例

如 何 建 立 数 学 模 型 及 实 例 数学建模培训 科研处数学建模小组

第五章:如何建立数学模型 怎样撰写数学建模的论文? 1.什么是数学模型? 数学模型是对于现实世界的一个特定对象,一个特定目的,根据特有的内在规律,做出一些必要的假设,运用适当的数学工具,得到一个数学结构。 简单地说:就是系统的某种特征的本质的数学表达式(或是用数学术语对部分现实世界的描述),即用数学式子(如函数、图形、代数方程、微分方程、积分方程、差分方程等)来描述(表述、模拟)所研究的客观对象或系统在某一方面的存在规律。 2.什么是数学建模?数学建模是利用数学方法解决实际问题的一种 实践。即通过抽象、简化、假设、引进变量等处理过程后,将实际问题用数学方式表达,建立起数学模型,然后运用先进的数学方法及计算机技术进行求解。 观点:“所谓高科技就是一种数学技术” 注数学建模其实并不是什么新东西,可以说有了数学并需要用数学去解决实际问题,就一定要用数学的语言、方法去近似地刻划该实际问题,这种刻划的数学表述的就是一个数学模型,其过程就是数学建模的过程。数学模型一经提出,就要用一定的技术手段(计算、证明等)来求解并验证,其中大量的计算往往是必不可少的,高性能的计算机的出现使数学建模这一方法如虎添翼似的得到了飞速的发展,掀起一个高潮。 注 数学建模将各种知识综合应用于解决实际问题中,是培养和提高同学们应用所学知识分析问题、解决问题的能力的必备手段之一。 3.数学建模的一般方法和步骤建立数学模型的方法和步骤并没有一定的模 式,但一个理想的模型应能反映系统的全部重要特征:模型的可靠性和模型的使用性 建模的一般方法: ◆机理分析◆测试分析方法 机理分析:根据对现实对象特性的认识,分析其因果关系,找出反映内部机理的规律,所建立的模型常有明确的物理或现实意义。 测试分析方法:将研究对象视为一个“黑箱”系统,内部机理无法直接寻求,通过测量系统的输入输出数据,并以此为基础运用统计分析方法,按照事先确定的准则在某一类模型中选出一个数据拟合得最好的模型。测试分析方法也叫做系统辩识。 将这两种方法结合起来使用,即用机理分析方法建立模型的结构,用系统测试方法来确定模型的参数,也是常用的建模方法。在实际过程中用那一种方法建模主要是根据我们对研究对象的了解程度和建模目的来决定。机理分析法建模的具体步骤大致可见下图。

数学建模中的图论方法

数学建模中的图论方法 一、引言 我们知道,数学建模竞赛中有问题A和问题B。一般而言,问题A是连续系统中的问题,问题B是离散系统中的问题。由于我们在大学数学教育内容中,连续系统方面的知识的比例较大,而离散数学比例较小。因此很多人有这样的感觉,A题入手快,而B题不好下手。 另外,在有限元素的离散系统中,相应的数学模型又可以划分为两类,一类是存在有效算法的所谓P类问题,即多项式时间内可以解决的问题。但是这类问题在MCM中非常少见,事实上,由于竞赛是开卷的,参考相关文献,使用现成的算法解决一个P类问题,不能显示参赛者的建模及解决实际问题能力之大小;还有一类所谓的NP问题,这种问题每一个都尚未建立有效的算法,也许真的就不可能有有效算法来解决。命题往往以这种NPC问题为数学背景,找一个具体的实际模型来考验参赛者。这样增加了建立数学模型的难度。但是这也并不是说无法求解。一般来说,由于问题是具体的实例,我们可以找到特殊的解法,或者可以给出一个近似解。 图论作为离散数学的一个重要分支,在工程技术、自然科学和经济管理中的许多方面都能提供有力的数学模型来解决实际问题,所以吸引了很多研究人员去研究图论中的方法和算法。应该说,我们对图论中的经典例子或多或少还是有一些了解的,比如,哥尼斯堡七桥问题、中国邮递员问题、四色定理等等。图论方法已经成为数学模型中的重要方法。许多难题由于归结为图论问题被巧妙地解决。而且,从历年的数学建模竞赛看,出现图论模型的频率极大,比如: AMCM90B-扫雪问题; AMCM91B-寻找最优Steiner树; AMCM92B-紧急修复系统的研制(最小生成树) AMCM94B-计算机传输数据的最小时间(边染色问题) CMCM93B-足球队排名(特征向量法) CMCM94B-锁具装箱问题(最大独立顶点集、最小覆盖等用来证明最优性) CMCM98B-灾情巡视路线(最优回路) 等等。这里面都直接或是间接用到图论方面的知识。要说明的是,这里图论只是解决问题的一种方法,而不是唯一的方法。 本文将从图论的角度来说明如何将一个工程问题转化为合理而且可求解的数学模型,着重介绍图论中的典型算法。这里只是一些基础、简单的介绍,目的在于了解这方面的知识和应用,拓宽大家的思路,希望起到抛砖引玉的作用,要掌握更多还需要我们进一步的学习和实践。

组合数学与图论复习题与参考答案

组合数学与图论复习题及答案 1.Show that if n+1 integers are chosen form the set {1,2, …,2n},then there are always two which differ by at most 2. 从{1,2, …,2n}中选出n+1个数,在这n+1个数中,一定存在两个数,其中一个整数能整除另外一个整数。 任何一个数都可以写成2k*L,其中k是非负数,L是正奇数。现在从1到2n 之间只有n个奇数。由于有n+1个数都能表示成2k*L,而L的取值只有n中,所以有鸽子洞原理知道,至少有两个数的L是一样的,于是对应k小的那个就可以整除k大的另一个数。 2.Show that for any given 52 integers there are exist two of them whose sum, or else difference, is divisible 100. 设52个整数a 1,a 2 ,…,a 52 被100除的余数分别是r 1 ,r 2 ,…,r 52 ,而任意一 个数被100除余数为0,1,2,…,99,一共100个。他们可以分为51个类{0},{1,99},{2,98},…,{49,51},{50}。将这51个集合视为鸽笼,则将 r 1,r 2 ,…,r 52 放入51个笼子中,至少有两个属于同一个笼子,所以要么有ri=rj, 要么有ri+rj=100,也就是说ai-aj|100或者ai+aj|100。 3.从1,2,3,…,2n中任选n+1个数,证明在这n+1个数中至少有一对数互质。 鸽子洞原理,必有两个数相邻,相邻的两个数互质 4.Prove that Ramsey number R(p,q)≤R(p,q-1)+R(p-1,q). 令N=R(p,q-1)+R(p-1,q),从N个人中中随意选取一个a,F表示与a相识的人,S表示与a不相识的人。 在剩下的R(p,q-1)+R(p-1,q)-2+1个人中,由鸽子洞原理有,或者F中有R(p,q-1)人,或者S中有R(p-1,q)人。如果F中有R(p,q-1)人,则与a相识的人为p个;如果S中有R(p-1,q)人,则与a不相识的人有p个。所以有R(p,q)≤R(p,q-1)+R(p-1,q) 5.There are 10 people, either there are 3 each pair of whom are acquainted, or there are 4 each pair of whom are unacquainted。 从10人中随意选一个人p,F表示与p相识的人,S表示与p不相识的人若F中至少有4人,如果至少有4人不相识,则满足题设;如果有2人相识,则加上p有3人相识,也满足题设。 若F中至多有3人,则S中至少有6人,6人中至少有3人相识,或者不相识。如果相识则满足题设,如果不相识加上p不相识的人就有4个,也满足题设。6.In how many ways can six men and six ladies be seated at round table if the men and ladies to sit in alternate seats? 6个男的先进行圆排列,然后6个女的插入空位。 7.In how many ways can 15 people be seated at round table if B refuses to sit next to A? What if B only refuses to sit on A right?

经典图论问题

5经典图论问题 5.1 一笔画问题 一笔画算法即是从起点a开始选择关联边(第一这条边不是往回倒,第二这条边在前面延伸路上没有出现过)向前延伸,如果到达终点b,得到a—b迹,判断路上的的边数是否为图的总边数,是就终止,否则选择迹上某个关联边没有用完的顶点v,用同样方式再搜索v—v的闭迹,添加到a—b迹上,即得到a—v---v—b迹,如果这个迹的边数还没有达到总边数,则再选择迹上某个关联边没有用完的顶点。。。。。。逐步扩展即可。

二、弗罗莱(Fleury )算法 任取v 0∈V(G),令P 0=v 0; 设P i =v 0e 1v 1e 2…e i v i 已经行遍,按下面方法从中选取e i+1: (a )e i+1与v i 相关联; (b )除非无别的边可供行遍,否则e i+1不应该为G i =G-{e 1,e 2, …, e i }中的桥(所谓桥是一条删除后使连通图不再连通的边); (c )当(b )不能再进行时,算法停止。 5.2 中国邮递员问题(CPP ) 规划模型: 设ij x 为经过边j i v v 的次数,则得如下模型。 ∑∈= E v v ij ij j i x z ?min ∑ ∑ E ∈E ∈∈=j i i k v v i v v ki ij V v x x , E ∈∈≤j i ij v v N x ,1 ..t s

5.3旅行推销员问题(TSP,货郎担问题)(NPC问题) 定义:包含图G的所有定点的路(圈)称为哈密顿路(圈),含有哈密顿圈得图称为哈密顿图。 分析:从一个哈密顿圈出发, 算法一:(哈密顿圈的充要条件:一包含所有顶点的连通子图,二每个顶点度数为2) 象求最小生成树一样,从最小权边加边,顶点度数大于3以及形成小回路的边去掉。 算法二: 算法三:

图论与组合数学期末复习题含答案

组合数学部分 第1章 排列与组合 例1: 1)、求小于10000的含1的正整数的个数; 2、)求小于10000的含0的正整数的个数; 解:1)、小于10000的不含1的正整数可看做4位数,但0000除外.故有9×9×9×9-1=6560个.含1的有:9999-6560=3439个 2)、“含0”和“含1”不可直接套用。0019含1但不含0。在组合的习题中有许多类似的隐含的规定,要特别留神。不含0的1位数有19个,2位数有29个,3位数有39个,4位数有49个 不含0小于10000的正整数有() ()73801919999954321=--=+++个含0小于10000的正整数9999-7380=2619个。 例2: 从[1,300]中取3个不同的数,使这3个数的和能被3整除,有多少种方案? 解:将[1,300]分成3类: A={i|i ≡1(mod 3)}={1,4,7,…,298}, B={i|i ≡2(mod 3)}={2,5,8,…,299}, C={i|i ≡0(mod 3)}={3,6,9,…,300}. 要满足条件,有四种解法: 1)、3个数同属于A; 2)、3个数同属于B ; 3)、3个数同属于C; 4)、A,B,C 各取一数;故共有3C(100,3)+1003=485100+1000000=1485100。 例3:(Cayley 定理:过n 个有标志顶点的数的数目等于2-n n ) 1)、写出右图所对应的序列; 2)、写出序列22314所对应的序列; 解: 1)、按照叶子节点从小到大的顺序依次去掉节点(包含与此叶子 节点相连接的线),而与这个去掉的叶子节点相邻的另外一个点值则记入序列。如上图所示,先去掉最小的叶子节点②,与其相邻的点为⑤,然后去掉叶子节点③,与其相邻的点为①,直到只剩下两个节点相邻为止,则最终序列为51155.。 2)、首先依据给定序列写出(序列长度+2)个递增序列,即1234567,再将给出序列按从小到大顺序依次排列并插入递增序列得到:7。我们再将给出序列22314写在第一行,插入后的递增序列写在第二行。如下图第一行所示: ??→????? ??--②⑤67112223344522314??→???? ? ??--②⑥11223344672314 ??→????? ??--③②11233447314??→???? ? ??--①③11344714

组合数学及其图论试题库

组合数学及其图论 1、一个图G 是指一个有序三元组(V (G ),E (G ),G ?),其中G ?是:________________. 关联函数 2、 是有40个点的简单图且 中任两个点之间有且只有1条路,则 。 39 3、只有一个顶点所构成的图称为:________________ 平凡图 4、如果H 是G 的子图,其中V (H )=V (G )和E (G )=E (H )至少有一个不成立,就称H 是G 的:_____________. 真子图 5、设G 是p 阶简单图,则__________________等号成立当且仅当G 是完全图。 q(G)≤p(p-1)/2 6、如果一条途径的_________与___________相同,就称这条途径为闭途径。 起点 终点 7、如果对图G=(V ,E )的任何两个顶点u 与v ,G 中存在一条(u-v )路,则称G 是___________否则称为是______________ 连通图、 非连通图 8、设G 是P 阶连通图,则__________________. q(G)≥p-1 9、若二分图 有Hamilton 回路,则 与 满足 。 10、若G 是2-边连通图,则G 有强连通的________________. 定向图 11、边数最少的连通图是 。

树 12、没有回路的连通图称为_______________. 树 13、的图是图或图。 平凡图,不连通图 14、树T的每一个非悬挂点都是T的 __________. 割点 15、二分图中若与满足,则必有完美对集。 16、给定一个图G,如果图G的一个生成子图T是一棵树,则称T是G的一个_______________. 生成树 17、设G是无环图,e是G的一条边,则 τ(G)=___________________________. τ (G-e)+τ (G·e) 18、是阶简单图,则,等号成立当且仅当是图。 ,完全图 2、 19、___________________________的生成树称为最优生成树。 连通赋权图中具有最小权 20、的一个对集是最大对集的充要条件是。 中无可扩路 21、一个有向图D,如果略去每条弧的方向时所得无向图是一棵树,就称D为_____________________. 有向树 22、经过G的每条边的迹称为G的Euler迹,如果这条迹是闭的,则称这条闭迹为G的 ________________. Euler环游 23、是简单图且,则。

数学建模中常见的十大模型

数学建模常用的十大算法==转 (2011-07-24 16:13:14) 转载▼ 1. 蒙特卡罗算法。该算法又称随机性模拟算法,是通过计算机仿真来解决问题的算法,同时可以通过模拟来检验自己模型的正确性,几乎是比赛时必用的方法。 2. 数据拟合、参数估计、插值等数据处理算法。比赛中通常会遇到大量的数据需要处理,而处理数据的关键就在于这些算法,通常使用MA TLAB 作为工具。 3. 线性规划、整数规划、多元规划、二次规划等规划类算法。建模竞赛大多数问题属于最优化问题,很多时候这些问题可以用数学规划算法来描述,通常使用Lindo、Lingo 软件求解。 4. 图论算法。这类算法可以分为很多种,包括最短路、网络流、二分图等算法,涉及到图论的问题可以用这些方法解决,需要认真准备。 5. 动态规划、回溯搜索、分治算法、分支定界等计算机算法。这些算法是算法设计中比较常用的方法,竞赛中很多场合会用到。 6. 最优化理论的三大非经典算法:模拟退火算法、神经网络算法、遗传算法。这些问题是用来解决一些较困难的最优化问题的,对于有些问题非常有帮助,但是算法的实现比较困难,需慎重使用。 7. 网格算法和穷举法。两者都是暴力搜索最优点的算法,在很多竞赛题中有应用,当重点讨论模型本身而轻视算法的时候,可以使用这种暴力方案,最好使用一些高级语言作为编程工具。 8. 一些连续数据离散化方法。很多问题都是实际来的,数据可以是连续的,而计算机只能处理离散的数据,因此将其离散化后进行差分代替微分、求和代替积分等思想是非常重要的。 9. 数值分析算法。如果在比赛中采用高级语言进行编程的话,那些数值分析中常用的算法比如方程组求解、矩阵运算、函数积分等算法就需要额外编写库函数进行调用。 10. 图象处理算法。赛题中有一类问题与图形有关,即使问题与图形无关,论文中也会需要图片来说明问题,这些图形如何展示以及如何处理就是需要解决的问题,通常使用MA TLAB 进行处理。 以下将结合历年的竞赛题,对这十类算法进行详细地说明。 以下将结合历年的竞赛题,对这十类算法进行详细地说明。 2 十类算法的详细说明 2.1 蒙特卡罗算法 大多数建模赛题中都离不开计算机仿真,随机性模拟是非常常见的算法之一。 举个例子就是97 年的A 题,每个零件都有自己的标定值,也都有自己的容差等级,而求解最优的组合方案将要面对着的是一个极其复杂的公式和108 种容差选取方案,根本不可能去求解析解,那如何去找到最优的方案呢?随机性模拟搜索最优方案就是其中的一种方法,在每个零件可行的区间中按照正态分布随机的选取一个标定值和选取一个容差值作为一种方案,然后通过蒙特卡罗算法仿真出大量的方案,从中选取一个最佳的。另一个例子就是去年的彩票第二问,要求设计一种更好的方案,首先方案的优劣取决于很多复杂的因素,同样不可能刻画出一个模型进行求解,只能靠随机仿真模拟。 2.2 数据拟合、参数估计、插值等算法 数据拟合在很多赛题中有应用,与图形处理有关的问题很多与拟合有关系,一个例子就是98 年美国赛A 题,生物组织切片的三维插值处理,94 年A 题逢山开路,山体海拔高度的插值计算,还有吵的沸沸扬扬可能会考的“非典”问题也要用到数据拟合算法,观察数据的

离散数学图论部分经典试题及答案

离散数学图论部分综合练习 一、单项选择题 1.设图G 的邻接矩阵为 ??? ???? ? ????? ???0101 010******* 11100100110 则G 的边数为( ). A .6 B .5 C .4 D .3 2.已知图G 的邻接矩阵为 , 则G 有( ). A .5点,8边 B .6点,7边 C .6点,8边 D .5点,7边 3.设图G =,则下列结论成立的是 ( ). A .deg(V )=2∣E ∣ B .deg(V )=∣E ∣ C .E v V v 2)deg(=∑∈ D .E v V v =∑∈)deg( 4.图G 如图一所示,以下说法正确的是 ( ) . A .{(a , d )}是割边 B .{(a , d )}是边割集 C .{(d , e )}是边割集 D .{(a, d ) ,(a, c )}是边割集 5.如图二所示,以下说法正确的是 ( ). A .e 是割点 B .{a, e }是点割集 C .{b , e }是点割集 D .{d }是点割集 6.如图三所示,以下说法正确的是 ( ) . A .{(a, e )}是割边 B .{(a, e )}是边割集 C .{(a, e ) ,(b, c )}是边割集 D .{(d , e )}是边割集 ο ο ο ο ο c a b e d ο f 图一 图二

图三 7.设有向图(a )、(b )、(c )与(d )如图四所示,则下列结论成立的是 ( ) . 图四 A .(a )是强连通的 B .(b )是强连通的 C .(c )是强连通的 D .(d )是强连通的 应该填写:D 8.设完全图K n 有n 个结点(n ≥2),m 条边,当( )时,K n 中存在欧拉回路. A .m 为奇数 B .n 为偶数 C .n 为奇数 D .m 为偶数 9.设G 是连通平面图,有v 个结点,e 条边,r 个面,则r = ( ). A .e -v +2 B .v +e -2 C .e -v -2 D .e +v +2 10.无向图G 存在欧拉通路,当且仅当( ). A .G 中所有结点的度数全为偶数 B .G 中至多有两个奇数度结点 C .G 连通且所有结点的度数全为偶数 D .G 连通且至多有两个奇数度结点 11.设G 是有n 个结点,m 条边的连通图,必须删去G 的( )条边,才能确定G 的一棵生成树. A .1m n -+ B .m n - C .1m n ++ D .1n m -+ 12.无向简单图G 是棵树,当且仅当( ). A .G 连通且边数比结点数少1 B .G 连通且结点数比边数少1 C .G 的边数比结点数少1 D .G 中没有回路. 二、填空题 1.已知图G 中有1个1度结点,2个2度结点,3个3度结点,4个4度结 点,则G 的边数是 . 2.设给定图G (如图四所示),则图G 的点割 ο ο ο ο c a b f

图论与组合数学 教学大纲 2016 修改版

《图论与组合数学》教学大纲 一、课程名称:图论与组合数学 二、课程代码:021********* 三、课程英文名称:Graph Theory and Combinatorics 四、课程负责人:刘任任,肖芬,曹春红 五、学时与学分:48学时(理论40学时,实验8学时),3.0学分 六、课程性质:必修 七、适用专业:工科本科计算机科学与技术专业 八、选课对象:计算机科学与技术专业 九、预修课程:集合论与数理逻辑、C语言程序设计I、数据结构 十、课程教材与参考书目: 课程教材: 1.刘任任编著,《离散数学》,中国铁道出版社,2009年12月; 2.刘任任主编,《离散数学题解与分析》,中国铁道出版社,2010年10月。 参考书目: 1.Kneneth H. Rosen, Discete Mathematics and Its Applications, Fifth Edition,2003年; 2.Richard Johnsonbaugh, Discrete Mathematics, Prentice Hall Inc., 2000年; 3.Kolman B., etc., Discrete Mathematical Structures,Prentice Hall Inc., 2001; 4.Brualdi, R.A. (美),组合数学(第四版),北京机械工业出版社,2005年2月; 5.卢开澄,组合数学,清华大学出版社, 6.孙吉贵等编著,《离散数学》,高等教育出版社,2002年; 7.陈莉等编著,《离散数学》,高等教育出版社,2002年。 十一、开课单位:信息工程学院 十二、课程与能力培养中的对应关系 1、能力1.2: 掌握计算机科学与技术专业所要求的数学和自然科学基本知识,能将其用于计算机复杂工程问题的分析与建模; 2、能力2.1:掌握文献检索、资料查询的基本方法,能够运用现代技术获取相关文献,具有资料阅读和文献研究能力,并用于计算机科学与技术相关的复杂工程问题的分析和推理; 3、能力2.2:通过理论与实践相结合的系统学习,能够识别复杂工程问题中所涉及的数学、自然科学及计算机科学与技术专业的相关理论知识。 十三、课程的目标 图论和组合数学是现代数学的重要分支,是研究离散结构的存在、计数、分析和优化等问题的一门科学,是计算机科学与技术专业的基础理论课程。通过本课程的学习,使学生掌握图论与组合数学的基本原理和方法,了解和掌握无向图、有向图、连通图、排列与组合、容斥原理、递推关系和生成函数等基本知识,灵活运用所学知识对一些简单问题进行建模并编程求解。

图论算法及matlab程序的三个案例

图论实验三个案例 单源最短路径问题 Dijkstra 算法 Dijkstra 算法是解单源最短路径问题的一个贪心算法。其基本思想是,设置一个顶点集合S 并不断地作贪心选择来扩充这个集合。一个顶点属于集合S 当且仅当从源到该顶点的最短路径长度已知。设v 是图中的一个顶点,记()l v 为顶点 v 到源点v 1的最短距离, ,i j v v V ?∈,若 (,)i j v v E ?,记i v 到j v 的权ij w =∞。 Dijkstra 算法: ① 1{}S v =,1()0l v =;1{}v V v ??-,()l v =∞,1i =,1{}S V v =-; ② S φ=,停止,否则转③; ③ ()min{(),(,)} j l v l v d v v =, j v S ∈,v S ?∈; ④ 存在 1 i v +,使 1()min{()} i l v l v +=,v S ∈; ⑤ 1{} i S S v +=, 1{} i S S v +=-,1i i =+,转②; 实际上,Dijkstra 算法也是最优化原理的应用:如果12 1n n v v v v -是从1v 到 n v 的最短路径,则 12 1 n v v v -也必然是从1v 到 1 n v -的最优路径。 在下面的MATLAB 实现代码中,我们用到了距离矩阵,矩阵第i 行第j 行元 素表示顶点i v 到j v 的权ij w ,若i v 到j v 无边,则realmax ij w =,其中realmax 是 MATLAB 常量,表示最大的实数+308)。 function re=Dijkstra(ma)

图论模型简介

图论模型简介 一、图及其矩阵表示 1、起源:哥尼斯堡七桥问题: 欧拉为了解决这个问题,建立数学模型:陆地——点,桥——边,得到一个有四个“点”,七条“边”的“图”。问题转化为能否从任一点出发一笔画出七条边再回到起点。欧拉考察了一般一笔画的结构特点,给出了一笔画判定法则:图是连通的,且每个顶点都与偶数条边相关联(这种图称为欧拉图)。由此可以得出结论:七桥问题无解。

2、基本概念: 图(graph):由顶点和边(又称线,边的两端必须是顶点)组成的一个结构。 邻接:一条边的两个端点称是邻接的;关联:边与其两端的顶点称是关联的。 无向图(graph):边无方向的图;有向图(digraph):边有方向的图。 路(path):由相邻边组成的序列,其中中间顶点互不相同。 圈(cycle):首、尾顶点相同的路,即闭路。 连通图(connected graph):图中任意两顶点间都存在路的图。 树(tree):无圈连通图 完全图(complete graph):任意两个顶点之间都有边相连的无向图,记为K n。 竞赛图(tournament):由完全图给每条边定向而得到的有向图。 二部图(bipartite graph):图的顶点分成两部分,只有不同部分顶点之间才有边相连。图G的子图H(subgraph):H是一个图,H的顶点(边)是图G的顶点(边)。 网络(Network):边上赋了权的有向图。

3、图的矩阵表示 无向图 有向图 0100010 11001011 011000 1 00???????????????? ???? ? ? ? ? ????????0110010100000100100000110

图论经典问题

常见问题: 1、图论的历史 图论以图为研究对象的数学分支。图论中的图指的是一些点以及连接这些点的线的总体。通常用点代表事物,用连接两点的线代表事物间的关系。图论则是研究事物对象在上述表示法中具有的特征与性质的学科。 在自然界和人类社会的实际生活中,用图形来描述和表示某些事物之间的关系既方便又直观。例如,国家用点表示,有外交关系的国家用线连接代表这两个国家的点,于是世界各国之间的外交关系就被一个图形描述出来了。另外我们常用工艺流程图来描述某项工程中各工序之间的先后关系,用网络图来描述某通讯系统中各通讯站之间信息传递关系,用开关电路图来描述IC中各元件电路导线连接关系等等。 事实上,任何一个包含了某种二元关系的系统都可以用图形来模拟。由于我们感兴趣的是两对象之间是否有某种特定关系,所以图形中两点之间连接与否最重要,而连接线的曲直长短则无关紧要。由此经数学抽象产生了图的概念。研究图的基本概念和性质、图的理论及其应用构成了图论的主要内容。 图论的产生和发展经历了二百多年的历史,大体上可分为三个阶段: 第一阶段是从1736年到19世纪中叶。当时的图论问题是盛行的迷宫问题和游戏问题。最有代表性的工作是著名数学家L.Euler于1736年解决的哥尼斯堡七桥问题(Konigsberg Seven Bridges Problem)。 东普鲁士的哥尼斯堡城(现今是俄罗斯的加里宁格勒,在波罗的海南岸)位于普雷格尔(Pregel)河的两岸,河中有一个岛,于是城市被河的分支和岛分成了四个部分,各部分通过7座桥彼此相通。如同德国其他城市的居民一样,该城的居民喜欢在星期日绕城散步。于是产生了这样一个问题:从四部分陆地任一块出发,按什么样的路线能做到每座桥经过一次且仅一次返回出发点。这就是有名的哥尼斯堡七桥问题。 哥尼斯堡七桥问题看起来不复杂,因此立刻吸引所有人的注意,但是实际上很难解决。 瑞士数学家(Leonhard Euler)在1736年发表的“哥尼斯堡七桥问题”的文章中解决了这个问题。这篇论文被公认为是图论历史上的第一篇论文,Euler也因此被誉为图论之父。 欧拉把七桥问题抽象成数学问题---一笔画问题,并给出一笔画问题的判别准则,从而判定七桥问题不存在解。Euler是这样解决这个问题的:将四块陆地表示成四个点,桥看成是对应结点之间的连线,则哥尼斯堡七桥问题就变成了:从A,B,C,D任一点出发,通过每边一次且仅一次返回原出发点的路线(回路)是否存在?Euler证明这样的回路是不存在的。 第二阶段是从19世纪中叶到1936年。图论主要研究一些游戏问题:迷宫问题、博弈问题、棋盘上马的行走线路问题。一些图论中的著名问题如四色问题(1852年)和Hamilton环游世界问题(1856年)也大量出现。同时出现了以图为工具去解决其它领域中一些问题的成果。1847年德国的克希霍夫(G.R.Kirchoff)将树

数学建模中常见的十大模型讲课稿

数学建模中常见的十 大模型

精品文档 数学建模常用的十大算法==转 (2011-07-24 16:13:14) 转载▼ 1. 蒙特卡罗算法。该算法又称随机性模拟算法,是通过计算机仿真来解决问题的算法,同时可以通过模拟来检验自己模型的正确性,几乎是比赛时必用的方法。 2. 数据拟合、参数估计、插值等数据处理算法。比赛中通常会遇到大量的数据需要处理,而处理数据的关键就在于这些算法,通常使用MA TLAB 作为工具。 3. 线性规划、整数规划、多元规划、二次规划等规划类算法。建模竞赛大多数问题属于最优化问题,很多时候这些问题可以用数学规划算法来描述,通常使用Lindo、Lingo 软件求解。 4. 图论算法。这类算法可以分为很多种,包括最短路、网络流、二分图等算法,涉及到图论的问题可以用这些方法解决,需要认真准备。 5. 动态规划、回溯搜索、分治算法、分支定界等计算机算法。这些算法是算法设计中比较常用的方法,竞赛中很多场合会用到。 6. 最优化理论的三大非经典算法:模拟退火算法、神经网络算法、遗传算法。这些问题是用来解决一些较困难的最优化问题的,对于有些问题非常有帮助,但是算法的实现比较困难,需慎重使用。 7. 网格算法和穷举法。两者都是暴力搜索最优点的算法,在很多竞赛题中有应用,当重点讨论模型本身而轻视算法的时候,可以使用这种暴力方案,最好使用一些高级语言作为编程工具。 8. 一些连续数据离散化方法。很多问题都是实际来的,数据可以是连续的,而计算机只能处理离散的数据,因此将其离散化后进行差分代替微分、求和代替积分等思想是非常重要的。 9. 数值分析算法。如果在比赛中采用高级语言进行编程的话,那些数值分析中常用的算法比如方程组求解、矩阵运算、函数积分等算法就需要额外编写库函数进行调用。 10. 图象处理算法。赛题中有一类问题与图形有关,即使问题与图形无关,论文中也会需要图片来说明问题,这些图形如何展示以及如何处理就是需要解决的问题,通常使用MATLAB 进行处理。 以下将结合历年的竞赛题,对这十类算法进行详细地说明。 以下将结合历年的竞赛题,对这十类算法进行详细地说明。 2 十类算法的详细说明 2.1 蒙特卡罗算法 大多数建模赛题中都离不开计算机仿真,随机性模拟是非常常见的算法之一。 举个例子就是97 年的A 题,每个零件都有自己的标定值,也都有自己的容差等级,而求解最优的组合方案将要面对着的是一个极其复杂的公式和108 种容差选取方案,根本不可能去求解析解,那如何去找到最优的方案呢?随机性模拟搜索最优方案就是其中的一种方法,在每个零件可行的区间中按照正态分布随机的选取一个标定值和选取一个容差值作为一种方案,然后通过蒙特卡罗算法仿真出大量的方案,从中选取一个最佳的。另一个例子就是去年的彩票第二问,要求设计一种更好的方案,首先方案的优劣取决于很多复杂的因素,同样不可能刻画出一个模型进行求解,只能靠随机仿真模拟。 2.2 数据拟合、参数估计、插值等算法 数据拟合在很多赛题中有应用,与图形处理有关的问题很多与拟合有关系,一个例子就是98 年美国赛A 题,生物组织切片的三维插值处理,94 年A 题逢山开路,山体海拔高度的 收集于网络,如有侵权请联系管理员删除

中国运筹学会图论组合分会青年论文奖奖励办法-GTCA2015

中国运筹学会图论组合分会《青年论文奖》奖励办法 (常务理事会2011年5月5日讨论通过) 第一章总则 为鼓励青年图论与组合工作者的学术进步,提倡青年学生和科研教学第一线的青年科技人员发扬勇于探索、创新进取的精神,表彰优秀的年轻学者的学术研究成果,中国运筹学会图论组合设立青年论文奖(下称《青年论文奖》),设一等奖一名,二等奖二名,另外设提名奖二名。 为了保证《青年论文奖》奖励工作的科学性、公正性和持久性,使《青年论文奖》的表彰奖励工作有利于促进青年学者对图论与组合的发展、普及做出突出贡献,特制定本奖励办法。 第二章组织机构 评选《青年论文奖》的领导机构是运筹学会图论组合分会常务理事会“青年论文奖奖励委员会”(以下简称奖励委员会)。奖励委员会受常务理事会领导,设主任委员一名,由中国运筹学会图论组合分会理事长担任;委员若干人,由部分中国运筹学会图论组合分会常务理事及有关专家担任。奖励委员会成员由常务理事会批准。其主要职责是:审查申请者材料、对合格申请者按照科学、公正的原则,组织评审、公布结果和异议处理等。 奖励委员会的办事机构是学会图论组合分会秘书处,在奖励委员会的领导下,承担日常工作。 奖励工作办事机构和评审委员会委员应坚持廉洁公正、不徇私情、遵守程序的工作原则,认真做好各项工作。 第三章奖励范围 《青年论文奖》的奖励范围是:中国运筹学会会员(包括学生会员),申请者年龄不超过40周岁(申请者需注明身份证号码)。 第四章申报与推荐 《青年论文奖》的申请采取专业委员会推荐和自由申请两种形式。申报青年运筹学奖应提交下列材料: 1.申请者应填写《中国运筹学会图论组合分会青年论文奖申报表》,在申请书 中应清楚地阐述所研究问题的重要性、建立的模型、方法和解决问题技术的科学性和创新性,并提出相应的证据。 2.参评论文必须是国内外学术刊物上近三年公开发表的研究论文。 3.提供两名具有正高级职称专家推荐信,其中至少一名推荐专家与申请人非同 一工作单位。 4.填写单位推荐意见,并由单位负责人签字和单位盖章。 申请人按照要求准备齐全的申报资料按规定的时间报送到学会图论组合分

maab图论程序算法大全

图论算法m a t l a b实现求最小费用最大流算法的 MATLAB 程序代码如下: n=5;C=[0 15 16 0 0 0 0 0 13 14 0 11 0 17 0 0 0 0 0 8 0 0 0 0 0]; %弧容量 b=[0 4 1 0 0 0 0 0 6 1 0 2 0 3 0 0 0 0 0 2 0 0 0 0 0]; %弧上单位流量的费用 wf=0;wf0=Inf; %wf 表示最大流量, wf0 表示预定的流量值 for(i=1:n)for(j=1:n)f(i,j)=0;end;end %取初始可行流f 为零流 while(1)

for(i=1:n)for(j=1:n)if(j~=i)a(i,j)=Inf;end;end;end%构造有向赋权图 for(i=1:n)for(j=1:n)if(C(i,j)>0&f(i,j)==0)a(i,j)=b(i,j); elseif(C(i,j)>0&f(i,j)==C(i,j))a(j,i)=-b(i,j); elseif(C(i,j)>0)a(i,j)=b(i,j);a(j,i)=-b(i,j);end;end;end for(i=2:n)p(i)=Inf;s(i)=i;end %用Ford 算法求最短路, 赋初值 for(k=1:n)pd=1; %求有向赋权图中vs 到vt 的最短路 for(i=2:n)for(j=1:n)if(p(i)>p(j)+a(j,i))p(i)=p(j)+a(j,i);s(i)=j;pd=0;end;end;e nd if(pd)break;end;end %求最短路的Ford 算法结束 if(p(n)==Inf)break;end %不存在vs 到vt 的最短路, 算法终止. 注意在求最小费用最大流时构造有 向赋权图中不会含负权回路, 所以不会出现k=n dvt=Inf;t=n; %进入调整过程, dvt 表示调整量 while(1) %计算调整量 if(a(s(t),t)>0)dvtt=C(s(t),t)-f(s(t),t); %前向弧调整量 elseif(a(s(t),t)<0)dvtt=f(t,s(t));end %后向弧调整量

图论

3 图论 图论在计算机科学、信息科学、人工智能、网络理论、系统工程、控制论、运筹学和经济管理等领域有着广泛的应用。但很多图论问题虽易表达,却难以求解,其中有相当多的图论问题均属NP完全问题。本章主要介绍工程实用简单图论问题的并行算法及其MPI编程实现,包括传递闭包、连通分量、最短路径和最小生成树等。 1.1 传递闭包 设A是一个含N个顶点的有向图G的布尔邻接矩阵(Boolean Adjacent Matrix),即元素a ij=1当且仅当从顶点i到j有一条有向边。所谓A的传递闭包(Transitive Closure),记为A+,是一个N×N的布尔矩阵,其元素b ij=1当且仅当:①i=j;或②从i出发存在有向路径到j,又称为顶点i到j可达。从G的布尔邻接矩阵A求出G的传递闭包,就称为传递闭包问题。 传递闭包问题有很强的应用背景,在科学计算中广泛存在。传递闭包问题的经典解法之一就是利用布尔矩阵的乘法来求解。本节将把这一算法分别在串行和并行机上实现。 1.1.1 传递闭包串行算法 利用布尔矩阵相乘求解传递闭包问题的原理为:对于布尔矩阵(A+I)k中的任一元素b ij,b ij=1表示从i到j存在长度小于等于k的可达路径,否则,b ij=0。显然对于k=1,(A+I)1中b ij=1当且仅当从i到j路径长度为0(i=j)或为1(从i到j存在有向边);(A+I)2中,b ij=1当且仅当从i到j路径长度小于等于2;((A+I)2) 2中,b ij=1当且仅当从i到j路径长度小于等于4,等等。因为任意两点间如果存在可达路径,长度最多为N-1,所以k≥N-1时,(A+I)k 就是所求的传递闭包A+。于是(A+I)矩阵的㏒N次自乘之后所得的矩阵就是所求的传递闭包。 根据前面的叙述,很自然的有下面的传递闭包串行算法15.1,其时间复杂度为O(N3㏒N)。 算法15.1传递闭包串行算法 输入:图G的布尔邻接矩阵A 输出:A的传递闭包M procedure closure Begin (1)读入矩阵A /* 以下作A = A+I的运算*/ (2)for i=0 to N-1 do a(i, i) = 1 endfor /* 以下是A矩阵的㏒N次自乘,结果放入M矩阵;每次乘后,结果写回A矩阵*/ (3)for k=1 to㏒N do (3.1)for i=0 to N-1 do for j=0 to N-1 do s=0

第8节图论应用实例_图着色问题

第8节图论应用实例_图着色问题 预备知识_回溯法 回溯法:在实际生活中,有些问题是不能用数学公式去解决的,它需要通过一个过程,此过程要经过若干个步骤才能完成,每一个步骤又分为若干种可能;同时,为了完成任务,还必须遵守一些规则,但这些规则无法用数学公式表示,对于这样一类问题,一般采用搜索的方法来解决,回溯法就是搜索算法(广度优先、深度优先等)中的一种控制策略,它能够解决许多搜索中问题。 回溯法基本思想:试探法,撞了南墙就回头。(一般采用深度优先搜索策略) 搜索策略:深度优先(不撞南墙不回头)。 在搜索过程中,如果求解失败,则返回搜索步骤中的上一点,去寻找新的路径,以求得答案。要返回搜索,前进中的某些状态必须保存,才能使得退回到某种状态后能继续向前。 白话搜索:如果用数组存放搜索信息,i表示数组下标(当前状态), ++i表示往前走(下一个状态),--i表示回溯(往回退,返回上一次状态)。 第8节图论应用实例_图着色(graph coloring)问题数学定义:给定一个无向图G=(V, E),其中V为顶点集合,E为边集合,图着色问题即为将V分为k个颜色组(k为颜色数),每个组形成一个独立集,即其中没有相邻的顶点。其优化版本是希望获得最小的k值。 典型应用:地图的着色、调度问题等。 k-着色判定问题:给定无向连通图G和k种不同的颜色。用这些颜色为图G的各顶点着色,每个顶点着一种颜色,是否有一种着色法使G中任意相邻的2个顶点着不同颜色,

例四色问题。设有如图1的地图,每个区域代表一个省,区域中的数字表示省的编号,现在要求给每个省涂上红、蓝、黄、白四种颜色之一,同时使相邻的省份以不同的颜色区分。 课外拓展:搜索“四色问题”,了解四色问题相关知识。 5 6 74 2 31 图1 问题分析: (1)属于图的搜索问题。将问题简化:将每个省抽象为一个点,省之间的联系看为一条边,可以得到图2。 1 67 5 1 4 32 图2 (2)用邻接矩阵表示各省之间的相邻关系,二维数组实现: 1 表示省i与省j相邻, ,,ri,j,,0 表示省i与省j不相邻, 由图2可以得到如下矩阵:(对称矩阵) 1 2 3 4 5 6 7

相关文档
最新文档