2025-03-18 12:46:59 +08:00
|
|
|
|
## 颜佳佳论文
|
|
|
|
|
|
2025-04-02 18:28:46 +08:00
|
|
|
|
### 网络结构优化
|
|
|
|
|
|
|
|
|
|
**直接SNMF分解(无优化)**
|
|
|
|
|
|
2025-04-03 17:42:27 +08:00
|
|
|
|
- 输入矩阵:原始动态网络邻接矩阵 $A$(可能稠密或高秩)
|
|
|
|
|
- 处理流程:
|
2025-04-02 18:28:46 +08:00
|
|
|
|
- 直接对称非负矩阵分解:$A \approx UU^T$
|
|
|
|
|
- 通过迭代调整$U$和旋转矩阵$Q$逼近目标
|
2025-04-03 17:42:27 +08:00
|
|
|
|
- 存在问题:
|
2025-04-02 18:28:46 +08:00
|
|
|
|
- 高秩矩阵需要保留更多特征值($\kappa$较大)
|
2025-04-03 17:42:27 +08:00
|
|
|
|
- 非稀疏矩阵计算效率低
|
2025-04-02 18:28:46 +08:00
|
|
|
|
|
|
|
|
|
**先优化再SNMF(论文方法)**
|
|
|
|
|
|
2025-04-03 17:42:27 +08:00
|
|
|
|
- 优化阶段(ADMM):
|
2025-04-02 18:28:46 +08:00
|
|
|
|
- 目标函数:$\min_{A_{\text{opt}}} (1-\alpha)\|A_{\text{opt}}\|_* + \alpha\|A_{\text{opt}}\|_1$
|
|
|
|
|
- 输出优化矩阵$A_{\text{opt}}$
|
2025-04-03 17:42:27 +08:00
|
|
|
|
- SNMF阶段:
|
2025-04-02 18:28:46 +08:00
|
|
|
|
- 输入变为优化后的$A_{\text{opt}}$
|
|
|
|
|
- 保持相同分解流程但效率更高
|
2025-04-03 17:42:27 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#### 网络优化中的邻接矩阵重构问题建模与优化
|
|
|
|
|
|
|
|
|
|
**可行解集合定义(公式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迭代次数。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<img src="https://pic.bitday.top/i/2025/04/03/ouy27i-0.png" alt="image-20250403150317427" style="zoom:80%;" />
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
##### **算法步骤详解**
|
|
|
|
|
|
|
|
|
|
**(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}$ 一致。
|
|
|
|
|
- **行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$),推动收敛。
|