Skip to Content
文档UnitaryLab 模拟器用户手册编译与真机线路优化与编译

线路优化与编译

优化、转译和编译是三个不同阶段:优化减少或合并门,转译把门展开到指定门基,编译进一步选择机器并完成布局映射。三者都不会提交真机任务。

from unitarylab import Circuit qc = Circuit(2) qc.h(0) qc.cx(0, 1) optimized = qc.optimize(optimization_level=1) transpiled = qc.transpile(basis="default") compiled = qc.compile(provider="guodun", token="your-provider-token")

optimize() 和 transpile() 返回 Circuit。compile() 返回 CompilationResult,包含映射后的线路和 QCIS,但不会提交任务或消耗任务积分。compile() 支持 local、guodun 和 tianyan。

接口返回值主要参数
optimize(optimization_level=1)新 Circuit规则优化等级
transpile(gates_to_unroll=None, basis="default")新 Circuit目标门基和需要展开的门
compile(provider="local", machine=None, token=None)CompilationResult编译目标、机器与凭据

原线路不会因上述调用被原地改写。编译远端机器时可能需要凭据或查询机器信息,但不会创建硬件运行任务。

需要 OpenQASM 输入或精细配置时使用 QCompiler:

from unitarylab import QCompiler compiler = QCompiler() optimized = compiler.optimize(circuit_or_qasm) transpiled = compiler.transpile(qc, basis="default") compiled = compiler.compile(circuit_or_qasm, provider="guodun", token="your-provider-token")

QCompiler 还支持通过 CompileConfig 或配置字典统一设置优化、映射、硬件和执行选项。run(source, stop_at=..., start_from=...) 可控制流水线起止阶段。

CompilationResult

字段说明
circuit / mapped_circuit映射后的线路
executable目标机器可执行文本
executable_format可执行格式,例如 QCIS
optimized_circuit映射前的优化线路,可能为 None
machine所选机器信息
layout、final_layout初始与最终逻辑–物理布局
qasm中间 OpenQASM
stage_metadata各阶段结构化元数据

编译产物流为 raw_qasm -> optimized_qasm -> mapped_qcis。需要提交真实硬件时参见真机任务提交。

使用建议

  • 先在本地执行原线路,保存基准概率或期望值。
  • 优化和转译后比较门数、深度,并在小线路上比较矩阵或输出分布。
  • 硬件门基、耦合图和机器状态可能改变编译结果,不要缓存为永久通用产物。
  • token 不应写入文档、源代码或版本库;优先使用提供商支持的环境变量。

相关页面

最后更新于