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

Settings for the dynamically-loaded Gurobi solver backend. More...

#include <GurobiSettings.hpp>

Inheritance diagram for ZonoOpt::GurobiSettings:
Inheritance graph
[legend]
Collaboration diagram for ZonoOpt::GurobiSettings:
Collaboration graph
[legend]

Public Member Functions

std::unique_ptr< SolverSettingsclone () const override
 Polymorphic copy. Must be overridden by every concrete subclass.
 
 GurobiSettings ()
 Construct a new Gurobi Settings object.
 
std::string print () const
 displays the parameters that have been explicitly set
 
std::string solver_name () const override
 Return name of the solver backend selected by this settings type, e.g., "ZonoOpt", "Gurobi", "SCIP".
 
void verify_available () const override
 Verify the solver backend selected by this settings type is usable.
 
- Public Member Functions inherited from ZonoOpt::SolverSettings
virtual ~SolverSettings ()=default
 

Public Attributes

std::optional< int > Cuts
 global cut aggressiveness: -1..3
 
std::map< std::string, double > dbl_params
 
std::optional< double > FeasibilityTol
 constraint feasibility tolerance
 
std::optional< double > Heuristics
 MIP heuristics effort (0..1)
 
std::map< std::string, int > int_params
 
std::optional< double > IntFeasTol
 integer feasibility tolerance
 
std::optional< std::string > LogFile
 
std::optional< int > LogToConsole
 
std::optional< double > MemLimit
 memory limit in GB
 
std::optional< int > Method
 root-node algorithm: -1 auto, 0..5
 
std::optional< int > MIPFocus
 0 default, 1 feasibility, 2 optimality, 3 bound
 
std::optional< double > MIPGap
 relative MIP optimality gap
 
std::optional< double > MIPGapAbs
 absolute MIP optimality gap
 
std::optional< int > NumericFocus
 0..3 numerical-care knob
 
std::optional< double > OptimalityTol
 dual feasibility tolerance
 
std::optional< int > OutputFlag
 0 silent, 1 verbose (Gurobi default 1)
 
std::optional< double > PoolGap
 
std::optional< double > PoolGapAbs
 
std::optional< int > PoolSearchMode
 
std::optional< int > PoolSolutions
 
std::optional< int > Presolve
 -1 auto, 0 off, 1 conservative, 2 aggressive
 
std::optional< int > Seed
 random seed
 
std::optional< int > SolutionLimit
 stop after this many MIP solutions
 
std::map< std::string, std::string > str_params
 
std::optional< int > Threads
 worker thread count; 0 = auto
 
std::optional< double > TimeLimit
 wall-clock time limit in seconds
 
std::optional< double > WorkLimit
 deterministic work limit
 

Detailed Description

Settings for the dynamically-loaded Gurobi solver backend.

Pass an instance to a ZonoOpt optimization method to route through Gurobi.

Constructor & Destructor Documentation

◆ GurobiSettings()

ZonoOpt::GurobiSettings::GurobiSettings ( )
inline

Construct a new Gurobi Settings object.

Exceptions
std::runtime_errorif the Gurobi shared library cannot be dynamically loaded

Member Function Documentation

◆ clone()

std::unique_ptr< SolverSettings > ZonoOpt::GurobiSettings::clone ( ) const
inlineoverridevirtual

Polymorphic copy. Must be overridden by every concrete subclass.

Implements ZonoOpt::SolverSettings.

◆ print()

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

displays the parameters that have been explicitly set

◆ solver_name()

std::string ZonoOpt::GurobiSettings::solver_name ( ) const
inlineoverridevirtual

Return name of the solver backend selected by this settings type, e.g., "ZonoOpt", "Gurobi", "SCIP".

Returns
std::string

Implements ZonoOpt::SolverSettings.

◆ verify_available()

void ZonoOpt::GurobiSettings::verify_available ( ) const
inlineoverridevirtual

Verify the solver backend selected by this settings type is usable.

Called by set_default_solver_settings(); should throw std::runtime_error if the backend cannot be initialized (e.g., GurobiSettings throws if the Gurobi library cannot be dynamically loaded). Default implementation is a no-op, appropriate for the internal solver which is always available.

Exceptions
std::runtime_errorif the backend cannot be initialized (subclass implementations only; the default no-op does not throw).

Reimplemented from ZonoOpt::SolverSettings.

Member Data Documentation

◆ Cuts

std::optional<int> ZonoOpt::GurobiSettings::Cuts

global cut aggressiveness: -1..3

◆ dbl_params

std::map<std::string, double> ZonoOpt::GurobiSettings::dbl_params

◆ FeasibilityTol

std::optional<double> ZonoOpt::GurobiSettings::FeasibilityTol

constraint feasibility tolerance

◆ Heuristics

std::optional<double> ZonoOpt::GurobiSettings::Heuristics

MIP heuristics effort (0..1)

◆ int_params

std::map<std::string, int> ZonoOpt::GurobiSettings::int_params

◆ IntFeasTol

std::optional<double> ZonoOpt::GurobiSettings::IntFeasTol

integer feasibility tolerance

◆ LogFile

std::optional<std::string> ZonoOpt::GurobiSettings::LogFile

◆ LogToConsole

std::optional<int> ZonoOpt::GurobiSettings::LogToConsole

◆ MemLimit

std::optional<double> ZonoOpt::GurobiSettings::MemLimit

memory limit in GB

◆ Method

std::optional<int> ZonoOpt::GurobiSettings::Method

root-node algorithm: -1 auto, 0..5

◆ MIPFocus

std::optional<int> ZonoOpt::GurobiSettings::MIPFocus

0 default, 1 feasibility, 2 optimality, 3 bound

◆ MIPGap

std::optional<double> ZonoOpt::GurobiSettings::MIPGap

relative MIP optimality gap

◆ MIPGapAbs

std::optional<double> ZonoOpt::GurobiSettings::MIPGapAbs

absolute MIP optimality gap

◆ NumericFocus

std::optional<int> ZonoOpt::GurobiSettings::NumericFocus

0..3 numerical-care knob

◆ OptimalityTol

std::optional<double> ZonoOpt::GurobiSettings::OptimalityTol

dual feasibility tolerance

◆ OutputFlag

std::optional<int> ZonoOpt::GurobiSettings::OutputFlag

0 silent, 1 verbose (Gurobi default 1)

◆ PoolGap

std::optional<double> ZonoOpt::GurobiSettings::PoolGap

◆ PoolGapAbs

std::optional<double> ZonoOpt::GurobiSettings::PoolGapAbs

◆ PoolSearchMode

std::optional<int> ZonoOpt::GurobiSettings::PoolSearchMode

◆ PoolSolutions

std::optional<int> ZonoOpt::GurobiSettings::PoolSolutions

◆ Presolve

std::optional<int> ZonoOpt::GurobiSettings::Presolve

-1 auto, 0 off, 1 conservative, 2 aggressive

◆ Seed

std::optional<int> ZonoOpt::GurobiSettings::Seed

random seed

◆ SolutionLimit

std::optional<int> ZonoOpt::GurobiSettings::SolutionLimit

stop after this many MIP solutions

◆ str_params

std::map<std::string, std::string> ZonoOpt::GurobiSettings::str_params

◆ Threads

std::optional<int> ZonoOpt::GurobiSettings::Threads

worker thread count; 0 = auto

◆ TimeLimit

std::optional<double> ZonoOpt::GurobiSettings::TimeLimit

wall-clock time limit in seconds

◆ WorkLimit

std::optional<double> ZonoOpt::GurobiSettings::WorkLimit

deterministic work limit


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