# qiskit.aqua.operators.legacy.WeightedPauliOperator¶

class WeightedPauliOperator(paulis, basis=None, z2_symmetries=None, atol=1e-12, name=None)[ソース]

Weighted Pauli Operator

パラメータ
• paulis (List[List[Union[complex, Pauli]]]) – the list of weighted Paulis, where a weighted pauli is composed of a length-2 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 non-grouping, each pauli is its own basis.

• z2_symmetries (Optional[Z2Symmetries]) – recording the z2 symmetries info

• atol (float) – the threshold used in truncating paulis

• name (Optional[str]) – the name of operator.

__init__(paulis, basis=None, z2_symmetries=None, atol=1e-12, name=None)[ソース]
パラメータ
• paulis (List[List[Union[complex, Pauli]]]) – the list of weighted Paulis, where a weighted pauli is composed of a length-2 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 non-grouping, each pauli is its own basis.

• z2_symmetries (Optional[Z2Symmetries]) – recording the z2 symmetries info

• atol (float) – the threshold used in truncating paulis

• name (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 . 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. 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. 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

 atol get atol basis returns basis name returns name num_qubits Number of qubits required for the operator. paulis get paulis z2_symmetries returns z2 symmetries
add(other, copy=False)[ソース]

Perform self + other.

パラメータ
• other (WeightedPauliOperator) – to-be-combined operator

• copy (bool) – working on a copy or self, if False, the results are written back to self.

operator

WeightedPauliOperator

anticommute_with(other)[ソース]

Anti commutes with

property atol

get atol

property basis

returns basis

chop(threshold=None, copy=False)[ソース]

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.

If weight is real-only, the imaginary part is skipped.

パラメータ
• threshold (float) – the threshold is used to remove the paulis

• copy (bool) – chop on a copy or self

if copy is True, the original operator is unchanged; otherwise,

the operator is mutated.

WeightedPauliOperator

commute_with(other)[ソース]

Commutes with

construct_evaluation_circuit(wave_function, statevector_mode, qr=None, cr=None, use_simulator_snapshot_mode=False, circuit_name_prefix='')[ソース]

Construct the circuits for evaluation, which calculating the expectation <psi|H|psi>.

At statevector mode: to simplify the computation, we do not build the whole circuit for <psi|H|psi>, instead of that we construct an individual circuit <psi|, and a bundle circuit for H|psi>

パラメータ
• 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

a list of quantum circuits and each circuit with a unique name:

circuit_name_prefix + Pauli string

list[QuantumCircuit]

• AquaError – if Operator is empty

• AquaError – if quantum register is not provided explicitly and cannot find quantum register with q as the name

• AquaError – The provided qr is not in the wave_function

copy()[ソース]

Get a copy of self

evaluate_with_result(result, statevector_mode, use_simulator_snapshot_mode=False, circuit_name_prefix='')[ソース]

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.

パラメータ
• 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

the mean value float: the standard deviation

float

AquaError – if Operator is empty

evaluate_with_statevector(quantum_state)[ソース]
パラメータ

quantum_state (numpy.ndarray) – a quantum state.

the mean value float: the standard deviation

float

AquaError – if Operator is empty

evaluation_instruction(statevector_mode, use_simulator_snapshot_mode=False)[ソース]
パラメータ
• 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

Pauli-instruction pair.

dict

evolve(state_in=None, evo_time=0, num_time_slices=1, quantum_registers=None, expansion_mode='trotter', expansion_order=1)[ソース]

Carry out the eoh evolution for the operator under supplied specifications.

パラメータ

The constructed circuit.

QuantumCircuit

• AquaError – quantum_registers must be in the provided state_in circuit

• AquaError – if operator is empty

evolve_instruction(evo_time=0, num_time_slices=1, expansion_mode='trotter', expansion_order=1)[ソース]

Carry out the eoh evolution for the operator under supplied specifications.

パラメータ

The constructed QuantumCircuit.

QuantumCircuit

• ValueError – Number of time slices should be a non-negative integer

• NotImplementedError – expansion mode not supported

• AquaError – if operator is empty

classmethod from_dict(dictionary, before_04=False)[ソース]

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}},
...
]
}

パラメータ
• dictionary (dict) – dictionary, which contains a list of Paulis and coefficients.

• before_04 (bool) – support the format before Aqua 0.4.

the operator created from the input dictionary.

WeightedPauliOperator

AquaError – Invalid dictionary

classmethod from_file(file_name, before_04=False)[ソース]

Load paulis in a file to construct an Operator.

パラメータ
• 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.

WeightedPauliOperator

classmethod from_list(paulis, weights=None, name=None)[ソース]

Create a WeightedPauliOperator via a pair of list.

パラメータ
• 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.

operator

WeightedPauliOperator

ValueError – The length of weights and paulis must be the same

is_empty()[ソース]

Check Operator is empty or not.

True if empty, False otherwise

bool

multiply(other)[ソース]

Perform self * other, and the phases are tracked.

パラメータ

other (WeightedPauliOperator) – an operator

the multiplied operator

WeightedPauliOperator

property name

returns name

property num_qubits

Number of qubits required for the operator.

number of qubits

int

property paulis

get paulis

print_details()[ソース]

Print out the operator in details.

a formatted string describes the operator.

str

reorder_paulis()[ソース]

Reorder the paulis based on the basis and return the reordered paulis.

List[List[Union[complex, Pauli]]]

the ordered paulis based on the basis.

rounding(decimals, copy=False)[ソース]

Rounding the weight.

パラメータ
• decimals (int) – rounding the weight to the decimals.

• copy (bool) – chop on a copy or self

operator

WeightedPauliOperator

simplify(copy=False)[ソース]

Merge the paulis whose bases are identical and the pauli with zero coefficient would be removed.

This behavior of this method is slightly changed, it will remove the paulis whose weights are zero.

パラメータ

copy (bool) – simplify on a copy or self

the simplified operator

WeightedPauliOperator

sub(other, copy=False)[ソース]

Perform self - other.

パラメータ
• other (WeightedPauliOperator) – to-be-combined operator

• copy (bool) – working on a copy or self, if False, the results are written back to self.

operator

WeightedPauliOperator

to_dict()[ソース]

Save operator to a dict in pauli representation.

a dictionary contains an operator with pauli representation.

dict

to_file(file_name)[ソース]

Save operator to a file in pauli representation.

パラメータ

file_name (str) – path to the file

to_opflow(reverse_endianness=False)[ソース]

to op flow

property z2_symmetries

returns z2 symmetries