IT袋

当前位置:主页 > 经验教程 > 软件教程 >

借助开源软件开发包尝试量子计算编程

借助开源软件开发包尝试量子计算编程(2)

时间:2023-09-23 13:59:35 来源:IT袋 作者:苏晓敏
导读:借助开源软件开发包尝试量子计算编程,在量子算法相对于普通算法的优势方面,Shor 算法是经常被提及的例子,它在较早时候就用于分解质因数。它由 MIT 的数学家 Peter Shor 于 1994 年发明,量子

借助开源软件开发包尝试量子计算编程

在量子算法相对于普通算法的优势方面,Shor 算法是经常被提及的例子,它在较早时候就用于分解质因数。它由 MIT 的数学家 Peter Shor 于 1994 年发明,量子计算机目前还不能在较大的问题上运行该算法。但它已经被证明可以在 O(n3) 时间内完成工作,而不像经典算法那样需要指数级的时间。

从使用 Qiskit 开始

你可能在想:“我身边没有量子计算机,但我很想尝试一下。能做到吗?”

我们来了解一下名称为 Qiskit的开源项目(采用 Apache 2.0 许可证)。它是一个软件开发包(SDK),用于访问 IBM 量子实验室的量子计算模拟器和物理硬件(免费)。你只需要注册获得一个 API 密钥。

当然,如果要深入研究 Qiskit,需要很多其他方面的知识,线性代数只是其中一部分,这些都远远超出了本文的范围。如果你需要深入学习,网上有很多免费资源,其中也不乏完整的教科书。然而,体验一下也很简单,只需要一些 Python 和 Jupyter notebook 的基础知识即可。

为了增加趣味性,我们全程使用 Qiskit 教程的 “Hello, World!” 程序:

首先,安装教程的相关工具和部件:

pip install git+https://github.com/qiskit-community/qiskit-textbook.git#subdirectory=qiskit-textbook-src

下一步,进行软件包的导入:

from qiskit import QuantumCircuit, assemble, Aer
from math import pi, sqrt
from qiskit.visualization import plot_bloch_multivector, plot_histogram

Aer是本地模拟器。Qiskit 包括四个组件:Aer、基础组件Terra、用于实际的量子系统上的噪音和错误处理的Ignis,以及用于算法开发的Aqua

# Let's do an X-gate on a |0> qubit
qc = QuantumCircuit(1)
qc.x(0)
qc.draw

虽然底层数学原理还涉及到矩阵乘法,量子计算机中 X 门也可以认为类似于经典计算机中的非门。(事实上,它经常被称为 “非门”)。

现在,运行并测量它。结果跟你预期的一样,因为量子比特的初始状态是|0>,接着反转,然后被测量。(使用|0>|1>与经典计算机中的比特区分开来。)

# Let's see the result
svsim = Aer.get_backend('statevector_simulator')
qobj = assemble(qc)
state = svsim.run(qobj).result.get_statevector
plot_bloch_multivector(state)

借助开源软件开发包尝试量子计算编程

布洛赫球体显示了预期的运行结果

结论

在某些方面,你可以把量子计算看作用于经典计算机的一种独特的协处理器,跟 GPU 和 FPGA 一样。不同的是,在可预见的未来,量子计算机可以被用户像网络资源一样访问到。另一个差异是,它们的工作有本质的不同,所以不像很多其他你熟悉的加速器那样。因此,人们对算法开发如此感兴趣,并投入大量资源来研究量子在何时何地的性能最好。了解一下这些东西也无妨。

本文分享的借助开源软件开发包尝试量子计算编程的具体内容,未经IT袋网网(www.itdai.com)允许禁止转载!

相关阅读