news 2026/3/1 5:12:12

第七届全球校园人工智能算法精英大赛-算法巅峰赛产业命题赛第一赛季优化题--无人机配送

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
第七届全球校园人工智能算法精英大赛-算法巅峰赛产业命题赛第一赛季优化题--无人机配送

前言

“全球校园人工智能算法精英大赛”是江苏省人工智能学会举办的面向全球具有正式学籍的全日制高等院校及以上在校学生举办的算法竞赛。其中的算法巅峰赛属于产业命题赛道,这是第一赛季,对最后一道优化题进行浅浅地解读。

无人机配送

问题描述

低空经济的应用场景不断上新,无人机在快件配送、医疗物资转运等方面发挥了重要作用。每个城市都建有一条竖直的无人机航站楼,航站楼上分布着若干起降点。
作为“巅峰航空"的航司调度员,你接到了一个任务,在每个城市的无人机航站楼上都选取一个起降点,并把这些点连接成一条运输路径,路径顺序由你决定。
路径可以自任意一个城市开始,并最终返回这个起始城市。

无人机飞行时有两种主要消耗:

(1)时间消耗:用两点之间的直线距离(欧氏距离)来表示,距离越短,时间消耗越少,时效性越好

(2)动能消耗:如果后一个点比前一个点的高度更高,就需要额外的能量爬升。用两点间的“斜率”(高度差÷水平差)来表示,如果下降或水平则不计。

不同的无人机航空公司有着不同的经营策略,廉价航空更注重成本控制,精品航空则更注重时效性。“巅峰航空"为你配置了一个权衡系数k,用来平衡“时效“与“能耗”的重要性,

k越大,越重视降低能耗,应尽可能选择平缓路线;k越小,越重视提升时效,应尽可能缩短总距离。

你的目标是通过合理的航线调度,实现更少的综合消耗。综合消耗=(1-k)x 总距离之和÷D+kx 总爬升斜率之和÷S.

你的k值为0.6。

输入格式

第1行:城市数量 M。
接下来每个城市:
1行:城市的起降点数量n和该城市的横坐标x;
下1行:n 个纵坐标y,表示该城市所有起降点的位置。

最后1行:D和S,用于将综合能耗的计算调至相同量级(归一化基准)。

其中,M、n、x、y、D、S均为整数,2≤M≤200,1≤n≤20,0x≤10000,0≤y≤10000。

输出格式

输出1行:以“@“相隔的M个数据对(城市序号,航站楼起降点席号)

其中,城市序号指该城市在输入中的出现次序,航站楼起隆点席号指该起隆点在该城市航站楼的出现次序。无人机在到达最后-个城市后将自动返回起始城市,故无需在未尾再次输出起始城市。

输入样例

3
3 2
1 3 8
4 6
4 8 9 10
4 10
1 3 7 10
7 1

输出样例

(1,3)@(3,3)@(2,2)

该示例仅作为输出的格式示例,并不代表该示例的综合消耗最少。


思路分析

这题是 TSP 的变体。

  1. 重新定义了距离,引入了斜距(不利于可视化),

  2. 重新定义了边,点与点之间变成了特殊的有向边

    如何理解这个“特殊的有向”,简单来说:

    dist(a, b) != dist(b, a)


历来TSP 问题核心操作因子是

交换 交换交换

点交换,边交换,区间交换等等

但这个 tsp 有向边的特殊性,导致只有点交换依旧有效(可以思考下为什么)

另一方面,其数据规模达到百级别,但只有10 秒时限,根本没有给成熟元启发式算法时间去进化。

因此这题最核心的解法

近似算法为主,元启发算法为辅助 ( 可忽略) 近似算法为主,元启发算法为辅助(可忽略)近似算法为主,元启发算法为辅助(可忽略)


高分思路

高分思路,大概分两种策略

  • 先确定好序列(航站点),然后再确定具体序列里的参与点(起降点)
  • 动态调整构造(航站点+起降点)

这题高分思路非常多,挑几个讲讲。


以先确定序列,再确定参与点为列

按x轴排序(航站楼)+环状层序 DP(起降点)

这个思路,比赛的时候,很多人采用了

# 按 x 轴排序 sort(stations, key=lambda s: s.x) # 这边的 dp 有些复杂,大概这个架构(忽略边界,路径跟踪) # dp[i][j], path[i][j] for z in range(len(stations[0].ys): # 确定从第一个站点的第i 起降点出发 dp[0][z] = 0 for i in range(m - 1): for j in range(len(stations[i].ys)): for k in range(len(stations[i+1].ys)): dp[i+1][k] = min(dp[i+1][k], dp[i][j] + dist(stations[i].ys[j], stations[i+1].ys[k])) #处理最后的环,即m-1 到 0 节点 for j in range(len(stations[m - 1].ys)): #取最小的 min dp[m - 1][j] + dist(stations[m - 1].ys[j], stations[0].ys[z]);

不过大概只有 169 分,因为这是确定性算法,所以导致当时比赛的时候,很多人在这个分数点聚集成了一个小区间。

后面几个赛季感觉组委会引入时间耗时,内存消耗作为波动小分,打散了这种确定算法相同分数的情况。


多策略排序(航站楼)+环状层序 DP(起降点)

基于第一种思路,稍微做一些改进

根据多种策略,进行排序

  • 按 x 坐标排序
  • 按 y 坐标中位数,1/3 位数,2/3 位数,随机点排序
  • 按 x 坐标+y 坐标加权排序

注意:这里的排序,可以升序,也可以降序

后续采用同样的 DP 算法。

虽然看起来有些玄学,但是效果真不错,实测接近 400 分。


未完待续


基准测试

未完待续


写在最后

这篇文章是晚于 第二赛季和第三赛季,补上是因为想补齐整个赛季(单纯的完美主义作祟)。

那为啥之前一开始不写呢?

完败于 A I 大模型的深深无奈和绝望 完败于 AI 大模型的深深无奈和绝望完败于AI大模型的深深无奈和绝望

犹记得 2024 年3D 打印机 那道优化题,其实做了很长时间的算法调研对比,还特意构建一整套测试框架,可视化调试工具,最后优化到满分。

有兴趣可以参看下文:

第六届全球校园人工智能算法精英大赛-算法巅峰专项赛

但是短短的一年内,AI 大模型的进化速度之快,令人骇人,它彻底改变了比赛的底层逻辑。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/2/27 10:34:36

CTF 大神才知道的 50 个解题骚套路,速速收藏!_ctf解题思路模板

CTF 大神才知道的 50 个解题骚套路,速速收藏! CTF 竞赛的核心玩法 核心目标 : 以 Flag 为导向,光速拆解问题、熟练运用各种工具、培养模式化思维。 关键原则 : 先撒网再深挖(信息收集要全面)、…

作者头像 李华
网站建设 2026/2/23 17:20:22

白盒测试与代码覆盖率:从理论到实践的全方位解析

在软件开发的生命周期中,测试是确保产品质量的关键环节。白盒测试(White-Box Testing),又称结构测试或玻璃盒测试,是一种基于程序内部逻辑和代码结构的测试方法。它与代码覆盖率(Code Coverage)…

作者头像 李华
网站建设 2026/2/24 9:50:34

0x3f第九天复习(考研日)(10.57-14:00)

二叉搜索树验证 前序2min ac4min ac4min ac二叉搜索树验证 中序 6min x 基本没问题,记得 每次递归都要return 结果 6min ac 4min ac二叉搜索树验证 后序 30min x 最后return min(lmin,x), max(rmax,x) 还是有点没理解 15min ac 10min x还是不理解 (return min(lmin…

作者头像 李华
网站建设 2026/2/26 14:01:42

毕业论文毫无头绪?百考通AI平台,输入题目秒出专业初稿!

你是不是正对着空白文档发呆? 选题没方向、大纲理不清、文献看不完、正文写不出……导师催进度,同学已进入修改阶段,而你连“第一章”都还没成型。别再让写作焦虑拖垮你的毕业节奏!百考通全新推出的“毕业论文”AI智能写作平台&am…

作者头像 李华
网站建设 2026/2/24 20:31:11

购物狂欢频繁被攻击:网络安全的价值与必备技能

电商平台涌动着千万订单,支付网关处理着海量交易请求,用户账户里存储着个人信息和资金余额,企业服务器承载着核心业务数据和商业秘密…… 每逢“双十一”、“黑五”等购物狂欢季,或是重大活动期间,我们总能看到“某平…

作者头像 李华