基于进化博弈的协同进化优化算法系统 (EGT-Coevolution)
项目简介
本项目实现了一个融合进化博弈论(EGT)与多智能体协同机制的混合算法仿真框架。该系统旨在研究复杂网络拓扑下的分布式决策与资源优化问题,通过将个体策略选择的动态性与全局协同激励相结合,模拟大规模智能体系统在动态环境下的演化过程。
算法核心不仅模拟了经典的囚徒困境博弈,还创新性地引入了基于局部邻域反馈的协同激励因子和环境扰动机制,促使种群在追求个体收益最大化的过程中涌现出全局合作行为,有效解决了博弈过程易陷入次优纳什均衡的问题。
主要功能特性
- 多网络拓扑支持:内置三种典型的复杂网络生成模型(规则网格、小世界网络、无标度网络),支持模拟不同的社会或物理连接结构。
- 非线性协同激励机制:在传统博弈收益基础上,引入与邻域合作度呈非线性关系的协同奖励,模拟群体效应。
- 动态环境仿真:支持环境参数随时间动态波动(如正弦波扰动),模拟真实世界中资源价值的不确定性。
- 混合策略更新规则:结合费米(Fermi)规则的随机模仿机制与随机突变机制,平衡探索与利用。
- 全方位可视化平台:提供2x2的动态数据面板,实时展示网络状态、策略演化路径、环境/收益趋势及收益分布直方图。
系统要求
- MATLAB:推荐使用 R2018a 及以上版本(需包含基础绘图及统计功能)。
- 不需要额外的工具箱,所有网络生成与图论计算均为原生代码实现。
使用方法
- 打开 MATLAB 环境,定位到项目根目录。
- 直接运行主程序脚本
main。 - 系统将自动弹出图形化窗口,展示200代(默认)的演化过程。
- 仿真结束后,控制台将输出最终的合作率、平均收益以及收敛稳定性分析。
参数调整说明:
用户可以直接修改代码顶部的 Params 结构体来改变仿真行为,例如:
Params.Topology:修改网络类型 ('Grid', 'SmallWorld', 'ScaleFree')。Params.b:调整囚徒困境中的背叛诱惑值。Params.Incentive:调整协同激励强度。Params.DynamicEnv:开启或关闭动态环境波动。
算法实现细节与逻辑分析
本项目的核心逻辑实现主要包含以下几个关键模块:
1. 网络拓扑构建
系统不依赖外部库,通过
GenerateNetwork 函数手动实现了三种拓扑结构:
- Grid (网格网络):基于冯·诺依曼邻域(上下左右4邻居)构建规则网络,并处理了边界连接。
- SmallWorld (小世界网络):基于 Watts-Strogatz 模型,首先构建环形规则网络,然后以一定概率(Re-wire probability)随机重连边,实现高聚类系数与短路径长度的特性。
- ScaleFree (无标度网络):基于 Barabasi-Albert (BA) 模型,采用优先连接(Preferential Attachment)机制,新节点倾向于连接度大的节点,模拟“富者愈富”的现象。
2. 收益计算与协同激励
在
CalculatePayoff 函数中,智能体的收益计算由两部分组成:
- 基础博弈收益:基于标准的囚徒困境矩阵([R, S; T, P]),计算个体与所有邻居博弈的累积收益。其中 T (背叛诱惑) > R (合作奖励) > P (惩罚) > S (输家收益)。
- 协同激励 (Synergy Bonus):这是本算法的创新点。若个体选择合作,系统会根据其邻域内的合作者比例(Local Cooperation Level)计算额外奖励。公式实现为
激励因子 * (邻域合作率^2) * 节点度数,这种非线性奖励机制强化了密集合作簇的稳定性。
3. 策略更新机制 (演化引擎)
演化过程采用同步更新策略,遵循有限理性的
Fermi 规则:
- 每个智能体随机选择一个邻居作为模仿对象。
- 基于两者收益差计算策略切换概率:
P = 1 / (1 + exp((Ui - Uj) / K)),其中 K 为噪声强度(K=0.1 代表有限理性)。 - 突变机制:为了防止算法陷入局部最优,引入了
MutationRate (0.01),每一代有极小概率随机翻转策略。
4. 动态环境模拟
当
Params.DynamicEnv 开启时,主循环会在每一代对收益矩阵中的合作奖励(R值)叠加一个正弦波扰动
0.1 * sin(2 * pi * iter / 50)。这模拟了外部环境资源随时间的周期性波动,考察系统在非平稳环境下的鲁棒性。
5. 实时可视化系统
UpdateVisualization 函数构建了一个复合图形窗口,包含四个子图:
- 左上 (网络演化状态):展示复杂网络拓扑,节点颜色代表策略(红=背叛,蓝=合作),节点大小根据局部合作度动态缩放。
- 右上 (策略演化趋势):绘制种群合作率随时间变化的曲线,并标记出50%的基准线。
- 左下 (系统收益收敛):双Y轴图表,同时展示系统平均收益曲线和环境扰动因子的波动曲线。
- 右下 (收益分布):利用直方图展示当前代合作者与背叛者的收益分布情况,直观反映当前博弈优势方。
6. 结果分析
仿真结束后,
AnalyzeResults 模块会计算最终的合作率与平均收益,并通过计算最后50代的标准差来自动判定系统是否达到了演化稳定策略(ESS)或仍处于混沌波动状态。