QVFitter
QVFitter(backend_result=None, statevector_result=None, qubit_lists=None)
Bases: object
Class for fitters for quantum volume.
Parameters
- backend_result (list) – list of results (qiskit.Result).
- statevector_result (list) – the ideal statevectors of each circuit
- qubit_lists (list) – list of qubit lists (what was passed to the circuit generation)
Methods
add_data
QVFitter.add_data(new_backend_result, rerun_fit=True)
Add a new result. Re calculate fit
Parameters
- new_backend_result (list) – list of qv results
- rerun_fit (bool) – re calculate the means and fit the result
Raises
QiskitError – If the ideal distribution isn’t loaded yet
Additional information:
Assumes that ‘result’ was executed is the output of circuits generated by qv_circuits,
add_statevectors
QVFitter.add_statevectors(new_statevector_result)
Add the ideal results and convert to the heavy outputs.
Assume the result is from ‘statevector_simulator’
Parameters
new_statevector_result (list) – ideal results
Raises
QiskitError – If the result has already been added for the circuit
calc_confidence_level
QVFitter.calc_confidence_level(z_value)
Calculate confidence level using z value.
Accumulative probability for standard normal distribution in [-z, +infinity] is 1/2 (1 + erf(z/sqrt(2))), where z = (X - mu)/sigma = (hmean - 2/3)/sigma
Parameters
z_value (float) – z value in in standard normal distibution.
Returns
confidence level in decimal (not percentage).
Return type
float
calc_data
QVFitter.calc_data()
calc_statistics
QVFitter.calc_statistics()
Convert the heavy outputs in the different trials into mean and error for plotting.
Here we assume the error is due to a binomial distribution. Error (standard deviation) for binomial distribution is sqrt(np(1-p)), where n is the number of trials (self._ntrials) and p is the success probability (self._ydata[0][depthidx]/self._ntrials).
calc_z_value
QVFitter.calc_z_value(mean, sigma)
Calculate z value using mean and sigma.
Parameters
- mean (float) – mean
- sigma (float) – standard deviation
Returns
z_value in standard normal distibution.
Return type
float
plot_hop_accumulative
QVFitter.plot_hop_accumulative(depth, ax=None, figsize=(7, 5))
Plot individual and accumulative heavy output probability (HOP) as a function of number of trials.
Parameters
- depth (int) – depth of QV circuits
- ax (Axes or None) – plot axis (if passed in).
- figsize (tuple) – figure size in inches.
Raises
ImportError – If matplotlib is not installed.
Returns
A figure of individual and accumulative HOP as a function of number of trials, with 2-sigma confidence interval and 2/3 threshold.
Return type
matplotlib.Figure
plot_qv_data
QVFitter.plot_qv_data(ax=None, show_plt=True, figsize=(7, 5), set_title=True, title=None)
Plot the qv data as a function of depth
Parameters
- ax (Axes or None) – plot axis (if passed in).
- show_plt (bool) – display the plot.
- figsize (tuple) – Figure size in inches.
- set_title (bool) – set figure title.
- title (String or None) – text for setting figure title
Raises
ImportError – If matplotlib is not installed.
Returns
A figure of Quantum Volume data (heavy output probability) with two-sigma error bar as a function of circuit depth.
Return type
matplotlib.Figure
plot_qv_trial
QVFitter.plot_qv_trial(depth, trial_index, figsize=(7, 5), ax=None)
Plot individual trial. :param depth: circuit depth :type depth: int :param trial_index: trial index :type trial_index: int :param figsize: Figure size in inches. :type figsize: tuple :param ax: plot axis (if passed in). :type ax: Axes or None
Returns
A figure for histogram of ideal and experiment probabilities.
Return type
matplotlib.Figure
quantum_volume
QVFitter.quantum_volume()
Return the volume for each depth.
Returns
List of quantum volumes
Return type
list
qv_success
QVFitter.qv_success()
Return whether each depth was successful (> 2/3 with confidence level > 0.977 corresponding to z_value = 2) and the confidence level.
Returns
List of list of 2 elements for each depth: - success True/False - confidence level
Return type
list
Attributes
depths
Return depth list.
heavy_output_counts
Return the number of heavy output counts as measured.
heavy_output_prob_ideal
Return the heavy output probability ideally.
heavy_outputs
Return the ideal heavy outputs dictionary.
qubit_lists
Return depth list.
results
Return all the results.
ydata
Return the average and std of the output probability.