[ PROMPT_NODE_27208 ]
Qiskit 设计模式
[ SKILL_DOCUMENTATION ]
# Qiskit 模式:四步工作流
Qiskit 模式提供了一个通用框架,用于在四个阶段解决领域特定的量子计算问题:映射 (Map)、优化 (Optimize)、执行 (Execute) 和后处理 (Post-process)。
## 概述
该模式框架支持量子能力的无缝组合,并支持异构计算基础设施 (CPU/GPU/QPU)。可以在本地、通过云服务或通过 Qiskit Serverless 执行。
## 四个步骤
问题 → [映射] → [优化] → [执行] → [后处理] → 解决方案
### 1. 映射
将经典问题转化为量子电路和算子
### 2. 优化
通过转译为目标硬件准备电路
### 3. 执行
使用原语在量子硬件上运行电路
### 4. 后处理
通过经典计算提取并细化结果
## 第 1 步:映射
### 目标
将领域特定问题转化为量子表示(电路、算子、哈密顿量)。
### 关键决策
**选择输出类型:**
- **Sampler (采样器)**:用于位串输出(优化、搜索)
- **Estimator (估计器)**:用于期望值(化学、物理)
**设计电路结构:**
python
from qiskit import QuantumCircuit
from qiskit.circuit import Parameter
import numpy as np
# 示例:用于 VQE 的参数化电路
def create_ansatz(num_qubits, depth):
qc = QuantumCircuit(num_qubits)
params = []
for d in range(depth):
# 旋转层
for i in range(num_qubits):
theta = Parameter(f'θ_{d}_{i}')
params.append(theta)
qc.ry(theta, i)
# 纠缠层
for i in range(num_qubits - 1):
qc.cx(i, i + 1)
return qc, params
ansatz, params = create_ansatz(num_qubits=4, depth=2)
### 注意事项
- **硬件拓扑**:设计时考虑后端的耦合图
- **门效率**:最小化双量子比特门
- **测量基**:确定所需的测量
### 领域特定示例
**化学:分子哈密顿量**
python
from qiskit_nature.second_q.drivers import PySCFDriver
from qiskit_nature.second_q.mappers import JordanWignerMapper
# 定义分子
driver = PySCFDriver(atom='H 0 0 0; H 0 0 0.735', basis='sto3g')
problem = driver.run()
# 映射到量子比特哈密顿量
mapper = JordanWignerMapper()
hamiltonian = mapper.map(problem.hamiltonian)
**优化:QAOA 电路**
python
from qiskit.circuit import QuantumCircuit, Parameter
def qaoa_circuit(graph, p):
"""创建 QAOA 电路用于