专栏名称: 硅谷密探
硅谷第一科技媒体, 为你带来最生动的产品报道和推荐、独家的硅谷创业公司访谈,链接中美创业者与投资人。读硅谷,看硅谷,去硅谷!
目录
51好读  ›  专栏  ›  硅谷密探

学量子编程,情人节获得个薛定谔的女朋友?

硅谷密探  · 公众号  · 科技媒体  · 2017-02-14 11:59

正文


编者按:硅谷密探将推出“密探问答”专栏,关注硅谷创业和投资生态的重要热点问题。


量子计算是一个非常前沿的领域,也是一个典型的“月探”工程:它有着巨大的创造价值的潜力,也有很高的失败风险。


在情人节之际,正在寻找机会的你,该不该考虑为量子编程做准备? 如何为量子编程做准备?


我们邀请长期关注量子计算领域的钱愉盈来回答这个问题,她也曾连续两年在Robocup上获奖。




不论是从个人学习还是企业战略考量的角度,我们都先要了解三个方面:时机,价值,可行性。


1) 量子计算目前的发展状况如何?(时机)
2) 量子编程有哪些应用场景/实用价值?(价值)
3) 如何为量子编程做准备?(可行性)


时机:量子计算目前的发展状况如何?


量子计算机的概念在35年前由费曼第一次提出。尽管量子计算机实用化依旧遥远,但业界普遍对此持乐观态度,这从行业巨头在量子计算机方面的“军备竞赛”就可见一斑。目前真正意义上的通用量子计算机还未面世,但是系统的量子编程语言已经存在。在摩尔定律终结的时代背景下,量子计算被看做是突破计算能力瓶颈的一条充满诱惑的出路。



在过去的五十年里,摩尔定律成功指导了计算机行业的发展,但这个定律很有可能在未来十到十五年内失效。一方面继续提高集成度的难度越来越大,摩尔在65年预言芯片性能每年都会翻倍,75年他把周期改成两年,始终遵循这个周期的Intel如今把时间延长到了2.5年。另一方面,芯片生产存在物理上的基本限制。当晶体管集成度越来越高,越来越小的纳米级晶体管容易出现量子力学中的隧道效应(quantum tunneling),电子从源极穿到漏极,导致电流泄露,芯片无法工作。



于是大家纷纷把目光投向了量子计算。传统比特位(bit)的状态非0即1,n bits的经典计算机只能一次运算2^n个数中的一个;而量子比特位(qubit)却可以处于0和1的叠加态(superposition),2 qubits就可以叠加出4种态 00 01 10 11,以此类推,n qubits就可以一次性同时运算2^n个数。位数越多,量子计算的速度相较于经典计算机的速度会呈指数级增长。


目前最先进的量子计算机是D-wave System最近刚发布的2000Q量子计算机,计算能力是它上一代的两倍,是硅谷那些比较先进的服务器的一万倍。但很多研究人员依旧抱有怀疑,因为它与初期量子计算机不一样,而是退而求其次采用了量子退火(quantum annealing),即不是所有qubit之间都可以发生纠缠,它们只和临近的qubit纠缠。


与传统量子计算机相比,D-wave的qubit量子态更为脆弱,操作精确度更低,虽然运算中的确用到了一些量子物理的原理,但是否能对现有计算机的运算能力进行指数级提速还是个未知数。尽管如此,D-wave在某些特定任务上的计算能力还是远远超过了现有的经典计算机。已有不少科研人员争先恐后预订D-wave新系统的使用时间,用来探索机器学习或网络加密等需要运算海量数据的课题。D-Wave打算两年内发布4000Q量子计算机,让qubits之间发生更复杂的纠缠,从而带来更强大的计算能力。


(D-wave量子计算机)


但由于D-wave并不完全符合理论上量子计算机的原理,所以没法运行现有的编程语言,比如QCL和Quipper。至于完全符合理论设想的量子计算机是否可能实现,物理和计算机学界都没有定论。


除了Google-NASA量子人工智能实验室与D-wave的合作以外,各行业巨头都希望在量子计算上抢占先机。IBM于2000年就已公布过他们的第一台量子计算机,于2016年五月,IBM又推出在线服务将一台5Q的量子计算机开放给所有人使用。


微软在2005建立量子计算基础研究站StationQ,近期在StationQ里还成立了人工智能研究小组。与Google和IBM利用超导量子电路不同,微软另辟蹊径选择了基于anyons的拓扑量子计算,目前搞定了qubit基本模块。同时,英国也斥资2700万英镑支持量子技术发展战略。


微软量子计算机项目的技术经理Todd Homdahl认为这个领域已经到了从理论转向工程的转折点。


换言之,时机已经成熟,量子计算有可能站上风口。


价值:量子编程有哪些应用场景/实用价值?


首先要声明一点,量子计算机不是用来取代经典计算机的,而是为了处理经典计算机无法解决的问题。


量子加密:


先举个比较著名的例子,用来做大数因子分解的量子算法Shor’s algorithm,在一台拥有足够量子位并且量子位能够不受环境能量干扰的量子计算机上,它可以破解目前的RSA公共密钥加密系统,因为RSA系统本身就是建立在大数因子分解难以计算的假设上。类似地,量子计算机的强大计算能力正在威胁现有的所有加密方式。若有人处心积虑将今天不可破译的密码信息保留到未来,那么在量子计算机面前这都将是小菜一碟。


(BB84量子密钥分配协议示意图)


但与此同时,量子密钥分配技术使密码安全性有了质的飞跃。原因很简单,量子密码信息根本无法窃取。在量子计算机的运行过程中,量子必须始终处于封闭空间,你不能打开看,一看就会使外部能量干扰了量子态,量子干涉就会被破坏,那你观察到的量子数据就会变成一坨乱码,窃听也会留下量子测量痕迹。不仅无法窃取,截获也不太可能。因为量子不可克隆定理决定了任何复制都得不到一模一样的量子态。


在量子计算时代来势汹汹的背景下,加密系统升级迫在眉睫。Temporal Defense System已经率先购买了第一台2000Q量子计算机。美国国家标准技术局也呼吁政府为了国家信息安全务必要在2025之前全面采用量子加密。


场景规划:


场景规划指最优路径规划、资源最优配置等决策问题。D-Wave量子计算机最早就是为优化问题(optimization)而设计的,用来给NASA的太空探索计算如何最优化利用有限的资源。此外,智能城市的概念在近年也越来越得到各国政府重视,比如新加坡提出的智能国家(Smart Nation)和美国交通部提出的智能城市挑战项目(Smart City Challenge Program),量子计算的高速运算能力能更快地从大量实时数据中分析出反馈信息,有助于交通拥堵、水电供应等问题上更精准及时的动态规划。


对于其他瞬息万变的行业来说,比如金融、气候、医疗、国防等,量子计算机的优化决策能力同样价值巨大:预测股市走向、医院的床位是否足够、气候灾害对农林业的影响之类。


人工智能/机器学习:


人工智能领域最大的挑战之一就是处理海量数据,而这正是量子计算机的优势所在。早在2015年中科大就测试过能够辨认手写字体的量子人工智能,而那仅仅是一台4 qubits的量子计算机,难以想象千位量子计算机会是一种怎样的概念

(Seth Lloyd是量子力学的专家)


MIT机械工程教授Seth Lloyd说,一台300Q的量子计算机就足以运算自宇宙大爆炸以来历史上所有的数据信息。IBM认知计算系统Watson的CTO表示,量子计算和人工智能的协同合作是一件非常自然的事情。他还说,目前的认知计算系统还只能模仿人类的思维,但没法完全模拟人脑的完整活动,如果人工智能想要超越并提升人类的认知水平,运算必须要更快,探测更敏捷,耗能更低。量子计算机极有可能帮助我们实现所有的目标。


化学:


哈佛的化学副教授Alan Aspuru-Guzik在MIT一个研讨会上提出化学领域会成为量子计算机运算提速的最直接应用。计算化学反应时间的关键是计算原子的能量,然而每多加一个原子,整个系统的复杂性就会翻倍,因为每个原子都与其他的原子发生纠缠。所以如果遇到包含大约100个原子的分子时,能量估算就大大超出了经典计算机的能力,但用差不多位数的量子计算机做模拟就没问题,比如2016下半年,科研人员用两个qubits进行了氢气分子的基态和化学键长的模拟计算。


总之,一旦真正意义上的千位通用量子计算机面世,在很多领域都会掀起计算革命。


可行性:如何为量子编程做准备?


目前有哪些量子编程软件和语言呢?


D-Wave的Qbsolv。使用者不需要具备专业量子物理知识也可以给D-Wave量子计算机编程。它的目标就是吸引不了解量子计算机的科研人员,将使用和开发门槛降低。



Qbsolv目前是一款开源软件,D-Wave希望围绕这个平台建立量子计算的开源社区/生态系统。但由于D-Wave与众不同的算法与传统量子计算机和经典计算机都不一样,所以Qbsolv写的程序目前只能在D-Wave的机器上跑。类似的还有D-Wave资助开发的Qmasm.


但IBM开发的在线量子计算机允许人们运行自己开发的程序。操作起来需要一定的量子物理专业知识,但是非常好用,界面很简洁,运算准确率很高。


语言主要介绍两种,命令式编程的QCL,函数式编程的Quipper。


QCL的语法和C相似,让传统程序员可以用一种熟悉的形式来给量子计算机编程。最基本数据类型是qureg,类似于队列。QCL支持用户自定义操作符和函数。Quipper在函数式编程语言里算是最新成员,是一种嵌入式语言,宿主语言为Haskell。


由于QCL编译器用的是qlib仿真库,所以程序在运行中的qubit量子态可以被看到,但这在真正的量子计算机上是不可能的,只能在模拟器上可以实现。


总之如果你考虑开始为量子编程做准备,初级的软件和语言都是有的。如果为了科研目的,那么效率至上,用这些现成的软件和语言就够了。但如果你为了未来的新计算时代做准备,那么学习量子编程和经典编程不同,除了软件和语言以外,最好先了解量子物理和量子计算的原理。


上面是对于个人。那么对企业和政府来说,帮助他们应对量子计算时代的服务已经存在。目前这种服务形成了一个利基市场,一小部分研究加密系统的公司做好了准备为大型机构做防止量子计算机破解的系统升级,比如美国的Security Innovation, 加拿大的EvolutionQ,荷兰的Atos等等。


总结:


从时机、价值和可行性三方面考量,对企业和个人来说,学习量子编程都值得考虑。



毕竟学好量子编程,你或许将获得一个“薛定谔的女朋友”。


p.s 你的“薛定谔的女朋友”送你一个情人节礼物:后台回复“量子计算”获得量子计算的教程。




关注硅谷密探

紧盯全球创新趋势


(长按上方二维码即可关注,神马,这居然是二维码!)