【栏目:产业洞察】谈到工业软件之魂,不得不提的就是求解器。

求解器类似于我们生活中使用的计算器,给定输入,求解器则计算出结果。只不过在工业中,输入是非常复杂的,各式各样的,有不同类型的数据,有不同类型的表达式,求解器所进行的计算是广义上的计算,往往涉及NP难问题的求解。不同工业领域往往需要不同类型的求解器。

而如此关乎工业软件发展命脉的领域,国内却鲜有人涉猎。做求解器需要广博的知识积累,不仅涉及模型、算法、工程实现等技术层面,也涉及底层的数学知识和领域知识。板凳要坐十年冷,耐得住寂寞才能有所作为,如果研究者只是盯着短期的产出比如论文,而不注重长远发展,肯定做不下去。

近日,在第十六届国际可满足性模理论比赛(SMT-COMP 2021)上,中国科学院软件研究所研究员、智源学者蔡少伟带领团队研发的求解器荣获整数差分逻辑(QF_IDL)组冠军。这也是中国团队首次在SMT-COMP比赛中获得冠军。

蔡少伟研究员在智源社区的专访中,深入剖析了国产求解器未来的产业应用和落地方向,探索在传统工业产业升级智能化加速的大背景下工业软件求解器的未来。


受访对象:蔡少伟

采访&整理:李梦佳

Q:首先从比赛出发,您能否用比较通俗的语言科普一下什么是SMT,它是不是对SAT的扩展?对 AI领域研究最重要的意义是什么?

A:SAT属于可满足性问题,给定一个逻辑公式,判定是否存在对公式中的变量的一组赋值,使得公式取值为真,这就是可满足性问题。SAT是命题逻辑公式的可满足性问题,SMT则是对SAT的扩展,是给定特别背景理论的一阶逻辑公式的可满足性问题。

简单说,就是用数理逻辑说一句话,然后这句话会不会自相矛盾。如果自相矛盾就是不可满足,如果不会就是可满足。

再面向大众的一个例子。比如有几个人想开会,甲说:乙参会我就参会;乙说,丙参会我就参会;丙说,甲参会我就不参会。那么能不能安排会议满足甲乙丙的需求呢? 答案是,他们的需求是不可(同时)满足的。

有关它对人工智能的意义,它属于符号主义的核心问题。

现在的人工智能大家想到的更多是神经网络这类连接主义的研究,但是像可满足性问题,它是数理逻辑的基础问题,也是符号主义的核心问题。

自动推理的根部就是可满足性问题。如果一个定理,它的否定是不可满足的,那么这个定理就是成立的。人工智能里面有一个比较主要的部分就是数学的自动化,这一部分的根本就在于SAT、SMT这里。

Q:您所在的团队研发的求解器荣获整数差分逻辑(QF_IDL)组冠军,甚至击败了包括斯坦福大学、微软研究院等在内的国际知名高校及科研院所,能否给我们介绍下当时比赛的具体情况?

A:我们团队做SMT其实已经做了三年了,能够参加比赛,我们觉得已经很不容易了,因为SMT做起来工作量比较大,而且比较需要勇气。

我博士期间,大约10年前,就想做这个方向,但当时还没有这个魄力。现在因为我们国家需要有自己的基础求解器,所以我就带着我的学生去做,能参加比赛就觉得很不错了,没有想过一定会拿下冠军。拿下冠军的时候很兴奋,毕竟是中国在这种比赛里面第一次拿到冠军,以前主要是斯坦福、微软、爱荷华大学这些欧美的团队比较厉害。

当然,SMT是比较复杂的一个领域,针对整数算术有SMT问题,针对数组、字符串,也有SMT问题,所以是一个比较大的领域。我们所做的只是当中整数差分逻辑的一项,不属于SMT中最难的部分。可以说我们迈出了第一步,但是和国际上还是有比较大的距离。

Q:您已经在这个领域做了10多年,它一直来讲比较小众的原因是?

 

A:这个领域在工业界的用户很多,但是做的人比较小众,因为它门槛比较高,需要对数理逻辑和数学规划的基础比较好,同时工程实现能力要很强,很多研究人员可能都是偏某个方面,或者偏理论研究,或者偏工程实现,这两方面的结合对学生能力的门槛要求很高。

此外,做求解器往往需要多年的积累,需要连续深入的投入,需要在面对浮躁的社会风气的时候,耐得住性子,耐得住寂寞,坐得了冷板凳---这也许是对学生最大的挑战。他们心里要有清楚的比较远的想法,如果只是盯着短期的产出比如论文,那肯定做不下去的,因为从产出的角度看,做求解器的道路是性价比很低的。

在前几年,学生没有paper发的时候会比较有压力,我会鼓励他们说我们在做的这个东西是很值得的。现在他们慢慢认可我这个观点了,我带的博士生毕业找工作, Offer都很好,特别抢手,华为给了我一个学生接近100万的offer,级别也很高,因为很多大企业确实需要做求解器,尤其在比如芯片、操作系统、云调度等工业化场景,而国内这一块人才又特别稀缺。

Q:现在国内做这个领域的人大概有多少?有一个量级吗?

 

A:做SAT和SMT的特别少,用的人多,做的人少。在SAT求解器方面,做的人除了我之外,还有西南交通大学数学系的一些人,华中科技大学计算机学院的吕志鹏教授曾经做过,东华大学的陈镜超老师在前几年也做得挺好。SMT方面做的就更少了,除了软件所,我知道的是北大数学学院的夏壁灿老师他们有在做。有一些单位曾经做过几年,后来因为某些原因没有传承下去,所以一直都是在10 个单位以内。

其实在90年代的时候,有过一些前辈做SAT甚至SMT,比如北航的李未院士,华中科技大学的黄文奇教授,软件所的张健研究员,都是那个时候做这个方面的优秀代表。很可惜的是曾经做这个方向的团队好多都没有传承下来,在这方面,国内没有形成特别好的氛围,做这个方向可能首先拿项目和发论文都不是很容易,所以很多老师不是很乐意长期做这个方向。

Q:今年您的团队也运用SAT技术获得了国际EDA Challenge大赛的亚军,能介绍下这个大赛的情况吗?关于EDA人才培养和产业发展,您有什么看法?

A:这次比赛大概是40几个队伍,中国参赛的不多,主要是欧美国家,这一次是以SAT问题为核心,解决和芯片测试有关的一个场景,所以大部分还是来自于 SAT community里面的一些学者,比赛的冠军是做形式化验证的一个奥地利团队。

关于EDA(Electronic Design Automation,电子设计自动化),可能更多考虑的是国家层面「卡脖子」的问题,如果EDA软件百分之九十几都是美国的,一旦他们不让用,国内很多公司都转不起来。我国EDA市场长期由全球EDA三大巨头Synopsys、Cadence、Siemens EDA(Mentor被Siemens收购,更名为Siemens EDA)垄断。

虽然说国内也有一些EDA公司,但是距离他们三家差距很大,考虑当前的中美局势,这个领域更需要引起注意,而不是很多人都去内卷做learning。

人才方面,首先要让学生看到做这个方向的重要意义,另外老师选到合适的学生也很重要。EDA和SAT一样都是需要能够长期坚持的,而且工程能力比较强的学生。

 

Q:您在这方面一直坚持做的原动力是什么?

A:我觉得对我自己而言比较有吸引力,挺有意思的,SAT、SMT整体来说很干净,描述或者理解起来都不是特别费劲,而且它能衍生出很多学术的方法,还有很多应用,我有很多论文可能跟SAT无关,但都包含在SAT问题当中。它就好像一个产生算法创新方法的温床。

研究根本性的问题会对其他问题起到很多推动作用,因为它处于一个比较根部的地位。

第二,SAT/SMT在现实中很重要,是很多工业里面的核心工具。

 

在一些包括芯片、操作系统、航空等对精确度要求很高的核心工业领域,用learning的方法可能无法完成。单单以EDA领域为例,就至少有20多个问题需要调用SAT。

比如芯片测试当中主流的方法,是通过把电路缺陷模型转换成SAT问题去求解;再比如电路等价性验证,本质上也是把这两个电路变成一个逻辑公式,判断它是否可满足;而电路的模型检测也是依赖于SAT求解器,这些背后都是SAT求解器。

电路等价性验证

而SMT求解器不仅在EDA领域有应用,在软件验证和程序分析也是重要的引擎。而且,因为它们强大的能力,其实SAT和SMT这些约束求解器在其他许多领域都有应用。SMT可能因为发展历史还比较短,不太为很多人所知,但实际上像线性规划,混合整数规划,非线性规划等数学规划问题就是特殊的SMT问题---不带逻辑运算的SMT问题。比如,线性算术理论的SMT问题其实就是SAT问题和线性规划问题的合体。

Q:您的学术研究方向有什么发展变化吗?

A:我一直做约束求解(包括组合优化),如果按每个时期的重点可以分为三个阶段,比较前期的阶段,在北大念博士期间主要是做SAT和最大团问题,尤其是随机搜索算法。

SAT领域有两个主要的方法,随机搜索和系统搜索。随机搜索在当时并不认为是能够和系统搜索PK的一个主流算法,当时在随机搜索差不多进入低迷阶段的时候,我一个主要贡献就是提出了一个叫格局检测的方法,然后把随机搜索这个方向明显推进了一步,凭借这个工作在SAT比赛上拿到冠军(中国首次)。这个方法也对很多组合优化问题的求解算法起到了推动作用。

AAAI的主席Bart Selman在97年的时候曾经提到过,两种方法本质上各有优缺点,他提出命题逻辑推理与搜索的十大挑战,第7个挑战就是结合两种方法的优势设计出更好的方法。大概从14年开始,我着手把这两种方法做结合,这也是SAT领域里面一个很大的挑战。

AAAI主席 Bart Selman

一直到去年,我们在这方面的工作在工业实例上取得了大幅突破,去年我们拿冠军的也是这个方法,并且《Deep Cooperation of CDCL and Local Search》论文发在今年的SAT会议上,也拿到best paper了。

我在SAT方面的研究也提供了做组合优化的一个新的思路,启发我设计了搜索+推理的一类新型组合优化算法,在大规模组合优化上效果比较显著。

最近一个阶段,从2018年开始,我除了坚持在做SAT算法的研究,同时,因为有了自己的团队,开始了SMT研究和算法的应用研究。这几年很多精力花在SMT和EDA方面的原始积累,阅读了大量的书籍文献,我觉得接下来几年还会继续积累并且有希望逐步产出一些结果。

Q:您曾经受哪位前辈影响比较深?

A:与不同的前辈在交流中都有一些碰撞,比如我的导师苏开乐老师的两位朋友,法国教授李初民老师和北航教授许可老师,就从我研究生时期起一直和我有交流和思想碰撞。

李初民老师是SAT这个圈子里的前辈,他比较关心年轻人的成长,我们在彼此的论文,在邮件和各种场合交流。北航的许可教授在SAT的相变理论方面研究比较深入,而且对问题和算法的关系有比较广阔的观点,我们离得比较近,茶余饭后喜欢聊聊问题与算法的研究。国际的前辈比如实验算法专家Holger Hoos,我们也有不少交流和合作,他对算法和论文写作的很多观点让我很受益。另外比较有意思的是,我本科的时候第一次接触SAT读的就是软件所张健老师的专著,可以说是一种缘分,现在我和张老师也还是有交流。

Q:未来国产求解器的优化空间,您觉得最重要的是在哪些方面?

A:在SAT领域,中国至少是三强之一。当然最强的还是欧洲,SAT协会主席,形式化方法专家Armin Biere教授的团队(目前就职于德国University of Freiburg)。

形式化方法专家Armin Biere教授

SAT方面我们并不弱,现在弱的是SMT求解器。它是安全软件领域里的基础引擎。

国外像美国的微软、斯坦福、爱荷华大学,他们都已经做了二十年左右了,而且积累很多,国内很多软件工程和形式化领域的老师,他们基本上都是用美国的SMT求解器,自己去做的话差距还是很大。

在SMT的求解器方面,我们目前国内基本上是空白的。如何搭建我们国内自己的SMT求解器,吸引更多学生来长期关注是亟待解决的问题。

对于SAT求解,以前的研究主要是串行算法,而且算法也比较偏重通用,分布式算法和专门算法没有发展起来,算力没能充分利用。未来优化的空间在于海量的分布式计算场景,如果能发挥并行/分布式SAT求解器的作用,对芯片设计场景会有较大的能力提高。

Q:实际落地方面,有哪些工业落地的案例,您参与过哪些具体项目的落地?

A:我们最近跟华为合作,做芯片里面的电路等价性验证和模型检测,也马上将进行(华为)操作系统验证当中涉及到的SMT求解器的项目,这属于基础软件方面的工作。

我也做过一些其他工业软件方面的工作,比如和MSRA的伙伴合作关于微软的Azure云计算平台上虚拟机的预配置,以及云平台故障排查都会用到一系列约束求解组合优化的方法。那套方法现在已经在Azure云平台落地了,上线后的6个月故障检测时间平均减少10个小时。

另外一个工业软件的例子是腾讯地图当时解决了他们两个问题,一是腾讯地图中的语音序列调度,采用本人SAT算法中的约束加权方法,播报失败率从6.20%降至2.85%,降幅54%,同时把地图路网更新的内存消耗量降低一半,更新周期缩短一半。

其他项目包括建设银行的智慧园区,无线设备的布局也用到了约束求解的问题,联通客服排班也用到了这方面技术。我也留意到一些国外的企业和机构在他们的项目中直接使用我们的开源求解器,比如美联邦通讯委员会和意大利银行等等。这方面也促使我们思考未来在开源和版权方面如何权衡。

 

Q:这些项目落地的时候会遇到哪些实际问题?

A:有些项目不仅仅是技术,还存在国产替代的问题,比如航空调度一直用美国的软件,已经用了很多年,怎么说服他们让国内的人来做,也是一个问题。

此外,我们此前和一些企业比如顺丰科技交流过,最后没有合作成功的原因不是技术问题,是很多人为因素,管理层以及人力资源方面的问题。国内工业的转型升级还不成熟,很多企业还处于相对初级的阶段,互联网企业以外,很多传统工业企业甚至信息化都不是很完善,改造升级需要一个周期。

第二,掌握这些工业企业的领导者,他们没有意识到这个领域的重要性,凭借此前的运营经验,以前并没有用过这一套技术,所以这个改革的过程涉及的因素方方面面。

有关AI的认知上,现在媒体炒得很火的概念都是learning,很多企业对learning的感知更强,另外learning在C端场景有典型的成熟应用,在C端上也比较容易表达,大众更容易理解,比如人脸识别。而约束求解(包括组合优化)这一类项目在沟通的时候需要多一点专业术语,企业和学术界需要加强对接。其实越到大的工业领域,哪怕能够降本增效一点点,带来的经济效益也是很大的。

当然从生态层面,生态不够完善,求解器圈子向外曝光度不够,整个行业对求解器的理解不足。现在国内还有一家做数学规划求解器的公司杉数,有几位从斯坦福留学回来的领头人。这个领域可能需要等第一批(项目)效果显现出来之后,后面才会形成滚雪球的效应。

Q:最后一个问题,未来有什么新的工业落地场景?

A:约束求解的工业落地,我最先想到的是比较重的行业,比如石油石化领域,云计算边缘计算,电力电网,船舶调度等交通资源有关的场景,物流领域等等。还有一些行业,比如新零售的仓储和供应链管理,工业制造里的物料优化和生产计划等,医院和各类客服的排班任务等,智慧城市里也涉及到很多约束求解和组合优化的场景。

说到物流领域,阿里也组建了菜鸟,有自己的求解器团队。当然物流领域应用的价值体现还是需要和人结合,需要和物流公司更好的配合实施项目落地。

当然,最明显的市场和需求还是软硬件层面,比如自主研发的EDA芯片,操作系统等等,以及国防军工软件,安全驾驶软件等,涉及到安全性的软硬件设计几乎都和SAT和SMT有关,而且是刚需。


探索工业软件之魂,板凳要坐十年冷 |中科院软件所蔡少伟专访相关推荐

  1. 科大讯飞:我们和华为基因相似,板凳能坐十年冷,如今向C端强劲发力

    编辑:木青.金磊 [新智元导读]To B业务已稳,科大讯飞瞄准利润更大.规模更广的C端市场开始发力.在5月21日的年度发布会上,讯飞重磅发布了5款面向消费者的硬件产品,其中讯飞翻译机3.0能实现0.5 ...

  2. 紫光进入公有云:板凳要坐十年冷,文章不写半句空

    历史学家范文澜曾有一自勉联:"板凳要坐十年冷:文章不写一句空":南京大学教授韩儒林也曾一联:"板凳要坐十年冷:文章不写半句空".2017年底,紫光集团董事长赵伟 ...

  3. 板凳要坐十年冷 代码不写一句空

    板凳要坐十年冷 代码不写一句空 #!/usr/bin/env python # -*- coding:utf-8 -*- # @Author 板凳要坐十年冷,代码不写一句空. 转载于:https:// ...

  4. 工业软件持续发展的动力:科学探索与制造业创新

    摘要 随着数字经济深度推进,工业软件对现代制造业的重要性愈发凸显,制造业全产品.全过程.全价值链对工业软件的依赖逐步增加,工业软件已经成为现代工业和制造业的灵魂.为此,首先阐述工业软件的发展历程,明确 ...

  5. 从现在开始探索工业元宇宙讲座发言稿 34500字

    从现在开始探索工业元宇宙讲座发言稿 李正海 目录 引言... 1 元宇宙目录介绍... 1 一. 工业元宇宙的基本概念与解读... 1 二.工业元宇宙带来的价值... 4 三. 工业元宇宙的特性探讨. ...

  6. 工业软件研究框架_聚焦十四五!先进制造急先锋——工业软件

    十四五规划酝酿正当时. 据新华社,"十四五"规划编制工作自16日起开展网上意见征求. 预计十四五将更注重提高发展质量,更注重内需,更注重发展均衡,更注重创新升级,更注重系统性应对世 ...

  7. 比其他行业晚了十年的工业软件,转型的核心和动力是什么?

    "我不知道保守或者传统,这样的词是不是适合.但是我们要做的,是一直倾听客户的声音,尊重他们的投资."SOLIDWORKS最近在北京发布了最新的2019版本.这种以往软件时代的标准操 ...

  8. 【智能制造】工业软件:智能制造的大脑

    软件是实现智能互联的第一推动力.工业软件是智能制造的思维认识,是感知控制.信息传输和分析决策背后的世界观.价值观和方法论,是智能制造的大脑.工业软件支撑并定义了智能制造,构造了数据流动的规则体系.本文 ...

  9. 工业软件+无代码开发,国产软件崛起正当时

    智能制造大势所趋,工业软件必不可少        中国的制造业是一个低效率的行业,而智能化的制造业是推动其转型的关键.智能制造是以新一代信息技术与先进制造技术为基础,将其融入到了设计.生产.管理.服务 ...

最新文章

  1. Daily Scrum 10.27
  2. 获取请求url的查询字符串
  3. 用Jmeter实现SQLServer数据库的增删查改
  4. NLP:自然语言处理技术近十年发展技术更迭的简介、案例之详细攻略(持续更新)
  5. [原]CUDA中grid、block、thread、warp与SM、SP的关系
  6. 网易应用创新开发者大赛成功在杭举办,十强队伍现场比拼
  7. 南昌大学计算机系分数,南昌大学2016年分省分专业录取分数线
  8. oracle asm 异机挂载,oracle 异机恢复 从asm到文件系统成功实例
  9. 计算机七年级书籍段落,七年级下册片段.doc
  10. 一个根据相似度的去重方法
  11. 做数据分析时注意事项
  12. 412.数组下标的倍数 Fizz Buzz
  13. 根据ReentrantLock -- 解析AQS原理
  14. 周立功TinyM0开发板1114使用教程
  15. 【基础教程】禁忌搜索算法【005期】
  16. 樊登读书分享ppt_最后一波 | 24份樊登亲手撰写PPT免费送
  17. Java实现 LeetCode 492 构造矩形
  18. jqwidgets 国际化- 中文 jqxGrid 中文语言包 gridlocalization
  19. JAVA怎么给扇形加边框_PS怎么制作扇形边框 扇面边框教程
  20. java写接口给前端_看看人家那后端API接口写得,那叫一个优雅!

热门文章

  1. C++学习之第六天-统计圣经文本的词频
  2. COUNT函数的使用
  3. 数据库导入Excel表
  4. 决战Python之巅——第一模块总结
  5. Windows原版镜像在哪里下载?怎么下载ed2k文件
  6. 2013年CISA中英对照题目解析合集国盟官方(红宝书第四版)
  7. C++线程同步的四种方式(Windows)
  8. 餐饮管理系统 VC MFC
  9. m阶B+树与m阶B树的区别
  10. 关于 Word2Vec 使用时遇到的一系列问题。