数学建模图与网络模型及方法

合集下载

数学建模的主要建模方法

数学建模的主要建模方法

数学建模的主要建模方法数学建模是指运用数学方法和技巧对复杂的实际问题进行抽象、建模、分析和求解的过程。

它是解决实际问题的一个重要工具,在科学研究、工程技术和决策管理等领域都有广泛的应用。

数学建模的主要建模方法包括数理统计法、最优化方法、方程模型法、概率论方法、图论方法等。

下面将分别介绍这些主要建模方法。

1.数理统计法:数理统计法是基于现有的数据进行概率分布的估计和参数的推断,以及对未知数据的预测。

它适用于对大量数据进行分析和归纳,提取有用的信息。

数理统计法可以通过描述统计和推断统计两种方式实现。

描述统计主要是对数据进行可视化和总结,如通过绘制直方图、散点图等图形来展示数据的分布特征;推断统计则采用统计模型对数据进行拟合,进行参数估计和假设检验等。

2.最优化方法:最优化方法是研究如何在给定的约束条件下找到一个最优解或近似最优解的方法。

它可以用来寻找最大值、最小值、使一些目标函数最优等问题。

最优化方法包括线性规划、非线性规划、整数规划、动态规划等方法。

这些方法可以通过建立数学模型来描述问题,并通过优化算法进行求解。

3.方程模型法:方程模型法是通过建立数学方程或函数来描述问题,并利用方程求解的方法进行求解。

这种方法适用于可以用一些基本的方程来描述的问题。

方程模型法可以采用微分方程、代数方程、差分方程等不同类型的方程进行建模。

通过求解这些方程,可以得到问题的解析解或数值解。

4.概率论方法:概率论方法是通过概率模型来描述和分析不确定性问题。

它可以用来处理随机变量、随机过程和随机事件等问题。

概率论方法主要包括概率分布、随机变量、概率计算、条件概率和贝叶斯推理等内容。

利用概率论的方法,可以对问题进行建模和分析,从而得到相应的结论和决策。

5.图论方法:图论方法是研究图结构的数学理论和应用方法。

它通过把问题抽象成图,利用图的性质和算法来分析和求解问题。

图论方法主要包括图的遍历、最短路径、最小生成树、网络流等内容。

数学建模方法之图与网络模型

数学建模方法之图与网络模型
如果图G的一个生成子图还是一个树,则称这个生成子图为生成树, 在图11-12中,(c)就是(a)的生成树。
最小生成树问题就是指在一个赋权的连通的无向图G中找出一个生成 树,并使得这个生成树的所有边的权数之和为最小。
(a)
图11-12
(b)
(c)
11
§3 最小生成树问题
一、求解最小生成树的破圈算法 算法的步骤: 1、在给定的赋权的连通图上任找一个圈。 2、在所找的圈中去掉一个权数最大的边(如果有两条或两条
1.给出点V1以标号(0,s) 2.找出已标号的点的集合I,没标号的点的集合J以及弧的集合
{(vi , v j ) | vi I , v j J}
3. 如果上述弧的集合是空集,则计算结束。如果vt已标号(lt,kt),则 vs 到vt的距离为lt,而从 vs到vt的最短路径,则可以从kt 反向追踪到起点 vs 而得到。如果vt 未标号,则可以断言不存在从 vs到vt的有向路。如果 上述的弧的集合不是空集,则转下一步。
e2
(v(v3) 李(v4)
周(v5)
图11-2
e5 吴(v6) 陈(v7)
3
如果我们把上面例子中的“相互认识”关系改为“认识”
的关系,那么只用两点之间的联线就很难刻画他们之间的关
系了,这是我们引入一个带箭头的联线,称为弧。图11-3就
是一个反映这七人“认识”关系的图。相互认识用两条反向
的弧表示。
a1 a2
(v2)钱
a7
a8
(赵v1)
a14 a15 a3
(v4) 李
a4
a9
(v3)孙
a5
a6
a12
a11
(v5) 周
a10
(v6)吴 a13

数学建模第七章图与网络方法建模-72竞赛排名

数学建模第七章图与网络方法建模-72竞赛排名

3 5
G2
8
7
6
G1 , G2 , G3 子图之间的边被简化了, 实际上两子图的
每对顶点之间都有边相连,而这些边的方向必是一致 的,否则相应的子图可以合并为更大的双向连通子竞 赛图。 在每个这样的图中按上面介绍的方法排名次,而 子图之间的名次不难由它们相连边的方向决定。例 如:G1 的名次为{1,2,4,3},G2 的名次 5,6,7 相同,G3 只 一 个 顶 点 8 , 故 全 部 顶 点 的 名 次 排 列 为 {1,2,4,3, (5,6,7),8}。
1 存在从顶点i到j的有向边 aij 0 否则
1
例如:
2 4 3
的邻接矩阵为
0 0 A 0 1
1 0 0 0
1 1 0 0
0 1 1 0
(1) T S ( S , S , , S ) 记顶点的得分向量为 ,其中 Si 是 1 2 n
( 2) (1) (k ) ( k 1) k 1 (1) i S AS , , S AS A S , 顶点 1、竞赛图 在每条边上都标出方向的图称为有向图。每 对顶点间都有一条边相连的有向图称为竞赛图。 如何由竞赛图排出顶点的名次? (1)两个顶点的竞赛图只有一种形式
1 2
(2)三个顶点的竞赛图只有两种形式
2 2
1
3
1
3
(1)
(2 )
对(1) ,顶名次排序为{1,2,3};对(2) ,三个顶 点名次相同。
于是可排出名次为{1,3,2,5,4,6}。
三、其他情况(不属于 1 0 和 2 0 )下的名次排序 对于既没有唯一完全路径,又不是双向连通的竞 赛图,通常可分解为若干个双向连通的子竞赛图。 例如下图 8 个顶点的竞赛图分解为 3 个双向连通 子竞赛图

图与网络模型的算法及其应用

图与网络模型的算法及其应用

图与网络模型的算法及其应用摘 要 本文介绍了图论的基本方法和几个基本的网络优化问题的算法,并且介绍了几个基本的网络优化问题的算法在解决实际问题中的应用. 关键字 图与网络 算法 应用 1 前言在现实生活中,我们会遇到很多复杂的问题,我们希望用一种巧妙的办法去简化它,优化它和解决它,图就是一个有效的工具.把实际问题化为图后,我们能清楚地观察到整个局面,方便我们进行具体分析.所以研究和总结图的应用算法是件有意义且必要的事情.图论的问题基本上有两大类,一是存在性问题,一是最优化问题.图论是一种较为直接明了的算法,此外图论涵盖的范围很广,内容也很丰富, 单就学术方面而言, 已有很大的发展空间和研究价值.在日常生活中, 我们经常可以找到与图论息息相关的内容, 利用图论我们可以更有效地解决问题. 2 图论基本概念 2.1 图的定义有序三元组),,(W E N G =称为一个图, 其中:(1)) N , ,N ,(N N n 21 =是有穷非空集, 称为顶点集,其元素叫做图的顶点;(2)E 称为边集, 其元素叫做图的边;(3)W 是从边集E 到顶点集N 的有序或者无序对集合的影射, 称为关联函数.2.2 图的分类在图G 中, 与N 中的有序偶) N ,(N j i 对应的边e 称为图的有向边(或弧), 而与N 中顶点的无序偶对应的边e 称为图形的无向边, 每一条边都是无向边的图, 叫做无向图, 记为) E (N, G =;每一条边都是有向边的图叫做有向图, 记为) E (N, D =; 既有无向边又有有向边的图叫做混合图.2.3 子图设),(E N G =是一个图,并设),(E N G =和E E ⊆',如果对中任意的一条边},{j i ij n n e =,都有N n i '∈和N n j '∈,则称),(E N G ''='是的一个子图.若NN =',则称G '为G 的支撑子图. 2.4 权如果图G 中任意一条边) N ,(N j i 上都附有一个数ij W ,则称这样的图G 为赋权图,ij W 称为边) N ,(N j i 上的权.3 最小树问题最小树是网络优化中一个重要概念,它在交通网、电力网、电话网、管道网等设计中均有广泛的应用. 3.1 定义定义1 一个连通且无回路的图叫做树.定义2 给定图G 和G 的一个支撑子图T ,若T 是一个树,则称T 为G 的一个支撑数.定义3 给定网络),,(W E N G =,设),(E N T '=为的一个支撑数,令∑'∈=E e e W T W )()(则称)(T W 为T 的权.G 中最小的支撑树称为G 的最小树.3.2 求最小树的算法3.21 求最小树的Kruskal 算法Kruskal 算法是1956年首次提出的球最小树的算法,其基本思路是从G 的m 条边中选取1-n 条权尽量小的边,并且使得不构成回路,从而构成一个最小树.具体算法:第1步 把图的边按权的大小有小到大的排列起来,即将图的边排序为ma a a ,,,21 ,使得)()()(21m a W a W a W ≤≤≤ ,置1,0,==∅=j i S .第2步 若1-==n i S ,则停止.这时T S G =][即为所求;否则转向第3步. 第3步 若}]{[i a S G ⋃不够成回路,则置,1:},{,11+=⋃==++i i e S S a e i j i1:+=j j 转向第2步.3.22 求最小树的prim 算法设置两个集合P 和Q ,其中P 用于存放G 的最小生成树中的顶点,集合Q 存放G 的最小生成树中的边.令集合P 的初值为}{1v P = (假设构造最小生成树时,从顶点1v 出发),集合Q 的初值为∅=Q .prim 算法的思想是,从所有P V v P p -∈∈,的边中,选取具有最小权值的边pv ,将顶点v 加入集合P 中,将边pv 加入集合Q 中,如此不断重复,直到V P = 时,最小生成树构造完毕,这时集合Q 中包含了最小生成树的所有边. prim 算法如下:第1步 ∅==Q v P },{1第2步 如果V P ≠则),,min(P V v P p w pv pv -∈∈=,}{v P P +=,}{pv Q Q +=. 3.23 求最小树的Dijkstra 算法Dijkstra 算法的基本思路是从图的个独立割集中的每一个都选取一条权最小的边,从而构成一个最小树,具体算法为:第1步 置},,3,2{},1{.,1n S R T w u j j ==∅==第2步 取ik j k w u u ==}min{,置}{\},{},{k S S k R R e T T ik =⋃=⋃= 第3步 若∅=S ,则停止;否则,置S j w u u kj j j ∈=},,min{,返回第2步 3.24 求最小树的管梅谷算法第1步 令赋权图0N G =,在0N 中取一圈,去掉这个圈中全最大的一条边,得一子图1N ;第2步 在1N 中取一圈,去掉这个圈中全最大的一条边,得一子图2N ; 第3步 在2N 中取一圈,去掉这个圈中全最大的一条边,得一子图3N ; 第4步 如此继续下去,直到剩下的子图不含圈,所得到的子图就是所要求的最小树.3.3 最小生成树的应用在现实社会中可以看到,在交通网,通信网,电路网,通风网等建设中,都涉及到如何建造一个网络,使得任意两个地点可达且建造费用最小,也就是求这个网络中最小生成树的问题.例1 假设要建造连接8个城镇的通信网络,每条线路的造价如图所示,设计一个总造价最小的通信网络.图1分析 设计总造价最小的通信网络即找出以上赋权图的最小树. 解 用Kruskal 算法求解: 把边按权的递增顺序排列).8(),7(),7(),6(),6(),5(),4(),4(),4(),3(),3(),3(),2(),2(),2(),1(),1(2911712131411516107863154a a a a a a a a a a a a a a a a a取.,,,,,,57166105643315241a e a e a e a e a e a e a e =======则721,,,e e e 构成的生成树就是一棵最小树(图2),它的权值是16.图2 用管梅谷算法求解:在图中取回路421a a a ,去掉2a ,得一子图1N ;在1N 中取回路3541a a a a ,去掉1a ,得一子图2N ; 在2N 中取回路8139a a a ,去掉9a ,得一子图3N ; 在3N 中取回路12103a a a ,去掉12a ,得一子图4N ; 在4N 中取回路171614a a a ,去掉17a ,得一子图5N ; 在5N 中取回路111385a a a a ,去掉13a ,得一子图6N ; 在6N 中取回路615161154a a a a a a ,去掉11a ,得一子图7N ;图3在7N 中取回路1576a a a ,去掉7a ,得一子图8N ;在8N 中取回路864a a a ,去掉8a ,得一子图9N ;在9N 中取回路101416156453a a a a a a a a ,去掉14a ,得一子图10N (图3). 总结:赋权图的最小树不是唯一的,在上题中,如果取,,,3315241a e a e a e ===14716610584,,,a e a e a e a e ====,可以得到另一棵最小树(图4)图4 4 最短通路问题在各种网络的铺设,网络的输送,路线的安排中,常常会涉及到确定一条最短路的问题,最短通路问题有非常广泛的背景和应用,它是图论中的一个重要问题.4.1 定义在最短路问题中,给出的是一有向加权图),(E V G =,在其上定义的加权函数R E W →: 为从边到实型权值的映射.路径),,,(10k v v v P =的权是指其组成边的所有权值之和:∑=-=ki i i v vw P w 11),()(定义u到v 间最短路径的权为⎩⎨⎧∞→=的通路到如果不存在由的通路到如果存在由)(v u v u v u p w v u }:)(min{,δ从节点u 到v 间最短路径定义为权),()(v u P w δ=的任何路径.定理 设是),,(W A N G =一个弧权为正值的有向网络,则在G 中,任意一条最短有向路的长都大于它的真子有向路的长. 4.2 求最短路的算法4.21 求最短路的Dijkstra 算法Dijkstra 算法仅适用于弧权为正值的有向网络中球员最短有向路.具体算法如下:第1步 (开始)置},,3,2{},1{,,,3,2,,011n T P n j w u u j j =====. 第2步 (指出永久标号)在T 中寻找一点k ,使得}{lim j Tj k u u ∈=,置},{},{k T T k P P -=⋃=若∅=T ,终止;否则,进行第3步.第3步 (修改临时标号)对T 中每一点j ,置},min{kj k j j w u u u +=,然后返回第一步. 4.22 求最短路的位势法正整数权网络),,(W A V G =中,},,,{)(21n v v v G V =为G 的顶点集,)}(,|{)(G V v v a G A j i ij ∈=为G的弧集,}),(|{+∈∈=N w G A a w W ij ij ij 为G 的权集.最短路的位势法具体算法如下:第1步 对所有)(G V v i ∈,置0=i p ,得到势}{i p p =,并置},{1v S =S G V T -=)(.第2步 对T v j ∈∀,若)(S v w p p i ij i j ∈∃=-,则)(j v S S +=,}{j v T T -=,记0i j =λ.第3步 若S v n ∈,则用反向追踪法的得到从1v 到n v 的最短路,结束;否则,对T v i ∈,置1+=i i p p ,返回第2步.4.3 最短路的应用4.31 旅游线路中的最短路问题例2:公园路径系统见图5,其中S 为入口,T 为出口,A 、B 、C 、D 、E 为5 个景点.现求如何能使观光旅游车从入口S 到出口T 所经过的距离最短.图5这是一个很典型的最短路问题.本文将该问题用破圈法来解.破圈法本来是一种从给定的图中产生最小部分树的方法.方法如下:从网络图N 中任取一回路,去掉这个回路权数最大的一条边,剩得一子网络图N1.在N1中再任取一回路,去掉回路中权数最大的一条边,此时又剩得网络图N2,如此继续下去,一直到剩下的子图中不再含回路为止,该子图就是N 的最小树.本文将破圈法算法改进用于有向图中的最短路问题.破圈原则:有向图的圈是由两条共起点、共终点的路围成.破圈时,去掉较长一条路的最后一条弧(未必是该圈或该路上的最长弧).假如两条路相等,任取一条路,去掉其最后一条弧.该法基于最短路的重要特征:如果最短路在第K 站通过点Pk ,则由点Pk 出发到达终点的这条路线,对于从点Pk 出发到达终点的所有可能选择的不同路线来说,必定也是最短路.破圈时,去掉较长路的最后一条弧,等于是给由点Pk 出发到达终点所有非最短路挂上“此路不通”的牌子.按照前边所述破圈法来解最短路问题的步骤,去边的过程如下图6-11所示.图6 图7图图8 图9图10 图11(A )图11(B )由图可知,从入口S 到出口T 的最短路径为L1:S →A →B →D →T 或L2:S →A →B →E →D →T 最短距离为:L1:2+2+4+5=13;L2:2+2+3+1+5=13. 4.32 运输中的最短路问题例3 给定一个运输网络(如图12),两点之间连线上的数字表示两点间的75134411224T BECDAS7513441224T B EC DA S 751341224TB E CD A S75134224TBE C DA S5134224T B E C DAS 534224T B E CDAS 153224T B E C D A S距离,求从V1到Vv 的运输线路,使总距离最短.图12 解:(1)给起始点1V 标号为),0(S .(2)},,,,,,,,,{},{987654321v u V V V V V V V V V V J V I ==,边的集合为]},[],,[],,[],,{[51413121V V V V V V V V . 330440131113121112=+=+==+=+=c c S c c S2},,,min{2203301515141312151115141114===+=+==+=+=S S S S S c c S c c S给边],[51V V 中未标号的点5V 标以)1,2( (3)},,,,,,,,{},,{987643251v u V V V V V V V V V J V V I == 边的集合为]},[],,[],,[],,[],,[],,{[857565413121V V V V V V V V V V V V3},,,,,min{312752972581413585756141312581558571557561556=====+=+==+=+==+=+=S S S S S S S S S c c S c c S c c S给边],[31V V 中未标号的点3V 标以)1,3(,],[41V V 中未标号的点4V 标以)1,3(,],[85V V 中未标号的点8V标以)5,3(.(4)},,,,,{},,,,,{976285431v u V V V V V V J V V V V V I ==,边的集合为]},[],,[],,[],,[],,[],,[],,[],,{[898657464736321u V V V V V V V V V V V V V V V V4},,,,,,,,min{963413118374310737438912889575647463736128188891889471447461446371337361336====+=+==+=+==+=+==+=+==+=+==+=+=S S S S S S S S S S S c c S c c S c c S c c S c c S c c S u u u给边],[21V V 中未标号的点2V 标以)1,4(,给边],[98V V 中未标号的点9V 标以)8,4( (5)},,,{},,,,,,,{769854321v u V V V V J V V V V V V V I ==, 边的集合为]},[],,[],,[],,{[987565v u V V V V V V V V .7},,,min{14104579857569199===+=+=S S S S S c c S v u v v给边],[75V V 中未标号的点7V 标以)5,7(.(6)},,{},,,,,,,,{698754321v u V V V J V V V V V V V V I ==, 边的集合为]},[],,[],,[],,{[98765v u u V V V V V V V V7},,,min{1410412578569875691997177====+=+==+=+=u v u u v v u u S S S S S S c c S c c S给边],[65V V 中未标号的点6V 标以)5,9(,边],[8u V V 中未标号的点u V 标以),(89(7)}{},,,,,,,,,{987654321v u V J V V V V V V V V V V I ==,, 边的集合为]},[],,{[9v u v V V V V14),min(1569991===+=+=v uv v uv u uv S S S c c S给边],[9v V V 中未标号的点v V 标以)9,14(.综上,可从标号中找到最短路及距离:v V V V V V →→→→9851,此最短路的长度为14.4.33 设备更新中的最短路问题例4 某企业使用一台设备, 每年年初,企业都要作出决定, 如果继续使用旧的,要付维修费;若购买一台新设备,要付购买费.试制定一个5 年更新计划,使总支出最少.已知设备在每年年初的购买费分别为11,11,12,13.使用不同时间设备所需的维修费分别为5,6,8,11,18.建立最短路模型( 图13, 图14):设i b 表示设备在第i 年年初的购买费, ic 表示设备使用i 年后的维修费,},,,,,{654321v v v v v v V =,点i v 表示第i 年年初购进一台新设备,虚设一个点6v 表示第5年年底.}61|{≤<≤=j i v v E j i .∑-=+=ij k k i j i c b v v F 1)( 求1v 到6v 的最短路问题.图13由实际问题可知,设备使用三年后应当更新,因此删除图1 中1v 到5v ,1v 到6v ,2v 到6v 的连线;又设备使用一年后就更新则不划算,因此再删除该图中21v v , 32v v ,43v v ,54v v ,65v v 五条连线后得到.图14从上图中容易得到1v 到6v 只有两条路:654321v v v v v v 和654321v v v v v v ,而这两条v6v 6路都是1v 到6v 的最短路. 5 最大流问题 5.1 定义与定理给定一个有向网络),,(C A N G =,其中ij c 表示弧A j i ∈),(的容量,并设G 有一个发点s 和一个收点t ),(N t s ∈.令=ij x 通过弧()j i ,的流量,显然有ij ij c x ≤≤0(1)另为,流)(ij x x =要遵守点守恒规律,即∑∑⎪⎩⎪⎨⎧=-≠=+=-jjjiij ti v t s i s i v x x ,0(2)它表示除点s 和t 以外,对每个点i ,流入i 的流量等于流出i 的流量,而发点s 和t 收点分别具有值为v 的出流和入流,满足(1)和(2)的流称为可行流.设P 是G 中从s 到t 的无向路, P 的一个弧()j i ,称为前向弧,如果它的方向是从s 到t ;否则称为后向弧.如果对的每个前向弧()j i ,有ij ij c x <;而P 对的每个后向弧()j i ,有0>ij x ,路P 称为是一个关于给定流)(ij x x =的增广路.增广路定理 一个可行流是最大流当且仅当不存在关于它的从s 到t 的增广路.最大流最小割定理 一个流-),(t s 的最大值等于割-),(t s 的最小容量. 5.2最大流算法本文所介绍的最大流的算法,它是Ford 和Fulkerson 首先给出的.基本思路是从任意一个可行流出发,找一条从s 到t 的增广路,并在这条增广路上增加流值,于是便得到一个新的可行流,然后在这新的可行流的基础上再找一条从s 到t 的增广路,在增加流值,继续这个过程,一直到找不到从s 到t 的增广路为止,这时,现行的流便为最大流,具体算法如下:第1步 (开始)令)(ij x x =是任意整数可行流,可能是零流,给s 一个永久标号),(∞-. 第2步 (找增广路)(2.1)如果所有标号点都以被检查,转到第4步.(2.2)找到一个标号但未检查的点i ,并作如下检查,对每一个弧),(j i ,如果ij ij c x <,且j 未标号,则j 给一个标号))(,(j i δ+,其中)}(,min{)(i x c j ij ij δδ-=,对每个弧),(i j ,如果0>ji x ,且j 未标号,则给j 一个标号))(,(j i δ-,其中)}(,min{)(i x j ji δδ=(2.3)如果t 已被标号,转到第3步;否则转到(2.1). 第3步 (增广) 有点开始,使用指标标号构造一个增广路(在点的指标标号表示在路中倒数第二个点,在倒数第二个点的指标标号表示倒数第三个点,等等),指标标号的正负则表示通过增加还是减少弧流量来增大流值.抹去点以外的所有标号,转到第2步.第4步 (构造最小割)这是现行流是最大的,若把所有标号点的集合记为S ,所有未标号点的集合记为T ,便得到最小容量割),(T S ,计算完成.5.3 最大流的应用网络最大流问题是网络的另一个基本问题.许多系统包含了流量问题.例如交通系统有车流量,金融系统有现金流,控制系统有信息流等.许多流问题主要是确定这类系统网络所能承受的最大流量以及如何达到这个最大流量.例5 如图15是连结某产品产地s v 和销地t v 的交通图.弧),(j i v v 表示从i v 到jv 的运输线,弧旁的数字表示这条运输线的最大通过能力ij c ,括号内的数字表示该弧上的实际流ij f .现要求制定一个运输方案,使从s v 运到t v 的产品数量最多.图15解 对图7-20中各顶点进行标号. 首先给s v 标),0(+∞,即∞=)(s v l 检查s v :在弧),(2v v s 上,因为22s s c f <,又有8}513,min{}),(min{)(222=-∞=-=s s s f c v l v l ,所以给2v 标)8,(+s v ;在弧上),(3v v s ,因为33s s c f <,又有6}39,min{}),(min{)(333=-∞=-=s s s f c v l v l ,所以给3v 标)6,(+s v .检查2v :在弧上),(52v v ,因为2525c f <,又有2}35,8min{}),(min{)(252525=-=-=f c v l v l ,所以给5v 标)2,(2+v ;在弧上),(42v v ,因为2424c f <,又有3}36,8min{}),(min{)(242424=-=-=f c v l v l ,所以给4v 标)3,(2+v ;4(2)10(1)4(1)5(0)5(2)9(3)4(1)6(2)6(3)9(5)5(3)13(5)v 6v tv 2v 5v 4v 3v s在弧),(23v v 上,因为0132>=f ,又有1}1,8min{}),(min{)(3223===f v l v l ,所以给3v 标)1,(2-v .因为前面已给3v 标过号)6,(+s v ,这里又给3v 标)1,(2-v ,它们分别表示两条不同的路线,这里不存在修改标号的问题(与最短路不同).因为我们的目标是尽快找出一条从s v 到t v 的增广链,即尽快使终点t v 获得标号,所以不必在中途过多停留.也就是说在对已标号点i v 进行检查时,每次只检查一个相邻点j v (不论前向弧或后向弧均可),再给标号即可,而不必检查所有与i v 相邻的点.事实上,其余的相邻点也不会漏掉,因为以后还要通过检查这些点来找出新的增广链.以下我们就按这种思路进行.检查:5v在弧),(5t v v 上,因为t t c f 55<,又有2}59,2min{}),(min{)(555=-=-=t t t f c v l v l .所以给t v 标)2,(2-v .至此,终点t v 已获得标号,于是找出一条s v 从到t v 的增广链.再由标号的第一部分用反向追踪法找出路线,即},,,{521t s v v v v =μ(见图15-1).进行调整:这时的调整量2)(==t v l Q ,调整结果如图15-1所示.图15-1对这个新的可行流再进入标号过程,寻找新增广链.开始给s v 标),0(+∞,检查s v ,给2v 标)6,(+s v . 检查2v :在弧),(52v v 上,因为2525c f =(见图15-1),故该弧已饱和,标号无法进行下去.在弧),(42v v 上,因为2424c f <,又有3}36,6min{}),(min{)(242424=-=-=f c v l v l所以给4v 标)3,(2+v , 检查4v :在弧),(54v v 上,因为4545c f <,又有3}25,3min{}),(min{)(454555=-=-=f c v l v l所以给5v 标)2,(5+v , 检查5v :在弧),(5t v v 上,因为t t c f 55<,又有v t (v 5+,2)v 5(v 2+,2)v 2(v s +,8)v s (0,∞)9(7)5(5)13(7)v tv 2v 5v s2}79,3min{}),(min{)(555=-=-=t t t f c v l v l ,所以给t v 标)2,(5+v .于是又得到一条增广链},,,,{5422t s v v v v v =μ (见图15-2)图15-2进行调整: 这时2)(==t v l Q .调整结果如图15-2所示.再重新标号求新的增广链.开始给s v 标),0(+∞,检查s v ,给2v 标)4,(+s v .检查2v ,给4v 标)1,(2+v ,检查4v ,给5v 标)1,(4+v ,检查5v ,因),(5t v v 已是饱和弧(见图15-3).标号无法进行.但在弧),(4t v v 上,t t c f 44<.又有1}24,1min{}),(min{)(444=-=-=t t t f c v l v l ,所以给t v 标)1,(4+v .于是又得到一条增广链:},,,{423t s v v v v =μ.再进行调整(见图15-3).图15-3再重新进行标号求新的增广链:开始给s v 标),0(+∞,检查s v ,给2v 标)3,(+s v . 检查2v :这时弧),(),,(4252v v v v 均已饱和.而在弧),(23v v 上,因0132>=f ,又有1}1,3min{}),(min{)(3223===f v l v l 所以给3v 标)1,(2-v ,表明弧),(23v v 为后向弧.检查3v ,给4v 标)1,(3+v .检查4v ,给t v 标)1,(4+v .于是又得到一条增广链: },,,,{4324t s v v v v v =μ. 再进行调整(见图15-4)再重新进行标号求新的增广链:开始给s v 标),0(+∞,检查s v ,给2v 标)2,(+s v .检查2v ,这时),(52v v 和),(42v v 均v t (v 5+,2)v 4(v 2+,3)v 5(v 4+,3)v 2(v s +,6)v s (0,+∞)6(2)6(3)9(5)13(5)v tv 2v 5v 4vsv t v 4+,1()v 4v 2+,1()v 2Vs +,+∞()v s (0,+∞)13(10)v tv2v4v s为前向弧,都已饱和,弧),(23v v 为后向弧,且为零流弧)0(32=f .故图15-4标号无法进行.但在弧)0(32=f 上因为33s s c f <.又有6}39,min{}),(min{)(333=-∞=-=s s s f c v l v l .所以给3v 标)6,(+s v .检查3v ,给4v 标)2,(3+v .检查4v ,因为),(4t v v 已饱和(见图15-4).而在弧),(64v v 上,因为4646c f <,又有2}14,2min{}),(min{)(464646=-=-=f c v l v l .所以给6v 标)2,(4+v ,再检查6v ,给t v 标)2,(6+v .于是又得到一条增广链:},,,,{6435t s v v v v v =μ. 再进行调整(见图15-5).图15-5再重新进行标号求新的增广链.开始给s v 标),0(+∞,检查s v ,给3v 标)4,(+s v .检查3v ,因为),(43v v 已饱和,而为弧),(63v v 上标号还可以继续进行,给6v 标)4,(3+v .检查6v .给t v 标)4,(6+v .于是又得到一条增广链},,,{636t s v v v v =μ 再进行调整(见图15-6).再重新进行标号:开始给s v 标),0(+∞,检查s v :这时弧),(3v v s 已饱和.标号无法进行.而2v 还可以标号)2,(+s v .再检查2v ,如前所述,标号也无法进行.4(4)5(3)4(0)v 3v 2+,1()v t v 4+,1()v 4v 3+,1()v 2v s +,3()v s 0,+∞()13(1)v tv2v4v3v sv 3(v 3+,6)v 6(v 4+,2)v t v 6+,2()v 4(v 3+,2)v s (0,+∞)10(3)4(3)5(5)9(5)v 6v tv 4v 3v s至此已求得最大流为13+7=20.图15-66 最小费用流问题 6.1 定义已知容量网络),,(C E V G =,每条边()j i v v ,除了已给出容量ij c 外,还给出了单位流量的费用)0(≥ij w ,记),,,(W C E V G =,求的一个可行流{}ij x x =,使得流量v最大,且总费用∑∈=Ev v ijijj i x wf d ),()(最小.6.2 最小费用流的算法6.21最小费用流的对偶算法本算法称为求最小费用流的对偶算法,既由值为v v <0的最小费用流出发,在始终保持其费用最小的前提下,逐步增加可行流的值,使得可行流的值越来越接近v ,直到达到v 为止.最小费用流可以写成线性规划的形式,即⎪⎪⎪⎪⎪⎩⎪⎪⎪⎪⎪⎨⎧∈≤≤≠∈=--=-=-∑∑∑∑∈A j i c x t s i N i x x vx x v x x t s x w ij ij jji ij j jt tj jjs sj A j i ij ij ).(,0,,,0)()()(..min ).(上述线性规划问题的对偶线性规划为:⎪⎪⎪⎩⎪⎪⎪⎨⎧∈∈≥∈≤----∑∈N i i p A j i r Aj i w r i p j p t s r c v s p v t p ij ij ij A j i ij ij ,)(),(,0).(,)()(..})()({max ),(无限制 其中,)(i p 为对应点i 的对偶变量;ij r 为对应于弧的对偶变量.v 6(v 3+,4)v t (v 6+,4)v 3(v s +,4)v s 0,+∞()10(7)5(4)v 6v tv 3v s则求最小费用流的具体算法如下: 第1步 (开始)让所有的流0=ij x ,所有点对应的数0)(=i p . 第2步 (决定哪些弧可以改变流量)用I 表示满足条件ij ij ij c x w i p j p <=-同时,)()(的弧集合. 用R 表示满足条件0,)()(>=-ij ij x w i p j p 同时的弧集合. 用Q 表示不在R I ⋃中的弧集合.第3步 (改变流量)用最大流算法,在R I ⋃上找增广路,增加流量.如果从s 到t 的流量已经是v ,那么计算停止.这时候已经得到一个流量是v 的最小费用流.如果从s 到t 不能再增加流量,那么我们就来检查在R I Q ⋃⋃中是不是能找到增广路.也就是说不考虑ij w i p j p =-)()(的限制.如果也不能找到增广路,呢么这个网络的最大流就达不到v ,所以要求流量等于的最小费用流是无解的.当然,这时候的流量是)(00v v v <的话,那么就得到流量是0v 的最小费用流.如果在R I Q ⋃⋃中找到增广路,那么就转入第4步.第4步 (改变顶点的)(i p 值)在第3步中找不到s 到t 的增广路,利用最大流算法中增广路的标号找法,把所有点分成两类:标上号的点以及标不上号的点,S 是标上号的点的集合,T 是标不上号的点的集合.让标上号的点的)(i p 值不变,标不上号的点的)(i p 值全部加1,回到的2步.6.22 最小费用流的算法改进第1步 取零流x 为初始可行流;第2步 如果0)(v x v =,则x 为G 中流值为0v 的最小费用流,否则转下一步; 第3步 构造增量网络)(x G ,如果)(x G 中不存在),(t s v v 路,则G 中没有流值为0v 的可行流,停止;否则在)(x G 中找一条最小费用路(3.1-3.5),转第4步3.0 首先修改w 所确定的矩阵nxn ij w )(,若)(),(x A v v j i ∈,则),(j i ij v v w w = ,否则;,,2,1,0n j i ji j i w ij =⎩⎨⎧≠∞+==若若3.1 构造初始表,;xn n j m jm l l l l n j w u u m 1211)()(1]11,1,0[],,[,2,,0,1 ==≤≤===3.2 计算}1,|{,)1()(n k u u k I I m k m k ≤≤<=-,如果I 为空集,转(3. 5);否则转下一步;3.3 对一切n j ≤≤2,计算},},{lim min{)()()1(m j kj m k Ik m j u w u u +=∈+⎪⎩⎪⎨⎧+===++rj m r m jm j m j j i w u u r u u l l )()1()()1(,,若若,转下一步; 3.4 若11-=+n m ,转下一步;否则, 1+=m m ,转(3. 2);3.5 根据前点标号阵],,[21n l l l l =中各顶点的前点标号应用反向追踪可以得到最短),(t s v v 路,即最小费用流P ;第4步:令)}(),(min{0x v v p c -=θ,对x 沿P 增广流值θ,得到新流x ;转第1步.6.23 运输问题的最大流算法运输问题是一个特殊的最小费用流问题,它不考虑弧的容量限制,仅考虑弧上流的费用.具体算法如下:第1步 (开始)任给原始规划一个可行解}{ij x ,(即对应于网络的一个支撑树). 第2步 (计算对偶解)对于原始规划的可行解}{ij x ,计算出对偶规划的一个解},{j i v u 第3步 (计算检验数)对于对偶规划的解},{j i v u ,计算n j m i v u w w j i ij ij ,,2,1;,,2,1, ==--=,若对所有的ij w 均非负,则计算结束,这时得到的}{ij x 和},{j i v u 分别为原始规划和对偶规划的最优解;否则转第4步.第4步 (调整原始可行解)令}0|{min ,<=ij ij ji st w w w 即选择st x 进入基.对应于网络中,即在支撑树上加上弧),(t s ,从而得到一个回路.并选择其流量θ=st x ,使这个回路上的流量通过加θ或θ减以达到去掉一条弧的目的,从而得到一个新的被改进的原始可行解}{ij x .转第2步.6.3 最小费用流应用例6 某城市有三个化肥厂,321,,A A A ,他们的化肥产量分别为35吨,50吨,40吨,他们要供应四个地区4321,,,B B B B 的化肥需求,这四个地区的化肥需要量分别为45吨,20吨,30吨,30吨,从各化肥厂到各地区单位化肥的运价如下表所示,求一个是总费用最小的运输方案.图16找初始可行解图16-1-30-30-20-4540503551691471312991068B4B 2B3B 1A3A2A 1301020302015B 4B 2B3B 1A3A2A 1找对偶解,并验证对偶解 检验数图16-2调整原始解图16-3再找对偶解,并检验对偶解 检验数图16-411268u i-v j--125169145-5-7131294108---91068w ijwij301020-θθ2030+θ15-θB 4B 2B3B 1A3A2A1v ju i112684151613968B4B 2B3B 1A3A2A 110v ju i-11066635161396B4B 2B3B 1A3A2A 1-11066u i-v j--325169145-3-71312963011--2101068w ijw ij21066u i-v j3-55169142-3-7131293307--2101068w ijw ij调整原始解找对偶解,并检验 图16-5对偶解 检验数图16-6由上表可知解得的所有检验数都是非负的,因此就不需要再次调整原始规划的可行解了,我们在上述的条件下,得到的原始可行解和相对的对偶解即使原始规划和对偶规划的最优解,其中最优解的具体值为:,5,45,25,1023211312====x x x x 30,103432==x x ,由此我们可以得出运输的最小费用为:10205309101359451025610,=⨯+⨯+⨯+⨯+⨯+⨯==∑ji ij ijx wS7 结语图论的应用十分广泛,在研究以某种特定方式相互联系的一些物件之间的相互关系时,图论几乎总是一个很有用的工具,在许多实例中,这些物件可以用一个图的顶点来表示,而它们之间的相互联系,可以用顶点之间的连线表示图很适用于表示系统,不管是数学的、物理的或社会学的等等, 这是因为系统的定义中包含了一些元素,而这些元素则与其它元素相关联图可被用于构造模型,但在什么形式下以及解决何种类型的问题具有多样性,不过只要具体问题具体分析、构模,且多实践,总结规律,可以逐渐掌握数学模型的图论方法,如果我们在学习的过程中能打下坚实的基础,就有能力将图论的思想应用到纷乱复杂的现实问题中去。

数学建模模型和技巧

数学建模模型和技巧

数学建模模型和技巧数学建模是指将实际问题转化为数学问题,并利用数学方法进行分析和求解的过程。

数学建模模型是对问题进行抽象和形式化的表示,而数学建模技巧则是在建立数学模型和解决问题时的常用方法和技术。

以下是一些常用的数学建模模型和技巧。

一、常用数学建模模型1.优化模型:优化模型利用数学方法求解最优解,包括线性规划、整数规划、非线性规划等。

这种模型通常用于求解资源分配、生产调度、物流优化等问题。

2.统计模型:统计模型通过概率统计方法对问题进行分析和预测,包括回归分析、时间序列分析、假设检验等。

这种模型通常用于市场调研、风险评估、金融预测等问题。

3.动力学模型:动力学模型描述系统随时间变化的规律,包括微分方程模型、差分方程模型等。

这种模型通常用于研究物理过程、生态系统、经济波动等问题。

4.图论模型:图论模型利用图的概念和算法解决问题,包括最短路径、流网络、最小生成树等。

这种模型通常用于网络优化、交通规划、电路设计等问题。

5.随机模型:随机模型描述随机变量的分布和统计性质,包括随机过程、蒙特卡洛模拟等。

这种模型通常用于风险评估、信号处理、金融衍生品定价等问题。

二、常用数学建模技巧1.合理假设:在建立数学模型时,需要根据实际情况进行适当的简化和假设。

通过合理的假设,可以使模型更易求解,同时保持对原问题的关键特征进行准确描述。

2.变量选择:选择合适的变量是建立数学模型的重要一步。

需要根据问题的特点和求解的目标选择与问题相关的变量,并对它们进行合理的定义和界定。

3.数据处理:在数学建模中,经常需要处理大量的数据。

这包括数据的清洗、转换、归一化等操作,以便更好地与模型对接和求解。

4.模型求解:根据模型的数学特征,选择适当的方法和算法进行求解。

这包括常见的数值求解方法、优化算法、统计推断等技术。

5.模型评价:在得到数学模型的解后,需要对解的可行性和有效性进行评价。

通常可以利用灵敏度分析、稳定性分析等方法对模型进行评价和优化。

图与网络方法建模

图与网络方法建模
数学建模培训
Mathematical Modeling
图与网络方法建模
图与网络方法建模
1 2 3 4 图的基本概念 最短路与最小生成树模型 欧拉回路模型 网络流及其应用模型
2011.7.2
Department of Mathematics Department of Mathematics
HUST HUST
v4
4
3 6
v3
当公路网比较复杂时, 是否有更好的算法呢?
Department of Mathematics HUST
4
v5
6
v7
八个城市间公路网
Mathematical Modeling
例1 一个典型的最短路问题
Dijkstra算法
v S:节点集V的一个节点子集,0 S
Sc V \ S
c
对任意 v Si , l v umin l v , l u u, v S
设 l (v0 ) 0, 若 v A, v v0 时
l (v ) , S0 {v0 }, i 0, a0 v0
Department of Mathematics HUST
步骤1
Mathematical Modeling
一般步骤
步骤2
v Si d (v0 , v ), l (v ) min{d (v0 , u) ( u, v )}, S IC1 uSi1
的前提下, 最后又返回到原出发地?
Department of Mathematics HUST
Mathematical Modeling
哥尼斯堡七桥问题
图中的点A,B,C,D: 每块陆地 每一次通 连接相应点之间的线:

2022年数学建模算法与应用-图与网络模型着色问题和旅行商问题

2022年数学建模算法与应用-图与网络模型着色问题和旅行商问题

{'赵','刘','孙'};{'张','王','孙'};{'李','刘','王'}};
n = length(s); w = zeros(n);
for i = 1:n-1
for j =i+1:n
if ~isempty(intersect(s{i},s{j}))
w(i,j)=1;
end
end
end
[ni,nj] = find(w); %边的顶点编号
航空基础学院数学第教8研页室
数学建模算法与应用
第4章 图与网络模型及方法
v1
v5
v6
v3
v2
v4
图 4.14 部门之间关系图
航空基础学院数学第教9研页室
数学建模算法与应用
第4章 图与网络模型及方法
构造图G (V , E),其中V {v1,v2 , ,v6 },这里 v1,v2 , ,v6分别表示部门 1,部门 2,…,部门 6; E 为边集,两个顶点之间有一条边当且仅当它们代表的 委员会成员中有共同的人,如图 4.14 所示,该图可以 用 4 种颜色着色,可以看出至少要用 4 种颜色,v1,v2 ,v3 构成一个三角形,必须用 3 种颜色,v6和这 3 个顶点 都相邻,必须再用一种颜色。
w = w + w'; %计算完整的邻接矩阵
deg = sum(w); K = max(deg) %顶点的最大度
prob = optimproblem;
数学建模算法与应用
第4章 图与网络模型及方法
已知图G (V , E),对图G 的所有顶点进行着色时, 要求相邻的两顶点的颜色不一样,问至少需要几种颜 色?这就是所谓的顶点着色问题。

数学建模讲义 第8章图论与网络模型

数学建模讲义 第8章图论与网络模型

权值表示两点之间的长度

邻接矩阵M
• 求最短路已有成熟的算法:迪杰斯特拉 (Dijkstra)算法。具体可见数据结构或 者图论方面的参考书。 • 数学规划方法,用Lingo解决:
min z cij xij
i 1 j 1
n
n
1 V0 4
V1 5
2 V3 4
5 2
V4
6 V6 4
V2
起点多一条边出去 1, i 1 n n st : xij x ji 1, i n 终点多一条边进入 j 1 j 1 0, i 1, n
max v f
n
13
3
5
v f , i 1 st : xij x ji v f , i n j 1 j 1 0, i 1, n
n
0 xij cij

除去源点和汇点的流量等于网络总流量之外, 其他点所有流入的流量和流出的流量相等。
最小生 2
1
3 5
2
• 求最小生成树已有成熟的算法:prim算法 和Kruskal算法。具体可见图论方面的参 1 考书。 6 7 • 数学规划方法,用Lingo 解决: 2 3
min z cij xij
i 1 j 1 n n
《数学建模》多媒体课件
第6章 图与网络模型
文法系 高等数学教研室
最短路径问题 例:求以下带权图从V0到V6最短路径。
V1 5 4 V2

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

第五章 图与网络模型及方法§1 概论图论起源于18世纪。

第一篇图论论文是瑞士数学家欧拉于1736 年发表的“哥尼斯堡的七座桥”。

1847年,克希霍夫为了给出电网络方程而引进了“树”的概念。

1857年,凯莱在计数烷22 n n H C 的同分异构物时,也发现了“树”。

哈密尔顿于1859年提出“周游世界”游戏,用图论的术语,就是如何找出一个连通图中的生成圈,近几十年来,由于计算机技术和科学的飞速发展,大大地促进了图论研究和应用,图论的理论和方法已经渗透到物理、化学、通讯科学、建筑学、生物遗传学、心理学、经济学、社会学等学科中。

图论中所谓的“图”是指某类具体事物和这些事物之间的联系。

如果我们用点表示这些具体事物,用连接两点的线段(直的或曲的)表示两个事物的特定的联系,就得到了描述这个“图”的几何形象。

图论为任何一个包含了一种二元关系的离散系统提供了一个数学模型,借助于图论的概念、理论和方法,可以对该模型求解。

哥尼斯堡七桥问题就是一个典型的例子。

在哥尼斯堡有七座桥将普莱格尔河中的两个岛及岛与河岸联结起来问题是要从这四块陆地中的任何一块开始通过每一座桥正好一次,再回到起点。

当然可以通过试验去尝试解决这个问题,但该城居民的任何尝试均未成功。

欧拉为了解决这个问题,采用了建立数学模型的方法。

他将每一块陆地用一个点来代替,将每一座桥用连接相应两点的一条线来代替,从而得到一个有四个“点”,七条“线”的“图”。

问题成为从任一点出发一笔画出七条线再回到起点。

欧拉考察了一般一笔画的结构特点,给出了一笔画的一个判定法则:这个图是连通的,且每个点都与偶数线相关联,将这个判定法则应用于七桥问题,得到了“不可能走通”的结果,不但彻底解决了这个问题,而且开创了图论研究的先河。

图与网络是运筹学(Operations Research )中的一个经典和重要的分支,所研究的问题涉及经济管理、工业工程、交通运输、计算机科学与信息技术、通讯与网络技术等诸多领域。

下面将要讨论的最短路问题、最大流问题、最小费用流问题和匹配问题等都是图与网络的基本问题。

我们首先通过一些例子来了解网络优化问题。

例1 最短路问题(SPP -shortest path problem )一名货柜车司机奉命在最短的时间内将一车货物从甲地运往乙地。

从甲地到乙地的公路网纵横交错,因此有多种行车路线,这名司机应选择哪条线路呢假设货柜车的运行速度是恒定的,那么这一问题相当于需要找到一条从甲地到乙地的最短路。

例2 公路连接问题某一地区有若干个主要城市,现准备修建高速公路把这些城市连接起来,使得从其中任何一个城市都可以经高速公路直接或间接到达另一个城市。

假定已经知道了任意两个城市之间修建高速公路的成本,那么应如何决定在哪些城市间修建高速公路,使得总成本最小例3 指派问题(assignment problem )一家公司经理准备安排N 名员工去完成N 项任务,每人一项。

由于各员工的特点不同,不同的员工去完成同一项任务时所获得的回报是不同的。

如何分配工作方案可以使总回报最大例4 中国邮递员问题(CPP -chinese postman problem )一名邮递员负责投递某个街区的邮件。

如何为他(她)设计一条最短的投递路线(从邮局出发,经过投递区内每条街道至少一次,最后返回邮局)由于这一问题是我国管梅谷教授1960年首先提出的,所以国际上称之为中国邮递员问题。

例5 旅行商问题(TSP -traveling salesman problem )一名推销员准备前往若干城市推销产品。

如何为他(她)设计一条最短的旅行路线(从驻地出发,经过每个城市恰好一次,最后返回驻地)这一问题的研究历史十分悠久,通常称之为旅行商问题。

例6 运输问题(transportation problem )某种原材料有M 个产地,现在需要将原材料从产地运往N 个使用这些原材料的工厂。

假定M 个产地的产量和N 家工厂的需要量已知,单位产品从任一产地到任一工厂的运费已知,那么如何安排运输方案可以使总运输成本最低上述问题有两个共同的特点:一是它们的目的都是从若干可能的安排或方案中寻求某种意义下的最优安排或方案,数学上把这种问题称为最优化或优化(optimization )问题;二是它们都易于用图形的形式直观地描述和表达,数学上把这种与图相关的结构称为网络(network )。

与图和网络相关的最优化问题就是网络最优化或称网络优化 (netwok optimization )问题。

所以上面例子中介绍的问题都是网络优化问题。

由于多数网络优化问题是以网络上的流(flow )为研究的对象,因此网络优化又常常被称为网络流(network flows )或网络流规划等。

下面首先简要介绍图与网络的一些基本概念。

§2 图与网络的基本概念无向图一个无向图(undirected graph)G 是由一个非空有限集合)(G V 和)(G V 中某些元素的无序对集合)(G E 构成的二元组,记为))(),((G E G V G =。

其中},,,{)(21n v v v G V =称为图G 的顶点集(vertexset )或节点集(node set ), )(G V 中的每一个元素),,2,1(n i v i =称为该图的一个顶点(vertex )或节点(node );},,,{)(21m e e e G E =称为图G 的边集(edge set ),)(G E 中的每一个元素k e (即)(G V 中某两个元素j i v v ,的无序对)记为),(j i k v v e =或i j j i k v v v v e == ),,2,1(m k =,被称为该图的一条从i v 到j v 的边(edge )。

当边j i k v v e =时,称j i v v ,为边k e 的端点,并称j v 与i v 相邻(adjacent );边k e 称为与顶点j i v v ,关联(incident )。

如果某两条边至少有一个公共端点,则称这两条边在图G 中相邻。

边上赋权的无向图称为赋权无向图或无向网络(undirected network )。

我们对图和网络不作严格区分,因为任何图总是可以赋权的。

一个图称为有限图,如果它的顶点集和边集都有限。

图G 的顶点数用符号||V 或)(G ν表示,边数用||E 或)(G ε表示。

当讨论的图只有一个时,总是用G 来表示这个图。

从而在图论符号中我们常略去字母G ,例如,分别用ν,,E V 和ε代替)(),(),(G G E G V ν和)(G ε。

端点重合为一点的边称为环(loop)。

一个图称为简单图(simple graph),如果它既没有环也没有两条边连接同一对顶点。

有向图定义 一个有向图(directed graph 或 digraph )G 是由一个非空有限集合V 和V 中某些元素的有序对集合A 构成的二元组,记为),(A V G =。

其中},,,{21n v v v V =称为图G 的顶点集或节点集, V 中的每一个元素),,2,1(n i v i =称为该图的一个顶点或节点;},,,{21m a a a A =称为图G 的弧集(arc set ),A 中的每一个元素k a (即V 中某两个元素j i v v ,的有序对)记为),(j i k v v a =或),,2,1(n k v v a j i k ==,被称为该图的一条从i v 到j v 的弧(arc )。

当弧j i k v v a =时,称i v 为k a 的尾(tail ),j v 为k a 的头(head ),并称弧k a 为i v 的出弧(outgoing arc ),为j v 的入弧(incoming arc )。

对应于每个有向图D ,可以在相同顶点集上作一个图G ,使得对于D 的每条弧,G 有一条有相同端点的边与之相对应。

这个图称为D 的基础图。

反之,给定任意图G ,对于它的每个边,给其端点指定一个顺序,从而确定一条弧,由此得到一个有向图,这样的有向图称为G 的一个定向图。

以下若未指明“有向图”三字,“图”字皆指无向图。

完全图、二分图每一对不同的顶点都有一条边相连的简单图称为完全图(complete graph)。

n 个顶点的完全图记为n K 。

若Y X G V =)(,Φ=Y X ,0||||≠Y X (这里||X 表示集合X 中的元素个数),X 中无相邻顶点对,Y 中亦然,则称G 为二分图(bipartite graph);特别地,若Y y X x ∈∀∈∀,,则)(G E xy ∈,则称G 为完全二分图,记成|||,|Y X K 。

子图图H 叫做图G 的子图(subgraph ),记作G H ⊂,如果)()(G V H V ⊂,)()(G E H E ⊂。

若H 是G 的子图,则G 称为H 的母图。

G 的支撑子图(spanning subgraph ,又成生成子图)是指满足)()(G V H V =的子图H 。

顶点的度设)(G V v ∈,G 中与v 关联的边数(每个环算作两条边)称为v 的度(degree),记作)(v d 。

若)(v d 是奇数,称v 是奇顶点(odd point);)(v d 是偶数,称v 是偶顶点(even point)。

关于顶点的度,我们有如下结果:(i) ∑∈=Vv v d ε2)((ii) 任意一个图的奇顶点的个数是偶数。

图与网络的数据结构网络优化研究的是网络上的各种优化模型与算法.为了在计算机上实现网络优化的算法,首先我们必须有一种方法(即数据结构)在计算机上来描述图与网络。

一般来说,算法的好坏与网络的具体表示方法,以及中间结果的操作方案是有关系的。

这里我们介绍计算机上用来描述图与网络的5种常用表示方法:邻接矩阵表示法、关联矩阵表示法、弧表表示法、邻接表表示法和星形表示法。

在下面数据结构的讨论中,我们首先假设),(A V G =是一个简单有向图,m A n V ==||,||,并假设V 中的顶点用自然数n ,,2,1 表示或编号,A 中的弧用自然数m ,,2,1 表示或编号。

对于有多重边或无向网络的情况,我们只是在讨论完简单有向图的表示方法之后,给出一些说明。

(i )邻接矩阵表示法邻接矩阵表示法是将图以邻接矩阵(adjacency matrix )的形式存储在计算机中。

图),(A V G =的邻接矩阵是如下定义的:C 是一个n n ⨯的10-矩阵,即n n n n ij c C ⨯⨯∈=}1,0{)(,也就是说,如果两节点之间有一条弧,则邻接矩阵中对应的元素为1;否则为0。

可以看出,这种表示法非常简单、直接。

但是,在邻接矩阵的所有2n 个元素中,只有m 个为非零元。

相关文档
最新文档