图论模型

图论模型
图论模型

第七部分图论方法

第十六章图论模型

图论是应用数学的一个分支,它的概念和结果来源非常广泛,最早起源于一些数学游戏的难题研究,如欧拉所解决的哥尼斯堡七桥问题,以及在民间广泛流传的一些游戏难题,如迷宫问题、博弈问题、棋盘上马的行走路线问题等.这些古老的难题,当时吸引了很多学者的注意.在这些问题研究的基础上又继续提出了著名的四色猜想和汉米尔顿(环游世界)数学难题.

1847年,图论应用于分析电路网络,这是它最早应用于工程科学,以后随着科学的发展,图论在解决运筹学,网络理论,信息论,控制论,博弈论以及计算机科学等各个领域的问题时,发挥出越来越大的作用.在实践中,图论已成为解决自然科学、工程技术、社会科学、军事等领域中许多问题的有力工具之一,

图论模型属于离散类数学模型,是数学模型中比较容易为学生接受的一类模型,具有直观性、趣味性和简洁性,深得大学生的青睐。另外,图论模型属于较为近代的前沿性数学知识,又具有强烈的,易于为学生接受的数学建模味道,对于培养学生通过建模解决实际问题的能力与学习兴趣都是不可多得的知识内容,因此越来越受到数学家和建模工作者的喜爱.我们所学的这一章只是介绍一些基本概念、原理以及一些典型的应用实例,目的是在今后的学习研究时,可以把图论的基本知识、方法作为工具.

本章先介绍图论的基本概念,然后通过哥尼斯堡七桥问题、最短路径问题、中国邮递员问题、人员分派问题、稳定匹配问题、竞赛图等例子介绍图论的具体应用。

16.1 图的基本概念

图是一个有序对,V是结点集,E是边集,以表示结点数目,表示边的数目,则当∣V∣和∣E∣有限时,称为有限图;否则称无限图.

无向边, 与无序结点对(v, u)相关联的边;

有向边,与有序结点对相关联的边;

无向图,每条边都是无向边的图,记作G=; 有向图,每条边都是有向边的图,记作D=.

混合图,既有有向边,也有无向边的图.

平凡图,仅有一个结点的图;零图,边集为空集的图,即仅有结点的图.

自回路(环),关联于同一个结点的边.

无向平行边,联结相同两个结点的多于1条的无向边;有向平行边,联结两个结点之间的多于1条且方向相同的有向边.

简单图,不含平行边和自回路的图.

在有向图D=中,以v(∈V)为起点的边之条数为出度deg+(v);以v(∈V)为终点的边之条数为入度deg-(v).

在无向图G=中,与结点v(∈V)关联的边数,即为结点度数deg(v)或d(v).;在有向图中,结点v的出度和入度之和为度数.

最大度数,?(G)=max{deg(v)∣v∈V};最小度数,δ(G)=min{deg(v)∣v∈V}

有n个结点的且每对结点都有边相连的无向简单图,称为无向完全图.此时有

)1(21-=n n E ;有n 个结点的且每对结点之间都有两条方向相反的边相连的有向简单图为

有向完全图. 此时有

)1(-=n n E 。 设G =, V ,E 的子集V ',E '构成的图G '=是图G 的子图;若G '?G 且G '≠G ,(V '?V 或E '?E),G '是G 的真子图.

生成子图,设图G =, 若E '?E, 则图是图的生成子图,即结点与原图G 相同的子图.

16.2 哥尼斯堡七桥问题

十八世纪东普鲁士城(今俄罗斯加里宁格勒)的普莱格尔河,它有两个支流,在城市中心汇成大河,中间是岛区,河上有7座桥,将河中的两个岛和河岸连结,如图1所示。由于岛上有古老的哥尼斯堡大学,有教堂,还有哲学家康德的墓地和塑像,因此城中的居民,尤其是大学生们经常沿河过桥散步。渐渐地,爱动脑筋的人们提出了一个问题:一个散步者能否一次走遍7座桥,而且每座桥只许通过一次,最后仍回到起始地点。这就是七桥问题,一个著名的图论问题。

图1 图2

当时的人们请教了数学家欧拉。欧拉认为,既然陆地是桥梁的连接地点,不妨把图中被河隔开的陆地看成A 、B 、C 、D4个点,7座桥表示成7条连接这4个点的线,如图2所示。于是“七桥问题”就等价于图2中所画图形的一笔画问题了。欧拉注意到,每个点如果有进去的边就必须有出来的边,从而每个点连接的边数必须是偶数个才能完成一笔画。于是,为了解决这个问题,欧拉提出了奇点和偶点的概念,与奇数条边相连的点称为奇点,与偶数条边相连的点称为偶点,从而产生了著名的“一笔画定理”,即一笔画中的奇点数目为0或2个。图2中的每个点都连接着奇数条边,即奇点数为4,因此不可能一笔画出,这就说明不存在一次走遍7座桥,而每座桥只许通过一次的走法。1736年,欧拉以此发表了图论的首篇论文“哥尼斯堡七桥问题”。

由此可引出欧拉图的概念如下:

(1) 通过图中所有边一次且仅一次行遍所有顶点的通路称为欧拉通路;

(2) 通过图中所有边一次且仅一次行遍所有顶点的回路称为欧拉回路;

(3) 具有欧拉回路的图称为欧拉图;

(4) 具有欧拉通路但无欧拉回路的图称为半欧拉图。

欧拉图和半欧拉图都有简单的判别方法,定理如下:

定理1

(1)无向连通图是欧拉图当且仅当其所有顶点的度数都是偶数;

(2)无向连通图是半欧拉图当且仅当其奇点数为2;

寻找欧拉回路的算法如下:

(1)任取()0v V G ∈,令00P v =;

(2)设0112i i i P v e v e e v =已经行遍,按下面方法从(){}12,,,i E G e e e -中选取1i e +: (a )1i e +与i v 相关联;

(b )除非无别的边可供行遍,否则1i e +不应该为{}12,,

,i i G G e e e =-中的桥(所谓

桥是一条删除后使连通图不再连通的边);

(c )当(b )不能再进行时,算法停止。

此算法称为Fleury 算法。

例1 图3是否为欧拉图,并求出一条欧拉回路。

图3

解:图中奇点数量为零,由定理1得,该图为欧拉图。由Fleury 算法,AFEDCBAFECFBA 就是该图的一条欧拉回路。

16.3最短路径问题

假设要在计算机上建立一个交通咨询系统,则可以采用图的结构来表示实际的交通网络。用顶点表示城市,边表示城市间的交通联系。这个咨询系统可以回答旅客提出的各种问题。如,给定连接若干城市的铁路网,找一条给定两城市间的最短线路,此即所谓最短线路问题。有时,对于旅客来说,可能更关心的是节省交通费用;而对于司机来说,里程和速度则是他们感兴趣的信息。为了在图上表示有关年,可对边赋以权,权值表示两地之间的距离,或途中所需时间,或交通费用等等,此时的最短路径就可能是时间最少的路径或最省钱的路径。

我们讨论单源点的最短路径问题:给定带权有向图G 和源点v ,求从v 到G 中其余各

顶点的最短路径。

图4

例如,图41所示。

从图中可见,从A 到D 有两条不同的路径:(A ,C ,D )和(A ,E ,D ),前者长度为60,而后者的长度为50。因此,后者是从A 到D 的最短路径,而从A 到B 没有路径。

如何求得这些路径呢?Dijkstra 提出了一个按路径长度递增的次序产生最短路径的算法。

首先,引进一个辅助向量D ,它的每个分量D[i]表示当前所找到的从始点v 到每个终点vi 的最短路径的长度。它的初值为:若从v 到vi 有弧,则D[i]为弧上的权值;否则置为

∞。

显然,长度为[][]{}i D j Min D i v V =∈的路径就是从v 出发的长度最短的一条最短路径。此路径为(),j v v 。

那么,下一条长度次短的路径的最短路径在哪里呢?假设该次短路径的终点是vk ,则可想而知,这条路径或者是(),k v v ,或者是()

,,j k v v v 。它的长度或者是从v 到vk 的弧上的权值,或者是D[j]和从vj 到vk 的弧上的权值之和。

一般情况下,假设S 为已求得最短路径的终点的集合,则可证明:下一条最短路径(设其终点为x )或者是弧(v ,x ),或者是中间只经过S 中的顶点而最后到达顶点x 的路径。这可用反证法来证明。假设此路径上有一个顶点不在S 中,则说明存在一条终点不在S 而长度比此路径短的路径。但是,这是不可能的。因为我们是按路径长度递增的次序来产生最短路径的,故长度比此路径短的所有路径均已产生,它们的终点必在S 中,即假设不成立。

因此,在一般情况下,下一条长度次短的最短路径的长度必是 [][]{}

i i D j Min D i v V S =∈-

其中,D[i]或者是弧(v ,v i )上的权值,或者是D[k](k v S ∈)和弧(v k ,v i )上的权值之和。

根据以上分析,可以得到如下描述的算法:

(1) 假设用带权的邻接矩阵A 来表示带权有向图,A[i][j]表示弧上的权值。若不存在,则置A[i][j]为∞。S 为已找到从v 出发的最短路径的终点的集合,它的初始状态为空集。设D[i]从v 出发到图上其余各顶点(终点)v i 可能达到的最短路径长度的初值.

(2) 选择结点,使得

[][]{}

i i D j Min D i v V S =∈- vj 就是当前求得的这条从v 出发的最短路径的终点。令

{}j

S S v = (3) 修改从v 出发到集合V -S 上任一顶点v k 可达的最短路径长度。如果

[][][][]D j A j k D k +<

则修改D[k]为[][][][]D k D j A j k =+

(3) 重复操作(2)(3)共n-1次。由此求得从v 到图上其余各顶点的最短路径是依路径长度递增的序列。

例如,图7.34所示有向网G6的带权邻接矩阵为

1030100550102060∞∞∞

????∞∞∞∞∞????∞∞∞∞∞??∞

∞∞∞∞????∞∞∞∞??∞∞∞∞∞∞???? 若对G6施行Dijkstra 算法,则所得从A 到其余各顶点的最短路径,以及运算过程中

题和求源点到其他所有顶点的最短路径从计算上讲具有一样复杂度。

对于无向图,上述方法依然适用。

16.4中国邮递员问题

一个邮递员从邮局出发投递信件,他必须在他所管辖范围内的所有街道至少走一次,最后回到邮局,他自然希望一条最短的路线完成投递任务,那么如何选择这样的路线呢?这个问题是中国数学家管梅谷先生首先提出的,因而被称作中国邮递员问题。

要解这个问题,首先应该将该问题用图来描述。构造无向带权图G=,E 为街道集合,V 中元素为街道的交叉点。街道的长度为该街道对应的边的权,显然所有权大于0。邮递员问题就变成了求G 中一条经过每条边至少一次的回路,使该回路所带权最小的问题。满足以上条件的回路是最优投递路线或最优回路。

显然,若G 是欧拉图,则最优投递路线为G 中的任意一条欧拉回路。若G 不是欧拉图,则最优投递路线必须要有重复边出现,而要求重复边权之和达到最小,具体说来是这样的。若G 不是欧拉图,则G 必有奇点,必须加若干条重复边,使重复边的权与原边的权相同,设所得图为*G ,于是求G 的最优投递路线就等价于求*G 的一条欧拉回路,使得重复边权之和()e F

w e ∈∑最小,其中()()*

F E

G E G =-。 设C 是G 中一条最优投递路线,*G 为对应的欧拉图,*G 中的添加重复边应满足什么条件呢?请见下面定理。

定理14.4 C 是带正权无向连通图,,G V E W =中的最优投递路线当且仅当对应的欧拉图*G 应满足:

(1)G 的每条边在*G 中至多重复出现一次;

(2)G 的每个圈上在*G 中重复出现的边的权之和不超过该圈权的一半。

由定理14.4不难证明下面定理

定理14.5 设带正权无向连通图,,G V E W =,V '为G 中奇点集,设

()20V k k '=≥,

F={e|e E ∈且在求G 的最优回路时加了重复边},则F 的导出子图G[F]可以表示为以V '中顶点为起点与终点的k 条不交的最短路径之并。

基于上述定理,J.Edmonds 和E.L.Johnson 于70年代给出了求解邮递员问题的有效算法。

算法步骤如下:

1、若G 中无奇点,令*G G =,转2,否则转3;

2、求*G 中的欧拉回路,结束;

3、求G 中所有奇点对之间的最短路径;

4、以G 中奇点集V '为顶点集,,i j v v V '?∈,边(),i j v v 的权为,i j v v 之间最短路径的权,得完全带权图()

22k K k V '=;

5、求2k K 中最小权完美匹配M ;

6、将M 中边对应的各最短路径中的边均在G 中加重复边,得欧拉图*G ,转2。 例2 求图5所示带权图中的最优投递路线。

图5 图6

解:图中只有两个奇度顶点,即{},V B E '=,容易求出B 到E 的最短路径BAFE ,其权为13。完全带权图K2为图6所示,相应的欧拉图*G 为图3所示。若邮局在A ,从A

出发的任意一条回路都是最优投递路线,其权为()

*W G ,如AFEDCBAFECFBA 就是其中一条欧拉回路,其权为77。

16.5人员分配问题

设某企业有n 个员工12,,,n x x x 及n 个工作12,,,n y y y ,已知每个员工各胜任一些工作。能否使每个员工都分派到一件他胜任的工作?

这是很多生产实践及理论问题都涉及到的匹配问题。如果下面先介绍相关的基本概念与性质:

定义 1 设X ,Y 都是非空有限集,且X Y =?,{},E xy x X y Y ?∈∈,称

(),,G X Y E =为二部图。

如果X 中的每个点都与Y 中的每个点邻接,则称(),,G X Y E =为完备二部图。若:F E R +

→,则称(),,,G X Y E F =为二部赋权图。 二部赋权图的权矩阵一般记做()ij X Y A a ?=,其中()

ij i j a F x y =。 定义2 设图(),G V E =,M E ?。若M 中任意两条边在G 中均不邻接,则称M 是G

的一个匹配。

定义3 若匹配是M 的某条边与点v 关联,则称M 饱和点v ,并且称v 是M 的饱和点,否则称v 是M 的非饱和点。

由定义1 和定义3知,一个完备的二部图(),,G X Y E =,若X Y ≤,则存在饱和X 的每个点的匹配。

定义4 设M 是图G 的一个匹配,如果G 的每一个点都是M 的饱和点,则称M 是完美匹配;如果G 中没有另外的匹配0M ,使0M M >,则称M 是最大匹配。

由定义4知,饱和X 的每个点的匹配M 是二部图G 的最大匹配。显然,每个完美匹配都是最大匹配,反之不一定成立。

定义5 设M 是图G 的一个匹配,其边在E/M 和M 中交错出现的路,称为G 的一条M -交错路。起点和终点都不是M 的饱和点的M -交错路,称为M -增广路。

定理1 G 的一个匹配M 是最大匹配的充要条件是G 不包含M -增广路。

由此对于人员分配问题,我们可以构造一个二部图(),,G X Y E =,这里{}12,,,n X x x x =,{}12,,,n Y y y y =,并且当且仅当工作人员i x 胜任工作i y 时,i x 与i y 才相邻。于是,问题转化为求二部图的一个完美匹配。因为X Y =,因此完美匹配即为最大匹配。

下面介绍求二部图G 的最大匹配的算法,即匈牙利算法,其基本思想是:

根据定理1,从G 的任意匹配开始,对X 中所有M 的非饱和点,寻找M -增广路。若不存在M -增广路,则M 为最大匹配;若存在M -增广路,则将M -增广路中的M 的与非M 的边互换得到比M 多一边的匹配M1,再对M1重复上述过程。

算法步骤:

设(),,G X Y E =为二部图,其中{}12,,

,n X x x x =,{}12,,,n Y y y y =。任给一初始匹配(如任取e E ∈,则{}M e =是一个匹配)。

(1)令,S T =?=?,转向(2);

(2)若M 饱和X/S 的所有点,则M 是二部图G 的最大匹配。否则,任取M 的非饱和点u X S ∈,令{}S S u =,转向(3)

; (3)令N (S )={v|u ∈S,v 与u 相邻},若N (S )=T ,转向(2),否则取()y N S T ∈,若y 是M 的饱和点,转向(4),否则转向(5);

(4)设xy M ∈,则令{}S S u =,{}T T y =,转向(3)

; (5)u -y 路是M-增广路,设为P ,并令M M P =⊕,转向(1).

由于计算M -增广路P 比较困难,因此将迭代步骤改为:

(1)将X 中M 的所有非饱和点都给以标号0和标记 *,转向(2);

(2)若X 中所有有标号的点都已去掉了标记*,则M 是G 的最大匹配,否则,任取X

中一个既有标号又有标记*的点i x ,去掉i x 的标记*,转向(3);

(3)找出在G 中所有与i x 邻接的点j y ,若所有这样的j y 都已有标号,则转向(2),否则转向(4);

(4)对与i x 邻接且尚未给标号的j y 都给定标号i ,若所有的j y 都是M 的饱和点,则转向(5),否则逆向返回。即由其中M 的任一个非饱和点j y 的标号i 找到i x ,再由i x 的标号k 找到,

k y ,最后由t y 的标号s 找到标号为0的s x 时结束,获得M -增广路s t i j x y x y ,记{}s t i j P x y x y =,重新记M M P =⊕,转向(1);

(5)将j y 在M 中与之邻接的点k x ,给以标号j 和标记*,转向(2)。

其中\M P M P M P ⊕=,是对称差。

回到我们的问题,假设企业有5个员工,,,,a b c d e 及5个工作,,,,A B C D E ,每个员工胜任工作的情况如图7所示,即图中x 与y 有连线的即为可胜任的,请给出最大分配方案。

图7

解:(1) 取初始匹配{}0,,M bB cC eE =,如图7;

图8

(2)给X 中0M 的两个非饱和点a,d 都给以标号0和标记*,如图8;

图9

(3)去掉a 的标记*,将与a 邻接的两个点B,C 都给以标号1。因为B ,C 都是0M 的两个饱和点,所以将它们在0M 中邻接的两个点b,c 都给以相应的标号和标记 *,如图9;

图10

(4)去掉b 的标记*,将与b 邻接且尚未给标号的三个点A,C,D 都给以标号2,如图10。

图11

(5)因为A 是0M 的非饱和点,所以顺着标号逆向返回依次得到b,B ,直到a 为0为止。于是得到0M 的增广路aBbA ,记{},,P aB Bb bA =。取{}10,,,M M P aB bA cC eE =⊕=,则1M 是比M 多一边的匹配,如图11;

图12

(6)再给X 中0M 的非饱和点4x 给以标号0和标记*,然后去掉d 的标记*,将与d 邻接的两个点B,C 都给以标号4。因为B,C 都是0M 的两个饱和点,所以将它们在0M 中邻接的两个点a,c 都给以相应的标号和标记*,如图12;

图13

(7)去掉a 的标记*,因为与a 邻接的两个点B,C 都有标号4,所以去掉c 的标记*,而与c 邻接的两个点B,C 也都有标号4,此时X 中所有有标号的点都已去掉了标记*,因此1M 是G 的最大匹配,如图13。

G 不存在饱和X 的每个点的匹配,因为取{},,S a b c =时,(){},N S B C =,有()N S S <,当然也不存在完美匹配。

16.6稳定匹配问题

假设有一百个男人和一百个女人, 每个男人都凭自己好恶给每个女人打分, 最爱a, 其次爱b, 再次爱c(假定没有相同的)... 每个女人也同样给每个男人打分.

然后就是求婚过程.

第一天上午, 所有的男人都向自己最爱的女人求婚.下午, 每个女人看看自己有没有

收到, 收到了多少人的求婚. 如果只收到一个男人的求婚, 那么就和他订婚. 如果收到多于一个男人的求婚, 那么就和其中她最爱的那个男人订婚, 同时把其他男人都拒绝掉. 如果一个求婚都没有, 不要着急, 最后总会有的.晚上, 牧师来检查一遍, 如果所有女人都订婚了, OK, 万事大吉, 明天举行集体婚礼.但如果还有女人没有订婚, 那么第二天还得重复. 第二天上午, 所有还没订婚的男人向自己次爱的女人求婚(因为昨天已经成功或者被最爱的女人拒绝了).下午, 每个女人再看一遍自己收到订婚的情况. 如果她已经订婚了, 但是又有一个她更爱的男人来向她求婚, 那就把原来那个拒绝掉, 再和这个更爱的男人订婚; 如果还没订婚, 那就和第一天的下午的处理一样.晚上再检查一遍, 如果还是有人没有订婚, 那第三天再重复.

第三天上午, 所有没有订婚的男人, 包括第一天订了第二天又被踹出来的, 再向还没有拒绝过他的女人中他最爱的那个求婚

...

如此周而复始, 直到最后大家都订了婚, 便一起结婚.

这么个过程, 可以用图论的方法来讨论。设简单偶图(),,G X Y E =中,男孩集{}12,,,m X x x x =,女孩集{}12,,,m Y y y y =,每边xy 表示男孩x 与女孩y 彼此认识。今假设每个男孩x 对他所认识的所有女孩有一个倾向度排序,每个女孩y 对他所认识的所有男孩也有一个倾向度排序,对G 上任意给定的一个倾向度分派,称G 的一个匹配M 为稳定匹配,如果对G 中任一条非M 边xy,以下两个条件至少有一个成立:

(1) M 中存在这样一条边xy '(即x 是M 饱和的),使x 倾向于y '胜过y ;

(2) M 中存在这样一条边x y '(即y 是M 饱和的),使y 倾向于x '胜过x ;

由上述定义知,在一个稳定匹配M 中,若x 不娶y (即xy M ?),则至少发生下面两种情况中的一种,即或者x 娶了比y 他更倾向的女孩y ',或者y 嫁了比x 她更倾向的男孩x ',简而言之,每当男孩x 与女孩y 在M 下不配对时,两人中至少有一个在M 下有较满意的配对。否则,x 和y 最终会结婚,并必与他们现在的配偶(若有的话)离婚,导致现有婚姻的不稳定。

数学上可以证明:在任给定的一个倾向度分派下,任一偶图中,都可找到一稳定匹配,且为一X -最优稳定匹配M *,即对G 中的任一稳定匹配M 及任一顶点x X ∈,若xy M ∈,则存在xy M **∈,使y y *=;或x 倾向于y *

胜过y 。由定义可知:相对于其他任一稳定匹配而言,在M *下对每个男孩是最好的;又,如果X -最优稳定匹配存在的话,它一定是唯一的。具体而言,

第一, 这个过程会中止, 也就是说, 总有大家都订了婚的一天,不可能无限循环.

第二, 中止后所有的婚姻是稳定婚姻. 所谓不稳定婚姻是说, 比如说有两对夫妇M1, F1和M2, F2, M1的老婆是F1, 但他更爱F2;而F2的老公虽说是M2. 但她更爱M1(注意是更爱,不是最爱), 这样的婚姻就是不稳定婚姻,因为M1和F2理应结合, 他们现在各自的婚姻都是错误. 我们能证明的是, 通过上面那个求婚过程, 所有的婚姻都是稳定的, 没有人

犯错误.

第三, 比较引人注目的是, 这个过程中, 男性能够获得尽可能好的伴侣, 比如说最后有二十个女人拒绝了他,他仍然能够得到剩下的八十个女人中他最爱的那一个.

第四, 更有甚者, 这个过程是不利于女性的, 女人总是在可能的情况下被最不喜欢的人追上. 这一点没有那么直观的理解, 勉强要解释的话, 可以这么看: 虽说女人每换一次订婚对象, 都往上升一层, 但起点可能很低, 虽说在一步步接近她最爱的目标, 但最后往往达不到. 比如说还差三十名就达到她最爱的人了, 但这时游戏就结束了, 所有的人都已订了婚, 这样她也只能死了心了. 还有三十个她更爱的人还没向她求过婚,可是她也无可奈何了...

16.7竞赛图

几支球队参加单循环比赛,各队两两交锋,每场比赛无平局,必分输赢,类似于一些国家的篮球联赛。如何排列各队的名次,成为比赛组织者和各参赛队关心的问题。

可以用图论的方法来解决这个问题。用图的顶点表示球队,而用连接两个顶点、以两点间的有向边表示两队的胜负结果。这样的图我们称为竞赛图。用竞赛图可以表示循环赛的结果。

2个队的比赛结果只有两种,其相应的竞赛图可归纳为一种。

3个顶点的竞赛图可归为两种情况,第一种,三个队中有一个队胜两场,一个队胜一场,一个队一场未胜,如图14(a ),则名次为{1,2,3};第二种,三个队各胜一场,如图14(b),则三队名次相同。

(a ) (b )

图14 3个顶点的竞赛图

4个顶点的竞赛图共有四种形式。

(1) 有唯一的通过全部顶点的有向路径,即完全路径,如图15(a )中的

1234→→→,从图中可看出,1胜了其余三个队,2负于1,但胜了3、4,

3负于1、2,胜了4,4一场未赢,因此四个队的排序就如同完全路径中各点

的顺序,{1,2,3,4}。

(2) 2战胜其余三队,而其余三队之间各胜一场,如图15(b)所示,则2第一,其

余三队并列第二;

(3) 与(2)相反,2输给其余三队,而其余三队之间各胜一场,如图15(c)所示,

则2倒数第一,其余三队并列第一;

(4) 有不只一条完全路径,如1234→→→,3412→→→,如图15(d)所示,

则无法直接定名次。

(a)(b)(c)(d)

图15 4个顶点的竞赛图

显然,这第四种情形是研究的重点,(4)还具有(1)~(3)所没有的性质:对于任何一对顶点,存在两条有向路径,使两顶点可以相互连通,这种有向图称为双向连通的。

以上四种情况实际可以归为3种类型:(a)有唯一完全路径,即(1),则排名按照完全路径确定的顶点的顺序;(b)双向连通图,即(4);(c)不属于上述两种类型,即(2)(3),则无法全部排名。更多顶点的竞赛图虽然更加复杂,但基本类型仍为这三种。

我们重点讨论(b)这种类型。

用n表示顶点即球队个数,当n=3时,如图14(b)所示,名次相同。

当4

n≥时,定义竞赛图的邻接矩阵()ij n n

A a

?

=如下:当存在从顶点i到j的有向边时,

1

ij

a=;否则,0

ij

a=。则图15(d)的邻接矩阵为

0110

0011

0001

1000

A

??

?

?

=

?

?

?

??

i

s表示第i个队的得分,则称n维向量()

12

,,,T

n

S s s s

=为得分向量,如果胜一场得1分,负一场得0分,则有

()

,1,1,,1T

S Ae e

==,

由此,图15(d)的得分向量是()

2,2,1,1T

S=,还无法排出全部名次。

记()1

S S

=,称为1级得分向量,计算()()

21

S AS

=,称为2级得分向量。2级得分向量的每个分量,实际上就是我们俗称的对手分,即表示第i支球队所战胜的对手的得分,由此可以在得分相同的情况下,战胜的对手越强,表示得分的含金量越高,也可以作为一种排名次的依据。

继续这个过程,得到k级得分向量

()()1,1,2,

k k k

S AS A e k

-

===

当k→∞时,()k

S收敛于某个极限得分向量(每一步应进行归一化),则可以用这个向量作为排名次的依据。实际上,只要算得()k

S的各个分量均不相等时,就可以以此排出名次。

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

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

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

数学建模中的图论方法

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

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

数学建模常用的十大算法==转 (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、起源:哥尼斯堡七桥问题: 欧拉为了解决这个问题,建立数学模型:陆地——点,桥——边,得到一个有四个“点”,七条“边”的“图”。问题转化为能否从任一点出发一笔画出七条边再回到起点。欧拉考察了一般一笔画的结构特点,给出了一笔画判定法则:图是连通的,且每个顶点都与偶数条边相关联(这种图称为欧拉图)。由此可以得出结论:七桥问题无解。

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

图论 模型

251 图论模型 图论是运筹学的一个经典和重要分支,专门研究图与网络模型的特点、性质以及求解方法。许多优化问题,可以利用图与网络的固有特性而形成的特定方法来解决,比用数学规划等其他模型来求解往往要简单且有效得多。 图论起源于1736年欧拉对柯尼斯堡七桥问题的抽象和论证。1936年,匈牙利数学家柯尼希(D. K?nig )出版的第一部图论专著《有限图与无限图理论》,树立了图论发展的第一座里程碑。近几十年来,计算机科学和技术的飞速发展,大大地促进了图论研究和应用,其理论和方法已经渗透到物理、化学、计算机科学、通信科学、建筑学、生物遗传学、心理学、经济学、社会学各个学科中。 9.1 图的基础理论 9.1.1 图的基本概念 所谓图,概括地讲就是由一些点和这些点之间的连线组成的。定义为(,)G V E =,V 是顶点的非空有限集合,称为顶点集。E 是边的集合,称为边集。边一般用(,)i j v v 表示,其中 ,i j v v 属于顶点集V 。 以下用V 表示图(,)G V E =中顶点的个数,E 表示边的条数。 如图9.1是几个图的示例,其中图9.1 (a)共有3个顶点、2条边,将其表示为 (,)G V E =,123{,,}V v v v =,1213{(,),(,)}E v v v v =. 2 3 v 45 v 3 4 (a) (c) 图9.1 图的示意图 1.无向图和有向图 如果图的边是没有方向的,则称此图为无向图(简称为图),无向图的边称为无向边(简称边)。如图9.1 (a)和(b)都是无向图。连接两顶点i v 和j v 的无向边记为(,)i j v v 或(,)j i v v 。 如果图的边是有方向(带箭头)的,则称此图为有向图,有向图的边称为弧(或有向边),如图9.1 (c)是一个有向图。连接两顶点i v 和j v 的弧记为,i j v v ??,其中i v 称为起点,j v 称为终点。显然此时弧,i j v v ??与弧,j i v v ??是不同的两条有向边。有向图的弧的起点称为弧头,弧的终点称为弧尾。有向图一般记为(,)D V A =,其中V 为顶点集,A 为弧集。 例如图9.1 (C)可以表示为(,)D V A =,顶点集1234{,,,}V v v v v =,弧集为1223{,,,, A v v v v =????243441,,,,,}v v v v v v ??????。 对于图除非指明是有向图,一般地,所谓的图都是指无向图。有向图也可以用G 表示。 例9.1 设12345{,,,,}V v v v v v =,12345{,,,,}E e e e e e =,其中

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

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

精品文档 数学建模常用的十大算法==转 (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 题逢山开路,山体海拔高度的 收集于网络,如有侵权请联系管理员删除

第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

图论模型的建立与转化

图论模型的建立与转化 关键字:图论模型、建立、转化 摘要 本文主要写图论模型的建立与转化,共分四部分: 第一部分引言说明了图论建模在整个信息学竞赛中的地位,以及图论模型与其它数学模型的异同,并指出很有研究总结图论建模的思想、方法及技巧的必要。 第二部分提出了图论模型建立中的两个要点:对原型中的要素进行适当的取舍和选择合适的理论体系,并分别举例加以详细分析,然后从中总结出了图论建模的总的原则:准确、清晰、简明。 第三部分主要讨论了在图论模型的转化中,应用得较为广泛的两种方法:拆分转化和补集转化,并着重分析了前者。文中把前者分为三类:点→边、点→点、边→边,其中详细分析了第二类。 第四部分总结了全文,并指出了进一步研究图论模型的必要性 目录 一.引言 (2) 二.图论模型的建立 (2) I.要素的取舍 (2) II.选择合适的理论体系 (4) 三.图论模型的转化 (7) I.拆分转化 (7) II.补集转化 (10) 四.结语 (11)

正文 一.引言 信息学竞赛以解题为主,整个解题过程中一个重要的步骤就是数学建模,本文要讨论的就是数学建模的一个分支——图论建模。 图论建模是指对一些客观事物进行抽象、化简,并用图1来描述事物特征及内在联系的过程。 建立图论模型的目的和建立其它的数学模型一样,都是为了简化问题,突出要点,以便更深入地研究问题的本质;它的求解目标可以是最优化问题,也可以是存在性或是构造性问题;并且,和几何模型、运筹学模型一样,在建立图论模型的过程中,也需要用到集合、映射、函数等基本的数学概念和工具; 但图论模型和其它模型在它们的研究方法上又有着很大的不同,例如我们可以运用典型的图论算法来对图论模型进行求解,或是根据图论的基本理论来分析图论模型的性质,这些特殊的算法和理论都是其它模型所不具备的,而且在其它模型中,能用类似于图这种直观的结构来描述的也很少。 我们学习图论,一般都是通过书籍,但书上介绍的往往只限于图论模型的基本要素、一些图论的相关理论和经典算法等,至于如何建立图论模型、如何运用这些理论和算法、如何研究图论问题,都只有靠自己来理解、来领会,并通过实践来验证这些理解,通过摸索总结来提高自己的能力。 在建立图论模型的过程中,我们常常会遇到一些困难,例如难以建立点、边、权关系,或是原型中的一些重要因素无法纳入现有模型,或是现有模型虽能表示原型,却无法求解等等。为了克服这些困难,就需要用到某些独特的思想、方法和技巧,本文要写的正是我在学习、实践中得出的这方面的一点认识。 二.图论模型的建立 在建立模型之前,我们首先要对研究对象进行全面的调查,将原型理想化、简单化(对于竞赛题而言,这一步大部分已经由出题人完成了);然后对原型进行初步的分析,分清其中的各个要素及求解目标,理出它们之间的联系;下一步就是用恰当的模型来描述这些要素及联系。 I.要素的取舍 在用图论模型描述研究对象时,为了更突出与求解目标息息相关的要素,降低思考的复杂度,就不可避免地要舍去部分要素。下面我们就通过例1来分析一下。 【例1】导线排布Line[7]: 题目(文档附件:导线排布.doc)中蓝色的一段是问题描述的重点,其中涉及的要素有圆圈、N根导线、2N个端点、编号规则、导线的交叉等,求解目标是构造一种符合所给的导线交叉情况的导线排布方案。 起先,我们对题目描述的导线排布并不熟悉,或许我们能够画出几个无解或是多解的1在本文中,“图”专指由若干不同顶点与连接其中某些顶点的边所组成的图形[6],不包括一般的示意图。

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

数学建模中常见的十大 模型 Document serial number【KKGB-LBS98YT-BS8CB-BSUT-BST108】

数学建模常用的十大算法==转 (2011-07-24 16:13:14) 1. 蒙特卡罗算法。该算法又称随机性模拟算法,是通过计算机仿真来解决问题的算法,同时可以通过模拟来检验自己模型的正确性,几乎是比赛时必用的方法。 2. 数据拟合、参数估计、插值等数据处理算法。比赛中通常会遇到大量的数据需要处理,而处理数据的关键就在于这些算法,通常使用MATLAB 作为工具。 3. 线性规划、整数规划、多元规划、二次规划等规划类算法。建模竞赛大多数问题属于最优化问题,很多时候这些问题可以用数学规划算法来描述,通常使用Lindo、Lingo 软件求解。 4. 图论算法。这类算法可以分为很多种,包括最短路、网络流、二分图等算法,涉及到图论的问题可以用这些方法解决,需要认真准备。 5. 动态规划、回溯搜索、分治算法、分支定界等计算机算法。这些算法是算法设计中比较常用的方法,竞赛中很多场合会用到。 6. 最优化理论的三大非经典算法:模拟退火算法、神经网络算法、遗传算法。这些问题是用来解决一些较困难的最优化问题的,对于有些问题非常有帮助,但是算法的实现比较困难,需慎重使用。 7. 网格算法和穷举法。两者都是暴力搜索最优点的算法,在很多竞赛题中有应用,当重点讨论模型本身而轻视算法的时候,可以使用这种暴力方案,最好使用一些高级语言作为编程工具。

8. 一些连续数据离散化方法。很多问题都是实际来的,数据可以是连续的,而计算机只能处理离散的数据,因此将其离散化后进行差分代替微分、求和代替积分等思想是非常重要的。 9. 数值分析算法。如果在比赛中采用高级语言进行编程的话,那些数值分析中常用的算法比如方程组求解、矩阵运算、函数积分等算法就需要额外编写库函数进行调用。 10. 图象处理算法。赛题中有一类问题与图形有关,即使问题与图形无关,论文中也会需要图片来说明问题,这些图形如何展示以及如何处理就是需要解决的问题,通常使用MATLAB 进行处理。 以下将结合历年的竞赛题,对这十类算法进行详细地说明。 以下将结合历年的竞赛题,对这十类算法进行详细地说明。 2 十类算法的详细说明 蒙特卡罗算法 大多数建模赛题中都离不开计算机仿真,随机性模拟是非常常见的算法之一。 举个例子就是97 年的A 题,每个零件都有自己的标定值,也都有自己的容差等级,而求解最优的组合方案将要面对着的是一个极其复杂的公式和108 种容差选取方案,根本不可能去求解析解,那如何去找到最优的方案呢随机性模拟搜索最优方案就是其中的一种方法,在每个零件可行的区间中按照正态分布随机的选取一个标定值和选取一个容差值作为一种方案,然后通过蒙特卡罗算法仿真出大量的方案,从中选取一个最佳的。另一个例子就是去年的彩票第二问,要求设计一种更好的方案,首先方案的优劣取决于很多复杂的因素,同样不可能刻画出一个模型进行求解,只能靠随机仿真模拟。

数学建模常用算法模型

按模型的数学方法分: 几何模型、图论模型、微分方程模型、概率模型、最优控制模型、规划论模型、马氏链模型等 按模型的特征分: 静态模型和动态模型,确定性模型和随机模型,离散模型和连续性模型,线性模型和非线性模型等 按模型的应用领域分: 人口模型、交通模型、经济模型、生态模型、资源模型、环境模型等。 按建模的目的分: 预测模型、优化模型、决策模型、控制模型等 一般研究数学建模论文的时候,是按照建模的目的去分类的,并且是算法往往也和建模的目的对应 按对模型结构的了解程度分: 有白箱模型、灰箱模型、黑箱模型等 比赛尽量避免使用,黑箱模型、灰箱模型,以及一些主观性模型。 按比赛命题方向分: 国赛一般是离散模型和连续模型各一个,2016美赛六个题目(离散、连续、运筹学/复杂网络、大数据、环境科学、政策) 数学建模十大算法 1、蒙特卡罗算法 (该算法又称随机性模拟算法,是通过计算机仿真来解决问题的算法,同时可以通过模拟可以来检验自己模型的正确性,比较好用的算法) 2、数据拟合、参数估计、插值等数据处理算法 (比赛中通常会遇到大量的数据需要处理,而处理数据的关键就在于这些算法,通常使用Matlab作为工具)

3、线性规划、整数规划、多元规划、二次规划等规划类问题 (建模竞赛大多数问题属于最优化问题,很多时候这些问题可以用数学规划算法来描述,通常使用Lindo、Lingo软件实现) 4、图论算法 (这类算法可以分为很多种,包括最短路、网络流、二分图等算法,涉及到图论的问题可以用这些方法解决,需要认真准备) 5、动态规划、回溯搜索、分治算法、分支定界等计算机算法 (这些算法是算法设计中比较常用的方法,很多场合可以用到竞赛中) 6、最优化理论的三大非经典算法:模拟退火法、神经网络、遗传算法 (这些问题是用来解决一些较困难的最优化问题的算法,对于有些问题非常有帮助,但是算法的实现比较困难,需慎重使用) 7、网格算法和穷举法 (当重点讨论模型本身而轻视算法的时候,可以使用这种暴力方案,最好使用一些高级语言作为编程工具) 8、一些连续离散化方法 (很多问题都是从实际来的,数据可以是连续的,而计算机只认的是离散的数据,因此将其离散化后进行差分代替微分、求和代替积分等思想是非常重要的) 9、数值分析算法 (如果在比赛中采用高级语言进行编程的话,那一些数值分析中常用的算法比如方程组求解、矩阵运算、函数积分等算法就需要额外编写库函数进行调用)10、图象处理算法 (赛题中有一类问题与图形有关,即使与图形无关,论文中也应该要不乏图片的这些图形如何展示,以及如何处理就是需要解决的问题,通常使用Matlab进行处理) 算法简介 1、灰色预测模型(必掌握)

图论模型及其解答

各种图论模型及其解答 摘要: 本文用另一种思路重新组织《图论及其应用》相关知识。首先,用通俗化语言阐述了如何对事物间联系的问题进行图论建模;接着从现实例子出发,给出各种典型图论模型,每种图论模型对应于图论一个重要内容;再者,介绍相关知识对上述提到的图论模型涉及的问题进行解答;最后,补充一些图论其他知识,包括图论分支、易混概念。 符号约定: Q(Question)表示对问题描述,M(Modeling)表示数学建模过程,A(Answer)表示原问题转化为何种图论问题。 一、引言 图论是研究点、线间关系的一门学科,属于应用数学的一部分。现实生活中,凡是涉及到事物间的关系,都可以抽象为图论模型。点表示事物,连线表示事物间的联系。整个求解过程如下: 原问题——>图论建模——>运用图论相关理论求解——>转化为原问题的解 整个过程关键在于图论建模,所谓图论建模,就是明确点表示什么,连线表示什么,原问题转化为图论中的什么问题。存在以下两种情况: ①若事物间联系是可逆的(比如双行道,朋友),则抽象成无向图 ②若事物间联系是不可逆的(比如单行道,状态转化不可逆),则抽象成有向图 如果需要进一步刻画事物间的联系(比如城市间的距离),就给连线赋一个权值,从而抽象成赋值图。 综上,根据实际问题,可建模成下列图论模型的一种:无向赋权图、有向赋权图、无向非赋权图、有向非赋权图。 例1.宴会定理:任何一宴会中,一定存在两个人有相同的数量朋友M:点表示人,连线表示当且仅当该两个人是朋友 A:问题转化为任何一个图一定存在两个顶点的度相等 二、图论模型 接下来介绍若干典型的图论模型,每种模型几乎对应于图论的一个重要内容,这些内容将在第三章进行讨论,也就给出了这些模型的解答思路。 2.1 偶图模型 凡涉及两类事物间的联系(即只考虑两类事物间的联系,而不考虑同类事物间的联系),均可抽象成偶图模型。作图时,将两类事物分成两行或者两列。这

第九章 图论模型

第九章 图论模型 现实世界的许多实际问题都可以用图形来解释或说明.例如通讯网络就可以用图的形式直观的表现出来:点可以表示通讯中心,而边表示通讯线路.图论模型是应用十分广泛的数学模型,它已经在物理、化学、控制论、信息论、科学管理和计算机等领域.由于它具有图形直观,方法简单容易掌握的特点,因此在实际、生活和数学建模中,有许多问题可以运用图论的理论和方法解决. §9.1图论起源 图论起源于18世纪欧拉对哥尼斯堡七桥问题的研究.哥尼斯堡是18世纪东普鲁士的一个城市,城中有一条普雷格尔河,河中有两个岛,河上有七座桥,如图1所示. 图1 当时那里的居民热终于思考这样一个问题,一个人能否经过七座桥且每座桥只走过一次,最后回到出发点.能否用数学的方法解决这个问题一贯成为当时居民的一个悬而未决的问题. 1736年欧拉创造性的将陆地用点表示,桥用边表示,从而将这个问题转化为如图2所示的一笔画问题,即能否从某个点开始一笔画出这个图形,最后回到原点而不重复.欧拉证明了这个问题是不可能的. 图2 欧拉解决七桥问题时,其方法超出了常用的数学方法,充分发挥自己的想象力,用了全新的思想方法,从而使得问题得到完美解决.由于这一项开创性的工作,产生了“图论”这门崭新学科,欧拉被认为是图论的创始人. A B C D A B C D 1 e 2 e 5e 6e 7 e 4 e 3 e

§9.2基本概念 定义1 图G 由两个点集合V 以及边集合E 组成,记为(),G V E =,其中: (1)V 是顶点构成的集合; (2)E 是连接某些顶点对构成的边组成的集合. 例1 {}1234,,,V v v v v =,{}12232434,,,E e e e e =,画出图(),G V E =. 图3 注:图分为无向图和有向图. 定义2 若图(),G V E =的边均没有方向,这样的图成为无向图.例如图2,图3为无向图.无向图的边称为无向边,无向边是由两个顶点构成的无序对,无序对通常用圆括号表示. 例2 () ,i j v v 表示一条无向边,(),i j v v 与() ,j i v v 是同一条边. 定义3 若图(),G V E =的边均有方向,这样的图称为有向图.有向图的边称为有向边,有向边是由两个顶点构成的有序对,有序对通常用尖括号表示.有向边又称为弧. 例3 ,i j v v 表示一条有向边,,i j v v 与,j i v v 是两条不同的有向边. 定义4 一条边的端点称为与这条边关联,反之,一条边称为与它的端点关联.与同一条边关联的两个端点是邻接的.如果两边有一个公共端点,则这两条边是邻接的。两个端点重合为一点的边称为圈,不与任何边关联的点成为孤立点. 例4 如图4所示,理解定义4 图4 注:若图(),G V E =中V 和E 为有限集,称图G 为有限图,没有任何边的图为空图,只有一个点的图称为平凡图。一个图既无圈又没有两边连接同一对点的图称为简单图。 例5 结合图5理解上述概念。 5 v 4 v 3 1 v 2 v 3 v 4v 12 e 23 e 24 e 34 e

模型实例-红绿灯的调节

模型实例-----红绿灯调节问题 问题的背景及提出 在车辆拥挤的交叉路口,需要合理地调节各车道安置的红绿灯,使车辆能够顺利、有效地通过。首先应使各道都的车辆互不冲突地顺利驶过路口,其次希望效能尽量地高,试制定合适的方案。 假 设 1 我们以一个十字路口为例,含有六个交通流,见图7-1。 2 车辆在经过路口时匀速,在先后两个绿灯交替时,两个交通流不互相冲突。 3 尽量使多个交通流同时使用绿灯,和同时使用地交通流称为相容的。 4 六个交通流的红绿灯的调节是周期性的,譬如60秒。 5 直行和转弯车辆的数量比为λ1:λ2。 6 每个交通流至少使用绿灯时间10秒。 7 以各交通流总的绿灯时间作为衡量红绿灯调节优劣的指标。 模 型 建 立 设图G =,f :V →实轴上的开区间集,令f(v)=J(v)。若v 和u 相邻当且仅当J(v)和J(u)相交,则称G 是区间图。 由假设4,我们先在一个周期时间段上解决问题。取时间轴上0到60秒这段区间,记 为I ,I 上的子区间称为时段。我们进行红绿灯调节实际上是建立一个交通流到I 上时段的函数J ,即把I 分成若干时段,将这些 时段作为绿灯时间分配给各交通流,使之满足假设3、5、6、7。 故我们可以利用图论中的区间图来解决。下面把此问题用图来表示。 我们研究的主要问题是交通流的红绿灯的使用问题,即交通 流之间是否可以同时使用绿灯(相容)。故我们按下面准则建立图:每个交通流用一个顶表示, V={a ,b ,c ,d ,e ,f};当两个交通流是相容的,它们对应的顶之间连一条边,这样得到的图称为交通流的相容图,见图7-2。 发现图7-2交通流相容图不是区间图,即c 和d 、d 和e 、e 和f 、f 和c 同时使用绿灯,c 和e 、d 和f 不同时使用绿灯是做不到的。又由于相容的交通流可以不必同时使用绿灯,为 b 图7-1: 十字路口的六条车道 a b c d f e 图7-2

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

数学建模中常见的十大 模型 集团标准化工作小组 #Q8QGGQT-GX8G08Q8-GNQGJ8-MHHGN#

数学建模常用的十大算法==转 (2011-07-24 16:13:14) 1. 蒙特卡罗算法。该算法又称随机性模拟算法,是通过计算机仿真来解决问题的算法,同时可以通过模拟来检验自己模型的正确性,几乎是比赛时必用的方法。 2. 数据拟合、参数估计、插值等数据处理算法。比赛中通常会遇到大量的数据需要处理,而处理数据的关键就在于这些算法,通常使用MATLAB 作为工具。 3. 线性规划、整数规划、多元规划、二次规划等规划类算法。建模竞赛大多数问题属于最优化问题,很多时候这些问题可以用数学规划算法来描述,通常使用Lindo、Lingo 软件求解。 4. 图论算法。这类算法可以分为很多种,包括最短路、网络流、二分图等算法,涉及到图论的问题可以用这些方法解决,需要认真准备。 5. 动态规划、回溯搜索、分治算法、分支定界等计算机算法。这些算法是算法设计中比较常用的方法,竞赛中很多场合会用到。 6. 最优化理论的三大非经典算法:模拟退火算法、神经网络算法、遗传算法。这些问题是用来解决一些较困难的最优化问题的,对于有些问题非常有帮助,但是算法的实现比较困难,需慎重使用。 7. 网格算法和穷举法。两者都是暴力搜索最优点的算法,在很多竞赛题中有应用,当重点讨论模型本身而轻视算法的时候,可以使用这种暴力方案,最好使用一些高级语言作为编程工具。

8. 一些连续数据离散化方法。很多问题都是实际来的,数据可以是连续的,而计算机只能处理离散的数据,因此将其离散化后进行差分代替微分、求和代替积分等思想是非常重要的。 9. 数值分析算法。如果在比赛中采用高级语言进行编程的话,那些数值分析中常用的算法比如方程组求解、矩阵运算、函数积分等算法就需要额外编写库函数进行调用。 10. 图象处理算法。赛题中有一类问题与图形有关,即使问题与图形无关,论文中也会需要图片来说明问题,这些图形如何展示以及如何处理就是需要解决的问题,通常使用MATLAB 进行处理。 以下将结合历年的竞赛题,对这十类算法进行详细地说明。 以下将结合历年的竞赛题,对这十类算法进行详细地说明。 2 十类算法的详细说明 蒙特卡罗算法 大多数建模赛题中都离不开计算机仿真,随机性模拟是非常常见的算法之一。 举个例子就是97 年的A 题,每个零件都有自己的标定值,也都有自己的容差等级,而求解最优的组合方案将要面对着的是一个极其复杂的公式和108 种容差选取方案,根本不可能去求解析解,那如何去找到最优的方案呢随机性模拟搜索最优方案就是其中的一种方法,在每个零件可行的区间中按照正态分布随机的选取一个标定值和选取一个容差值作为一种方案,然后通过蒙特卡罗算法仿真出大量的方案,从中选取一个最佳的。另一个例子就是去年的彩票第二问,要求设计一种更好的方案,首先方案的优劣取决于很多复杂的因素,同样不可能刻画出一个模型进行求解,只能靠随机仿真模拟。

图论模型建立与转化

图论模型的建立与转化 安徽徐静 关键字:图论模型、建立、转化 摘要 本文主要写图论模型的建立与转化,共分四部分: 第一部分引言说明了图论建模在整个信息学竞赛中的地位,以及图论模型与其它数学模型的异同,并指出很有研究总结图论建模的思想、方法及技巧的必要。 第二部分提出了图论模型建立中的两个要点:对原型中的要素进行适当的取舍和选择合适的理论体系,并分别举例加以详细分析,然后从中总结出了图论建模的总的原则:准确、清晰、简明。 第三部分主要讨论了在图论模型的转化中,应用得较为广泛的两种方法:拆分转化和补集转化,并着重分析了前者。文中把前者分为三类:点→边、点→点、边→边,其中详细分析了第二类。 第四部分总结了全文,并指出了进一步研究图论模型的必要性。 目录 一.引言 (2) 二.图论模型的建立 (2) I.要素的取舍 (2) II.选择合适的理论体系 (4) 三.图论模型的转化 (7) I.拆分转化 (7) II.补集转化 (10) 四.结语 (11)

正文 一.引言 信息学竞赛以解题为主,整个解题过程中一个重要的步骤就是数学建模,本文要讨论的就是数学建模的一个分支——图论建模。 图论建模是指对一些客观事物进行抽象、化简,并用图[1]来描述事物特征及内在联系的过程。 建立图论模型的目的和建立其它的数学模型一样,都是为了简化问题,突出要点,以便更深入地研究问题的本质;它的求解目标可以是最优化问题,也可以是存在性或是构造性问题;并且,和几何模型、运筹学模型一样,在建立图论模型的过程中,也需要用到集合、映射、函数等基本的数学概念和工具; 但图论模型和其它模型在它们的研究方法上又有着很大的不同,例如我们可以运用典型的图论算法来对图论模型进行求解,或是根据图论的基本理论来分析图论模型的性质,这些特殊的算法和理论都是其它模型所不具备的,而且在其它模型中,能用类似于图这种直观的结构来描述的也很少。 我们学习图论,一般都是通过书籍,但书上介绍的往往只限于图论模型的基本要素、一些图论的相关理论和经典算法等,至于如何建立图论模型、如何运用这些理论和算法、如何研究图论问题,都只有靠自己来理解、来领会,并通过实践来验证这些理解,通过摸索总结来提高自己的能力。 在建立图论模型的过程中,我们常常会遇到一些困难,例如难以建立点、边、权关系,或是原型中的一些重要因素无法纳入现有模型,或是现有模型虽能表示原型,却无法求解等等。为了克服这些困难,就需要用到某些独特的思想、方法和技巧,本文要写的正是我在学习、实践中得出的这方面的一点认识。 二.图论模型的建立 在建立模型之前,我们首先要对研究对象进行全面的调查,将原型理想化、简单化(对于竞赛题而言,这一步大部分已经由出题人完成了);然后对原型进行初步的分析,分清其中的各个要素及求解目标,理出它们之间的联系;下一步就是用恰当的模型来描述这些要素及联系。 I.要素的取舍 在用图论模型描述研究对象时,为了更突出与求解目标息息相关的要素,降低思考的复杂度,就不可避免地要舍去部分要素。下面我们就通过例1来分析一下。 【例1】导线排布Line[7]: 题目(文档附件:导线排布.doc)中蓝色的一段是问题描述的重点,其中涉及的要素有圆圈、N根导线、2N个端点、编号规则、导线的交叉等,求解目标是构造一种符合所给的导线交叉情况的导线排布方案。 起先,我们对题目描述的导线排布并不熟悉,或许我们能够画出几个无解或是多解的例子,但竞赛时我们不可能花更多的时间在熟悉题目上了,这时只有尽快地把我们不熟悉的、难于思考的原型转化成我们熟知的、便于思考的模型。 先来分析求解目标:所谓的构造导线排布方案,也就是找出每根导线两个端点的编号;而编号要满足的条件就是导线交叉的情况。 那么下一步我们就来分析一下编号与导线交叉之间的关系。记第i根导线两端点的标号为Ai和Bi(AiB1,A2>B2,A1>A2(根据编号规则),不同的是(a)满足A2>B1,B1>B2,

基于Matlab平台的图论模型的仿真实验

第28卷一第8期 长一春一大一学一学一报 Vol.28一No.8 一2018年8月JOURNALOFCHANGCHUNUNIVERSITYAug.2018一 收稿日期:2018 ̄04 ̄20 基金项目:山东科技项目(J15L157) 作者简介:孙建英(1979-)?女?山东烟台人?副教授?硕士?主要从事应用数学方面研究?基于Matlab平台的图论模型的仿真实验 孙建英 (青岛理工大学琴岛学院?山东青岛266106) 摘一要:在Matlab2014a平台下?利用图论工具箱中的函数求解图论模型中的最短路二最大流和最小支撑树问题?用3个实例进行仿真?能快速方便地得到最优解?对图论模型的进一步研究有重要意义和实用价值? 关键词:最短路?最大流?最小支撑树?Matlab2014a 中图分类号:O29一一一文献标志码:A一一一文章编号:1009-3907(2018)08-0021-04 一一图论模型是数学建模中一类非常重要的模型?它的应用非常广泛?购买机票二设备更新二配送路线选择等?都属于最短路径问题?景区的旅游车辆的最大通行量二石油管道的最大输送量等?都属于最大流问题?电线的架设问题二居民区的供水管道问题等?都属于最小支撑树问题?Matlab2014a平台中的图论工具箱?可以实现图论模型的快速求解?不必编写复杂的程序?对计算机不是很懂的学者也可以很快地掌握?本文从3个实例出发?详细介绍了如何利用图论工具箱快速准确地求解图论模型中的最短路二最大流和最小支撑树问题?对图论模型的进一步研究有重要意义和实用价值? 1一预备知识 1.1一图论工具箱Matlab2014a平台下图论工具箱中的相关函数?如表1所示? 表1一Matlab图论工具箱中的相关函数函数名 功能介绍graphshortestpath 求解无向图和有向图中任意指定顶点的最短距离和最短路径graphmaxflow求解有向图中的最大流graphminspantree求解最小支撑树1.2一稀疏矩阵 稀疏矩阵是指零元素很多?非零元素比较少的矩阵? 稀疏矩阵的存储方式:a(i?j)=m?其中?a表示稀疏矩阵?i表示非零元素的行标?j表示非零元素的列标?m表示非零元素的数值? 稀疏矩阵的使用说明:1)有向图中?可以直接使用Matlab中的sparse命令?把邻接矩阵转化为稀疏矩阵?2)无向图中?由于Matlab只存储下三角矩阵中的非零元素?要先把邻接矩阵转置?再应用sparse命令?2一实例仿真 2.1一最短路问题 例1购买机票问题[1]:某集团公司在六个城市C1?C2? ?C6中有分公司?从Ci到Cj的直飞航程票价如表2所示( - 表示无直飞航班)?如今?集团巡视组要分别从C1出发到其他城市去检查工作?请问:应该如何安排航班?方可使得票价最低?

相关文档
最新文档