多用户Q学习增强学习算法仿真实验系统
项目介绍
本项目是一个用于研究多智能体环境下资源竞争问题的增强学习仿真平台。系统模拟了多个独立智能体(用户)在共享有限资源(如带宽或功率)时的决策过程。每个用户通过Q学习算法,在与动态环境的持续交互中学习最优的资源申请策略。该仿真系统旨在解决非平稳环境下的协调与效率平衡问题,适用于无线通信资源分配、工业物联网节点管理及多机协同等研究领域。
系统功能特性
- 多智能体独立学习机制:系统支持多个用户并行学习,每个用户维护一套独立的Q值表,模拟分布式的决策过程。
- 动态动态参数演进:通过随时间衰减的学习率(Alpha)和探索率(Epsilon),平衡算法在仿真初期的探索能力与后期的收敛稳定性。
- 冲突与协作评估模型:设计了精细的奖励函数,不仅惩罚资源过载导致的冲突,还通过协作系数鼓励系统在高负载状态下保持高效率。
- 环境不确定性模拟:在奖励获取和状态转移过程中引入高斯噪声,模拟真实工程环境中的随机干扰。
- 多维度数据可视化:提供累积奖励增长、Q值收敛轨迹、冲突率变化趋势以及Q值热力分布等全方位的性能监控指标。
使用方法
- 在计算环境中安装并配置好支持矩阵运算的语言环境(如MATLAB)。
- 设置仿真参数:包括用户数量、总迭代步数、系统总容量等。
- 直接运行执行脚本,系统将自动进入马尔可夫决策循环。
- 仿真结束后,系统会自动弹出四个子图,分别展示个体收益、算法收敛性、系统稳定性和智能体最终决策逻辑。
系统要求
- 软件环境:MATLAB R2016b 或更高版本。
- 硬件要求:基础性能的个人电脑即可,建议内存 4GB 以上以支持长周期迭代绘图。
实现逻辑与算法细节
#### 1. 状态与动作空间建模
- 状态空间(States):系统状态被抽象为当前的总负载,共划分为11个离散等级。这代表了环境中总体的资源占用情况。
- 动作空间(Actions):每个智能体拥有5个等级的资源申请意愿(0至4个单位)。
#### 2. Q学习核心流程
系统每一轮迭代遵循以下标准增强学习循环:
- 动作选择:采用 Epsilon-Greedy 策略,智能体在探索(随机选择动作)与利用(选择当前Q值最大的动作)之间寻找平衡。
- 环境反馈:计算所有用户申请资源的总和。若总和超过系统总容量,判定为冲突;否则判定为成功分配。
- 奖励函数(Reward Function)执行:
* 正向激励:成功分配时,奖励与申请量成正比;若总利用率超过80%且未冲突,由于触发协作机制,用户将获得额外奖励。
* 负向惩罚:发生冲突时,所有用户受到固定罚分,且申请量越大的用户受到的惩罚越重。
- 状态转移:下一个状态由当前总负载加上环境随机噪声共同决定。
- Q值更新:核心算法基于贝尔曼方程更新,使用当前奖励值、折扣因子以及下一状态下的最大预期估值来迭代旧的Q值。
#### 3. 统计指标计算
- 收敛性分析:通过计算每一轮所有用户Q值变化的平均值(Delta Q)来判断算法是否趋于稳定。
- 滑动窗口冲突率:使用特定尺寸的滑动窗口计算平均冲突频率,直观反映系统从混乱到建立秩序的过程。
- 累积奖励记录:实时追踪每个用户的收益增长,用于评估不同智能体间的公平性和效率。
关键函数与计算细节说明
在代码模拟的末尾,还定义了一个资源分配效用计算函数。该函数通过二次函数模型评估资源利用的效率:在资源未超出容量时,利用效用随动作评分增加(平方和模型);一旦发生冲突,则根据超出容量的程度实施线性惩罚。这一逻辑反映了算法设计中对于“系统最大效用”与“稳定性”的双重考量。
仿真输出说明
- 累积奖励图:观察用户是否在共同学习中实现了收益增长。
- Q值增量图:波形逐渐平缓说明算法已找到稳定策略。
- 冲突率图:阴影区域代表冲突爆发,随时间演进应呈现明显的下降趋势。
- 热力图:通过颜色深浅反映智能体在不同系统负载下对各动作的偏好程度,展示出学习到的决策逻辑。