数学建模图与网络模型及方法
- 格式:docx
- 大小:798.09 KB
- 文档页数:22
数学建模的主要建模方法数学建模是指运用数学方法和技巧对复杂的实际问题进行抽象、建模、分析和求解的过程。
它是解决实际问题的一个重要工具,在科学研究、工程技术和决策管理等领域都有广泛的应用。
数学建模的主要建模方法包括数理统计法、最优化方法、方程模型法、概率论方法、图论方法等。
下面将分别介绍这些主要建模方法。
1.数理统计法:数理统计法是基于现有的数据进行概率分布的估计和参数的推断,以及对未知数据的预测。
它适用于对大量数据进行分析和归纳,提取有用的信息。
数理统计法可以通过描述统计和推断统计两种方式实现。
描述统计主要是对数据进行可视化和总结,如通过绘制直方图、散点图等图形来展示数据的分布特征;推断统计则采用统计模型对数据进行拟合,进行参数估计和假设检验等。
2.最优化方法:最优化方法是研究如何在给定的约束条件下找到一个最优解或近似最优解的方法。
它可以用来寻找最大值、最小值、使一些目标函数最优等问题。
最优化方法包括线性规划、非线性规划、整数规划、动态规划等方法。
这些方法可以通过建立数学模型来描述问题,并通过优化算法进行求解。
3.方程模型法:方程模型法是通过建立数学方程或函数来描述问题,并利用方程求解的方法进行求解。
这种方法适用于可以用一些基本的方程来描述的问题。
方程模型法可以采用微分方程、代数方程、差分方程等不同类型的方程进行建模。
通过求解这些方程,可以得到问题的解析解或数值解。
4.概率论方法:概率论方法是通过概率模型来描述和分析不确定性问题。
它可以用来处理随机变量、随机过程和随机事件等问题。
概率论方法主要包括概率分布、随机变量、概率计算、条件概率和贝叶斯推理等内容。
利用概率论的方法,可以对问题进行建模和分析,从而得到相应的结论和决策。
5.图论方法:图论方法是研究图结构的数学理论和应用方法。
它通过把问题抽象成图,利用图的性质和算法来分析和求解问题。
图论方法主要包括图的遍历、最短路径、最小生成树、网络流等内容。
图与网络模型的算法及其应用摘 要 本文介绍了图论的基本方法和几个基本的网络优化问题的算法,并且介绍了几个基本的网络优化问题的算法在解决实际问题中的应用. 关键字 图与网络 算法 应用 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.模型评价:在得到数学模型的解后,需要对解的可行性和有效性进行评价。
通常可以利用灵敏度分析、稳定性分析等方法对模型进行评价和优化。
数学建模的常用模型和方法嘿,朋友们!今天咱来聊聊超厉害的数学建模哦!那数学建模里常用的模型和方法可多啦,就像一个百宝箱,每个都有独特的魅力和用处呢!先来说说线性规划模型吧。
步骤呢,就是先明确目标函数和约束条件。
你得清楚自己想要最大化或最小化什么,然后把各种限制因素用数学式子表达出来。
就好比你要规划一次旅行,预算就是约束条件,你想在有限的预算内让旅行体验最好,这就是目标函数啦!注意事项嘛,要仔细检查约束条件有没有遗漏,数据是不是准确。
在这个过程中,安全性就体现在它的逻辑严谨性上,只要你按照正确的步骤来,一般不会出大错,稳定性也不错,因为它的算法和理论都比较成熟。
它的应用场景可广啦,比如生产安排、资源分配等。
优势就是能帮你在复杂的条件下找到最优解,让资源得到最合理的利用。
比如说一个工厂要安排生产不同产品的数量,用线性规划就能算出怎样安排能让利润最大。
实际应用中,效果那是杠杠的,能大大提高生产效率和经济效益呢!再讲讲层次分析法。
它的步骤是先构建层次结构,把问题分成不同层次,像搭积木一样一层一层的。
然后通过专家打分或者数据统计确定各因素的权重。
这就好像给一个球队的球员打分,不同位置的球员重要性不一样嘛。
要注意的是,专家的选择要合理,打分要尽量客观。
它的安全性在于整个过程有一套系统的方法,不容易跑偏。
稳定性也还可以,只要层次结构合理,结果一般比较可靠。
应用场景呢,比如选方案、做决策的时候就很管用。
它的优势是能综合考虑多个因素,把复杂的问题简单化。
比如说要选一个投资项目,用层次分析法就能综合考虑风险、收益等各种因素,选出最合适的。
实际案例中,很多企业在做战略决策时都用到它,效果很不错,能让决策更科学合理。
还有个很有趣的模型叫聚类分析。
步骤是先确定聚类的指标,然后选择合适的聚类算法,把数据分成不同的类。
就好像把一堆水果按照种类分堆一样。
注意要选对指标和算法哦,不然分出来的类可能就不靠谱啦。
它的安全性体现在能对数据进行合理分类,帮助我们更好地理解数据的结构。
数学建模方法详解数学建模是指利用数学方法来研究和分析实际问题,并通过构建数学模型来描述和解决这些问题的过程。
数学建模具有很高的理论性和广泛的应用性,可以应用于科学、工程、经济等众多领域。
下面详细介绍几种常用的数学建模方法。
一、优化建模方法优化建模方法是指在给定的约束条件下,寻求其中一种目标函数的最优解。
该方法常用于生产、运输、资源分配等问题的优化调度。
优化建模的一般步骤包括确定决策变量、建立目标函数和约束条件、制定求解算法以及分析和验证最优解。
二、动力系统建模方法动力系统建模方法是指将实际问题转化为一组微分方程或差分方程,研究系统在时间上的演化规律。
该方法可以用于描述和预测物理、生物、经济等多个领域的系统行为。
动力系统建模的关键在于建立正确的微分方程或差分方程,并选择合适的求解方法。
三、决策分析建模方法决策分析建模方法是指将决策问题转化为数学模型,并采用数学方法进行决策分析和评估。
该方法常用于风险管理、投资决策、供应链管理等领域。
决策分析建模的关键在于准确描述决策者的目标和偏好,并选择合适的决策规则进行决策分析。
四、统计建模方法统计建模方法是指利用统计学理论和方法来描述和分析实际问题。
该方法多用于数据分析、预测和模式识别等领域。
统计建模的过程包括收集数据、建立概率模型、估计模型参数以及进行模型检验和应用。
五、图论建模方法图论建模方法是指利用图论的理论和方法来描述和分析网络结构和关联关系。
该方法常用于社交网络分析、路径规划、电力网络优化等领域。
图论建模的关键在于构建网络模型,并选择适当的图算法进行分析和优化。
六、随机模型建模方法随机模型建模方法是指利用随机过程和概率论的理论和方法来描述和分析随机现象。
该方法常用于金融风险管理、信号处理、系统可靠性评估等领域。
随机模型建模的关键在于建立正确的随机过程模型,并进行概率分布和随机变量的分析。
七、模拟建模方法模拟建模方法是指利用计算机仿真技术来模拟和分析实际问题。
数学建模常用模型与算法一、常用模型☐(一)、评价模型:☐AHP(层次分析法)(确定权重)、模糊评价、聚类分析、因子分析、主成份分析、回归分析、神经网络、多指标综合评价、熵值法(确定权重)等☐(二)、预测模型:☐指数平滑法、灰色预测法、回归模型、神经网络预测、时间序列模型、马尔科夫预测、差分微分方程☐(三)、统计模型:☐方差分析、均值比较的假设检验☐(四)、方程模型:☐常微分方程、差分方程、偏微分方程、以及各种方程的求解(数值解和解析解)☐(五)运筹优化类:☐线性规划、非线性规划、目标规划、整数规划、图论模型(最短路、最大流、遍历问题等)、排队论、对策论、以及各种模型的算法☐(六)其他模型:☐随机模拟模型、等二、十大算法1、蒙特卡罗算法(该算法又称随机性模拟算法,是通过计算机仿真来解决问题的算法,同时可以通过模拟可以来检验自己模型的正确性,是比赛时必用的方法)2、数据拟合、参数估计、插值等数据处理算法(比赛中通常会遇到大量的数据需要处理,而处理数据的关键就在于这些算法,通常使用Matlab作为工具)3、线性规划、整数规划、多元规划、二次规划等规划类问题(建模竞赛大多数问题属于最优化问题,很多时候这些问题可以用数学规划算法来描述,通常使用Lindo、Lingo软件实现)4、图论算法(这类算法可以分为很多种,包括最短路、网络流、二分图等算法,涉及到图论的问题可以用这些方法解决,需要认真准备)5、动态规划、回溯搜索、分治算法、分支定界等计算机算法(这些算法是算法设计中比较常用的方法,很多场合可以用到竞赛中)6、最优化理论的三大非经典算法:模拟退火法、神经网络、遗传算法(这些问题是用来解决一些较困难的最优化问题的算法,对于有些问题非常有帮助,但是算法的实现比较困难,需慎重使用)7、网格算法和穷举法(网格算法和穷举法都是暴力搜索最优点的算法,在很多竞赛题中有应用,当重点讨论模型本身而轻视算法的时候,可以使用这种暴力方案,最好使用一些高级语言作为编程工具)8、一些连续离散化方法(很多问题都是实际来的,数据可以是连续的,而计算机只认的是离散的数据,因此将其离散化后进行差分代替微分、求和代替积分等思想是非常重要的)9、数值分析算法(如果在比赛中采用高级语言进行编程的话,那一些数值分析中常用的算法比如方程组求解、矩阵运算、函数积分等算法就需要额外编写库函数进行调用)10、图象处理算法(赛题中有一类问题与图形有关,即使与图形无关,论文中也应该要不乏图片的,这些图形如何展示以及如何处理就是需要解决的问题,通常使用Matlab进行处理)。
欢迎共阅第五章 图与网络模型及方法§1 概论图论起源于18世纪。
第一篇图论论文是瑞士数学家欧拉于1736 年发表的“哥尼斯堡的七座桥”。
1847年,克希霍夫为了给出电网络方程而引进了“树”的概念。
1857年,凯莱在计数烷22 n n H C 的同分异构物时,也发现了“树”。
哈密尔顿于1859年提出“周游世界”游戏,用图论的术语,就是如何找出一个连通图中的生成圈,近几十年来,由于计算机技术和科学的飞速发展,大大地促进了图论研究和应用,图论的理论和方法已经渗透到物理、化学、通讯科学、建筑学、生物遗传学、心理学、经济学、社会学等学科中。
图论中所谓的“图”是指某类具体事物和这些事物之间的联系。
如果我们用点表示这些具体事物,用连接两点的线段(直的或曲的)表示两个事物的特定的联系,就得到了描述这个“图”的几何形象。
图论为任何一个包含了一种二元关系的离散系统提供了一个数学模型,借助于图论的概念、理论和方法,可以对该模型求解。
哥尼斯堡七桥问题就是一个典型的例子。
在哥尼斯堡有七座桥将普莱格尔河中的两个岛及岛与河岸联结起来问题是要从这四块陆地中的任何一块开始通过每一座桥正好一次,再回到起点。
当然可以通过试验去尝试解决这个问题,但该城居民的任何尝试均未成功。
欧拉为了解决这个问题,采用了建立数学模型的方法。
他将每一块陆地用一个点来代替,将每一座桥用连接相应两点的一条线来代替,从而得到一个有四个“点”,七条“线”的“图”。
问题成为从任一点出发一笔画出七条线再回到起点。
欧拉考察了一般一笔画的结构特点,给出了一笔画的一个判定法则:这个图是连通的,且每个点都与偶数线相关联,将这个判定法则应用于七桥问题,得到了“不可能走通”的结果,不但彻底解决了这个问题,而且开创了图论研究的先河。
图与网络是运筹学(Operations Research )中的一个经典和重要的分支,所研究的问题涉及经济管理、工业工程、交通运输、计算机科学与信息技术、通讯与网络技术等诸多领域。
第五章 图与网络模型及方法§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 个为非零元。