Conventions for specifying channels and statesΒΆ
Channels and states are specified as NumPy array
objects, or as QuTip Qobj
objects. A state on a single
system \(X\) is represented as a complex NumPy array of dimensions
\(d_X \times d_X\). A state on several systems \(X, Y, Z\) is specified
as a NumPy array of dimension \(d_X d_Y d_Z \times d_X d_Y d_Z\). For
instance, the state \(|0\rangle\langle0|_X \otimes |{+}\rangle\langle{+}|_Y
\otimes |1\rangle\langle1|_Z\) be formed for instance as follows:
import numpy as np
rho_XYZ = np.kron(np.kron(np.array([[1,0],[0,0]]), np.array([[.5,.5],[.5,.5]])), np.array([[0,0],[0,1]]))
import qutip
rho2_XYZ = qutip.Qobj(
np.kron(np.kron(np.array([[1,0],[0,0]]), np.array([[.5,.5],[.5,.5]])), np.array([[0,0],[0,1]])),
dims=[[2,2,2],[2,2,2]]
)
Channels are specified by their non-normalized Choi matrix. That is, let \(\{ |k\rangle_X \}, \{ |\ell\rangle_Y \}\) denote the standard bases of the input and the output systems, let \(R\simeq X\) be a copy of \(X\), and define
Then the Channel \(\mathcal{E}_{X\to Y}\) is represented by its unnormalized Choi matrix
Using this convention, the application of a channel \(\mathcal{E}_{X\to Y}\) onto a state \(\sigma\) is computed as
where \(\sigma_X^T\) is the partial transpose of \(\sigma_X\) during which the system \(X\) is relabled as \(R\).
The unnormalized Choi matrix can be represented as a NumPy array
or as a qutip.Qobj
in the same way as states.