Hi!
Thanks for your inquiry. we really appreciate your input!
Regarding Gurobi:
* We have released Modeling 2.11. which ships support for Gurobi 8.1
* The issue regarding the ISV key is fixed in 2.11.1 which was release just a second ago. Gurobi supplied a new key. (thanks for pointing out this issue)
* We have also added a new flag PreferTrialLicense to GurobiSolver810.SolverConfiguration, to use the limited license even if a regular license is installed
Regarding MipCL:
* Modeling 2.11. does support MipCL 1.6.2
* I have noticed MipCL 1.6.2 is outdated by a few days again. We will add
support for 1.6.3 soon. (thanks again for giving us a heads up on this). Maybe
the 1.6.2 adapter works well for 1.6.3, thou we have not tested this.
Does this solve your issue? Am I missing anything out?
Best,
jp var modelMin = new Model { Name = "model" };
var x = new Variable("x", 1, 10, VariableType.Integer);
modelMin.AddConstraint(x >= 1.5);
modelMin.AddConstraint(x <= 9.5);
// this is ugly: mipcl completely ignores constants in objectives and bounds
var objective = new Objective(x + 10, "objective", ObjectiveSense.Minimize);
modelMin.AddObjective(objective);
// copy the model and change its sense to maximize
var modelMax = modelMin.DeepClone();
modelMax.Objectives.First().Sense = ObjectiveSense.Maximize;
using (var mipclSolver = new MipCLSolver())
{
var solutionMin = mipclSolver.Solve(modelMin);
// expected: objective == 12 (2 in mipcl), bestbound <= 12 (2 in mipcl)
// mipcl: getObjLowerBound() == 0, getObjBound() == 0
Console.WriteLine("model {0}: objective: {1} // bestbound: {2}", "min", solutionMin.ObjectiveValues.First(), solutionMin.BestBound);
var solutionMax = mipclSolver.Solve(modelMax);
// expected: objective == 19 (9 in mipcl), bestbound >= 19 (9 in mipcl)
// mipcl: getObjLowerBound() == 0, getObjBound() == 18
Console.WriteLine("model {0}: objective: {1} // bestbound: {2}", "max", solutionMax.ObjectiveValues.First(), solutionMax.BestBound);
}Normalizing all Expressions before Transforming the Model...
Normalizing Constraints...
0
Normalizing OperatorConstraints...
Normalizing Objectives...
- Creating MIPCL model
- Preparing objective
- Preparing variables
- Found 1 variabls, 2 constraints and 2 non-zero terms
- Creating MIPCL variables
- Creating MIPCL constraints
Start preprocessing: Rows - 2, Cols - 1 (Int - 1, Bin - 0), NZs - 2
After preprocessing: Rows - 0, Cols - 0 (Int - 0, Bin - 0), NZs - 0
Preprocessing Time: 0.000
- Model has 1 variables
- Model has 1 integer variables
- Model has 0 binary variables
- Model has 2 constraints
- Model has 2 non zero elements
- Solving MIPCL model
NOTE: Your current objective contains a constant value of 10. MIPCL does not provide an API to set this value. During the solution process, the logged objective values will NOT CONTAIN the constant. However, after a solution is returned by MIPCL, the constant value will be added to the result. YOU DO NOT NEED TO WORRY ABOUT IT :)
===========================================
MIPCL version 1.6.2
Solution time: 0.010
Branch-and-Cut nodes: 1
Objective value: 2.0000 - optimality proven
- Finished MIPCL model in 0:00:29,2345084: ModelStatus: Feasible, SolutionStatus: Optimal, Objective: 12
model min: objective: [C, 12] // bestbound: 10
Normalizing all Expressions before Transforming the Model...
Normalizing Constraints...
0
Normalizing OperatorConstraints...
Normalizing Objectives...
- Creating MIPCL model
- Preparing objective
- Preparing variables
- Found 1 variabls, 2 constraints and 2 non-zero terms
- Creating MIPCL variables
- Creating MIPCL constraints
Start preprocessing: Rows - 2, Cols - 1 (Int - 1, Bin - 0), NZs - 2
After preprocessing: Rows - 0, Cols - 0 (Int - 0, Bin - 0), NZs - 0
Preprocessing Time: 0.001
- Model has 1 variables
- Model has 1 integer variables
- Model has 0 binary variables
- Model has 2 constraints
- Model has 2 non zero elements
- Solving MIPCL model
NOTE: Your current objective contains a constant value of 10. MIPCL does not provide an API to set this value. During the solution process, the logged objective values will NOT CONTAIN the constant. However, after a solution is returned by MIPCL, the constant value will be added to the result. YOU DO NOT NEED TO WORRY ABOUT IT :)
===========================================
MIPCL version 1.6.2
Solution time: 0.009
Branch-and-Cut nodes: 1
Objective value: 9.0000 - optimality proven
- Finished MIPCL model in 0:00:18,1798458: ModelStatus: Feasible, SolutionStatus: Optimal, Objective: 19
model max: objective: [C, 19] // bestbound: 28