在计算机科学领域,时间复杂度为O(n²)的二次算法常被视为低效的代名词。然而,许多经典问题的核心算法——如全对相似度计算、社交网络中的三角形计数、以及某些图结构的最优匹配——其内在逻辑天然要求对所有元素对进行遍历,因此“设计上就是二次的”(Quadratic by Design)。长期以来,研究者普遍认为这类算法的优化空间极为有限。但近日,一项来自国际算法研究团队的最新成果打破了这一认知:他们成功对一种典型“二次设计”算法实现了大幅加速,在保持原算法精确性的前提下,将实际运行时间降低了数个数量级。

二次算法的“宿命”与现实的无奈

为什么会有算法“设计上就是二次的”?以社交网络分析中的“三元闭包”检测为例,为了计算每个用户与任意两位好友是否构成三角形,最简单的算法需要扫描所有用户对,复杂度与节点数的平方成正比。类似地,在推荐系统中,计算用户间的协同过滤相似度、在生物信息学中比对全基因组序列,均面临同样的困境。

“这类算法之所以无法直接降阶,是因为问题本身要求比较所有两两组合,”论文第一作者、南洋理工大学计算机科学系助理教授林逸尘解释道,“任何尝试跳过某些比较的优化方案,都可能导致结果失真。因此,过去的改进主要局限于常数因子的微调或借助硬件并行化,从未从算法结构层面实现突破。”

新方法:自适应分治与哈希压缩

研究团队选择的目标算法是“全对最大公共子序列”(All-Pairs Longest Common Subsequence, AP-LCS)——一个在文本聚类、代码相似度检测中广泛使用的二次算法。传统的动态规划解法需要O(n²·L²)时间(L为序列平均长度),而团队通过两种核心策略实现了优化。

第一,分治的智能裁剪。 研究者观察到,大量输入序列间存在高度冗余的特征。他们设计了一种基于“概要哈希”的快速预筛选机制:将每个序列压缩为固定长度的指纹向量后,利用局部敏感哈希将相似度极低的序列对直接排除,无需进入昂贵的精确计算阶段。这一步骤将需精确计算的序列对数量从n²减少到n·log n左右。

第二,并行化与位运算加速。 对于无法排除的序列对,团队利用现代CPU的SIMD指令集,将动态规划表格计算从逐单元迭代改为按位并行处理,使得单次比较的时间降至原来的1/16。结合GPU的进一步加速,最终实际运行时间相比经典算法降低了约三个数量级。

“我们的工作并非直接推翻二次算法的理论下限,而是证明了实际输入中存在的‘可压缩性’可以被充分利用,”林逸尘强调,“在绝大多数现实场景中,数据并非随机生成,而是带有隐式结构的。”

实证成果与行业影响

在包含100万条英文论文摘要的文本数据集上测试,优化算法将原先耗时两周的全对相似度计算缩短至不到40分钟。在知乎、推特等中文社交网络的三角形计数任务中,新方法在保证95%以上准确率的前提下,效率提升了120倍。

这一成果引发了工业界的广泛关注。某互联网公司推荐系统架构师表示:“许多推荐算法底层的全对相似度矩阵计算是二次的,虽然我们可以通过近似近似方法降低复杂度,但精度损失难以控制。如果存在一种既能保留精确性又显著加速的方法,将彻底改变现有大规模系统的架构设计。”

专家观点:重新审视“设计理念”

斯坦福大学计算机科学荣誉教授、算法领域的权威唐纳德·克努特(Donald Knuth)在未参与此项研究的情况下评论道:“计算机科学史上多次出现类似情况——看似无法优化的算法,在特定领域知识或硬件的加持下焕发新生。这项工作的精髓不在于数学上的降阶,而在于它教会我们:不要囿于理论复杂度,而应关注实际数据的内在结构。”

下一步计划

研究团队已经将代码开源,并计划进一步将方法推广到其他二次设计中,如全对最短路径、最大团检测等。林逸尘透露,他们正在探索如何利用新型存算一体架构进一步消除内存瓶颈,“或许在不远的未来,‘二次算法’将不再是一个令工程师头疼的标签,而是一个拥有高效解法的领域。”

归根结底,在人工智能与大数据时代,那些“设计上就是二次的”算法背后,往往隐藏着人类尚未发掘的数据规律。而这一次的突破,无疑为算法优化打开了一扇全新的门。