SolovayKitaevSynthesis¶
- class SolovayKitaevSynthesis[source]¶
Bases:
qiskit.transpiler.passes.synthesis.plugin.UnitarySynthesisPlugin
A Solovay-Kitaev Qiskit unitary synthesis plugin.
This plugin is invoked by
transpile()
when theunitary_synthesis_method
parameter is set to"sk"
.This plugin supports customization and additional parameters can be passed to the plugin by passing a dictionary as the
unitary_synthesis_plugin_config
parameter of thetranspile()
function.Supported parameters in the dictionary:
- basis_approximations (str | dict):
The basic approximations for the finding the best discrete decomposition at the root of the recursion. If a string, it specifies the
.npy
file to load the approximations from. If a dictionary, it contains{label: SO(3)-matrix}
pairs. If None, a default based on the specifiedbasis_gates
anddepth
is generated.- basis_gates (list):
A list of strings specifying the discrete basis gates to decompose to. If None, defaults to
["h", "t", "tdg"]
.- depth (int):
The gate-depth of the the basic approximations. All possible, unique combinations of the basis gates up to length
depth
are considered. If None, defaults to 10.- recursion_degree (int):
The number of times the decomposition is recursively improved. If None, defaults to 3.
Methods
Run synthesis for the given unitary matrix
Attributes
- max_qubits¶
Maximum number of supported qubits is
1
.
- min_qubits¶
Minimum number of supported qubits is
1
.
- supported_bases¶
The plugin does not support bases for synthesis.
- supports_basis_gates¶
The plugin does not support basis gates. By default it synthesis to the
["h", "t", "tdg"]
gate basis.
- supports_coupling_map¶
The plugin does not support coupling maps.
- supports_gate_errors¶
The plugin does not support gate errors.
- supports_gate_lengths¶
The plugin does not support gate lengths.
- supports_natural_direction¶
The plugin does not support natural direction, it does not assume bidirectional two qubit gates.
- supports_pulse_optimize¶
The plugin does not support optimization of pulses.
- supports_target¶
Whether the plugin supports taking
target
as an optiontarget
will be aTarget
object representing the target device for the output of the synthesis pass.By default this will be
False
since the plugin interface predates theTarget
class. If a plugin returnsTrue
for this attribute, it is expected that the plugin will use theTarget
instead of the values passed if any ofsupports_gate_lengths
,supports_gate_errors
,supports_coupling_map
, andsupports_basis_gates
are set (although ideally all those parameters should contain duplicate information).