概述
QuTrunk是启科量子自主研发的量子编程框架。QuTrunk基于Python提供了量子编程API,对量子编程相关的基本概念做了代码层面的抽象封装和实现,如Qubit代表单个量子比特,每个量子比特默认持有一个经典比特,方便存放量子比特对测量结果,例如num_qubits = 15,输出print(“num_qubits:”, num_qubits, “num_elems:”, num_elems, “num_reps:”, num_reps)。量子编程框架QuTrunk中的门操作是量子算法的基本组成单元,其中主要包括H, Measure, CNOT, Toffoli, P, R, Rx, Ry, Rz, S, Sdg, T, Tdg, X, Y, Z, NOT, Swap, SqrtSwap, SqrtX, All, C, Rxx, Ryy, Rzz。下文将以Bell Pair(贝尔线路)和Deutsch算法算法为例,主要介绍如何使用QuTrunk实现各种量子门操作。下文的解析内容包括如何利用QuTrunk准备量子编程所需的环境、定义量子函数、量子逻辑门的操作及各指令的作用等。
1.量子逻辑门:H与CNOT实例
1.1Bell Pair
步骤1:环境准备
- 代码块:
from qutrunk.circuit import QCircuit
from qutrunk.circuit.gates import H, CNOT, Measure
-
量子线路:以上代码模块中
core.circuit
提供量子线路功能。 -
量子逻辑门操作:
from qutrunk.core.gates import H, CNOT, Measure
可以准备H门、CNOT门和测量操作。
步骤2:初始化量子线路,分配量子寄存器
- 代码块:
qc = QCircuit()
qr = qc.allocate(2)
步骤3:应用量子逻辑门
- 代码块:
H * qr[0]
CNOT * (qr[0], qr[1])
Measure * qr[0]
Measure * qr[1]
# print circuit
qc.print()
- 量子逻辑门的表示方式1:
量子逻辑门+qr[量子态]
。如H * qr[0]
表示将哈达玛门作用于|0〉态上,产生量子叠加态 ‘