图的关节点算法实现

article/2025/9/21 18:58:03

关节点:可以将一个连通分量分割成两个或多个连通分量的点。
重连通图:没有关节点的图,在重连通图中任意两点之间至少存在两条路径

关节点求法:算法较难理解,算法结合了先序深度搜索和后序深度搜索,先序深度搜索确定每个点访问的顺序,而后序深度搜索则根据先序计算的顺序确定关节点。具体递归算法步骤:
递归算法: 递归算法中,第一部分为记录结点访问次序,中间部分为调用递归函数访问子节点,第三部分为根据递归函数的退出,来确定结点的回边。
1.从vi开始,调用递归算法
2.一直递归到某个点s(该没有未被访问的邻接点),这个点有两种状况,第一种是没有回边,只有一条指向双亲的边,则记录该结点的回边值为该结点的双亲的访问顺序值,第二种是有回边,则记录该点回边值为指向最先访问的祖先的访问顺序值,退出递归函数
3.从第二步退出递归函数后,如果s结点为无回边状况,则判断s的父节点为关节点,如果为有回边状况,则s结点的回边值肯定小于双亲的访问顺序值,则将双亲的回边值也更新为该值。
4.重复2,3步骤。
在这里插入图片描述
在这里插入图片描述

代码实现:

/*** @name 得到关节点* @use 获得图的关节点,图用矩阵(二维数组)表示* @param chart* @param start 起始结点* @return points*/public static function getKeyPoint($chart, $start = 0) {$points = array($start);//已访问的结点$visited = array($start => 1);//各节点的访问顺序$low = array();//各节点的回边值$count = 1;$T = array();//保存关节点$temp = true;foreach ($chart[$start] as $key => $value) {if ($value !== 0 && !in_array($key, $points)) {self::getKeyPointDFS($chart, $key, $points, $visited, $low, $count, $T);if ($count < count($chart) && $temp) {$T[] = $start;$temp = false;}}}return $T;}public static function getKeyPointDFS($chart, $start, &$points,&$visited, &$low, &$count, &$T) {$points[] = $start;$visited[$start] = $min = ++$count;foreach ($chart[$start] as $key => $value) {if ($value == 0) {continue;}if (!in_array($key, $points)) {self::getKeyPointDFS($chart, $key, $points, $visited, $low, $count, $T);if ($low[$key] < $min) $min = $low[$key];if ($low[$key] >= $visited[$start]) $T[] = $start;} else if($visited[$key] < $min) {$min = $visited[$key];}}$low[$start] = $min;}

http://chatgpt.dhexx.cn/article/Eoewg4GI.shtml

相关文章

重磅!图灵奖,公布!

来源&#xff1a;青塔 3月22日&#xff0c;现年76岁的以太网发明者、3Com公司创始人鲍勃梅特卡夫&#xff08;Bob Metcalfe&#xff09;荣获2022年图灵奖&#xff0c;这一计算机科学的最高荣誉&#xff0c;表彰他为引领大众进入超级连接时代所做的贡献。 鲍勃梅特卡夫发明的以太…

图神经网络_03-基于图神经网络的节点表征学习

基于图神经网络的节点表征学习 图节点预测或边预测任务过程&#xff1a;使用图神经网络来生成节点表征&#xff0c;并通过基于监督学习的对图神经网络的训练&#xff0c;使得图神经网络学会产生高质量的节点表征。 高质量的节点表征能够用于衡量节点的相似性&#xff0c;同时高…

基于图神经网络的节点表征学习

节点表征 在图的节点预测或者边预测任务中, 需要先构造节点表征, 这一点尤为重要 节点的属性可以是类别型, 也可以是数值型 以下分别使用MLP, GCN, GAT, GraphSage来进行节点预测 1.获取并分析数据集、构建一个方法用于分析节点表征的分布2.使用MLP进行节点预测3.分别使用GCN,…

图网络算法——信息传递和节点分类

图网络算法——信息传递和节点分类 在开始介绍下面的算法问题之前&#xff0c;我们首先从提出一个问题&#xff0c;给定一个某些节点具有分类标签的网络结构&#xff0c;我们应该如何去预测网络中其他节点的标签呢&#xff1f; 这种节点分类的方式称为半监督的节点分类。 一、…

网络图结构中节点度分布的散点图

import matplotlib.pyplot as plt #导入科学绘图包 import networkx as nx Gnx.random_graphs.barabasi_albert_graph(1000,10)#生成n1000,m10的无标度的图 print ("某个节点的度:",G.degree(0))#返回某个节点的度 # print("所有节点的度:",G.degree())#返…

[图神经网络] 图节点Node表示---GAT

一. 概括 图神经网络已经成为深度学习领域最炽手可热的方向之一。本文提出Graph Attention Networks(GATs)&#xff0c;将注意力机制应用到图神经网络中&#xff0c;每一层学习节点每个邻居对其生成新特征的贡献度&#xff0c;按照贡献度大小对邻居特征进行聚合&#xff0c;以…

图灵 | 一站式图应用平台

点击「京东金融技术说」可快速关注 「引言」随着社会的日益发展&#xff0c;数据急剧增长&#xff0c;而数据背后的关系的挖掘的就显得更加重要&#xff0c;目前越来越多的人通过图技术去挖掘海量数据中的价值&#xff0c;却没有一个统一的平台&#xff0c;而【图灵】是为此而诞…

图神经网络基础--基于图神经网络的节点表征学习

图神经网络基础–基于图神经网络的节点表征学习 引言 在图节点预测或边预测任务中&#xff0c;首先需要生成节点表征&#xff08;Node Representation&#xff09;。我们使用图神经网络来生成节点表征&#xff0c;并通过基于监督学习的对图神经网络的训练&#xff0c;使得图神…

图神经网络(三):节点分类

节点分类问题 数据集&#xff1a;Cora 包含七类学术论文&#xff0c;论文与论文之间存在引用和被引用的关系 数据集导入 from torch_geometric.datasets import Planetoid from torch_geometric.transforms import NormalizeFeaturesdatasetPlanetoid(rootdataset,nameCora,…

基于图神经网络的节点表征

我们使用图神经网络来生成节点表征&#xff0c;并通过基于监督学习的对图神经网络的训练&#xff0c;使得图神经网络学会产生高质量的节点表征。高质量的节点表征能够用于衡量节点的相似性&#xff0c;同时高质量的节点表征也是准确分类节点的前提。 在节点预测任务中&#xf…

sg、xb分析

文章目录 流程分析远程调用本地调用分析结果 甚感欣慰&#xff0c;系统的写一下教程&#xff0c;希望能够帮助到大家。 流程分析 第一步&#xff0c;分析流程。 通过堆栈信息点到源码中并断点。 apply方法能劫持另外一个对象的方法&#xff0c;继承另外一个对象的属性 apply方…

Intel SGX入坑必读——《Intel SGX Explained》(个人翻译,持续更新中)

写在最前 入坑Intel SGX之前先打好基础。《Intel SGX Explained》就是入坑必读之一&#xff0c;有助于理解Intel SGX的原理。这里仅作个人翻译&#xff0c;便于加深理解&#xff0c;也方便感兴趣的小伙伴一起学习交流。 原文下载地址&#xff1a;《Intel SGX Explained》原文 …

Intel SGX入门(一)——背景篇

为什么要Intel SGX&#xff1f; 以云环境为例子&#xff0c;云租户会将自己的产品部署在云平台中&#xff0c;但是云平台现在普遍认为是一个不可信的地方&#xff0c;因为可能会有云平台管理者、同一云主机其他租户的恶意攻击&#xff0c;也可能云平台本身存在漏洞&#xff0c…

windows下使用SGX

前言&#xff1a; 这个是简单对于毫无经验的人的入门博客&#xff0c;杠精勿扰&#xff0c;大神离开。 我觉得每当下载一个新的工具的时候要先看一看他自己带的文档。 何谓SGX&#xff1f;不解释&#xff0c;您可以去看其介绍&#xff0c;百度搜搜即可。 win10如何下载SGX&a…

Intel SGX学习笔记(1):虚拟机Ubuntu20.04配置Intel SGX环境

写在前面 本教程仅仅适用虚拟机下的Ubuntu20.04配置Intel SGX环境&#xff0c;若是双系统下的Ubuntu系统&#xff0c;请看最后的参考连接。若是window10自带的ubuntu&#xff0c;也就是从微软商店下载的ubuntu系统&#xff0c;这个我到make preparation指令就开始疯狂报错&…

Windows10下使用Intel SGX功能(四):SGX技术分析

参考文献 Overview of Intel SGX - Part 1, SGX InternalsDeveloper Guide: Intel Software Guard Extensions (Intel SGX)&#xff08;最新版&#xff09;Overview of Intel SGX - Part 2, SGX Externals SGX 介绍 SGX 发展情况 SGX技术目前已经发展到SGX2。比如安全证明功…

可信启动、安全启动:SGX、TrustZone、SecureEnclave

最近在公众号上看到了一篇文章&#xff0c;算是又丰富了自己的安全方面的眼界。 最近看公众号取代了小视频、知乎这些东西。以前是真的不喜欢碎片化的东西&#xff0c;看什么学什么总是要找到书籍。但是这样的做法太过的极端&#xff0c;因为有时候有些事是两面性的。比如像安全…

Intel SGX 技术初探

最近公司需要开发一款使用intel 的移动终端&#xff0c;需要用到SGX技术&#xff0c;特此将调研和整理的相关资料放置于下&#xff0c;欢迎交流。 一、SGX技术背景 1.1 SGX技术定义 SGX全称Intel Software Guard Extensions&#xff0c;顾名思义&#xff0c;其是对因特尔体系…

Intel SGX入门(二)——SGX应用篇

大概了解SGX以后&#xff0c;SGX应用有哪些&#xff1f; 第一种&#xff0c;SGX应用于服务器端&#xff0c;云端 这一类个人觉得很需要结合代码、它们所描述的行业需求和以前的行业产品去考虑问题&#xff0c;毕竟是应用&#xff0c;不然可能体会不到精髓。 我对SGX应用的理解…

Intel SGX Explained

文章目录 SGX新增Abstract第一章 概括1.1 SGX简介1.2 大纲和问题发现 第二章 Intel体系架构背景知识2.1 Overview2.2 计算模型2.3 软件权限级别2.4 地址空间2.5 地址转换2.5.1 地址转换概念2.5.2 地址转换和虚拟化2.5.3 页表属性 2.6 执行上下文2.7 段寄存器2.8 特权级别转换2.…