81 throw new InvalidOperationException(
82 "The requested solver cannot be Unknown.");
88 throw new InvalidOperationException(
89 "FeasibilityTolerance must be finite and strictly positive.");
92 ValidateNonNegativeTolerance(
99 throw new InvalidOperationException(
100 "IntegralityTolerance must be finite and strictly positive.");
103 ValidateNonNegativeTolerance(
108 private static void ValidateNonNegativeTolerance(
112 if (!
double.IsFinite(tolerance) ||
115 throw new InvalidOperationException(
116 $
"{name} must be finite and non-negative.");
Configures one solver-backed execution of a portable linear model.
string TemporaryRootPath
Gets or sets an optional parent directory for temporary solver artifacts.
SolverKind Solver
Gets or sets the requested solver. The default is automatic selection.
bool AllowFallbackWhenExplicit
Gets or sets whether an explicitly requested solver may fall back to another solver when unavailable.
double NearIntegerTolerance
Gets or sets the tolerance used to clean continuous values that are numerically indistinguishable fro...
double ZeroTolerance
Gets or sets the tolerance used to identify numerical zero before validation and objective reconstruc...
double IntegralityTolerance
Gets or sets the integrality tolerance used both for normalization and the independent solution check...
bool KeepTemporaryFiles
Gets or sets whether temporary model/solution/log artifacts are retained.
bool EnableFixedIntegerPolishing
Gets or sets whether a solver candidate rejected only after numerical normalization may be recovered ...
void EnsureValid()
Validates this option set.
string ExportModelPath
Gets or sets an optional path receiving the exact LP model submitted to the selected solver.
double FeasibilityTolerance
Gets or sets the feasibility tolerance used by the independent solution checker.
Normalizes raw mathematical-variable values returned by optimization solvers before independent valid...
const double DefaultIntegralityTolerance
Historical public default absolute tolerance used for integer-domain variables.
const double DefaultNearIntegerTolerance
Default absolute tolerance used to clean continuous values that are numerically indistinguishable fro...
const double DefaultZeroTolerance
Default absolute tolerance used to identify numerical zero.
SolverKind
Identifies a mathematical optimization solver that can be used by solver-backed ULS algorithms.