qiskit.quantum_info.StabilizerState¶

class
StabilizerState
(data, validate=True)[source]¶ StabilizerState class. Stabilizer simulator using the convention from reference [1]. Based on the internal class
Clifford
.from qiskit import QuantumCircuit from qiskit.quantum_info import StabilizerState, Pauli # Bell state generation circuit qc = QuantumCircuit(2) qc.h(0) qc.cx(0, 1) stab = StabilizerState(qc) # Print the StabilizerState print(stab) # Calculate the StabilizerState measurement probabilities dictionary print (stab.probabilities_dict()) # Calculate expectation value of the StabilizerState print (stab.expectation_value(Pauli('ZZ')))
StabilizerState(StabilizerTable: ['+XX', '+ZZ']) {'00': 0.5, '11': 0.5} 1
References
S. Aaronson, D. Gottesman, Improved Simulation of Stabilizer Circuits, Phys. Rev. A 70, 052328 (2004). arXiv:quantph/0406196
Initialize a StabilizerState object.
 Parameters
(StabilizerState or Clifford or Pauli or QuantumCircuit or (data) – qiskit.circuit.Instruction): Data from which the stabilizer state can be constructed.
validate (boolean) – validate that the stabilizer state data is a valid Clifford.

__init__
(data, validate=True)[source]¶ Initialize a StabilizerState object.
 Parameters
(StabilizerState or Clifford or Pauli or QuantumCircuit or (data) – qiskit.circuit.Instruction): Data from which the stabilizer state can be constructed.
validate (boolean) – validate that the stabilizer state data is a valid Clifford.
Methods
__init__
(data[, validate])Initialize a StabilizerState object.
Return the conjugate of the operator.
copy
()Make a copy of current operator.
dims
([qargs])Return tuple of input dimension for specified subsystems.
evolve
(other[, qargs])Evolve a stabilizer state by a Clifford operator.
expand
(other)Return the tensor product stabilzier state other ⊗ self.
expectation_value
(oper[, qargs])Compute the expectation value of an operator.
is_valid
([atol, rtol])Return True if a valid StabilizerState.
measure
([qargs])Measure subsystems and return outcome and postmeasure state.
probabilities
([qargs, decimals])Return the subsystem measurement probability vector.
probabilities_dict
([qargs, decimals])Return the subsystem measurement probability dictionary.
purity
()Return the purity of the quantum state, which equals to 1, since it is always a pure state.
reset
([qargs])Reset state or subsystems to the 0state.
sample_counts
(shots[, qargs])Sample a dict of qubit measurement outcomes in the computational basis.
sample_memory
(shots[, qargs])Sample a list of qubit measurement outcomes in the computational basis.
seed
([value])Set the seed for the quantum state RNG.
tensor
(other)Return the tensor product stabilzier state self ⊗ other.
Convert state to matrix operator class
trace
()Return the trace of the stabilizer state as a density matrix, which equals to 1, since it is always a pure state.
Attributes
Return StabilizerState Clifford data
Return total state dimension.
Return the number of qubits if a Nqubit state or None otherwise.

property
clifford
¶ Return StabilizerState Clifford data

copy
()¶ Make a copy of current operator.

property
dim
¶ Return total state dimension.

dims
(qargs=None)¶ Return tuple of input dimension for specified subsystems.

evolve
(other, qargs=None)[source]¶ Evolve a stabilizer state by a Clifford operator.
 Parameters
other (Clifford or QuantumCircuit or qiskit.circuit.Instruction) – The Clifford operator to evolve by.
qargs (list) – a list of stabilizer subsystem positions to apply the operator on.
 Returns
the output stabilizer state.
 Return type
 Raises
QiskitError – if other is not a StabilizerState.
QiskitError – if the operator dimension does not match the specified StabilizerState subsystem dimensions.

expand
(other)[source]¶ Return the tensor product stabilzier state other ⊗ self.
 Parameters
other (StabilizerState) – a stabilizer state object.
 Returns
the tensor product operator other ⊗ self.
 Return type
 Raises
QiskitError – if other is not a StabilizerState.

expectation_value
(oper, qargs=None)[source]¶ Compute the expectation value of an operator.
 Parameters
oper (BaseOperator) – an operator to evaluate expval.
qargs (None or list) – subsystems to apply the operator on.
 Returns
the expectation value (only 0 or 1 or 1).
 Return type
complex

measure
(qargs=None)[source]¶ Measure subsystems and return outcome and postmeasure state.
Note that this function uses the QuantumStates internal random number generator for sampling the measurement outcome. The RNG seed can be set using the
seed()
method. Parameters
qargs (list or None) – subsystems to sample measurements for, if None sample measurement of all subsystems (Default: None).
 Returns
 the pair
(outcome, state)
whereoutcome
is the measurement outcome string label, and
state
is the collapsed postmeasurement stabilizer state for the corresponding outcome.
 the pair
 Return type
tuple

property
num_qubits
¶ Return the number of qubits if a Nqubit state or None otherwise.

probabilities
(qargs=None, decimals=None)[source]¶ Return the subsystem measurement probability vector.
Measurement probabilities are with respect to measurement in the computation (diagonal) basis.
 Parameters
qargs (None or list) – subsystems to return probabilities for, if None return for all subsystems (Default: None).
decimals (None or int) – the number of decimal places to round values. If None no rounding is done (Default: None).
 Returns
The Numpy vector array of probabilities.
 Return type
np.array

probabilities_dict
(qargs=None, decimals=None)[source]¶ Return the subsystem measurement probability dictionary.
Measurement probabilities are with respect to measurement in the computation (diagonal) basis.
This dictionary representation uses a Ketlike notation where the dictionary keys are qudit strings for the subsystem basis vectors. If any subsystem has a dimension greater than 10 comma delimiters are inserted between integers so that subsystems can be distinguished.
 Parameters
qargs (None or list) – subsystems to return probabilities for, if None return for all subsystems (Default: None).
decimals (None or int) – the number of decimal places to round values. If None no rounding is done (Default: None).
 Returns
The measurement probabilities in dict (ket) form.
 Return type
dict

purity
()[source]¶ Return the purity of the quantum state, which equals to 1, since it is always a pure state.
 Returns
the purity (should equal 1).
 Return type
double
 Raises
QiskitError – if input is not a StabilizerState.

reset
(qargs=None)[source]¶ Reset state or subsystems to the 0state.
 Parameters
qargs (list or None) – subsystems to reset, if None all subsystems will be reset to their 0state (Default: None).
 Returns
the reset state.
 Return type
 Additional Information:
If all subsystems are reset this will return the ground state on all subsystems. If only some subsystems are reset this function will perform a measurement on those subsystems and evolve the subsystems so that the collapsed postmeasurement states are rotated to the 0state. The RNG seed for this sampling can be set using the
seed()
method.

sample_counts
(shots, qargs=None)¶ Sample a dict of qubit measurement outcomes in the computational basis.
 Parameters
shots (int) – number of samples to generate.
qargs (None or list) – subsystems to sample measurements for, if None sample measurement of all subsystems (Default: None).
 Returns
sampled counts dictionary.
 Return type
Additional Information:
This function samples measurement outcomes using the measure
probabilities()
for the current state and qargs. It does not actually implement the measurement so the current state is not modified.The seed for random number generator used for sampling can be set to a fixed value by using the stats
seed()
method.

sample_memory
(shots, qargs=None)[source]¶ Sample a list of qubit measurement outcomes in the computational basis.
 Parameters
shots (int) – number of samples to generate.
qargs (None or list) – subsystems to sample measurements for, if None sample measurement of all subsystems (Default: None).
 Returns
list of sampled counts if the order sampled.
 Return type
np.array
Additional Information:

seed
(value=None)¶ Set the seed for the quantum state RNG.

tensor
(other)[source]¶ Return the tensor product stabilzier state self ⊗ other.
 Parameters
other (StabilizerState) – a stabilizer state object.
 Returns
the tensor product operator self ⊗ other.
 Return type
 Raises
QiskitError – if other is not a StabilizerState.