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

20 KiB
Raw Permalink Blame History

颜佳佳论文

多智能体随机网络结构的实时精确估算

多智能体随机网络特征值滤波建模

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 范数)和低秩性(核范数)的系数。
    • itersADMM迭代次数。
image-20250403150317427

算法步骤详解

(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 为步长)。
      • 本质:通过迭代强制 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$),推动收敛。

网络结构控制

  • 核心目标:将优化后的低秩稀疏矩阵 A 转化为实际网络参数(如功率、带宽),并维持动态网络的连通性稳定性
  • 具体实现
    1. 通过PID控制调整发射/接收功率,使实际链路带宽匹配矩阵 A 的优化值。
    2. 结合CSMA/CA协议处理多节点竞争确保稀疏网络下的高效通信。
优化模型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$
    • 同无人机算法获取 Alabels
  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. 动态图的处理

    • 每个滑动窗口样本需匹配对应时间步的邻接矩阵(如第 ii+11 步的 $[A^{(i)}1, \dots, A^{(i)}{12}]$但GAT仅使用最后一步 $A^{(i)}_{12}$。
    • 若图结构变化缓慢,可简化为所有窗口共享 $A^{(i)}_{12}$。
  2. 数据划分

    • 按时间划分训练/验证集如前800个窗口训练后188个验证避免未来信息泄露。

颜佳佳论文问题:

卡尔曼滤波预测了流量矩阵但是又要TCN-GAT预测了流量矩阵是否可以将TCN-GAT预测流量矩阵作为卡尔曼滤波的观测值。