CSP Layout 是否总是 qiskit transpiler 用于映射量子电路的第一个算法?
Is CSP Layout always the first algorithm used by qiskit transpiler to map quantum circuit?
我正在使用 Qiskit transpile
和 optimization_level=3
。我想知道 CSP 布局选择器是否总是 Qiskit 尝试的第一个算法,如果我设置为 layout_method='noise_adaptive'
或其他方法。
如果不是,如何强制转译器使用 CSP 布局选择器?我尝试使用 layout_method='csp_layout'
,但出现以下异常:
qiskit.transpiler.exceptions.TranspilerError: 'Invalid layout method csp_layout.
对于 Qiskit 0.23 或更早版本 (qiskit-terra 0.16)
答案是是,即使提供了layout_method
,CSPLayout
也会运行处于优化级别2或更高级别。
此文件构建了优化级别 3 的传递管理器:
https://github.com/Qiskit/qiskit-terra/blob/master/qiskit/transpiler/preset_passmanagers/level3.py
目前,布局选择器的首选始终是 CSPLayout(coupling_map, call_limit=10000, time_limit=60)
,layout_method
的可能选项(如果 CSP 布局未找到解决方案)是 'trivial'
、'dense'
、'noise_adaptive'
和 'sabre'
.
对于 Qiskit 0.24 或更高版本 (qiskit-terra 0.17)
随着PR #5495的合并,答案是这取决于。 CSPLayout
运行 级别 2 和 3。如果提供 layout_method
,则将使用该方法。
我正在使用 Qiskit transpile
和 optimization_level=3
。我想知道 CSP 布局选择器是否总是 Qiskit 尝试的第一个算法,如果我设置为 layout_method='noise_adaptive'
或其他方法。
如果不是,如何强制转译器使用 CSP 布局选择器?我尝试使用 layout_method='csp_layout'
,但出现以下异常:
qiskit.transpiler.exceptions.TranspilerError: 'Invalid layout method csp_layout.
对于 Qiskit 0.23 或更早版本 (qiskit-terra 0.16)
答案是是,即使提供了layout_method
,CSPLayout
也会运行处于优化级别2或更高级别。
此文件构建了优化级别 3 的传递管理器: https://github.com/Qiskit/qiskit-terra/blob/master/qiskit/transpiler/preset_passmanagers/level3.py
目前,布局选择器的首选始终是 CSPLayout(coupling_map, call_limit=10000, time_limit=60)
,layout_method
的可能选项(如果 CSP 布局未找到解决方案)是 'trivial'
、'dense'
、'noise_adaptive'
和 'sabre'
.
对于 Qiskit 0.24 或更高版本 (qiskit-terra 0.17)
随着PR #5495的合并,答案是这取决于。 CSPLayout
运行 级别 2 和 3。如果提供 layout_method
,则将使用该方法。