PyNetIM
PyNetIM 是一个用于**社交网络影响力最大化(Influence Maximization, IM)问题**的 Python 库,集成了多种经典算法与扩散模型,提供 C++ 高性能后端,适用于算法研究、性能对比与科研实验。
API 参考
- 图模块
- 扩散模型
- 算法模块
- 评估指标
average_shortest_distance()clustering_coefficient()degree_distribution()degree_statistics()distribution_entropy()kendall_tau()local_clustering()mean_centrality()monotonicity_score()neighbor_coverage()ranking_distance()ranking_stability()reachability()seed_diversity()seed_overlap()spearman_correlation()top_k_accuracy()top_k_overlap()weight_statistics()
- 时间测量
- 工具函数
其他
功能特性
多种传播模型 - IC、LT、SI、SIR
多种 IM 算法 - 启发式、模拟类、RIS 类、深度强化学习
深度强化学习算法 - ToupleGDD、S2V-DQN、BiGDN、BiGDNS
评估指标 - 排名指标、影响力指标、种子质量指标、网络指标
时间测量 - 装饰器、AlgorithmTimer、多次运行统计
高性能 C++ 后端 - 比纯 Python 快 20-30 倍
自定义模型支持 - 支持用户自定义传播模型
权重管理 - 预训练权重自动下载与本地缓存
简洁 API - 一行代码完成复杂任务
快速示例
from pynetim import IMGraph, IndependentCascadeModel, IMMAlgorithm
# 创建图
graph = IMGraph([(0, 1), (1, 2), (2, 3)], weights=0.3)
# 选择种子节点
imm = IMMAlgorithm(graph, model='IC', epsilon=0.5)
seeds = imm.run(k=2)
# 评估影响力
model = IndependentCascadeModel(graph, set(seeds))
avg = model.run_monte_carlo_diffusion(1000, use_multithread=True, num_threads=4)