Originally posted by: SystemAdmin
I don't know exactly what you mean with "ineffective". Is it
(a) that this just does not help to improve performance, or
(b) that you do not see any effect of your cut?
Are you doing this at the root node, or at local nodes? If at local nodes, are you adding local cuts or global cuts?
If you are adding global cuts at local nodes, it is clear that CPLEX cannot immediately improve the global dual bound (because it does not understand that this cut is parallel to the objective function). It first has to process all nodes that have a current lower bound that is smaller than your "eps" improvement.
But in any case, I am pretty sure that the strategy you are suggesting will not improve performance. I also experimented with this idea. In contrast, it really hurts performance to add cuts that are parallel to the objective function.
The reason is most probably that such a cut adds a significant amount of degeneracy to your model. This means, CPLEX will have to search pretty long on the usually high dimensional face that you have introduced with all points on the face having the same objective value. Consequently, every branching decision that CPLEX makes will look as if completely ineffective (those decisions are mainly evaluated by their impact on the dual bound in the two child nodes). Therefore, all variables will look alike and the branching strategy will not be much better than just randomly selecting a variable.
Tobias
#CPLEXOptimizers#DecisionOptimization