
【C0015】LLM+进化算法:动态生成网络关键节点识别函数
项目概述
本项目实现了一种基于大语言模型(LLM)的进化算法,用于动态生成复杂网络中的节点重要性评估函数。核心创新在于不依赖人工预设的固定算法(如度中心性、PageRank 等),而是通过 LLM 驱动遗传编程,让评分函数自主进化,最终找到能最有效识别关键节点的最优函数。
关键技术流程
1. 初始化
用传统中心性算法(度中心性、PageRank 等)作为初始种群。
2. 评估
通过删除高分节点后网络的连通性损失程度(fitness)来评估函数效果。
3. 进化
LLM 负责函数的交叉融合(crossover)和随机变异(mutation)。
4. 选择
保留 fitness 高的精英个体,淘汰效果差的函数。
5. 迭代
多代进化后得到最优的节点评分函数。
使用流程
1. 环境准备
安装所需库:
openai、networkx、numpy、pandas等配置 OpenAI API 密钥(文档中显示已配置特定端点和密钥)
2. 数据准备
将
董事网络数据.xlsx文件放置在./data/目录下数据格式要求:包含三列(
source,target,weight)的边列表
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).