mindquantum.core.gates.KrausChannel
- class mindquantum.core.gates.KrausChannel(name: str, kraus_op, **kwargs)[source]
A kraus channel.
Kraus channel accepts two or more 2x2 matrices as Kraus operator to construct custom (single-qubit) noise in quantum circuit.
Kraus channel applies noise as:
\[\epsilon(\rho) = \sum_{k=0}^{m-1} E_k \rho E_k^\dagger\]where \(\rho\) is quantum state as density matrix type; {\(E_k\)} is Kraus operator, and it should satisfy the completeness condition: \(\sum_k E_k^\dagger E_k = I\).
- Parameters
Examples
>>> from mindquantum.core.gates import KrausChannel >>> from mindquantum.core.circuit import Circuit >>> from cmath import sqrt >>> gamma = 0.5 >>> kmat0 = [[1, 0], [0, sqrt(1 - gamma)]] >>> kmat1 = [[0, sqrt(gamma)], [0, 0]] >>> amplitude_damping = KrausChannel('damping', [kmat0, kmat1]) >>> circ = Circuit() >>> circ += amplitude_damping.on(0) >>> print(circ) ╔═════════╗ q0: ──╢ damping ╟─── ╚═════════╝