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 竞赛模板包。
典型适用场景
- 数学建模竞赛备赛:参考完整的「赛题→建模→求解→论文」闭环流程,理解如何将工程问题抽象为组合优化模型。
- 元启发式算法学习:五种算法(SA/GGA/ALNS/TS/GRASP)在同一解码器下公平对比,可直观理解各算法优劣势。
- 无人机调度研究:能耗模型、通信中继布设、异构机队的联合调度逻辑可作为学术研究参考。
- 运筹学教学:完整的问题四层递进结构,适合作为 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 协议无版权风险。