Akun-python/mountain-flood-uav-optimization · 上手攻略

  • 仓库:Akun-python/mountain-flood-uav-optimization
  • 链接:https://github.com/Akun-python/mountain-flood-uav-optimization
  • 分类:optimization · operations-research · uav-scheduling
  • 作者:Jay
  • 更新:2026-09-26

这是什么

这是 2026 年华为杯中国研究生数学建模竞赛 D 题的完整开源解决方案仓库。题目要求:在广西山区洪涝灾害场景下,用无人机运输 80 箱应急物资到 15 个服务区,同时保证全程通信无盲区。仓库提供从问题建模、算法求解、结果校验到 LaTeX 论文的全链路可复现代码与文档,并持续根据社区反馈迭代优化(当前版本 v24,2026-09-25)。

核心挑战包含四个递进子问题: - 问题一:单点最大安全载荷 + 货箱组批 - 问题二:异构无人机多点多架次调度(8 运输机 + 14 组电池) - 问题三:运输与中继通信联合调度(2 架中继) - 问题四:任务分区与库存资源配置

解决什么问题

这是一道典型的 组合优化 + 联合调度 问题,融合了: - 山区地形约束下的飞行能耗建模(等效航程法,指数 3/2) - 异构机队多目标调度(最小化迟到 + 最小化能耗) - 通信中继布设优化(30m DEM 地形遮挡判定) - 资源分区与集中调度的权衡分析

对于希望学习运筹优化、无人机调度、组合优化算法(模拟退火/遗传/ALNS/禁忌搜索/GRASP)的学习者和参赛者,这是目前少见的完整可复现竞赛级求解方案。

快速安装

git clone https://github.com/Akun-python/mountain-flood-uav-optimization.git
cd mountain-flood-uav-optimization

依赖环境

依赖 版本 说明
Python 3.11+ 主要求解代码
NumPy / SciPy 最新 数值计算
pandas / openpyxl 最新 数据处理、Excel 提交模板读写
scipy.io 最新 读取 30m DEM .mat 地形文件
LaTeX (XeLaTeX) 最新 论文编译,需 gmcmthesis 模板

conda/pip 安装示例:

pip install numpy scipy pandas openpyxl

⚠️ 30m DEM 地形数据(.mat 文件)和官方题目数据包需从官方渠道获取,仓库本身不含赛题数据文件。

核心用法

五族算法公平对比

python -m scripts.compare_algorithms

对比模拟退火(SA)、分组遗传算法(GGA)、自适应大邻域搜索(ALNS)、禁忌搜索(TS)、GRASP 五种算法的 Pareto 前沿。所有算法共享相同的解码器(异构机队调度解码 + 无人机-电池双资源就绪队列),保证公平比较。

问题二:异构无人机调度(零迟到)

python -m scripts.problem2_main
# 输出:26架次方案(A型12 + B型7 + C型7)
#       完工时间 ~115 min,总能耗 70.86 kWh

问题三:通信-运输联合调度

python -m scripts.problem3_relay
# 使用问题二方案作为输入
# 双中继三班时间分片:W点(778-6502s)、E点(800-3774s)、N点(5594-6212s)
# 联合完工 6921 s(约115.4 min),盲区为零

完整求解流程

# 按顺序求解四个子问题
python -m scripts.full_pipeline

# 校验结果并生成Excel提交模板
python -m scripts.validate_and_export

关键结果(v24,末班减载方案)

指标 问题二 问题三(端到端)
架次数 26(A型12 + B型7 + C型7) 26 + 中继3班
完工时间 约115 min(6897 s) 联合6921 s(115.4 min)
总能耗 70.86 kWh 约74.39 kWh(含中继3.53 kWh)
时限交付 零迟到 零迟到、盲区为零

论文复现

# 编译 LaTeX 论文(需要 XeLaTeX + gmcmthesis)
xelatex main.tex

⚠️ 论文 PDF 和 LaTeX 源码在仓库根目录,编译前请确保已安装 gmcmthesis 竞赛模板包。

典型适用场景

  1. 数学建模竞赛备赛:参考完整的「赛题→建模→求解→论文」闭环流程,理解如何将工程问题抽象为组合优化模型。
  2. 元启发式算法学习:五种算法(SA/GGA/ALNS/TS/GRASP)在同一解码器下公平对比,可直观理解各算法优劣势。
  3. 无人机调度研究:能耗模型、通信中继布设、异构机队的联合调度逻辑可作为学术研究参考。
  4. 运筹学教学:完整的问题四层递进结构,适合作为 NP-hard 调度问题的教学案例。

坑与注意

⚠️ 赛题数据需自行获取:DEM 地形数据(.mat)和官方装备参数需从华为杯官方渠道下载,仓库不含原始赛题数据包,复现需要先获取这些文件。

⚠️ 持续迭代中:作者明确标注「持续维护、拒绝一次性交付」,最新 v24(2026-09-25)在问题二/三口径上已有多次修正。引用具体数字时需注明版本日期,建议直接用仓库最新版本。

⚠️ LaTeX 环境要求:论文编译依赖 XeLaTeX 和 gmcmthesis 模板,新手 Windows/Mac 需额外配置中文 LaTeX 环境(推荐 TeX Live 2025+)。

⚠️ 禁忌搜索为均衡方案:README 明确说明问题二采用的是「禁忌搜索均衡方案」(非能耗最优),因为存在 21 架次低能耗方案(62.46 kWh / 131 min)。实际使用需按优先级选择。

⚠️ 中继通信余量较紧:问题三中 W 点通信余量仅 1.00 dB、E 点 1.11 dB,属于临界敏感区,参数扰动下方案整体稳健(作者做了 ±10% 悬停功率灵敏度分析),但实际部署需注意测量误差。

⚠️ 微信群联系方式:仓库提供微信群二维码图片(WeChat.jpg)用于交流,但图片非文本,自动化集成时无法使用;建议通过 GitHub Issues 提交技术问题。

与同类对比

方案 竞赛级 全流程开源 多算法对比 通信中继 持续维护
本仓库(华为杯D题) ✅ ✅ ✅(5族) ✅ ✅(v24)
Kaggle 竞赛 kernels 部分 部分 少 少 ❌
学术论文附代码 ✅ ✅ 偶有 偶有 ❌
商业求解器(CPLEX/Gurobi) ✅ ❌ N/A 需自建模 N/A

本仓库最大价值在于完整闭环——从原始赛题数据到 LaTeX 论文,每一步均有代码可复算,非常适合作为竞赛或课程设计的参考模板。

一句话推荐结论

如果你是备赛华为杯/电工杯/美赛的数学建模选手,或想学习无人机调度+元启发式算法的完整实现,这个仓库是目前为数不多的「全流程开源、持续迭代、每步可复算」的竞赛级参考方案,拿来即用,MIT 协议无版权风险。