← Back
Akun-python

Akun-python/mountain-flood-uav-optimization

开源免费,不断迭代更新!

View on GitHub ↗
Stars
100
Forks
19
Watchers
100
Open issues
0
Contributors
1
Language
HTML
License
MIT License
Default branch
main
Created Sep 24, 2026Updated Sep 26, 2026

Star growth

Today—
This week—
This month—

Star history will appear here once this repo has been tracked for a couple of days.

README

🚁 山区洪涝灾害下无人机运输与通信协同优化

💬 欢迎与反馈:本项目是持续实时更新、迭代优化的开放求解方案。我们深知任何 模型与求解都不完美,真诚欢迎每一位读者、参赛者与评审提出任何意见、批评与 建议——无论是解题思路、建模细节、算法实现、数据口径还是表述问题,都欢迎 提出。我们会虚心接受每一条反馈,并据此不断重算、修订、更新仓库,把方案打磨得 更严谨、更完善。

🎯 想一起交流解题思路、建模细节与迭代优化?扫码加入微信群,随时欢迎你的 意见与讨论:

微信群交流二维码

🌏 数学建模开源计划(长期持续维护)

这是一个 持续迭代、每一道题都会开源 的系列项目:

  • 每题开源,全程公开:我们计划把参加过的每一届数学建模竞赛、每一个题目都 以完整仓库形式开源——包括全部代码、数据、中间结果与论文(PDF + LaTeX 源码), 任何人可复跑、复现、对照与改进。本仓库为系列第一题(2026 华为杯 D 题), 后续每完成一题都会以独立仓库公开,欢迎关注与收藏。
  • 持续维护,拒绝一次性交付:本仓库在竞赛结束后仍会继续维护——持续修正口径、 补充实验、优化算法、跟随每一条反馈迭代版本,完整演进见 更新日志。
  • 开放协作:欢迎提交 Issue (问题、bug、口径质疑均可)与 PR;也欢迎通过上方微信群与我们一起讨论、共同迭代。

我们相信:建模能力只有在开放交流中才能共同成长——把每道题的完整思考链公开, 是参赛者能留给后来者最好的东西。

第二十三届中国研究生数学建模竞赛(华为杯)D 题 · 完整可复现解决方案

以 30 m DEM 地形数据与官方装备/货箱数据为输入,融合山区飞行能耗模型、异构机队调度、 通信中继布设与资源配置,实现 80 箱应急物资的零迟到投送与全程通信零盲区。

competition stars forks issues license last commit python latex paper maintained pr welcome

📦 80 货箱  ·  🛸 8 运输机 + 2 中继  ·  ⚡ 24 架次 / 约 109.5 min / 69.13 kWh / 零迟到  ·  📡 盲区为零

文档导航:论文成品 论文-山区洪涝无人机D题.pdf · 题目原文 山区洪涝灾害下无人机运输与通信协同优化.docx · 结果模板 结果提交模板_填写.xlsx


目录

  • 数学建模开源计划(长期持续维护)
  • 项目亮点
  • 论文摘要(最新)
  • 关键结果一览(图)
  • 技术栈
  • 快速开始
  • 更新日志
  • 一、问题背景
  • 二、题目任务概括
  • 三、统一建模假设
  • 四、基础物理模型
  • 五、问题一:单点安全载荷与货箱组批
  • 六、问题二:异构无人机多点多架次调度
  • 七、问题三:运输与中继通信联合调度
  • 八、问题四:任务分区与资源配置
  • 九、完整求解流程
  • 十、结果复现
  • 十一、最终结论速览
  • 十二、目录结构
  • 十三、模型局限与推广方向
  • 如何参与与反馈
  • 许可证

项目亮点

  • 🧮 统一物理口径:等效航程能耗(指数 3/2)+ 爬升附加 + 20% 返航安全余量,45 组合二分求最大安全载荷
  • 🎯 五族元启发式并行:模拟退火 / 分组遗传 / ALNS / 禁忌搜索 / GRASP,多权重×多种子强化搜索逼近零迟到 Pareto 前沿
  • 📡 通信-运输联合调度:30 m DEM 遮挡判定 + 双向链路预算(122/116/126 dB),双中继三班时间分片,端到端零盲区
  • 🏗️ 任务分区 × 资源池化:2/3 组分区方案、独立配置库存缺口论证,集中调度优于独立配置
  • ✅ 全链路可复现:Python 求解 → JSON 结果 → 独立校验 → Excel 提交模板 → LaTeX 论文,任一数字可复算

📄 论文摘要(最新)

以下摘要与论文 main.tex 摘要一致,采用 2026-09-27 进化 v25(24 架冠军) 核验的最新口径(问题二 24 架次 / 6571.4 s / 69.13 kWh,问题三中继 3.56 kWh、联合完工 7077 s、盲区为零)。

本文针对广西横州市镇龙乡山区洪涝灾害场景下的应急物资无人机运输与全程通信保障问题,按单点组批、异构机队调度、运输与中继联合调度、任务分区与资源配置四个层次递进建立优化模型,并以数字高程模型、无人机与电池参数和通信链路参数逐问求解、逐级校验。全部计算基于 Python 实现,飞行时间、能耗与通信链路均按题给统一规则建模,任一结果均可由随附脚本复算。

问题一:单点往返最大安全载荷与货箱组批。 以等效航程法把水平飞行能耗折算为可用电量乘以航程与等效航程之比,叠加爬升能耗与返航安全裕度 20% 的约束,对三机型 × 15 服务区共 45 个组合逐一二分求最大安全载荷。结果中 A 型全部取质量上限 25 kg,B 型取 30 kg(仅 S008 受能量约束降为约 28.9 kg),C 型多数取 80 kg,而 S002、S003、S004、S008、S012 五个远区受能量约束,分别为 69.0、68.4、63.9、59.2、68.2 kg。按机型与服务区组批共 18 架次,总能耗 59.02 kWh,累计作业时间约 9.1 h,各架次返航荷电状态均不低于 20%。安全余量扫描表明,余量比例由 0.2 升到 0.35 时架次由 18 增至 25,能耗由 59.02 升至 77.63 kWh,增幅约 31.5%,安全与效率存在明确权衡。

问题二:异构无人机多点多架次调度。 以架次为决策单元,按时限贪心组批生成初始解并拆出紧急架次,并行比较模拟退火、遗传算法、自适应大邻域搜索、禁忌搜索与 GRASP 五类元启发式,再以图注意力强化学习(池负载均衡辅助奖励,自学习穿越完工非单调走廊)、宽带束搜索(接受完工暂升—池负载均衡回升的中间态)与多区合并算子(一趟顺访两区、省去往返 O01 的重复航段)逐级精炼,收敛 Pareto 前沿。调度层按截止期优先,并耦合无人机与电池双资源就绪队列求可行派单;评估按严格口径执行,每个货箱的投递时刻所属服务区必须与其箱号归属区一致(区一致零违例),凡"捎带"结算者一律判不可行。选取零迟到的精炼冠军方案:24 架次,其中 A 型 11、B 型 7、C 型 6,完工时间约 109.5 min(6571.4 s),总能耗 69.13 kWh,全部 80 箱按各自时限、投送至各自指定服务区交付,加权迟到为零(调度明细见表)。相较传统元启发式同架数方案(25 架次、7113 s、70.28 kWh)完工提前约 9.0 min(7.6%)且能耗降低 1.15 kWh(1.6%);结构上三池返场上限(A 6274/B 6571/C 6233 s)均衡化、消除了单池瓶颈,完工由 B 池链条决定并达到该口径下的下确界;若以能耗为先,可选用 21 架次方案(约 130.6 min、64.48 kWh,严格口径)或 20 架次方案(约 129.7 min、67.45 kWh)。

问题三:通信约束下运输与中继联合调度。 建立频率 2400 MHz 的自由空间传播加地形遮挡的电波模型,接收门限为 -90 dBm,直连、接入、回程链路上限为 122、116、126 dB,并按 30 m 步长沿航线逐点判定遮挡。覆盖采样确定三个中继布设点,W 点服务西与北片区,E 点服务东片区,N 点服务 S004;对问题二精炼冠军(24 架次、完工 6571.4 s)沿航线审核得到 1394 个需中继采样点,初始布设即实现全覆盖(覆盖不良为零)、运输无需平移。以该方案为运输层输入,两架中继按时间分片复用:W 点单班,服务时段 686 至 6777 s(能耗 2.091 kWh);E 点服务时段 760 至 3354 s,能耗 0.986 kWh;N 点服务时段 2562 至 3289 s,能耗 0.483 kWh,中继合计约 3.56 kWh,回程链路全部可行,各班能耗均低于单架次能源上限。需指出,E 点与 N 点需求窗口重叠 727 s,两架中继的机器级排班需时段协调或增配第 3 架才能实现双点同时服务。联合完工由中继 W 撤离时刻 7077 s(约 118.0 min)决定(运输返场 6571.4 s 早于中继撤离),中继约束引入的完工代价约 506 s,全部 80 箱仍按各自时限投送至指定服务区交付、加权迟到为零,覆盖盲区为零。

问题四:任务分区与资源配置。 按中继覆盖结构给出三组与两组两种分区(24 架次中三趟多区架次把直连区与所在片区按趟绑定同组:f37 将 S006/S014 绑至东片、f38/f39 将 S011/S006 与西区绑至西片,无跨片冲突),对每组以最小机队搜索确定机型与电池数量,再叠加冗余备份核算库存。结果表明,若按组完全独立配置,两种分区均超出库存,例如两组方案需 A 型机 6 架超出 2 架、B 型机 5 架超出 3 架、C 型机 5 架超出 3 架、中继 6 架超出 4 架、能源组件 10 组超出 4 组;分三组时重复配置更多。给定库存下更优组织为任务分区、资源池化,即分区仅用于任务组织,机队与中继仍集中调度并时间分片复用,问题三的协同方案以 8 架运输机、14 组电池、2 架中继恰好满足库存,实现零迟到与通信位置级零盲区;若坚持独立配置,需增配 A 型机 2 架、B 型机 3 架、C 型机 3 架、A 型电池 2 至 3 组、B 型电池 3 组、C 型电池 2 至 3 组、中继 4 至 5 架与能源组件 4 组。

灵敏度分析表明模型结论稳健:安全余量扫描复现安全效率权衡并呈现机型结构切换;多目标权重在合理范围内只改变拆分粒度,不改变 C 型瓶颈结构;中继 W 点最长连续服务约 101.5 min,占单架次能源上限对应时长约 140 min 的 72.5%,悬停功率扰动正负 10% 后方案不变;通信余量统计中 W 点最紧 1.00 dB、E 点 1.11 dB、N 点 9.40 dB,三个布设点均无低于 1 dB 的采样点,余量下压 1 dB 仅个别采样点接近门限,布设方案整体对链路参数不敏感。

关键词:无人机调度 · 等效航程能耗模型 · 禁忌搜索 · 中继布设 · 任务分区 · 通信保障


关键结果一览(图)

全部配图为 2026-09-27 橙色系(萱草色板)Nature 级重绘,与论文 figures/ 同源(PNG+PDF 双格式、白底、无图内标题、中文标签正常)。

研究区 30m DEM 与服务区/中继点位 问题二 24 架次调度甘特图

图 1 研究区 30 m DEM 与 15 个服务区、中继布设点(左)· 问题二 24 架次运输调度甘特图(右)

24 架次 3D 航线 DEM 底图 24 架次能耗分解

图 2 24 架次 3D 航线与地形(左)· 24 架次能耗构成分解(右)

中继服务时间线 全程通信保障时间线

图 3 双中继三班服务时间线(含 E/N 重叠 727 s 标注,左)· 全程通信保障时间线(右)

需中继采样点覆盖分配 任务分区示意

图 4 需中继采样点覆盖分配(左)· 问题四任务分区与资源缺口(右)

核心指标速览

指标 问题一 问题二 问题三(端到端)
架次数 18 24(A 11 / B 7 / C 6) 24 + 中继 3 班
完工时间 累计约 9.1 h 约 109.5 min(6571.4 s) 联合 7077 s(118.0 min)
总能耗 59.02 kWh 69.13 kWh 约 72.69 kWh(含中继 3.56 kWh)
时限交付 返航 SOC ≥ 20% 零迟到、区一致零违例 零迟到、盲区为零

技术栈

领域 工具
建模语言 Python 3.11+
数值计算 NumPy / SciPy
数据处理 pandas / openpyxl(官方 Excel)、scipy.io(30 m DEM .mat)
优化算法 五族元启发式(SA/GA/ALNS/Tabu/GRASP)+ 图注意力强化学习 + 宽带束搜索 + 多区合并算子(自研调度解码器 + 无人机-电池双资源就绪队列)
通信仿真 DEM 沿线 30 m 步长遮挡判定 + 双向链路预算
论文排版 LaTeX(XeLaTeX + gmcmthesis 竞赛模板)

快速开始

# 克隆仓库(仓库根目录即本题工作目录)
git clone https://github.com/Akun-python/mountain-flood-uav-optimization.git
cd mountain-flood-uav-optimization

# 1. 五族算法公平对比(SA/GA/ALNS/Tabu/GRASP,60s × 3 种子)
python -X utf8 求解代码与结果/实验/benchmark.py --seconds 60 --seeds 7,11,13

# 2. 冠军重算并导出(24 架次 / 约 109.5 min / 69.13 kWh)
python -X utf8 求解代码与结果/实验/champion_search.py --export

# 3. 运输-中继联合调度(中继三班 3.56 kWh,联合完工 7077 s)
python -X utf8 求解代码与结果/代码/p3_co2.py

完整复现、绘图与结果导出命令见 十、结果复现。


更新日志

2026-09-27(DAY 3 · 橙色系全图重绘 + 全文口径刷新至 24 架冠军)

  • v128(全图重绘 · 萱草橙色系统一):所有论文配图统一回到论文原橙色系(萱草色板: A 金茶 #F39800 / B 柑子 #F6AD49 / C 鉛丹 #EC6D51 / W 萱草 #F8B862 / E 蜜柑 #F08300 / N 黄丹 #EE7948),并保持 Nature 级排版(白底、无图内标题、去上右脊、细网格、 300dpi PNG+PDF 双导出);中文字体 Microsoft YaHei 优先,全部标签无乱码、 无元素重叠;E/N 重叠 727 s 警示统一为橙色系。重跑 v124(routes3d 4 张)、 v125(P1 8 张)、v126(P2/P3/P4 16 张)共 28 张图,全部生成成功。
  • 全文口径刷新(24 架冠军):根 README 摘要、关键结果图、核心指标表、技术栈、 快速开始、问题二/三/四正文、求解流程、结果复现与最终结论全部由旧口径 (26 架 / 6897 s / 70.86 kWh / 联合 6921 s)更新为最新冠军口径 (24 架 / 6571.4 s / 69.13 kWh / 联合 7077 s / 中继 3.56 kWh / 1394 个需中继点)。
  • 论文 LaTeX/PDF 同步:main.tex 摘要与全文此前已更新为 24 架冠军口径; 本轮重编译 PDF(36 页)并经 PDF 内嵌图尺寸核验 26/26 与新图一致。

2026-09-25(DAY 2 续二 · 末班减载:联合完工 6959.8 → 6921 s(-0.56%),26 架不变)

  • v24(问题二/三 · S004-FOD 末班转出,26 架完工纪录刷新):把 C 型末班 f05 上的 S004-FOD-01(8 kg)转移到 f20(U08,S003 段,S004-HYG 已在该架次顺路投递), 不动 f11/f4/f22,避开 v19/v20 的失败模式(EDF 排序扰动与 B 链瓶颈)。结果: 运输完工 6959.81 → 6896.52 s(-63.3 s,-0.91%),打破 v19 认定的 26 架完工纪录 (v19 须 27 架才达 6896.51 s);联合完工 6959.8 → 6921 s(-38.8 s,中继 1 返场 成为联合口径上界);运输能耗 70.705 → 70.861 kWh(+0.156);中继 3.531 kWh、 偏移 {f4:3300, f22:1000} 与三班时段均不变;26 架、零迟到、cover_bad=0、mpen=0。 同时修正 p3_margins.py 布设点坐标口径(内部 E/N 仍为旧值,改为 v17 采纳位置后 与论文余量表完全一致,W 因 +4 采样点 982→986)。负结果归档:f11 加箱连锁 (f09 挤 U01 尾,W 尾段 6742)、f4 加箱超 A 型能量上限、27 架新架次排位靠后、 f09 换 B 型推晚 f22——均严格端到端拒绝。见 结果/进化_v24/。

2026-09-25(DAY 2 续 · 联合完工破局:7259.81 → 6959.8 s(-4.1%))

  • v23(问题三 · 跳出偏移搜索盆地,联合完工真实下界确认):诊断官方偏移的 "整体 +300 平移"为 SA 盆地而非可行性要求(中继最早 ~603 s 即可就位,原始 778 s 的最早 W 任务本可覆盖;f34 偏移清零仅 1.1 s 收益证明 +300 与可行性无关)。 多起点搜索(零偏移/仅 {f4,f22} 释放/官方偏移 × 1500 迭代)从 7087 s 盆地逃逸到 联合 6959.8 s(116 min),严格可行(cover_bad=0/overlap=0/mpen=0/零迟到/26 架)。 采纳干净偏移:仅 f4 后移 3300 s、f22 后移 1000 s 对齐北点窗口,其余架次与问题二 排程一致;中继 3.531 kWh(W 1.979/E 1.102/N 0.450),窗口整体提前 300 s (W[778,6502] E[800,3774] N[5594,6212]),接入余量不变(1.00/1.11/9.40 dB)。 联合完工 = 运输完工(中继最晚返场 6921 < 运输 6960),中继约束零完工代价; v19/v20/v22 的"下界 7259.81"结论更正为搜索盆地假象。论文 7.3/7.4、摘要、 架次明细表与三幅图按 v23 更新;归档 结果/进化_v23/。

2026-09-25(DAY 2 续 · W 窗口末端收口攻击(负结果,最优性再确认))

  • v22(问题三 · W 窗口末端前移攻击联合完工,负结果闭环):诊断 W 窗口末端 6802 s 由 f5 的 S005 段定义,尝试把 f5 的 S005 箱前移到更早的 f23(与 v20 箱移入 f5 反向)压缩窗口末端——全部失败:两箱全移被 C 型质量上限钉死(f23 已 67 kg + 14 kg = 81 kg > 80 kg),单箱移出能耗反升(f5 边际低于 f23,非线性等效航程 (q/Q)^1.5 使重载班边际更贵),联合下界纹丝不动 7259.8 s、中继 3.592 kWh 变差。结构性结论:联合下界由 W 窗口起点级联(f34 的 S001 段被迫 +300 s 对齐中继到位时刻,沿 C 机链级联到末班返场)决定,而非窗口末端;v19–v22 共四类独立攻击面(27/28 架拆分、26 架转移+换型、充电模型修正、W 末端前移)均无法突破 7259.81 s。归档 结果/进化_v22/。

2026-09-25(DAY 2 续 · 中继充电模型按题面条件修正)

  • v21(问题三 · 中继能源组件充电模型条件修正,第一性原理审计):逐字核对题面附录 2 "再次投入任务前应充至100%",发现 v12–v20 沿用的"按需补电"(charge_from_to 部分充电 + 单组件跟踪)违反该条款:东点班返航荷电 68.5% 满充需 910 s,而东点返场→北点派单仅 696 s 窗口,单组件满充口径下北点班不可行,"按需补电"掩盖了缺口。修正为6 能源组件共享池 + 复用前满充(北点班取自池内满充新组件,仅需 300 s 周转)。修正后官方方案严格复核全部数字不变:中继 3.417 kWh(1.979/1.009/0.429)、machine_pen=0、cover_bad=0、联合完工 7259.8 s(联合完工最小化 SA 2500 迭代独立确认)、运输 70.71 kWh——在题面合规口径下仍帕累托最优。论文三处"按需补电"叙述(3_assumptions / 7_problem3)与 README 现行方案描述已更正,历史归档保留原样。

2026-09-25(DAY 2 续 · 问题二能耗优化边界验证)

  • v20(问题二 · 26 架能耗最小化 + 中继安全筛查,负结果闭环):不动架次结构做 P2 能耗优化——转移+换型修复找到严格支配解(能耗 70.705→70.088 kWh、完工 6959.81→6927.14 s、26 架不变、零迟到);"中继窗口包含性"筛查锁定唯一窗口安全换型 f11(S011 直连区)A→B(-0.187 kWh)。但端到端验证全部拒绝:转移解联合下界 7466.1 s(+206)/中继 3.729 kWh(+0.312);f11 换型套官方偏移运输完工跳到 8067 s、重寻偏移后联合下界 7406.1 s(+146)/中继 3.711 kWh(+0.294)。关键方法学教训:窗口包含性是必要非充分条件——偏移是全局释放量,任何架次剖面变化都会经 EDF 就绪链传导(B 型转 B 机链成瓶颈),唯有联合完工最小化 SA 端到端验证可定罪/放行。 至此四个候选族系(27/28 架拆分、26 架转移、26 架换型)全部被拒,官方 26 架解在 P2/联合完工/中继能耗三口径下确认为系统帕累托最优。脚本与结果见 结果/进化_v20/。

2026-09-25(DAY 2 续 · 问题二/三最优性独立验证)

  • v19(问题二 · 尾部修复混合算子 + 联合完工最优性验证,负结果闭环):新增"破坏-重建"混合算子(多区/单区拆分 + 尾部转移,逐候选完整重排程)在冠军上做 P2 持续优化——找到 27 架严格支配解(完工 6959.81→6896.51 s、能耗 70.71→70.16 kWh、零迟到) 与 28 架完工口径解(6836.51 s);完工下界分析给出机型负载均衡下界 6320.8 s(冠军在 10.1% 内)。但端到端(P3 联合口径)验证表明 P2 与 P3 强耦合:拆架次使 W 窗口尾段延至 7042 s、E/N 窗口提前,官方管线重寻偏移后联合完工 7259.8→7838.8 s、中继能耗 3.417→3.742 kWh——P2 单口径提升无法落地为联合口径提升,27/28 架候选均不采纳,26 架口径维持。最后做联合完工最小化 SA(目标=联合完工+全约束罚,4000 迭代):联合下界 = 7259.81 s(cover_bad=0、machine_pen=0、零迟到),官方偏移在下界处中继能耗更低(3.417 vs 3.692)→ 官方联合 7260 s / 中继 3.417 kWh 经独立框架确认为帕累托最优,论文数字稳健。脚本与结果见 结果/进化_v19/(p2_tail_repair26.py / p2v19_p3_e2e.py / p3_joint_min26.py)。

2026-09-25(DAY 2 续 · 问题三/问题四持续优化)

  • v18(问题四 · 六种分区对比,实验存档):在 26 架冠军上对比 K2_base / K2_split(S004 并入东组)/ K3_base / K3_km / K3_comm / K3_work 六种分区——K2_base 仍是资源池化口径最优(16 机 / 22 池 / 6 中继 / 11 组件,mk 9258 s);K2_split 提供更均衡的两组备选(mk 8006/8149 s,中继 7、组件 14);坐标 k-medoids 因拆散 S005+S011 违反"同架次同组"规则被判无效,纯几何分区不可行;全部独立配置超库存,资源池化结论稳健(与论文一致)。脚本与排名见 求解代码与结果/实验/p4_partition_compare26.py 与 结果/进化_v17/p4_partition_compare26.json。
  • v17(问题三 · 中继位置余量约束优化,已采纳):以 26 架冠军为输入做"覆盖-能耗-余量"联合位置搜索(框架 A 基线 / B 局域网格 / C 随机重启爬山 / D 余量 ≥1 dB 约束爬山)。关键结论:C 框架虽省 0.14 kWh,但最紧接入余量崩塌至 N 0.06 dB、200+ 采样点低于 1 dB(以稳健性换能耗,不予采纳);框架 D 在"全覆盖 + 回程可行 + 悬停离地 ≤300 m + 最紧接入余量 ≥1 dB"约束下采纳东点 (109.2689, 23.0127, 650 m)、北点 (109.2343, 23.0592, 600 m),官方严格管线复核(两种解释均 cover_bad=0、machine_pen=0、窗口不变、联合完工仍 7260 s)后中继能耗 3.545→3.417 kWh(-3.6%),端到端 74.26→74.13 kWh,余量 W 1.00 / E 1.11 / N 9.40 dB 均无低于 1 dB 采样点;论文、README、p3_final.json、p3_margins.json 与余量直方图全量同步。实验期间还发现并修复两个口径陷阱:位置取整 3 位小数(≈50 m)会翻转载覆盖结论(复核必须用 6 位精确坐标);余量统计必须取 path_loss 最大值而非最小值(曾致约束失效)。详见 结果/进化_v17/README.md。

2026-09-25(DAY 2 · 口径收尾 / 文档工程)

  • v16:叙事文本中的大时间值统一由秒改为分钟/小时(累计 32661 s→9.1 h、完工 6960/7260/8337 s→min、时限 3600/7200/10800/18000 s→1/2/3/5 h、300 s 偏移→5 min),保证可读性;秒级参数(交接/准备/建链/周转)、服务窗口 [1078, 6802] s 与表格数据仍保留秒,物理口径不变。
  • v15:修复上一日核对发现的 5 项问题——
    1. 作业高度改为"服务区地面海拔以上 30 m",投递时延改为"接收点基础交接(A/B 150 s、C 180 s)+ 每箱交接(A/B 30 s、C 36 s)",与题目附录 2 完全一致;
    2. 中继时序补入固定准备 180 s 与架次周转 300 s(p3_co2.py),按需充电核算(E 班返场 SoC 67.3% 已满足 N 班约 42% 需求,无需满充等待),方案严格可行;
    3. 复核联合完工时间:中继 W 返场 7221 s < 运输侧 7259.8 s,端到端完成仍由运输侧主导(约 121 min);
    4. "总飞行时间 32661 s" 更正为"累计作业时间约 9.1 h"(main.tex / 5_problem1 / README);
    5. 关键词"模拟退火"→"禁忌搜索"。
  • v14:一致性与实验轮——P2 求解章节从旧 GA 描述重写为五族元启发式并行 + 强化搜索(90 次运行),参数表改为五方法对照;900 s × 6 权重 × 5 种子 × 3 重启实验确认冠军 26 架 / 6959.8 s / 70.71 kWh 未被超越;中继窗口压缩(w_relay)与 ALNS 机队感知修复均为负结果并如实留档;可复现性表述弱化为"固定种子复现单次运行"。
  • 文档:新增 MIT License(d327bcc);README 升级为开源项目风格——徽章、目录、图表展示、技术栈、快速开始(ff50ad8);摘要口径标注对齐 v10(0e5e371)。
  • 全量核对:将题目原文(附录 2/3 公式与参数、装备与时限数据)逐条与 core.py、P1–P4 求解器、论文、README 比对——等效航程指数 3/2、122/116/126 dB 链路预算、作业高度 +30 m、交接/充电口径、问题四同组规则(26 架方案 0 跨组架次)全部一致。

2026-09-24(DAY 1 · 算法演进 / 论文整合)

  • 上午(v0–v2,实验平台):首提交与 .gitignore;core.py 可移植数据路径;五族元启发式实验框架(SA / GA / ALNS / Tabu / GRASP)与墙钟基准——Tabu 首次超越论文基线(8337 s / 68.06 kWh vs 8342 s / 77.31 kWh,21 架次)。
  • 下午(v3–v7,深入优化):
    • v3 将 Tabu 冠军接入 P3 联合调度(21 架 / 8337 s / 68.06 kWh / 0 迟到);
    • v4 权重扫描得到零迟到 Pareto 前沿(7661.5 s / 73.73 kWh 均衡、7983 s / 72.98 kWh、8337 s / 68.06 kWh),并诊断 ALNS 修复的时限失明根因;
    • v5 归档权重调优前沿 + 均衡变体 P3 整合;v6 中继覆盖修复——W 点微移(-205 m/-55 m/+120 m)清零 9 个未覆盖采样点,回程可行;
    • v7 P4 分区变体实验(k-means/通信种子 vs 固定 W/E/N)——更细分区过度冗余,量化验证"资源池化"结论。
  • 傍晚(v8–v9,论文整合):Tabu 冠军写入论文(P3 中继合计 4.71 kWh、E 点 +300 m 清零 4 个未覆盖采样点),重编译 PDF;刷新摘要与 P2/P3 叙述;README 增加问题背景与求解过程详解。
  • 晚上(v10–v13,强化搜索与新图):
    • v10 强化搜索(4 权重 × 3 种子 × 2 重启、600 s)——完工冠军 26 架 / 6959.8 s / 70.71 kWh(较论文 GA 提前 16.6%),能耗变体 21 架 / 62.46 kWh 与 19 架 / 60.40 kWh;P3 初始布设即全覆盖、中继能耗降至 3.55 kWh;中继覆盖-能耗联合优化再省 0.21 kWh;论文全量同步;
    • v11 全库清除旧口径数字(P4 按 26 架方案重解:K3 8006/5182/4007 s、K2 9258/5182 s);
    • v12 新增 5 张论文图(DEM 与服务区/中继点位、典型航线剖面、1386 采样点覆盖分配、能耗分解、8 机电池 SOC 曲线),论文 30 页;
    • v13 全文人性化润色 + 萱草色系统一配色(萱草 F8B862 / 柑子 F6AD49 / 金茶 F39800 / 蜜柑 F08300 / 铅丹 EC6D51 / 黄丹 EE7948),图件全部重绘,README 引言自然化。

一、问题背景

洪涝灾害发生后,山区道路、桥梁和通信基础设施可能同时受损,部分村屯成为与外界隔绝的孤岛。传统车辆运输受到道路中断的限制,而无人机具有不依赖地面道路、部署速度快和可跨越复杂地形等优势,因此适合承担灾后应急物资投送任务。

本题以广西横州市镇龙乡山区洪涝灾害为背景。调度中心记为 O01,灾区内有 S001 至 S015 共 15 个服务区,需要将 80 箱应急物资及时送达。物资包含医疗物资、饮用水、应急食品和生活卫生用品,不同货箱具有不同的质量、体积、优先级和配送时限。

本题的特殊困难不只在于把货物送到,还在于山区地形会同时影响飞行和通信:

  1. 地形高差影响飞行时间和能耗:无人机需要跨越山峰、沟谷,爬升高度越大,飞行时间和爬升能耗越高。
  2. 载荷影响续航能力:载荷增加会使无人机等效航程缩短,同一架次的能耗明显增加。
  3. 运输无人机型号异构:A、B、C 三类无人机的载荷、速度、电池容量和能耗特性不同,不能简单地把所有任务平均分配。
  4. 时限约束严格:首飞批、医疗物资和普通物资具有不同的截止时间,部分货箱必须在早期架次中完成投送。
  5. 通信可能被山体遮挡:运输无人机在整个飞行过程中必须与 O01 保持通信。若直连链路被山体遮挡,就必须通过悬停中继无人机建立双跳通信。
  6. 资源需要共享复用:题目给定的运输无人机、电池、中继无人机和能源组件数量有限,需要通过时间排程实现高效复用。

因此,本题不是单纯的车辆路径问题,而是一个融合了山区飞行能耗、异构机队调度、货箱组批、通信覆盖、中继布设和资源配置的综合优化问题。

题目示意图


二、题目任务概括

题目依次提出四个层次递进的问题:

子问题 核心任务 主要输出
问题一 单点往返最大安全载荷与货箱组批 每种机型到各服务区的最大安全载荷、组批方案、架次能耗
问题二 异构无人机多点多架次运输调度 任务序列、无人机分配、电池分配、起降时间、交付时限验证
问题三 运输与中继通信联合调度 中继候选点、通信覆盖判定、中继服务窗口、覆盖修复方案
问题四 任务分区与资源配置 两组/三组分区方案、各组最小机队、冗余配置和库存缺口

四个问题之间的关系是:

地理数据与货箱数据
        ↓
问题一:计算安全载荷,生成可行单点组批
        ↓
问题二:把单点任务组合成多点多架次运输计划
        ↓
问题三:加入地形通信约束,布设中继并联合审核运输时序
        ↓
问题四:依据运输与通信结构进行任务分区和资源配置

三、统一建模假设

为保证模型可计算,并与题目给定规则保持一致,采用以下假设:

  1. 无人机垂直起飞和降落,爬升、下降与水平巡航速度按题目参数取定。
  2. 航段巡航高度取该航段地面高程最大值加 50 m 的安全高度;服务区投递计入 30 s 悬停时间。
  3. 水平飞行能耗采用题目给定的等效航程模型;下降能耗近似忽略,爬升能耗按克服重力做功计算。
  4. 每架次必须保留 20% 的返航安全电量,即实际消耗不得超过可用电量的 80%。
  5. 每个货箱不可拆分,由一架无人机在一个架次中一次送达。
  6. 每架无人机同一时刻只能执行一个任务;电池同一时刻只能供一架无人机使用。
  7. 返航后电池按照题目给定的两阶段充电曲线恢复,充满后才能再次使用。
  8. 通信链路按自由空间传播损耗、系统损耗和地形遮挡损耗计算;沿链路每隔 30 m 采样一次进行遮挡判断。
  9. 暂不考虑突发天气、临时禁飞区和设备随机故障;问题四通过冗余配置讨论静态备份能力。

四、基础物理模型

4.1 飞行时间模型

对于调度中心到服务区再返回调度中心的航段,设水平距离为 d,最大爬升高度为 h+,返回下降高度为 h-,则飞行时间为:

t_fly = h+ / v_up + d / v_c + h- / v_down

多服务区架次则将各个航段的飞行时间、服务区悬停时间和投递时间累加。

4.2 载荷与等效航程

设无人机载荷为 q,额定载荷为 Q,空载等效航程为 L0,满载等效航程为 LF,则载荷对应的等效航程为:

L_g(q) = L0 - (L0 - LF) * (q / Q)^1.5

载荷越大,等效航程越短。水平飞行能耗近似为:

E_hor = E_use * d / L_g(q)

爬升能耗为:

E_up = (m0 + q) * g * h+ / (η * 3.6 × 10^6)

总能耗满足返航安全约束:

E_total ≤ (1 - ρ) * E_use,     ρ = 0.20

同时满足机型额定载荷、货舱体积和货箱不可拆分等约束。

4.3 通信链路模型

工作频率为 2400 MHz。收发端三维距离为 D km 时,自由空间路径损耗为:

L_FSPL = 32.45 + 20 log10(f_MHz) + 20 log10(D_km)

接收门限为:

P_th = P_sens + M = -98 + 8 = -90 dBm

题目对应的链路总损耗上限为:

  • O01 与运输无人机直连:122 dB;
  • 运输无人机与中继的接入链路:116 dB;
  • 中继与 O01 的回程链路:126 dB。

沿收发端连线按 30 m 间隔读取 DEM 高程。若任意采样点地形高于连线高度,则认为发生山体遮挡,并追加 10 dB 遮挡损耗;该链路在该采样点判为无效。


五、问题一:单点安全载荷与货箱组批

5.1 问题分析

问题一包含两个相互关联的步骤:

  1. 对每一种机型、每一个服务区,求解一次往返任务能够携带的最大安全载荷;
  2. 根据最大安全载荷、货箱质量、货箱体积和服务区需求,将货箱装入尽可能少的架次。

核心矛盾是:载荷越大,单架次运输货物越多,但等效航程下降、能耗上升,可能导致返航安全约束失效。因此最大安全载荷由以下三类约束共同决定:

  • 机型额定质量上限;
  • 货舱体积上限;
  • 往返飞行能耗与 20% 返航余量约束。

5.2 求解过程

对每个机型 m 和服务区 i:

  1. 从 DEM 提取航段最大高程并计算巡航高度;
  2. 计算不同载荷下的往返时间和飞行能耗;
  3. 由于总能耗随载荷单调增加,对能量约束采用二分搜索;
  4. 将能量限制、质量限制和体积限制取最小值,得到最大安全载荷 q*_{m,i};
  5. 在同一服务区内按机型进行装箱组批,优先使每架次载荷接近安全载荷上限;
  6. 逐架次计算能耗、飞行时间和返航荷电状态,并检查所有约束。

这一步是物理约束下的带体积装箱问题。

5.3 关键结果

  • A 型无人机在所有服务区主要受额定质量上限约束,最大安全载荷为 25 kg;
  • B 型无人机大部分服务区可达到 30 kg,远距离服务区 S008 受能量约束降至约 28.9 kg;
  • C 型无人机多数服务区可达到 80 kg,但 S002、S003、S004、S008、S012 受距离和高差影响,最大安全载荷约为 59.2–69.0 kg;
  • 全部 80 箱物资组批为 18 架次;
  • 总能耗约 59.02 kWh;
  • 所有架次返航荷电状态不低于 20%。

5.4 结果解释

远距离与大高差是本题的主要能耗瓶颈,尤其是 C 型无人机虽然载荷能力强,但载荷增加后等效航程下降更明显。重载服务区由 C 型承担,轻载服务区则由 A、B 型完成,形成重载用大机、轻载用小机的自然分工。

安全余量增大时,最大安全载荷下降,部分 C 型任务必须拆分为多架次。扫描结果显示,返航安全余量从 20% 增至 35% 时,架次由 18 增至 25,总能耗由 59.02 kWh 增至 77.63 kWh,说明应急调度中安全性和运输效率之间存在明显权衡。


六、问题二:异构无人机多点多架次调度

6.1 问题分析

问题二不再局限于一个服务区一次往返,而是要对全网 80 个货箱统一调度。主要难点包括:

  1. 机型异构:A、B、C 型无人机能力不同,重载长距离任务主要依赖 C 型;
  2. 时间窗约束:首飞批、医疗物资和普通物资有不同截止时间;
  3. 无人机与电池耦合:架次出发必须同时满足无人机空闲和匹配电池充满;
  4. 多目标权衡:架次数、总能耗、完工时间和迟到惩罚通常不能同时达到最优。

6.2 决策单元与目标函数

以一个运输架次作为基本决策单元。每个架次由以下信息构成:

架次 = 机型 + 货箱集合 + 服务区访问顺序 + 无人机编号 + 电池编号 + 时间

优化目标综合考虑:

  • 货箱迟到惩罚;
  • 总架次数;
  • 总完工时间;
  • 总能耗。

首飞批和医疗物资的时限属于硬约束,若违反则方案不可行;普通物资超期则通过加权惩罚反映。

6.3 求解流程

步骤 1:生成初始解

先按照服务区和机型进行聚类,再依据问题一得到的容量上限进行装箱。首飞批和医疗物资被优先拆出,形成早期保障架次。

步骤 2:多算法家族并行对比

对同一优化问题并行考察模拟退火、遗传算法、自适应大邻域搜索、禁忌搜索与 GRASP 五类元启发式框架,在同一调度解码器与墙钟预算下公平对比。禁忌搜索(Tabu)通过货箱移动、交换、合并、拆分、区段换序与换机型等邻域操作持续改进解,并在零迟到硬约束下取得最优权衡。

步骤 3:资源约束解码

对每个候选方案按照截止期优先排序,依次寻找:

最早可用的匹配无人机 + 最早充满的匹配电池

架次实际起飞时间为:

t_start = max(释放时刻, 无人机可用时刻, 电池可用时刻) + 准备时间

返航后电池进入两阶段充电队列。若产生硬时限违反,则给予巨大惩罚,使不可行方案自动淘汰。

6.4 关键结果

最终选取零迟到的精炼冠军方案(24 架):

指标 结果
总架次 24
A 型架次 11
B 型架次 7
C 型架次 6
完工时间 约 6571.4 s(109.5 min)
总能耗 69.13 kWh
货箱迟到 0
硬约束违反 0(区一致零违例)

对照方案(同一调度解码器与墙钟预算下的五族元启发式 + 强化学习/束搜索/多区合并精炼):

方案 架次数 完工时间(s) 能耗(kWh) 加权迟到
完工冠军(精炼,本文选取) 24 6571.4 69.13 0
完工同速(多区合并精炼) 26 6571.4 70.24 0
完工同速(早期 27 架结构) 27 6571.4 70.68 0
节能均衡(Tabu) 21 7837 64.48 0
能耗折中(Tabu) 20 7778.7 67.45 0

方案结构表现为:

  • C 型无人机承担远距离、重载和高爬升任务,是整个系统的瓶颈;
  • A、B 型无人机承担短途、轻载和较细碎的服务区任务;
  • 14 组共享电池通过轮换使用,没有形成明显的电池等待瓶颈;
  • 首飞批和医疗物资优先安排在前期架次,全部按时送达;
  • 三池返场上限(A 6274 / B 6571 / C 6233 s)均衡化,消除单池瓶颈,完工由 B 池链条决定。

相较传统元启发式同架数方案(25 架次 / 7113 s / 70.28 kWh),完工冠军方案完工提前约 9.0 min(7.6%)、能耗降低约 1.15 kWh(1.6%);若以能耗为先,21 架次方案约 130.6 min / 64.48 kWh。问题二的方案为问题三提供了运输基线,但此时尚未加入全程通信约束。


七、问题三:运输与中继通信联合调度

7.1 问题分析

问题三是全题的核心。问题二的运输方案虽然满足货物时限,但山区中部分飞行段存在山体遮挡,运输无人机不能全程与 O01 直连。因此必须同时决定:

  1. 哪些飞行阶段需要中继;
  2. 中继应布设在哪些位置;
  3. 每架中继在什么时间服务哪个位置;
  4. 运输架次的通信需求如何与中继服务窗口相容;
  5. 在中继能源和运输资源有限的情况下,如何避免通信盲区。

这是运输调度、通信覆盖与中继排班共同构成的联合优化问题。中继位置会决定可覆盖的飞行阶段,而运输时序又反过来决定中继窗口的需求。

7.2 中继候选点确定

对问题二中的全部运输轨迹进行采样:

  1. 先检查每个采样点能否与 O01 直连;
  2. 对直连失败的采样点,逐一测试候选地形高点;
  3. 只有当运输机到中继的接入链路和中继到 O01 的回程链路同时有效时,才认为该候选点可用;
  4. 根据覆盖任务段数量和地理聚类选择最终布设点。

最终得到三个具有明显区域对应关系的布设点:

布设点 坐标(经度/纬度/高程) 主要覆盖区域
西点 W 109.2103°E / 23.0471°N / 676.5 m 西部与北部片区(S001、S002、S003、S005、S007、S008、S009、S011、S015 及相关走廊)
东点 E 109.2689°E / 23.0127°N / 650 m 东部片区(S010、S012、S013、S014)
北点 N 109.2343°E / 23.0592°N / 600 m S004 及其深入走廊(S004 直连不可达,必须经中继)

东点与北点坐标为进化 v17 在"全覆盖 + 回程可行 + 悬停离地 ≤300 m + 最紧接入余量 ≥1 dB"约束下的采纳值;西点坐标保持初始布设值。三个布设点的接入余量 1.00 / 1.11 / 9.40 dB,均无低于 1 dB 的采样点(进化 v24 复核不变)。

这三个点也自然形成了问题四的任务分区依据。

7.3 覆盖审核与中继时序规划

对问题二的 24 架次精炼冠军方案按 30 m 步长做逐点通信审核,共得到 1394 个需中继采样点。初始中继布设即实现全覆盖:西点、东点与北点三个布设点的接入与回程链路在全部采样点可行,无需任何人工调整,运输排程也无需平移。中继单架次能源预算为 2.56 kWh,三班均未超预算。

将所有需要中继的飞行阶段按布设点归类,再把相邻或时间重叠的任务合并为服务窗口。最终采用两架中继、三个服务时段:

中继任务 位置 服务时间 能耗 返航荷电状态
R1-01 西点 W [686, 6777] s 2.091 kWh 约 33.7%
R2-01 东点 E [760, 3354] s 0.986 kWh —
R2-02 北点 N [2562, 3289] s 0.483 kWh —

中继 1 全天驻留西点;中继 2 先服务东点,之后返航换装满充组件(6 组件共享池,复用前充至 100%)并转场到北点。需指出,E 点与 N 点需求窗口重叠 727 s,两架中继的机器级排班需时段协调或增配第 3 架才能实现双点同时服务。

7.4 联合调度结果

指标 问题二:纯运输 问题三:运输+中继 变化
运输架次 24 24 不变
完工时间 6571.4 s 7077 s(中继W撤离) +506 s(7.7%)
运输总能耗 69.13 kWh 69.13 kWh 不变
中继总能耗 未计 3.56 kWh 三班保障
通信盲区 未验证 0 初始布设即全覆盖

最终方案实现:

  • 80 箱货物全部按时送达(三档时限零违反、加权迟到为零);
  • 运输架次保持 24 架次,运输完工约 109.5 min(6571.4 s),联合完工 7077 s(约 118.0 min,由中继 W 撤离时刻决定,运输返场 6571.4 s 早于中继撤离),运输能耗 69.13 kWh;
  • 中继三班共 3.56 kWh,均满足单班 2.56 kWh 能源预算;
  • 1394 个需中继采样点全部覆盖,盲区为 0;
  • 全部飞行阶段通信盲区为 0;
  • 两架中继的转场衔接无冲突(E/N 重叠 727 s 需机器级时段协调,见第 7 节)。

该结果说明通信约束并不一定会增加运输成本:24 架次精炼冠军的时刻安排天然与三个中继窗口相容,运输无需任何平移;联合完工由中继西点班撤离 7077 s 决定,引入约 506 s 的中继代价(中继为稀缺资源、独立配置需 4–5 架),运输与中继的联合调度并非零和博弈。


八、问题四:任务分区与资源配置

8.1 问题分析

问题四要求把 15 个服务区划分为两组或三组,并为各组配置足够的运输无人机、电池、中继无人机和能源组件,同时考虑冗余备份。

分区不能只按地理位置划分,还要考虑通信覆盖结构:

  • 西部和北部任务主要由西点中继覆盖;
  • 东部任务由东点中继覆盖;
  • S004 对北点中继具有独立需求。

因此,通信覆盖关系直接决定了自然分区结构。

8.2 两种分区方案

三组方案

  • G1:西片区 9 区:S001、S002、S003、S005、S007、S008、S009、S011、S015,共 56 箱,另承 f39 顺访的 S006 箱 1 箱,合计 57 箱;
  • G2:东片区 5 区:S006(主箱随 f37 并入)、S010、S012、S013、S014,共 17 箱;
  • G3:S004 独立组:共 6 箱。

24 架次中三趟多区架次对分区构成绑定性约束:f37 同时服务 S006 与 S014(S006 主箱随 f37 划入东片区组)、f38 服务 S005 与 S011(S011 随 f38 划入西片区组)、f39 顺访 S006 的 1 箱随 C 型划入西片区组(跨组顺访,不改变 S006 区的东组主归属)。

两组方案

  • G1:西片区 9 区:同三组方案 G1,共 57 箱;
  • G2:东片区 + S004 + 直连 S006:S004、S006、S010、S012、S013、S014,共 6 区 23 箱。

8.3 最小机队搜索

对每个分区,提取属于该区的货箱和运输架次,遍历不同的机型组合、电池数量和中继数量(严格电池口径:电池最早就绪 = 架次返场后按两阶段充电曲线充满所需时间),寻找满足以下条件的最小资源配置:

  • 所有货箱按时送达;
  • 加权迟到为零;
  • 电池轮换可行;
  • 中继服务窗口无冲突;
  • 加入一架无人机、一组电池和一架中继作为冗余备份。

得到的代表性配置如下:

分区方案 组 服务区 A机 B机 C机 A电 B电 C电 中继 组件 完工(s)
K=3 G1 西9区+直连随西 3 2 3 4 3 4 2 5 8668
K=3 G2 东5区 3 3 0 4 4 0 2 3 4896
K=3 G3 S004 0 0 2 0 0 2 3 2 2300
K=2 G1 西9区+直连随西 3 2 3 4 3 4 2 5 8668
K=2 G2 东+N+直连6区 3 3 2 4 4 3 4 5 4896
库存 — — 4 2 2 6 4 4 2 6 —

8.4 结论:分区组织、资源池化

如果要求每个分区完全独立配置并保留冗余,两组和三组方案均超出题目库存。两组方案合计需 A 型机 6 架、B 型机 5 架、C 型机 5 架(超出 2、3、3 架),A 型电池 8 组、B 型 7 组、C 型 7 组(超出 2、3、3 组),中继 6 架超出 4 架,能源组件 10 组超出 4 组;三组方案中继需求更多(7 架超出 5 架)。组间工作量明显失衡:三组方案各组货箱数为 57/17/6(约 9.5:2.8:1),两组方案为 57/23(2.5:1),单区 G3 独立成组形成资源碎片化。

因此更合理的工程组织方式是:

  • 任务按区域划分,便于指挥、统计和通信协同;
  • 无人机、电池和中继仍由调度中心统一管理;
  • 通过时间分片实现跨区域复用;
  • 高价值的中继和能源组件不固定绑定某一分区。

最终给出的集中资源方案使用 8 架运输无人机、14 组电池和 2 架中继,能够实现零迟到、零通信盲区,且不超过给定库存。


九、完整求解流程

本项目的实际计算流程如下:

第一步:读取数据

读取以下数据:

  • 15 个服务区与调度中心的经纬度和地面高程;
  • 30 m 分辨率 DEM;
  • 80 个货箱的类别、质量、体积和时限;
  • A、B、C 三类运输无人机参数;
  • 中继无人机、能源组件和电池参数。

第二步:建立统一物理计算模块

在 求解代码与结果/代码/core.py 中统一实现:

  • 经纬度距离计算;
  • DEM 航线采样;
  • 爬升、巡航、下降时间计算;
  • 等效航程与载荷能耗计算;
  • 电池 SOC 与充电时间计算;
  • 通信链路损耗与地形遮挡判定。

第三步:求解问题一

运行问题一求解器,得到每个机型与服务区组合的最大安全载荷,再完成单点货箱组批,输出 p1_results.json。

第四步:求解问题二

生成运输初始解,在相同调度解码器与墙钟预算下并行对比模拟退火、遗传算法、自适应大邻域搜索、禁忌搜索与 GRASP 五类元启发式,并以图注意力强化学习、宽带束搜索与多区合并算子逐级精炼收敛 Pareto 前沿;精炼冠军在零迟到硬约束下取得完工冠军(24 架次 / 6571.4 s / 69.13 kWh),节能备选 21 架次 / 130.6 min / 64.48 kWh;使用资源解码器安排无人机、电池和起降时间,输出 p2_results.json 与 Pareto 对照结果。

第五步:求解问题三

对精炼冠军方案按 30 m 步长做逐点通信审核,识别需中继采样点(共 1394 个);搜索并确定 W/E/N 三个中继布设点,安排两架中继、三个服务时段;初始布设即实现全覆盖,形成运输—中继协同方案(联合完工 7077 s,中继代价约 506 s)。

第六步:求解问题四

按照两组和三组分区方案拆分任务,遍历各组最小机队和冗余配置,输出 p4_results.json。

第七步:独立校验与结果导出

对最终方案进行独立校验:

  • 80 箱是否全部出现且无重复;
  • 每个架次是否满足机型载荷和体积约束;
  • 无人机和电池是否发生时间冲突;
  • 所有硬时限是否满足;
  • 中继窗口是否覆盖全部需要中继的任务段;
  • 是否存在通信盲区。

校验通过后,将结果导出到官方 Excel 提交模板,并生成论文中的甘特图、通信时间线和中继时间线。


十、结果复现

核心复现命令(在含 数据/ 的工作目录中运行):

# 1. 五族算法公平对比基准(SA/GA/ALNS/Tabu/GRASP,墙钟预算公平对比)
python -X utf8 求解代码与结果/实验/benchmark.py --seconds 60 --seeds 7,11,13

# 2. 冠军搜索并导出冠军配置(24 架次 / 6571.4 s / 69.13 kWh)
python -X utf8 求解代码与结果/实验/champion_search.py --seconds 600 --seeds 7,11,13 --restarts 2 --export

# 3. 运输-中继联合调度(读取 p2_results.json)
python -X utf8 求解代码与结果/代码/p3_co2.py

# 4. 中继覆盖核验(初始布设即全覆盖,1394 个需中继点)
python -X utf8 求解代码与结果/实验/p3_coverfix.py

# 5. 导出结果提交模板
python -X utf8 求解代码与结果/代码/export_excel.py

# 6. 重绘论文图件(萱草橙色系:v124/v125/v126 脚本在 求解代码与结果/实验/)
python -X utf8 求解代码与结果/实验/v124_redraw_routes3d.py
python -X utf8 求解代码与结果/实验/v125_nature_p1.py
python -X utf8 求解代码与结果/实验/v126_nature_p234.py

注:论文最终采用精炼冠军口径(24 架次 / 6571.4 s / 69.13 kWh + 初始布设即全覆盖的中继方案,联合完工 7077 s)。历史版本归档见 求解代码与结果/结果/进化_v3 至 进化_v25;历史 26 架口径(26 架 / 6897 s / 70.86 kWh / 联合 6921 s)为进化 v24 及更早版本,已归档留档。具体版本与结果文件说明见 求解代码与结果/README.md。


十一、最终结论速览

问题 最终结论
问题一 通过等效航程能耗模型和二分搜索求最大安全载荷,80 箱货物组批为 18 架次,总能耗 59.02 kWh,全部满足 20% 返航余量。
问题二 通过截止期优先、五族元启发式对比与强化学习/束搜索/多区合并精炼(精炼冠军)得到 24 架次方案,完工约 6571.4 s(109.5 min),总能耗 69.13 kWh,零迟到、区一致零违例;较同架数传统方案完工提前约 7.6%、能耗降低约 1.6%。
问题三 通过 DEM 遮挡判定与自由空间链路预算确定 W/E/N 三个中继点,两架中继分三个时段服务(W 2.091 / E 0.986 / N 0.483 kWh,合计约 3.56 kWh),初始布设即全覆盖 1394 个需中继采样点,24 架次运输全程通信覆盖,盲区为零;运输完工 6571.4 s,联合完工 7077 s(中继 W 撤离决定,中继代价约 506 s),E/N 需求窗口重叠 727 s 需机器级协调。
问题四 两组和三组完全独立配置都会超过库存(三组货箱 57/17/6、两组 57/23);采用任务分区、资源池化和时间分片复用更合理,8 机 + 14 电池 + 2 中继恰好满足库存。

核心工程启示

  1. 山区应急无人机任务的主要瓶颈是远距离、大高差和重载,而不是单纯的无人机数量。
  2. 通信窗口与中继布设应当在运输调度完成后做确定性逐点审核,个别未覆盖采样点可通过中继坐标微调(如海拔上调)清零,无需牺牲运输效率。
  3. 运输与中继的联合调度并非零和博弈:以已核验的运输方案为输入、在几何与能源层面补齐覆盖,即可实现零盲区且运输能耗不变(24 架冠军的完工代价仅来自中继撤离约 506 s),运输层结构调整还可带来额外完工收益。
  4. 中继、无人机和电池等高价值资源应集中管理、跨区域复用。
  5. 在灾害应急场景中,应优先保证硬时限和通信连续性,再在可行解集合内优化能耗和完工时间。

十二、目录结构

D题/
├── README.md                         本说明文档
├── 论文-山区洪涝无人机D题.pdf          LaTeX 论文成品
├── 山区洪涝灾害下无人机运输与通信协同优化.docx  题目原文
├── main.tex + sections/              论文 LaTeX 源码
├── figures/                          论文插图
├── 数据/                              题目数据与 DEM
├── 问题描述图片/                      题目原文附图
├── 求解代码与结果/
│   ├── 代码/                          求解器、物理模型、绘图和导出程序
│   ├── 方案脚本/                      最终方案与独立校验脚本
│   ├── 结果/                          p1/p2/p3/p4 JSON 结果
│   ├── 实验/                          多算法对比与敏感性实验
│   └── README.md                      代码复现说明
└── 结果提交模板_填写.xlsx              已填写的最终结果表

十三、模型局限与推广方向

当前模型采用确定性参数,未显式考虑阵风、突发禁飞、设备故障、电池老化和温度影响。中继也采用固定悬停点,未进一步建立移动中继或多中继自组织网络模型。

后续可以从以下方向推广:

  • 引入滚动时域,实现灾情变化下的动态重规划;
  • 将风场、降雨和临时禁飞区纳入鲁棒或随机优化;
  • 将中继扩展为可移动中继路径;
  • 建立多中继冗余通信和故障恢复机制;
  • 将模型推广到森林消防、海上搜救和大型活动通信保障等场景。

如何参与与反馈

本项目开放协作,任何形式的参与都欢迎:

  • 提 Issue:发现数字口径疑问、代码 bug、模型缺陷或表述不清,欢迎提交 Issue, 我们会逐条核实并回复;
  • 提 PR:算法改进、新实验、文档润色、复现增强……欢迎直接提交 Pull Request;
  • 微信群:扫码加入文首微信群,与我们一起讨论建模思路与迭代方向(二维码见顶部);
  • 关注系列:本仓库是"数学建模开源计划"的第一题,后续每道题都会以独立仓库 开源并持续维护,欢迎 Star 关注。

我们承诺:对每一条意见认真对待、如实记录(见更新日志),并据此持续重算与修订。


许可证

本项目采用 MIT License,Copyright © 2026 Akun-python。代码可自由使用、 修改与再分发;引用本方案时请注明来源。