83图的矩阵表示
矩阵数据分析图ppt课件

精选ppt
3
矩阵图的类型
矩阵图法在应用上的一个重要特征, 就是把应该分析的对象表示在适当的矩 阵图上。因此,可以把若干种矩阵图进 行分类,表示出他们的形状,按对象选 择并灵活运用适当的矩阵图形。常见的 矩阵图有以下几种
精选ppt
4
(1)、L型矩阵图。是把一对现象用以矩 阵的行和列排列的二元表的形式来表达 的一种矩阵图,它适用于若干目的与手 段的对应关系,或若干结果和原因之间 的关系
精选ppt
5
(2) T型矩阵图是由C类因素和B类因素组成的L型 矩阵图阵图,如图所示。表示C类因素 分别与B类因素和A类因素相对应的矩阵图。
精选ppt
6
(3)Y型矩阵图是由A类因素和B类因素、B类因 素和C类因素、C类因素和A类因素组成三个L型矩 阵图,如因(d)所示,即表示A和B、B和C、C和A 三因素分别对应的矩阵图。
矩阵图(Matrix Diagram)
定义:矩阵图法就是从多维问题的 事件中,找出成对的因素,排列成 矩阵图,然后根据矩阵图来分析问 题,确定关键点的方法,它是一种 通过多因素综合思考,探索问题的 好方法。
精选ppt
1
矩阵图的由来
质量管理中所使用的矩阵图,其成 对因素往往是要着重分析的质量问题的 两个侧面,如生产过程中出现了不合格 时,着重需要分析不合格的现象和不合 格的原因之间的关系,为此,需要把所 有缺陷形式和造成这些缺陷的原因都罗 列出来,逐一分析具体现象与具体原因 之间的关系,这些具体现象和具体原因 分别构成矩阵图中的行元素和列元素。
精选ppt
2
矩阵图法简介
矩阵图的形式如图所示, A为某一个因素群,a1、a2、 a3、a4、…是属于A这个因素 群的具体因素,将它们排列 成行;B为另一个因素群, b1、 b2、b3、b4、…为属于 B这个因素群的具体因素,将 它们排列成列;行和列的交 点表示A和B各因素之间的关 系,按照交点上行和列因素 是否相关联及其关联程度的 大小,可以探索问题的所在 和问题的形态,也可以从中 得到解 。
图的存储结构邻接矩阵表示法

1
1
E, 则称图G′
2
3
3
1
1
2
3 5
4
3
4
(a) G 1的 子 图
1
2
1
2
3
4
5
4
5
(b) G 2的 子 图 图7.2 图的子图示例
3. 邻接点 对于无向图 G=(V, {E}),如果边(v,v′)∈E, 则称顶点v, v′互为邻 接点,即v, v′相邻接。边(v, v′)依附于顶点v和v′,或者说边(v, v′)与顶 点v和v′相关联。 对于有向图G=(V, {A})而言,若弧<v,v′>∈A, 则称顶点v邻接到顶点 v′,顶点v′邻接自顶点v,或者说弧<v, v′>与顶点v和v′相关联。
7.1 图的定义与基本术语
7.1.1 图的定义
图(Graph)是一种网状数据结构, 其形式化定义如下: Graph=(V,R) V={x|x∈DataObject}
R={VR} VR={<x, y>|P(x, y)∧(x, y∈V)} DataObject为一个集合,该集合中的所有元素具有相同的特性。V中的数据元 素通常称为顶点(vertex),VR是两个顶点之间关系的集合。P(x,y)表示x和y 之间有特定的关联属性P。
n
TD(vi )
e i1 2
5.
在实际应用中,有时图的边或弧上往往与具有一定意义的数有关,即每一条边 都有与它相关的数,称为权,这些权可以表示从一个顶点到另一个顶点的距离或 耗费等信息。我们将这种带权的图叫做带权图或网,如图7.3所示。
16
1
2
21
11
5
7-3 图的矩阵表示

中国海洋大学 计算机系
主要内容
邻接矩阵 有向图的可达矩阵 无向图的关联矩阵 有向图的关联矩阵 图的运算 学习要点与基本要求 实例分析
邻接矩阵
定义7-3.1 设G=<V,E>是一个简单图,它有 个结点 是一个简单图, 定义 是一个简单图 它有n个结点 V={v1, v2, …, vn}, 则n阶方阵 阶方阵A(G)=(aij)称为 的邻 称为G的邻 阶方阵 称为 接矩阵。其中 接矩阵。
1 从v i 到v j 至少存在一条路 pij = 0 从v i 到v j不存在路
称矩阵P是图 的可达性矩阵。 称矩阵 是图G的可达性矩阵。 是图
关于可达矩阵的说明
可达性矩阵描述任意两结点是否可达, 可达性矩阵描述任意两结点是否可达,以及对于任 意结点是否有通过它的回路。 意结点是否有通过它的回路。 由邻接矩阵A可直接得到可达性矩阵 ,方法如下: 由邻接矩阵 可直接得到可达性矩阵P,方法如下: 可直接得到可达性矩阵 方法1: 方法 : Bn=A+A2+…An, 再把B 中的非零元均改为1, 再把 n中的非零元均改为 ,零元保持不 变,得到可达性矩阵P。 得到可达性矩阵 。 方法2: 中的非零元改为1, 方法 :把Ai(i=1,2, …,n)中的非零元改为 ,零元保 中的非零元改为 持不变,得到布尔矩阵 持不变,得到布尔矩阵A(i)(i=1,2, …,n), , P= A(1) ∨ A(2) ∨… ∨ A(n)
0 1 0 0 0 2 0 0 0 2 0 1 0 0 + 0 0 0 1 0 0 0 0 0 1 0 7 3 0 0 6 7 0 0 7 3 0 0 0 0 2 3 0 0 3 2
2 0 0 0 2 0 2 0 0 0 2 0 0 0 + 2 0 0 0 1 0 0 0 1 0 0
离散数学-图的矩阵表示

分析:从 到 长度为2的路,中间必须经过 如果图G 中有路 存在,则肯定有 ,反之如果 图G中不存在路 ,那么 或者 ,即 于是从结点 到 的长度为2的路的数目就 等于:
按照矩阵的乘法规则,上式恰好等于矩阵 的元素,即 表示从 到 ; 的长度为2的路的数目
中第i行,第j列
考虑从vi到v j的长度为3的路的数目,可以看作是由vi到vk的长度为1的路,再 联结vk 到v j的长度为2的路,则类似可知从vi到v j的长度为3的路的数目为: a
( 3) ij ( 2) aik akj ,即为( A(G )) 3的第i行,第j列元素。 k 1 n
行相加运算: 有向图:对应分量普通加法运算; 无向图:对应分量模2加法运算。 行相加相当于G中对应结点的合并。 air a jr 1 ,说明v 和v 中只有一个结点是边e 的端点,合并 i j r 后仍是er的端点。
air a jr 0 ,有两种情况:
a、vi,vj都不是er的端点; b、vi,vj都是er的端点,合并后删去自回路。 若合并后完全关联矩阵中出现元素全为0的列,表明对应的 边消失。 有了这种运算,就可以运用这种运算求关联矩阵的秩
1 0 1 0
0 1 0 0
0 1 ,求G的可达性矩阵。 1 0
Байду номын сангаас
0 2 A2 1 0
0 1 1 1
1 0 1 0
1 1 1 0
2 1 A3 2 0
4 5 7 2 2 4 4 1
1 2 2 0
3 6 7 2
0 1 1 1
由前面的定理7-2.1的推论可知,如果在vi到vj之间存在路,必定存在 一条长度不超过n的通路,所以l只需计算到n就可以了。
第2章-数字图像概念

第 2 章 数字图像概念
18
(a)原图像 (b)灰度直方图 图 2-12 原图与灰度直方图 灰度直方图有以下性质: (1)灰度直方图只反映图像中像素的不同灰度值出现的次数或频数,而没有反映像素所在的 位置。 (2)一幅图像只有一个唯一的直方图,但是一个直方图可能对应不同的图像。 (3)如果将一幅图分为几个子图,则子图的灰度直方图之和为整图的灰度直方图。 【例 2-1】 求图 2-13(a)的 4x4 图像的灰度直方图。
第 2 章 数字图像概念
15
(a) 端点
(b) 分叉点 图 2-7 8 邻域特征点
(c) 连续点
2.1.4 数字图像间关系
数字图像间的关系可以是代数运算关系,也可以是逻辑运算关系。运算是在两幅图像的 对应(位置)像素间进行。式 2-2 是代数运算公式,式 2-3 是逻辑运算公式。式中 g(x,y) 代表运算后的新图像,fA(x,y)代表图像 A,fB(x,y)代表图像 B。 加法运算: 减法运算: 乘法运算: 除法运算: 与运算: 或运算: 异或运算: 补(反)运算: 【应用】 图像间加法运算通常应用于减少和去除图像获取时混入的噪声,从而得到清晰的图像。 由于噪声具有随机性,因此,通过同一场景的多幅静止图像相加,求平均值等方法,降低和 消除随机噪声对图像的影响(详见 4.1.3 图像平滑)。图像相加还可以把一幅图像的内容叠 加到另一幅图像上。例如,Photoshop 中合并通道的原理,就是图像相加的具体应用。 图像间减法运算通常应用于提取图像的差异,以及去除背景等方面。例如,在图像中运 动物的检测中,通过前后两个图像的减法运算,可以了解运动物体移动的程度,计算出运动 速度,并画出移动轨迹。如图 2-8 所示。上图是拍摄的运动物体(人物),下图左侧是上图 中图与左图之差的结果;下图中图是上图右图与中图之差的结果;下图右图是上图右图与左 图之差的结果。下图中黑色部分表示静止部分,因为相减为 0,白色部分为运动部分。 g(x,y) g(x,y) g(x,y) g(x,y) g(x,y) g(x,y) g(x,y) g(x,y) = = = = = = = = f A(x,y)+ fB(x,y) f A(x,y)- fB(x,y) f A(x,y)x fB(x,y) f A(x,y)÷ fB(x,y) f A(x,y)AND f A(x,y)OR f A(x,y)XOR f A(x,y)NOT fB(x,y) fB(x,y) fB(x,y) fB(x,y)
图基本算法图的表示方法邻接矩阵邻接表

图基本算法图的表⽰⽅法邻接矩阵邻接表 要表⽰⼀个图G=(V,E),有两种标准的表⽰⽅法,即邻接表和邻接矩阵。
这两种表⽰法既可⽤于有向图,也可⽤于⽆向图。
通常采⽤邻接表表⽰法,因为⽤这种⽅法表⽰稀疏图(图中边数远⼩于点个数)⽐较紧凑。
但当遇到稠密图(|E|接近于|V|^2)或必须很快判别两个给定顶点⼿否存在连接边时,通常采⽤邻接矩阵表⽰法,例如求最短路径算法中,就采⽤邻接矩阵表⽰。
图G=<V,E>的邻接表表⽰是由⼀个包含|V|个列表的数组Adj所组成,其中每个列表对应于V中的⼀个顶点。
对于每⼀个u∈V,邻接表Adj[u]包含所有满⾜条件(u,v)∈E的顶点v。
亦即,Adj[u]包含图G中所有和顶点u相邻的顶点。
每个邻接表中的顶点⼀般以任意顺序存储。
如果G是⼀个有向图,则所有邻接表的长度之和为|E|,这是因为⼀条形如(u,v)的边是通过让v出现在Adj[u]中来表⽰的。
如果G是⼀个⽆向图,则所有邻接表的长度之和为2|E|,因为如果(u,v)是⼀条⽆向边,那么u会出现在v的邻接表中,反之亦然。
邻接表需要的存储空间为O(V+E)。
邻接表稍作变动,即可⽤来表⽰加权图,即每条边都有着相应权值的图,权值通常由加权函数w:E→R给出。
例如,设G=<V,E>是⼀个加权函数为w的加权图。
对每⼀条边(u,v)∈E,权值w(u,v)和顶点v⼀起存储在u的邻接表中。
邻接表C++实现:1 #include <iostream>2 #include <cstdio>3using namespace std;45#define maxn 100 //最⼤顶点个数6int n, m; //顶点数,边数78struct arcnode //边结点9 {10int vertex; //与表头结点相邻的顶点编号11int weight = 0; //连接两顶点的边的权值12 arcnode * next; //指向下⼀相邻接点13 arcnode() {}14 arcnode(int v,int w):vertex(v),weight(w),next(NULL) {}15 arcnode(int v):vertex(v),next(NULL) {}16 };1718struct vernode //顶点结点,为每⼀条邻接表的表头结点19 {20int vex; //当前定点编号21 arcnode * firarc; //与该顶点相连的第⼀个顶点组成的边22 }Ver[maxn];2324void Init() //建⽴图的邻接表需要先初始化,建⽴顶点结点25 {26for(int i = 1; i <= n; i++)27 {28 Ver[i].vex = i;29 Ver[i].firarc = NULL;30 }31 }3233void Insert(int a, int b, int w) //尾插法,插⼊以a为起点,b为终点,权为w的边,效率不如头插,但是可以去重边34 {35 arcnode * q = new arcnode(b, w);36if(Ver[a].firarc == NULL)37 Ver[a].firarc = q;38else39 {40 arcnode * p = Ver[a].firarc;41if(p->vertex == b) //如果不要去重边,去掉这⼀段42 {43if(p->weight < w)44 p->weight = w;45return ;46 }47while(p->next != NULL)48 {49if(p->next->vertex == b) //如果不要去重边,去掉这⼀段50 {51if(p->next->weight < w);52 p->next->weight = w;53return ;54 }55 p = p->next;56 }57 p->next = q;58 }59 }60void Insert2(int a, int b, int w) //头插法,效率更⾼,但不能去重边61 {62 arcnode * q = new arcnode(b, w);63if(Ver[a].firarc == NULL)64 Ver[a].firarc = q;65else66 {67 arcnode * p = Ver[a].firarc;68 q->next = p;69 Ver[a].firarc = q;70 }71 }7273void Insert(int a, int b) //尾插法,插⼊以a为起点,b为终点,⽆权的边,效率不如头插,但是可以去重边74 {75 arcnode * q = new arcnode(b);76if(Ver[a].firarc == NULL)77 Ver[a].firarc = q;78else79 {80 arcnode * p = Ver[a].firarc;81if(p->vertex == b) return; //去重边,如果不要去重边,去掉这⼀句82while(p->next != NULL)83 {84if(p->next->vertex == b) //去重边,如果不要去重边,去掉这⼀句85return;86 p = p->next;87 }88 p->next = q;89 }90 }91void Insert2(int a, int b) //头插法,效率跟⾼,但不能去重边92 {93 arcnode * q = new arcnode(b);94if(Ver[a].firarc == NULL)95 Ver[a].firarc = q;96else97 {98 arcnode * p = Ver[a].firarc;99 q->next = p;100 Ver[a].firarc = q;101 }102 }103void Delete(int a, int b) //删除以a为起点,b为终点的边104 {105 arcnode * p = Ver[a].firarc;106if(p->vertex == b)107 {108 Ver[a].firarc = p->next;109 delete p;110return ;111 }112while(p->next != NULL)113if(p->next->vertex == b)114 {115 p->next = p->next->next;116 delete p->next;117return ;118 }119 }120121void Show() //打印图的邻接表(有权值)122 {123for(int i = 1; i <= n; i++)124 {125 cout << Ver[i].vex;126 arcnode * p = Ver[i].firarc;127while(p != NULL)128 {129 cout << "->(" << p->vertex << "," << p->weight << ")";130 p = p->next;131 }132 cout << "->NULL" << endl;133 }134 }135136void Show2() //打印图的邻接表(⽆权值)137 {138for(int i = 1; i <= n; i++)140 cout << Ver[i].vex;141 arcnode * p = Ver[i].firarc;142while(p != NULL)143 {144 cout << "->" << p->vertex;145 p = p->next;146 }147 cout << "->NULL" << endl;148 }149 }150int main()151 {152int a, b, w;153 cout << "Enter n and m:";154 cin >> n >> m;155 Init();156while(m--)157 {158 cin >> a >> b >> w; //输⼊起点、终点159 Insert(a, b, w); //插⼊操作160 Insert(b, a, w); //如果是⽆向图还需要反向插⼊161 }162 Show();163return0;164 }View Code 邻接表表⽰法也有潜在的不⾜之处,即如果要确定图中边(u,v)是否存在,只能在顶点u邻接表Adj[u]中搜索v,除此之外没有其他更快的办法。
30图的矩阵表示及特殊图
二部图的判别法
定理 无向图G=<V,E>是二部图当且仅当G中无奇圈 例 下述各图都是二部图
25
8.2 欧拉图
历史上的哥尼斯堡七桥问题是著名的图论问题。 问题是这样的: 18世纪的东普鲁士有个哥 尼斯堡城, 在横贯全城的普雷格尔河两岸和两 个岛之间架设了 7 座桥, 它们把河的两岸和两 个岛连接起来 (如图 8.2.1 )。 每逢假日, 城中居民进行环城游玩, 人们对此提出了一个 “遍游”问题, 即能否有这样一种走法, 使 得从某地出发通过且只通过每座桥一次后又回 到原地呢?
定义 设无环有向图D=<V,E>, V={v1, v2, …, vn}, E={e1, e2, …, em}, 令
1 , vi为e j的始点 mij 0 , vi与e j 不关联 1 , v 为e 的终点 i j
则称(mij)nm为D的关联矩阵,记为M(D).
教师:田检
21
有向图的关联矩阵的性质:
是使Al(l=1, 2, …, n-1 )的(i, j)项元 素不为零的最小整数l。
3) Al的(i, i)项元素a(l)ii表示开始并结束于 vi长度为l的回路的数目。
教师:田检
11
2.有向图的邻接矩阵
与无向图一样, 有向图也能用相 应的邻接矩阵表示.
定义 设有向图D=<V,E>, V={v1, v2, …, vn}, E={e1, (1) a e2, …, em}, 令 ij 为顶点vi邻接到顶点vj边的条数, (1) 称( a ij )mn为D的邻接矩阵, 记作A(D), 简记为A.
教师:田检
26
我们将图 8.2.1 中的哥尼斯堡城的 4 块陆地部 分分别标以A, B, C, D, 将陆地设想为图 的结点, 而把桥画成相应的连接边, 这样图 8.2.1可简化成图8.2.2。 于是七桥“遍游”问 题等价于在图 8.2.2 中, 从某一结点出发找到 一条回路, 通过它的每条边一次且仅一次, 并回到原来的结点。
矩阵图
二、矩阵图用途 :
1、确定系列产品的研制或改进的关键环节; 确定系列产品的研制或改进的关键环节; 2、产品的质量展开; 产品的质量展开; 3、寻找产品的不良现象与原材料、设备、工艺之间的关系; 寻找产品的不良现象与原材料、设备、工艺之间的关系; 4、拟定与市场相关联的产品战略方案; 拟定与市场相关联的产品战略方案; 5、加强质量审核制度并使之效能化; 加强质量审核制度并使之效能化; 6、明确产品特性与管理职能或负责部门的关系; 明确产品特性与管理职能或负责部门的关系; 7、明确用户质量要求与工序管理项目之间的关系。 明确用户质量要求与工序管理项目之间的关系。
实例2: 实例2:
爬坡 低速 1档 2档 3档 4档 5档以上 ◎ ◎ ○ ◎ ◎ ◎ ◎
加速 中速 ○ ◎ ◎ ◎ ◎ ◎ ◎ 高速 低速 △加速时 △加速时 ◎
油耗 中速 高速
△加速时 ◎ ◎ ○ ◎
低速:40km/h以下 中速:40~80km/h 高速:80km/h以 上
图1:
R R1 L1 L2 L3 L4 L5 . . . Lm R2 R3 R4 R5 R6 … … Rn
L
实例1: 实例1:
性能 原因 绝缘漆浓度低 预烘时间短 定子性能差 转子缺陷 风叶不配套 风叶角度与电机 不匹配 轴承不合格 精加工精度差 ◎ 绝缘强度低 ◎ ◎ 耐压击穿 ○ ○ ◎ ◎ ○ ◎ ◎ ◎ ◎ ○ ○ ○ ◎ ◎ ○ ○ 功率大 转速低 启动性能差
三、矩阵图分类 :
1 、L 型 2 、T 型 3 、Y 型 4 、X 型 5 、C 型
L型为常用型,本课件仅对1进行说明 型为常用型,本课件仅对 进行说明 型为常用型
L型矩阵图: 型矩阵图: 一般将两个对应事项A与B的元素,分别按行和列排列而成。它用 一般将两个对应事项A 的元素,分别按行和列排列而成。 于分析若干个目的(或问题)的手段(原因),见图1 ),见图 于分析若干个目的(或问题)的手段(原因),见图1;
图的矩阵表示
定义10.18 定义10.18 设 G=(V, E) 为简单图,它有 n 个结点 V 为简单图, ,,则 ={v1, v2, …, vn},,则 n 阶方阵 A(G ) = (aij ) 称为 G 邻接矩阵。 的邻接矩阵。 1, v i 邻 接 v j ; 其中 a ij = 0, 不 邻 接 v j或 i = j . v1 v2 v5
0 1 1 0
0 1 A(G2 ) = 1 0
0 0 1 1
1 0 0 0
1 0 1 0
如果给定的图是零图,则其对应的矩阵中所有的元素都为零, 如果给定的图是零图,则其对应的矩阵中所有的元素都为零, 它是一个零矩阵,反之亦然, 它是一个零矩阵,反之亦然,即邻接矩阵为零矩阵的图必是 零图。 零图。
1 1 1 1 1 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1
0 0 2 3 4 5 P = A ∨ A ∨ A ∨ A ∨ A = 1 0 0
由此看出, 由此看出,如果把邻接矩阵看作是结点集 V 上关系 R 的 关系矩阵, 关系矩阵,则可达性矩阵 P 即为 M R ,因此可达矩阵亦 算法计算。 可用 Warshall 算法计算。
+
可达性矩阵的概念可以推广到无向图中,只要将无向 可达性矩阵的概念可以推广到无向图中, 图的每一条边看成是具有相反方向的两条边,这样, 图的每一条边看成是具有相反方向的两条边,这样,一个 无向图就可以看成是有向图。 无向图就可以看成是有向图。无向图的邻接矩阵是一个对 称矩阵,其可达矩阵称为连通矩阵。 称矩阵,其可达矩阵称为连通矩阵。 除了可用邻接矩阵以外, 对于一个无向图 G,除了可用邻接矩阵以外,还对应 完全关联矩阵, 无自回路, 着一个称为图 G 的完全关联矩阵,假定图 G 无自回路,如 因某种运算得到自回路,则将它删去。 因某种运算得到自回路,则将它删去。
第六章-图的矩阵表示
mij
1 - 1
若v
i是e
的起
j
点
若v
i是e
的终点
j
0 若vi不关联e j
称M(G)为D的完全关联矩阵。
v1
e6
v3
e1
e2 e3 e5
e4
v2
v4
e1 e2 e3 e4 e5 e6
v1 1 1 1 0 0 1
v2 1 1 0 0 0 0
例 计算完全关联矩阵M(G)的秩。
e1 e2 e3 e4 e5 e6 e7 v1 0 0 0 0 0 1 1 v2 0 0 0 1 1 1 0 v3 0 1 1 1 0 0 0 (4) v4 1 1 0 0 0 0 0
v5 1 0 1 0 1 0 1
1 1 0 0 0 0 0
(1)
0
0
0 1
0 1
v e 2 2 0 1 0 0 0
1
0
1
0
0
A 0 1 0 0 0
0 0 0 0 1
e1
e5 0 0 0 1 0
v3
1 0 1 0 0
0 2 0 0 0
A2 1 0 1 0 0
0
0
0
1
0
0 0 0 0 1
e3
v1
e4
v4
有向图的关联矩阵
定义 给定简单有向图D=<V,E>, V={v1, v2, …, vp}, E={e1,
(1)
m n
i1 ij
0
( j 1,2,...,m)
(2)
m j1
(
mij
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
方法① 利用矩阵Bn(Bn-1)确定P: 当bij=0时,pij=0;否则,pij=1。
方法② 直接由邻接矩阵确定可达矩阵: P=A∨A2∨…∨An,
其中Ak为A的布尔方幂。
计算可达矩阵举例:
0 1 0 1
0 0 1 1
1 1 0 1
0 1 1 2
A
0
1
0
1
1
A (2)
1
1 0 1
0
1 1
0 1
1
A (3)
0
2
1
1 1
1 1
2
2
A ( 4 ) 1 1
1 2
1 1
2
3
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
方法1:先由邻接矩阵A求B4, B4=A+A(2)+A(3)+A(4) 然后写出可达矩阵P。
1325 1111 B4 32533386 P11111111
0
0
1
0
1
v1
0 0 0 1 0
0 0 1 1 1
0 0 1 1 1 P A A2 A3 A4 A5 0 0 1 1 1
0 0 1 1 1
0 0 1 1 1
3.可达矩阵的应用
利用一个图的可达性矩阵,求出这个图的所有强分图。 方法:图G的强分图可从矩阵P∧PT求得
0 0 0 0 0
0 1 0 1
A
0
0 11
0 1 0 1
0
1
0
0
0 1 11
A (2)
0
2
0
1
0 1 11
0
0
1
1
0 2 1 2
A (3)
0
1
2
2
0 2 1 2
0
2
0
1
0 3 2 3
A (4)
0
41
3
0 3 2 3
0
1
2
2
作业
P284 1 P285 3(+关联矩阵)
0 0 3 7 3
2、可达性矩阵
有向图G中从vi到vj是否有路可达可通过矩阵运算而得到。
定义2 设G=<V,E>为简单有向图,V={v1,v2,…vn},定义矩阵 P=(pij),其中 pij 1 0从 从 v v ii到 到 v vj至 j不 少 存 存 在 在 一 一 条 条 非 非 零 零 长 长 度 度 的 的 路 路 径 径
离散数学
电子课件
南京信息工程大学 离散数学教学组 制作
第八章 图论
8.1 图的基本概念 8.2 路径和回路 8.3 图的矩阵表示 8.4 二部图 8.5 平面图 8.6 树 8.7 有向树
8.3 图的矩阵表示
1. 邻接矩阵 2. 可达性矩阵 3. 可达性矩阵的应用 4. 关联矩阵
1、邻接矩阵
定义1 设G=<V,E>有向(无向)线图,有n个标定了次序的结 点v1, v2,…vnV,则n阶方阵A=(aij)称为G的邻接矩阵,这里
0 1 0 0
A
0
0
1
1
1 1 0 1
1
0
0
0
v3的出度=1+1+0+1=3,v3的入度=0+1+0+0=1
邻接矩阵的图论意义
设A为无向简单图G的邻接矩阵,其第i行(列)元素为1的个数等于
结点的度。
设A为有向简单图G的邻接矩阵。
① A的第i行(列)和等于第i个结点的出(入)度,i=1,…n。
0
0
0Hale Waihona Puke 0 0 1 1AT
1
0
1
0
0 1 0 0
0
1
1
0
1 0 1 0
2 1 0 1
AAT
0
1
2 1
1 3
0
1
AT
A
1
0
2 0
0 1
1
1
0
0
1
1
1
1
1
2
练习:求AAT,ATA,并由此求每个结点的出度与入度
0 1 0 0
A
0
0
1
1
1 1 0 1
1
0
0
0
0 0 1 1
AT
④ Br=A+A(2)+A(3)+…+A(r)的元素bij表示从vi到vj长度小于等于r的 不同路径总数。
在n个结点的简单有向图中,基本路径长度不超过n-1,基本回路
长度不超过n,故可用
Bn-1=A+A(2)+A(3)+…+A(n-1) (ij时) Bn=A+A(2)+A(3)+…+A(n) (i=j时)
0 0 0 0 0
P PT
0
0
1
1
1
.
0 0 1 1 1
0
0
1
1
1
可求得G的强连通分支对应结点集为: {1},{2},{3,4,5}。
4 关联矩阵
定义3 设G=<V,E>是无向图,V={v1,v2…,vn},E={e1,e2…,en}, 一个n×m矩阵M=(mij)称为G的关联矩阵,其中mij是结点vi和ej的 关联次数。 定义4 设G=<V,E>是有向简单图,V={v1,v2…,vn},E={e1,e2…, en},一个n×m矩阵M=(mij)称为G的关联矩阵,其中
② 有向简单图在标定次序后得到唯一邻接矩阵;
例如,左下图的两个置换等价邻接矩阵:
0 1 0 0
A
0
0
1
1
1 1 0 1
1
0
0
0
v2 v3 v1 v4
v
2
0
1
0
1
v
3
1
0
1
1
v1 1 0 0 0
v4 0 0 1 0
几个特殊图的邻接矩阵
• 零图的邻接矩阵的元素全为0,称为零矩阵。
A
0
0
1
1
1 1 0 1
1
0
0
0
0 0 1 1
A (2)
2
1
0
1
1 1 1 1
0
1
0
0
例 A(2)中的第2行第1列元素等于2,说明从v2到v1长度为2的 路的有两条: v2 v4 v1 , v2 v3 v1 。
分析: a21(2)= a21a11+a22a21+ a23a31+a24a41=0•0+0•0+1•1+1•1=2 注意从v2到v1长度为2的路中间必经由一个结点vk,即v2 vk v1(1k4)。 一般地, A(m)中从i到j长为m的路径总数是aij(m)条,过i的长为m 的回路共有aii(m)条。
1 mij 0
vi是ej的始点 vi与ej不关联
1 vi是ej的终点
5、课堂练习
练习 求如下有向图的邻接矩阵A,指出从v1到v4且长度为 2和4的路。
解:从v1到v4长度为2的路有1条: v1v2v4 从v1到v4长度为4的路有3条: v1v2v4v2v4, v1v2v3v2v4,
v1v4v2v3v4
0
0
2
0
2
0
0
0
4
0
0 0 0 2 0
0 0 2 0 2
0 0 2 0 2
0
0
0
4
0
A(5) 0 0 0 4 0
v1
0
0
4
0
4
0 0 0 4 0
0 0 5 3 3
0
0
3
7
3
B5 A A(2) A(3) A(4) A(5) 0 0 3 7 3
0
0
7
6
7
② B=AAT=(bij)的元素 bij=ai1aj1+…+ainajn=k 表示有k个点,都是从i,j引出的有向边的
公共交点。
特别地,bii是第i结点的出度。
对偶地
可讨论ATA的元素的图论意义。
i
j
练习:求AAT,ATA,并由此求每个结点的出度与入度
0 1 0 0
A
0
0
1
1
1 1 0 1
1
研究vi到vj的可达性和经vi是否存在回路的问题。bij0(ij)表示从 vi到vj可达,否则从vi到vj不可达,分属不同强分图。bij 0(i=j)表 示经vi存在回路,否则表示不存在经vi的回路。
例2 根据有向图和矩阵B5,验证 (a) b52=0,所以v2和v5分属两个强分图。 (b) b11=0,所以没有经过v1的回路。 (c) b53=3,所以从v5到v3长度不超过5的路径有3条。
• 有n个结点的多重图的邻接矩阵是n阶方阵A=(aij),其中aij代表 从vi到vj的边的重数。
邻接矩阵的图论意义
设A为无向简单图G的邻接矩阵,其第i行(列)元素为1的个数等于 结点的度。
邻接矩阵的图论意义
设A为无向简单图G的邻接矩阵,其第i行(列)元素为1的个数等于 结点的度。 设A为有向简单图G的邻接矩阵。 ① A的第i行(列)和等于第i个结点的出(入)度,i=1,…n。
v1
v1
0 0 1 0 0
0
0
0
1
0
A 0 0 0 1 0