Originally posted by: SystemAdmin
One cannot say this in advance, but I am pretty sure that these large objective coefficients will cause trouble. Note that for bounds of variables, CPLEX would treat values equal or larger than 1e+20 as infinity. And since objective function coefficients in the primal are right hand side values in the dual, I wouldn't be so sure whether everything works well if you use 1e+20 in the objective...
If this is a hierarchical objective function, I think you would be better off by solving this in consecutive rounds instead of merging everything into a single objective function. What I mean is the following:
Let's assume your first level variables are called x (these are the ones with 1e+20 objective function coefficients), your second level variables are called y (the 1e+10 objectives) and the remaining variables are called z. Then you first solve the model with the objective coefficients set to 1 for x and 0 for all other variables. This will give you the optimal objective value X that you can get from the first level decision. Then you add this as a constraint. If you are minimizing, this would be sum x_i <= X.
Replace the objective function using 1 for all y and 0 for everything else. Solve again to get objective value Y. Finally, add constraints sum y_i <= Y, install the objective function on z, and solve the model again to get the final optimal solution to your hierarchical objective function model.
On the first sight it sounds strange to replace a single optimization with three, but merging three different objectives into a single one can often cause more pain (both in terms of performance and numerical stability) in a single solve than you would have in three individual solves.
Tobias
#DecisionOptimization#MathematicalProgramming-General