图论学生论文
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数理与信息工程学院
课程论文
课程名称图论及其应用
题目图论中邻接矩阵的应用
姓名沈海华朱国淼
学号******** ******** 专业信息与计算科学06(1)指导老师卜月华
浅谈图论中邻接矩阵的应用
[摘 要] 使用邻接矩阵求解有关实际问题符合数学中数形结合的思想,对于更好地理解问题,思考问题从而求解问题具有现实意义。图论知识的应用是相当广泛的,它是数学的重要分支,使今年来较为活跃的数学分支。这个问题其实也是一个数学游戏问题,是源于生活,高于生活。图论作为组合数学的一分支,与其他数学分支,如矩阵论,概率论,拓扑学数值分析都有着重要的联系。
[关键字] 邻接矩阵、算法、连通性、最小生成树
1、引言
首先介绍图论中邻接矩阵的一个重要定理:
G 是一个图,V (G)为 G 的顶点集, E(G)为 G 的边集。设G 中有 n 个顶点,v 1,v 2,…,v n ;A=(a ij )n ×n 为 G 的邻接距阵, 其中
n j i G E v v G E v v a j i j i ij ,...,2,1,)
(0)(1=⎪⎩⎪⎨⎧∉∈= 定理 1:设 A (G)为图 G 的邻接距阵,则 G 中从顶点 vi 到顶点 vj,长度为 k 的道路的A k 条数为中的 i 行 j 列元素。
证:对 k 用数学归纳法
k =1时,显然结论成立;假设 k 时,定理A l .A= A l+1成立,考虑 k +1的情形。 记 A l 的 i 行 j 列元素为l ≥2,因为所以
nj l in j l i j l i l ij a a a a a a a +++=+...2211)1( (1)
而从v i ,v j 到长 k +1的道路无非是从v i 经 k 步到某顶点v l (1≤l ≤n),再从v l 走一步到v j ; 由归纳假设从v l 到v j 长为 k 的道路共计 而从v l 到v j 长为 1的道路为a ij 条,所以长为k+1的v l 经过k 部到v i 再一步到v j 的道路共有∑-+=n
l lj k il l ij a a a 1)()
1(条故从v i 经 k +1步到v j 的路径共有
1、 邻接矩阵现实问题中的运用
锁具装箱问题
某厂生产一种弹子锁具,每个锁具的钥匙有 5个槽,每个槽的高度从 {1, 2, 3, 4, 5, 6}6个数 (单位略 )中任取一数由于工艺及其他原因,制造锁具时对 5个槽的高度还有两个限制:至少有 3个不同的数,相邻两槽的高度之差不能为 5,满足以上条件制造出来的所有互不相同的锁具称为一批。销售部门在一批锁具中随意地取每 60个装一箱出售。问每一批具有多少个,装多少箱。
分析:锁具装箱这个问题是一个排列组合的数学问题,但在这里我们用图论中的邻接矩阵方法来解决这个问题。每把锁都有 5个槽,每个槽有 6个高度,至少有三个不同高度的槽。且相邻槽高差不为 。我们先求出无相邻高5差为 5的锁具数量,再减去仅有一个、两个槽高的锁具数目。
先计算由 1, 2, 3, 4, 5, 6构成无 1, 6相邻的情况的数目。为此,构造一个 6
节点的图:将 1, 2, 3, 4, 5, 6这 6个数作为 6个节点,当两个数字可以相邻时,这两个节点之间加一条边,每个节点有自己到自己的一条边。我们得到了锁具各槽之间的关系示意图 (见图 1)。
由图我们可以试着画出这个图的邻接矩阵来:
⎥⎥⎥⎥⎥⎥⎥⎥⎦
⎤⎢⎢⎢⎢⎢⎢⎢⎢⎣⎡=1111101
111111111111111111
11111011111A 邻接矩阵 A 的所有元素之和表示两个槽高无 1, 6相邻的锁具的个数,每个无 1, 6相邻的 5位数与图 1中长度为 4的一条链 1 - 1对应,如 12345, 11111, 22335等。A 的 k 次方中各元素之和就是长度为 k 的链的个数。事实上,从这2个具体问题可以看出, A 中第 i 行第 j 列的元素指从 i 开始经过两条边到达 j 的链数,即从 i 开始经过一条边到 k,再从k 经过一条边达到 j, i 和 j 就决定了中间顶点 k 的数目。于是,利用 Matlab 就很容易得到。
⎪⎪⎪⎪⎪⎪⎪⎪⎪⎭
⎫ ⎝⎛=1411651651651651401651941941941941651651941941941941651651941941941941651651941941941941651401651651651651414A 将该矩阵中的元素求和可得相邻高差不为 5的锁具数为 6306把。把。但这 6306把锁具中包含了仅有一个、两个槽高的锁具,需要从其中减去。需减去的锁具的个数为
6+( C 62-1)(25-2)=426
其中,第一个 6仅有 1个槽高的锁具; C 62为 1, 2, 3, 4, 5, 6这 6个数中取两
个的取法,但扣除 1, 6这一种取法。最后得到一批锁具的个数为 6306 - 426 =5880,总共装98箱。这样,就用图论的知识成功地解决了一批锁具的数量问题,这个方法比用别的方法简单,且容易推广。
问题求解反思:使用邻接矩阵求解有关实际问题符合数学中数形结合的思想,对于更好地理解问题,思考问题从而求解问题具有现实意义。图论知识的应用是相当广泛的,它是数学的重要分支,使今年来较为活跃的数学分支。这个问题其实也是一个数学游戏问题,是源于生活,高于生活。图论作为组合数学的一分支,与其他数学分支,如矩阵论,概率论,拓扑学数值分析都有着重要的联系。课本中也列举几种图论的矩阵表示法,如关联矩阵,邻接矩阵。从矩阵的角度分析了图的顶点度的问题等相关知识。
对于这样的一个问题我们可以类似的联想到还有一个比较有特色的问题就是商人过河问题:三名商人各带一个随从乘船渡河,现有一只小船只能容纳两个人,由他们自己划行,若在河的任一岸的随从人数多于商人,他们就可能抢劫财物。但如何乘船渡河由商人决定,试给出一个商人安全渡河的方案。同样我们也可以用矩阵的方法加以解决(本题求解将留给读者思考,不作详述)。
3、基于邻接矩阵图的连通性判定性原则
图的连通性判定准则:
对于矩阵如果存在如下公式;
()∑-=⨯==1
1m k k m m ij A S S 那么可以做出如下判断如果矩阵 中的元素全部为非零元素,则图G 为连通图;否则如果矩阵S 中存在t(t1)个零元素,则图G 为非连通图。(证明从略) 在上述准则中,对于无向图,A 为图G 的节点邻接矩阵;对于有向图,A 为图G 对应的无向图的节点邻接矩阵。对于图所示的有向图,对应的无向图的节点,其所定义的邻接矩阵为:
⎪⎪⎪⎪⎪⎪⎪⎪⎪⎭
⎫ ⎝⎛=0100001011000001100110100011010000101A 根据图的连通性判定准则, ⎪⎪⎪⎪⎪⎪⎪⎪⎪⎭⎫ ⎝
⎛==∑-=621181818421425757401818576061571818576160571818405757422141818182161111m k k A S