面向高级持续性威胁与移动目标防御之间随机博弈的动态低秩均衡计算
常规论文,正在 Automatica 审稿中(2026年10月重新提交)
本仓库包含**动态低秩纳什均衡(DLR-NE)**算法的实现与实验验证,用于计算高维工业控制系统(ICS)安全博弈中的纳什均衡。
**高级持续性威胁(APT)与移动目标防御(MTD)**之间的策略交互被建模为连续状态空间上的两人零和随机博弈,状态空间维度为 $n \sim 10^3$–$10^4$。关键洞察在于,攻击与防御信道的物理低秩耦合(ICS网络拓扑固有的结构特性)使得均衡值函数可以进行可处理的低秩神经网络近似,从而将每次迭代的复杂度从 $\mathcal{O}(n^2)$ 降低到 $\mathcal{O}(nr^2)$,即 $\Theta(n/r^2)$ 的加速。
| 定理 | 陈述 | 实验 |
|---|---|---|
| 定理 1 | 最优值函数 $V^*$ 的全局低秩近似误差界 | 实验 1 |
| 定理 2 | DLR-NE 的几何收敛性及显式稳态误差分解 | 实验 2 |
| 定理 3 | 每次迭代复杂度 $\mathcal{O}(nr^2)$ 及相对满秩基线的 $\Theta(n/r^2)$ 加速 | 实验 3 |
| 推论 1 | 博弈论鲁棒性:均衡灵敏度由条件数 $\kappa(S)$ 控制 | 实验 4 |
dlr-ne-ics-security/
├── src/ # 核心算法模块
│ ├── environment.py # 合成非线性电力系统动力学
│ ├── networks.py # 低秩与满秩神经网络
│ ├── bellman.py # Bellman算子与贪婪纳什策略提取器
│ ├── dlra_vi.py # 算法 1:DLR-NE
│ └── utils.py # FLOPs统计、EYM误差、指标
│
├── experiments/ # 实验脚本(每个定理一个)
│ ├── exp01_truncation_error.py # 定理 1:低秩截断误差
│ ├── exp02_convergence.py # 定理 2:DLR-NE的收敛性
│ ├── exp03_complexity.py # 定理 3:计算复杂度
│ ├── exp04_robustness.py # 推论 1:博弈论鲁棒性
│ ├── exp05_tradeoff.py # 压缩-精度帕累托前沿
│ └── exp06_ablation.py # 消融:基增广的必要性
│
├── data/ # 生成的数据集(不纳入git)
├── results/ # 图表与日志(不纳入git)
├── notebooks/ # 原型设计与可视化
├── requirements.txt # Python依赖
└── README.md # 本文件
# Clone the repository
git clone https://github.com/tz98lab/dlr-ne-ics-security.git
cd dlr-ne-ics-security
# Create a virtual environment (recommended)
python -m venv venv
source venv/bin/activate # Linux/Mac
# venv\Scripts\activate # Windows
# Install dependencies
pip install -r requirements.txt
numpy>=1.24.0
scipy>=1.10.0
matplotlib>=3.7.0
torch>=2.0.0
所有实验均自包含,可独立运行。每个脚本在 results/figures/ 目录中生成图表。
关于规模的说明:默认配置使用 $n=200$ 以便快速演示。要复现论文中报告的全规模结果($n \sim 10^3$),请修改每个脚本顶部的
PowerSystemConfig(参见内联注释)。
验证截断误差 $|V_{\mathrm{full}} - \widehat{V}r|\infty$ 随秩 $r$ 衰减,并与Eckart-Young-Mirsky理论预测一致。
python experiments/exp01_truncation_error.py
输出:results/figures/exp1_truncation_error.png
预期:测量误差(蓝色圆圈)跟随理论界 $L_\phi |w_{\mathrm{out}}^*|2 R{\mathcal{X}} \epsilon_{\mathrm{EYM}}(r)$(紫色虚线);奇异值谱显示快速衰减。
验证以速率 $\gamma$ 的几何收敛性及显式稳态误差邻域 $\varepsilon_{\mathrm{total}}/(1-\gamma)$。
python experiments/exp02_convergence.py
输出:results/figures/exp2_convergence.png
预期:误差曲线首先沿 $\gamma^k$ 包络衰减,然后弯入由内循环预算 $s^$ 主导的平台(将 $s^$ 减半会使精度损失约20倍);批量大小 $N_b$ 的影响相对可忽略。
验证每次迭代复杂度 $\mathcal{O}(nr^2)$ 及相对满秩FC-NN基线的 $\Theta(n/r^2)$ 加速。
python experiments/exp03_complexity.py
输出:results/figures/exp3_complexity.png
预期:DLR-NE 随 $n$ 线性扩展(双对数坐标中斜率为1),FC-NN 呈二次扩展(斜率为2);在 $n=2000, r=10$ 时,实测FLOPs加速约 $12\times$(墙钟时间约 $4\times$)。
验证线性关系 $|V(\cdot;\pi_D,\pi_A) - V(\cdot;\tilde{\pi}D,\pi_A)|\infty \le L_\kappa |\Delta S|F$,其中有限且可通过 $\beta$ 调节的灵敏度常数 $L\kappa$ 由条件数 $\kappa(S)$ 认证(一种先验最坏情况证书)。
python experiments/exp04_robustness.py
输出:results/figures/exp4_robustness.png
预期:值偏差与 $|\Delta S|_F$ 呈线性关系,斜率随谱正则化权重 $\beta$ 增大而减小;$\kappa(S)$ 通过增大 $\beta$ 被压缩。
探索压缩比与均衡策略效用之间的帕累托前沿。
python experiments/exp05_tradeoff.py
输出:results/figures/exp5_tradeoff.png
预期:最佳点在 $r = 5$:约 $94%$ 参数压缩,效用损失约 $2.3%$。
比较三种变体:(i) 完整算法 1,(ii) 固定基,(iii) 无回缩。
python experiments/exp06_ablation.py
输出:results/figures/exp6_ablation.png
预期:固定基变体停滞;无回缩变体不稳定;完整算法 1 以可控成本实现稳定衰减。
所有随机种子均已固定并报告。每个实验脚本均自包含,可在标准笔记本电脑(仅CPU)上以默认 $n=200$ 配置执行。全规模实验($n \sim 10^3$)在配备 NVIDIA A100 40GB GPU 的 Intel Xeon Gold 6248R 上进行(GPU仅用于加速满秩基线)。
关键超参数:
完整参数列表请参见 src/utils.py 及各实验脚本。
如果您使用此代码,请引用:
@article{dlrne2026,
title={Dynamical Low-Rank Equilibrium Computation for Stochastic Games between Advanced Persistent Threats and Moving Target Defense},
author={Tian, Zijian and Zhang, He and Chen, Xinjie and Wang, Wenhai and Liu, Xinggao},
journal={Automatica},
year={2026},
note={Under review}
}
本项目采用 MIT 许可证。详情请参见 LICENSE。
有关代码或实验的问题,请在 GitHub 上提交 issue。 有关理论内容的问题,请参阅提交至 Automatica 的手稿。