图论在数学建模中的应用

在《图论及其应用》一书中提到了一些图的若干问题,最短路径,最优二元树,最优Hamilton图,课本中已经给出了一些经典的解法,通过查阅资料发现,如果采用图的矩阵表示这类方法,可以为这些问题提供新的解答思路或者可以优化原来的解答过程;此外,如果采用图的矩阵表示,将使其描述更加接近计算机逻辑和语言,方便将图论问题转换成计算机语言,进而借助计算机的运算性能解决图论的一些复杂计算问题。因而,在图论中图的矩阵表示有着重要的地位。
基本定义:
(1)一个图G=(V,E)由它的顶点与边之间的关联关系唯一确定;也由它的顶点对之间的连接关系唯一确定。图的这种关系可以用矩阵来描述,分别称为G的关联矩阵与邻接矩阵。
令: M(G) = { }n×n, 其中 = 称M(G)为G 的邻接矩阵.
(2)令G=(V,E)为一个加权无向图,其中V={v1,v2,…,vn}为顶点集合,E 为边集合。图G中每一条边e都对应一个实数W(e),则称w(e)为该边的权。
令:M(G)={ } n×n, =
以下尝试使用图的矩阵来描述或解决图论中的一些定义和问题(注:图的范围限定为简单图,相关定理参考文献《图论及其应用》)。
(一) 连通图的判别
设图G的邻接矩阵为M(G),作一个p阶方阵:
R(G)=M(G)+M2(G)+…+MP-1(G),R(G)称为G的可达矩阵。
则有如下判断:
定理1 阶至少为3的图G是连通的充分必要条件为R(G)中的每个元素都不等于零。
(二) 最短路径问题
Dijkstra算法是目前为止求解最短路问题的最好算法。传统的Dijkstra算法计算量较大,运算速度较慢,但是如果将Dijkstra算法和矩阵算法结合运用,可使计算时间明显减少,并能获得精度较高的结果。(参考文献:杨秀文,陈郑杰等——《利用矩阵翻转法求最佳hamilton图》)
算法的简单描述:
计算点Vi(Xi,Yi)到点Vj(Xj,Yj)的最短路径(递归运算)
(1)判断是否为同一点,是,退出;否则继续;
(2)找出(Xi,Yi)周围的八个点分别计算出到(Xj,Yj)路径的长;
(3)找出在第二步中计算出的最短路径。
将第(2)步细化(下面所说的点指的是周围的八个点)
1)将访问标记置位;
2)首先判断此点的路径长是否已知(即TArrEle.Dis3)如果找到路径,将访问标记复位;否则的话访问标记将保持为True;
(三) Euler图的判别
在实现连通图已经判别的基础上,只需判定每行元素个数都是偶数个,即可判定此图为Euler图。
(四)利用矩阵翻转法求最优Hamilton图。
求最佳Hamilton图是一个NP问题(非确定性问题),通常用近似算法——二边修正法来求该问题的近似最优解。二边逐次修正法传统的实现过程

比骄傲麻烦么热切当顶点数较多的时候,设置没办法求解。用矩阵翻转法来实现二边逐次修正法过程,编程容易,程序简洁,独立,计算速度非常快,而且使用顶点数目较多的情况。详细资料请参考(《利用矩阵翻转法求最佳Hamilton图》杨秀文,陈郑杰等)
有两道比较经典的例题
三名商人各带一个随乘船渡河,现有一只小船只能容纳两个人,由他们自己划行.若在河的任一岸的随从人数比商人多,他们就可能抢动财物.但如果乘船渡河的大权掌握在商人手里,商人们怎样才能安全渡河呢?

2个随从先过去
1个随从过来再接一个随从过去
这时 一边3个随从另一边3个商人
再让一个随从过来下船 让2个商人过去
商人过去之后让一个随从一个商人乘船过来
让随从下船商人上船 2个商人再一起过去
这下对岸3个商人1个随从 另一边2个随从
再让随从去吧 另外2个随从一个一个接过来就行了

设商人是ABC,随从是abc,先Aa过去,A回来,bc过去,c回来AB过去,Bb回来,BC过去,a回来,此岸就abc,彼岸ABC,然后abc自己一个一个过来呗。

1 安全渡河问题及其数学模型
安全渡河问题是指:三名商人各带一个随从乘船渡河, 一只小船只能容纳二人, 由他们自己 划行.随从们密约, 在河的任一岸, 一旦随从的人数比商人多, 就杀人越货.但是如何乘船渡河的大权掌握在商人们手中. 问商人们如何才能安全渡河呢?
安全渡河问题虽然看起来较简单, 但它已被许多数学模型教材选为建模示例, 它的建模思路和方法不仅提供给我们怎样实现从现实对象到数学模型的过程, 而且提供给我们一个能够有效解决很广泛的一类问题的建模方法. 安全渡河问题其实可算是一种智力游戏, 经过一番逻辑思索是可以找到解决方法. 但是如果题目的条件变化了如商人数和随从数增加了, 那么通过逻辑思索求解起来就很困难。而用数学模型的方法能够较方便地求解, 而且也很容易进行推广, 所以很多教材均采用数学模型的方法来求解.
其具体建模过程如下: 把安全渡河问题视为一个多步决策的过程. 每一步即船由此岸驶向彼岸或彼岸驶回此岸, 都要对船上的人员 ( 商人, 随从各几人) 作出决策, 在保证安全的前提下(即两岸的商人数都不比随从数少), 用有限步使人员全部过河. 用状态S(变量)表示某一岸的人员状况, 决策(变量)表示船上的人员状况, 可以找出状态随决策变化的规律. 这样安全渡河问题就转化为在状态的允许变化范围内即满足安全渡河的条件下, 确定每一步的决策, 达到安全渡河的目标. 由上述分析进行构造模型. 记第 k次渡河前此岸的商人数为 Xk , 随从数为 Yk , k = 1, 2, …; Xk , Yk =

0, 1, 2, 3, 将二维向量 Sk = ( Xk , Yk )定义为状态,把满足安全渡河条件下的状态集合称为允许状态集合, 记作 S , 则 S = { (X , Y )| X = 0 或 3, Y = 0, 1, 2, 3; X = Y = 1, 2}. 记第 k 次渡河船上的商人数为 Uk , 随从数为 Vk , 将二维向量 Dk = ( Uk , Vk )定义为决策, 由小船的容量可知允许决策集合(记作D)为D = { (U , V ) |U + V = 1, 2}. 因为 k 为奇数时, 船是从此岸驶向彼岸, k 为偶数时, 船是由彼岸驶回此岸, 所以状态 Sk 随决策 Dk 变化的规律是 S(k + 1) = Sk + ( - 1)^k*Dk , k = 1, 2, …. 制定安全渡河方案就归结为如下的多步决策问题: 求决策 Dk∈D ( k = 1, 2, …,n ) , 使得状态Sk∈S 按照状态转移律由初始状态S1 = ( 3, 3) , 经有限n到达状态 ( 0, 0).
图解法的思路是: 在 xOy 平面坐标系画出方格图, 让方格上的每一点 ( x , y ) 表示一个状态, 其中把 x 看作商人数, y 看作随从数. 则允许状态集合 S 是图中用黑点标出的那 10个格子点(称之为安全点) , 允许决策Dk 是沿着方格移动 1 格或 2 格, 当 k 为奇数向左,下方移动; k 为偶数时向右,上方移动. 安全渡河问题转化为确定一系列 Dk , 使得S1 =(0, 0).

例2 三名商人各带一个随从乘船渡河,现有一只小船只能容纳两个人,由他们自己划行,若在河的任一岸的随从人数多于商人,他们就可能抢劫财物。但如何乘船渡河由商人决定,试给出一个商人安全渡河的方案。
下面分析及求解
假设渡河是从南岸到北岸, (m, n)表示南岸有 m 个商
人, n个随从,全部的允许状态共有 10个
v1 = (3, 3); v2 = (3, 2); v3 = (3, 1); v4 = (3, 0)
v5 = (2, 2); v6 = (1, 1); v7 = (0, 3); v8 = (0, 2)
v9 = (0, 1); v10 = (0, 0)
以 V ={ v1, v2 , …, v10 }为顶点集,考虑到奇数次渡河及
偶数次渡河的不同,我们建立两个邻接距阵
A= B=

其中 A表示从南岸到北岸渡河的图的邻接距阵, B =AT表示从北岸到南岸渡河的图的邻接距阵。
由定理 1,我们应考虑最小的 k, s?t(AB )K A中 1行 10列的元素为最佳的路径数目。
经过计算 K =5时, (AB) A的第 1行 10列元素为 2,所以需 11次渡河,有两条最佳路径。
最后我们用图解法来描述
前面我们已求出问题的 10种允许状态,允许决策向量
集合 D ={ (u, v): u + v =1, 2},状态转移方程为 Sk +1 =Sk
( - 1)k dk,如图 2,标出 10种允许状态,找出从 s1 经由允许
状态到原点的路径,该路径还要满足奇数次向左,向下;偶数
次向右,向上。
由图 3可得这样的过河策略,共分 11次决策 ,于应用
邻接矩阵所求的结果吻合。

由这两道经典例题可以得出,使用邻接矩阵描述方便直观,使问题变的简单易懂,应用邻接矩阵的方法不仅能够说明Vi到Vj的路径的长度为K时是否可行,而且能反应出可行的路径条数,从而能够寻找最合适实际

的路径或最短路径,是一种简单便于计算机求解的方法。

设有三名商人,各带一个随从,欲乘一小船渡河,小船只能容纳两人,须由他们自己划行。随从们密约,在河的任何一岸,一旦随从的人数比商人多,就杀人越货。而如何乘船渡河的大权掌握在商人们的手中。商人们怎样才能安全渡河呢?
因这已经是一个相当清晰的理想化问题,所以直接讨论其模型描述以及模型求解。这里将其描述为一个动态决策问题:
记第k次渡河前此岸的商人数为 ,随从数为 , k=1,…,n。将二维向量 定义为状态,安全渡河条件下的状态集合称为允许状态集合,记作S, 。
记第k次渡船上的商人数为 ,随从数为 , k=1,…,n。将二维向量 定义为决策。考虑小船载人数的限制, 应满足 ,而称 为允许决策集合。
因为k为奇数时,船从此岸驶向彼岸;k为偶数时,船从彼岸驶回此岸,所以状态 随决策 的变化规律是 (状态转移规律)。
求决策 ,使状态 按照状态转移规律,由初始状态 经有限步n到达状态 。

接下来讨论模型的求解,设 是某个可行的渡河方案所对应的状态序列,若存在某 ,且同为奇数或同为偶数,满足 ,则称 所对应的渡河方案是可约的。这时 也是某个可行的渡河方案所对应的状态序列。显然,一个有效的渡河方案应当是不可约的。
设渡河已进行到第k步, 为当前的状态,记 , ,为保证构造的渡河方案不可约,则当前的决策 除了应满足:
1) ,且当k为奇数时, ,当k为偶数时, ;
还须满足:
2)当k为奇数时, ;当k为偶数时, 。
D 通过作图,可以得到两种不可约的渡河方案,如下图:
在平面坐标系上画出图示那样的方格,方格点表示s状态 =(x,y) ,允许状态是用圆点标出的10个格子点,允许决策 dk 是沿方格线移动1或2格,k为奇数时,向左、下方移动,k为偶数时,向右、上方移动。图中给出了一种方案,此结果很容易翻译成渡河方案。

相关文档
最新文档