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

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

#include <SCIPSettings.hpp>

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

Public Member Functions

std::unique_ptr< SolverSettingsclone () const override
 Polymorphic copy. Must be overridden by every concrete subclass.
 
std::string print () const
 
 SCIPSettings ()
 Construct a new SCIPSettings object.
 
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::map< std::string, bool > bool_params
 
std::map< std::string, char > char_params
 
std::optional< double > FeasibilityTol
 feasibility tolerance ("numerics/feastol")
 
std::map< std::string, int > int_params
 
std::map< std::string, long long > longint_params
 
std::optional< double > MemLimit
 memory limit in MB ("limits/memory")
 
std::optional< double > MIPGap
 relative MIP optimality gap ("limits/gap")
 
std::optional< double > MIPGapAbs
 absolute MIP optimality gap ("limits/absgap")
 
std::optional< int > NodeLimit
 max B&B nodes ("limits/totalnodes" → applied to "limits/nodes")
 
std::map< std::string, double > real_params
 
std::optional< int > Seed
 random seed shift ("randomization/randomseedshift")
 
std::optional< int > SolutionLimit
 stop after this many MIP solutions ("limits/solutions")
 
std::map< std::string, std::string > str_params
 
std::optional< int > Threads
 worker threads ("parallel/maxnthreads"); SCIP default is sequential unless built with parallel
 
std::optional< double > TimeLimit
 wall-clock time limit in seconds ("limits/time")
 
std::optional< int > VerbLevel
 SCIP verbosity 0..5 ("display/verblevel"); 0 = silent. SCIP default is 4.
 

Detailed Description

Settings for the dynamically-loaded SCIP solver backend.

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

Notes:

Constructor & Destructor Documentation

◆ SCIPSettings()

ZonoOpt::SCIPSettings::SCIPSettings ( )
inline

Construct a new SCIPSettings object.

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

Member Function Documentation

◆ clone()

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

Polymorphic copy. Must be overridden by every concrete subclass.

Implements ZonoOpt::SolverSettings.

◆ print()

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

◆ solver_name()

std::string ZonoOpt::SCIPSettings::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::SCIPSettings::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

◆ bool_params

std::map<std::string, bool> ZonoOpt::SCIPSettings::bool_params

◆ char_params

std::map<std::string, char> ZonoOpt::SCIPSettings::char_params

◆ FeasibilityTol

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

feasibility tolerance ("numerics/feastol")

◆ int_params

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

◆ longint_params

std::map<std::string, long long> ZonoOpt::SCIPSettings::longint_params

◆ MemLimit

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

memory limit in MB ("limits/memory")

◆ MIPGap

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

relative MIP optimality gap ("limits/gap")

◆ MIPGapAbs

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

absolute MIP optimality gap ("limits/absgap")

◆ NodeLimit

std::optional<int> ZonoOpt::SCIPSettings::NodeLimit

max B&B nodes ("limits/totalnodes" → applied to "limits/nodes")

◆ real_params

std::map<std::string, double> ZonoOpt::SCIPSettings::real_params

◆ Seed

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

random seed shift ("randomization/randomseedshift")

◆ SolutionLimit

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

stop after this many MIP solutions ("limits/solutions")

◆ str_params

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

◆ Threads

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

worker threads ("parallel/maxnthreads"); SCIP default is sequential unless built with parallel

◆ TimeLimit

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

wall-clock time limit in seconds ("limits/time")

◆ VerbLevel

std::optional<int> ZonoOpt::SCIPSettings::VerbLevel

SCIP verbosity 0..5 ("display/verblevel"); 0 = silent. SCIP default is 4.


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