IBM量子体验(Quantum Experience)团队已将量子计算软件QISKit开源,根据量子计算和信息科学家Jay Gambetta的介绍,QISKit可供开发者使用Python体验IBM的云端量子处理器。
IBM QISKit包含三个主要组件:
- 使用Python编写的官方QISKit API客户端,可执行
pip install IBMQuantumExperience
安装,随后可按照下列范例使用:
api = IBMQuantumExperience("token", config) qasm = 'OPENQASM 2.0; include "qelib1.inc"; qreg q[5]; creg c[5];\ h q[0]; cx q[0],q[2]; measure q[0] -> c[0]; measure q[2] -> c[1];' device = 'simulator' shots = 1024 api.run_experiment(qasm, device, shots, name='My First Experiment', timeout=60)
QISKit客户端还可配合Jupyter Notebook使用:
import pip def install(package): pip.main(['install', package]) install('IBMQuantumExperience')
-
一个Python QISKit SDK,其中包含多个由IBM Q工程师提供的用作演示和说明用途的工具。尤其是该SDK可以让我们了解如何创建进行复杂实验的多个作业,如状态层析(State tomography)、随机基准(Randomized benchmarking),以及纠缠测试(Entanglement test)。
-
OPENQASM规范,其中详细介绍了Open Quantum Assembly Language 2.0及其基本资料,可以帮助我们了解由IBM推动的量子计算模型,以及进行量子实验所需的语法。
在IBM的OPENAQSM模型中,量子计算是通过下列四个步骤实现的:
- 编译(Compilation),使用经典计算机将文本模式的量子算法转换为对应的IR呈现。
- 电路生成(Circuit generation),将IR转换为一系列量子电路,量子电路则是量子程序的最基本组成部分。量子电路是由基本步骤组成的一种序列,其中不包含任何分支或过程度量。经典控制块可包含量子电路,并可根据度量结果确定程序的整体控制流,或可即时创建新的量子电路。
- 执行(Execution),该过程在量子计算机上实时进行。执行过程中,由一个高级控制器负责处理输入或来自量子电路的中间态度量,并将其放入由底层控制器执行的物理操作序列。
- 后续处理(Post-processing),依然在经典计算机上进行,会借助实时量子处理过程中进行的度量创建最终结果。
IBM量子体验旨在通过IBM云平台连接至IBM的量子计算机,供用户借此进行实验或将量子计算能力融入自己的软件程序。量子计算机与基于晶体管的经典计算机最大的不同在于,经典计算机只能使用两种状态,而由于使用了量子位(Quantum bit),量子计算机可以同时叠加更多状态。根据宣传,量子计算技术将能轻松解决传统计算机无法解决的问题,例如可用于大整数分解(密码学)、量子物理过程模拟、琼斯多项式(Jones polynomial)逼近、佩尔方程(Pell’s equation)求解等领域。对于这类问题,量子计算机可实现远超经典计算机的速度,同时也意味着目前棘手的(NP)问题尽管不会变成小菜一碟,但至少量子计算将为我们提供可行的思路。
原文发布时间为:2017年3月15日
本文作者:Sergio De Simone
本文来源:InfoQ,如需转载请联系原作者。