ZonoOpt 2.2.0
Loading...
Searching...
No Matches
Public Member Functions | Public Attributes | List of all members
ZonoOpt::OptSettings Struct Reference

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
 

Detailed Description

Settings for optimization routines in ZonoOpt library.

Member Function Documentation

◆ print()

std::string ZonoOpt::OptSettings::print ( ) const
inline

displays settings as string

Returns
string

◆ settings_valid()

bool ZonoOpt::OptSettings::settings_valid ( ) const
inline

Checks whether settings struct is valid.

Returns
validity boolean

Member Data Documentation

◆ contractor_iter

int ZonoOpt::OptSettings::contractor_iter = 1

number of interval contractor iterations

◆ contractor_tree_search_depth

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

◆ cycle_detection_buffer_size

int ZonoOpt::OptSettings::cycle_detection_buffer_size = 20

in ADMM-FP, this is the max size of the buffer that checks for cycles

◆ enable_perturb_admm_fp

bool ZonoOpt::OptSettings::enable_perturb_admm_fp = true

enable perturbations in ADMM-FP

◆ enable_restart_admm_fp

bool ZonoOpt::OptSettings::enable_restart_admm_fp = true

enable restarts (significant perturbations) in ADMM-FP

◆ enable_rng_seed

bool ZonoOpt::OptSettings::enable_rng_seed = false

enable rng seed for ADMM-FP

◆ eps_a

zono_float ZonoOpt::OptSettings::eps_a = static_cast<zono_float>(1e-1)

absolute convergence tolerance

◆ eps_dual

zono_float ZonoOpt::OptSettings::eps_dual = static_cast<zono_float>(1e-2)

dual convergence tolerance

◆ eps_dual_search

zono_float ZonoOpt::OptSettings::eps_dual_search = static_cast<zono_float>(1e-1)

dual residual convergence tolerance during branch and bound and search

◆ eps_perturb

zono_float ZonoOpt::OptSettings::eps_perturb = static_cast<zono_float>(1e-3)

relative tolerance for cycle detection, triggers perturbation

◆ eps_prim

zono_float ZonoOpt::OptSettings::eps_prim = static_cast<zono_float>(1e-3)

primal convergence tolerance

◆ eps_prim_search

zono_float ZonoOpt::OptSettings::eps_prim_search = static_cast<zono_float>(1e-2)

primal residual convergence tolerance during branch and bound and search

◆ eps_r

zono_float ZonoOpt::OptSettings::eps_r = static_cast<zono_float>(1e-2)

relative convergence tolerance

◆ inf_norm_conv

bool ZonoOpt::OptSettings::inf_norm_conv = true

use infinity norm for convergence check (if false, scaled 2-norm is used)

◆ k_inf_check

int ZonoOpt::OptSettings::k_inf_check = 10

check infeasibility every k_inf_check iterations

◆ k_max_admm

int ZonoOpt::OptSettings::k_max_admm = 5000

max convex admm iterations

◆ k_max_admm_fp_ph1

int ZonoOpt::OptSettings::k_max_admm_fp_ph1 = 10000

max ADMM iterations for ADMM-FP phase 1 (objective included)

◆ k_max_admm_fp_ph2

int ZonoOpt::OptSettings::k_max_admm_fp_ph2 = 90000

max ADMM iterations for ADMM-FP phase 2 (no objective)

◆ k_max_bnb

int ZonoOpt::OptSettings::k_max_bnb = static_cast<int>(1e5)

max number of branch-and-bound iterations

◆ k_restart

int ZonoOpt::OptSettings::k_restart = 5000

perform restart operation if primal residual does not improve over this many iterations in ADMM-FP

◆ max_nodes

int ZonoOpt::OptSettings::max_nodes = static_cast<int>(1e5)

terminate if more than this many nodes are in branch and bound queue

◆ n_threads_admm_fp

int ZonoOpt::OptSettings::n_threads_admm_fp = 3

max threads for ADMM-FP

◆ n_threads_bnb

int ZonoOpt::OptSettings::n_threads_bnb = 4

max threads for branch and bound

◆ polish

bool ZonoOpt::OptSettings::polish = true

flag to perform solution polishing

◆ rho

zono_float ZonoOpt::OptSettings::rho = static_cast<zono_float>(10.0)

admm penalty parameter, higher prioritizes feasibility during iterations, lower prioritizes optimality

◆ rng_seed

unsigned int ZonoOpt::OptSettings::rng_seed = 0

rng seed for ADMM-FP

◆ search_mode

int ZonoOpt::OptSettings::search_mode = 0

0: best first, 1: best dive

◆ single_threaded_admm_fp

bool ZonoOpt::OptSettings::single_threaded_admm_fp = false

enables single-threaded ADMM-FP solution, overrides n_threads_bnb, n_threads_admm_fp

◆ t_max

double ZonoOpt::OptSettings::t_max = std::numeric_limits<double>::max()

max time for optimization

◆ use_interval_contractor

bool ZonoOpt::OptSettings::use_interval_contractor = true

flag to use interval contractor for constraint tightening / implication

◆ verbose

bool ZonoOpt::OptSettings::verbose = false

display optimization progress

◆ verbosity_interval

int ZonoOpt::OptSettings::verbosity_interval = 100

print every verbose_interval iterations


The documentation for this struct was generated from the following file: