MIQP under Solver Foundation: does GapTolerance work?

51 views
Skip to first unread message

erwin

unread,
Oct 17, 2011, 10:04:45 AM10/17/11
to Gurobi Optimization
I helped with a small MIQP model where the client sees strange
behavior. If the ordering of the data is changed, then the solution
(ie obj) is different. I already tried to set the GapTolerance to
zero, but still see funny behavior:

Version: Microsoft Solver Foundation 3.0.2.10889 Express Edition
Capabilities Applied: MIQP
...
Solver Selected: SolverFoundation.Plugin.Gurobi.GurobiSolver
Directives:
MixedInteger(GapTolerance = 0, QuickFeasibility = False,
CuttingPlaneGeneration = True, LocalSearch = True, Simplex(TimeLimit =
-1, MaximumGoalCount = -1, Arithmetic = Default, Pricing = Default,
IterationLimit = -1, Algorithm = Default, Basis = Default,
GetSensitivity = False))
===Solution Details===
Objective (sum squared deviations): 6.66847222222896E-05


MixedInteger(GapTolerance = 0, QuickFeasibility = False,
CuttingPlaneGeneration = True, LocalSearch = True, Simplex(TimeLimit =
-1, MaximumGoalCount = -1, Arithmetic = Default, Pricing = Default,
IterationLimit = -1, Algorithm = Default, Basis = Default,
GetSensitivity = False))
===Solution Details===
Objective (sum squared deviations): 5.6155555555654E-05

Any suggestions to help prevent Gurobi from what I suspect is
premature termination are appreciated.

Thanks, Erwin

Greg Glockner

unread,
Oct 17, 2011, 10:56:06 AM10/17/11
to gur...@googlegroups.com
For a QP, Gurobi solves for the KKT conditions. Can you try to reduce the feasibility tolerance rather than the optimality tolerance?

erwin

unread,
Oct 18, 2011, 2:17:51 PM10/18/11
to Gurobi Optimization

Thanks! That helped a little bit. But I understand the client still
has issues using some data sets with getting different solutions
(including different objectives) just be changing the order of the
input. The problem is tiny and not too badly scaled. May be a
tolerance issue, or just a problem near obj=0 where the obj becomes
essentially flat.

As a work-around, I created a MIP version (replaced y^2 by abs(y)) and
I heard back that this behaved much better. So client is happy again.

Thanks, Erwin

Greg Glockner

unread,
Oct 18, 2011, 2:20:15 PM10/18/11
to gur...@googlegroups.com
If I understand correctly, they get an alternate optimal solution when they permute the variables. Of course, that's always possible. If it's troubling, it sounds like the objective should be modified so that it reflects the true desired solution.

erwin

unread,
Oct 18, 2011, 2:37:56 PM10/18/11
to Gurobi Optimization
From the logs I saw the obj was also jumping up and down more than I
was comfortable with. I don't think they wanted persistency added to
the model, just getting rid of the nonoptimal objs that looked a
little bit worse than noise.

Anyway the mip formulation did not show this behavior. I have not
heard any complaints yet.

Erwin
Reply all
Reply to author
Forward
0 new messages