iqm.benchmarks.compressive_gst.mgst.algorithm.run_mGST#
- iqm.benchmarks.compressive_gst.mgst.algorithm.run_mGST(args: tuple[ndarray, ndarray, None, int, int, int, int, int, int], method: str = 'SFN', max_inits: int = 10, max_iter: int = 200, final_iter: int = 120, target_rel_prec: float = 1e-05, threshold_multiplier: float = 5, fixed_elements: list | None = None, init: list[ndarray[Any, Any]] | None = None, verbose_level: int = 0) tuple[ndarray, ndarray, ndarray, ndarray, list]#
Main mGST routine.
- Parameters:
args (tuple[ndarray, ndarray, None, int, int, int, int, int, int]) – Tuple containing (y, J, _, d, r, rK, n_povm, bsize, meas_samples) where: - y: 2D array of measurement outcomes for sequences in J - J: 2D array where each row contains gate indices of a gate sequence - _: unused parameter - d: Number of different gates in the gate set - r: Superoperator dimension (square of physical dimension) - rK: Target Kraus rank - n_povm: Number of POVM elements - bsize: Size of the batch (number of sequences) - meas_samples: Number of samples per gate sequence for measurement array y
method (str) – Optimization method: “SFN” or “GD”
max_inits (int) – Maximum number of random initializations to try
max_iter (int) – Maximum number of iterations on batches
final_iter (int) – Maximum number of iterations on full data set
target_rel_prec (float) – Target relative precision at which the optimization loop breaks
threshold_multiplier (float) – Multiplier for the stopping criterion threshold
fixed_elements (list | None) – List of element names to keep fixed during optimization (e.g., [“E”, “rho”, “G0”])
init (list[ndarray[Any, Any]] | None) – List of 3 numpy arrays [K, E, rho] for initialization; If not provided, random initialization is used
verbose_level (int) – Verbosity level: 0 (silent), 1 (info), 2 (info + plots)
- Returns:
Updated estimates of Kraus operators X: Updated estimates of superoperators corresponding to K E: Updated POVM estimate rho: Updated initial state estimate res_list: Collected objective function values after each iteration
- Return type:
K