mimiqcircuits.operations.noisechannel.standards.ampdamping

Classes

AmplitudeDamping(gamma)

One-qubit amplitude damping noise channel.

GeneralizedAmplitudeDamping(p, gamma)

One-qubit generalized amplitude damping noise channel.

class mimiqcircuits.operations.noisechannel.standards.ampdamping.GeneralizedAmplitudeDamping(p, gamma)[source]

Bases: krauschannel

One-qubit generalized amplitude damping noise channel.

The amplitude generalized damping channel is defined by the Kraus operators.

Kraus Matrices representation:

\[\begin{split}\operatorname E_1 = \sqrt{p} \begin{pmatrix} 1 & 0 \\ 0 & \sqrt{1-\gamma} \end{pmatrix} ,\quad \operatorname E_2 = \sqrt{p} \begin{pmatrix} 0 & \sqrt{\gamma} \\ 0 & 0 \end{pmatrix} ,\quad \operatorname E_3 = \sqrt{1-p} \begin{pmatrix} \sqrt{1-\gamma} & 0 \\ 0 & 1 \end{pmatrix} ,\quad \operatorname E_4 = \sqrt{1-p} \begin{pmatrix} 0 & 0 \\ \sqrt{\gamma} & 0 \end{pmatrix},\end{split}\]
Parameters:

gammagamma in [0,1].

Examples

>>> from mimiqcircuits import *
>>> c = Circuit()
>>> c.push(GeneralizedAmplitudeDamping(0.1,1), 0)
1-qubit circuit with 1 instruction:
└── GeneralizedAmplitudeDamping((0.1, 1)) @ q[0]
__init__(p, gamma)[source]
evaluate(d={})[source]
krausoperators()[source]

Returns the Kraus operators associated with the given Kraus channel.

This should be implemented for each specific channel.

Returns:

A list of matrices representing the Kraus operators.

Return type:

list

krausmatrices()[source]

Returns the Kraus matrices associated with the given Kraus channel.

A mixed unitary channel is written as:

\[\mathcal{E}(\rho) = \sum_k p_k U_k \rho U_k^\dagger,\]

where \(U_k\) are the unitary matrices returned by this function.

If the Kraus channel is parametric, the matrix elements are wrapped in a symengine or sympy object.

Returns:

A list of symengine matrices representing the Kraus operators.

Return type:

list

iswrapper()[source]
property num_qubits
property parnames
class mimiqcircuits.operations.noisechannel.standards.ampdamping.AmplitudeDamping(gamma)[source]

Bases: krauschannel

One-qubit amplitude damping noise channel.

The amplitude damping channel is defined by the Kraus operators .. seealso:: GeneralizedAmplitudeDamping()

Kraus Matrices representation:

\[\begin{split}\operatorname E_1 = \begin{pmatrix} 1 & 0 \\ 0 & \sqrt{1-\gamma} \end{pmatrix} ,\quad \operatorname E_2 = \begin{pmatrix} 0 & \sqrt{\gamma} \\ 0 & 0 \end{pmatrix},\end{split}\]
Parameters:

gammagamma in [0,1].

Examples

>>> from mimiqcircuits import *
>>> c = Circuit()
>>> c.push(AmplitudeDamping(0.1), 0)
1-qubit circuit with 1 instruction:
└── AmplitudeDamping(0.1) @ q[0]
__init__(gamma)[source]
evaluate(d={})[source]
krausoperators()[source]

Returns the Kraus operators associated with the given Kraus channel.

This should be implemented for each specific channel.

Returns:

A list of matrices representing the Kraus operators.

Return type:

list

krausmatrices()[source]

Returns the Kraus matrices associated with the given Kraus channel.

A mixed unitary channel is written as:

\[\mathcal{E}(\rho) = \sum_k p_k U_k \rho U_k^\dagger,\]

where \(U_k\) are the unitary matrices returned by this function.

If the Kraus channel is parametric, the matrix elements are wrapped in a symengine or sympy object.

Returns:

A list of symengine matrices representing the Kraus operators.

Return type:

list

iswrapper()[source]
property opname
property parnames