当前位置: 首页 > article >正文

量子纠错码实战:从Shor码到表面码

引言:量子纠错的必要性

量子比特的脆弱性导致其易受退相干和噪声影响,单量子门错误率通常在10⁻³~10⁻²量级。量子纠错码(QEC)通过冗余编码+测量校正的机制,将逻辑量子比特的错误率降低到可容忍水平。本文从首个量子纠错码(Shor码)到当前主流的表面码(Surface Code),结合Qiskit实战演示纠错过程,解析量子容错计算的核心技术。

一、量子纠错的基本原理

1.1 量子错误类型

错误类型数学表示物理来源
比特翻转X|0⟩ = |1⟩电磁干扰
相位翻转Z |+⟩ = |−⟩能量弛豫
联合错误Y = iXZ环境耦合

1.2 稳定子码框架
通过稳定子群(Stabilizer Group)检测错误:

  • 生成元:一组可交换的Pauli算子,如S₁=Z₁Z₂, S₂=Z₂Z₃
  • 编码逻辑态:满足S_i|\ψ⟩ = |ψ⟩的所有态构成编码空间

二、Shor码:首个量子纠错方案

2.1 编码结构
Shor码将1个逻辑量子比特编码为9个物理量子比特:

|\psi_L⟩ = (|000⟩ + |111⟩)⊗3 / √8  
  • 比特翻转检测:比较相邻三体的奇偶性(类似经典重复码)

  • 相位翻转检测:通过Hadamard基测量

2.2 Qiskit实现与纠错

from qiskit import QuantumCircuit, Aer, execute  
from qiskit.visualization import plot_histogram  # 编码电路  
def shor_encode(qc, q):  qc.cx(q[0], q[3])  qc.cx(q[0], q[6])  qc.h(q[0])  qc.h(q[3])  qc.h(q[6])  # 更多纠缠操作见完整代码  # 错误检测  
def shor_detect(qc, q, ancilla):  qc.reset(ancilla)  qc.cx(q[0], ancilla[0])  qc.cx(q[3], ancilla[0])  qc.cx(q[6], ancilla[0])  # 其他稳定子测量  # 模拟运行  
qc = QuantumCircuit(9, 2)  
shor_encode(qc, range(9))  
qc.x(4)  # 注入比特翻转错误  
shor_detect(qc, range(9), [9,10])  
qc.measure([9,10], [0,1])  
result = execute(qc, Aer.get_backend('qasm_simulator'), shots=1024).result()  
plot_histogram(result.get_counts())  # 显示错误位置  

输出示例:测量结果"01"表示第4位量子比特发生错误,需施加X门校正。

三、表面码:迈向实用的容错方案

3.1 拓扑编码结构
表面码将逻辑量子比特编码在二维晶格上:

  • 数据量子比特:位于晶格交叉点
  • 稳定子测量
    -Z型稳定子:测量面内四个数据比特的Z⊗Z⊗Z⊗Z
    -X型稳定子:测量面内四个数据比特的X⊗X⊗X⊗X

3.2 阈值定理与优势

  • 错误阈值:当物理错误率低于~1%时,表面码可指数抑制逻辑错误率
  • 容错优势
    -仅需近邻相互作用,适合超导量子硬件
    -可扩展性强,逻辑错误率随码距增大呈指数下降

四、表面码实战:以Stim库为例

4.1 安装与基础操作

pip install stim  

生成表面码电路:

import stim  d = 3  # 码距  
circuit = stim.Circuit.generated(  "surface_code:rotated_memory_z",  rounds=10,  distance=d,  after_clifford_depolarization=0.001  
)  
sampler = circuit.compile_detector_sampler()  
syndrome = sampler.sample(shots=100)  

4.2 解码与纠错
使用PyMatching库进行最小权重匹配解码:

from pymatching import Matching  m = Matching.from_detector_error_model(circuit.detector_error_model())  
corrections = m.decode_batch(syndrome)  
logical_error_rate = np.mean(np.any(corrections[:, -d:], axis=1))  
print(f"逻辑错误率: {logical_error_rate:.4f}")  

五、当前挑战与未来方向

挑战解决方案研究进展
高资源开销非阿贝尔码(如Fibonacci码)微软StationQ团队探索中
测量错误累积动态解耦技术谷歌Quantum AI实验验证
硬件拓扑限制自适应表面码布局IBM Osprey芯片实现

六、总结与学习资源

量子纠错码是构建容错量子计算机的基石,其发展路径呈现两大趋势:

  1. 算法优化:从Shor码(码率1/9)到表面码(码率≈1/d²),资源效率提升显著
  2. 工程适配:从理论方案到与超导/离子阱硬件的深度结合

(注:本文代码已在Stim 1.11 + Python 3.10环境验证,表面码模拟需至少16GB内存)

相关文章:

量子纠错码实战:从Shor码到表面码

引言:量子纠错的必要性 量子比特的脆弱性导致其易受退相干和噪声影响,单量子门错误率通常在10⁻~10⁻量级。量子纠错码(QEC)通过冗余编码测量校正的机制,将逻辑量子比特的错误率降低到可容忍水平。本文从首个量子纠错…...

【2】搭建k8s集群系列(二进制)之安装etcd数据库集群

一、etcd服务架构 Etcd 是一个分布式键值存储系统,Kubernetes 使用 Etcd 进行数据存储,所以先 准备一个 Etcd 数据库,为解决 Etcd 单点故障,应采用集群方式部署,这里使用 3 台组建集群,可容忍 1 台机器故障…...

Linux常用命令详解:从基础到进阶

目录 一、引言 二、文件处理相关命令 (一)grep指令 (二)zip/unzip指令 ​编辑 (三)tar指令 (四)find指令 三、系统管理相关命令 (一)shutdown指…...

【Docker】使用Docker快速部署n8n和unclecode/crawl4ai

Docker部署自动化工具n8n和crawl4ai详细教程 前言 本文将详细介绍如何使用 Docker 来部署和运行自动化工作流工具 n8n 以及 crawl4ai。这两个工具对于需要进行自动化工作流程的开发者来说都非常有用。 一、环境准备 在开始之前,请确保您的系统已经安装了&#x…...

数据库权限获取

1. into outfile(手写) 1.1. 利用条件 • web 目录具有写入权限,能够使用单引号 • 知道网站绝对路径(根目录,或则是根目录往下的目录都行) • secure_file_priv 没有具体值(在 mysql/my.ini 中查看) 1.2. secure_file_priv 介绍 secure_file_priv 是用来限制 loa…...

基于spring boot的外卖系统的设计与实现【如何写论文思路与真正写出论文】

目录 系统开发实现链接: 背景与分析: 背景(题目): 用户功能 配送员功能 管理员功能 分析: 过程(主体展示为主,部分功能不一一展示): 目录 论文前面…...

Kubernetes 存储 Downward API

1.介绍 1.提供容器元数据 比如我们 golang语言 我们说他会根据当前CPU的数量 以此去确认我们的进程 线程 和协程之间的关系 以此去释放我们当前CPU的更大的 这么一个并行任务的能力 但是这里会出现一个问题 容器它是把当前的应用 封装在我们固定的名称空间了 而且给它以特定的…...

使用ctags+nvim自动更新标签文件

ctags是一个强大的语言分析工具,可以分析多种语言并生成语法结构文件,通过这些文件可以快速进行函数跳转,但是这有一个缺点,就是每次在项目里更新了代码之类的比如新增了一个函数,都需要重新使用ctags -R .来重新更新标…...

RK3568 gpio模拟i2c 配置hym8563 RTC时钟

1、使用模拟i2c,确认使用的gpio未被占用,为gpio功能 以GPIO0_C6 GPIO0_C7为例,查看管脚的复用关系。 cat /sys/kernel/debug/pinctrl/pinctrl-rockchip-pinctrl/pinmux-pins2、使用内核模块i2c-gpio.c 内核make menuconfig 开启i2c_gpio支持 Device Drivers->I2C sup…...

HANA如何在存储过程里执行动态SQL

业务场景需求: 在HANA里如何实现动态的SQL控制,比如需要多个单据里,实现某个自定义字段不允许重复 一般的写法是需要在每个业务单据里加对应的存储过程控制,这样的话,需要在每个业务单据里进行控制,SQL维…...

01人工智能基础入门

一、AI应用场景和发展历程 1.1行业应用 1、deepdream图像生成、yolo目标检测 2、知识图谱、画风迁移 3、语音识别、计算机视觉 4、用户画像 5、百度人工智能布局 1.2发展历程 人工智能的发展经历了 3 个阶段: 1980年代是正式成形期,尚不具备影响力。 …...

嵌入式AI的本地化部署的好处

嵌入式AI本地化处理(即边缘计算)的核心优势在于将AI算力下沉至设备端,直接处理数据而非依赖云端,这种模式在多个维度上展现出显著价值: 一、数据隐私与安全性提升 1. 敏感数据本地存储 金融、医疗等涉及隐私的行业…...

进程和内存管理

目录 一.进程的基本信息 1.1进程的定义 1.2进程的特征 1.3进程的组成 1.4线程产生的背景 1.5线程的定义 1.6进程与线程的区别 1.7进程的类别 1.8进程的优先级 1.8.1进程优先级的概念 1.8.2PRI和NI 1.9僵尸进程 1.9.1僵尸进程的定义 1.9.2僵尸进程产生的原因 1.9…...

001 vue

https://cn.vuejs.org/ 文章目录 v-bindv-modelv-on修饰符条件渲染/控制:v-if v-show列表渲染 M:即Model,模型,包括数据和一些基本操作 V:即View,视图,页面渲染结果 VM:即View-Mode…...

css动态设置div宽高,calc函数

在css中使用calc函数 calc() 是 CSS 中的一种函数,用于动态计算长度值。它允许你在 CSS 属性中进行数学运算,结合不同的单位(如 px、%、em 等),从而创建更加灵活和响应式的布局 表达式规则 运算符:支持加…...

MySQL篇(四)事务相关知识详解

MySQL篇(四)事务相关知识详解 MySQL篇(四)事务相关知识详解一、事务的特性(ACID)原子性(Atomicity)一致性(Consistency)隔离性(Isolation)持久性(…...

React 项目使用 pdf.js 及 Elasticpdf 教程

摘要:本文章介绍如何在 React 中使用 pdf.js 及基于 pdf.js 的批注开发包 Elasticpdf。简单 5 步可完成集成部署,包括数据的云端同步,示例代码完善且简单,文末有集成代码分享。 1. 工具库介绍与 Demo 1.1 代码包结构 ElasticP…...

性能测试之jmeter的基本使用

简介 Jmeter是Apache的开源项目,基于Java开发,主要用于进行压力测试。 优点:开源免费、支持多协议、轻量级、功能强大 官网:https://jmeter.apache.org/index.html 安装 安装步骤: 下载:进入jmeter的…...

CAD插件实现:所有文字显示到列表、缩放、编辑——CAD-c#二次开发

当图中有大量文字,需要全部显示到一个列表时并缩放到需要的文字时,可采用插件实现,效果如下: 附部分代码如下: private void BtnSelectText_Click(object sender, EventArgs e){var doc Application.DocumentManager.…...

【Git】“warning: LF will be replaced by CRLF”的解决办法

一、原因分析 不同操作系统的换行符标准不同: • Windows:使用 CRLF(\r\n)表示换行; • Linux/Mac:使用 LF(\n)表示换行 Git 检测到本地文件的换行符与仓库设置或目标平台不兼容时…...

vue2(13) 组件注册的学习笔记

文章目录 Vue2 组件注册学习笔记一、组件注册的基本概念二、全局注册三、局部注册四、组件名的命名规范五、在模块系统中注册组件六、基础组件的自动化全局注册七、总结Vue2 组件注册学习笔记 一、组件注册的基本概念 在Vue中,组件是可复用的Vue实例,具有封装的模板和逻辑。…...

【spring Cloud Netflix】OpenFeign组件

1.概述 Feign旨在使编写Java Http客户端变得更容易。前面在使用RibbonRestTemplate进行服务的远程调用 时,利用RestTemplate对Http请求的封装处理,形成了一套模板化的调用方法。但是在实际开发中,由 于对服务的依赖调用可不止一处&#xff0…...

go游戏后端开发20:房间消息推送处理

创建房间逻辑前的概念梳理及代码实现 在编写创建房间的逻辑之前,我们需要先创建几个关键概念。 第一个概念是“联盟”。联盟可以理解为一个组织,它持有多个房间。一个联盟下可能挂载多个房间,这是我们的第一个概念。 第二个概念是“管理”…...

Oracle数据库数据编程SQL<8 文本编辑器Notepad++和UltraEdit(UE)对比>

首先,用户界面方面。Notepad是开源的,界面看起来比较简洁,可能更适合喜欢轻量级工具的用户。而UltraEdit作为商业软件,界面可能更现代化,功能布局更复杂一些。不过,UltraEdit支持更多的主题和自定义选项&am…...

Linux驱动开发练习案例

1 开发目标 1.1 架构图 操作系统:基于Linux5.10.10源码和STM32MP157开发板,完成tf-a(FSBL)、u-boot(SSBL)、uImage、dtbs的裁剪; 驱动层:为每个外设配置DTS并且单独封装外设驱动模块。其中电压ADC测试,采用linux内核…...

Windows程序中计时器WM_TIMER消息的使用

本文章是对《Windows程序设计》这本书第八章计时器的总结,如果有时间,可以去看书里的讲解,如果时间不充裕,想马上知道计时器该如何使用,欢迎阅读本文,本文已经将计时器的干货整理完毕! 什么是计…...

Apache httpclient okhttp(1)

学习链接 Apache httpclient & okhttp(1) Apache httpclient & okhttp(2) httpcomponents-client github apache httpclient文档 apache httpclient文档详细使用 log4j日志官方文档 【Java基础】- HttpURLConnection…...

微信小程序—路由

关于 app.json 中的配置 app.json 主要是对整个小程序进行一个全局的配置。 pages:在这个配置项目中,就可以配置小程序里面的页面,小程序默认显示 pages 数组中的第一个页面windows:主要配置和导航栏相关的 当然,在…...

人工智能驱动的数据仓库优化:现状、挑战与未来趋势

1. 引言:数据仓库的演进与人工智能驱动优化的兴起 现代数据仓库的复杂性和规模正以前所未有的速度增长,这主要是由于数据量、种类和产生速度的急剧增加所致。传统的数据仓库技术在应对这些现代数据需求方面显得力不从心,这催生了对更先进解决…...

LVS高可用负载均衡

一、项目图 二、主机规划 主机系统安装应用网络IPclientredhat 9.5无NAT192.168.72.115/24lvs-masterredhat 9.5ipvsadm,keepalivedNAT192.168.72.116/24 VIP 192.168.72.100/32lvs-backupredhat 9.5ipvsadm,keepalivedNAT192.168.72.117/24 VIP 192.168…...