
自从第一台计算机问世以来,排序或数据结构化一直是计算操作的核心原则。
大约在公元前2500年,巴比伦人展示了数字的排序与处理方法。埃及人在公元前1550年也采用了这种方法,而希腊数学家欧几里德则在公元前300年提出了一种公式,可以快速找到两个整数的最大公约数。
19世纪中叶,数学家Augusta Ada King(即著名诗人拜伦之女)的主要目标是编程;她创造了第一个算法,旨在用于她的导师、计算机之父Charles Babbage想象出的一种理论机器上。因此,她获得了“第一位计算机程序员”的称号。
1951年,另一位女性弗朗西丝·伊丽莎白·霍尔伯顿设计了首个生成式编程系统,这是美国军队的一个基本的排序/合并程序。她还在第二次世界大战期间帮助编写弹道轨迹程序。
事实上,根据计算机设计和密码学专家弗兰克·鲁宾的说法,分类可以追溯到人类进化之前甚至更早的生命形式——大约在6500万年前。他说,恐龙进行简单的分类。他们将所有生物分为两类:“食物”和“非食物”。
计算算法的发展步伐从20世纪中叶加快到了现在。我们现在拥有的计算机可以每秒进行一百万亿次计算。
巴比伦人——甚至恐龙——可能会非常惊叹。
谷歌DeepMind团队在6月7日的在线博客中宣布的突破也令人印象深刻。
该团队设计了一种比目前方法快70%的数字计算方法。这些算法已经被添加到C++库中使用了一年。据DeepMind称,这些开源算法现在正在全球数百万开发人员和公司中使用。
DeepMind在博客中报告说,这个名为AlphaDev的AI项目是“一个人工智能系统,它使用强化学习来发现超越科学家和工程师几十年来磨练出来的计算机算法”,该论文也发表在《自然》期刊上。
AlphaDev基于其前身AlphaZero的成功,AlphaZero掌握了围棋和国际象棋的策略。
AlphaDev的排序训练是使用研究人员所称的“单人装配[语言]游戏”进行的。
排序算法一步一步地构建,因为AlphaDev不断探索选择,希望找到比之前更好的方法。这个过程涉及利用神经网络来比较和移动值,旨在以最短的时间获得最准确的结果。
“摩尔定律即将到达尽头,芯片接近其基本物理极限,”DeepMind科学家丹尼尔·曼科维茨说道。“我们需要寻找新的创新方式来优化计算。”
这项研究聚焦于最多五个字符的短列表。研究人员表示,三到五个字符算法是程序员最常用的算法。DeepMind博客指出,这些算法每天被使用“数万亿次”。
对于更长的排序序列,长达250,000个元素,与当前方法相比,速度提高仅有微小差距。
AlphaDev的下一步是研究在高级语言(如C++)中的优化,这应该会揭示更大的速度提升,对开发人员更有用。