借助开源软件开发包尝试量子计算编程
创始人
2024-03-02 14:30:59
0

Qiskit 是一个开源 SDK,借助它可以免费访问量子模拟器和硬件资源。

经典计算机是基于二进制数的,二进制数有 0 和 1 两种形式。这并不是由于二进制逻辑系统比有更多基本状态的逻辑系统(甚至包括模拟计算机)有内在优势。而是,对电路元件的开关操作很容易实现,而且借助先进的半导体技术,可以制造出体积小且价格低廉的计算机。

但它们并非没有局限性。经典计算机求解某些问题的效率并不高,主要是那些时间或内存成本随着问题的规模(O)呈指数级增长的问题。我们把这种问题称为 O(2 n)(大 O 表示法)。

大部分现代加密方法甚至依赖这一特性。把两个大素数相乘,耗费的成本低(O(n 2)),但进行反向操作就非常耗时。所以只要使用的数字足够大,对它分解质因数就非常困难。

进入量子世界

量子计算的基础数学和力学知识不在本文的探讨范围内。然而,还是有一些基础知识需要预先说明。

量子计算机以 量子比特 代替了二进制比特 —— 量子比特是体现量子属性的可控计算单元。构成量子比特的通常是超导元件,或自然界中存在的量子实物(例如电子)。量子比特可以以“ 叠加 superposition ”状态存在,叠加态是 0 和 1 以某种方式组合起来的复杂状态。你可能听说过,量子比特既为 1 又为 0,这种说法并不准确。真实情况是,如果进行测量,量子比特的状态会坍缩为 0 或 1。在数学上,量子比特未测量的状态可以看作 布洛赫球面 Bloch sphere 的几何表示上的一个点。

尽管对习惯使用经典计算机的任何人来说,叠加态是一个全新的概念,但一个量子比特本身并没有什么趣味性。量子计算的第二个概念是“ 干涉 interference ”。真正的量子计算机本质上是统计性质的。量子算法对干涉图案进行编码,增加了可以测量编码方案的状态的概率。

叠加和干涉的概念虽然新颖,但在物理世界中也有对应的现象。而量子力学中的“ 纠缠 entanglement ”却没有,但它是实现指数级量子加速的真正关键。借助量子纠缠,对一个微观粒子的测量可以影响后续对其他被纠缠的粒子的测量结果 —— 即使是那些物理上没有关联的粒子。

量子计算能做什么?

今天的量子计算机就其包含的量子比特的数量而言是相当小的,只有几十到几百个。因此,虽然人们不断开发新的算法,但比同级别经典计算机运行得快的硬件还未问世。

但是在很多领域,量子计算机能带来很大好处。例如,它能提供较好的方法来模拟自然界的量子系统,例如分子,其复杂程度超过了经典计算机的建模能力。量子计算也跟线性代数有关,它是机器学习和很多其他现代优化问题的基础。因此,我们有理由认为量子计算也可以很好地适用于此。

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

从使用 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)

Bloch sphere showing the expected result

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

结论

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


via: https://opensource.com/article/21/6/qiskit

作者:Gordon Haff 选题:lujun9972 译者:cool-summer-021 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

相关内容

AI早报 | 英伟达推出N...
英伟达推出NVQLink互联系统,将AI超算与量子计算结合 10...
2025-10-30 09:14:36
玻色量子中标招商银行量子计...
钛媒体App 10月27日消息,玻色量子本月中标招商银行首个量子计...
2025-10-27 10:45:23
量子计算突破关键节点:“A...
量子计算概念图。 视觉中国供图 中国科学技术大学上海研究院执行院长...
2025-10-19 12:16:19
Advantrade:通过...
Advantrade表示,人工智能对全球北方的能源安全构成了前所未...
2024-10-17 11:03:36
量子巅峰:计算革命与AI的...
量子计算的概述 Overview of Quantum Comp...
2024-09-14 23:18:37
奇瑞汽车投资1亿成立科技新...
观点网讯:8月20日消息,奇瑞汽车股份有限公司全资设立的安徽开阳科...
2024-08-20 11:44:59

热门资讯

“Linux 中国” 开源社区... 这是一个艰难的决定 —— 这不是调侃,而是当你真正做出改变了你十几年生活轨迹的决定时,你就会明白这个...
硬核观察 #1263 德国铁路... #1 德国铁路公司招聘 Windows for Workgroups 3.11 管理员该职位要求了解...
人工智能教程(七):Sciki... 在本系列的 上一篇文章 中,我们用 TensorFlow 构建了第一个神经网络,然后还通过 Kera...
关闭 WSL 中正在运行的 L... 以下是使用 WSL 关闭在 Windows 内运行的 Linux 系统的不同方法。你使用 WSL 在...
MX Linux 23.2 “... 最新的 MX Linux 23.2 小版本更新带来了基本的改进和新增功能。MX Linux 推出了 ...
硬核观察 #1262 网络上最... #1 网络上最古老的软件存档库之一即将关闭美国新墨西哥州立大学(NMSU)最近宣布,即将于 2024...
如何在 RHEL 上通过绑定配... 在 Linux 中,你可以根据自己的需要创建高级网络设置,如 网络绑定 Network Bondin...
Linux Matrix 消息... Matrix 用户可以升级 Fractal 6 了!Fractal 是目前 最好的 Matrix 客...
如何通过 VLC 使用字幕 使用 VLC 媒体播放器播放和管理字幕的新手指南。我是一个超级动漫迷,如果你想观看最新的剧集,那么你...
硬核观察 #1261 X 计划... #1 X 计划在奥斯汀建立内容审核总部据报道,该部门将招聘 100 名全职员工,将主要关注 CSE ...