# How to find the Kraus operators from the process matrix?

I am trying to find the Kraus operator from process matrix.

For instance, suppose that for single qubit identity gate, I have the following process matrix:

   [[1.   , 0.   , 0.   , 0.   ],
[0.   , 0.937, 0.004, 0.005],
[0.023, 0.014, 0.935, 0.03 ],
[0.011, 0.009, 0.017, 0.983]]


From this process matrix, how can I find the Kraus operator(or is it possible to write Kraus operator from process matrix)?

P.S I watched the following steps and I am probably in the wrong way:

1)I started to write ideal process matrix by using definition of super operator. I found the linear map between initial and final density matrix for ideal process matrix As a result, I found:

   [[1., 0., 0., 0.],
[0., 1., 0., 0.],
[0., 0., 1., 0.],
[0., 0., 0., 1.]]


2)Then I started (actually I tried to write) to write the linear map between initial and final density matrix for actual process matrix. And my steps are :

• I wrote the kraus operator for single qubit:

$$∑k(a∗kI+b∗kX+c∗kY+d∗kZ)ρ(akI+bkX+ckY+dkZ)$$

• First and third term in this equation are equal and it corresponds to the following matrices:

/

[[a+d, b-ic],
[b+ic, a-d]]


and initial density matrix corresponds:

  [[rho00, rho01],
[rho10, rho11]]

• so the final density matrix corresponds:

/

[[(a + d)*(rho00*(a + d) + rho10*(b - 1.0*I*c)) + (b + 1.0*I*c)*(rho01*(a + d) + rho11*(b - 1.0*I*c))
(a - d)*(rho01*(a + d) + rho11*(b - 1.0*I*c)) + (b - 1.0*I*c)*(rho00*(a + d) + rho10*(b - 1.0*I*c))]
[(a + d)*(rho00*(b + 1.0*I*c) + rho10*(a - d)) + (b + 1.0*I*c)*(rho01*(b + 1.0*I*c) + rho11*(a - d))
(a - d)*(rho01*(b + 1.0*I*c) + rho11*(a - d)) + (b - 1.0*I*c)*(rho00*(b + 1.0*I*c) + rho10*(a - d))]]


Now the first row in my ideal and real process matrix has the same values: [1,0,0,0]. This means that my rho00 is actually in the same place. It gives me the following equation:

$$rho00 = (a + d)*(rho00*(a + d) + rho10*(b - 1.0*I*c)) + (b + 1.0*I*c)*(rho01*(a + d) + rho11*(b - 1.0*I*c))$$

And from this equation, I can say that b and c are equal 0 and a= 1 - d but I can't do anything else and I feel my way is wrong. Although I could find some thing, this is because of process matrix values came likely

• Jan 31, 2022 at 12:53

There might be a better way to do this (directly converting to Kraus operators from process matrix), but my suggestion would be to convert from the $$\chi$$ process matrix to the Choi matrix $$\mathcal{C}$$ $$\mathcal{C} = \sum_{i,j}\chi_{mn}|\mathcal{P}_m\rangle\rangle\langle\langle\mathcal{P}_n|,$$ where $$|\mathcal{P}_n\rangle\rangle$$ is the superket representation of the $$N$$-qubit Pauli operator $$\mathcal{P}_n \in \{I, X, Y, Z \}^{\otimes N}$$. We can then use $$\mathcal{C}$$ to find its eigenvalues $$\lambda_i$$ and eigenvectors $$|M_i\rangle\rangle$$, where $$|M_i\rangle\rangle$$ is the superket representation of the Kraus operators $$M_i$$.
If you're doing this numerically, there are packages that can do this for you, for example the function chi2kraus in forest-benchmarking.
• Sorry about the package struggles, I'm sure there are other options out there that might work best for you. Qutip also does superoperator operations, so you can dig around in there. The Choi matrix $\mathcal{C}$ is related to the chi matrix $\chi$ by a change of basis, where the $\mathcal{C}$ matrix is in the computational basis, and the $\chi$ matrix is in the Pauli basis. And sorry about the confusion in language, I'm used to using the term "diagonalize" to mean "find the eigensystem". But I'm not actually familiar with the diagonalizability of the Choi matrix. Feb 2, 2022 at 18:04