Cirq 量子计算实战指南:电路构建、模拟与硬件执行全解析(基于 agentic-awesome-skills 技能文档)
2026/9/24 16:38:49 网站建设 项目流程
  • AI 技能
  • AI 插件

【免费下载链接】agentic-awesome-skills

AAS Core is the local, agent-first control plane for complete catalog discovery, agent-owned selection, stack validation, and planning, backed by 2,445+ agentic skills. Includes CLI, local MCP, catalog, plugins, and Workbench.

项目地址:https://gitcode.com/gh_mirrors/an/agentic-awesome-skills
点击查看免费下载

导读

本文以 agentic-awesome-skills 仓库中 cirq 技能文档 为骨架,系统讲解 Google Quantum AI 开源框架 Cirq 在量子电路设计、模拟、变换与硬件执行方面的完整用法。读完本文,你将掌握用 Python 编写并模拟含参量子电路、接入 Google/IonQ/Azure 等真实量子后端,以及用变分算法、噪声研究等模板搭建可复用的量子实验工作流的实战能力。

该技能在 AAS 目录中被归类为science类别,风险等级为critical,同时支持 Codex 与 Claude 两类 Agent 目标(见 catalog.json 与 skills_index.json 中的 cirq 条目),安装方式为免配置(setup type 为none)。

适用场景

Cirq 是 Google Quantum AI 的开源框架,用于在量子计算机和模拟器上设计、模拟与运行量子电路。以下场景适合启用该技能:

  • 你正在使用 Cirq 生态体系设计、模拟或执行量子电路;
  • 你需要 Google Quantum AI 风格的量子原语、参数化电路,或cirq-googlecirq-ionq等硬件集成扩展;
  • 你正在 Python 环境中进行量子工作流的原型开发或教学,需要可直接运行的具体电路示例。

安装与硬件后端配置

基础安装只需一行命令:

uv pip install cirq

如果需要在真实量子硬件上运行,需要按后端分别安装对应的集成包:

# Google Quantum Engine uv pip install cirq-google # IonQ uv pip install cirq-ionq # AQT (Alpine Quantum Technologies) uv pip install cirq-aqt # Pasqal uv pip install cirq-pasqal # Azure Quantum uv pip install azure-quantum cirq

其中cirq-google面向 Google 的 Sycamore、Weber 等处理器,cirq-ionq面向离子阱量子计算机,cirq-aqt对接 Alpine Quantum Technologies,cirq-pasqal对接中性原子量子计算机,而azure-quantum则通过 Azure Quantum 云服务统一访问 IonQ 与 Honeywell(Quantinuum)等后端。安装时建议在虚拟环境中使用uvpip管理依赖,确保 NumPy、SciPy、SymPy 等科学计算依赖版本兼容。

快速上手:从基本电路到参数扫描

基本电路:Hadamard + CNOT

以下代码创建两个量子比特,构建一个"贝尔态制备"式的基本电路,并执行 1000 次测量采样:

import cirq import numpy as np # Create qubits q0, q1 = cirq.LineQubit.range(2) # Build circuit circuit = cirq.Circuit( cirq.H(q0), # Hadamard on q0 cirq.CNOT(q0, q1), # CNOT with q0 control, q1 target cirq.measure(q0, q1, key='result') ) print(circuit) # Simulate simulator = cirq.Simulator() result = simulator.run(circuit, repetitions=1000) # Display results print(result.histogram(key='result'))

逐段解读:

  • cirq.LineQubit.range(2)创建编号为 0、1 的两个一维线性量子比特。Cirq 还提供GridQubit(二维网格拓扑,贴合超导芯片布局)与NamedQubit(任意命名的抽象比特)等类型,应根据目标器件拓扑选择;
  • cirq.H(q0)在 q0 上施加 Hadamard 门,将 |0⟩ 变为叠加态 (|0⟩+|1⟩)/√2;cirq.CNOT(q0, q1)以 q0 为控制位、q1 为目标位施加受控非门,从而在 q0、q1 之间建立纠缠;
  • cirq.measure(q0, q1, key='result')用描述性键result标记测量,便于后续从结果中按键取出直方图;
  • cirq.Simulator()是精确态矢量模拟器,run(..., repetitions=1000)做 1000 次采样,result.histogram(key='result')返回各测量结果的频数分布。

参数化电路与参数扫描

量子变分类算法(如 VQE、QAOA)的核心是参数化电路。Cirq 使用 SymPy 符号定义可调参数,并用Linspace等扫描器批量求值:

import sympy # Define symbolic parameter theta = sympy.Symbol('theta') # Create parameterized circuit circuit = cirq.Circuit( cirq.ry(theta)(q0), cirq.measure(q0, key='m') ) # Sweep over parameter values sweep = cirq.Linspace('theta', start=0, stop=2*np.pi, length=20) results = simulator.run_sweep(circuit, params=sweep, repetitions=1000) # Process results for params, result in zip(sweep, results): theta_val = params['theta'] counts = result.histogram(key='m') print(f"θ={theta_val:.2f}: {counts}")

这里cirq.ry(theta)(q0)生成绕 Y 轴旋转 θ 的单比特门,θ 是 SymPy 符号;cirq.Linspace('theta', start=0, stop=2*np.pi, length=20)在 [0, 2π] 上均匀取 20 个点;simulator.run_sweep(circuit, params=sweep, repetitions=1000)一次性完成 20 组参数的并行采样,比逐个run更高效。输出按 θ 值打印对应的测量直方图,可直接观察旋转角与测量概率之间的周期关系。

核心能力全景

该技能文档将 Cirq 的核心能力划分为六大模块,覆盖从电路设计到实验分析的完整链路。

电路构建(Circuit Building)

电路构建是 Cirq 的根基,涉及以下主题:

  • 量子比特类型GridQubitLineQubitNamedQubit,分别对应芯片网格拓扑、线性链拓扑与抽象命名场景;
  • 单比特与双比特门:如 H、X、Y、Z、Rx/Ry/Rz、CNOT、CZ、SWAP 等;
  • 参数化门与操作:通过 SymPy 符号把角度等参数注入门操作,供后续扫描或经典优化器迭代;
  • 自定义门分解:通过定义 Gate/Operation 子类并实现_decompose_,把高层门展开为底层原生门集合;
  • 用 Moment 组织电路cirq.Circuit内部按时序切片(Moment)组织操作,同一 Moment 内的操作互不依赖、可并行执行,这是 Cirq 电路模型的独有优势;
  • 标准电路模板:贝尔态、GHZ 态、量子傅里叶变换(QFT)等经典模式;
  • 导入导出:支持 OpenQASM、JSON 等格式,便于与其他工具链互操作;
  • qudit 与可观测量:除 qubit 外还支持更高维度的 qudit,以及cirq.PauliSum等可观测量定义。

模拟(Simulation)

模拟是硬件资源稀缺时代验证算法正确性的首选手段,核心主题包括:

  • 精确模拟:态矢量模拟(纯态,复杂度 O(2ⁿ))与密度矩阵模拟(混合态、噪声场景,复杂度 O(2²ⁿ));
  • 采样与测量run()返回采样结果,simulate()返回最终态矢量等完整状态信息;
  • 参数扫描:支持单参数与多参数联合扫描(LinspaceZipProduct等扫描器);
  • 噪声模拟DensityMatrixSimulator结合噪声模型模拟含噪声电路;
  • 态直方图与可视化:对测量结果做统计与绘图分析;
  • 量子虚拟机(QVM):模拟真实硬件的延迟、保真度与拓扑约束,实现"写一次、处处运行"的硬件对齐开发体验;
  • 期望值与可观测量:通过simulate_expectation_values直接计算 Pauli 算符期望值;
  • 性能优化:根据电路特性选择最优模拟器(如 Clifford 电路可用 stabilizer 模拟器大幅提速)。

电路变换(Circuit Transformation)

变换框架用于电路的优化、编译与改写,主题包括:

  • Transformer 框架cirq.transformers提供可组合、可复用的电路变换原语;
  • 门分解:将非原生门递归展开为目标门集;
  • 电路优化:合并相邻门(MergeSingleQubitGates)、弹出 Z 门(EjectZ)、丢弃可忽略的微小操作(DropNegligible)等;
  • 面向硬件的编译:把电路编译到特定器件的原生门集与拓扑上;
  • 量子比特路由与 SWAP 插入:通过cirq_google.optimized_for_xmon等工具处理芯片连通性限制;
  • 自定义 Transformer 与变换流水线:通过Transformer协议组合多个变换步骤,形成可复用的编译管线。

硬件集成(Hardware Integration)

在真实硬件上运行电路是 Cirq 的最终价值所在,文档列出的受支持后端包括:

  • Google Quantum AIcirq-google):Sycamore、Weber 处理器;
  • IonQcirq-ionq):离子阱量子计算机;
  • Azure Quantumazure-quantum):IonQ 与 Honeywell 后端;
  • AQTcirq-aqt):Alpine Quantum Technologies;
  • Pasqalcirq-pasqal):中性原子量子计算机。

涉及的主题包括设备表示、量子比特选择、认证鉴权、作业管理与面向硬件的电路优化。

噪声建模(Noise Modeling)

含噪量子计算(NISQ)时代,噪声建模是评估真实性能的前提,主题包括:

  • 噪声信道:退极化(depolarizing)、振幅阻尼(amplitude damping)、相位阻尼(phase damping)等;
  • 噪声模型:恒定噪声、门特指噪声、比特特指噪声、热噪声等,可从cirq.NoiseModel派生自定义模型;
  • 向电路注入噪声:如circuit.with_noise(...)便捷方法;
  • 读出噪声:模拟测量阶段错误;
  • 噪声表征:随机基准测试(randomized benchmarking)、交叉熵基准(XEB)等;
  • 噪声可视化:以热力图等形式呈现噪声分布;
  • 纠错与缓解技术:误差缓解(error mitigation)手段,降低硬件噪声对结果的污染。

量子实验(Quantum Experiments)

将以上能力组织成可复现的实验,主题包括:

  • 实验设计模式:清晰划分数据生成、采集与分析三个阶段;
  • 参数扫描与数据采集:批量扫描参数并规范记录结果;
  • ReCirq 框架结构:Google 维护的可复现量子实验框架,强调实验的可重复性与元数据完备性;
  • 常见算法:VQE(变分量子本征求解器)、QAOA(量子近似优化算法)、QPE(量子相位估计);
  • 数据分析与可视化:对采样数据做统计处理与绘图;
  • 统计分析与保真度估计:从有限采样中估计态保真度与置信区间;
  • 并行数据采集:对相互独立的任务并行化,缩短实验总时长。

常用实战模板

技能文档提供了三个可直接改造使用的模板,是搭建量子应用的最佳起点。

变分算法模板(VQE/QAOA 骨架)

import scipy.optimize def variational_algorithm(ansatz, cost_function, initial_params): """Template for variational quantum algorithms.""" def objective(params): circuit = ansatz(params) simulator = cirq.Simulator() result = simulator.simulate(circuit) return cost_function(result) # Optimize result = scipy.optimize.minimize( objective, initial_params, method='COBYLA' ) return result # Define ansatz def my_ansatz(params): q = cirq.LineQubit(0) return cirq.Circuit( cirq.ry(params[0])(q), cirq.rz(params[1])(q) ) # Define cost function def my_cost(result): state = result.final_state_vector # Calculate cost based on state return np.real(state[0]) # Run optimization result = variational_algorithm(my_ansatz, my_cost, [0.0, 0.0])

该模板的核心思想是:由经典优化器(此处为 SciPy 的COBYLA,适合无梯度黑盒优化)反复调用量子模拟器,把"参数 → 电路 → 目标函数值"闭环起来。实战中,my_ansatz可以替换为任意层数的纠缠参量线路,my_cost可以替换为哈密顿量期望值等真实目标函数。

硬件执行模板

def run_on_hardware(circuit, provider='google', device_name='weber', repetitions=1000): """Template for running on quantum hardware.""" if provider == 'google': import cirq_google engine = cirq_google.get_engine() processor = engine.get_processor(device_name) job = processor.run(circuit, repetitions=repetitions) return job.results()[0] elif provider == 'ionq': import cirq_ionq service = cirq_ionq.Service() result = service.run(circuit, repetitions=repetitions, target='qpu') return result elif provider == 'azure': from azure.quantum.cirq import AzureQuantumService # Setup workspace... service = AzureQuantumService(workspace) result = service.run(circuit, repetitions=repetitions, target='ionq.qpu') return result else: raise ValueError(f"Unknown provider: {provider}")

该模板展示了统一接口调用多后端的能力:Google 侧通过get_engine()get_processor(name)获取处理器并提交作业;IonQ 侧通过Service().run(..., target='qpu')提交到 QPU;Azure 侧则通过AzureQuantumService(workspace)连接云工作区后以target='ionq.qpu'指定后端。注意:真实运行前需要完成各平台的认证配置(API Key、凭据或 Azure 工作区参数),且应先在模拟器上验证电路再提交硬件。

噪声对比研究模板

def noise_comparison_study(circuit, noise_levels): """Compare circuit performance at different noise levels.""" results = {} for noise_level in noise_levels: # Create noisy circuit noisy_circuit = circuit.with_noise(cirq.depolarize(p=noise_level)) # Simulate simulator = cirq.DensityMatrixSimulator() result = simulator.run(noisy_circuit, repetitions=1000) # Analyze results[noise_level] = { 'histogram': result.histogram(key='result'), 'dominant_state': max( result.histogram(key='result').items(), key=lambda x: x[1] ) } return results # Run study noise_levels = [0.0, 0.001, 0.01, 0.05, 0.1] results = noise_comparison_study(circuit, noise_levels)

模板用circuit.with_noise(cirq.depolarize(p=noise_level))按不同退极化率注入噪声,再以密度矩阵模拟器(能刻画混合态)逐级测量,最后统计各噪声水平下的主导测量态。噪声水平从 0 逐步增加到 0.1,可以直观看到纠缠态随噪声退相干、保真度下降的过程,是评估算法噪声鲁棒性的通用工具。

最佳实践清单

技能文档归纳了六大类最佳实践,值得在工程中逐条落实:

  1. 电路设计

    • 按目标拓扑选择合适的量子比特类型;
    • 保持电路模块化、可复用(将 ansatz 封装为可调用函数);
    • 用描述性键标记测量(如key='result'),避免结果混淆;
    • 在提交执行前用器件约束校验电路合法性。
  2. 模拟

    • 纯态优先用态矢量模拟(更高效);
    • 仅当需要混合态或噪声时才用密度矩阵模拟;
    • 用参数扫描替代逐点运行,减少调度开销;
    • 监控大系统内存:态矢量规模按 2ⁿ 增长,极易撑爆内存。
  3. 硬件执行

    • 始终先在模拟器上验证;
    • 依据校准数据挑选最优量子比特;
    • 将电路优化到目标硬件的原生门集;
    • 生产级运行必须配合误差缓解;
    • 硬件结果昂贵,取回后立即持久化保存。
  4. 电路优化

    • 优先使用内建的高层 Transformer;
    • 按序串联多个优化步骤形成流水线;
    • 跟踪深度与门数量的削减幅度;
    • 变换后必须验证结果正确性(与变换前对照)。
  5. 噪声建模

    • 从校准数据出发构建贴近现实的噪声模型;
    • 覆盖所有误差源:门误差、退相干、读出误差;
    • 先表征(characterize)再缓解(mitigate);
    • 保持电路浅层,减少噪声累积。
  6. 实验管理

    • 实验结构清晰分层:数据生成、采集、分析分离;
    • 借鉴 ReCirq 模式保证可复现性;
    • 频繁保存中间结果;
    • 对独立任务并行化;
    • 用元数据完整记录实验参数与环境。

常见问题排查

  • 电路对硬件而言过深:使用电路优化 Transformer 降低深度;查阅变换框架章节选用MergeSingleQubitGatesEjectZDropNegligible等优化手段。
  • 模拟内存不足:从密度矩阵模拟器切换为态矢量模拟器;减少量子比特数;对 Clifford 电路改用 stabilizer 模拟器(线性复杂度)。
  • 设备校验错误:通过device.metadata.nx_graph检查量子比特连通性;将门分解到器件原生门集;使用面向特定器件的编译工具。
  • 噪声模拟过慢:密度矩阵模拟复杂度为 O(2²ⁿ),考虑减少比特数;只对关键操作选择性施加噪声模型,而非全电路注入。

技能使用边界

该技能在 AAS 中标注为critical风险等级(见 catalog.json 中 cirq 条目),使用时需注意:

  • 仅在任务明确匹配上述范围时启用该技能;
  • 输出不能替代针对具体环境的验证、测试或专家评审;
  • 当必要输入、权限、安全边界或成功标准缺失时,应停下来向用户确认,而不是擅自假设。

在 AAS 仓库中的定位与索引

作为 AAS 技能目录的一员,cirq 技能在仓库中有两处同步的 SKILL.md 副本:skills/cirq/SKILL.md(根级技能集)与 plugins/agentic-awesome-skills-claude/skills/cirq/SKILL.md(Claude 插件版)。元数据层面,skills_index.json 与 catalog.json 将其登记为:类别science、来源community、许可证 Apache-2.0、加入日期 2026-09-04,并同时支持 Codex 与 Claude 两种 Agent 目标,且无额外安装配置(setup type 为none),即安装技能包后即可直接调用。技能作者为 K-Dense Inc.,触发词覆盖cirqquantumcircuitsimulator等量子计算相关关键词,方便 Agent 在匹配任务时自动检索与引用。

  • AI 技能
  • AI 插件

【免费下载链接】agentic-awesome-skills

AAS Core is the local, agent-first control plane for complete catalog discovery, agent-owned selection, stack validation, and planning, backed by 2,445+ agentic skills. Includes CLI, local MCP, catalog, plugins, and Workbench.

项目地址:https://gitcode.com/gh_mirrors/an/agentic-awesome-skills
点击查看免费下载
上一篇:AMD Ryzen硬件调试指南:3步解锁处理器隐藏性能
下一篇:3 步给管理面板加上 refine 实时搜索与高级过滤

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询