页面

进入工作台后,点击左侧【图形化编程】按钮即可进入量子线路的图形化编程页面。

../_images/image-20250711114026441.png

图形化编程页面主要分为六个部分,其布局如下图所示。

../_images/image-20250711114521593.png

①菜单栏: 可通过此菜单新建或打开线路,对线路进行编辑操作,调整页面布局等。

  • 线路:可新建线路、查看已建线路列表、对当前线路进行副本创建。

  • 编辑:可撤销、恢复(撤销后可使用)、复制(选中线路中的量子逻辑门模块可使用)、剪切(选中线路中的量子逻辑门模块可使用)、粘贴(复制选中线路中的量子逻辑门模块后可使用)、清除全部线路

  • 布局:可自主决定是否选择在线路下方展示预期投影概率(仅适用于展示≤7位量子比特的线路)、预期密度矩阵(仅适用于展示≤4位量子比特的线路)、预期振幅(仅适用于≤7位量子比特的线路)的模拟示意图。

  • 菜单栏下方有当前线路名称,鼠标移动至名称时,名称右侧将悬浮显示编辑图标,点击后可编辑线路名称。

②计算后端的选择、运行、设置区域:

  • 计算后端的选择:通过拖动量子逻辑门模块创建好线路后,用户可选择不同的计算后端(本源悟空72、本源悟空102以及4个量子虚拟机)进行运行。注意:选择使用本源悟空真机须有足够的可用机时。

  • 运行:选择计算后端后,点击“运行”按钮以获取计算结果,计算结果将展示在右侧工具栏的“任务状态”中。

  • 设置:可选择模拟类型(Monte-Carlo方法、概率方法)

    1. Monte-Carlo方法

    • 概念:Monte-Carlo方法也称统计模拟方法,指使用随机数来解决很多计算问题的方法,其核心思路是用随机实验来逼近确定性问题的解。选择此种方法进行量子计算需要在线路中添加“测量门”。

    • 若选择Monte-Carlo方法模拟,则可设置功能为: - 可自定义量子比特数(1-35):最多可设置35个量子比特,即q[0]-q[34]。 - 可自定义经典寄存器个数(1-255):经典寄存器是量子计算中用于存储测量结果、实现条件控制逻辑、支持经典-量子交互的关键组件。通常来说,经典寄存器数量 = 量子比特数量是最安全且高效的设置。具体数值需根据实际判断,如:需要使用条件控制、需要中间结果存储、需要后处理,则需要增加经典寄存器数量。 - 可自定义重复实验次数(1-8192):通过多次运行量子程序,统计测量结果的频率分布,从而估计量子态的概率幅值。用户可根据可用机时和精度需求合理设置,通常100–1000次为常见选择。

    1. 概率方法

    • 概念:与Monte-Carlo方法不同,概率方法是一步计算,直接输出(最大的N个)概率,其核心思路是当解析解难以获得时,用随机样本估计概率分布或期望值。选择此种方法进行量子计算不需要在线路中添加“测量门”。

    • 若选择概率方法模拟,则可设置功能为: - 可自定义量子比特数(1-35):最多可设置35个量子比特,即q[0]-q[34]。 - 可自定义测量量子比特(多个量子比特,用“,”隔开,仅限输入量子比特编号):可自定义需要测量的量子比特。

③工具栏: 用户可查看或编辑 Origin IR 代码,阅读平台教程文档,查看任务状态。

  • Origin IR :

    • 概念:Origin IR 是本源量子提供的一种量子指令中间表示,用于描述和转换量子程序。它是一种基于文本的量子程序描述语言,旨在实现量子程序在不同抽象层次之间的高效转换与编译。

    • 操作:当用户在图形化编辑区域拖动量子逻辑门,构建了逻辑线路,Origin IR 的代码编辑器中将会对应展示出该线路所对应的代码;若在代码编辑器中修改代码,左侧的图形化编辑区域也会自动根据修改的代码进行对应的改变。

    ../_images/image-20251204152252571.png
  • 教程文档:此模块包含量子线路编辑功能引导(https://console.originqc.com.cn/zh/guide/1 )、创建完整量子线路教程(https://console.originqc.com.cn/zh/guide/0 )、逻辑门介绍(https://console.originqc.com.cn/zh/quantumVm/introduce )。用户可随时点击“了解详情”进行查阅。

  • 任务状态:在此模块可快速查看该账号所有运行图形化编程后的结果,包括任务ID、计算后端、创建时间及计算结果。

    ../_images/image-20251204152139182.png

    点击了解详情后,将跳转到该任务的详细页面,在任务的详细页面可查看到计算状态、任务ID、任务耗时(若使用真机)、详细的计算服务以及计算结果。在页面最下方,可查看完整的线路图、Origin IR代码以及该线路对应的pyqpanda代码。(由于已运行完成,该处Origin IR代码和pyqpanda代码无法编辑)

    ../_images/image-20251204152431470.png

    需要注意的是: 1.若计算后端选择的是虚拟机,则计算结果中的线路图、Origin IR代码、pyqpanda代码均是与虚拟机相适配的结果:

    ../_images/image-20251205171339769.png

    2.若计算后端选择的是真机,那么计算结果中的线路图、Origin IR 代码、pyqpanda 代码,将同时展示与虚拟机适配的原始结果,以及转换后与真机适配的结果:

    ../_images/image-20251205171416930.png

④量子逻辑门选择模块:

该区域排列着不同的量子逻辑门模块,用户可将它们**拖动**至图形化编辑区域中,组成具体的量子线路。不同类型的量子逻辑门使用不同的颜色和形状进行区分。用户将鼠标移动至量子逻辑门上,可悬浮显示该逻辑门的公式或介绍。

../_images/image-20251204160926232.png

由于不同计算后端在硬件实现上存在差异,其支持的量子逻辑门种类和操作精度存在不同。因此,量子逻辑门选择模块会根据所选后端动态调整可选逻辑门,以确保线路在目标后端上能够被正确编译和执行,避免因门不支持而导致的编译错误或运行失败。

常见的量子逻辑门介绍如下:

逻辑门&操作

门名称

作用

公式

\(I\)

恒等门

不改变量子态,用于占位或同步操作。

\[\begin{split}I = \begin{bmatrix}1 & 0 \\ 0 & 1\end{bmatrix}\end{split}\]

\(H\)

Hadamard 门

生成叠加态,使 \(\lvert 0 \rangle \rightarrow \frac{1}{\sqrt{2}}(\lvert 0 \rangle + \lvert 1 \rangle)\) , \(\lvert 1 \rangle \rightarrow \frac{1}{\sqrt{2}}(\lvert 0 \rangle - \lvert 1 \rangle)\)

\[\begin{split}H = \frac{1}{\sqrt{2}}\begin{bmatrix}1 & 1 \\ 1 & -1\end{bmatrix}\end{split}\]

\(T\)

T门

\(\lvert 1\rangle\) 态添加 \(\pi/4\) 相位。

\[\begin{split}T = \begin{bmatrix}1 & 0 \\ 0 & e^{i\pi/4}\end{bmatrix}\end{split}\]

\(S\)

相位门

\(\lvert 1\rangle\) 态添加 \(\pi/2\) 相位。

\[\begin{split}S = \begin{bmatrix}1 & 0 \\ 0 & i\end{bmatrix}\end{split}\]

\(X\)

Pauli-X 门

比特翻转,\(\lvert 0\rangle \leftrightarrow \lvert 1\rangle\)

\[\begin{split}X = \begin{bmatrix}0 & 1 \\ 1 & 0\end{bmatrix}\end{split}\]

\(Y\)

Pauli-Y 门

同时引入比特与相位翻转。

\[\begin{split}Y = \begin{bmatrix}0 & -i \\ i & 0\end{bmatrix}\end{split}\]

\(Z\)

Pauli-Z 门

\(\lvert 1\rangle\) 态添加 \(\pi\) 相位。

\[\begin{split}Z = \begin{bmatrix}1 & 0 \\ 0 & -1\end{bmatrix}\end{split}\]

\(RX\)

\(RX\)

\(X\) 轴旋转角度 \(\theta\)

\[\begin{split}R_X(\theta) = e^{-i\theta X / 2} = \begin{bmatrix} \cos\frac{\theta}{2} & -i\sin\frac{\theta}{2} \\ -i\sin\frac{\theta}{2} & \cos\frac{\theta}{2} \end{bmatrix}\end{split}\]

\(RY\)

\(RY\)

\(Y\) 轴旋转角度 \(\theta\)

\[\begin{split}R_Y(\theta) = e^{-i\theta Y / 2} = \begin{bmatrix} \cos\frac{\theta}{2} & -\sin\frac{\theta}{2} \\ \sin\frac{\theta}{2} & \cos\frac{\theta}{2} \end{bmatrix}\end{split}\]

\(RZ\)

\(RZ\)

\(Z\) 轴旋转角度 \(\theta\)

\[\begin{split}R_Z(\theta) = e^{-i\theta Z / 2} = \begin{bmatrix} e^{-i\theta/2} & 0 \\ 0 & e^{i\theta/2} \end{bmatrix}\end{split}\]

\(X1\)

\(X1\)

\(X\) 轴旋转角度 \(\pi/2\)

\[\begin{split}X_1 = R_X\left(\frac{\pi}{2}\right) = \begin{bmatrix} \cos\frac{\pi}{4} & -i\sin\frac{\pi}{4} \\ -i\sin\frac{\pi}{4} & \cos\frac{\pi}{4} \end{bmatrix}\end{split}\]

\(Y1\)

\(Y1\)

\(Y\) 轴旋转角度 \(\pi/2\)

\[\begin{split}Y_1 = R_Y\left(\frac{\pi}{2}\right) = \begin{bmatrix} \cos\frac{\pi}{4} & -\sin\frac{\pi}{4} \\ \sin\frac{\pi}{4} & \cos\frac{\pi}{4} \end{bmatrix}\end{split}\]

\(Z1\)

\(Z1\)

\(Z\) 轴旋转角度 \(\pi/2\)

\[\begin{split}Z_1 = R_Z\left(\frac{\pi}{2}\right) = \begin{bmatrix} e^{-i\pi/4} & 0 \\ 0 & e^{i\pi/4} \end{bmatrix}\end{split}\]

\(U1\)

\(U1\)

等价于 \(RZ(\theta)\),不改变幅度,仅在 \(\lvert 1\rangle\) 态上引入相位 \(e^{i\theta}\)

\[\begin{split}U_1(\theta) = \begin{bmatrix}1 & 0 \\ 0 & e^{i\theta}\end{bmatrix}\end{split}\]

\(U2\)

\(U2\)

通过 \(R_Z(\phi)R_Y(\tfrac{\pi}{2})R_Z(\lambda)\) 实现,常用于制备叠加态。

\[\begin{split}U_2(\phi, \lambda) = \frac{1}{\sqrt{2}} \begin{bmatrix} 1 & -e^{i\lambda} \\ e^{i\phi} & e^{i(\phi+\lambda)} \end{bmatrix}\end{split}\]

\(U3\)

\(U3\)

实现任意单比特旋转,是最通用的单比特门形式。

\[\begin{split}U_3(\theta, \phi, \lambda) = \begin{bmatrix} \cos\frac{\theta}{2} & -e^{i\lambda}\sin\frac{\theta}{2} \\ e^{i\phi}\sin\frac{\theta}{2} & e^{i(\phi+\lambda)}\cos\frac{\theta}{2} \end{bmatrix}\end{split}\]

\(U4\)

\(U4\)

包含整体相位因子 \(e^{i\alpha}\),其分解为 \(R_Z(\beta)R_Y(\gamma)R_Z(\delta)\)

\[\begin{split}U_4(\alpha, \beta, \gamma, \delta) = \begin{bmatrix} e^{i(\alpha - \tfrac{\beta}{2} - \tfrac{\delta}{2})} \cos{\tfrac{\gamma}{2}} & - e^{i(\alpha - \tfrac{\beta}{2} + \tfrac{\delta}{2})} \sin{\tfrac{\gamma}{2}} \\ e^{i(\alpha + \tfrac{\beta}{2} - \tfrac{\delta}{2})} \sin{\tfrac{\gamma}{2}} & e^{i(\alpha + \tfrac{\beta}{2} + \tfrac{\delta}{2})} \cos{\tfrac{\gamma}{2}} \end{bmatrix}\end{split}\]

\(CNOT\)

受控非门

控制比特为 \(\lvert 1\rangle\) 时翻转目标比特。

\[\begin{split}\text{CNOT} = \begin{bmatrix} 1 & 0 & 0 & 0 \\ 0 & 1 & 0 & 0 \\ 0 & 0 & 0 & 1 \\ 0 & 0 & 1 & 0 \end{bmatrix}\end{split}\]

\(CR\)

受控旋转门

控制比特为 \(\lvert 1\rangle\) 时对目标比特施加旋转。

\[\begin{split}\text{CR}(\theta) = \begin{bmatrix} 1 & 0 & 0 & 0 \\ 0 & 1 & 0 & 0 \\ 0 & 0 & \cos\frac{\theta}{2} & -i\sin\frac{\theta}{2} \\ 0 & 0 & -i\sin\frac{\theta}{2} & \cos\frac{\theta}{2} \end{bmatrix}\end{split}\]

\(SWAP\)

交换门

交换两个比特的量子态。

\[\begin{split}\text{SWAP} = \begin{bmatrix} 1 & 0 & 0 & 0 \\ 0 & 0 & 1 & 0 \\ 0 & 1 & 0 & 0 \\ 0 & 0 & 0 & 1 \end{bmatrix}\end{split}\]

\(ISWAP\)

\(ISWAP\)

交换两个量子态并引入 \(i\) 相位。

\[\begin{split}\text{iSWAP} = \begin{bmatrix} 1 & 0 & 0 & 0 \\ 0 & 0 & i & 0 \\ 0 & i & 0 & 0 \\ 0 & 0 & 0 & 1 \end{bmatrix}\end{split}\]

\(SQISWAP\)

\(SQISWAP\)

iSWAP 的平方根,部分交换。

\[\begin{split}\text{SQISWAP} = \begin{bmatrix} 1 & 0 & 0 & 0 \\ 0 & \tfrac{1}{\sqrt{2}} & \tfrac{i}{\sqrt{2}} & 0 \\ 0 & \tfrac{i}{\sqrt{2}} & \tfrac{1}{\sqrt{2}} & 0 \\ 0 & 0 & 0 & 1 \end{bmatrix}\end{split}\]

\(CZ\)

受控-Z 门

控制比特为 \(\lvert 1\rangle\) 且目标为 \(\lvert 1\rangle\) 时,引入 \(\pi\) 相位。

\[\begin{split}\text{CZ} = \begin{bmatrix} 1 & 0 & 0 & 0 \\ 0 & 1 & 0 & 0 \\ 0 & 0 & 1 & 0 \\ 0 & 0 & 0 & -1 \end{bmatrix}\end{split}\]

\(CU\)

受控-U 门

当控制比特为 \(\lvert 1 \rangle\) 时,对目标比特施加任意单比特操作 \(U\)

\[\begin{split}\text{CU} = \begin{bmatrix} 1 & 0 & 0 & 0\\ 0 & 1 & 0 & 0\\ 0 & 0 & u_{00} & u_{01}\\ 0 & 0 & u_{10} & u_{11} \end{bmatrix}\end{split}\]

\(TOFFOLI\)

双控非门

两个控制比特均为 \(\lvert 1\rangle\) 时翻转目标比特。

\[\begin{split}\text{TOFFOLI} = \begin{bmatrix} 1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\ 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 \\ 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 1 & 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 & 1 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 & 0 & 1 & 0 & 0 \\ 0 & 0 & 0 & 0 & 0 & 0 & 0 & 1 \\ 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 \end{bmatrix}\end{split}\]

\(BARRIER\)

屏障门

用于隔离编译优化阶段的门序列,防止跨区优化。

\(MEASURE\)

测量门

将量子态坍缩为经典比特值 0 或 1,用于读取结果。

⑤图形化编辑区域:

在该区域,用户可通过拖拽量子逻辑门到线路中实现线路的创建。其中,每条水平线代表一个量子比特计算线路,用户可根据需要,增加或减少量子线路,最多35个量子比特,最少1个量子比特。

../_images/image-20251204160801234.png

在线路图的右下角,有全屏显示按钮,点击后可放大该线路图进行查看与操作:

../_images/image-20251209115617352.png

在编辑区域的下方,用户可以进行一些其他设置:

  • 开启线路优化:

    勾选线路优化,可通过平台自动化程序有效提升线路的运行效率,通过数学等价变换和编译技术,减少量子门数量、降低线路深度、减少物理资源占用,更快得出计算结果。

  • 开启映射:

    勾选开启映射,可将逻辑线路自动转换为可在真实硬件上执行的物理线路,提升可执行性、降低错误率,并通过优化映射策略减少额外开销。

  • 开启量子层析:

    量子层析是一种用于完整表征未知量子态的实验技术,其核心作用是完整、精确地重建一个未知量子态的密度矩阵,从而实现对量子系统状态的全面表征。这在量子信息科学中至关重要,尤其是在验证量子硬件的保真度、检验量子门操作的正确性以及研究多体量子态时。

    开启量子层析功能后,可以在任务结果页面查看相应的层析结果展示,但此项功能可能会导致计算时间变长,请耐心等待。

  • 开启保真度:

    保真度是指一个实际量子线路在真实量子硬件上运行后,其输出态与理想目标态之间的接近程度,是衡量真实量子硬件能否“忠实地”执行量子线路的最关键指标之一,直接决定量子算法能否在真实设备上成功运行。

    开启保真度功能,系统会额外记录或计算线路输出态与理想目标态之间的保真度。将同时开启量子层析功能,可以在任务结果页面查看相应的保真度结果展示,但此项功能可能会导致计算时间变长,请耐心等待。

  • 开启读取缓解修正:

    读取误差缓解修正是一种用于减轻量子计算中测量阶段误差的技术,其核心目标是消除或降低因量子测量过程中的误判(如将∣0⟩误读为∣1⟩,或反之)对实验结果的影响。

    可选择开启全局采样修正或局部实时修正,其中: - 全局采样修正:周期性对量子芯片进行整体读取采样,获取修正矩阵,并对原始计算结果进行修正处理。 - 局部实时修正:通过额外增加针对性的采样线路,对特定量子比特进行实时采样,修正效果会更好,但因为额外的采样线路,会导致计算时间增加。 - 选择建议:

    • 若量子算法运行时间短、对结果精度要求适中,可优先选择全局采样修正,以节省资源。

    • 若算法对测量结果极为敏感(如 VQE、QAOA),可优先采用局部实时修正,以获得更鲁棒的结果。

⑥可视化结果:

在该区域,用户可自主决定是否选择是否展示预期投影概率(仅适用于展示≤7位量子比特的线路)、预期密度矩阵(仅适用于展示≤4位量子比特的线路)、预期振幅(仅适用于≤7位量子比特的线路)的模拟示意图。(需注意的是,该区域展示的所有结果为理论预测值,忽略了任何测量操作及参数设置的影响。)

  • 预期投影概率:通常指在多个测量样本中,某个特定结果出现的期望频率。每根柱子的高度代表了该结果出现的频率。

  • 预期密度矩阵:预期密度矩阵是量子态在多次测量或运行后,通过统计方法估计出的量子系统整体状态的数学描述,包含了所有量子信息,包括概率和相位关系,是量子态的完整描述。每根柱子的颜色代表了该状态下的相位角(-π~π)的期望值;每根柱子的高度代表了该状态下的概率密度(模长),例如:若结果000的投影概率为0.0625,001的投影概率为0.4222,则[000,001]状态下的概率密度为:

\[\sqrt{0.0625^2 + 0.4222^2} = 0.4268\]
  • 预期振幅:预期振幅是指在多次运行量子线路后,通过对测量结果进行统计平均,估计出的量子态在各基矢上的复振幅的期望值。每根柱子的颜色代表了该状态下的相位(-π~π)的期望值;每根柱子的高度代表了该基矢下的振幅大小。

../_images/image-20251204175506149.png