I am not sure what you understand under non-decision variables. CPLEX does not distinguish between decision and non-decision variables. It just has variables. I have no idea what GAMS does and how it translates that to CPLEX.
How complete your MIP start needs to be depends on the effortlevel you specify for the start (see here). If you don't provide values for all variables then you want a level of at least CPX_MIPSTART_SOLVEFIXED (2). With this CPLEX fixes all variables for which you provided values and solves the resulting reduced problem. If the resulting problem is a MIP (because you did not specify values for all discrete variables) then CPLEX processes at most CPX_PARAM_SUBMIPNODELIM (CPX_PARAM_SUBMIPNODELIMIT since version 12.8) nodes to solve this reduced mip.
So I can see 3 potential reasons why things fail for you:
-
You chose an effort level that is too small.
-
Even with your fixings the resulting problem is too hard to be solved in a few nodes.
-
Your MIP start is infeasible (for whatever reason)
I don't know GAMS, so unfortunately I cannot tell you how to change the effort level in GAMS. For the 3rd problem, if GAMS can export a MIP start (MST file) then you can use the interactive optimizer to check the MIP start:
CPLEX> read model.lp
CPLEX> read mipstart.mst
CPLEX> conflict 1
CPLEX> disp conf all
This runs the conflict refiner on your MIP start and will tell you why CPLEX considers your MIP start infeasible (or will tell you that your MIP start is not considered infeasible).
#CPLEXOptimizers#DecisionOptimization