Class GurobiSolverNative
The gurobi solver native.
Inheritance
Inherited Members
Namespace: OPTANO.Modeling.Optimization.Solver.Gurobi652
Assembly: Optimization.Solver.Gurobi652.dll
Syntax
[Obsolete("This is an EXPERIMENTAL class. Do not use it in production, yet!", false)]
public class GurobiSolverNative : GenericSolverBase<GurobiSolverConfiguration>, ISolver, ICanSolve<Model, Solution>, IAbortable, IDisposable, IStatus<StatusInfo>
Constructors
GurobiSolverNative()
Initializes a new instance of the GurobiSolverNative class.
Declaration
protected GurobiSolverNative()
GurobiSolverNative(GurobiSolverConfiguration)
Initializes a new instance of the GurobiSolverNative class.
Tries to acquire a Gurobi License. If this fails, a Gurobi.GRBException is thrown.
In order to use the GurobiSolver in your project, make sure to reference the GurobiXX.NET.dll from your gurobi installation folder ('..\gurobiXX\win64\bin\GurobiXX.NET.dll')
Declaration
public GurobiSolverNative(GurobiSolverConfiguration configuration = null)
Parameters
| Type | Name | Description |
|---|---|---|
| GurobiSolverConfiguration | configuration | The configuration. |
Properties
AddedAsPureLowerBoundConstraint
Gets or sets the added as pure lower bound constraint.
Declaration
protected HashSet<string> AddedAsPureLowerBoundConstraint { get; set; }
Property Value
| Type | Description |
|---|---|
| System.Collections.Generic.HashSet<System.String> |
ColumnToVariable
Gets or sets the column to variable.
Declaration
protected Dictionary<int, string> ColumnToVariable { get; set; }
Property Value
| Type | Description |
|---|---|
| System.Collections.Generic.Dictionary<System.Int32, System.String> |
ConstraintLowerBoundRow
Gets or sets the constraint lower bound row.
Declaration
protected Dictionary<string, int> ConstraintLowerBoundRow { get; set; }
Property Value
| Type | Description |
|---|---|
| System.Collections.Generic.Dictionary<System.String, System.Int32> |
ConstraintUpperBoundRow
Contains the row number in Gurobi for every constraint
Declaration
protected Dictionary<string, int> ConstraintUpperBoundRow { get; set; }
Property Value
| Type | Description |
|---|---|
| System.Collections.Generic.Dictionary<System.String, System.Int32> |
VariableColumn
Contains the column number in Gurobi for every variable
Declaration
protected Dictionary<string, int> VariableColumn { get; set; }
Property Value
| Type | Description |
|---|---|
| System.Collections.Generic.Dictionary<System.String, System.Int32> |
Methods
Abort()
If this solver instance is busy abort the run as soon as possible, or do nothing if this solver instance is not busy.
Declaration
public override void Abort()
Overrides
Implements
Exceptions
| Type | Condition |
|---|---|
| System.NotSupportedException | If this solver instance not supports aborting. |
AddConstraint(Constraint)
Adds the constraint to the solver model.
Declaration
protected void AddConstraint(Constraint constraint)
Parameters
| Type | Name | Description |
|---|---|---|
| Constraint | constraint | The Constraint to add. |
AddObjective(Objective)
The add objective.
Declaration
protected override void AddObjective(Objective objective)
Parameters
| Type | Name | Description |
|---|---|---|
| Objective | objective | The objective. |
Overrides
Exceptions
| Type | Condition |
|---|---|
| System.NotImplementedException |
BuildSolverModelAdapterSpecific(Int32)
Declaration
protected override void BuildSolverModelAdapterSpecific(int prioLevel = 0)
Parameters
| Type | Name | Description |
|---|---|---|
| System.Int32 | prioLevel |
Overrides
CanExportFile(FileInfo, ExportTime, Boolean)
True, if ModelOutputFile is not null and has any extension.
Declaration
protected override bool CanExportFile(FileInfo outputFile, ExportTime exportTime, bool printHints = false)
Parameters
| Type | Name | Description |
|---|---|---|
| System.IO.FileInfo | outputFile | The file to check. |
| ExportTime | exportTime | Export before or after solve. |
| System.Boolean | printHints | Indicates whether to print hints. |
Returns
| Type | Description |
|---|---|
| System.Boolean | The System.Boolean. |
Overrides
ChangeConstraintLowerBound(String, Double)
Changes the constraint lower bound.
Declaration
public void ChangeConstraintLowerBound(string name, double lowerbound)
Parameters
| Type | Name | Description |
|---|---|---|
| System.String | name | The name. |
| System.Double | lowerbound | The lowerbound. |
ChangeConstraintUpperBound(String, Double)
Changes the constraint upper bound.
Declaration
public void ChangeConstraintUpperBound(string name, double upperbound)
Parameters
| Type | Name | Description |
|---|---|---|
| System.String | name | The name. |
| System.Double | upperbound | The upperbound. |
ClearLastModel()
Deletes the internal datastructures of this solver instance.
Declaration
public override void ClearLastModel()
Overrides
Implements
Exceptions
| Type | Condition |
|---|---|
| System.InvalidOperationException | If this solver instance is busy. |
Dispose(Boolean)
Disposes this instance of the GurobiSolverNative.
Frees the Gurobi License.
Declaration
protected void Dispose(bool freeManagedObjectsAlso)
Parameters
| Type | Name | Description |
|---|---|---|
| System.Boolean | freeManagedObjectsAlso | True, if managed objects such as the Gurobi.GRBEnv should be disposed as well. |
DisposeCustom()
Disposes this instance of GurobiSolverNative.
Frees the Gurobi License
Declaration
protected override void DisposeCustom()
Overrides
ExportFileSolverSpecific(FileInfo)
Export the model solver specific.
Declaration
protected override void ExportFileSolverSpecific(FileInfo outputFile)
Parameters
| Type | Name | Description |
|---|---|---|
| System.IO.FileInfo | outputFile |
Overrides
Finalize()
Finalizes an instance of the GurobiSolverNative class.
Frees the Gurobi License
Declaration
protected void Finalize()
GetSubOptimalSolution(Int32)
The get sub optimal solution.
Declaration
public Dictionary<string, double> GetSubOptimalSolution(int n)
Parameters
| Type | Name | Description |
|---|---|---|
| System.Int32 | n | The n. |
Returns
| Type | Description |
|---|---|
| System.Collections.Generic.Dictionary<System.String, System.Double> | The |
Exceptions
| Type | Condition |
|---|---|
| System.ArgumentException | |
| System.InvalidOperationException |
RemoveConstraint(String)
Removes the Constraint with Name == name.
Declaration
protected override void RemoveConstraint(string name)
Parameters
| Type | Name | Description |
|---|---|---|
| System.String | name | The name of the Constraint to remove. |
Overrides
ResolveAdapterSpecific(Int32, IDictionary<Variable, Double>)
Performs a Gurobi specific resolve for the CurrentModel. Make sure that this method is only called, in case of an actual resolve. Otherwise, the internal Gurobi.GRBModel will throw an Gurobi.GRBException.
Declaration
protected override Solution ResolveAdapterSpecific(int prioLevel = 0, IDictionary<Variable, double> variableValues = null)
Parameters
| Type | Name | Description |
|---|---|---|
| System.Int32 | prioLevel | The priority level to solve for. |
| System.Collections.Generic.IDictionary<Variable, System.Double> | variableValues | The start values. |
Returns
| Type | Description |
|---|---|
| Solution | The Solution. |
Overrides
SetBranchingPriorityAdapterSpecific()
The set branching priorities.
Declaration
protected override void SetBranchingPriorityAdapterSpecific()
Overrides
SetConfigurationAdapterSpecific()
Sets the solver configuration. This includes all values specified in GurobiSolverConfiguration and the following values:
The values for MIPGap, MIPGapAbs, and TimeLimit are taken from the base SolverConfiguration and set every time when this method is executed.
Before, the values only were set when the user specifically specified any value other than 0.
Declaration
protected override void SetConfigurationAdapterSpecific()
Overrides
SolveAdapterSpecific(Int32, IDictionary<Variable, Double>)
Solves the CurrentModel.
Declaration
protected override Solution SolveAdapterSpecific(int prioLevel = 0, IDictionary<Variable, double> variableValues = null)
Parameters
| Type | Name | Description |
|---|---|---|
| System.Int32 | prioLevel | The priority level to solve for. |
| System.Collections.Generic.IDictionary<Variable, System.Double> | variableValues | The variable values. |
Returns
| Type | Description |
|---|---|
| Solution | The Solution. |
Overrides
Events
Status
The status information callback.
Declaration
public event Action<StatusInfo> Status
Event Type
| Type | Description |
|---|---|
| System.Action<StatusInfo> |