news 2026/7/7 13:43:08

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

作者头像

张小明

前端开发工程师

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/7/7 12:28:55

软件系统稳定性保障:压力测试、负载测试与容量测试的深度辨析

在现代软件工程中,性能测试是确保系统可靠性和用户体验的关键环节。其中压力测试、负载测试与容量测试作为性能测试体系的重要分支,常被从业人员混淆或误用。本文针对软件测试从业者群体,系统解析三者的核心区别、实施场景及技术要点&#xf…

作者头像 李华
网站建设 2026/7/6 21:25:42

并发测试中的五大常见陷阱与破解之道

并发时代的质量挑战 随着分布式架构与微服务普及,并发测试从可选项目变为质量保障的生命线。然而,由于并发缺陷的隐蔽性、非确定性和高复杂度,测试人员常陷入“认知偏差-工具误用-环境失真”的循环陷阱。本文结合典型场景,揭示并…

作者头像 李华
网站建设 2026/7/7 18:44:24

亥姆霍兹线圈在‌化学领域的主要应用

亥姆霍兹线圈在化学领域的主要应用集中在利用其产生的均匀磁场环境来研究物质的磁性特性以及相关化学过程。具体应用包括:磁性材料特性测量:用于测量磁性材料的磁化曲线、磁滞回线等参数,帮助分析材料的磁学行为,这在材料化学和固…

作者头像 李华
网站建设 2026/7/7 15:27:13

连续时间下的概率预测

用自然常数 eee 丈量时间与风险 ——从丙烷罐泄漏看连续时间下的概率预测摘要: 在工程与生活中,我们常被问到:“如果这件事每年发生的概率是 5%,那么 10 年后它发生的概率是多少?”直觉告诉我们是 50%,但数…

作者头像 李华
网站建设 2026/7/6 19:55:10

什么是网络安全CTF有何意义?该如何入门?

什么是网络安全CTF?有何意义 ?该如何入门 ? 什么是网络安全CTF? CTF在网络安全领域中指的是网络安全技术人员之间进行技术竞技的一种比赛形式。它起源于1996年DEFCON,以代替之前通过互相发起真实攻击进行技术比拼的方式。发展至今&#x…

作者头像 李华
网站建设 2026/7/6 23:44:07

适合自学的网络安全基础技能“蓝宝书”:《CTF那些事儿》

CTF比赛是快速提升网络安全实战技能的重要途径,已成为各个行业选拔网络安全人才的通用方法。但是,本书作者在从事CTF培训的过程中,发现存在几个突出的问题: 1)线下CTF比赛培训中存在严重的 “最后一公里”问题 &#…

作者头像 李华