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,如需转载请联系原作者。