Originally posted by: TomaszGorski
I often use cplex to solve problems in iterative way, fixing some variable values in between solver runs. This gives good results, but there are numerical results related to it.
Example:
I solve the problem with integer variable x. CPLEX assigns value 1.0000001 to it, which is allowed given the integrality tolerance. I then want to fix the value of this variable such that it does not change in subsequent runs.
1. Fixing the bounds to be (1.0000001, 1.0000001) is risky/will not work because presolve might conclude that there are no integer values in the range.
2. Fixing the bounds to be (1, 1) will exclude currect value, potentially leading to infeasibility.
3.Fixing the bounds to be (1, 1.0000001) will leave some (very limited) range for the variable, decreasing numerical quality of the problem and decreasing performance. If presolve concludes that the bounds should be rounded to (1, 1) then it is the same as the case (2) above. This is what we do now as most safe.
What would you suggest as best practice in such a case?
#CPLEXOptimizers#DecisionOptimization