英国深度思维公司的人工智能体“阿尔法开发”(AlphaDev),已被证明能发现并改进C++(一种常用的计算机编程语言)库里广泛使用的计算机排序算法。《自然》7日刊登的这些人工智能(AI)生成的算法已被整合到C++排序库,这也是10多年来对这部分库作出的首次更改。
研究团队使用“AlphaDev”进行改进探索。
图片来源:《自然》网站
算法对于计算是必不可少的,它能为执行特定计算任务提供一组指令。排序任务这类基础算法每天要运行数万亿次。由于人类专家无法进一步优化,改进这类算法的尝试遇到了瓶颈,而AI智能体有望解决这个问题。使用深度学习改进算法的努力一直受到限制,因为之前只能在开发深度学习系统的训练样本范围内进行发现和优化。“阿尔法开发”这种新的深度强化学习智能体被证明能突破这种限制,无需针对某个问题的任何训练就能发现新算法。
深度思维研究团队将寻找更优排序算法的任务编成了一个游戏,并训练“阿尔法开发”来玩这个游戏。通过玩这个游戏,“阿尔法开发”发现了超越当前最先进算法的排序算法。这次新发现的排序算法中有一些已与C++库的标准排序函数整合,这个系统有数百万名用户使用,包括许多大学和跨国公司。
“这种方法的优势在于这个系统能学习基于奖励信号生成高效程序,无需来自训练样本的任何指导。”美国麻省理工学院科学家阿曼多·索拉-勒泽玛在同时发表的新闻与观点文章中写道,“这种方法的通用性以及无需提前了解问题就能运行的能力使其成为一个关键进展,从而有望实现专家干预最小化的高效编程。”
C++早在20世纪70年代就被贝尔实验室开发出来,至今仍是集灵活与功能强大于一体的编程语言,其很大一部分原因在于C++拥有计算机运行的实用性特征,使得它几乎可以创建任何类型的程序,甚至其他编程语言的库和编译器也能使用C++编写。但这也意味着,改进这类算法对人类来说非常有难度。现在,AI通过深度学习,发现了超越当前最先进算法的排序,这无疑是AI发挥其作用和价值、优化人类科技的一个生动案例。
关键字:C++
引用地址:
十多年来,C++排序库首次更改,人工智能改进计算机编程语言
推荐阅读最新更新时间:2024-10-30 10:45
基于C8051F310高压放大器输出直流电压监测与显示系统设计
在自适应光学系统中,自适应控制器AD输出控制信号需要通过高压放大器放大成高压电驱动压电陶瓷变形镜,从而实现波前实时校正。在实际系统中,往往需要对高压放大器输出电压进行实时监测。本系统采用小体积单片机C8051F310作为控制器,采用专用电表芯片CS5460A作为核心测量芯片,实现了单板对20路0~500 V直流电压的实时监测与显示,线性度优于0.2%。 自适应光学系统由波前探测、波前控制、波前校正和监控系统组成。压电陶瓷变形镜是用于波前校正的核心元件,驱动压电陶瓷往往需要几百伏特的直流高压电。在实际系统中,自适应控制器AD输出的弱电信号通过高压放大器后产生可用于驱动压电陶瓷的高压电,出于系统安全和现场调试的需要,往往需
[单片机]
单片机STC89C52与STC89C52RC有什么区别?
STC89C52RC是宏晶公司的增强型MCS-51单片机, 与Atmel公司的AT89C52相比,有以下优点: (1)支持STC的2线制下载方式,下载程序更方便; (2)支持6T模式(在6T模式下,6个时钟周期就是一个机器周期) (3)片内集成了4kB容量的E²PROM (4)带有P4口,具有更多的I/O (5)程序存储器拥有更多的擦写寿命(STC标称可以擦写10万次,Atmel标称可以擦写1000次。不过对于批量生产的成品来说,这个擦写寿命没什么意义)。 相比于Atmel,STC单片机的缺点: (1)在某些情况下,抗干扰能力不如Atmel的MCS-51单片机。 参考资料: (1)单片机STC89C52与STC89C52RC有什么
[单片机]
Fluke 1550C/1550C FC绝缘电阻测试仪的功能和特点优势分析
Fluke 1550C/1550C FC 绝缘电阻测试仪可提供高达5 kV 的数字绝缘测试,非常适合用于测试各种高压设备,包括开关设备、电机、发电机和电缆。 功能与优点 : 测试电压高达5kV,适合所有应用 可测量高达 2TΩ 的电阻 CAT III 1000 V, CAT IV 600 V 安全等级 使用 Fluke Connect® 功能,可远离危险环境,远程控制仪器(限Fluke 1550C FC型号) 利用Fluke Connect®应用程序,可在移动设备上实时监控测试结果并分析趋势(限Fluke 1550C FC型号) 利用PC版Fluke Connect®应用程序,可快速生成用户自定义的测试报告(限Fluke 15
[测试测量]
恩智浦推出世界首款无偏置电压I2C总线缓冲器
独有的总线缓冲器为长距离I2C总线信号提供保障,并可与其他总线缓冲器连接 中国上海,2011年8月31日 —— 恩智浦半导体NXP Semiconductors N.V. (NASDAQ:NXPI) 今日宣布推出行业首款无偏置电压I2C总线缓冲器,PCA9525和PCA9605,其允许系统设计师隔离电容并与其他总线缓冲器接口。这些突破性的总线缓冲器采用无偏置记分板法来确定信号方向,而非采用定向引脚和偏置电压来控制方向、防止闩锁。重要的是,这些无偏置器件甚至能与静态偏置或增量偏置总线缓冲器互操作,为设计导入提供了极大便利,不受总线上其他器件的影响。 此外,恩智浦还推出了行业首款搭载无偏置端口的全缓冲式4通道开关PCA9646。所
[嵌入式]
也谈C51实现PID算法
关于PID的算法实现,很多书上都讲了。 但是,最近真正要用PID算法的时候,发现书上的代码在我们51上来实现还不是那么容易的事情。简单的说来,就是不能直接调用。仔细分析你可以发现,教材上的、网上现行的PID实现的C语言代码几乎都是用浮点型的数据来做的,可以想象,如果我们的计算使用浮点数据,那我们的51单片机来运行的话会有多痛苦。 所以,本人自己琢磨着弄了一个整型变量来实现了PID算法,由于是用整型数来做的,所以也不是很精确,但是对于很多的使用场合,这个精度也够了。关于系数和采样电压全部是放大10倍处理的。所以精度不是很高,但是也不是那么低,大部分的场合都够用了。实在觉得精度不够,可以再放大10倍或者100倍处理,但是要注意
[单片机]
C51单片机 写一个外部中断(入门单片机)
代码部分 void main() { /*---------------EA,IT,EX必须写-------------*/ EA=1; //开启总中断 IT1=1; //中断触发模式 //=0为低电平触发,=1为下降沿触发 EX1=1; //外部中断允许位 while(1) { led1=0; } } void int1() interrupt 0 { led=~led1; } 解释: 1.外部中断(按键中断)最最重要的部分就是EA,IT,EX三条语句,这三条是必不可少的。 2.EA是中断总开关,类似家里电闸的总闸,总闸
[单片机]
Blob在S3C44B0上的移植
摘要:Bootloader是嵌入式系统软件开发的第一个环节,它紧密地将软硬件衔接在一起,对于一个嵌入式设备后续的软件开发至关重要。Blob是一款功能强大的Bootloader,S3C44B0是三星公司一款基于ARM7TDMI的嵌入式通用处理器。本文详细介绍Blob在基于S3C44B0的开发板上的运行原理与移植过程。
关键词:S3C44B0 Blob Bootloader 移值
Bootloader对于嵌入式设备来说至关重要,它涉及到许多硬件相关的知识。对于自制的嵌入式开发板,它又是不可跳过的步骤,所以很多人对于它感到很头痛。本文将以一款优秀的Bootloader Blob为例,详细讲解它的运行原理以及在S3C44B0通用处理器
[嵌入式]
s3c6410 linux gadget hid驱动
我用的内核是linux2.6.38的,最开始的时候开发板是可以当U盘用的,而使用hid功能的时候出现如下问题: g_hid gadget: hid_setup crtl_request : bRequestType:0x21 bRequest:0xa Value:0x0 g_hid gadget: Unknown request 0xa s3c-hsotg s3c-hsotg: writen DxEPCTL=0x04228000 to 00000900 (DxEPCTL=0x00208000) s3c-hsotg s3c-hsotg: s3c_hsotg_rx_data: FIFO 8 bytes on ep0 but no
[单片机]