Optimization problems occasionally yield unbounded solutions. To find the cause one can modify the model and solve it to gain information. This is done through the imposition of “artificially” large bounds. Linear programming solvers discover unboundedness when they find a variable which is attractive to make larger, but find that the variable may be increased without limit. In GAMS some solvers return such information but typically only one unbounded variable will be reported, if any and there may be numerous other variables which have not been examined and could be unbounded. Unfortunately, the LST file does not generally give enough information to diagnose and fix the cause of the unboundedness and pre-solves rarely find such problems. Commonly, the solution report contains an instance where a particular item is tagged as unbounded (with the marker UNBND), but there will also be other variables marked as non-optimal (NOPT) which may or may not be unbounded. Finally, note that use of GAMSCHK ANALYSIS and correction of all identified problems and models still can be bounded. Thus, most modelers will occasionally contend with models that are unbounded and will need to discover what is causing that condition.
Sometimes models do odd things like reporting problems as infeasible, stuck or falsely optimal when scaling is the real issue. To avoid this or correct such issues it is often desirable to check scaling and in turn rescale the model or ask the solvers to employ more aggressive scaling.
In terms of solver scaling most LP/MIP solvers do automatic scaling and a number have the option to apply a more aggressive scaling to numerically difficult models, e.g. Cplex option scanind, Gurobi option scaleflag, or Xpress option scaling. However, modelers can typically do better because they know how certain variables and equations are interrelated and can scale with common factors while the solvers do not have that knowledge. Generally, for difficult problems it is desirable to do the scaling as discussed below then let the solver scale as well. Scaling is typically not a concern for small problems.
I was talking to the GAMS staff and they informed me as to what their most common supportcalls involve. One of them involves fixing bad results. In this and the next couple of newsletters. I will cover how to diagnose problems within models that don’t work right. Also in the next section I will cover an integer programming issue that commonly comes up.