2.1 叠加、纠缠与希尔伯特空间:被觊觎的地基


2.1 叠加、纠缠与希尔伯特空间:被觊觎的地基

本节摘要:多量子比特的态生活在张量积空间里,纠缠是其中无法拆分描述的部分——它既是量子计算的核心资源,也是退相干最先攻击的目标。本节用"贝尔态"作为解剖标本,现场构造纠缠、亲手判别纠缠,为敌情剖析打下几何直觉。

「贝尔态」:一个被引用最多的名词

「贝尔态」这个行话在量子信息的文献里出场率居高不下,值得把它作为本节的解剖标本:它是最简单的纠缠态,两行公式就能写完,却浓缩了本节要讲的全部概念——张量积空间为什么不是两份一维空间的拼接、纠缠为什么无法拆成两个单比特的乘积、以及为什么说纠缠是退相干的头号猎物。把这只"麻雀"解剖干净,后面几十章的任何纠缠结构(纠错码的编码块、变分算法的拟设、化学模拟的波函数)都只是它的放大与组合。

一、地形:态空间是怎样随比特数生长的

单量子比特的态是二维复向量空间(名字叫希尔伯特空间,你可以暂时把它理解为"装复振幅向量、带内积的容器")中的一个单位向量。两个量子比特的系统,态空间不是两个二维空间相加,而是相乘——张量积:二维乘二维得到四维,每个态有四个复振幅,分别挂在 |00\rangle、|01\rangle、|10\rangle、|11\rangle 四个基矢上。三个比特是八维,十个比特是一千零二十四维。数字上写就是维度 = 2^n

张量积的第一层推论是描述代价的指数增长,第 1 章已经算过那笔账。第二层推论才是本节的主角:四维空间里的向量,绝大多数都无法写成"一个二维向量乘另一个二维向量"的形状。能写成的叫乘积态——两个比特各过各的日子;写不成的叫纠缠态——两个比特的命运被捆绑在一起,描述必须整体给出。这不是数学上的少数派:在态空间这个高维地形里,纠缠态占据的比例远大于乘积态。换句话说,"随意"准备出来的两比特态大概率是纠缠的;反而是不纠缠、彼此独立的状态,在所有可能的态里只占一片小得可怜的低维骨架。

图 2-1:从乘积态到纠缠态——振幅矩阵的形状判据

图 2-1:从乘积态到纠缠态——振幅矩阵的形状判据

二、演练:现场构造贝尔态并亲手判别纠缠

判据已经写在图里:把两比特态的四个振幅排成二乘二矩阵,能拆成"列向量乘行向量"的就是乘积态;拆不开的就是纠缠态。下面构造贝尔态,并写一个可复用的判别函数。

# bell.py:构造贝尔态并判别纠缠(仅标准库) import math def h_gate(a: complex, b: complex): """哈达玛门:把 (a, b) 变换为 ((a+b)/根号2, (a-b)/根号2)""" s = 1 / math.sqrt(2) return (a * s + b * s, a * s - b * s) def cnot(state): """两比特受控非门:状态用长度为 4 的振幅表 [00, 01, 10, 11] 表示。 第一比特为控制位,第二比特为目标位。""" a00, a01, a10, a11 = state return (a00, a01, a11, a10) # 控制位为 1 时目标位翻转:10 与 11 互换 def separability(state): """把振幅表排成矩阵 [[a00,a01],[a10,a11]],检查能否拆成列向量乘行向量。 返回 (是否乘积态, 拆分残差)。残差为零代表可拆分。""" a00, a01, a10, a11 = state det = a00 * a11 - a01 * a10 # 行列式为零等价于秩一(可拆分) scale = max(abs(a00), abs(a01), abs(a10), abs(a11), 1e-12) return abs(det) / scale**2 < 1e-9, abs(det) / scale**2 # 从 |00> 出发:先对第一比特做哈达玛,再做受控非 state = (1.0, 0.0, 0.0, 0.0) # |00> top, bottom = h_gate(state[0], state[2]) # 只作用于第一比特所在子空间 state = (top, 0.0, bottom, 0.0) # 振幅表:[00, 01, 10, 11] state = cnot(state) print("贝尔态振幅:", [complex(round(a.real, 4), round(a.imag, 4)) for a in state]) print("是否乘积态:", separability(state)) # 对照组:把 (|0>+|1>)/根号2 与 |0> 拼成的乘积态 prod = h_gate(1.0, 0.0) prod_state = (prod[0], 0.0, prod[1], 0.0) print("乘积态对照:", separability(prod_state))

运行结果值得逐行读。贝尔态的振幅表是(0.71, 0, 0, 0.71),行列式判别返回"非乘积态";对照组(0.71, 0, 0.71, 0)返回"乘积态"。两态的振幅都只有两个非零项,形状却一个可拆一个不可拆——差别仅在于非零振幅的位置。这组对照可以纠正一个高频误解:叠加不等于纠缠。叠加是单比特就有的现象(一个比特可以处在零与一的叠加),纠缠是多比特系统的整体属性(振幅结构无法拆分)。一个毫无纠缠的态可以处处是叠加;一个没有单个比特"叠加感"的态(比如振幅各半的贝尔态在计算基下测量结果纯随机)却可以蕴含最强的纠缠。

还有一个易错点藏在代码里:哈达玛门只作用在第一比特上,振幅表的更新却要小心维度对齐——我把振幅按"第二比特取值相同"分组(也就是提取序号为零和二的两项),在这个子表里套用单比特门,就是为了避免张量积索引错位。索引约定(哪个比特是高位、哪个是低位、振幅表下标怎么算)在真实框架里是最常见的 bug 来源,Qiskit 的位序与数学文献的约定甚至相反,写模拟器时把约定写在注释里是保命习惯。

三、纠缠为什么是退相干的头号猎物

现在可以把"敌情"说得更具体了。纠缠态的捆绑依赖振幅之间的精确相对关系——对角两格非零、其余为零,这种结构容不得半点含糊。环境不需要"读懂"你的计算,只要随机地与任何一比特发生相互作用(气体分子撞一下、杂散磁场抖一下、控制线漏进一点热),振幅之间的相对相位就会被掺入随机因子。对乘积态,这种掺入顶多让单个比特的态轻微变形;对纠缠态,掺入直接腐蚀捆绑结构本身——纠缠度单调流失,而且按现有物理定律,流失掉的纠缠无法无损找回。

这解释了本章支柱页的敌情结论"只能防御不能根除",也预定了后续章节的任务清单:第 3 章在物理上减少"撞一下"的发生频率;第 4 章在信息结构上把纠缠编织得更抗腐蚀;第 5 章在算法上赶在纠缠流失之前完成计算。三道防御全部围绕同一个靶心——本节这个二乘二的小矩阵。

本节要点回顾

  • 态空间是乘性的:n 比特希尔伯特空间维度为 2^n,描述代价与纠缠可能性都源于此。
  • 纠缠是结构属性:振幅矩阵不可拆分即为纠缠,判据一行代码(行列式是否为零)即可实现。
  • 叠加不等于纠缠:前者是单比特现象,后者是多比特捆绑,两个概念必须分开防御、分开核算。
  • 纠缠占多数:态空间中乘积态是低维骨架,纠缠态才是主体,"随意准备"大概率得到纠缠。
  • 纠缠最怕随机相位:环境耦合腐蚀振幅间的相对关系,这是退相干攻击的核心路径。

下一节处理两条绕不开的战场纪律:读取即破坏(测量坍缩)与备份不可能(不可克隆定理)。


作者与出处
原作者: 灏天文库
来源:灏天文库
整理: 灏天文库整理
由灏天文库平台收录,内容或由平台用户上传,仅供学习交流
发布者: 作者: 灏天文库 转发
评论区 (0)
U