md_files/科研/颜佳佳论文.md

5.0 KiB
Raw Blame History

颜佳佳论文

网络结构优化

直接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 范数)和低秩性(核范数)的系数。
    • itersADMM迭代次数。
image-20250403150317427
算法步骤详解

(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 为步长)。
      • 本质:通过迭代强制 AP 标记的位置与 A_{pre} 一致。
    • 行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})$(对偶变量更新)。

(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 的稀疏性。

(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$),推动收敛。