mimiqcircuits.operations.noisechannel.standards.projectivenoise¶
Functions
|
Classes
|
Single qubit projection noise onto a Pauli basis. |
Single qubit projection noise onto an X Pauli basis. |
|
Single qubit projection noise onto a Y Pauli basis. |
|
Single qubit projection noise onto a Z Pauli basis. |
- class mimiqcircuits.operations.noisechannel.standards.projectivenoise.ProjectiveNoise(basis)[source]¶
Bases:
krauschannelSingle qubit projection noise onto a Pauli basis.
This channel is defined by the Kraus operators:
\[E_1 = |\alpha\rangle \langle\alpha|, \quad E_2 = |\beta\rangle \langle\beta|,\]where the states \(|\alpha\rangle\) and \(|\beta\rangle\) are the +1 and -1 eigenstates of a Pauli operator. Specifically, they correspond to \(\{ |0\rangle, |1\rangle \}\) (Z basis), \(\{ |+\rangle, |-\rangle \}\) (X basis), or \(\{ |y+\rangle, |y-\rangle \}\) (Y basis).
This operation is similar to measuring in the corresponding basis (X, Y, or Z), except that the outcome of the measurement is not stored, i.e., there is a loss of information.
- Parameters:
basis (str) – String or character that selects the Pauli basis, “X”, “Y”, or “Z”.
Examples
>>> from mimiqcircuits import * >>> c = Circuit() >>> c.push(ProjectiveNoise("Z"), 1) 2-qubit circuit with 1 instruction: └── ProjectiveNoiseZ @ q[1]
The Kraus matrices are given by:
>>> ProjectiveNoise("X").krausmatrices() [[0.5, 0.5] [0.5, 0.5] , [0.5, -0.5] [-0.5, 0.5] ]
>>> ProjectiveNoise("Y").krausmatrices() [[0.5, -0.0 - 0.5*I] [0.0 + 0.5*I, 0.5] , [0.5, 0.0 + 0.5*I] [-0.0 - 0.5*I, 0.5] ]
>>> ProjectiveNoise("Z").krausmatrices() [[1.0, 0] [0, 0] , [0, 0] [0, 1.0] ]
- 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:
- class mimiqcircuits.operations.noisechannel.standards.projectivenoise.ProjectiveNoiseX[source]¶
Bases:
krauschannelSingle qubit projection noise onto an X Pauli basis.
This channel is defined by the Kraus operators:
\[E_1 = |-\rangle \langle-|, \quad E_2 = |+\rangle \langle+|,\]where \(\ket{+}\) and \(\ket{-}\) are the eigenstates of Pauli X.
- class mimiqcircuits.operations.noisechannel.standards.projectivenoise.ProjectiveNoiseY[source]¶
Bases:
krauschannelSingle qubit projection noise onto a Y Pauli basis.
This channel is defined by the Kraus operators:
\[E_1 = |Y0\rangle \langle Y0|, \quad E_2 = |Y1\rangle \langle Y1|,\]where \(\ket{Y0}\) and \(\ket{Y1}\) are the eigenstates of Pauli Y.
- class mimiqcircuits.operations.noisechannel.standards.projectivenoise.ProjectiveNoiseZ[source]¶
Bases:
krauschannelSingle qubit projection noise onto a Z Pauli basis.
This channel is defined by the Kraus operators:
\[E_1 = |0\rangle \langle Z0|, \quad E_2 = |1\rangle \langle Z1|,\]where \(\ket{0}\) and \(\ket{1}\) are the eigenstates of Pauli Z.