据外媒报道,微软近日推出了一套先进的量子编程解决方案,让编程人员可以更好地学习量子计算及其相关的
Q#
编程语言。量子计算是一项有望彻底改变科技行业的事情,与当前的“传统”计算机相比,新机器将拥有强达数倍的性能,能够轻松攻克此前从未揭开的难题、让当前的各种加密手段瞬间化为无形。

本报讯2月22日下午,中科大在合肥发布云接入量子计算最新成果。其中,潘建伟院士团队在超导量子计算方向发布了11比特的云接入超导量子计算服务,用户可上传测试运行各种量子计算线路代码,并下载相关运行结果;郭光灿院士团队在半导体量子计算方向实现了基于量子点量子芯片的Deutsch
Jozsa量子算法演示,实现了多量子比特逻辑门。

据 InfoQ 之前报道,微软曾在 Ignite
大会上宣布开发量子计算机的计划,并提供一个开发套件。现在,微软发布了
Quantum Development Kit(QDK)预览版。

微软量子团队表示,Katas
是一款非常优秀的编程语言学习工具,主要依赖于几个简单的学习原则:主动学习,增量复杂性和反馈。

潘建伟院士在发布会上说,云接入量子计算是未来发展趋势,既可以考察量子计算系统的可靠性和稳定性,又可以帮助开发和演示量子算法、让公众深入了解和体验量子计算。

QDK 集成在 Visual Studio
中,使用Q#编程语言,并提供了一个量子模拟器,可以在笔记本上模拟最多
30 个逻辑量子位,这需要 16GB 的内存。如果要增加到 40
个逻辑量子位,内存需要呈指数级增长,比如增加 10 个逻辑量子位,就需要增加
2 的 10 次方那么多内存。微软为此提供了一个基于 Azure
的模拟器。开发者可以使用 QDK
来学习如何在量子计算机上编程,同时等待微软推出拓扑量子计算机。微软声称,在模拟器开发的程序最终可以不做任何修改就可以在真实的量子计算机上运行。

Quantum Katas 的一系列教程可以自定义进度,旨在同时教授量子计算和 Q#
编程元素。从基础到具有一定挑战性,Katas 提供了一系列关于量子计算主题的任务。每项任务都需要填写代码,从开始的只有一行代码,到后面可能需要填写一大片代码。

潘建伟院士团队成员朱晓波介绍,量子处理器是超导量子计算系统的核心器件,目前他们已经成功研制出12比特的超导量子计算处理器,在云平台开放11比特的量子计算服务,其单比特门保真度达
99.7%、双比特门保真度达94.9%。朱晓波现场演示了用云接入方式来使用超导量子计算。
在实验室,我们已经实现99%以上的双比特门操作,目前国际上只有谷歌、IBM等几家单位可以达到99%以上的保真度。
朱晓波透露,他们团队还成功设计制备并且交付了一个24比特的量子处理器,该处理器初步结果显示:单比特门保真度可以达到99.9%,双比特门保真度可以达到97%左右。

微软量子处理器使用了拓扑量子位,相关信息并不是保存在某个特定位置,而是进行全局保存,从拓扑结构的全局视图可以直接看出一个串是不是打结了。这种方式的好处在于量子信息的表示只需要少量的误差校正,而误差校正是限制量子处理器伸缩的主要因素。

到目前为止,该项目主要涵盖以下主题:

郭光灿院士团队成员郭国平介绍,他们团队开发的本源量子计算云平台已成功上线32位量子虚拟机,用户可免费体验编写和运行量子程序,直接查看已编辑程序的图形化显示效果;编写完成的量子程序被发送至远程量子服务器上,在云端完成编译、执行与测量,其结果可迅速传回本地。平台还涵盖量子科普、量子教学以及正在开发的量子小游戏等多种功能。
目前,我们成功在半导体2比特量子芯片中实现Deutsch
Jozsa算法,首次实现3比特逻辑门。 郭国平透露,他们团队还打破IBM
Q的56位仿真纪录,创造了64位的新纪录,朝着实用化量子计算机迈进重要一步。

在编程语言方面,微软将Q#定位成一门特定领域的编程语言,拥有原生的量子位类型系统、算子和其他抽象。它同时支持传统的语言控制流程和量子逻辑演算。

  • 基本量子计算门(Basic quantum computing
    gates)
    :专注于量子计算中使用的主要单量子比特和多量子比特门的任务。

  • 叠加(Superposition)
    专注于在一个或多个量子比特上准备某个叠加状态的任务。

  • 测量(Measurements):专注于使用测量来区分量子态的任务。

  • Deutsch–Jozsa 算法(Deutsch–Jozsa
    algorithm
    ):专注于编写实现经典函数的量子的任务,以及
    Bernstein-Vazirani 和 Deutsch-Jozsa 算法。

下面是Q#代码示例,目的是将一个量子位设置成给定的状态,如果它不在指定的状态,那么就翻转它:

图片 1

namespace Quantum.Bell {

open Microsoft.Quantum.Primitive;

operation Set (desired: Result, q1: Qubit) : () {

body {

let current = M (q1);

if (desired != current) {

X (q1);

}

}

}

}

(文/开源中国)    

Visual Studio
的调试器可以用来调试Q#程序,可以设置断点并逐步跟踪执行流程,还可以通过跟踪模拟器来评估运行一个量子程序需要的资源。

除了
QDK,微软还发布了相关文档,涵盖了量子计算基础和高级概念,比如如何管理量子机器和驱动器,以及特定的开发技术。

现在就可以下载 QDK,并在 Visual Studio 2017 里使用,VS 2017
的社区版是免费的。