qiskit-documentation/docs/api/qiskit/0.43/synthesis.mdx

88 lines
11 KiB
Plaintext
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
title: synthesis
description: API reference for qiskit.synthesis
in_page_toc_min_heading_level: 2
python_api_type: module
python_api_name: qiskit.synthesis
---
<span id="module-qiskit.synthesis" />
<span id="qiskit-synthesis" />
<span id="circuit-synthesis-qiskit-synthesis" />
# Circuit Synthesis
<span id="module-qiskit.synthesis" />
`qiskit.synthesis`
<span id="id1" />
## Evolution Synthesis
| | |
| ---------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------- |
| [`EvolutionSynthesis`](qiskit.synthesis.EvolutionSynthesis "qiskit.synthesis.EvolutionSynthesis")() | Interface for evolution synthesis algorithms. |
| [`ProductFormula`](qiskit.synthesis.ProductFormula "qiskit.synthesis.ProductFormula")(order\[, reps, ...]) | Product formula base class for the decomposition of non-commuting operator exponentials. |
| [`LieTrotter`](qiskit.synthesis.LieTrotter "qiskit.synthesis.LieTrotter")(\[reps, insert\_barriers, ...]) | The Lie-Trotter product formula. |
| [`SuzukiTrotter`](qiskit.synthesis.SuzukiTrotter "qiskit.synthesis.SuzukiTrotter")(\[order, reps, ...]) | The (higher order) Suzuki-Trotter product formula. |
| [`MatrixExponential`](qiskit.synthesis.MatrixExponential "qiskit.synthesis.MatrixExponential")() | Exact operator evolution via matrix exponentiation and unitary synthesis. |
| [`QDrift`](qiskit.synthesis.QDrift "qiskit.synthesis.QDrift")(\[reps, insert\_barriers, ...]) | The QDrift Trotterization method, which selects each each term in the Trotterization randomly, with a probability proportional to its weight. |
## Linear Function Synthesis
| | |
| ----------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------- |
| [`synth_cnot_count_full_pmh`](qiskit.synthesis.synth_cnot_count_full_pmh "qiskit.synthesis.synth_cnot_count_full_pmh")(state\[, section\_size]) | Synthesize linear reversible circuits for all-to-all architecture using Patel, Markov and Hayes method. |
| [`synth_cnot_depth_line_kms`](qiskit.synthesis.synth_cnot_depth_line_kms "qiskit.synthesis.synth_cnot_depth_line_kms")(mat) | Synthesize linear reversible circuit for linear nearest-neighbor architectures using Kutin, Moulton, Smithline method. |
## Linear-Phase Synthesis
| | |
| ------------------------------------------------------------------------------------------------------------------ | --------------------------------------------------------------------------------------------------------- |
| [`synth_cz_depth_line_mr`](qiskit.synthesis.synth_cz_depth_line_mr "qiskit.synthesis.synth_cz_depth_line_mr")(mat) | Synthesis of a CZ circuit for linear nearest neighbour (LNN) connectivity, based on Maslov and Roetteler. |
## Permutation Synthesis
| | |
| ------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------- |
| [`synth_permutation_depth_lnn_kms`](qiskit.synthesis.synth_permutation_depth_lnn_kms "qiskit.synthesis.synth_permutation_depth_lnn_kms")(pattern) | Synthesize a permutation circuit for a linear nearest-neighbor architecture using the Kutin, Moulton, Smithline method. |
| [`synth_permutation_basic`](qiskit.synthesis.synth_permutation_basic "qiskit.synthesis.synth_permutation_basic")(pattern) | Synthesize a permutation circuit for a fully-connected architecture using sorting. |
| [`synth_permutation_acg`](qiskit.synthesis.synth_permutation_acg "qiskit.synthesis.synth_permutation_acg")(pattern) | Synthesize a permutation circuit for a fully-connected architecture using the Alon, Chung, Graham method. |
## Clifford Synthesis
| | |
| -------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [`synth_clifford_full`](qiskit.synthesis.synth_clifford_full "qiskit.synthesis.synth_clifford_full")(clifford\[, method]) | Decompose a Clifford operator into a QuantumCircuit. |
| [`synth_clifford_ag`](qiskit.synthesis.synth_clifford_ag "qiskit.synthesis.synth_clifford_ag")(clifford) | Decompose a Clifford operator into a QuantumCircuit based on Aaronson-Gottesman method. |
| [`synth_clifford_bm`](qiskit.synthesis.synth_clifford_bm "qiskit.synthesis.synth_clifford_bm")(clifford) | Optimal CX-cost decomposition of a Clifford operator on 2-qubits or 3-qubits into a QuantumCircuit based on Bravyi-Maslov method. |
| [`synth_clifford_greedy`](qiskit.synthesis.synth_clifford_greedy "qiskit.synthesis.synth_clifford_greedy")(clifford) | Decompose a Clifford operator into a QuantumCircuit based on the greedy Clifford compiler that is described in Appendix A of Bravyi, Hu, Maslov and Shaydulin. |
| [`synth_clifford_layers`](qiskit.synthesis.synth_clifford_layers "qiskit.synthesis.synth_clifford_layers")(cliff\[, ...]) | Synthesis of a Clifford into layers, it provides a similar decomposition to the synthesis described in Lemma 8 of Bravyi and Maslov. |
| [`synth_clifford_depth_lnn`](qiskit.synthesis.synth_clifford_depth_lnn "qiskit.synthesis.synth_clifford_depth_lnn")(cliff) | Synthesis of a Clifford into layers for linear-nearest neighbour connectivity. |
## CNOTDihedral Synthesis
| | |
| ---------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- |
| [`synth_cnotdihedral_full`](qiskit.synthesis.synth_cnotdihedral_full "qiskit.synthesis.synth_cnotdihedral_full")(elem) | Decompose a CNOTDihedral element into a QuantumCircuit. |
| [`synth_cnotdihedral_two_qubits`](qiskit.synthesis.synth_cnotdihedral_two_qubits "qiskit.synthesis.synth_cnotdihedral_two_qubits")(elem) | Decompose a CNOTDihedral element on a single qubit and two qubits into a QuantumCircuit. |
| [`synth_cnotdihedral_general`](qiskit.synthesis.synth_cnotdihedral_general "qiskit.synthesis.synth_cnotdihedral_general")(elem) | Decompose a CNOTDihedral element into a QuantumCircuit. |
## Stabilizer State Synthesis
| | |
| ------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [`synth_stabilizer_layers`](qiskit.synthesis.synth_stabilizer_layers "qiskit.synthesis.synth_stabilizer_layers")(stab\[, ...]) | Synthesis of a stabilizer state into layers. |
| [`synth_stabilizer_depth_lnn`](qiskit.synthesis.synth_stabilizer_depth_lnn "qiskit.synthesis.synth_stabilizer_depth_lnn")(stab) | Synthesis of an n-qubit stabilizer state for linear-nearest neighbour connectivity, in 2-qubit depth 2\*n+2 and two distinct CX layers, using CX and phase gates (S, Sdg or Z). |
## Discrete Basis Synthesis
| | |
| ------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------- |
| [`SolovayKitaevDecomposition`](qiskit.synthesis.SolovayKitaevDecomposition "qiskit.synthesis.SolovayKitaevDecomposition")(\[...]) | The Solovay Kitaev discrete decomposition algorithm. |
| [`generate_basic_approximations`](qiskit.synthesis.generate_basic_approximations "qiskit.synthesis.generate_basic_approximations")(basis\_gates, depth) | Generates a list of `GateSequence``s with the gates in ``basic_gates`. |