SuperAPI AI 工具集

cirq

智能体与模型

查看项目

更新于 10-21 16:20

技能介绍

用途

Cirq 是 Google Quantum AI 的开源框架,用于在 Python 中设计、模拟和运行量子电路,目标场景包括 NISQ 电路构建与优化、在 Google Quantum AI 处理器或合作方后端上运行任务、噪声建模与硬件门集编译、以及表征实验设计。若面向 IBM 硬件应改用 qiskit;若做带自动微分的量子机器学习应改用 pennylane;若做物理模拟应改用 qutip。

主要能力

  • 电路构建:支持 GridQubit、LineQubit、NamedQubit 等量子比特类型,单比特与双比特门、参数化门与操作、自定义门分解、以 moment 组织电路、标准电路模式(Bell 态、GHZ、QFT)、OpenQASM 与 JSON 导入导出,以及 qudit 与可观测量处理。
  • 模拟:精确模拟(态矢量、密度矩阵)、采样与测量、单参数与多参数扫描、含噪模拟、态直方图与可视化、量子虚拟机(QVM)、期望值与可观测量、性能优化。
  • 电路变换:Transformer 框架、门分解、电路优化(合并门、弹出 Z 门、丢弃可忽略操作)、面向硬件的编译、量子比特路由与 SWAP 插入、自定义 transformer、变换流水线。
  • 硬件集成:支持 Google Quantum AI(cirq-google,Sycamore、Weber、Willow 处理器,经 Quantum Engine,访问受限,需已批准的 GCP 项目)、IonQ(cirq-ionq)、Azure Quantum(azure-quantum[cirq],含 IonQ 与 Honeywell/Quantinuum 后端)、AQT(cirq-aqt)、Pasqal(cirq-pasqal)。涵盖设备表示、量子比特选择、认证、作业管理与硬件电路优化。
  • 噪声建模:噪声信道(去极化、振幅阻尼、相位阻尼)、噪声模型(常量、门相关、量子比特相关、热噪声)、向电路添加噪声、读出噪声、噪声表征(随机基准测试、XEB)、噪声可视化(热力图)、错误缓解技术。
  • 量子实验:实验设计模式、参数扫描与数据采集、ReCirq 框架结构、常见算法(VQE、QAOA、QPE)、数据分析与可视化、统计分析与保真度估计、并行数据采集。

使用方式

安装需 Python 3.11+,当前稳定版为 1.6.1(2025 年 8 月),各厂商包共享同一版本号。基础安装:

uv pip install "cirq==1.6.1"

硬件集成安装(为可复现性固定匹配版本):

Google Quantum Engine(需已批准的 GCP 项目访问权限)

uv pip install "cirq-google==1.6.1"

IonQ

uv pip install "cirq-ionq==1.6.1"

AQT (Alpine Quantum Technologies)

uv pip install "cirq-aqt==1.6.1"

Pasqal

uv pip install "cirq-pasqal==1.6.1"

Azure Quantum (IonQ, Honeywell/Quantinuum backends)

uv pip install "azure-quantum[cirq]"

开发期可省略版本固定以获取最新特性;生产或硬件运行时应将所有包固定到同一 Cirq 版本。

基础电路示例:

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'))

参数化电路示例:

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}")

适用场景

  • 在 Python 中构建、模拟或优化 NISQ 电路。
  • 在 Google Quantum AI 处理器(经 cirq-google)或合作方后端(IonQ、Azure Quantum、AQT、Pasqal)上运行作业。
  • 对噪声建模、编译到硬件门集,或设计表征实验。
  • 使用参数扫描、transformer 或 ReCirq 实验模式。

限制与注意事项

  • Google Quantum Engine 访问受限,需已批准的 GCP 项目。
  • 密度矩阵模拟复杂度为 O(2^2n),大系统内存消耗增长快,应优先使用态矢量模拟,仅在需要混合态或噪声时使用密度矩阵。
  • 硬件运行前应先在模拟器上测试,并依据校准数据选择最佳量子比特、针对目标硬件门集优化电路。
  • 版本相关细节可能过时,应以所安装版本的官方文档为准。
  • 涉及花钱、消耗共享 GPU 或云配额、触碰个人或患者数据、或不可撤销的操作前应先询问。

官方资源

  • 官方文档:https://quantumai.google/cirq
  • API 参考:https://quantumai.google/reference/python/cirq
  • 教程:https://quantumai.google/cirq/tutorials
  • 示例:https://github.com/quantumlib/Cirq/tree/main/examples
  • 版本策略:https://quantumai.google/cirq/dev/versions
  • ReCirq:https://github.com/quantumlib/ReCirq

相关技能

  • pennylane:硬件无关的量子机器学习框架,支持自动微分。
  • qiskit:使用 Qiskit 与 IBM Quantum Runtime 构建、模拟、转译和执行量子电路。