About cookies on this site Our websites require some cookies to function properly (required). In addition, other cookies may be used with your consent to analyze site usage, improve the user experience and for advertising. For more information, please review your options. By visiting our website, you agree to our processing of information as described in IBM’sprivacy statement. To provide a smooth navigation, your cookie preferences will be shared across the IBM web domains listed here.
Z2Symmetries
class qiskit.opflow.primitive_ops.Z2Symmetries(symmetries, sq_paulis, sq_list, tapering_values=None, tol=1e-14)
Bases: object
Deprecated: Z2 Symmetries
Deprecated since version 0.24.0
The class qiskit.opflow.primitive_ops.tapered_pauli_sum_op.Z2Symmetries
is deprecated as of qiskit-terra 0.24.0. It will be removed no earlier than 3 months after the release date. For code migration guidelines, visit https://qisk.it/opflow_migration.
Parameters
- symmetries (List[Pauli]) – the list of Pauli objects representing the Z_2 symmetries
- sq_paulis (List[Pauli]) – the list of single - qubit Pauli objects to construct the Clifford operators
- sq_list (List[int]) – the list of support of the single-qubit Pauli objects used to build the Clifford operators
- tapering_values (List[int] | None) – values determines the sector.
- tol (float) – Tolerance threshold for ignoring real and complex parts of a coefficient.
Raises
OpflowError – Invalid paulis
Attributes
cliffords
Get clifford operators, build based on symmetries and single-qubit X. :returns: a list of unitaries used to diagonalize the Hamiltonian.
settings
Return operator settings.
sq_list
returns sq list
sq_paulis
returns sq paulis
symmetries
return symmetries
tapering_values
returns tapering values
tol
Tolerance threshold for ignoring real and complex parts of a coefficient.
Methods
consistent_tapering
consistent_tapering(operator)
Tapering the operator with the same manner of how this tapered operator is created. i.e., using the same Cliffords and tapering values.
Parameters
operator (PauliSumOp) – the to-be-tapered operator
Returns
The tapered operator
Raises
OpflowError – The given operator does not commute with the symmetry
Return type
convert_clifford
convert_clifford(operator)
This method operates the first part of the tapering. It converts the operator by composing it with the clifford unitaries defined in the current symmetry.
Parameters
operator (PauliSumOp) – to-be-tapered operator
Returns
PauliSumOp
corresponding to the converted operator.
Raises
OpflowError – Z2 symmetries, single qubit pauli and single qubit list cannot be empty
Return type
copy
find_Z2_symmetries
classmethod find_Z2_symmetries(operator)
Finds Z2 Pauli-type symmetries of an Operator.
Returns
a z2_symmetries object contains symmetries, single-qubit X, single-qubit list.
Return type
is_empty
taper
taper(operator)
Taper an operator based on the z2_symmetries info and sector defined by tapering_values. The tapering_values will be stored into the resulted operator for a record.
The tapering is a two-step algorithm which first converts the operator into a PauliSumOp
with same eigenvalues but where some qubits are only acted upon with the Pauli operators I or X. The number M of these redundant qubits is equal to the number M of identified symmetries.
The second step of the reduction consists in replacing these qubits with the possible eigenvalues of the corresponding Pauli X, giving 2^M new operators with M less qubits. If an eigenvalue sector was previously identified for the solution, then this reduces to 1 new operator with M less qubits.
Parameters
operator (PauliSumOp) – the to-be-tapered operator
Returns
[PauliSumOp
]; otherwise, PauliSumOp
Return type
If tapering_values is None
Raises
OpflowError – Z2 symmetries, single qubit pauli and single qubit list cannot be empty
taper_clifford
taper_clifford(operator)
This method operates the second part of the tapering. This function assumes that the input operators have already been transformed using convert_clifford()
. The redundant qubits due to the symmetries are dropped and replaced by their two possible eigenvalues. The tapering_values will be stored into the resulted operator for a record.
Parameters
operator (PauliSumOp) – Partially tapered operator resulting from a call to convert_clifford()
Returns
[PauliSumOp
]; otherwise, PauliSumOp
Return type
If tapering_values is None
Raises
OpflowError – Z2 symmetries, single qubit pauli and single qubit list cannot be empty
Was this page helpful?
Report a bug or request content on GitHub.