综合影响力模型InfG算法
来源:互联网 发布:java方法泛型 t.class 编辑:程序博客网 时间:2024/06/05 00:38
目标
在有用节点集U 中选择k 个初始节点,使其具有最大的传播影响范围。
方法
任一社区内,首先选择影响传播范围F 值最大的节点为起始点,将其加入集合S,并标记其邻居节点。在未标记的节点中继续选择一点,满足两节点所能影响到达的节点集合的和集最大,即节点数目最多,并标记其邻居节点。依此类推,每次选择的节点均为被标记的节点,遍历每个社区,直到选取完满足条件的k’ 个节点为止。
# 参数:节点关系的文件路径,节点传播范围F值的文件路径# 输出文件路径,领袖个数def getLeaders(inputFileName_Node, inputFileName_TKFK, outputFileName, leaderNum): # 打开文件读入节点关系 with open(inputFileName_Node, 'r') as file: # 保存节点关系 node = {} for line in file.readlines(): # 读出文件内容,以制表符分割 line_s = line.strip().split('\t') # 如果发帖者已存在,直接将跟随者添加 if line_s[0] in node: node[line_s[0]].append(line_s[1]) # 不存在则先添加发帖者,并将跟随者添加在发帖者里 else: node.setdefault(line_s[0], []).append(line_s[1]) # 如果跟随者已经在节点里忽略,否则添加 if line_s[1] in node: pass else: node.setdefault(line_s[1], []) # 打开文件读入传播范围F with open(inputFileName_TKFK,'r') as fileF: # 存储节点及对应的F值 value_F = {} # 标记节点是否已使用 value_Flag = {} # 读取文件内容 for line in fileF.readlines(): line_s = line.strip().split('\t') value_F[line_s[0]] = float(line_s[2]) value_Flag[line_s[0]] = False # 降序排序f值 value_F_list = sorted(value_F.items(), key=lambda asb:asb[1], reverse=True) i = 1 # 保存结果 result_list = [] while i <= leaderNum: for l in value_F_list: # 如果该节点没使用则标记该节点并放入结果里 if not value_Flag[l[0]]: value_Flag[l[0]] = True result_list.append(l[0]) # 标记该节点的所有邻居节点 for u in node[l[0]]: value_Flag[u] = True break i = i + 1 # 将结果保存至文件 with open(outputFileName, 'w')as fileLeader: for result in result_list: fileLeader.write(result + '\n')# 使该程序既能单独运行也能作为模块导入if __name__ == '__main__': getLeaders(r'D:\PycharmProjects\Demo\data\all.txt',r'D:\PycharmProjects\Demo\data\TkFk.txt',r'D:\PycharmProjects\Demo\data\leader_result.txt',20)
阅读全文
0 0
- 综合影响力模型InfG算法
- 2013年3月IT行业网站综合影响力排名
- 2013年3月博客行业网站综合影响力排名
- 2013年4月IT行业网站综合影响力排名
- 2013年3月财经类行业网站综合影响力排名
- 2013年3月电子杂志行业网站综合影响力排名
- 2013年4月腕表行业网站综合影响力排名
- 2013年4月网上银行行业网站综合影响力排名
- 2013年4月文学行业网站综合影响力排名
- 2013年4月香水行业网站综合影响力排名
- 2013年4月小游戏行业网站综合影响力排名
- 2013年12月家电行业网站综合影响力排名
- 2013年12月小游戏行业网站综合影响力排名
- 《影响力》
- 影响力
- 影响力
- 影响力
- 影响力
- 机器学习、图像相关知识图谱
- SmartisanDialog
- bootstrap系列之四表格样式
- 利用函数组的全局变量实现数据传递
- 集合总结
- 综合影响力模型InfG算法
- HDU6053TrickGCD
- jquery 获取 input 名为数组
- Ubuntu安装中文输入法
- matlab中findstr 与 strfind的两个函数举例
- java.io.EOFException: Unexpected end of ZLIB input stream解决
- pycharm常用设置(keymap设置及eclipse常用快捷键总结)
- 状态模式
- JVM虚拟机学习笔记01:类的加载、连接、初始化