pygsti.optimize.wildcardopt

Wildcard budget fitting routines

Module Contents

Functions

optimize_wildcard_budget_neldermead(budget, L1weights, wildcard_objfn, two_dlogl_threshold, redbox_threshold, printer, smart_init=True, max_outer_iters=10, initial_eta=10.0)

Uses repeated Nelder-Mead to optimize the wildcard budget.

optimize_wildcard_budget_percircuit_only_cvxpy(budget, L1weights, objfn, redbox_threshold, printer)

Uses CVXPY to optimize the wildcard budget. Includes only per-circuit constraints.

_get_critical_circuit_budgets(objfn, redbox_threshold)

_agg_dlogl(current_probs, objfn, two_dlogl_threshold)

_agg_dlogl_deriv(current_probs, objfn, percircuit_budget_deriv, probs_deriv_wrt_percircuit_budget)

_agg_dlogl_hessian(current_probs, objfn, percircuit_budget_deriv, probs_deriv_wrt_percircuit_budget)

_proxy_agg_dlogl(x, tvds, fn0s, percircuit_budget_deriv, two_dlogl_threshold)

_proxy_agg_dlogl_deriv(x, tvds, fn0s, percircuit_budget_deriv)

_proxy_agg_dlogl_hessian(x, tvds, fn0s, percircuit_budget_deriv)

optimize_wildcard_budget_cvxopt(budget, L1weights, objfn, two_dlogl_threshold, redbox_threshold, printer, abs_tol=1e-05, rel_tol=1e-05, max_iters=50)

Uses CVXOPT to optimize the wildcard budget. Includes both aggregate and per-circuit constraints.

optimize_wildcard_budget_cvxopt_zeroreg(budget, L1weights, objfn, two_dlogl_threshold, redbox_threshold, printer, abs_tol=1e-05, rel_tol=1e-05, max_iters=50, small=1e-06)

Adds regularization of the L1 term around zero values of the budget. This doesn't seem to help much.

optimize_wildcard_budget_barrier(budget, L1weights, objfn, two_dlogl_threshold, redbox_threshold, printer, tol=1e-07, max_iters=50, num_steps=3, save_debugplot_data=False)

Uses a barrier method (for convex optimization) to optimize the wildcard budget.

NewtonSolve(initial_x, fn, fn_with_derivs=None, dx_tol=1e-06, max_iters=20, printer=None, lmbda=0.0)

optimize_wildcard_budget_cvxopt_smoothed(budget, L1weights, objfn, two_dlogl_threshold, redbox_threshold, printer, abs_tol=1e-05, rel_tol=1e-05, max_iters=50)

Uses a smooted version of the objective function. Doesn't seem to help much.

_compute_fd(x, fn, compute_hessian=True, eps=1e-07)

pygsti.optimize.wildcardopt.optimize_wildcard_budget_neldermead(budget, L1weights, wildcard_objfn, two_dlogl_threshold, redbox_threshold, printer, smart_init=True, max_outer_iters=10, initial_eta=10.0)

Uses repeated Nelder-Mead to optimize the wildcard budget. Includes both aggregate and per-circuit constraints.

pygsti.optimize.wildcardopt.optimize_wildcard_budget_percircuit_only_cvxpy(budget, L1weights, objfn, redbox_threshold, printer)

Uses CVXPY to optimize the wildcard budget. Includes only per-circuit constraints.

pygsti.optimize.wildcardopt._get_critical_circuit_budgets(objfn, redbox_threshold)
pygsti.optimize.wildcardopt._agg_dlogl(current_probs, objfn, two_dlogl_threshold)
pygsti.optimize.wildcardopt._agg_dlogl_deriv(current_probs, objfn, percircuit_budget_deriv, probs_deriv_wrt_percircuit_budget)
pygsti.optimize.wildcardopt._agg_dlogl_hessian(current_probs, objfn, percircuit_budget_deriv, probs_deriv_wrt_percircuit_budget)
pygsti.optimize.wildcardopt._proxy_agg_dlogl(x, tvds, fn0s, percircuit_budget_deriv, two_dlogl_threshold)
pygsti.optimize.wildcardopt._proxy_agg_dlogl_deriv(x, tvds, fn0s, percircuit_budget_deriv)
pygsti.optimize.wildcardopt._proxy_agg_dlogl_hessian(x, tvds, fn0s, percircuit_budget_deriv)
pygsti.optimize.wildcardopt.optimize_wildcard_budget_cvxopt(budget, L1weights, objfn, two_dlogl_threshold, redbox_threshold, printer, abs_tol=1e-05, rel_tol=1e-05, max_iters=50)

Uses CVXOPT to optimize the wildcard budget. Includes both aggregate and per-circuit constraints.

pygsti.optimize.wildcardopt.optimize_wildcard_budget_cvxopt_zeroreg(budget, L1weights, objfn, two_dlogl_threshold, redbox_threshold, printer, abs_tol=1e-05, rel_tol=1e-05, max_iters=50, small=1e-06)

Adds regularization of the L1 term around zero values of the budget. This doesn’t seem to help much.

pygsti.optimize.wildcardopt.optimize_wildcard_budget_barrier(budget, L1weights, objfn, two_dlogl_threshold, redbox_threshold, printer, tol=1e-07, max_iters=50, num_steps=3, save_debugplot_data=False)

Uses a barrier method (for convex optimization) to optimize the wildcard budget. Includes both aggregate and per-circuit constraints.

pygsti.optimize.wildcardopt.NewtonSolve(initial_x, fn, fn_with_derivs=None, dx_tol=1e-06, max_iters=20, printer=None, lmbda=0.0)
pygsti.optimize.wildcardopt.optimize_wildcard_budget_cvxopt_smoothed(budget, L1weights, objfn, two_dlogl_threshold, redbox_threshold, printer, abs_tol=1e-05, rel_tol=1e-05, max_iters=50)

Uses a smooted version of the objective function. Doesn’t seem to help much.

The thinking here was to eliminate the 2nd derivative discontinuities of the original problem.

pygsti.optimize.wildcardopt._compute_fd(x, fn, compute_hessian=True, eps=1e-07)