Noise Models¶
Functions¶
append_kraus_to_gate (kraus_ops, gate_matrix) |
Follow a gate gate_matrix by a Kraus map described by kraus_ops . |
pauli_kraus_map (probabilities) |
Generate the Kraus operators corresponding to a pauli channel. |
damping_kraus_map ([p]) |
Generate the Kraus operators corresponding to an amplitude damping noise channel. |
dephasing_kraus_map ([p]) |
Generate the Kraus operators corresponding to a dephasing channel. |
tensor_kraus_maps (k1, k2) |
Generate the Kraus map corresponding to the composition of two maps on different qubits. |
combine_kraus_maps (k1, k2) |
Generate the Kraus map corresponding to the composition of two maps on the same qubits with k1 being applied to the state after k2. |
damping_after_dephasing (T1, T2, gate_time) |
Generate the Kraus map corresponding to the composition of a dephasing channel followed by an amplitude damping channel. |
get_noisy_gate (gate_name, params) |
Look up the numerical gate representation and a proposed ‘noisy’ name. |
_decoherence_noise_model (gates[, T1, T2, …]) |
The default noise parameters |
decoherence_noise_with_asymmetric_ro (gates) |
Similar to _decoherence_noise_model() , but with asymmetric readout. |
apply_noise_model (prog, noise_model) |
Apply a noise model to a program and generated a ‘noisy-fied’ version of the program. |
add_decoherence_noise (prog[, T1, T2, …]) |
Add generic damping and dephasing noise to a program. |
estimate_bitstring_probs (results) |
Given an array of single shot results estimate the probability distribution over all bitstrings. |
corrupt_bitstring_probs (p, …) |
Given a 2d array of true bitstring probabilities (outer axis iterates over shots, inner axis over bits) and a list of assignment probability matrices (one for each bit in the readout, ordered like the inner axis of results) compute the corrupted probabilities. |
bitstring_probs_to_z_moments (p) |
Convert between bitstring probabilities and joint Z moment expectations. |
estimate_assignment_probs (q, trials, cxn[, p0]) |
Estimate the readout assignment probabilities for a given qubit q . |
Classes¶
-
class
pyquil.noise.
NoiseModel
[source]¶ Encapsulate the QPU noise model containing information about the noisy gates.
Variables: - gates (Sequence[KrausModel]) – The tomographic estimates of all gates.
- assignment_probs (Dict[int,np.array]) – The single qubit readout assignment probability matrices keyed by qubit id.
Create new instance of _NoiseModel(gates, assignment_probs)
Methods
gates_by_name
(name)Return all defined noisy gates of a particular gate name. to_dict
()Create a JSON serializable representation of the noise model. from_dict
(d)Re-create the noise model from a dictionary representation.
-
class
pyquil.noise.
KrausModel
[source]¶ Encapsulate a single gate’s noise model.
Variables: - gate (str) – The name of the gate.
- params (Sequence[float]) – Optional parameters for the gate.
- targets (Sequence[int]) – The target qubit ids.
- kraus_ops (Sequence[np.array]) – The Kraus operators (must be square complex numpy arrays).
- fidelity (float) – The average gate fidelity associated with the Kraus map relative to the ideal operation.
Create new instance of _KrausModel(gate, params, targets, kraus_ops, fidelity)
Methods
unpack_kraus_matrix
(m)Helper to optionally unpack a JSON compatible representation of a complex Kraus matrix. unpack_kraus_matrix
(m)Helper to optionally unpack a JSON compatible representation of a complex Kraus matrix. to_dict
()Create a dictionary representation of a KrausModel. from_dict
(d)Recreate a KrausModel from the dictionary representation.