Kraus¶
- class Kraus(data, input_dims=None, output_dims=None)[source]¶
Bases:
qiskit.quantum_info.operators.channel.quantum_channel.QuantumChannel
Kraus representation of a quantum channel.
For a quantum channel \(\mathcal{E}\), the Kraus representation is given by a set of matrices \([A_0,...,A_{K-1}]\) such that the evolution of a
DensityMatrix
\(\rho\) is given by\[\mathcal{E}(\rho) = \sum_{i=0}^{K-1} A_i \rho A_i^\dagger\]A general operator map \(\mathcal{G}\) can also be written using the generalized Kraus representation which is given by two sets of matrices \([A_0,...,A_{K-1}]\), \([B_0,...,A_{B-1}]\) such that
\[\mathcal{G}(\rho) = \sum_{i=0}^{K-1} A_i \rho B_i^\dagger\]See reference [1] for further details.
References
C.J. Wood, J.D. Biamonte, D.G. Cory, Tensor networks and graphical calculus for open quantum systems, Quant. Inf. Comp. 15, 0579-0811 (2015). arXiv:1111.6950 [quant-ph]
Initialize a quantum channel Kraus operator.
- Parameters
or (data (QuantumCircuit) – Instruction or BaseOperator or matrix): data to initialize superoperator.
input_dims (tuple) – the input subsystem dimensions. [Default: None]
output_dims (tuple) – the output subsystem dimensions. [Default: None]
- Raises
QiskitError – if input data cannot be initialized as a a list of Kraus matrices.
- Additional Information:
If the input or output dimensions are None, they will be automatically determined from the input data. If the input data is a list of Numpy arrays of shape (2**N, 2**N) qubit systems will be used. If the input does not correspond to an N-qubit channel, it will assign a single subsystem with dimension specified by the shape of the input.
Methods
Return the adjoint quantum channel.
Return the operator composition with another Kraus.
Return the conjugate quantum channel.
Make a deep copy of current operator.
Return the right multiplied operator self * other.
Return the reverse-order tensor product with another Kraus.
Return tuple of input dimension for specified subsystems.
Test if Choi-matrix is completely-positive (CP)
Return True if completely-positive trace-preserving.
Test if a channel is trace-preserving (TP)
Return True if QuantumChannel is a unitary channel.
Return tuple of output dimension for specified subsystems.
Return the power of the quantum channel.
Return a shallow copy with reshaped input and output subsystem dimensions.
Return the tensor product with another Kraus.
Convert to a Kraus or UnitaryGate circuit instruction.
Try to convert channel to a unitary representation Operator.
Return the transpose quantum channel.
Attributes
- atol = 1e-08¶
- data¶
Return list of Kraus matrices for channel.
- dim¶
Return tuple (input_shape, output_shape).
- num_qubits¶
Return the number of qubits if a N-qubit operator or None otherwise.
- qargs¶
Return the qargs for the operator.
- rtol = 1e-05¶
- settings¶
Return settings.