|
ZonoOpt 2.2.0
|
Settings for optimization routines in ZonoOpt library. More...
#include <SolverDataStructures.hpp>
Public Member Functions | |
| bool | settings_valid () const |
| Checks whether settings struct is valid. | |
| std::string | print () const |
| displays settings as string | |
Public Attributes | |
| bool | verbose = false |
| display optimization progress | |
| int | verbosity_interval = 100 |
| print every verbose_interval iterations | |
| double | t_max = std::numeric_limits<double>::max() |
| max time for optimization | |
| int | k_max_admm = 5000 |
| max convex admm iterations | |
| zono_float | rho = static_cast<zono_float>(10.0) |
| admm penalty parameter, higher prioritizes feasibility during iterations, lower prioritizes optimality | |
| zono_float | eps_dual = static_cast<zono_float>(1e-2) |
| dual convergence tolerance | |
| zono_float | eps_prim = static_cast<zono_float>(1e-3) |
| primal convergence tolerance | |
| int | k_inf_check = 10 |
| check infeasibility every k_inf_check iterations | |
| bool | inf_norm_conv = true |
| use infinity norm for convergence check (if false, scaled 2-norm is used) | |
| bool | use_interval_contractor = true |
| flag to use interval contractor for constraint tightening / implication | |
| int | contractor_iter = 1 |
| number of interval contractor iterations | |
| int | search_mode = 0 |
| 0: best first, 1: best dive | |
| bool | polish = true |
| flag to perform solution polishing | |
| zono_float | eps_dual_search = static_cast<zono_float>(1e-1) |
| dual residual convergence tolerance during branch and bound and search | |
| zono_float | eps_prim_search = static_cast<zono_float>(1e-2) |
| primal residual convergence tolerance during branch and bound and search | |
| zono_float | eps_r = static_cast<zono_float>(1e-2) |
| relative convergence tolerance | |
| zono_float | eps_a = static_cast<zono_float>(1e-1) |
| absolute convergence tolerance | |
| int | k_max_bnb = static_cast<int>(1e5) |
| max number of branch-and-bound iterations | |
| int | n_threads_bnb = 4 |
| max threads for branch and bound | |
| int | n_threads_admm_fp = 3 |
| max threads for ADMM-FP | |
| bool | single_threaded_admm_fp = false |
| enables single-threaded ADMM-FP solution, overrides n_threads_bnb, n_threads_admm_fp | |
| int | max_nodes = static_cast<int>(1e5) |
| terminate if more than this many nodes are in branch and bound queue | |
| int | contractor_tree_search_depth = 10 |
| when applying interval contractor in branch and bound, this is how deep to search the constraint tree for affected variables | |
| bool | enable_perturb_admm_fp = true |
| enable perturbations in ADMM-FP | |
| bool | enable_restart_admm_fp = true |
| enable restarts (significant perturbations) in ADMM-FP | |
| int | k_max_admm_fp_ph1 = 10000 |
| max ADMM iterations for ADMM-FP phase 1 (objective included) | |
| int | k_max_admm_fp_ph2 = 90000 |
| max ADMM iterations for ADMM-FP phase 2 (no objective) | |
| int | cycle_detection_buffer_size = 20 |
| in ADMM-FP, this is the max size of the buffer that checks for cycles | |
| zono_float | eps_perturb = static_cast<zono_float>(1e-3) |
| relative tolerance for cycle detection, triggers perturbation | |
| int | k_restart = 5000 |
| perform restart operation if primal residual does not improve over this many iterations in ADMM-FP | |
| bool | enable_rng_seed = false |
| enable rng seed for ADMM-FP | |
| unsigned int | rng_seed = 0 |
| rng seed for ADMM-FP | |
Settings for optimization routines in ZonoOpt library.
|
inline |
displays settings as string
|
inline |
Checks whether settings struct is valid.
| int ZonoOpt::OptSettings::contractor_iter = 1 |
number of interval contractor iterations
| int ZonoOpt::OptSettings::contractor_tree_search_depth = 10 |
when applying interval contractor in branch and bound, this is how deep to search the constraint tree for affected variables
| int ZonoOpt::OptSettings::cycle_detection_buffer_size = 20 |
in ADMM-FP, this is the max size of the buffer that checks for cycles
| bool ZonoOpt::OptSettings::enable_perturb_admm_fp = true |
enable perturbations in ADMM-FP
| bool ZonoOpt::OptSettings::enable_restart_admm_fp = true |
enable restarts (significant perturbations) in ADMM-FP
| bool ZonoOpt::OptSettings::enable_rng_seed = false |
enable rng seed for ADMM-FP
| zono_float ZonoOpt::OptSettings::eps_a = static_cast<zono_float>(1e-1) |
absolute convergence tolerance
| zono_float ZonoOpt::OptSettings::eps_dual = static_cast<zono_float>(1e-2) |
dual convergence tolerance
| zono_float ZonoOpt::OptSettings::eps_dual_search = static_cast<zono_float>(1e-1) |
dual residual convergence tolerance during branch and bound and search
| zono_float ZonoOpt::OptSettings::eps_perturb = static_cast<zono_float>(1e-3) |
relative tolerance for cycle detection, triggers perturbation
| zono_float ZonoOpt::OptSettings::eps_prim = static_cast<zono_float>(1e-3) |
primal convergence tolerance
| zono_float ZonoOpt::OptSettings::eps_prim_search = static_cast<zono_float>(1e-2) |
primal residual convergence tolerance during branch and bound and search
| zono_float ZonoOpt::OptSettings::eps_r = static_cast<zono_float>(1e-2) |
relative convergence tolerance
| bool ZonoOpt::OptSettings::inf_norm_conv = true |
use infinity norm for convergence check (if false, scaled 2-norm is used)
| int ZonoOpt::OptSettings::k_inf_check = 10 |
check infeasibility every k_inf_check iterations
| int ZonoOpt::OptSettings::k_max_admm = 5000 |
max convex admm iterations
| int ZonoOpt::OptSettings::k_max_admm_fp_ph1 = 10000 |
max ADMM iterations for ADMM-FP phase 1 (objective included)
| int ZonoOpt::OptSettings::k_max_admm_fp_ph2 = 90000 |
max ADMM iterations for ADMM-FP phase 2 (no objective)
| int ZonoOpt::OptSettings::k_max_bnb = static_cast<int>(1e5) |
max number of branch-and-bound iterations
| int ZonoOpt::OptSettings::k_restart = 5000 |
perform restart operation if primal residual does not improve over this many iterations in ADMM-FP
| int ZonoOpt::OptSettings::max_nodes = static_cast<int>(1e5) |
terminate if more than this many nodes are in branch and bound queue
| int ZonoOpt::OptSettings::n_threads_admm_fp = 3 |
max threads for ADMM-FP
| int ZonoOpt::OptSettings::n_threads_bnb = 4 |
max threads for branch and bound
| bool ZonoOpt::OptSettings::polish = true |
flag to perform solution polishing
| zono_float ZonoOpt::OptSettings::rho = static_cast<zono_float>(10.0) |
admm penalty parameter, higher prioritizes feasibility during iterations, lower prioritizes optimality
| unsigned int ZonoOpt::OptSettings::rng_seed = 0 |
rng seed for ADMM-FP
| int ZonoOpt::OptSettings::search_mode = 0 |
0: best first, 1: best dive
| bool ZonoOpt::OptSettings::single_threaded_admm_fp = false |
enables single-threaded ADMM-FP solution, overrides n_threads_bnb, n_threads_admm_fp
| double ZonoOpt::OptSettings::t_max = std::numeric_limits<double>::max() |
max time for optimization
| bool ZonoOpt::OptSettings::use_interval_contractor = true |
flag to use interval contractor for constraint tightening / implication
| bool ZonoOpt::OptSettings::verbose = false |
display optimization progress
| int ZonoOpt::OptSettings::verbosity_interval = 100 |
print every verbose_interval iterations