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

534 lines
20 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 颜佳佳论文
## 多智能体随机网络结构的实时精确估算
### 多智能体随机网络特征值滤波建模
#### **1. 状态转移模型**
系统的特征值向量 $\lambda_k$(状态向量)随时间演化的动态方程为:
$$
\lambda_k = \lambda_{k-1} + w_{k-1}
$$
- **参数说明**
- $\lambda_k \in \mathbb{R}^{r \times 1}$$k$ 时刻的特征值向量,$r$ 为特征值个数。
- $w_{k-1} \sim \mathcal{N}(0, {Q})$:过程噪声,均值为零,协方差矩阵为对角阵 $\mathbf{Q} \in \mathbb{R}^{r \times r}$(因特征值独立)。
- **简化假设**
- 状态转移矩阵 $\mathbf{A}$ 和控制输入矩阵 $\mathbf{B}$ 为单位阵或零(无外部控制输入),故模型简化为随机游走形式。
#### **2. 测量模型**
观测到的特征值向量 $z_k$ 为:
$$
z_k = \lambda_k + v_k
$$
- **参数说明**
- $z_k \in \mathbb{R}^{r \times 1}$:观测向量,维度与状态向量相同。
- $v_k \sim \mathcal{N}(0, \mathbf{R})$:测量噪声,协方差 $\mathbf{R} \in \mathbb{R}^{r \times r}$ 为对角阵(噪声独立)。
- **简化假设**
- 测量矩阵 $\mathbf{H}$ 为单位阵,即观测直接反映状态。
#### **3. 噪声协方差矩阵的设定**
- $\mathbf{Q}$ 和 $\mathbf{R}$ 为对角矩阵,对角元素由特征值方差确定:
$$
\mathbf{Q} = \text{diag}(2\sigma_1^2, 2\sigma_2^2, \dots, 2\sigma_r^2), \quad \mathbf{R} = \text{diag}(\sigma_1^2, \sigma_2^2, \dots, \sigma_r^2)
$$
其中 $\sigma_i^2$ 为第 $i$ 个特征值的初始方差由引理3-1推导
## 网络重构分析
### 滤波误差
- **原始全矩阵**
$$
A = X \Lambda X^T = X_r \Lambda_r X_{r}^T + \underbrace{X_{-r} \Lambda_{-r} X_{-r}^T}_{\text{被截掉的尾部}}
$$
- **截断重构(真实)**
$$
A_k = X_r \Lambda_r X_{r}^T
$$
- **滤波后重构**
$$
\hat{A}_r = X_r (\Lambda_r + \Delta \Lambda_r) X_{r}^T
$$
- **卡尔曼滤波误差矩阵**(定义为两者之差):
$$
E_{KF} = \hat{A}_r - A_r = X_r \Delta \Lambda_r X_{r}^T.
$$
---
要量化这个误差,常用矩阵的 Frobenius 范数:
$$
e_{KF} = \| E_{KF} \|_F = \| X_r \Delta \Lambda_r X_r^T \|_F.
$$
由于 $X_K$ 是正交子矩阵(假设特征向量正交归一),有
$$
e_{KF} = \|\Delta \Lambda_K\|_F = \sqrt{\sum_{i=1}^r (\delta \lambda_i)^2}.
$$
---
### **全局误差度量**
对估计矩阵 $\hat{A}_k$ 的所有元素 $\{\hat{a}_{ij}\}$ 进行 $K$-means 聚类,得到中心 $\{c_k\}_{k=1}^K$。
- **簇内平均偏差**
$$
\text{mean}_k = \frac{1}{|\mathcal{S}_k|} \sum_{(i,j)\in\mathcal{S}_k} |\hat{a}_{ij} - c_k|
$$
- **全局允许误差**
$$
\delta_{\max} = \frac{1}{K} \sum_{k=1}^K \text{mean}_k
$$
**最终约束条件**
-
$$
\boxed{
\underbrace{e_{KF}}_{\text{滤波误差}}
\;+\;
\underbrace{\epsilon}_{\text{重构算法误差}}
\;\le\;
\underbrace{\delta_{\max}}_{\text{聚类量化容限}}
}
$$
$$
{\epsilon}\;\le\;
{\delta_{\max}} -e_{KF}
$$
## 网络结构优化
**直接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, ij}$表示在最大发射功率下哪些节点对之间能连通(非零表示可连通,零表示即便满功率也连不通)
- $A_{\max}'$在“连不通”的位置上是1其他位置是0。通过$A_{\max}'$标记禁止修改的零元素位置
- 对于所有满足 $A'_{\max,ij}=1$ 的位置(即物理不可连通的节点对),必须有 $A_{ij}=0$,即始终保持断开
**原始优化目标公式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**
- 通过内层循环行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$),推动收敛。
## 网络结构控制
- **核心目标**:将优化后的低秩稀疏矩阵 $A$ 转化为**实际网络参数**(如功率、带宽),并维持动态网络的**连通性**和**稳定性**。
- **具体实现**
1. 通过PID控制调整发射/接收功率,使实际链路带宽匹配矩阵 $A$ 的优化值。
2. 结合CSMA/CA协议处理多节点竞争确保稀疏网络下的高效通信。
```plaintext
优化模型4.2节)
↓ 生成目标带宽矩阵A
香农公式 → 计算目标Pr → 自由空间公式 → 计算目标Pt
PID控制发射机AGC电压 → 实际Pt ≈ 目标Pt
PID控制接收机AAGC/DAGC → 实际Pr ≈ 目标Pr
实际带宽 ≈ Aij (闭环反馈)
```
- **发射机**
- **功能**:将数据转换为无线信号并通过天线发射。
- **关键参数**:发射功率($P_t$)、天线增益($G_t$)、工作频率(决定波长$\lambda$)。
- **控制目标**通过调整AGC电压动态调节发射功率以匹配优化后的带宽需求矩阵$A$中的$A_{ij}$)。
- **接收机**
- **功能**:接收无线信号并转换为可处理的数据。
- **关键参数**:接收功率($P_r$)、噪声($N_0$)、天线增益($G_r$)。
- **控制目标**通过AAGC/DAGC增益调整确保接收信号强度适合解调维持链路稳定性。
### 具体步骤
**步骤1生成目标带宽矩阵 $A$4.2节优化模型)**
- **数学建模**
- 通过凸松弛优化问题公式4-7得到低秩稀疏矩阵 $A$
$$
\min_A (1-\alpha) \|A\|_* + \alpha \|A\|_1 \quad \text{s.t.} \quad A \in \Omega
$$
- 约束集 $\Omega$ 确保矩阵对称性、保留原有链路($A \odot P = A_{\text{pre}} \odot P$)、禁止不可达链路($A \odot A'_{\max} = 0$)。
- **物理意义**
- 非零元素 $A_{ij}$ 直接表示 **目标信道带宽** $C_{ij}$单位bps
$$
A_{ij} = C_{ij} = W \log_2\left(1 + \frac{P_r}{N_0 W}\right) \quad \text{(香农公式4-10)}
$$
**步骤2从带宽 $A_{ij}$ 反推功率参数**
- **接收功率 $P_r$ 计算**
- 根据香农公式解耦:
$$
P_r = (2^{A_{ij}/W} - 1) N_0 W
$$
- **输入**:噪声 $N_0$、带宽 $W$、目标带宽 $A_{ij}$。
- **发射功率 $P_t$ 计算**
- 通过自由空间公式4-11
$$
P_t = \frac{P_r L (4\pi d)^2}{G_t G_r \lambda^2}
$$
- **输入**:距离 $d$、天线增益 $G_t, G_r$、波长 $\lambda$、损耗 $L$。
- **逻辑分支**
- 若 $A_{ij} \neq A_{\text{pre}ij}$(需调整链路):
- 计算 $P_r$ 和 $P_t$
- 若 $A_{ij} = 0$(无连接):
- 直接设 $P_r = P_t = 0$。
**步骤3发射机功率调整图4-2a**
1. **定义目标**$P_t$来自步骤2
2. **测量实际**:通过传感器获取当前发射功率 $P_{t,\text{actual}}$。
3. **计算偏差**$e(t) = P_t - P_{t,\text{actual}}$。
4. **PID调节**通过AGC电压改变发射功率逼近 $P_t$。
**步骤4接收机功率调整图4-2b**
1. **定义目标**$P_r$来自步骤2
2. **测量实际**:检测空口信号功率 $P_{r,\text{actual}}$。
3. **计算偏差**$e(t) = P_r - P_{r,\text{actual}}$。
4. **PID调节**
- 调整AAGC模拟增益和DAGC数字增益持续监测直至 $|e(t)| < \epsilon$。
## 基于谱聚类的无人机网络充电
### (1) 谱聚类分组Spectral_Clustering表5.1
**目标**将无人机和充电站划分为 $K$ 个簇使充电站位于簇中心
**步骤**
1. **输入**带权邻接矩阵 $A$权值=无人机间距离)、节点数 $N$、充电站数 $K$。
2. **拉普拉斯矩阵**
$$L = D - A, \quad D_{ii} = \sum_j A_{ij}$$
3. **归一化**
$$L_{norm} = D^{-\frac{1}{2}}LD^{\frac{1}{2}}$$
4. **谱分解** $L_{norm}$ $K$ 小特征值对应的特征向量矩阵 $V \in \mathbb{R}^{N \times K}$。
5. **聚类** $V$ 的行向量进行 k-means 聚类得到标签 $\text{labels}$。
**输出**每个无人机/充电站的簇编号 $\text{labels}$。
### (2) 无人机选择充电站表5-2
**目标**电量低的无人机前往对应簇中心的充电站
**步骤**
1. **周期性运行**间隔 $\Delta t$
- 通过 `Push_Sum` 协议获取所有无人机位置 `Positions`
- 计算距离矩阵 $A$。
2. **动态聚类**调用 `Spectral_Clustering(A)` 更新簇标签
3. **充电触发**若电量 $E < P_{th}$向簇中心请求坐标 $\text{CS\_point}$ 并前往
**关键公式**
$$A_{ij} = \| \text{Position}_i - \text{Position}_j \|_2$$
### (3) 充电站跟踪算法表5-3
**目标**充电站动态调整位置至簇中心
**步骤**
1. **周期性运行**间隔 $\Delta t$
- 同无人机算法获取 $A$ `labels`
2. **定位簇中心**
- 充电站根据编号匹配簇标签
- 计算簇内无人机位置均值
$$\text{CS\_point} = \frac{1}{|C_k|} \sum_{i \in C_k} \text{Position}_i$$
其中 $C_k$ 为第 $k$ 簇的节点集合
3. **移动至新中心**并广播位置
---
### (4) 算法改进
**替换通信协议**用第3章的卡尔曼滤波 替代 `Push_Sum`获取特征值特征向量重构全局矩阵 $A$减少消息传递
## 基于T-GAT的无人机群流量预测
### TCN
流量矩阵 $X \in \mathbb{R}^{N \times T}$其中
- $N$无人机节点数量例如10架无人机)。
- $T$时间步数量
- 每个元素 $X_{i,t}$ 表示第 $i$ 个节点在时间 $t$ **总流量**如发送/接收的数据包数量或带宽占用)。
**流量矩阵的形状**
假设有3架无人机记录5个时间步的流量数据矩阵如下
$$
X = \begin{bmatrix} 100 & 150 & 200 & 180 & 220 \\[6pt] 50 & 75 & 100 & 90 & 110 \\[6pt] 80 & 120 & 160 & 140 & 170 \end{bmatrix}
$$
- ** ($N=3$)**每行代表一架无人机的历史流量序列例如第1行表示无人机1的流量变化100 150 200 180 220)。
- ** ($T=5$)**:每列代表所有无人机在**同一时间步**的流量状态例如第1列表示在时间 $t_1$ 三架无人机的流量分别为[100, 50, 80])。
**TCN处理流量矩阵**
- **卷积操作**
TCN 的每个卷积核会滑动扫描所有**通道**即所有无人机的时序数据
**例如**一个大小为 3 的卷积核会同时分析每架无人机连续 3 个时间步的流量例如从 $t_1$ $t_3$以提取局部时序模式
- **输出时序特征**
经过多层扩张卷积和残差连接后TCN 会输出一个高阶特征矩阵 $H_T^l$其形状与输入类似例如 `(1, 3, 5)`但每个时间步的值已包含了
- **趋势信息**流量上升或下降的长期规律
TCN的卷积核仅在**单个通道内滑动**计算时仅依赖该节点自身的历史时间步节点间的交互是通过后续的**图注意力网络GAT**实现的
### 与 GAT 的衔接
- TCN 输出的特征矩阵 $H_T^l$ 会传递给 GAT 进行进一步处理
- **时间步对齐**通常取最后一个时间步的特征例如 `H_T^l[:, :, -1]`作为当前节点特征
- **空间聚合**GAT 根据邻接矩阵计算无人机间的注意力权重例如考虑无人机2的当前流量可能受到无人机1过去3分钟流量变化的影响”。
### **LSTM+GAT训练过程说明RWP网络节点移动预测**
先LSTM后GAT侧重点在时序特征的提取先GAT后LSTM侧重点在空间特征的提取
#### **1. 数据构造**
**输入数据**
- **节点轨迹数据**
- 每个节点在1000个时间单位内的二维坐标 $(x, y)$形状为 $[N, 1000, 2]$$N$个节点1000个时间步2维特征)。
- **动态邻接矩阵序列**
- 每个时间步的节点连接关系基于距离阈值或其他规则生成得到1000个邻接矩阵 $[A_1, A_2, \dots, A_{1000}]$每个 $A_t$ 的形状为 $[2, \text{num\_edges}_t]$稀疏表示)。
**滑动窗口处理**
- **窗口大小**12用前12个时间步预测第13个时间步)。
- **滑动步长**1每次滑动1个时间步生成更多训练样本)。
- **生成样本数量**
- 总时间步1000窗口大小12 可生成 $1000 - 12 = 988$ 个样本
**样本格式**
- **输入序列** $X^{(i)}$形状 $[N, 12, 2]$$N$个节点12个时间步2维坐标)。
- **目标输出** $Y^{(i)}$形状 $[N, 2]$第13个时间步所有节点的坐标)。
- **动态邻接矩阵**每个样本对应12个邻接矩阵 $[A^{(i)}_1, A^{(i)}_2, \dots, A^{(i)}_{12}]$每个 $A^{(i)}_t$ 形状 $[2, \text{num\_edges}_t]$)。
---
#### **2. 训练过程**
**模型结构**
1. **LSTM层**
- 输入$[N, 12, 2]$$N$个节点的12步历史轨迹)。
- 输出每个节点的时序特征 $[N, 12, H]$$H$为LSTM隐藏层维度)。
- **关键点**LSTM独立处理每个节点的时序节点间无交互
2. **GAT层**
- 输入取LSTM最后一个时间步的输出 $[N, H]$即每个节点的最终时序特征)。
- 动态图输入使用第12个时间步的邻接矩阵 $A^{(i)}_{12}$形状 $[2, \text{num\_edges}]$)。
- 输出通过图注意力聚合邻居信息得到空间增强的特征 $[N, H']$$H'$为GAT输出维度)。
3. **预测层**
- 全连接层将 $[N, H']$ 映射到 $[N, 2]$预测下一时刻的坐标
**训练步骤**
1. **前向传播**
- 输入 $[N, 12, 2]$ LSTM $[N, 12, H]$ 取最后时间步 $[N, H]$ GAT $[N, H']$ 预测 $[N, 2]$。
2. **损失计算**
- 均方误差MSE损失比较预测坐标 $[N, 2]$ 和真实坐标 $[N, 2]$。
3. **反向传播**
- 梯度从预测层回传到GAT和LSTM更新所有参数
---
#### **3. 数据维度变化总结**
| **步骤** | **数据形状** | **说明** |
| --------------------- | -------------- | -------------------------------------- |
| 原始输入 | $[N, 1000, 2]$ | $N$个节点1000个时间步的$(x,y)$坐标 |
| 滑动窗口样本 | $[N, 12, 2]$ | 每个样本包含12个历史时间步 |
| LSTM输入 | $[N, 12, 2]$ | 输入LSTM的节点独立时序数据 |
| LSTM输出 | $[N, 12, H]$ | $H$为LSTM隐藏层维度 |
| GAT输入最后时间步 | $[N, H]$ | 提取每个节点的最终时序特征 |
| GAT输出 | $[N, H']$ | $H'$为GAT输出维度含邻居聚合信息 |
| 预测输出 | $[N, 2]$ | 下一时刻的$(x,y)$坐标预测 |
---
#### **4. 关键注意事项**
1. **动态图的处理**
- 每个滑动窗口样本需匹配对应时间步的邻接矩阵如第 $i$ $i+11$ 步的 $[A^{(i)}_1, \dots, A^{(i)}_{12}]$但GAT仅使用最后一步 $A^{(i)}_{12}$。
- 若图结构变化缓慢可简化为所有窗口共享 $A^{(i)}_{12}$。
2. **数据划分**
- 按时间划分训练/验证集如前800个窗口训练后188个验证避免未来信息泄露
颜佳佳论文问题
卡尔曼滤波预测了流量矩阵但是又要TCN-GAT预测了流量矩阵是否可以将TCN-GAT预测流量矩阵作为卡尔曼滤波的观测值