5.0 KiB
5.0 KiB
颜佳佳论文
网络结构优化
直接SNMF分解(无优化)
- 输入矩阵:原始动态网络邻接矩阵 $A$(可能稠密或高秩)
- 处理流程:
- 直接对称非负矩阵分解:
A \approx UU^T
- 通过迭代调整$U$和旋转矩阵$Q$逼近目标
- 直接对称非负矩阵分解:
- 存在问题:
- 高秩矩阵需要保留更多特征值($\kappa$较大)
- 非稀疏矩阵计算效率低
先优化再SNMF(论文方法)
- 优化阶段(ADMM):
- 目标函数:
\min_{A_{\text{opt}}} (1-\alpha)\|A_{\text{opt}}\|_* + \alpha\|A_{\text{opt}}\|_1
- 输出优化矩阵
A_{\text{opt}}
- 目标函数:
- SNMF阶段:
- 输入变为优化后的
A_{\text{opt}}
- 保持相同分解流程但效率更高
- 输入变为优化后的
网络优化中的邻接矩阵重构问题建模与优化
可行解集合定义(公式4-4)
\Omega = \left\{ A \middle| A^T = A,\, A \odot P = A_{\text{pre}} \odot P,\, A \odot A_{\max}' = 0 \right\}
- $A^T = A$:确保邻接矩阵对称
- $A \odot P = A_{\text{pre}} \odot P$:掩码矩阵
P
,指定位置的原始值($\odot$为Hadamard积) - $A \odot A_{\max}' = 0$:功率约束矩阵
\ A_{\max}'
禁止在原本无连接的节点间新增边
限制矩阵$A_{\max}'$的定义(公式4-5)
A'_{\max, ij} =
\begin{cases}
0, & \text{若 } A_{\max, ij} \ne 0 \\
1, & \text{若 } A_{\max, ij} = 0
\end{cases}
- 通过$A_{\max}'$标记禁止修改的零元素位置
原始优化目标(公式4-6)
\min_{A} \, (1-\alpha)\, \text{rank}(A) + \alpha \|A\|_0
\|A\|_0
表示矩阵 A
中非零元素的个数
- 目标:平衡低秩性($\text{rank}(A)$)与稀疏性($|A|_0$)
- 问题:非凸、不可导,难以直接优化
凸松弛后的目标(公式4-7)
\min_{A} \, (1-\alpha)\, \|A\|_* + \alpha \|A\|_1
- 核范数$|A|_*$:奇异值之和,替代
\text{rank}(A)
- L1范数$|A|_1$:元素绝对值和,替代
\|A\|_0
- 性质:凸优化问题,存在全局最优解
求解方法
- 传统方法:
可转化为**半定规划(SDP)**问题,使用内点法等求解器。但缺点是计算效率低,尤其当矩阵规模大(如多智能体网络节点数
n
很大)时不可行。 - 改进方法: 采用ADMM(交替方向乘子法)结合投影和对偶上升的方法,适用于动态网络(矩阵频繁变化的情况)。
ADMM核心算法
变量定义与作用
- 输入变量:
- $A_{pre}$:初始邻接矩阵(优化前的网络拓扑)。
- $P$:对称的0-1矩阵,用于标记
A_{pre}
中非零元素的位置(保持已有边不变)。 - $A'{max}$:功率最大时的邻接矩阵的补集(
A'_{maxij} = 1
表示 $A{maxij} = 0$,即不允许新增边)。 - $\alpha$:权衡稀疏性(
L_1
范数)和低秩性(核范数)的系数。 - iters:ADMM迭代次数。

算法步骤详解
(S.1) 更新原始变量 $A$(对应ADMM的$x$步)
- 代码行4-17:通过内层循环(投影和对偶上升)更新 $A$。
- 行4-11:将
A
投影到约束A \odot P = A_{\text{pre}} \odot P
的集合。- 通过内层循环(行8-11)迭代更新 $R$,本质是梯度投影法:
- $temp_R^{k+1} = M - X^k \odot A_{\text{pre}}$(计算残差)。
- $X^{k+1} = X^k + \beta(A_{\text{pre}} \odot temp_R^{k+1})$(梯度上升步,
\beta
为步长)。
- 本质:通过迭代强制
A
在P
标记的位置与A_{pre}
一致。
- 通过内层循环(行8-11)迭代更新 $R$,本质是梯度投影法:
- 行13-17:将
A
投影到A \odot A'_{\text{max}} = 0
的集合。- 类似地,通过内层循环(行14-17)更新 $Y$:
- $temp_A^{k+1} = D_2 - Y^k \odot A'_{\text{max}}$(残差计算)。
- $Y^{k+1} = Y^k + \gamma(A'_{\text{max}} \odot temp_A^{k+1})$(对偶变量更新)。
- 类似地,通过内层循环(行14-17)更新 $Y$:
- 行4-11:将
(S.2) 更新辅助变量 $Z_1, Z_2$(对应ADMM的$z$步)
通过阈值操作分离目标函数的两部分:
- 行18-19:分别对核范数和
L_1
范数进行阈值操作:- $Z_1^{t+1} = T_r(A^{t+1} + U_1^t)$:
T_r(\cdot)
是奇异值阈值算子(核范数投影),对A + U1
做SVD分解,保留前r
个奇异值。作用:把自己变成低秩矩阵=》强制A
低秩。 - $Z_2^{t+1} = S_{\alpha}(A^{t+1} + U_2^t)$:
S_{\alpha}(\cdot)
是软阈值算子(L_1
范数投影),将小于\alpha
的元素置零。把自己变成稀疏矩阵=》促进A
的稀疏性。
- $Z_1^{t+1} = T_r(A^{t+1} + U_1^t)$:
(S.3) 更新 拉格朗日乘子$U_1, U_2$(对应ADMM的对偶上升)
- 行20-21:通过残差
(A - Z)
调整拉格朗日乘子 $U_1, U_2$:- $U_1^{t+1} = U_1^t + A^{t+1} - Z_1^{t+1}$(核范数约束的乘子更新)。
- $U_2^{t+1} = U_2^t + A^{t+1} - Z_2^{t+1}$(
L_1
范数约束的乘子更新)。 - 作用:惩罚
A
与辅助变量Z1, Z2
的偏差(迫使$A$更贴近$Z$),推动收敛。