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分解是十分必要的。

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

聊一下互联网红利并牢牢抓住

关于互联网红利,想必大家并不陌生 在过去的十年,互联网诞生了很多野蛮生长的企业:比如:美团,滴滴,小米,字节等 雷军有句名言,猪站在风口上,都能飞起来 就是如此 自古有三…

3年功能测试经验,面试想拿到15k很难吗?

一直觉得经验多,无论在哪都能找到满意的工作,但是现实却是给我打了一个大巴掌!事后也不会给糖的那种... 个人情况 大概介绍一下个人情况,男,本科,三年多测试工作经验,一毕业因为不成熟的经验以…

c#事件(event)

概述: C#中的事件是一种特殊的委托,它用于实现观察者模式,允许对象在特定事件发生时通知其他对象。 以下是使用C#事件的示例: 首先,定义一个包含事件的类: public class EventPublisher {// 声明一个事…

算法:分治思想处理归并递归问题

文章目录 算法原理实现思路典型例题排序数组数组中的逆序对计算右侧小于当前元素的个数 总结 算法原理 利用归并思想进行分治也是很重要的一种思路,在解决逆序对的问题上有很大的需求空间 于是首先归并排序是首先的,归并排序要能写出来: c…

【ES6】Promise.all用法

Promise.all()方法用于将多个 Promise 实例,包装成一个新的 Promise 实例。 const p Promise.all([p1, p2, p3]);上面代码中,Promise.all()方法接受一个数组作为参数,p1、p2、p3都是 Promise 实例,如果不是,就会先调…

网站搭建最简化的引导操作 | 云服务器的购买选用 | 域名的选用 | 网站的上线和备案。

本文章面向对象为网站搭建的初次操作者,主要是一些自主使用的网站,为小白做为引导的教程。 一, 网站搭建的流程 1,服务器的租赁 2,购买域名 3,对域名进行备案 4,网站内部的搭建,上线…

六、vim编辑器的使用

1、编辑器 (1)编辑器就是一款软件。 (2)作用就是用来编辑文件,譬如编辑文字、编写代码。 (3)Windows中常用的编辑器,有自带的有记事本(notepad),比较好用的notepad、VSCode等。 (4)Linux中常用的编辑器,自带的最古老的vi&…

如何使用C++11原子操作实现自旋锁

什么是自旋锁? C自旋锁是一种低层次的同步原语,用于保护共享资源的访问。自旋锁是一种轻量级的锁,适用于短时间的资源锁定。 自旋锁的特点:当一个线程尝试获取已经被另一个线程占有的自旋锁时,这个线程会进入一个循环…

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

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

初试Eureka注册中心

Eureka是spring cloud中的一个负责服务注册与发现的组件。遵循着CAP理论中的A(可用性)P(分区容错性)。一个Eureka中分为eureka server和eureka client。其中eureka server是作为服务的注册与发现中心。 搭建eureka服务 引入eureka依赖 引入SpringCloud为eureka提供的starter依…

响应式图片与 CSS image-set

响应式图片 前置知识 art direction problem光栅图像与矢量图像 raster image and vector images img 能否担此重任 sizessrcset实际看一看 picture: img 的好姐妹 source实际看一看 CSS image-set 语法兼容性 其他注意事项 响应式图片 图片在网页中占据了 超过 60% 的浏览带…

java从入门到起飞(六)——用Socket实现网络通信

文章目录 背景网络编程网络编程三要素 2.DatagramSocket之UDP通信程序2.1 UDP发送数据2.2UDP接收数据2.3 3. Socket之TCP通信程序3.1TCP发送数据3.2TCP接收数据 背景 网络编程 ● 计算机网络 是指将地理位置不同的具有独立功能的多台计算机及其外部设备,通过通信线…