qiskit.aqua.operators.legacy.WeightedPauliOperator¶

class
WeightedPauliOperator
(paulis, basis=None, z2_symmetries=None, atol=1e12, name=None)[source]¶ Weighted Pauli Operator
 Parameters
paulis (
List
[List
[Union
[complex
,Pauli
]]]) – the list of weighted Paulis, where a weighted pauli is composed of a length2 list and the first item is the weight and the second item is the Pauli object.basis (
Optional
[List
[Tuple
[object
,List
[int
]]]]) – the grouping basis, each element is a tuple composed of the basis and the indices to paulis which belong to that group. e.g., if tpb basis is used, the object will be a pauli. By default, the group is equal to nongrouping, each pauli is its own basis.z2_symmetries (
Optional
[Z2Symmetries
]) – recording the z2 symmetries infoatol (
float
) – the threshold used in truncating paulisname (
Optional
[str
]) – the name of operator.

__init__
(paulis, basis=None, z2_symmetries=None, atol=1e12, name=None)[source]¶  Parameters
paulis (
List
[List
[Union
[complex
,Pauli
]]]) – the list of weighted Paulis, where a weighted pauli is composed of a length2 list and the first item is the weight and the second item is the Pauli object.basis (
Optional
[List
[Tuple
[object
,List
[int
]]]]) – the grouping basis, each element is a tuple composed of the basis and the indices to paulis which belong to that group. e.g., if tpb basis is used, the object will be a pauli. By default, the group is equal to nongrouping, each pauli is its own basis.z2_symmetries (
Optional
[Z2Symmetries
]) – recording the z2 symmetries infoatol (
float
) – the threshold used in truncating paulisname (
Optional
[str
]) – the name of operator.
Methods
__init__
(paulis[, basis, z2_symmetries, …]) type paulis
List
[List
[Union
[complex
,Pauli
]]]
add
(other[, copy])Perform self + other.
anticommute_with
(other)Anti commutes with
chop
([threshold, copy])Eliminate the real and imagine part of weight in each pauli by threshold.
commute_with
(other)Commutes with
construct_evaluation_circuit
(wave_function, …)Construct the circuits for evaluation, which calculating the expectation <psiHpsi>.
copy
()Get a copy of self
evaluate_with_result
(result, statevector_mode)This method can be only used with the circuits generated by the
construct_evaluation_circuit()
method with the same circuit_name_prefix name since the circuit names are tied to some meanings.evaluate_with_statevector
(quantum_state) param quantum_state
a quantum state.
evaluation_instruction
(statevector_mode[, …]) param statevector_mode
will it be run on statevector simulator or not
evolve
([state_in, evo_time, …])Carry out the eoh evolution for the operator under supplied specifications.
evolve_instruction
([evo_time, …])Carry out the eoh evolution for the operator under supplied specifications.
from_dict
(dictionary[, before_04])Load paulis from a dictionary to construct an Operator.
from_file
(file_name[, before_04])Load paulis in a file to construct an Operator.
from_list
(paulis[, weights, name])Create a WeightedPauliOperator via a pair of list.
is_empty
()Check Operator is empty or not.
multiply
(other)Perform self * other, and the phases are tracked.
Print out the operator in details.
Reorder the paulis based on the basis and return the reordered paulis.
rounding
(decimals[, copy])Rounding the weight.
simplify
([copy])Merge the paulis whose bases are identical and the pauli with zero coefficient would be removed.
sub
(other[, copy])Perform self  other.
to_dict
()Save operator to a dict in pauli representation.
to_file
(file_name)Save operator to a file in pauli representation.
to_opflow
([reverse_endianness])to op flow
Attributes
get atol
returns basis
returns name
Number of qubits required for the operator.
get paulis
returns z2 symmetries

add
(other, copy=False)[source]¶ Perform self + other.
 Parameters
other (WeightedPauliOperator) – tobecombined operator
copy (bool) – working on a copy or self, if False, the results are written back to self.
 Returns
operator
 Return type

property
atol
¶ get atol

property
basis
¶ returns basis

chop
(threshold=None, copy=False)[source]¶ Eliminate the real and imagine part of weight in each pauli by threshold. If pauli’s weight is less then threshold in both real and imaginary parts, the pauli is removed.
Note
If weight is realonly, the imaginary part is skipped.
 Parameters
threshold (float) – the threshold is used to remove the paulis
copy (bool) – chop on a copy or self
 Returns
 if copy is True, the original operator is unchanged; otherwise,
the operator is mutated.
 Return type

construct_evaluation_circuit
(wave_function, statevector_mode, qr=None, cr=None, use_simulator_snapshot_mode=False, circuit_name_prefix='')[source]¶ Construct the circuits for evaluation, which calculating the expectation <psiHpsi>.
At statevector mode: to simplify the computation, we do not build the whole circuit for <psiHpsi>, instead of that we construct an individual circuit <psi, and a bundle circuit for Hpsi>
 Parameters
wave_function (QuantumCircuit) – the quantum circuit.
statevector_mode (bool) – indicate which type of simulator are going to use.
qr (QuantumRegister, optional) – the quantum register associated with the input_circuit
cr (ClassicalRegister, optional) – the classical register associated with the input_circuit
use_simulator_snapshot_mode (bool, optional) – if aer_provider is used, we can do faster evaluation for pauli mode on statevector simulation
circuit_name_prefix (str, optional) – a prefix of circuit name
 Returns
 a list of quantum circuits and each circuit with a unique name:
circuit_name_prefix + Pauli string
 Return type
list[QuantumCircuit]
 Raises

evaluate_with_result
(result, statevector_mode, use_simulator_snapshot_mode=False, circuit_name_prefix='')[source]¶ This method can be only used with the circuits generated by the
construct_evaluation_circuit()
method with the same circuit_name_prefix name since the circuit names are tied to some meanings.Calculate the evaluated value with the measurement results.
 Parameters
result (qiskit.Result) – the result from the backend.
statevector_mode (bool) – indicate which type of simulator are used.
use_simulator_snapshot_mode (bool) – if aer_provider is used, we can do faster evaluation for pauli mode on statevector simulation
circuit_name_prefix (str) – a prefix of circuit name
 Returns
the mean value float: the standard deviation
 Return type
float
 Raises
AquaError – if Operator is empty

evaluate_with_statevector
(quantum_state)[source]¶  Parameters
quantum_state (numpy.ndarray) – a quantum state.
 Returns
the mean value float: the standard deviation
 Return type
float
 Raises
AquaError – if Operator is empty

evaluation_instruction
(statevector_mode, use_simulator_snapshot_mode=False)[source]¶  Parameters
statevector_mode (bool) – will it be run on statevector simulator or not
use_simulator_snapshot_mode (bool) – will it use qiskit aer simulator operator mode
 Returns
Pauliinstruction pair.
 Return type
dict
 Raises
AquaError – if Operator is empty
MissingOptionalLibraryError – qiskitaer not installed

evolve
(state_in=None, evo_time=0, num_time_slices=1, quantum_registers=None, expansion_mode='trotter', expansion_order=1)[source]¶ Carry out the eoh evolution for the operator under supplied specifications.
 Parameters
state_in (QuantumCircuit) – a circuit describes the input state
evo_time (Union(complex, float, Parameter, ParameterExpression)) – The evolution time
num_time_slices (int) – The number of time slices for the expansion
quantum_registers (QuantumRegister) – The QuantumRegister to build the QuantumCircuit off of
expansion_mode (str) – The mode under which the expansion is to be done. Currently support ‘trotter’, which follows the expansion as discussed in http://science.sciencemag.org/content/273/5278/1073, and ‘suzuki’, which corresponds to the discussion in https://arxiv.org/pdf/quantph/0508139.pdf
expansion_order (int) – The order for suzuki expansion
 Returns
The constructed circuit.
 Return type
 Raises

evolve_instruction
(evo_time=0, num_time_slices=1, expansion_mode='trotter', expansion_order=1)[source]¶ Carry out the eoh evolution for the operator under supplied specifications.
 Parameters
evo_time (Union(complex, float, Parameter, ParameterExpression)) – The evolution time
num_time_slices (int) – The number of time slices for the expansion
expansion_mode (str) – The mode under which the expansion is to be done. Currently support ‘trotter’, which follows the expansion as discussed in http://science.sciencemag.org/content/273/5278/1073, and ‘suzuki’, which corresponds to the discussion in https://arxiv.org/pdf/quantph/0508139.pdf
expansion_order (int) – The order for suzuki expansion
 Returns
The constructed QuantumCircuit.
 Return type
 Raises
ValueError – Number of time slices should be a nonnegative integer
NotImplementedError – expansion mode not supported
AquaError – if operator is empty

classmethod
from_dict
(dictionary, before_04=False)[source]¶ Load paulis from a dictionary to construct an Operator. The dictionary must comprise the key ‘paulis’ having a value which is an array of pauli dicts. Each dict in this array must be represented by label and coeff (real and imag) such as in the following example:
{'paulis': [ {'label': 'IIII', 'coeff': {'real': 0.33562957575267038, 'imag': 0.0}}, {'label': 'ZIII', 'coeff': {'real': 0.28220597164664896, 'imag': 0.0}}, ... ] }
 Parameters
dictionary (dict) – dictionary, which contains a list of Paulis and coefficients.
before_04 (bool) – support the format before Aqua 0.4.
 Returns
the operator created from the input dictionary.
 Return type
 Raises
AquaError – Invalid dictionary

classmethod
from_file
(file_name, before_04=False)[source]¶ Load paulis in a file to construct an Operator.
 Parameters
file_name (str) – path to the file, which contains a list of Paulis and coefficients.
before_04 (bool) – support the format before Aqua 0.4.
 Returns
the loaded operator.
 Return type

classmethod
from_list
(paulis, weights=None, name=None)[source]¶ Create a WeightedPauliOperator via a pair of list.
 Parameters
paulis (list[Pauli]) – the list of Paulis
weights (list[complex], optional) – the list of weights, if it is None, all weights are 1.
name (str, optional) – name of the operator.
 Returns
operator
 Return type
 Raises
ValueError – The length of weights and paulis must be the same

is_empty
()[source]¶ Check Operator is empty or not.
 Returns
True if empty, False otherwise
 Return type
bool

multiply
(other)[source]¶ Perform self * other, and the phases are tracked.
 Parameters
other (WeightedPauliOperator) – an operator
 Returns
the multiplied operator
 Return type

property
name
¶ returns name

property
num_qubits
¶ Number of qubits required for the operator.
 Returns
number of qubits
 Return type
int

property
paulis
¶ get paulis

print_details
()[source]¶ Print out the operator in details.
 Returns
a formatted string describes the operator.
 Return type
str

reorder_paulis
()[source]¶ Reorder the paulis based on the basis and return the reordered paulis.
 Return type
List
[List
[Union
[complex
,Pauli
]]] Returns
the ordered paulis based on the basis.

rounding
(decimals, copy=False)[source]¶ Rounding the weight.
 Parameters
decimals (int) – rounding the weight to the decimals.
copy (bool) – chop on a copy or self
 Returns
operator
 Return type

simplify
(copy=False)[source]¶ Merge the paulis whose bases are identical and the pauli with zero coefficient would be removed.
Note
This behavior of this method is slightly changed, it will remove the paulis whose weights are zero.
 Parameters
copy (bool) – simplify on a copy or self
 Returns
the simplified operator
 Return type

sub
(other, copy=False)[source]¶ Perform self  other.
 Parameters
other (WeightedPauliOperator) – tobecombined operator
copy (bool) – working on a copy or self, if False, the results are written back to self.
 Returns
operator
 Return type

to_dict
()[source]¶ Save operator to a dict in pauli representation.
 Returns
a dictionary contains an operator with pauli representation.
 Return type
dict

to_file
(file_name)[source]¶ Save operator to a file in pauli representation.
 Parameters
file_name (str) – path to the file

property
z2_symmetries
¶ returns z2 symmetries