Comments (2)
  • Add a Comment
  • Edit
  • More Actions v
  • Quarantine this Entry

1 geffer commented Permalink

It tries to find a better feasible solution. If it fails, then it has proven that the input feasible was indeed optimal.

 
I think how to add optimal solution is important.
If treat as normal constraint, the possibility you mention above doesn't exist.
If treat as user cut or lazy constraint, time expenditure would be different because of you mentioned.

2 JeanFrancoisPuget commented Permalink

I'm afraid I failed to convey the point given your comment.

 
Let me try again.
 
A solution isn't a constraint... Here solutions are input as mipstart. You can look at CPLEX documentation, but here is a short explanation.
 
Assume a minimization problem. When a mipstart is provided, CPLEX checks it is a feasible solution, and it computes its objective value z. Then z is used as an *upper* bound during its branch and bound. It means that CPLEX is only looking for feasible solutions with an objective value smaller than z.
 
The point is that in those experiments z isn't used as a *lower* bound. If one was adding the constraint that the objective function had to be larger than z, then the branch and bound tree would be much smaller, probably limited to one node if there are no numerical issues. I guess that's what you mean by "treat as a normal constraint".