mindquantum.algorithm.library.qutrit_symmetric_ansatz#
- mindquantum.algorithm.library.qutrit_symmetric_ansatz(gate: UnivMathGate, basis: str = 'zyz', with_phase: bool = False) Circuit#
Construct a qubit ansatz that preserves the symmetry of encoding for arbitrary qutrit gate.
This function constructs a parameterized quantum circuit (ansatz) that can implement any qutrit gate while preserving the symmetry required by the qutrit-qubit mapping. The symmetry preservation means that states in the same symmetric subspace will maintain equal amplitudes after the gate operation.
For a single qutrit (mapped to 2 qubits), the symmetric subspaces are:
{¦00⟩} for qutrit state ¦0⟩
{(¦01⟩+¦10⟩)/√2} for qutrit state ¦1⟩
{¦11⟩} for qutrit state ¦2⟩
Reference: Synthesis of multivalued quantum logic circuits by elementary gates, Optimal synthesis of multivalued quantum circuits.
- Parameters:
gate (
UnivMathGate) – symmetry-preserving qubit gate encoded by qutrit gate.basis (str) – decomposition basis, can be one of
"zyz"or"u3". The ZYZ basis uses RZ and RY rotations, while the U3 basis uses the U3 gate. Default:"zyz".with_phase (bool) – whether return global phase in form of a
GlobalPhasegate on the qubit circuit. Default:False.
- Returns:
Circuit, qubit ansatz that preserves the symmetry of qutrit encoding.- Raises:
ValueError – If the input gate is not symmetric or if the number of qubits is not compatible with qutrit encoding (must be 2 or 4 qubits).
Examples
>>> from scipy.stats import unitary_group >>> from mindquantum.core.circuit import Circuit >>> from mindquantum.core.gates import UnivMathGate >>> from mindquantum.algorithm import qutrit_symmetric_ansatz, qudit_symmetric_encoding >>> qutrit_unitary = unitary_group.rvs(3) >>> qubit_unitary = qudit_symmetric_encoding(qutrit_unitary) >>> qubit_gate = UnivMathGate('U', qubit_unitary).on([0, 1]) >>> ansatz_circ = qutrit_symmetric_ansatz(qubit_gate)