✅作者简介:热爱科研的Matlab仿真开发者,擅长毕业设计辅导、数学建模、数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。

🍎 往期回顾关注个人主页:Matlab科研工作室

 👇 关注我领取海量matlab电子书和数学建模资料 

🍊个人信条:格物致知,完整Matlab代码获取及仿真咨询内容私信。

🔥 内容介绍 

一、引言

在灾后救援场景中,多无人机的有效部署对于快速获取灾区信息、实施救援行动至关重要。通过合理安排无人机的位置,实现对灾区的全面覆盖,能够及时发现幸存者、评估灾害损失等。贪心算法因其简单高效的特性,常被用于解决此类资源分配和覆盖问题。结合不同阈值方法,可以进一步优化无人机的部署策略,以达到更好的覆盖效果。

二、灾后场景建模

  1. 灾区区域划分

    :将受灾区域划分为多个小的网格单元。每个网格单元代表一个特定的地理区域,其大小可根据实际情况和精度要求确定。例如,在城市灾区,可以将每个网格单元设定为边长 10 米的正方形,以确保对建筑物等细节的有效覆盖。

  2. 目标与需求定义

    :确定需要覆盖的目标,如人口密集区域、关键基础设施(医院、变电站等)。为每个目标赋予不同的权重,反映其在救援行动中的重要性。例如,医院的权重可设定为高于一般居民区,因为医院在灾后医疗救援中起着关键作用。同时,明确无人机的覆盖能力,包括其飞行范围、信号覆盖半径等。

三、贪心算法基础

  1. 算法原理

    :贪心算法在每一步决策中都选择当前看来最优的方案,而不考虑整体的最优解。在多无人机覆盖问题中,贪心算法从初始状态开始,每次选择一个无人机的部署位置,使得在当前步骤下,能够最大程度地覆盖未被覆盖的目标区域或重要目标。

  2. 基本步骤

    • 初始化

      :将所有网格单元标记为未覆盖状态,初始化无人机的位置集合为空。

    • 选择最佳位置

      :对于每架无人机,计算在各个未部署位置部署后所能覆盖的目标区域或重要目标的权重总和。选择权重总和最大的位置作为该无人机的部署点。

    • 更新状态

      :将该无人机覆盖范围内的网格单元标记为已覆盖,更新未覆盖区域和目标的信息。

    • 重复步骤

      :重复上述选择最佳位置和更新状态的步骤,直到所有无人机都部署完毕,或者达到预设的覆盖要求。

四、结合不同阈值方法

  1. 距离阈值法

    :设定一个距离阈值 d。在选择无人机部署位置时,除了考虑覆盖目标的权重,还需确保新部署的无人机与已部署无人机的距离大于 d。这可以避免无人机部署过于集中,导致部分区域无法覆盖。例如,当 d=200 米时,新选择的无人机部署点与已有的无人机部署点直线距离应超过 200 米。这样可以使无人机在灾区更均匀地分布,提高整体覆盖效果。

  2. 覆盖度阈值法

    :定义一个覆盖度阈值 c。在每次选择无人机部署位置后,计算当前已覆盖区域的覆盖度(如已覆盖目标区域的权重总和占总目标权重的比例)。如果当前覆盖度已经达到或超过 c,则停止部署更多无人机。例如,当 c=90% 时,一旦已覆盖区域的权重总和达到所有目标权重总和的 90%,就不再继续部署无人机,以避免资源浪费。

  3. 优先级阈值法

    :根据目标的优先级设定不同的阈值。对于高优先级目标(如医院、消防站点),设定较高的覆盖要求阈值,确保这些关键目标得到充分覆盖。例如,要求高优先级目标的覆盖度达到 100%,而对于一般优先级目标,覆盖度达到 80% 即可。在部署无人机时,优先满足高优先级目标的覆盖需求,然后再考虑其他目标。

⛳️ 运行结果

📣 部分代码

clc

clear all

close all

% Constants

c = 3e8;  % Speed of light in m/s

altitude = 150;  % UAV altitude in meters

% Define grid dimensions in meters

x_range = [-300, 500];  % X-axis range in meters

y_range = [-300, 500];  % Y-axis range in meters

% Define grid

grid_points = 500;

x = linspace(x_range(1), x_range(2), grid_points);

y = linspace(y_range(1), y_range(2), grid_points);

[X, Y] = meshgrid(x, y);

% User input for number of UAVs

num_uavs = input('Enter the number of UAVs: ');

while num_uavs < 1

    num_uavs = input('Please enter a positive number of UAVs: ');

end

% Assign frequencies linearly from 2 GHz to 3 GHz

freq_start = 2e9; % 2 GHz

freq_end = 3e9;   % 3 GHz

uav_frequencies = linspace(freq_start, freq_end, num_uavs); % Unique frequencies

% Generate random positions for UAVs within the specified range

uav_positions = [ 

    x_range(1) + (x_range(2) - x_range(1)) * rand(1, num_uavs); 

    y_range(1) + (y_range(2) - y_range(1)) * rand(1, num_uavs);

    altitude * ones(1, num_uavs); % Fixed altitude

    20 * ones(1, num_uavs)        % Transmit power (20 dBm)

];

% Initialize signal strength matrix (in dBm) for each UAV

signal_strength = zeros(grid_points, grid_points, num_uavs);

% Calculate FSPL and signal strength for each UAV

for k = 1:num_uavs

    % UAV position and properties

    uav_x = uav_positions(1, k);

    uav_y = uav_positions(2, k);

    uav_z = uav_positions(3, k);

    Pt = uav_positions(4, k); % Transmit power in dBm

    freq = uav_frequencies(k); % Unique frequency

    % Distance from UAV to each grid point (3D Euclidean distance)

    d = sqrt((X - uav_x).^2 + (Y - uav_y).^2 + uav_z.^2);

    % Free Space Path Loss (FSPL) in dB

    FSPL = 20 * log10(d) + 20 * log10(freq) + 20 * log10(4 * pi / c);

    % Received power in dBm

    signal_strength(:,:,k) = Pt - FSPL;

end

% Determine which UAV has the highest signal strength at each grid point

[strongest_signal, strongest_uav] = max(signal_strength, [], 3);

% Normalize the strongest signal strength (0 to 1)

normalized_signal = (strongest_signal - min(strongest_signal(:))) / ...

                   (max(strongest_signal(:)) - min(strongest_signal(:)));

% === Plot normalized combined heat map and dominant UAV map next to each other ===

figure('Position', [100, 100, 1200, 500]);

% --- Subplot 1: Normalized Strongest Signal Strength ---

subplot(1,2,1); % 1 row, 2 columns, 1st plot

imagesc(x_range, y_range, normalized_signal);

colormap('parula');

colorbar;

title('Normalized Strongest Signal Strength');

xlabel('X (m)');

ylabel('Y (m)');

axis xy equal tight;

caxis([0, 1]); % Normalized scale

hold on;

scatter(uav_positions(1,:), uav_positions(2,:), 36, 'ko', 'filled', 'MarkerEdgeColor', 'k', 'MarkerFaceColor', 'w');

for k = 1:num_uavs

    text(uav_positions(1,k) + 10, uav_positions(2,k), ['UAV ', num2str(k)], 'Color', 'white');

end

hold off;

% --- Subplot 2: Dominant UAV per Grid Point ---

subplot(1,2,2); % 1 row, 2 columns, 2nd plot

imagesc(x_range, y_range, strongest_uav);

colormap('parula');

colorbar('Ticks', 1:num_uavs, 'TickLabels', arrayfun(@(x) ['UAV ', num2str(x)], 1:num_uavs, 'UniformOutput', false));

title('Dominant UAV per Grid Point');

xlabel('X (m)');

ylabel('Y (m)');

axis xy equal tight;

hold on;

scatter(uav_positions(1,:), uav_positions(2,:), 36, 'ko', 'filled', 'MarkerEdgeColor', 'k', 'MarkerFaceColor', 'w');

hold off;

🔗 参考文献

[1]章雨鹏.移动边缘计算场景下的移动性支持和资源分配研究[D].电子科技大学,2019.

图片

🎈 部分理论引用网络文献,若有侵权联系博主删除

🏆团队擅长辅导定制多种毕业课题科研领域

MATLAB仿真,助力毕业科研梦:

🌈 各类智能优化算法改进及应用
生产调度、经济调度、装配线调度、充电优化、车间调度、发车优化、水库调度、三维装箱、物流选址、货位优化、公交排班优化、充电桩布局优化、车间布局优化、集装箱船配载优化、水泵组合优化、解医疗资源分配优化、设施布局优化、可视域基站和无人机选址优化、背包问题、 风电场布局、时隙分配优化、 最佳分布式发电单元分配、多阶段管道维修、 工厂-中心-需求点三级选址问题、 应急生活物质配送中心选址、 基站选址、 道路灯柱布置、 枢纽节点部署、 输电线路台风监测装置、 集装箱调度、 机组优化、 投资优化组合、云服务器组合优化、 天线线性阵列分布优化、CVRP问题、VRPPD问题、多中心VRP问题、多层网络的VRP问题、多中心多车型的VRP问题、 动态VRP问题、双层车辆路径规划(2E-VRP)、充电车辆路径规划(EVRP)、油电混合车辆路径规划、混合流水车间问题、 订单拆分调度问题、 公交车的调度排班优化问题、航班摆渡车辆调度问题、选址路径规划问题、港口调度、港口岸桥调度、停机位分配、机场航班调度、泄漏源定位
🌈 机器学习和深度学习时序、回归、分类、聚类和降维

2.1 bp时序、回归预测和分类

2.2 ENS声神经网络时序、回归预测和分类

2.3 SVM/CNN-SVM/LSSVM/RVM支持向量机系列时序、回归预测和分类

2.4 CNN|TCN|GCN卷积神经网络系列时序、回归预测和分类

2.5 ELM/KELM/RELM/DELM极限学习机系列时序、回归预测和分类
2.6 GRU/Bi-GRU/CNN-GRU/CNN-BiGRU门控神经网络时序、回归预测和分类

2.7 ELMAN递归神经网络时序、回归\预测和分类

2.8 LSTM/BiLSTM/CNN-LSTM/CNN-BiLSTM/长短记忆神经网络系列时序、回归预测和分类

2.9 RBF径向基神经网络时序、回归预测和分类

2.10 DBN深度置信网络时序、回归预测和分类
2.11 FNN模糊神经网络时序、回归预测
2.12 RF随机森林时序、回归预测和分类
2.13 BLS宽度学习时序、回归预测和分类
2.14 PNN脉冲神经网络分类
2.15 模糊小波神经网络预测和分类
2.16 时序、回归预测和分类
2.17 时序、回归预测预测和分类
2.18 XGBOOST集成学习时序、回归预测预测和分类
2.19 Transform各类组合时序、回归预测预测和分类
方向涵盖风电预测、光伏预测、电池寿命预测、辐射源识别、交通流预测、负荷预测、股价预测、PM2.5浓度预测、电池健康状态预测、用电量预测、水体光学参数反演、NLOS信号识别、地铁停车精准预测、变压器故障诊断
🌈图像处理方面
图像识别、图像分割、图像检测、图像隐藏、图像配准、图像拼接、图像融合、图像增强、图像压缩感知
🌈 路径规划方面
旅行商问题(TSP)、车辆路径问题(VRP、MVRP、CVRP、VRPTW等)、无人机三维路径规划、无人机协同、无人机编队、机器人路径规划、栅格地图路径规划、多式联运运输问题、 充电车辆路径规划(EVRP)、 双层车辆路径规划(2E-VRP)、 油电混合车辆路径规划、 船舶航迹规划、 全路径规划规划、 仓储巡逻
🌈 无人机应用方面
无人机路径规划、无人机控制、无人机编队、无人机协同、无人机任务分配、无人机安全通信轨迹在线优化、车辆协同无人机路径规划
🌈 通信方面
传感器部署优化、通信协议优化、路由优化、目标定位优化、Dv-Hop定位优化、Leach协议优化、WSN覆盖优化、组播优化、RSSI定位优化、水声通信、通信上传下载分配
🌈 信号处理方面
信号识别、信号加密、信号去噪、信号增强、雷达信号处理、信号水印嵌入提取、肌电信号、脑电信号、信号配时优化、心电信号、DOA估计、编码译码、变分模态分解、管道泄漏、滤波器、数字信号处理+传输+分析+去噪、数字信号调制、误码率、信号估计、DTMF、信号检测
🌈电力系统方面
微电网优化、无功优化、配电网重构、储能配置、有序充电、MPPT优化、家庭用电
🌈 元胞自动机方面
交通流 人群疏散 病毒扩散 晶体生长 金属腐蚀
🌈 雷达方面
卡尔曼滤波跟踪、航迹关联、航迹融合、SOC估计、阵列优化、NLOS识别
🌈 车间调度
零等待流水车间调度问题NWFSP 、 置换流水车间调度问题PFSP、 混合流水车间调度问题HFSP 、零空闲流水车间调度问题NIFSP、分布式置换流水车间调度问题 DPFSP、阻塞流水车间调度问题BFSP
Logo

助力广东及东莞地区开发者,代码托管、在线学习与竞赛、技术交流与分享、资源共享、职业发展,成为松山湖开发者首选的工作与学习平台

更多推荐