龙空技术网

致全球开发者:你用的排序算法已被AI设计的新算法取代了!

自在星空wW 23

前言:

而今同学们对“计算机算法可分为两大类”大约比较珍视,小伙伴们都想要知道一些“计算机算法可分为两大类”的相关资讯。那么小编也在网上汇集了一些有关“计算机算法可分为两大类””的相关知识,希望朋友们能喜欢,姐妹们一起来了解一下吧!


今天,一则新闻的出现让科技圈再次沸腾。现在的AI不仅可以辅助写代码,而且能够帮助开发者写出更好的算法。

从DeepMind官网的博客文章中可知,其开发的人工智能系统“阿尔法开发”(AlphaDev)在计算机科学方面取得了重大突破,已被证明能够发现并改进C++库里广泛使用的计算机排序算法。因此,当用户提交搜索查询时,AlphaDev的算法有助于更快地对结果进行排序,在大规模使用时可以节省大量时间和能源。在今天《Nature》杂志刊登的文章中也表示,这些AI生成的算法已被整合到C++排序库,是十多年来对这部分库作出的首次更改。


什么是排序算法?
在计算机系学生的必修课《数据结构与算法》中,排序是最基本的算法之一,它的作用是使一组数据按照某种规则进行排列,比如从小到大或者从大到小。在日常生活中,排序算法可以应用在很多方面,比如:1.处理文字资料,产生人类可读的输出结果,例如按字母或拼音顺序排列单词或姓名。2.方便查找,例如在一组数据中找出最大值或最小值,或者统计某个元素出现的频率。

3.优化日常生活中的文档整理,例如按学号或姓名对作业本,答题卡,试卷等进行排序。

或许看上去排序算法很简单且意义不大,但排序算法是全球开发人员每天使用数万亿次进行数据排序、存储和检索的基本流程,从在线搜索结果和社交帖子排名到如何在计算机和手机上处理数据,排序算法都起到了重要作用。尤其是当数据量扩大千倍、万倍甚至亿倍的时候,更好的排序算法可以节省大量的时间,减少不必要的比较和交换操作,降低时间和空间的复杂度,提高数据处理的速度和质量。

目前,已有的排序算法可以被划分为内部排序和外部排序。其中,内部排序是在内存中进行排序,外部排序是在外存中进行排序。常见的内部排序算法有十种,分为以下几类:稳定排序算法:冒泡排序、插入排序、归并排序、计数排序、桶排序与基数排序

不稳定排序算法:希尔排序、选择排序、堆排序与快速排序


AI发现的新算法具有革命性意义

通过强化学习,DeepMind的AlphaDev发现了更加有效的算法,直接超越了科学家和工程师们几十年来的精心打磨和优化的各种排序方式。现在,新的算法也已经成为两个标准C++编码库的一部分,并且该算法也在今天开源,对于较短的序列,排序的速度提高了70%,即便对于超过25万个元素的序列,速度也能提高约1.7%,未来每天都将被全球的程序员使用数万亿次。

而AlphaDev的主要作者之一、Google DeepMind的研究科学家Daniel J. Mankowitz表示,这是强化学习的一个重要里程碑,因为它提供了更多证据证明其做出新发现的能力,特别是在代码优化领域。此前,GPT-4等大模型生成代码的能力已经让人惊叹,而AlphaDev则是在更底层对计算机科学进行优化,影响范围也更加深远,因为它并不是通过改进现有算法,而是完全从头开始发现了一种全新的且更快的算法。

根据DeepMind的说法,大多数算法都已达到人类专家无法进一步优化的阶段,导致计算的瓶颈不断升级,而AlphaDev则采用了一种非常规的方法,通过进入计算机的汇编指令领域来发现更快的算法,这也是一个人类开发者很少会探索到的领域。

不过,如今开发者写代码时常用的是C++等高级语言,但这些算法层面的改进在更高级的编程语言中已经很难被发现。为了让计算机理解代码的意义,这些高级语言必须被翻译成更加底层的汇编指令,而在汇编语言的层次上,计算机的存储和操作都更加灵活,存在着更多潜在的改进可能性,这些改进可能对速度和能源使用产生更大的影响。为了解锁新的算法,AlphaDev从DeepMind著名的强化学习模型AlphaZero中汲取了灵感,AlphaDev的研究团队也将排序重新想象为单人游戏,AlphaDev则利用强化学习来观察和生成“游戏”算法。当AlphaDev增量构建新算法时,它还会将算法的输出与预期结果进行比较,从而验证每个动作的正确性,这种方法的最终目标是发现一个正确和更快的程序,从而在游戏中取得胜利。

当然,这款“汇编游戏”是非常困难的,因为AlphaDev必须在大量可能的指令组合中进行高效搜索,以找到一个可以排序的算法,并且要比当前的最佳算法更快。指令的可能组合数量类似于宇宙中的粒子数量,或者国际象棋(10^120局)和围棋(10^700局)中可能的动作组合的数量,而任何一个简单的动作出现错误就可以使整个算法失效。


DeepMind的下一步是什么?

对于DeepMind来说,下围棋一战成名的AlphaZero、能够预测蛋白质结构的AlphaFold已经成功破圈,现在的AlphaDev更让人感到惊艳,证明了它有能力概括和发现世界级的新算法。

不仅如此,AlphaDev的能力还超越了排序算法领域,其不仅发现了更快的算法,而且还发现了新的方法。在汇编层面,它的排序算法包含新的指令序列,每次应用时都会节省一条指令,当这些算法每天被使用数万亿次时,产生的巨大影响则不言而喻。DeepMind团队还将AlphaDev应用于数据结构中最常用的哈希算法之一,尝试发现更快的算法。当将其应用于9-16字节范围的哈希函数时,AlphaDev发现的算法速度提高了30%,该哈希算法现在也在Abseil开源库中可用。

DeepMind表示,AlphaDev的出现是创建能够优化整个计算生态系统和应对各种社会挑战的多功能人工智能工具的一个重要里程碑,这些新算法能为研究人员和从业者提供如何构建算法的全新视角。

虽然当前用AI来汇编指令已被证明非常强大,但DeepMind表示,它们还在积极探索AlphaDev直接在C++等高级语言中优化算法的潜力。例如,在运行应用程序和服务时更有效地调度资源,优化视频压缩管道,以及优化运行系统和应用程序的底层硬件等等,这对开发人员来说也更有价值。

此外,研究人员也希望,这些发现能激励行业内人士创造新的技术和方法,进一步优化基础算法,以创建一个更强大、更可持续的计算生态系统。

标签: #计算机算法可分为两大类