【C0015】LLM+进化算法:动态生成网络关键节点识别函数

理工医 经济学 会计金融 管理科学 图情学 新闻传播 文史哲
大规模计算 机器学习与深度学习 社会网络分析 大语言模型
Python
时间图标 2026-03-05
高级

项目概述

本项目实现了一种基于大语言模型(LLM)的进化算法,用于动态生成复杂网络中的节点重要性评估函数。核心创新在于不依赖人工预设的固定算法(如度中心性、PageRank 等),而是通过 LLM 驱动遗传编程,让评分函数自主进化,最终找到能最有效识别关键节点的最优函数。

关键技术流程

1. 初始化

用传统中心性算法(度中心性、PageRank 等)作为初始种群。

2. 评估

通过删除高分节点后网络的连通性损失程度(fitness)来评估函数效果。

3. 进化

LLM 负责函数的交叉融合(crossover)和随机变异(mutation)。

4. 选择

保留 fitness 高的精英个体,淘汰效果差的函数。

5. 迭代

多代进化后得到最优的节点评分函数。

使用流程

1. 环境准备

  • 安装所需库:openainetworkxnumpypandas 等

  • 配置 OpenAI API 密钥(文档中显示已配置特定端点和密钥)

2. 数据准备

  • 将 董事网络数据.xlsx 文件放置在 ./data/ 目录下

  • 数据格式要求:包含三列(sourcetargetweight)的边列表

3. 运行代码

直接运行主程序,代码会自动:

  • 读取 Excel 数据并构建网络图(4624 个节点,11495 条边)

  • 初始化包含传统算法的种群

  • 进行多代进化训练(默认 15 代)

  • 输出每一代的最优 fitness 值

4. 获取结果

  • 最终生成 best_score_nodes.py 文件,包含进化得到的最优评分函数

  • 控制台输出训练过程和最终评估结果

  • 得到专门针对该董事网络数据优化后的节点重要性算法

核心价值

该方法能够自动发现针对特定网络结构最优的关键节点识别策略,比传统固定算法更具适应性和效果优势,特别适合复杂网络分析、关键节点挖掘等研究场景。

参考文献

Mao, Jinzhu, et al. "Identify critical nodes in complex network with large language models." arXiv preprint arXiv:2403.03962 (2024).


下载代码
兑换码获取图标 兑换码获取
文件名称: C00015.zip
文件大小: 0.3MB
更新时间: 2026-03-05