Class SolverConfiguration
Defines common parameters for ISolver instances.
Inheritance
Inherited Members
Namespace: OPTANO.Modeling.Optimization
Assembly: Optimization.dll
Syntax
public abstract class SolverConfiguration
Constructors
SolverConfiguration()
Initializes a new instance of the SolverConfiguration class.
Declaration
protected SolverConfiguration()
Properties
CalculateDuals
Gets or sets a value indicating whether duals shall be calculated or not.
Declaration
[Display(Name = "Calculate Duals", Description = "Gets or sets a value indicating whether duals shall be calculated or not.")]
public bool CalculateDuals { get; set; }
Property Value
Type | Description |
---|---|
System.Boolean |
|
LibraryPaths
Gets a list of library paths that are appended to the PATH environment variable. You can use this to provide the required DLLs for your solver of choice.
Declaration
public List<DirectoryInfo> LibraryPaths { get; }
Property Value
Type | Description |
---|---|
System.Collections.Generic.List<System.IO.DirectoryInfo> |
LogFile
Gets or sets the (optional) logfile path. If a System.IO.FileInfo is set, the console output during the solving
(i.e. the output of the Solve(Model, Dictionary<Variable, Double>) method) is written to the specified file.
If System.String.IsNullOrWhiteSpace(System.String)(System.IO.FileSystemInfo.FullName, no file is written.
Declaration
public virtual FileInfo LogFile { get; set; }
Property Value
Type | Description |
---|---|
System.IO.FileInfo |
MIPGap
Relative MIP optimality gap (MIP only). The MIP solver will terminate (with an optimal result) when the relative gap between the lower and upper objective bound is less than MIPGap.
Declaration
[Display(Name = "MIP Gap", Description = "The MIP solver will terminate (with an optimal result) when the relative gap between the lower and upper objective bound is less than MIPGap.")]
public virtual double MIPGap { get; set; }
Property Value
Type | Description |
---|---|
System.Double | Sets a relative tolerance on the gap between the best integer objective and the objective of the best node remaining. When the value
falls below the value of this parameter, the mixed integer optimization is stopped.
For example, to instruct CPLEX to stop as soon as it has found a feasible integer solution proved to be within five percent of optimal, set the relative mipgap tolerance to |
MIPGapAbs
Absolute MIP optimality gap (MIP only). The MIP solver will terminate (with an optimal result) when the absolute gap between the lower and upper objective bound is less than MIPGapAbs.
Declaration
[Display(Name = "Absolute MIP Gap", Description = "The MIP solver will terminate (with an optimal result) when the absolute gap between the lower and upper objective bound is less than MIPGap times the upper bound.")]
public virtual double MIPGapAbs { get; set; }
Property Value
Type | Description |
---|---|
System.Double | The MIP gap abs. |
ModelOutputFile
Gets or sets the model output file to which the model is exported to before it is solved. Depending on the file extension, different export formats can be specified. E.g. ".mps" or ".lp". Some Solvers may support additional extensions and even provide further options, such as compressing the exported model directly. For example, for CPLEX you can specify this with an extension such as "myModel.mps.gz".
Declaration
[Display(Name = "Model Output File", Description = "Gets or sets the model output file. Depending on the file extension, different export formats can be specified. E.g.: \"*.mps\", \"*.lp\"")]
[Obsolete("Please consider using SolverConfiguration.OutputFilesBefore-/ AfterSolve instead.", false)]
public FileInfo ModelOutputFile { get; set; }
Property Value
Type | Description |
---|---|
System.IO.FileInfo |
OptimalityTolerance
Dual feasibility tolerance. Reduced costs must all be smaller than OptimalityTol in the improving direction in order for a model to be declared optimal.
Declaration
[Display(Name = "Optimality Tolerance", Description = "Absolute optimality tolerance guarantees that a solution lies within a certain absolute range of the optimal solution.")]
public double OptimalityTolerance { get; set; }
Property Value
Type | Description |
---|---|
System.Double | The optimality tolerance. |
OutputFilesAfterSolve
Gets the set of output files that should be written after
the model is optimized.
Declaration
public HashSet<FileInfo> OutputFilesAfterSolve { get; }
Property Value
Type | Description |
---|---|
System.Collections.Generic.HashSet<System.IO.FileInfo> |
OutputFilesBeforeSolve
Gets the set of output files that should be written before
the model is optimized.
Declaration
public HashSet<FileInfo> OutputFilesBeforeSolve { get; }
Property Value
Type | Description |
---|---|
System.Collections.Generic.HashSet<System.IO.FileInfo> |
PriorityLevelMipGapDefinition
Defines the Mip Gaps for specific hierarchy levels. System.TimeSpan.Zero will be converted to "unlimited". (default)
Declaration
public PriorityLevelMipGapDefinition PriorityLevelMipGapDefinition { get; protected set; }
Property Value
Type | Description |
---|---|
PriorityLevelMipGapDefinition |
PriorityLevelQualityDegradationDefinition
Defines the maximum quality degradation of objectives during multi-hierarchical optimization.
Declaration
public PriorityLevelQualityDegradationDefinition PriorityLevelQualityDegradationDefinition { get; protected set; }
Property Value
Type | Description |
---|---|
PriorityLevelQualityDegradationDefinition |
PriorityLevelTimeLimitDefinition
Time limits to spend for a given hierarchy level during multi objective optimization. System.TimeSpan.Zero will be converted to "unlimited". (default)
Declaration
public PriorityLevelTimeLimitDefinition PriorityLevelTimeLimitDefinition { get; protected set; }
Property Value
Type | Description |
---|---|
PriorityLevelTimeLimitDefinition |
RetryMultiObjectiveWithTolerance
Gets or sets a value indicating whether to retry solving a model with specified tolerance during multi-hierarchical optimization.
If a multi-hierarchical model becomes infeasible
due to the qualitiy-conservation constraints
and this value is set to true
, the tolerance that is specified in RelativeTolerance will be applied to the quality-conservation constraints. Otherwise, the constraints will be created with 0
tolerance. E.g., in case of a maximization objective z: qualityConstraint = Expression >= currentValue(z)
.
qualityConstraint
will be added to the model to ensure that the solutions of objectives with smaller PriorityLevel will maintain the currentValue(z)
.
Default: true
.
Declaration
public bool RetryMultiObjectiveWithTolerance { get; set; }
Property Value
Type | Description |
---|---|
System.Boolean |
TimeLimit
Limits the total time expended (in seconds). Time measurement could differ in different solvers.
For GurobiSolvers
, the value 0
is interpreted as "default"
and converted to System.Double.PositiveInfinity.
Declaration
[Display(Name = "Time Limit", Description = "Limits the total time expended (in seconds). Time measurement could differ in different solvers.")]
public virtual double TimeLimit { get; set; }
Property Value
Type | Description |
---|---|
System.Double | The time limit. |