跳转至

量子门、位序与相干性

学过采样后,再看双量子比特的结果怎样写成字符串。量子比特编号、基态数组索引和字符串位置是相关的约定,不能直接当作同一个标签。应读取这次运行返回的位序元数据。

X 门交换 0 和 1。在两个量子比特的线路中,只对第 0 个施加 X 门。这个不对称状态能帮助判断字符串顺序;Bell 态的对称结果 00、11 则做不到。

"""Use an asymmetric circuit to inspect bit order and compare Bell coherence."""

from __future__ import annotations

import json

import numpy as np

from cascaqit import Circuit


def experiment() -> dict[str, object]:
    result = (
        Circuit(2).x(0).measure_all().run(shots=16, seed=21, return_probabilities=True)
    )
    bell = np.array([1, 0, 0, 1], dtype=complex) / np.sqrt(2)
    coherent = np.outer(bell, bell.conj())
    mixture = np.diag([0.5, 0.0, 0.0, 0.5])
    x = np.array([[0, 1], [1, 0]])
    xx = np.kron(x, x)
    return {
        "asymmetric_counts": result.counts,
        "bit_order": result.metadata["bitstring_ordering"]["qubit_order"],
        "bell_z_probabilities": np.diag(coherent).real.tolist(),
        "mixture_z_probabilities": np.diag(mixture).tolist(),
        "bell_xx": float(np.trace(coherent @ xx).real),
        "mixture_xx": float(np.trace(mixture @ xx).real),
    }


if __name__ == "__main__":
    print(json.dumps(experiment(), sort_keys=True))

下载完整脚本

python examples/learning/foundations/gates_and_ordering.py
{
  "asymmetric_counts": {
    "10": 16
  },
  "bell_xx": 0.9999999999999998,
  "bell_z_probabilities": [
    0.4999999999999999,
    0.0,
    0.0,
    0.4999999999999999
  ],
  "bit_order": [
    "q0",
    "q1"
  ],
  "mixture_xx": 0.0,
  "mixture_z_probabilities": [
    0.5,
    0.0,
    0.0,
    0.5
  ]
}

用 bit_order 解读 asymmetric_counts,再把 X 门移到第 1 个量子比特,预测新字符串。理想情况下,每次实验的 16 个样本应完全一致。比起猜测 SDK 是否采用其他工具的惯例,这个实验更直接。

关联并不代表量子态的全部信息

后半段计算比较 ( |00⟩ + |11⟩ )/√2 与各占一半的 |00⟩、|11⟩ 经典混合态。它们在 Z 基下的概率相同,但 Bell 态密度矩阵中有非对角相干项,混合态没有。

密度矩阵 ρ 中,可观测量 O 的期望值为 Tr(ρO)。脚本计算 XX,Bell 态的结果为一,混合态为零。这是直接的矩阵计算,不是后端返回的有限 shots 估计。

练习:把 Bell 态中的加号改为减号,Z 概率和 XX 各会怎样变化?

答案

Z 概率不变,XX 变为 −1,因为相对相位改变了。只看一张 Z 基计数直方图,或颠倒字符串顺序,都无法表达这个相位差异。

继续学习 Hamiltonian 与可观测量,或构建 SDK 中的 Bell 线路。

相关概念:位序。

English

SDK 1.0.8a · `8b227bff`