复杂网络——半局部中心法

一、概述

        由于最近写论文需要使用复杂网络知识中的半局部中心法,但是截止目前来说,网上几乎搜索不到有关的MATLAB程序代码,只有一篇用Python编写的程序,我的电脑中没有python,所以我花费一些时间,利用matlab进行编写,结果显示和Python编写的博主一样。下面我分享一下我的编程思路,希望大家能够独立思考,不要对代码进行直接复制,只放置局部代码,如有需要请订阅后留言,最终结果如下所示。

matlab编写的结果

Python博主编写的

我们可以直观的看到两者结果一致

二、半局部中心法介绍

        复杂网络的影响力度量中,最常用的度中心性的度量只是局限于节点自身,对于节点的邻域和所在网络的拓扑结构都没有考虑,因此局限性很大。度中心性,认为节点连接的邻居越多,则它在影响力传播中的地位越重要。这种度量影响力,的方法缺陷在于,节点影响力会被它的邻域内节点的影响力所影响,还会被自身,所处的网络位置所影响,而度中心性无法考虑到这些因素。因此有人提出了半局,部中心性,半局部中心性认为节点的影响力不仅跟自身度值有关,还跟它邻域内的节点影响力有关。

        大部分基于局部网络结构的度量的缺点都是没有充分考虑网络拓扑结构对节点重要性的影响,导致总体上计算结果准确度不高。因此Chen等人提出了半局部中心性(Semi-Local Centrality,LC)度量,将局部信息的计算范围扩大到次近邻的范围。该方法是对局部信息计算和对全局信息计算方法的折中,但本质上仍然是基于局部结构的方法。首先定义N(w)为节点Vw的两层邻居度,其值等于从 Vw出发 2步内可到达的邻居的数目,  然后定义

三、实现思路

1、导入用Excle编写好的邻接矩阵,两个节点有关联用1,无关联用0,效果如下所示

2、查找邻接矩阵中的具体节点名字

3、确定各节点的度Kv,即矩阵中每行不为0的个数

4、确定各节点两步之内可以到达的邻居数目Nv,分别求取节点i的一步相邻节点,然后在加上相邻节点的相邻节点,然后去掉重复的节点即可,去重是关键这里用到matlab自己的函数unique( )

5.确定各节点两步之内可以到达的邻居数目Qv,对各节点的相邻节点的Nv求和。

6、确定各节点四阶邻居数目CML,对节点的i的相邻节点的Qv求和。

综上所述就可以实现半局部中心法求取SLC(i).

四、代码如下

%% 程序介绍
% GreateTime           2024/3/12
% Author               白雪公主的后妈
% Explain              基于半局部中心法评估加工质量特征的重要性
%% 清空程序、变量、窗口
clear;
clc;
close all
%% 读取无向图矩阵,确定各节点的度Kv
Date = xlsread('C:\Users\NINGMEI\Desktop\Date1.xlsx','sheet6');
for i=1:size(Date,1)%矩阵Date的行数
    for j=1:size(Date,2)
        if Date(i,j)>0
            Node(i,j)=j;            
        end
    end
end
Kv=sum(Node~=0,2);
%% 读取无向图矩阵,确定各节点相邻节点的度Nv
for h=1:size(Node,1)
    number=1;
    Node1=zeros(size(Node,1),size(Node,2));
    for k=1:size(Node,2)
       。。。。。。
    end
   。。。。。。
end
%% 确定各节点两步之内可以到达的邻居数目Qv
。。。。。
。。。。。。
。。。。。。
%% 确定各节点四阶邻居数目CML
。。。。。
。。。。。
。。。。。
%% 命令行窗口输出
fprintf('Kv: ');
disp(Kv');
fprintf('Nv: ');
disp(Nv');
fprintf('Qv: ');
disp(Qv);
fprintf('CML: ');
disp(CML);
%% 绘图
[Weight, Sort]=sort(CML,'descend');% 按CML降序排序
x =1:size(Sort,2);
y=Weight; 
hh=stem(x,y,'Marker','none');
hh.LineWidth=1.5;
xlim([0 size(Sort,2)+2])
hold on;
plot(x,y,'.','Color',[0 0.45 0.74],'MarkerSize',20);
Name=[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23];
for h=1:size(Name,2)
    Name1(1,h)=Name(1,Sort(:,h));
end
set(gca,'XTickLabel',Name1);
xticks(1:1:size(Sort,2)); %这样x轴会每隔10显示一个刻度
xtickangle(45);
%在图表中添加标题和轴标签
title('基于半局部中心法对加工质量特征重要性评估')
xlabel('加工质量特征名称')
ylabel('加工质量特征CML值')

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

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

相关文章

Excel数据可视化

饼图 1、选中数据----点击插入----点击饼图 2、更改数据标签(修改标题名直接改就行) 柱形图 1、选中数据、点击插入二维柱形图 坐标轴问题----切换行和列 如何将横轴变成想要的4、5、6、7月? (1)右键----选择数据 -…

计算机二级(Python)真题讲解每日一题:《十字叉》

描述‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬ ‪‬‪‬‪‬‪‬‪‬‮‬‪…

Java解决完全二叉树的节点个数

Java解决完全二叉树的节点个数 01 题目 给你一棵 完全二叉树 的根节点 root ,求出该树的节点个数。 完全二叉树 的定义如下:在完全二叉树中,除了最底层节点可能没填满外,其余每层节点数都达到最大值,并且最下面一层的…

202303 CSP认证 | LDAP

LDAP 好好好&#xff0c;难度直线上升&#xff0c;是一道又有了字符串处理味道的第三题 第一把写官网40分&#xff0c;acwing TLE且只通过了一道数据…本文是自己这题奋斗过程 的一个记录 先贴个40分的代码&#xff1a; #include<bits/stdc.h> using namespace std; t…

计算机网络:性能指标

计算机网络&#xff1a;性能指标 速率带宽吞吐量时延时延带宽积往返时间利用率丢包率 本博客介绍计算机网络的性能指标&#xff0c;我们可以从不同的方面来度量计算机网络的性能。常用的计算机网络性能指标有以下 8 个&#xff0c;他们是&#xff1a;速率、带宽、吞吐量、时延、…

Android弹出通知

发现把Android通知渠道的重要性设置为最高时&#xff0c;当发送通知时&#xff0c;通知能直接弹出来显示&#xff0c;以前一直搞不明白为什么别的app的通知可以弹出来&#xff0c;我的不行&#xff0c;搞了半天原来是这个属性在作怪&#xff0c;示例如下&#xff1a; class Ma…

Flink源码解析(1)TM启动

网络传输模型 首先在看之前,回顾一下akka模型: Flink通讯模型—Akka与Actor模型-CSDN博客 注:ActorRef就是actor的引用,封装好了actor 下面是jm和tm在通讯上的概念图: RpcGateway 不理解网关的作用,可以先移步看这里:网关_百度百科 (baidu.com) 用于定义RPC协议,是…

CMake学习(上)

1. CMake概述 CMake 是一个项目构建工具&#xff0c;并且是跨平台的。关于项目构建我们所熟知的还有Makefile&#xff08;通过 make 命令进行项目的构建&#xff09;&#xff0c;大多是IDE软件都集成了make&#xff0c;比如&#xff1a;VS 的 nmake、linux 下的 GNU make、Qt …

论文解读之Attention-based Deep Multiple Instance Learning

前言 多实例学习是由监督学习演变而来的&#xff0c;我们都知道&#xff0c;监督学习在训练的时候是一个实例&#xff08;或者说一个样本、一条训练数据&#xff09;对应一个确定的标签。而多实例的特点就是&#xff0c;我们在训练的时候的输入是多个实例对应一个确定的标签&a…

STM32使用常见错误合集(正在更新版)

本文章记录一些学习STM32的一些错误问题 一、编译、烧录类问题 1、烧录不成功&#xff0c;Keil提示RDDI-DAP Error【场景&#xff1a;PWM驱动直流电机】 解决方案&#xff1a;将电机断开再进行烧录&#xff0c;断开后就可以美美烧录不报错啦~ 二、Keil使用问题 1、打开一个…

【设计模式】-工厂模式

工厂模式是一种创建型设计模式&#xff0c;它提供了一种在不指定具体类的情况下创建对象的方法。工厂模式的核心思想是将对象的创建与使用分离&#xff0c;降低系统的耦合度&#xff0c;使系统更加灵活、可扩展。 工厂模式主要分为三种类型&#xff1a;简单工厂模式、工厂方法…

深入解析JVM加载机制

一、背景 Java代码被编译器变成生成Class字节码&#xff0c;但字节码仅是一个特殊的二进制文件&#xff0c;无法直接使用。因此&#xff0c;都需要放到JVM系统中执行&#xff0c;将Class字节码文件放入到JVM的过程&#xff0c;简称类加载。 二、整体流程 三、阶段逻辑分析 3…

断言assert是什么?

assert是什么&#xff1f; assert断言&#xff0c;是一个被定义在<assert.h>头文件中的一个宏&#xff0c;而不是一个函数。 可以用来检查数据的合法性&#xff0c;但是频繁的调用极大影响了程序的性能&#xff0c;增加了额外的开销。可以通过#define NDEBUG来禁用asse…

【Unity】CatlikeCoding SRP

Unity 自定义渲染管线 提示&#xff1a;基于CatlikeCoding SRP系列教程学习 学习链接&#xff1a;SRP 个人测试: Demo 相关记录以后有时间再更&#xff1a;

CLIP解读

1、引言 在计算机视觉领域&#xff0c;通常需要经过训练模型来实现对预定类别目标预测&#xff08;如分类、检测等任务&#xff09;&#xff0c;但是这种形式会限制模型的通用性。比如我们训练完了一个猫狗分类模型&#xff0c;如果现在希望识别一只老虎&#xff0c;那么原来训…

关于mybatis-plus分页查询total=0问题解决

今天复习分布式架构&#xff0c;一步一步从新架构模块&#xff0c;写道mybatis-plus的时候&#xff0c;突然发现分页查询居然total一直等于0。 在项目上的时候&#xff0c;都是架构师吧这个弄好了的&#xff0c;我一直以为直接分页查询&#xff0c;就会有值&#xff0c;原来还…

如何使用 ArcGIS Pro 分析爆炸波及建筑

创建三维图层 在工具箱中点击“3D Analyst 工具\3D要素\转换\依据属性实现要素转3D”,调用依据属性实现要素转3D工具,如下图所示。 调用依据属性实现要素转3D工具 在显示的依据属性实现要素转3D对话框内,输入要素为爆炸点图层,选择高度字段,如下图所示。 依据属性实现…

2024年个人小型渲染农场搭建是否值得?

个人小型渲染农场的搭建是否值得是一个需要综合考虑的问题。对于那些追求高效渲染和成本控制的创作者来说&#xff0c;个人渲染农场提供了自主控制进度的优势。然而&#xff0c;同时也必须面对技术挑战和初期投资的压力。要决定是否投资个人渲染农场&#xff0c;关键在于权衡技…

结构体中的内存对齐是什么?一起搞懂它

c语言中的小小白-CSDN博客c语言中的小小白关注算法,c,c语言,贪心算法,链表,mysql,动态规划,后端,线性回归,数据结构,排序算法领域.https://blog.csdn.net/bhbcdxb123?spm1001.2014.3001.5343 给大家分享一句我很喜欢我话&#xff1a; 知不足而奋进&#xff0c;望远山而前行&am…

9成省份“鸿蒙化”,它真起来了?

自去年9月华为宣布鸿蒙原生应用全面启动以来&#xff0c;鸿蒙正以不可阻挡之势&#xff0c;快速在全国千行百业的移动应用领域推进。不仅有支付宝、快手、淘宝、京东等超200家头部互联网企业加入鸿蒙生态&#xff1b;2024年以来&#xff0c;上海、浙江、广西等多省市政务民生、…