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

文章目录

  • 一. 图的组成
  • 二. 本体图
    • 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分解是十分必要的。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Swift使用PythonKit调用Python

打开Xcode项目。然后选择“File→Add Packages”,然后输入软件包依赖链接: ​https://github.com/pvieito/PythonKit.git https://github.com/kewlbear/Python-iOS.git Python-iOS包允许在iOS应用程序中使用python模块。 用法: import Pyth…

在Mac 上安装flutter 遇到的问题

准备工作 1、升级Macos系统为最新系统 2、安装最新的Xcode 3、电脑上面需要安装brew https://brew.sh/ 4、安装chrome浏览器(开发web用) 下载Flutter、配置Flutter环境变量、配置Flutter镜像 下载Flutter SDK https://docs.flutter.dev/release/archive?tabmacos 根据自己…

Spring Cloud--从零开始搭建微服务基础环境【二】

😀前言 本篇博文是关于Spring Cloud–从零开始搭建微服务基础环境【二】,希望你能够喜欢 🏠个人主页:晨犀主页 🧑个人简介:大家好,我是晨犀,希望我的文章可以帮助到大家,…

vue中使用window.open打开assets文件夹下的pdf文件

需求:系统有个操作手册,点击会在浏览器新开个窗口并打开pdf文件。这个pdf文件存储在本地assets文件夹中。 文件结构: 注:直接使用window.open(文件路径)不能打开,需要在vue.config.js中配置所需文件 引入图中红框中的…

YOLOV8模型使用-检测-物体追踪

这个最新的物体检测模型,很厉害的样子,还有物体追踪的功能。 有官方的Python代码,直接上手试试就好,至于理论,有想研究在看论文了╮(╯_╰)╭ 简单介绍 YOLOv8 中可用的模型 YOLOv8 模型的每个类别中有五个模型用于检…

从零开始,探索C语言中的字符串

字符串 1. 前言2. 预备知识2.1 字符2.2 字符数组 3. 什么是字符串4. \04.1 \0是什么4.2 \0的作用4.2.1 打印字符串4.2.2 求字符串长度 1. 前言 大家好,我是努力学习游泳的鱼。你已经学会了如何使用变量和常量,也知道了字符的概念。但是你可能还不了解由…

html5——前端笔记

html 一、html51.1、理解html结构1.2、h1 - h6 (标题标签)1.3、p (段落和换行标签)1.4、br 换行标签1.5、文本格式化1.6、div 和 span 标签1.7、img 图像标签1.8、a 超链接标签1.9、table表格标签1.9.1、表格标签1.9.2、表格结构标签1.9.3、合并单元格 1.10、列表1.10.1、ul无序…

大数据Flink实时计算技术

1、架构 2、应用场景 Flink 功能强大,支持开发和运行多种不同种类的应用程序。它的主要特性包括:批流一体化、精密的状态管理、事件时间支持以及精确一次的状态一致性保障等。在启用高可用选项的情况下,它不存在单点失效问题。事实证明&#…

【Python】从入门到上头— IO编程(8)

文章目录 一.IO编程是什么二.文件读写1.读取文件2.file-like Object二进制文件字符编码 3.写文件file对象的常用函数常见标识符 三.StringIO和BytesIO1.StringIO2.BytesIO 四.操作文件和目录五.序列化和反序列化1.pickle.dumps()2.pickle.loads()3.JSON 一.IO编程是什么 IO在计…

38、springboot为 spring mvc 提供的静态资源管理,覆盖和添加静态资源目录

springboot为 spring mvc 提供的静态资源管理 ★ Spring Boot为Spring MVC提供了默认的静态资源管理: ▲ 默认的四个静态资源目录: /META-INF/resources > /resources > /static > /public ▲ ResourceProperties.java类的源代码&#xff0…

SparkCore

第1章 RDD概述 1.1 什么是RDD RDD(Resilient Distributed Dataset)叫做弹性分布式数据集,是Spark中最基本的数据抽象。代码中是一个抽象类,它代表一个弹性的、不可变、可分区、里面的元素可并行计算的集合。 RDD类比工厂生产。 …

十一、MySQL(DQL)聚合函数

1、聚合函数 注意:在使用聚合函数时,所有的NULL是不参与运算的。 2、实际操作: (1)初始化表格 (2)统计该列数据的个数 基础语法: select count(字段名) from 表名; ;统…

DevEco Studio 配置

首先,打开deveco studio 进入首页 …我知道你们想说什么,我也想说 汉化配置 没办法,老样子,先汉化吧,毕竟母语看起来舒服 首先,点击软件左下角的configure,在配置菜单里选择plugins 进入到插件页面, 输入chinese,找到汉化插件,(有一说一写到这我心里真是很不舒服) 然后点击o…

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

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

WireShark流量抓包详解

目录 Wireshark软件安装Wireshark 开始抓包示例Wireshakr抓包界面介绍WireShark 主要界面 wireshark过滤器表达式的规则 Wireshark软件安装 软件下载路径:wireshark官网。按照系统版本选择下载,下载完成后,按照软件提示一路Next安装。 Wire…

【流量分析】Godzilla分析

一、哥斯拉流量的特点: 1.User-Agent (弱特征) 哥斯拉客户端使用JAVA语言编写,在默认的情况下,如果不修改User-Agent,User-Agent会类似于Java/1.8.0_121(具体什么版本取决于JDK环境版本)。但是哥斯拉支持…

Python爬虫实战案例——第三例

文章中所有内容仅供学习交流使用,不用于其他任何目的!严禁将文中内容用于任何商业与非法用途,由此产生的一切后果与作者无关。若有侵权,请联系删除。 起点中文网月票榜加密字体处理 字体加密的原理:就是将一种特定的…

【图解算法数据结构】分治算法篇 + Java代码实现

文章目录 一、重建二叉树二、数值的整数次方三、打印从 1 到最大的 n 位数四、二叉搜索树的后序遍历序列五、数组中的逆序对 一、重建二叉树 public class Solution {int[] preorder;HashMap<Integer, Integer> dic new HashMap<>();public TreeNode buildTree(in…

微信开发之一键创建标签的技术实现

简要描述&#xff1a; 添加标签 请求URL&#xff1a; http://域名地址/addContactLabel 请求方式&#xff1a; POST 请求头Headers&#xff1a; Content-Type&#xff1a;application/jsonAuthorization&#xff1a;login接口返回 参数&#xff1a; 参数名必选类型说明…

Matlab(GUI程式设计)

目录 1.MatlabGUI 1.1 坐标区普通按钮 1.1.1 对齐组件 1.1.2 按钮属性 1.1.3 脚本说明 1.1.4 选择呈现 1.3 编译GUI程序 在以前的时候&#xff0c;我们的电脑还是这样的 随着科技的不断进步&#xff0c;我们的电脑也发生着翻天覆地的改变1990s&#xff1a; 在未来&#xff0c…