quri_parts.algo.ansatz.symmetry_preserving module#

class SymmetryPreserving(qubit_count, reps, entangler_map_seq=None)#

Bases: ImmutableLinearMappedUnboundParametricQuantumCircuit

Note

Simple Nakanishi-Fujii-Todo method of period 2pi does not work for this ansatz.

Ref:

Efficient Symmetry-Peserving State Preparation Circuits for the Variational Quantum Eigensolver Algorithm Bryan T. Gard, Linghua Zhu, George S. Barron, Nicholas J. Mayhall, Sophia E. Economou, Edwin Barnes, npj Quantum Inf 6, 10 (2020).

Parameters:
  • qubit_count (int) – number of qubits.

  • reps (int) – number of layers.

  • entangler_map_seq (Optional[Sequence[Sequence[tuple[int, int]]]]) – indices specifying on which qubits each entanglement layer acts.

Raises:

ValueError – if number of qubits is less than 2.

class SymmetryPreservingReal(qubit_count, reps, entangler_map_seq=None)#

Bases: SymmetryPreserving

This is an alternative of Symmetry Preserving Ansatz, whose RZ rotation is omitted.

Ref:

Yohei Ibe, Yuya O. Nakagawa, Nathan Earnest, Takahiro Yamamoto, Kosuke Mitarai, Qi Gao, and Takao Kobayashi, Calculating transition amplitudes by variational quantum deflation, Phys. Rev. Research 4, 013173 (2022).

Parameters:
  • qubit_count (int) – Number of qubits.

  • reps (int) – Number of layers.

  • entangler_map_seq (Optional[Sequence[Sequence[tuple[int, int]]]]) – Indices specifying on which qubits each entanglement layer acts.

Raises:

ValueError – if number of qubits is less than 2.