SPDX-FileCopyrightText: Copyright (C) 2020-2023 SM Shermer lw1660@gmail.com
SPDX-FileCopyrightText: Copyright (C) 2023 Sean Patrick O'Neil seanonei@usc.edu
SPDX-License-Identifier: CC-BY-SA-4.0
The implementation of quantum gates for multiple qubits using time-domain dynamic control, usually implemented in the form of piecewise constant control fields, is a core problem in quantum control. The differential sensitivity is a measure of robustness and can be used to derive performance bounds in particular for systems subject to model uncertainty that can be described by structured perturbations. This data set contains the results for differential sensitivity bounds for a set of dynamic gate control problems and the code to generate such results.
It had been originally computed for
[1] SP O'Neil, CA. Weidner, EA Jonckheere, FC Langbein, SG Schirmer (Shermer), Robustness of Dynamic Quantum Control: Differential Sensitivity Bounds [arXiv: 2401.00301]
based on theoretical results in
[2] SP O'Neil, E Jonckheere, S Schirmer, Sensitivity Bounds for Quantum Control and Time-Domain Performance Guarantees [arXiv: 2310.17094]
This repository is developed on qyber/black at https://qyber.black/spinnet/code-differential-sensitivity-bounds-for-dynamic-control.
Version 1.0.0: initial release for the paper
The files and figures in this project use the following notation:
problem# - problem identifier; # ranges from 1 to 9 for original problems included in data set
tf# - gate operation time for problem
K# - number of control pulses for problem
step-size - size of increment for perturbation in search for delta_bar; ranges from 10-3 (for 0.001) through 10-9 (for 10^{-9})
algorithm - optmization routine used in controller synthesis; either "quasi-newton" or "trust-region"
The data, results, and figures are saved in the following heirarchy:
-
/controllers
- All controller data for eachproblem-tf-K-algorithm
combination is saved as a.csv
file in this folder under the file nameproblem#_tf#_K#_algorithm.csv
. This directory must be saved directly subordinate to the root directory before execution of the analysis routines. Each row of the.csv
spreadsheet provides the data for given controller in the following columns ($M$ denotes the number of interaction Hamiltonians for the problem):Column Start Column Stop Data $1$ $1$ problem#
$2$ $2$ algorithm
$3$ $3$ tf#
$4$ $4$ K#
$5$ $5$ nominal fidelity error $6$ $MK + 5$ row array of control pulse magnitudes - reshaped as an $M \times K$ array for execution of analysis -
/problems
- data for each problem is saved as a.mat
file in this folder with the nameproblem#.mat.
This directroy must be imported from this repository and saved directly subordinate to the root directory before execution of the analysis routines. Each.mat
file contains the following data:The nine problems included are the problems used in [1] and [2], however the user may create additional problems by defining differentH - structure of Hamiltonian matrices H{1} is the drift Hamiltonian. The remaining M matrices are the interaction Hamiltonians. dH - structure of perturbation matrices - normalized to 1 in the Frobenius norm N - number of qubits in the problem UT - target unitary for the gate operation problem
H
anddH
structures along with alternate target gates. However, for proper operation of the anaysis routines, thedH
matrices must be normalized in the Frobenius norm. -
/results/algorithm
- the post-analysis data is saved as a.csv
file in this directory with the file nameproblem#_tf#_K#_step-size_algorithm.csv
. The directories are set up automatically upon execution of the analysis routines. The data is arranged by row per controller with the columns arranged in the same manner as the.csv
files in the/controllers
directory with the following columns appended ($M_2$ indicates the number of perturbation structures used for the problem):Column Start Columns Stop Data $MK+6$ $MK+6$ Static Uncertainty Bound: $\mathbf{B_{su}}$ $MK+7$ $MK +7$ Variable Uncertaitny Bound: $\mathbf{B_{vu}}$ $MK +8$ $MK + M_2 +7$ Array of differential sensitivity to each perturbation structure: $\zeta_\mu$ $MK +M_2 +8$ $MK + M_2 +8$ Minimum perturbation causing the fidelity error to exceed $\epsilon$ threhold:$\bar{\delta}$ $MK +M_2 +9$ $MK + 2M_2 +8$ Fidelity error evaluted at $\bar{\delta}$ for each static uncertainty structure$\mu$ $MK + 2M_2+9$ $MK + 2M_2 +9$ Fidelity error evaluated at $\bar{\delta}$ for worst-case variable uncertainty structure -
/results/correlation_data/algorithm
- the post-analysis data showing the correlation between various metrics are saved as.csv
files in this directory. The directory is created upon execution of the analysis routines. The following files are included:-
b4_vs_delta_algorithm-{Kendall,Pearson}.csv
- table of the Kendall$\tau$ and Pearson$r$ for correlation between$\mathbf{B_{vu}}$ and$\bar{\delta}$ -
err_vs_b4_algorithm-{Kendall,Pearson}.csv
- table of the Kendall$\tau$ and Pearson$r$ for correlation between$\mathbf{B_{vu}}$ and the nominal fidelity error -
log-sens_data_algorithm-{Kendall,Pearson}.csv
- table of the Kendall$\tau$ and Pearson$r$ for correlation between the nominal fidelity error and norm of the log-sensitivity
-
-
/figures/algorithm
- the post-analysis visualization plots are saved in the following subdirectories which are created upon execution of the analysis routines:Sub-directory Plot Description /sensitivity
Files saved as sensitivity_bounds_problem#_tf#_K#_algorithm.fig
and displays plot of$\mathbf{B_{vu}}$ ,$\mathbf{B_{su}}$ , and$\zeta_\mu$ versus controller index./performance
Files saved as performance_problem#_tf#_K#_step-size_algorithm.fig
and plots fidelity error evaluted at$\bar{\delta}$ for each static uncertainty direction$\mu$ and the worst-case variable uncertainty structure./log_sens
Files saved as log_sens_prob#_tf#_K#_algorithm.fig
and shows plot of the norm of the log-sensitivity and$\mathbf{B_{vu}}$ versus controller index./scatter
Files saved as scatter_B4_v_error_prob#_tf#_K#_algorithm_type.fig
wheretype
is eitherlinear
,semilog
, orlog-log
and indicates the scale of the plot. Each plot displays$\mathbf{B_{vu}}$ versus the nominal fidelity error./condolidated_scatter
Files saved as scatter_prob#_algorithm_loglog.fig
and depicts$\mathbf{B_{vu}}$ versus fidelity error for alltf
andK
combinations in the problem. This directory also includes combinations of several different problems as indicated in theprob#
field.
The following analysis routines are designed to be run from the root directory:
Routine | Description |
---|---|
calc_all_script.m |
This script executes the anlysis for all problem-tf-K-algorithm combinations in the /controllers directory and saves the output as a .csv file in the /results/algorithm directory as described above. It automically calls the routines in the table below. |
calc_sens_bounds.m |
This script is called by calc_all_script.m and computes problem-tf-K-algorithm combination. The script calls on calc_sens_loop.m to do the computation for each controller. The data is saved in the /results/temp directory for use by find_delta_bar.m.
|
calc_sens_loop.m |
This script is called by calc_sens_bounds.m and computes problem-tf-K-algorithm combination. |
find_delta_bar.m |
This script is called by calc_all_script.m and computes calc_performance_loop.m for computation of the data for each controller in the given problem-tf-K-algorithm combination. The output is saved in /results/algorithm as described above. |
calc_performance_loop.m |
This script is called by find_delta_bar.m and computes problem-tf-K-algorithm combintation. |
dexpma.m |
This function is called by calc_sens_loop.m andcalc_performance_loop.m to compute the matrix exponetial and derivative of the matrix exponential to the given perturbation. |
The following plot and correlation routines are designed to be run from the root directory following completion of the analysis routines described the previous section:
Routine | Description |
---|---|
plot_all_script.m |
Following completion of the analysis routines, this script is run to call each of the routines below to produce the visualization and correlation data. |
analyze_robustness_b4.m |
Computes table of the Kendall /results\correlation_data/algorithm as b4_vs_delta_algorithm-{Kendall,Pearson}.csv . |
analyze_error_vs_b4.m |
Computes table of the Kendall /results/correlation_data/algorithm as err_vs_b4_algorithm-{Kendall,Pearson}.csv . |
analyze_error_vs_log_sensitivity.m |
Computes table of the Kendall /results/correlation_data/algorithm as log-sens_data_algorithm-{Kendall,Pearson}.csv . |
performance_plot.m |
Plots fidelity error evaluated at performance_problem#_tf#_K#_step-size_algorithm.fig in the /figures/algorithm/performance directory. |
sensitivity_plot.m |
Plots /figures/algorithm/sensitivity directory as sensitivity_bounds_problem#_tf#_K#_algorithm.fig . |
plot_log_sensitivity.m |
Plots norm of the log-sensitivity and /figures/algorithm/log_sens directory as log_sens_prob#_tf#_K#_algorithm.fig . |
scatter_plot_b4_vs_error.m |
Plots /figures/algorithm/scatter directory under the filename scatter_B4_v_error_prob#_tf#_K#_algorithm_type.fig . |
b4_scatter_by_problem.m |
Plots tf and K combinations in the problem and saves in the /figures/algorithm/consolidated_scatter directory under scatter_prob#_algorithm.fig.
|