002图的基本概念与表示方法

news2025/1/31 8:13:21

文章目录

  • 一. 图的组成
  • 二. 本体图
    • 2.1 什么是本体图
    • 2.2 怎么设计本体图
  • 三. 图的种类
    • 3.1 按连接是否有向分
    • 3.2 按本体图分
    • 3.3 按连接是否带权重分
  • 四. 节点连接数(节点的度)
    • 4.1 无向图节点的度
    • 4.2 有向图节点的度
  • 五. 图的表示方法
    • 5.1 邻接矩阵
    • 5.2 连接列表、邻接列表
  • 六. 图的连通性


一. 图的组成

  • 图(graph,G)由节点(nodes,N)与连接(edges,E)组成。

二. 本体图

2.1 什么是本体图

  • 设计本体图是设计图的第一步。
  • 即在设计图之前,要明确可能存在的节点种类以及连接种类。
  • 下图为某医疗知识图谱的本体图。
    在这里插入图片描述
  • 在设计好本体图后导入数据即可生成图。
  • 下图即为根据上图所生成的医疗知识图谱(部分)。
    在这里插入图片描述

2.2 怎么设计本体图

  • 首先,原则是取决于我们想解决什么问题;
  • 其次,一般本体图是唯一的、无歧义的。比如,人际关系网,其节点就是人物,连接就是是否有关系;
  • 再次,像前面医疗知识图谱的例子,节点有很多种,关系也有很多种;
  • 总之,根据目标任务灵活地设计本体图。

三. 图的种类

3.1 按连接是否有向分

  • 有向图:如:地铁线路图。
  • 无向图:如:微博关注图。

3.2 按本体图分

  • 普通图:节点和连接的种类都只有一种;
  • 异质图:节点和连接的种类不止一种;
  • 二分图:节点种类为二的特殊异质图。

注:可以把二分图展开成两个图来分别做处理。

3.3 按连接是否带权重分

  • 连接带权重的图:字面意思连接带权重。
  • 两节点间存在多条通路的:权重是各通路权重的和。

四. 节点连接数(节点的度)

  • 节点的度可以作为衡量节点重要性的指标。

4.1 无向图节点的度

  • 一个节点存在多少个连接即为该节点的度。
  • 无向图的平均度为 K ˉ = 2 E N \bar{K} = \frac{2E}{N} Kˉ=N2E 。其中E为总连接个数,N为总结点个数。

4.2 有向图节点的度

  • 有向图节点的度分为入度和出度。
  • 入度:是指向该节点的连接个数。
  • 出度:是该节点发出的连接个数。
  • 整个节点的的度就是入度与出度的和。
  • 入度为0的节点称为源(source)节点,出度为0的节点称为汇聚(sink)节点。
  • 有向图的平均度为 K ˉ = E N \bar{K} = \frac{E}{N} Kˉ=NE,平均出度与平均入度是相同的。

五. 图的表示方法

5.1 邻接矩阵

  • 有连接的地方为1,无连接的地方为0.
  • 特点:无向图的邻接矩阵是对称阵,有向图的邻接矩阵是非对称阵。
  • 对于无向图,连接总数为邻接矩阵逐元素求和的一半;节点的度沿行或列求和均可。

注意:若存在自连接,则求连接总数时自连接的总数不用除以二。

  • 对于有向图,连接总数为邻接矩阵逐元素求和;节点的入度为按列求和,出度为按行求和。
    在这里插入图片描述

5.2 连接列表、邻接列表

邻接矩阵多为稀疏矩阵,这造成了存储空间的浪费。

  • 连接列表:只记录存在连接的节点对。
  • 邻接列表:只记录各节点发出的连接。
  • 邻接列表在连接列表的基础上更进一步的压缩存储需求。
    在这里插入图片描述

六. 图的连通性

  • 对于无向图,如果任意两节点都能互达则称为连通图;否则称为非连通图,非连通图的极大连通子图称为连通域。
  • 对于有向图,如果任意两节点都能互达则称为强连通图;若非强连通图除去方向后是连通图,则称为弱连通图。
  • 强连通域(SCC):即符合强连通图定义的极大子图。对于一张图来说做SCC分解是十分必要的。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/965020.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

图:有向无环图(DAG)

1.有向无环图的定义 有向无环图:若一个有向图中不存在环,则称为有向无环图。 简称DAG图(Directed Acyclic Graph) 顶点中不可能出现重复的操作数。 2.有向无环图的应用 1.描述算数表达式 用有向无环图描述算术表达式。 解题步骤: 把各个操作数不重…

【研究开源机器臂】(1):参加机器人展览,突然来了兴趣要做个机器臂来研究下,先进行产品调研。研究其他人的方案,进行技术调研。

1,关于 6 轴机器人开源项目 使用步进电机做的开源机器人项目: https://github.com/SkyentificGit/SmallRobotArm 按照这个关键字进行搜索,已经有很多人研究成功了。 3D打印6轴机械臂-自制 2,然后是小点的 3 轴机器人 github项…

2023年03月 C/C++(六级)真题解析#中国电子学会#全国青少年软件编程等级考试

C/C编程(1~8级)全部真题・点这里 第1题:波兰表达式 波兰表达式是一种把运算符前置的算术表达式,例如普通的表达式2 3的波兰表示法为 2 3。波兰表达式的优点是运算符之间不必有优先级关系,也不必用括号改变运算次序&am…

async的用法

有以下几种形式 //从c11到c17有 template< class Function, class... Args > std::future<typename std::result_of<typename std::decay<Function>::type(typename std::decay<Args>::type...)>::type>async( Function&& f, Args&…

el-select 选择一条数据后,把其余数据带过来

1. 案例&#xff1a; ps: 票号是下拉框选择&#xff0c;风险分类、场站名称以及开始时间是选择【票号】后带过来的。 2. 思路: 使用官网上给的方法&#xff0c;选择之后&#xff0c;触发change方法从而给其余字段赋值 3. 代码 <el-form-itemlabel"票号&#xff1a;&…

C++网狐服务器引入开源日志库spdlog

很多人对日志库不以为然&#xff0c;包括网狐这种十几年的公司都不重视&#xff0c;其实日志库记录的东西能在线上出问题时高效解决&#xff0c;特别是别人写的东西&#xff0c;人又走了&#xff0c;出了问题&#xff0c;还可以用日志分析快速解决。要是没有日志记录&#xff0…

嵌入式开发-串口通信介绍

串口通信&#xff08;Serial Communications&#xff09;是一种串行数据传输方式&#xff0c;它将数据一位一位地顺序传输&#xff0c;而不是并行传输。这种方式相比并行传输更为节省空间和成本&#xff0c;因此在现代工业和嵌入式系统中得到广泛应用。 串口通信通常使用RS-23…

代码随想录算法训练营第五十三天 | 1143.最长公共子序列,1035.不相交的线,53. 最大子序和 动态规划

代码随想录算法训练营第五十三天 | 1143.最长公共子序列&#xff0c;1035.不相交的线&#xff0c;53. 最大子序和 动态规划 1143.最长公共子序列1035.不相交的线53. 最大子序和 动态规划 1143.最长公共子序列 题目链接 视频讲解 给定两个字符串 text1 和 text2&#xff0c;返回…

Qt使用Json

包含目录&#xff1a; #include <QJsonObject> #include <QJsonDocument> #include <QByteArray> #include <QFile> #include <QJsonArray>基本结构&#xff1a; 写json QJsonObject studentobj;QJsonArray arrarydata;QJsonObject subdata;…

【Java核心知识】ThreadLocal相关知识

ThreadLocal 什么是ThreadLocal ThreadLoacal类可以为每个线程保存一份独有的变量&#xff0c;该变量对于每个线程都是独占的。实现原理为每个Thread类中包含一个ThreadHashMap&#xff0c;key为变量的name&#xff0c;value为变量的值。 在日常使用中&#xff0c;我们可以通…

javaScipt

javaScipt 一、JavaScript简介二、javaScript基础1、输入输出语法2、变量3、常量4、数据类型4.1、数字型 number4.2、字符串类型 string4.3、布尔类型 boolean4.4、未定义类型 undefined4.5、null 空类型4.6、typeof 检测变量数据类型 5、数据类型转换5.1、隐式转换5.2、显示转…

电压跟随器

运算放大器&#xff0c;一般被硬件工程师用于处理模拟信号的理想器件&#xff0c;如微弱的电流信号以及微弱的电压信号&#xff0c;通过运算放大器的相应电路处理就能得到增强型的电流型号与电压信号&#xff1b;今天电路一点通就和小伙伴们一起学习总结下运放放大器常用的典型…

2023年单企业云盘最新产品榜单发布

企业云盘产品为企业提供了高效、安全、可靠的文件存储和共享服务&#xff0c;因此受到了众多企业用户的喜爱。本文参考各个产品测评网站&#xff0c;总结了几款备受好评的企业云盘产品&#xff0c;供您参考。 1, Zoho Workdrive 2, Google Drive 3, OneDrive 4, Dropbox 5…

vcruntime140_1.dll丢失的三个修复方法,【vcruntime140_1修复工具下载】

大家好&#xff01;今天&#xff0c;我将为大家介绍一个关于计算机vcruntime140_1.dll丢失的问题。在我们的日常生活和学习中&#xff0c;计算机出现问题是常有的事情。有时候&#xff0c;我们可能会遇到一些令人头疼的问题&#xff0c;比如vcruntime140_1.dll丢失。那么&#…

你知道用Woof创建的Linux吗?

Quirky 8.2 已发布&#xff0c;它是 Puppy Linux 的姊妹项目&#xff0c;是用一份叫 Woof 的定制工具创建的 Linux 发行。 新版本 Quirky 8.2 运行在 64 位的 x86 计算机上&#xff0c;主要提供了针对以前的 8.x 版本的增量改进。 Quirky Linux 8.2 x86_64 的代号是Xerus&…

【ROS 04】ROS运行管理

ROS是多进程(节点)的分布式框架&#xff0c;一个完整的ROS系统实现&#xff1a; 可能包含多台主机&#xff1b; 每台主机上又有多个工作空间(workspace)&#xff1b; 每个的工作空间中又包含多个功能包(package)&#xff1b; 每个功能包又包含多个节点(Node)&#xff0c;不同的…

全球免费编程教育网站:Code.org

全球免费编程教育网站&#xff1a;Code.org 官网地址注册使用 你还在为小朋友的编程教育而发愁吗&#xff1f; 你还在为小朋友放假无聊而头疼吗&#xff1f; 他来了他来了&#xff0c;全球免费编程教育网站来了。 2013年成立的Code.org是一个非营利组织。 它致力于为年轻女子、…

Linux学习之vsftpd虚拟用户

/etc/vsftpd/vsftpd.conf里边有几项跟vsftpd虚拟用户有关的主要配置&#xff1a; guest_enableYES&#xff0c;允许匿名用户登录vsftpd guest_usernamevirtual&#xff0c;指定虚拟用户账户为virtual&#xff0c;就是把虚拟用户映射成Linux本地用户&#xff0c;这样可以使用Lin…

(本文由AI辅助编写)想买保时捷敞篷跑车的看过来!

&#xff08;本文由AI辅助编写&#xff09;想买保时捷敞篷跑车的看过来&#xff01; 我算是后知后觉的&#xff0c;Chat6PT去年被人类发明后&#xff0c;我一直不看好他&#xff0c;可是怎奈周围人都在劝我体验一下&#xff0c;于是后来我借着ONLYOFFICE这个软件的Chat6PT功能…

Python学习之四 数据输入与输出

(一) 脚本编程 前面的章节,组要学习了一些简单的Python编程,使用的是交互式解释器,本章节将开始进行脚本编程。可以使用多种编辑器或者IDE完成编码,主要使用vim。 参考前续小节的写法,我们给a、b分别赋值3和5。 在终端运行程序后发现,没有任何输出。这就是本次我们将要…