Qiskit 是一个开源量子计算框架,提供了广泛的工具来构建、模拟和优化量子电路。绘制量子电路对于可视化和理解量子算法至关重要。本教程将介绍使用 Qiskit 绘制量子电路的基础知识。
绘制量子门
量子门是作用于量子比特的单一操作。要绘制量子门,请使用 QuantumCircuit
类的 gate()
方法。例如,要绘制 X 门,请执行以下操作:
circuit = QuantumCircuit(2, 2)
circuit.x(0)
在这个代码段中:
QuantumCircuit(2, 2)
创建了一个拥有2个量子的位(qubits)和2个经典位(classical bits)的量子的电路。- 量子的位是表示量子的比特,它们可以处于 0 或 1 的状态,也可以处于 0 和 1 叠加的状态。
- 经典位是表示确定性比特的比特,它们只能处于 0 或 1 的状态,可以用于存储测量结果。
因此,circuit
拥有2个量子的位和2个经典位。
以字符形式打印输出量子电路:
print(circuit)
输出结果:
┌───┐┌─┐
q_0: ┤ X ├┤M├
└┬─┬┘└╥┘
q_1: ─┤M├──╫─
└╥┘ ║
c: 2/══╩═══╩═
1 0
测量量子比特
测量操作将量子比特从叠加态坍缩到经典态。要绘制测量,请使用 measure()
方法。例如,要测量量子比特 0 和 1,请执行以下操作:
circuit.measure([0, 1], [0, 1])
绘制电路
一旦构建了量子电路,就可以使用 draw()
方法绘制它:
- 基于文本的绘图: 直接在终端中打印电路的文本表示。
- 基于 Matplotlib 的绘图: 使用 Matplotlib 库生成视觉上更好看的电路图。
要进行基于文本的绘图,请使用 output='text'
。要进行基于 Matplotlib 的绘图,请使用 output='mpl'
.
例如,要绘制基于 Matplotlib 的电路图,请执行以下操作:
fig = circuit.draw(output='mpl')
fig.savefig('test.png')
模拟电路
绘制电路后,可以使用 Qiskit 的模拟器模拟它。模拟器运行电路并返回测量结果。要模拟电路,请使用 Sampler
类。例如,要模拟上面定义的电路,请执行以下操作:
from qiskit.primitives import Sampler
result = Sampler().run(circuit).result()
print(result)
输出如下结果:
SamplerResult(quasi_dists=[{1: 1.0}], metadata=[{}])
{1: 1.0} 表示通过采样检测,有100%的机率会得到数值1,因为该量子电路并没有出现叠加态,且顺序位第0个量子比特被X门反转为1,所以其二进制表示变为01,故此得到数值1且概率为100%。
完整示例:
from qiskit import QuantumCircuit
# Build a quantum circuit: X gate
circuit = QuantumCircuit(2, 2)
circuit.x(0)
circuit.measure([0, 1], [0, 1]);
print(circuit)
# Matplotlib drawing
fig = circuit.draw(output='mpl')
fig.savefig('test.png')
from qiskit.primitives import Sampler
result = Sampler().run(circuit).result()
print(result)
结论
本教程介绍了使用 Qiskit 绘制量子电路的基础知识。通过结合量子门、测量和可视化,您可以轻松了解和分析量子算法。有关更多详细信息和高级绘图功能,请参阅 Qiskit 文档。