SMACv2: An Improved Benchmark for Cooperative Multi-Agent Reinforcement Learning

论文地址:SMACv2

背景:

        大部分SMAC图上pymarl2的QMIX版本代码都能达到100%胜率,SMAC对于如今的MARL算法可能不再是一个合适的benchmark。并且现在缺少一种合作MARL benchmark同时具备局部视野、复杂的动态模型、高维状态空间、支持规模比较大的智能体数量。因此Deepmind升级版SMAC为SMACv2,希望为MARL提供一个新的、更难的benchmark。

原SMAC不足:

1、随机性不足:SMAC的初始状态以及状态转移方程相对确定,智能体很可能只需要学习到每一个时间步的最优动作而不需要关注太多其他与时间序列相关的观测信息。论文进行对比试验,对多智能体算法只输入agent_id和time_step的方式(open-loop)以及输入SMAC原始的特征方式(closed-loop)进行算法的对比训练。

        实验结果表明,两个基于Q值以及策略学习的MARL的sota算法,如QMIXMAPPO依然能在SMAC很多地图上达到不错的性能。

2、原始SMAC存在部分冗余且可推断的特征:SMAC原始特征中部分特征可以由其他特征推断出来,而MARL学习的特征信息之间需要尽可能保持不相关性。SMACv2通过对部分特征信息的mask进行对比试验,证明了原始的SMAC特征中存在一些冗余且很多特征是可推断的。

 

 

SMACv2改进:

1、智能体的unit type随机生成:原始SMAC的每个智能体的unit type都是固定的,为了增大随机性,SMACv2对于每个智能体以一个固定的概率分布随机生成unit type。具体地,SMACv2对每个种族(神族、人族、虫族)都设置了3种unit type,使得智能体学习到的策略具有适配性。

2、智能体出生位置随机:原始SMAC中智能体在一个episode的初始位置是固定的。SMACv2则随机选择以下两种不同的进攻方式(对称式以及中心围捕式)的一种,进行随机生成对应方的智能体。

3、视野范围和攻击范围变化:都由原来的360°的圆限制为一个30°的扇形,同时增加12个离散动作来让智能体选择观察的视野区域。

消融结果:

论文实验结果:

        从上面可以看到,sota的MARL算法在所有的地图上都没有达到1.0的性能,SMACv2增大了随机性并加强了部分可观测,很大程度上增大了难度,可作为后续MARL的研究环境。

### 关于PUMA改进的DOA估计算法模式实现 针对PUMA改进的DOA估计算法模式实现,该方法旨在提高传统MODE算法在方向到达角(DOA)估计中的性能。具体而言,通过引入新的机制来增强参数估计精度和稳定性[^1]。 以下是基于MATLAB的一个简化版本代码示例,用于展示如何利用PUMA框架进行DOA估算: ```matlab function doa_estimates = puma_do aestimation(received_signals, array_geometry) % Parameters initialization num_elements = size(array_geometry, 2); snapshot_length = length(received_signals(:, 1)); % Construct spatial correlation matrix Rxx from received signals Rxx = (received_signals * conj(transpose(received_signals))) / snapshot_length; % Perform eigenvalue decomposition on Rxx to get eigenvectors U and eigenvalues Lambda [U, ~] = eig(Rxx); % Define search grid for DOAs within [-90°,+90°], step=1° theta_grid = linspace(-pi/2, pi/2, 181)'; % Calculate steering vectors a(theta) corresponding to each angle in the grid A = exp(1i*2*pi*(array_geometry'*sin(theta_grid))); % Compute PUMA cost function values over all angles using modified MODE criterion J_puma = zeros(size(theta_grid)); for k = 1:length(theta_grid), ak = A(:,k); P = eye(num_elements)-ak*(conj(ak')/(ak'*ak))*ak'; J_puma(k)=trace(P*Rxx*P'); end % Find peaks of the spectrum which correspond to estimated DOAs [~, peak_indices] = findpeaks(-J_puma,'MinPeakDistance',5); doa_estimates = radtodeg(theta_grid(peak_indices)); end ``` 此函数`puma_do aestimation`接收两个输入参数:一个是来自阵列天线接收到的数据矩阵;另一个是指定传感器位置坐标的向量。输出则是检测到的目标角度列表(单位为度)。注意这只是一个概念性的例子,在实际应用中可能还需要考虑更多细节调整以适应特定场景需求[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大章鱼(张文哲

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值