【复杂网络建模】复杂网络中关键节点识别论文复现

概要

在复杂网络中,评估节点的重要性是理解网络结构和功能的关键。本篇博客介绍了三种主要的节点重要性评估方法:

  • Tsallis熵方法:杨松青等人提出的基于Tsallis熵的复杂网络节点重要性评估方法。详细见物理学报(2021)。
  • 改进的k-shell方法:Wang等人在Physica A中描述的改进版k-shell方法(2020)。
    -通过邻域核度识别和排名复杂网络中的关键传播者。在Physica A(2014)

功能性函数函数

在复杂网络节点重要性评估中,常常需要处理大量数据。以下是一些关键的功能性函数,用于保存、读取节点重要性数据以及计算相关指标。

读取和保存数据

def save_results(measure, name):
    # 打开一个文件以写入数据,文件名为传入的参数name
    outf = open("./importance_values/"+name+".dat", "w")
    for i in measure:
        #将键以字符串的形式写入文件中,中间用空格隔开,行末加上换行符号
        outf.write(str(i)+" "+str(measure[i])+"\n")
    outf.close()

该函数将节点的编号及其对应的重要性值保存到指定的文件中,以便后续分析。

读取重要性函数

def read_importance_values(name):
    # 读取重要性函数 创建一个新的字典,用于存放节点重要性数值
    measure = {
   }
    for line in np.loadtxt("./importance_values/"+name+".dat"):
        # 读取每一行数据分解为节点标签和对应的重要性数值 line[0]表示节点标签 line[1]代表节点的重要性值
        measure[int(line[0])] = line[1]
    return measure

该函数从文件中读取节点重要性数据,并将其存储在字典中,方便后续处理。

主流方法复现

核中心性Cnc+

核中心性 Cnc是通过累加节点邻居的测量值来评估节点的重要性,反映了节点的局部影响力。

def cal_C_nc(G, measure):
    # 用于存放每个邻居核度值的字典
    Cnc = {
   }
    for i in G.nodes<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值