✅作者简介:热爱科研的Matlab仿真开发者,擅长毕业设计辅导、数学建模、数据处理、程序设计科研仿真。
🍎完整代码获取 定制创新 论文复现点击:Matlab科研工作室
👇 关注我领取海量matlab电子书和数学建模资料
🍊个人信条:做科研,博学之、审问之、慎思之、明辨之、笃行之,是为:博学慎思,明辨笃行。
🔥 内容介绍
一、引言
无人机自组网(UANET)凭借其灵活部署、快速响应等特性,在应急救援、军事侦察、环境监测等众多领域展现出巨大的应用潜力。然而,由于无人机的高速移动性,UANET 的网络拓扑结构瞬息万变。传统的 AODV 路由协议单纯以跳数作为路由选择的度量标准,难以感知链路质量与稳定性,这使得网络频繁出现链路中断,进而引发大量的路由重建操作,严重影响了网络性能。为有效解决这一难题,本文创新性地将强化学习中的 Q - Learning 算法融入 AODV 路由决策过程,旨在实现兼顾跳数、链路稳定性和节点剩余能量的最优稳定路由选择。
二、相关技术原理
(一)无人机自组网(UANET)
UANET 由多架具备自主通信能力的无人机组成,这些无人机在飞行过程中能够动态地建立和维护网络连接。由于无人机的飞行速度快、机动性强,UANET 的拓扑结构处于不断变化之中,这给路由协议的设计带来了极大挑战。
(二)AODV 路由协议
AODV 是一种按需距离向量路由协议。在 UANET 中,当某个无人机节点有数据要发送且当前没有到达目的节点的有效路由时,它会发起路由请求(RREQ)广播。中间节点接收到 RREQ 后,若自身不是目的节点,则根据跳数等信息决定是否转发该请求。当目的节点收到 RREQ 后,会沿反向路径发送路由回复(RREP),源节点根据收到的 RREP 选择路由。但传统 AODV 仅以跳数为路由选择度量,在 UANET 这种动态网络中,无法适应链路的快速变化。
(三)Q - Learning 算法
⛳️ 运行结果
📣 部分代码
%This code computes the Hadamard Product of two vectors or matrices
%Written by Jhelum Chakravorty
function R = hadamard_prod(vec,mat)
[a,b]=size(mat);
for i=1:a
for j=1:b
R(i,j) = vec(i)*mat(i,j);
end
end
% R(1:-k+n+1,:) = epsil*mat(1:-k+n+1,:);
% R(k+n+1:2*n+1,:) = epsil*mat(k+n+1:2*n+1,:);
% R(-k+n+2:k+n,:) = mat(-k+n+2:k+n,:);