qiskit.transpiler.generate_preset_pass_manager
qiskit.transpiler.generate_preset_pass_manager(optimization_level=2, backend=None, target=None, basis_gates=None, coupling_map=None, initial_layout=None, layout_method=None, routing_method=None, translation_method=None, scheduling_method=None, approximation_degree=1.0, seed_transpiler=None, unitary_synthesis_method='default', unitary_synthesis_plugin_config=None, hls_config=None, init_method=None, optimization_method=None, dt=None, qubits_initially_zero=True, *, _skip_target=False)
Generate a preset PassManager
This function is used to quickly generate a preset pass manager. Preset pass managers are the default pass managers used by the transpile() function. This function provides a convenient and simple method to construct a standalone PassManager object that mirrors what the transpile() function internally builds and uses.
The target constraints for the pass manager construction can be specified through a Target instance, a BackendV2 instance, or via loose constraints (basis_gates, coupling_map, or dt). The order of priorities for target constraints works as follows: if a target input is provided, it will take priority over any backend input or loose constraints. If a backend is provided together with any loose constraint from the list above, the loose constraint will take priority over the corresponding backend constraint. This behavior is summarized in the table below. The first column in the table summarizes the potential user-provided constraints, and each cell shows whether the priority is assigned to that specific constraint input or another input (target/backend(V1)/backend(V2)).
| User Provided | target | backend(V2) |
|---|---|---|
| basis_gates | target | basis_gates |
| coupling_map | target | coupling_map |
| dt | target | dt |
Parameters
-
optimization_level (int) –
The optimization level to generate a
StagedPassManagerfor. By default optimization level 2 is used if this is not specified. This can be 0, 1, 2, or 3. Higher levels generate potentially more optimized circuits, at the expense of longer transpilation time:- 0: no optimization
- 1: light optimization
- 2: heavy optimization
- 3: even heavier optimization
-
backend (Backend) – An optional backend object which can be used as the source of the default values for the
basis_gates,coupling_map, andtarget. If any of those other arguments are specified in addition tobackendthey will take precedence over the value contained in the backend. -
target (Target) – The
Targetrepresenting a backend compilation target. The following attributes will be inferred from this argument if they are not set:coupling_mapandbasis_gates. -
basis_gates (list) – List of basis gate names to unroll to (e.g:
['u1', 'u2', 'u3', 'cx']). -
coupling_map (CouplingMap orlist) –
Directed graph represented a coupling map. Multiple formats are supported:
CouplingMapinstance- List, must be given as an adjacency matrix, where each entry specifies all directed two-qubit interactions supported by backend, e.g:
[[0, 1], [0, 3], [1, 2], [1, 5], [2, 5], [4, 1], [5, 3]]
-
dt (float) – Backend sample time (resolution) in seconds. If
None(default) and a backend is provided,backend.dtis used. -
initial_layout (Layout | List[int]) – Initial position of virtual qubits on physical qubits.
-
layout_method (str) – The
Passto use for choosing initial qubit placement. Valid choices are'trivial','dense', and'sabre', representingTrivialLayout,DenseLayoutandSabreLayoutrespectively. This can also be the external plugin name to use for thelayoutstage of the outputStagedPassManager. You can see a list of installed plugins by usinglist_stage_plugins()with"layout"for thestage_nameargument. -
routing_method (str) – The pass to use for routing qubits on the architecture. Valid choices are
'basic','lookahead','sabre', and'none'representingBasicSwap,LookaheadSwap,SabreSwap, and erroring if routing is required respectively. This can also be the external plugin name to use for theroutingstage of the outputStagedPassManager. You can see a list of installed plugins by usinglist_stage_plugins()with"routing"for thestage_nameargument. -
translation_method (str) – The method to use for translating gates to basis gates. Valid choices
'translator','synthesis'representingBasisTranslator, andUnitarySynthesisrespectively. This can also be the external plugin name to use for thetranslationstage of the outputStagedPassManager. You can see a list of installed plugins by usinglist_stage_plugins()with"translation"for thestage_nameargument. -
scheduling_method (str) – The pass to use for scheduling instructions. Valid choices are
'alap'and'asap'. This can also be the external plugin name to use for theschedulingstage of the outputStagedPassManager. You can see a list of installed plugins by usinglist_stage_plugins()with"scheduling"for thestage_nameargument. -
approximation_degree (float) – Heuristic dial used for circuit approximation (1.0=no approximation, 0.0=maximal approximation).
-
seed_transpiler (int) – Sets random seed for the stochastic parts of the transpiler.
-
unitary_synthesis_method (str) – The name of the unitary synthesis method to use. By default
'default'is used. You can see a list of installed plugins withunitary_synthesis_plugin_names(). -
unitary_synthesis_plugin_config (dict) – An optional configuration dictionary that will be passed directly to the unitary synthesis plugin. By default this setting will have no effect as the default unitary synthesis method does not take custom configuration. This should only be necessary when a unitary synthesis plugin is specified with the
unitary_synthesis_methodargument. As this is custom for each unitary synthesis plugin refer to the plugin documentation for how to use this option. -
hls_config (HLSConfig) – An optional configuration class
HLSConfigthat will be passed directly toHighLevelSynthesistransformation pass. This configuration class allows to specify for various high-level objects the lists of synthesis algorithms and their parameters. -
init_method (str) – The plugin name to use for the
initstage of the outputStagedPassManager. By default an external plugin is not used. You can see a list of installed plugins by usinglist_stage_plugins()with"init"for the stage name argument. -
optimization_method (str) – The plugin name to use for the
optimizationstage of the outputStagedPassManager. By default an external plugin is not used. You can see a list of installed plugins by usinglist_stage_plugins()with"optimization"for thestage_nameargument. -
qubits_initially_zero (bool) – Indicates whether the input circuit is zero-initialized.
Returns
The preset pass manager for the given options
Return type
Raises
ValueError – if an invalid value for optimization_level is passed in.