台北市网站建设_网站建设公司_Tailwind CSS_seo优化
2025/12/20 18:29:00 网站建设 项目流程

前言

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

无人机配送

问题描述

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

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

(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 大模型的进化速度之快,令人骇人,它彻底改变了比赛的底层逻辑。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询