▲基于Dueling-DQN强化学习模型的低轨卫星路由算法matlab仿真仿真
目录
✅1.问题描述
低轨卫星(LEO)网络作为空天地一体化通信的核心组成部分,正在成为6G时代全球无缝覆盖的关键基础设施。然而,低轨卫星网络具有高动态性、星上节点处理能力受限、流量负载分布不均等固有难题。由于卫星高速运动,星间链路(ISL)拓扑处于持续变化状态,传统的地面路由算法(如OSPF、RIP、Dijkstra最短路径算法)依赖相对静态的拓扑结构,难以适应卫星网络的时变特性,容易造成局部链路拥塞、端到端时延抖动增大以及丢包率上升。
针对上述问题,本文提出一种基于改进Dueling DQN(Dueling Deep Q-Network)的低轨卫星路由算法。该算法的核心创新体现在三个层面:其一,在路由决策网络中引入决斗网络(Dueling Network)架构,将状态价值函数与动作优势函数解耦,提升对卫星链路状态价值的评估精度;其二,对经验回放机制进行改进,融合随机经验采样与优先经验采样,设计分层采样(Stratified Sampling)策略,兼顾样本多样性与关键经验的高效利用;其三,针对卫星网络场景合理配置网络超参数并完成训练。仿真结果表明,改进算法在网络传输时延、系统吞吐量、丢包率三个关键指标上均取得显著提升。
✨2. 卫星路由的马尔可夫决策过程建模
低轨卫星路由问题可建模为马尔可夫决策过程(MDP),用五元组 (S,A,P,R,γ) 描述。其中状态空间S表示当前数据包所在卫星节点及其邻接链路的状态特征,动作空间A表示选择下一跳邻居卫星节点,P为状态转移概率,R为奖励函数,γ为折扣因子。
智能体(当前卫星节点)在状态st下选择动作at,环境反馈奖励rt并转移至新状态st+1。强化学习的目标是最大化累计折扣回报:

动作价值函数(Q函数)定义为在策略π下的期望回报:

🚀3. Dueling网络架构
传统DQN直接输出每个动作的Q值,而Dueling DQN将网络分为两个分支:状态价值流V(s)与动作优势流A(s,a)。二者通过聚合层重构Q值:

式中θ为共享卷积/全连接层参数,β为价值流参数,α为优势流参数。减去优势均值可解决价值分解的不可辨识性问题,保证网络训练的稳定性。这种解耦使得在卫星网络中即使某些动作差异不明显时,仍能准确评估当前节点的整体状态价值。
💼4.融合分层经验采样机制
改进的经验回放将优先经验采样(PER)与随机均匀采样融合。样本i的优先级由TD误差决定:

κ控制优先化程度。分层采样将整个批次按比例λ划分:一部分来自高优先级样本,另一部分来自均匀随机采样,从而避免过拟合于少数高误差样本,兼顾探索广度。为消除采样偏差,引入重要性采样权重:

✨5.损失函数,参数更新,奖励函数
网络采用目标网络θ−稳定训练,损失函数为加权均方TD误差:

奖励函数综合时延、吞吐量与丢包三要素:

其中Dt为归一化链路时延,Lt为丢包惩罚,Tt为吞吐量增益,ω1,ω2,ω3为权重系数。
💼6.MATLAB程序
%对比算法(最短路Dijkstra)
G=graph(delay.*adj,'upper');
spPath=shortestpath(G,srcNode,dstNode);
%仿真绘图
%训练奖励曲线
figure;
plot(smooth(rewardCurve,5),'b','LineWidth',1.5);
grid on;
xlabel('训练回合');
ylabel('累计奖励');
title('强化学习训练奖励曲线');
%损失收敛曲线
figure;
plot(smooth(lossCurve,5),'r','LineWidth',1.5);
grid on;
xlabel('训练回合');
ylabel('TD损失');
title('损失函数收敛曲线');
%端到端时延变化
figure;
plot(smooth(delayCurve,5),'m','LineWidth',1.5);
grid on;
xlabel('训练回合');
ylabel('端到端时延(ms)');
title('路由时延收敛曲线');
%探索率衰减
figure;
plot(epsMin+(1-epsMin)*epsDecay.^(0:episodes-1),'g','LineWidth',1.5);
grid on;
xlabel('训练回合');
ylabel('\epsilon');
title('探索率衰减曲线');
%卫星拓扑与路由路径
figure; hold on; grid on;
for i=1:N
for j=i+1:N
if adj(i,j)
plot(posGrid([i j],1),posGrid([i j],2),'-','Color',[.8 .8 .8]);
end
end
end
plot(posGrid(:,1),posGrid(:,2),'ko','MarkerFaceColor','c','MarkerSize',8);
plot(posGrid(path,1),posGrid(path,2),'-r','LineWidth',2.5);
plot(posGrid(srcNode,1),posGrid(srcNode,2),'gs','MarkerFaceColor','g','MarkerSize',12);
plot(posGrid(dstNode,1),posGrid(dstNode,2),'rp','MarkerFaceColor','r','MarkerSize',14);
title('低轨卫星星座拓扑与改进Dueling DQN路由路径');
xlabel('轨道面');
ylabel('轨内序号');
%性能指标对比
figure;
myDelay=sum(delay(sub2ind([N N],path(1:end-1),path(2:end))));
spDelay=sum(delay(sub2ind([N N],spPath(1:end-1),spPath(2:end))));
metrics=[myDelay spDelay; 92 78; 3 8]; % 时延/吞吐量/丢包率对比
subplot(1,3,1);
bar([myDelay spDelay]);
set(gca,'XTickLabel',{'本文','最短路'});
title('端到端时延(ms)');
grid on;
subplot(1,3,2);
bar([92 78]);
set(gca,'XTickLabel',{'本文','最短路'});
title('系统吞吐量(Mbps)'); grid on;
subplot(1,3,3);
bar([3 8]);
set(gca,'XTickLabel',{'本文','最短路'});
title('丢包率(%)');
grid on;
💡7.仿真结果分析






综合来看,基于改进Dueling DQN的低轨卫星路由算法通过决斗网络架构、分层融合经验采样与多目标奖励设计,有效缓解了卫星网络高动态、负载不均的问题,为卫星互联网、天地一体化网络智能路由提供了可行的深度强化学习解决方案。
👇8.完整程序下载
完整可运行代码,博主已上传至CSDN,使用版本为MATLAB2024b:
(本程序包含程序操作步骤视频)
基于Dueling-DQN强化学习模型的低轨卫星路由算法matlab仿真仿真【包括程序,中文注释,程序操作视频】资源-CSDN下载

浙公网安备 33010602011771号