邻接矩阵与关联矩阵「建议收藏」

邻接矩阵与关联矩阵「建议收藏」【邻接矩阵】定义:设无向图G=(V,E)G=(V,E)G=(V,E),其中顶点集V=v1,v2,…,vnV=v1,v2,…,vnV={v_1,v_2,…,v_n},边集E=e1,e2,…,eεE=e1,e2,…,eεE={e_1,e_2,…,e_\varepsilon}。用aijaija_{ij}表示顶点viviv_i与顶点vjvjv_j之间的边数,可能取值为0,1…

【邻接矩阵】

定义:
设无向图 G=(V,E) G = ( V , E ) ,其中顶点集 V=v1,v2,...,vn V = v 1 , v 2 , . . . , v n ,边集 E=e1,e2,...,eε E = e 1 , e 2 , . . . , e ε 。用 aij a i j 表示顶点 vi v i 与顶点 vj v j 之间的边数,可能取值为0,1,2,…,称所得矩阵 A=A(G)=(aij)n×n A = A ( G ) = ( a i j ) n × n 为图G的邻接矩阵

若干性质

  • A(G) A ( G ) 为对称矩阵
  • 若G为无环图,则 A(G) A ( G ) 中第i行(列)的元素之和等于顶点 vi v i 的度
  • 两图G和H同构的充要条件是存在置换矩阵P使得 A(G)=PTA(H)P A ( G ) = P T A ( H ) P

类似地,有向图D的邻接矩阵 A(D)=(aij)n×n A ( D ) = ( a i j ) n × n , aij a i j 表示从始点 vi v i 到终点 vj v j 的有向边的条数,其中 vi v i 和 vj v j 为D的顶点

示例,求图所示简单图的邻接矩阵?
这里写图片描述

解:根据定义,可求得该无向图的邻接矩阵为

⎡⎣⎢⎢⎢0111101011011010⎤⎦⎥⎥⎥ [ 0 1 1 1 1 0 1 0 1 1 0 1 1 0 1 0 ]

注:邻接矩阵是描述图的一种常用的矩阵表示。

【关联矩阵】

定义:
设任意图 G=(V,E) G = ( V , E ) ,其中顶点集 V=v1,v2,...,vn V = v 1 , v 2 , . . . , v n ,边集 E=e1,e2,...,eε E = e 1 , e 2 , . . . , e ε 。用 mij m i j 表示顶点 vi v i 与边 ej e j 关联的次数,可能取值为0,1,2,…,称所得矩阵 M(G)=(mij)n×ε M ( G ) = ( m i j ) n × ε 为图G的关联矩阵

类似地,有向图 D D 的关联矩阵
M(D)=(mij)n×ε

M ( D ) = ( m i j ) n × ε
的元素 mi×j m i × j 定义为:

mij=⎧⎩⎨⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪1,−1,0,vi是有向边aj的始点vi是有向边aj的终点vi是有向边aj的不关联点 m i j = { 1 , v i 是 有 向 边 a j 的 始 点 − 1 , v i 是 有 向 边 a j 的 终 点 0 , v i 是 有 向 边 a j 的 不 关 联 点

示例,求图中有向图的邻接矩阵和关联矩阵。
这里写图片描述

解:根据定义,可求得该有向图的邻接矩阵:

⎡⎣⎢⎢⎢0001101010000010⎤⎦⎥⎥⎥ [ 0 1 1 0 0 0 0 0 0 1 0 1 1 0 0 0 ]

关联矩阵:

⎡⎣⎢⎢⎢1−1000−110001−1−100110−10⎤⎦⎥⎥⎥ [ 1 0 0 − 1 1 − 1 − 1 0 0 0 0 1 1 0 − 1 0 0 − 1 1 0 ]

注:关联矩阵是描述图的另一种矩阵表示。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/222914.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长

相关推荐

  • IDEA—IDEA使用Tomcat服务器出现乱码问题

    Idea结合Tomcat,访问JSP页面使用response输出,出现了乱码!!!

    2022年2月26日
  • typescript web_typescript文档

    typescript web_typescript文档前言上一篇我们讲到如何手动编译TypeScript,如果我们每次都要手动编译,那么这样会很累,接下来就介绍自动编译TypeScript。mac自动编译typescript在Typescript文

    2022年7月29日
  • java中输出数组元素的方法[通俗易懂]

    java中输出数组元素的方法[通俗易懂]定义一个数组:int[]array=newint{5,2,3,8};方法一:for(inti=0;i<array.length){ System.out.println(array[i]);}方法二:importjava.util.Arrays;System.out.println(Array.toString(array))方法三:…

    2022年10月11日
  • python中for循环的用法1+2+3…+50的和_python结束for循环

    python中for循环的用法1+2+3…+50的和_python结束for循环1.一般格式range(stop)#0~stop-1range(start,stop)#start~stop-1range(start,stop,step)#start~stop-1,step表示步长注:Python中break,continue的用法与C中一致2.在enumerate中的用法enumerate()(单词意思是枚举的意思)是python中的内置函数,enumera

    2022年8月12日
  • 电脑开机读不到固态硬盘怎么办_电脑读不到固态硬盘怎么办

    电脑开机读不到固态硬盘怎么办_电脑读不到固态硬盘怎么办电脑重启后发现电脑检测不出固态硬盘,这种情况大家不要慌张,下面就由学习啦小编跟大家分享电脑重启后读不到固态硬盘该怎么办,欢迎大家来阅读学习。电脑重启后读不到固态硬盘怎么办方法一1、首先进入BIOS后,选择“IDEHDDAutoDetection”项目,看是否可以检测到硬盘的存在,并核对型号是否一致,如果正常排除硬件问题,如果还不能找到硬盘,那么就是您的硬盘损坏或连接不正确。2、如果在bios…

    2022年9月2日
  • sqlserver 视图创建索引_Oracle创建索引

    sqlserver 视图创建索引_Oracle创建索引一、索引1、添加索引createindex索引对象名on索引对应表名(表内索引对象字段名);例:需创建包含userid属性的userinfo表。createindexuseridonsystem.userinfo(userid);2、删除索引dropindex索引对象名;例:dropindexuserid;二、视图(并不是真实存在的一张表)1、创建视图createview视图名(学号,姓名,科目,成绩)asselect对应在表格中的字段名from涉

    2022年9月7日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号