DIL Voterank

news2024/11/15 20:10:49

 这也是一篇对于voterank的改编,属于改进算法,功能是识别复杂网络中的一系列最有影响的点。本篇论文主要在应用在无向,无权值的图。同时对于有向的或者有权值的图,我们可以使用WVoterank,或者Voterank Plus这在之前也实现过了,再次就不多提了。下面叙述一下我对本篇论文的思考以及疑问。


首先,必须先提一下经典voterank,主要认为有三个方面的不合理。

1.将所有节点的能力视为相同的,没有区分不同节点能力不同的问题。

2.投票过程中,节点的得分仅通过汇总邻居的投票能力来的,没有反映不同邻居的贡献不同。

3.削弱方面,只削弱了最近邻居的投票能力,抑制不足。

DIL算法主要改进上述的问题,下面也相对上面问题总结一下DIL。

1.利用度值重新定义各节点的初始投票能力。(和plus的定义类似)

2.引用DIL方法,主要改进算法在scores方面的计算,更好的反映节点的重要性。

3.优化弱化机制,弱化每轮的1阶邻居和2阶邻居的投票能力。

下面根据该算法的流程,介绍一些重要概念。

目录

1.DIL Method

2.Initialize voting ability.

3.Voting phase.  

4.Update node attribute values.

5.伪代码的实现和理解


1.DIL Method

 这个是先定义一条边的重要程度,imporance of vertex定义为Imn,这个数值就相当于这个边的一个性质了。在这个公式里面有一个系数p,比较的有意思,代表的是以mn为一个边所围成的三角形的个数。所以这对每一条边而言,都是各不相同的。特此,我去找了相关的资料,发现这个思想比较重要,这个算法主要更好识别的是桥节点的重要性,我也认为这在复杂网络中很重要。

 基于次,将一个节点的重要性和这个节点的度和边的重要性相结合。下面我想着重说一下系数p,我在前几次阅读文献的时候,以为这就是一个普通的系数,后面才发现其重要性。

对于这两幅无向图,根据上面公式,我们分别计算Ie45的值。

 

在这里,我也就直接引用结果了,可以看出,因为节点3和5之间有另一条边,导致他们的边重要性差异特别大,这也就是p的作用,p算的是以edge45为边的三角形的个数,图a中,p为0,图b中,存在一个以edge45为边的三角形,所以p为1,这会导致edge45的重要程度严重下降。原因也很明显,在a中V4到V5只有一条路,属于必通关键桥,而在图b中,有另外一条可以中转的路,直达的那条路也就显得不是非常重要了。 对于p的计算,实际上也很简单,就是算该边的两个节点的共同邻居节点的数量。

所以,我们就可以度量出来一条边的重要程度。但是假如我们根据一个节点连接的所有边的重要程度的和来度量一个节点的重要性,这是合理的吗。下面也有一个例子,可以说明,我们不能只根据边的重要性来度量一个节点的重要程度。

 对于这个图,我们计算节点V2和V5的临边的重要性。

根据公式3计算,我们通过累加,得出节点v2和v5的累计和。发现v2的重要程度大于v5??这显然是不符合逻辑的,因为感觉v2那里都属于边界了,v5那里相当于中心繁华地带,怎么可能重要程度反而更低嘛。因此,我们不能简单的累加边的权来作为节点的重要评价标准。因而我们下面又引出了一个新的概念。

至此,我们就将DIL计算节点重要程度就完美解决了,而且对比于其他算法,有着更优和更合理的表现。同时我们得到了Lv数据结构,里面表示的local importance of vertex也就是节点的一个重要性度量。后续我们还会再用到

 

在后面,还会根据目前的Lv进行一个数据处理。得到的是最终的Lv结果。 

2.Initialize voting ability.

在传统voterank中,都暴力的设置为1,显然不合理,在本篇文章中,根据当前度和最大度的比值来作为本节点的能力体现。

3.Voting phase.  

 我们做了这么多的准备工作,下面就要进行节点的分数计算了。属于核心的计算了。

 对于每一轮的计算,一个节点的分数为,累加所有邻居节点的投票能力和重要性的乘积,最后在除以所有当前节点的重要性平方和的开根。感觉叙述起来很麻烦,但是按照公式写,还是很好写出来的。对于下面的平方和开根,实际上,从数学角度分析,这个结果就是一系列的ability相加,因为后面的量级为0,只提供一个系数作用。这个算法运行完,就可以得到相应节点的得分了,也可以挑选得分最大节点了。

4.Update node attribute values.

正如上面所讲,对一阶邻居和二阶邻居分别进行抑制。抑制元素k为平均度数,根据邻近阶数不同,抑制的程度也不同,这样相比经典voterank,可以更利于分散挑选下一个重要节点。

5.伪代码的实现和理解

这是相关伪代码部分,和我上面讲解的相差不多。 但是实现起来,我发现有几个小问题,在17,20行,伪代码解释的是更新scores里面的分数,但是一个循环过后第12行的操作不会覆盖结果吗?那17,20的作用在哪里。

然后下图是对于第一次计算scores后的详细数据。(论文数据)

 下面这个是我代码跑出来的结果,和论文方面还是有点差距的,比如对于node2的Lv计算,但是大部分的差距在0.1左右,不知道是不是在哪个细节没处理好。

 

 还有一个问题就是,在上面的图当中,依据我的代码运行,我选取了前5个最高分数的节点。

但是依据论文里面,第二个被选择的节点应该为17号,而不是1号。

可能是我编写的代码有问题。 先在这记录一下,等我找出来了原因,再来更新本文吧。

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

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

相关文章

2.Redis 通用命令

Redis 中最核心的两个命令: set 作用:设置 key 对应的 value 值并存储进去。若key已包含一个值,则无论其类型如何,都会覆盖该值。在SET操作成功时,将丢弃与密钥相关联的任何先前生存时间。 对于上述这里的 key和val…

计算机竞赛 基于情感分析的网络舆情热点分析系统

文章目录 0 前言1 课题背景2 数据处理3 文本情感分析3.1 情感分析-词库搭建3.2 文本情感分析实现3.3 建立情感倾向性分析模型 4 数据可视化工具4.1 django框架介绍4.2 ECharts 5 Django使用echarts进行可视化展示5.1 修改setting.py连接mysql数据库5.2 导入数据5.3 使用echarts…

代码浏览器和分析器:Source Insight 4.0 Crack

Source Insight 是一个强大的面向项目的编程编辑器、代码浏览器和分析器,可帮助您在工作和计划​​时理解代码。Source Insight 内置了针对 C/C、C#、Java、Objective-C 等的动态分析。 了解代码 快速学习现有代码库,并加快新项目的进度。通过查看函数和…

1688API技术解析,实现获得1688商品详情

要实现获得1688商品详情,你需要使用1688 API。1688 API是阿里巴巴旗下的开放平台,它提供了一套丰富的接口,可以让开发者通过编程的方式获取到1688网站上的商品信息。 首先,你需要在阿里开放平台注册一个账号,并创建一…

R语言绘图相关函数(含实例)

目录 plot:可用于创建多种类型的图形 dev.new():新建画板 hist:绘制直方图 dotchart:绘制点图的函数 pie:绘制饼图 pair:绘制散点图矩阵 boxplot:绘制箱线图 scatterplot3D: 绘制三维散点图 par:修…

【UE5】虚幻5教程-如何解决场景远处植被没有阴影

没有阴影的远处植被 下面是解决的方法。 首先打开项目设置 项目设置 点击左侧的渲染 渲染 在框内输入“距离”,并选择生成距离场。 光源内添加“定向光源”,如果已有可以忽略。 点击“directional light"并在下方找到"距离场阴影&qu…

4G显存即可使用SDXL:离线、开源、免费#Fooocus初体验

Midjourney CEO | David Holz, 2019 : 用户可以忘记所有这些复杂的技术参数,只享受人与计算机之间的交互,“探索新的思维媒介,扩展人类的想象力” Fooocus 用开源和离线的方式挑战 Midjourney。Fooocus 是一款开源的图像生成项目…

Linux操作系统--网络配置(1)

1.网络连接测试 我们在linux操作系统上进行环境搭建的时候,配置网络信息是一个基本且必不可少的操作。那么下面我们来学习一下Linux中相关的网络操作。 (1).查看主机windows操作系统中的IP地址。使用指令ipconfig可以实现在windows操作系统中网络信息的查看,如下所示: (2)…

android系统启动流程之init启动分析

先根据上图来描述下安卓整个系统的启动流程: 当上电时,系统先执行BootRom, 加载引导程序执行。 然后进入bootloader,在安卓系统中基本上这个bootloader是uboot, 通过uboot引导启动内核,此时运行在kernel空间,这时的i…

探索数据的维度:多元线性回归在实际应用中的威力

文章目录 🍀引言🍀什么是多元线性回归?🍀多元线性回归的应用🍀构建多元线性回归模型的步骤🍀R-squared(R平方)🍀多元线性回归案例---波士顿房价 🍀引言 当谈…

开源软件与知识产权:需要注意什么?

🌷🍁 博主猫头虎 带您 Go to New World.✨🍁 🦄 博客首页——猫头虎的博客🎐 🐳《面试题大全专栏》 文章图文并茂🦕生动形象🦖简单易学!欢迎大家来踩踩~🌺 &a…

【Kaggle】使用Kaggle快速下载GitHub等国外网站的文件|GitHub下载加速

痛点 很多时候直接从GitHub或者其他国外网站下载文件速度会很慢 所以这里就提供一个利用Kaggle加速GitHub下载文件的方法 解决方法 Kaggle是什么? 感兴趣的可以看一下这个,不看也不影响 怎么做 首先登录kaggle,新建一个notebook 复制下…

软件工程(十三) 设计模式之结构型设计模式(一)

前面我们记录了创建型设计模式,知道了通过各种模式去创建和管理我们的对象。但是除了对象的创建,我们还有一些结构型的模式。 1、适配器模式(Adapter) 简要说明 将一个类的接口转换为用户希望得到的另一个接口。它使原本不相同的接口得以协同工作。 速记关键字 转换接…

【Go 基础篇】Go语言中的自定义错误处理

错误是程序开发过程中不可避免的一部分,而Go语言以其简洁和高效的特性闻名。在Go中,自定义错误(Custom Errors)是一种强大的方式,可以为特定应用场景创建清晰的错误类型,以便更好地处理和调试问题。本文将详…

ModaHub魔搭社区:WinPlan经营大脑管理中心

角色权限 展示设置的角色,及对应的成员及权限点。角色、成员、权限点可自由配置;管理员的角色不可删除、权限点默认全部不可更改。 WinPlan决策系统 算力 阿里云 腾讯云 AWS亚马逊 框架 业务数据基座 WinPlan垂直大模型 模型 分

必抓!程序员必备的关键算法:探索编程世界的珍宝

嗨,亲爱的编程同道们!在这个码农的世界里,算法就像我们的剑与盾,为我们打开问题的大门。不论你是新手刚踏入编程领域,还是老手早已颇有心得,总有那几种算法是我们绝对不能错过的,它们是你编程路…

华为手机实用功能介绍

一、内置app介绍 分四块介绍,包括出门款、规划款、工作款和生活款。 出门款:红色框框部分,照镜子化妆/看天气 规划款:黄色框框部分,日程表/计划表/番茄时间/计时 工作款:蓝色框框部分,便笺/录…

R语言响应面(RSM)、线性模型lm分析生产过程影响因素可视化

全文链接:https://tecdat.cn/?p33499 响应面(Response Surface Methodology,RSM)分析是一种常用的统计方法,用于研究和优化生产过程中的影响因素。通过建立数学模型来描述因素与响应之间的关系,RSM可以帮助…

实战项目 在线学院springcloud调用篇3(nacos,feging,hystrix,gateway)

一 springcloud与springboot的关系 1.1 关系 1.2 版本关系 1.3 list转json串 public class Test {public static void main(String[] args) {List<String> dataListnew ArrayList<String>();dataList.add("12");dataList.add("45");dataLi…

【CSS】CSS 特性 ( CSS 优先级 | 优先级引入 | 选择器基本权重 )

一、CSS 优先级 1、优先级引入 定义 CSS 样式时 , 可能出现 多个 类型相同的 规则 定义在 同一个元素上 , 如果 CSS 选择器 相同 , 执行 CSS 层叠性 , 根据 就近原则 选择执行的样式 , 如 : 出现两个 div 标签选择器 , 都设置 color 文本颜色 ; <style>div {color: re…