3 qubit 量子系统中的单qubit 期望值计算

一个 3量子比特系统 中,计算第1个量子比特(qubit 1) 期望值的完整数学过程。假设这里是一个比较随意的测量矩阵,它既不是标准的泡利矩阵,也不是对角矩阵。



1. 问题设定

系统参数

  • 总比特数:n = 3n=3

  • 量子比特索引:0, 1, 2(从0开始计数)

  • 目标比特:qubit 1

  • 自由比特:qubit 0 和 qubit 2

态矢量

三量子比特系统的态矢量有 个分量:

其中 是计算基态, 的二进制表示对应 (qubit2, qubit1, qubit0)。

例如:

  • x=0x=0: |000⟩ = |q₂=0, q₁=0, q₀=0⟩

  • x=1x=1: |001⟩ = |q₂=0, q₁=0, q₀=1⟩

  • x=2x=2: |010⟩ = |q₂=0, q₁=1, q₀=0⟩

  • ...

  • x=7x=7: |111⟩ = |q₂=1, q₁=1, q₀=1⟩

测量矩阵(随意但合理)

对于目标比特 qubit 1,测量矩阵是 的。我选一个既非厄米也非幺正的矩阵:

这是一个任意复数矩阵 (非厄米,因为



2. 数学推导过程

步骤1:理解可观测量在完整空间的形式

可观测量 在完整 3-qubit 空间是:

这里要注意顺序:通常 cuQuantum 的态矢量存储顺序是 qubit 0 是最低有效位(LSB)。所以完整系统的基态顺序是:

因此,当 qubit 1 是目标比特时,算符应为:

更准确地说,张量积顺序与比特位置有关。

实际计算期望值时,我们不需要显式构造 8×8 矩阵,而是用部分迹的方法。

步骤2:态矢量的重新索引

将 3-bit 索引 按二进制展开:

  • 目标比特: (qubit 1 的值)

  • 自由比特: (qubit 2 和 qubit 0 的组合)

态矢量分量可写为:

其中:

  • :qubit 1 为 0

  • :qubit 1 为 1

  • 编码了 qubit 2 和 qubit 0 的状态

索引映射表

x(十进制) 二进制 (b₂b₁b₀) α (b₁) γ (b₂b₀) ψ 分量
0 000 0 0 (00) ψ₀ = ψ₀₀
1 001 0 1 (01) ψ₁ = ψ₀₁
2 010 1 0 (00) ψ₂ = ψ₁₀
3 011 1 1 (01) ψ₃ = ψ₁₁
4 100 0 2 (10) ψ₄ = ψ₀₂
5 101 0 3 (11) ψ₅ = ψ₀₃
6 110 1 2 (10) ψ₆ = ψ₁₂
7 111 1 3 (11) ψ₇ = ψ₁₃

这里 ​ 表示:目标比特值为 ,自由比特组合为 时的振幅。

步骤3:计算约化密度矩阵(部分内积矩阵 S)

对于目标子系统(qubit 1),其约化密度矩阵的矩阵元为:

这是一个 2×2 矩阵 ,其中:

注意​,所以 是厄米矩阵。

步骤4:展开每个 S 元素的具体计算

用原始 ψ 分量表示:

S₀₀ (α=0, β=0):

对应:

S₀₁ (α=0, β=1):

对应:

S₁₀ (α=1, β=0):

对应:

S₁₁ (α=1, β=1):

对应:

步骤5:计算期望值

期望值公式:

注意是 ​ 而不是 ​,因为:

展开计算:

代入我们的矩阵

所以:

步骤6:数值示例

假设一个具体的态矢量(归一化):

即所有分量均为 ​。

那么:

计算 S 矩阵:

期望值:

结果

3. 物理意义分析

(1) 为什么结果是复数?

因为矩阵 MM 不是厄米矩阵。在量子力学中,可观测量的期望值必须是实数,因为它是测量结果的统计平均值。如果我们得到的期望值是复数,说明:

  1. 要么我们的矩阵 MM 不是合法的可观测量

  2. 要么计算有误(但数学上我们确实可以计算任意矩阵的期望值)

实际上,我们可以将任意矩阵分解为厄米部分和反厄米部分:

其中:

那么:

  • 是实数

  • 是纯虚数

在我们的例子中:

计算得到 (实数),(纯虚数)。

(2) 与张量积结构的一致性

我们的计算等价于:

由于单位算符 ​ 和 ​ 作用在 qubit 2 和 qubit 0 上,我们实际上是对这两个比特求偏迹 ,只剩下 qubit 1 的约化密度矩阵,然后计算

(3) 归一化检查

态矢量归一化要求:

这等价于:

在我们的数值例子中:0.5 + 0.5 = 1,正确。


4. cuQuantum 内部实现的关键点

在实际的 custatevecComputeExpectation 调用中:

API 调用

cpp 复制代码
custatevecComputeExpectation(
    handle, 
    sv,                    // ψ 向量(8个复数)
    CUDA_C_64F,           // 双精度复数
    3,                    // nIndexBits = 3
    &expect,              // 输出期望值
    CUDA_C_64F,           // 期望值数据类型
    NULL,                 // residualNorm
    matrix,               // 2×2 矩阵 M
    CUDA_C_64F,           // 矩阵数据类型
    layout,               // 矩阵布局(如行优先)
    basisBits,            // [1]
    1,                    // nBasisBits = 1
    computeType,          // 计算精度
    NULL, 0               // 无额外工作空间
);

GPU 内核执行步骤

  1. 分配线程:使用少量线程(因为计算量小)

  2. 并行计算 S 的四个元素

    • 线程0:计算 S₀₀ = ψ₀ψ₀ + ψ₁ ψ₁ + ψ₄ψ₄ + ψ₅ψ₅

    • 线程1:计算 S₀₁ = ψ₀ψ₂ + ψ₁ ψ₃ + ψ₄ψ₆ + ψ₅ψ₇

    • 线程2:计算 S₁₀ = ψ₂ψ₀ + ψ₃ ψ₁ + ψ₆ψ₄ + ψ₇ψ₅

    • 线程3:计算 S₁₁ = ψ₂ψ₂ + ψ₃ ψ₃ + ψ₆ψ₆ + ψ₇ψ₇

  3. 同步线程,确保所有 S 元素计算完成

  4. 计算期望值

    cpp 复制代码
    expect = M[0][0]*S[0][0] + M[0][1]*S[1][0] + M[1][0]*S[0][1] + M[1][1]*S[1][1]
  5. 返回结果

内存访问模式

对于每个 S 元素的计算,需要访问的 ψ 分量:

  • S₀₀: 访问 ψ₀, ψ₁, ψ₄, ψ₅(这些是 qubit 1 = 0 的分量)

  • S₀₁: 访问 ψ₀, ψ₁, ψ₄, ψ₅(qubit1=0)和 ψ₂, ψ₃, ψ₆, ψ₇(qubit1=1)

注意 ψ 在内存中是连续存储的:ψ₀, ψ₁, ψ₂, ψ₃, ψ₄, ψ₅, ψ₆, ψ₇。

计算 S₀₀ 和 S₁₁ 时,访问是非连续的(每隔一个元素),这会影响 GPU 内存合并访问的效率。但对于这么小的问题,影响不大。


5. 推广到一般情况

对于 n 量子比特系统,计算单个目标比特的期望值:

  1. 确定目标比特位置 k

  2. 将索引 x 分解 为:

    • 其中 α 是目标比特值(0或1)

    • a 是高位部分,b 是低位部分

  3. 定义自由索引,有 种可能

  4. 计算

  5. 期望值


总结

这个 3-qubit 单比特期望值计算的数学过程展示了:

  1. 索引分解:将全局索引分解为目标比特和自由比特部分

  2. 部分内积矩阵:通过对自由比特求和,得到目标子系统的 2×2 矩阵 S

  3. 矩阵收缩:用测量矩阵 M 与 S 收缩得到期望值

  4. 复数结果的意义:当 M 非厄米时,期望值可能是复数,其实部对应 M 的厄米部分的期望值,虚部对应反厄米部分

这个计算是 cuQuantum 中更复杂期望值计算的基础模块。对于多目标比特的情况,原理相同,只是 S 矩阵的维度从 2×2 变为 ,其中 m 是目标比特数。

相关推荐
诸葛务农15 小时前
超高清量子导航与量子探测
量子计算
月亮!18 小时前
量子计算遇上AI:下一代算力突破的关键节点
运维·网络·人工智能·python·测试工具·自动化·量子计算
MicroTech202518 小时前
微算法科技(NASDAQ MLGO)部署后量子加密算法,保护链上数据传输
科技·算法·量子计算
漫长的~以后21 小时前
多模态大模型与量子计算的融合突破:开启AI新纪元
人工智能·量子计算
天行无忌21 小时前
量子位:量子计算的支柱
量子计算
std78795 天前
量子大道 前程无量
量子计算
水果不止一种5 天前
功法一:贝尔态的制备和测量及超密编码VS隐形传态
量子计算·贝尔态的制备·贝尔态的测量·超密编码·隐形传态
诸葛务农8 天前
量子测量与计量技术
量子计算
云边云科技5348 天前
企业SD-WAN选型指南:打造安全、体验至上的云网智联架构
网络·安全·架构·it·量子计算