Decision Optimization

Decision Optimization

Delivers prescriptive analytics capabilities and decision intelligence to improve decision-making.


#Analytics
#DecisionOptimization
#DecisionOptimization
 View Only
  • 1.  How complete does a MIP start solution have to be

    Posted 05/29/18 10:42 AM

    Originally posted by: PetBe


    Hi all,

    I am trying to start a MIP with a feasible solution. Somehow I have troubles doing that. I use the optionfile in GAMS and set "mipstart=1" and I fix the values of the decision variables. When I try to run the model I get the error message: "Processing 1 MIP starts.
    MIP start 'm1' defined no solution.
    Warning:  No solution found from 1 MIP starts."

     

    I am sure that my solution is feasible. However I only fix the values of the decision variables (that are optimized by CPLEX). But I have more variables in my model (that are calucalted, but not optimized) and now the question comes up, if I have to specify all of those variables in order to make a solution count as a Mip Start solution?

     

    I'd appreciate any comment. Thanks in advance


    #CPLEXOptimizers
    #DecisionOptimization


  • 2.  Re: How complete does a MIP start solution have to be

    Posted 05/29/18 11:07 AM

    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:

    1. You chose an effort level that is too small.
    2. Even with your fixings the resulting problem is too hard to be solved in a few nodes.
    3. 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


  • 3.  Re: How complete does a MIP start solution have to be

    Posted 06/08/18 03:30 AM

    Originally posted by: PetBe


    Thanks a lot DanielJunglas for your answer (and sorry for my late reply),

     

    I have meanwhile found an undoubtlessly feasible solution regarding 2 of the 3 discrete (binary) variables that I have in my model. This solution - if tested for feasibility - is accepted by GAMS and the objective value is calcualted.
    However, when I want to use this solution as a MIP start I always get the error message mentioned above "... MIP start 'm1' defined no solution...". I tried all the MIP Start parameters in the CPLEX option file (from 1 to 6) but all effort levels yield the same error message.

    Now I set the value of the other discrete variable to 0.5 (this is something that was suggested in a GAMS forum). Now the MIP Start is accepted but the inital solution has a gap of 100 % which is kind of strange to me. So basically I have two questions:
    1) Could you think about a reason why my feasible solution - with fixing values for 2 of the 3 discrete variables -is not accepted as a Mip Start regardless of the effort level? You mentioned 3 possible reasons above. Reason 1. and 3. are not valid any more. So it could be reason 2. "Even with your fixings the resulting problem is too hard to be solved in a few nodes." Is there a way how to check that or even how to tackle this problem?
    2) Would you consider the approch of assigning a wrong value to the other discrete variable to be appropiate regarding CPLEX? Or could you think about another possible way how to do that?


    #CPLEXOptimizers
    #DecisionOptimization


  • 4.  Re: How complete does a MIP start solution have to be

    Posted 06/08/18 04:16 AM

    About the gap: does the best bound happen to be 0? If the best bound is 0 then CPLEX displays a 100% gap no matter what the current best solution is.

    About the MIP starts: assigning a fractional value to a discrete variable seems very odd. And it seems even more weird that this then results in a valid feasible solution during MIP start processing. If that is a proven strategy in GAMS then maybe something odd is happening in GAMS?

    Can you export model and MIP start from GAMS and try to reproduce this with the interactive optimizer? If you cannot (no idea whether you can export MIP starts from GAMS), can you export the model and post it here or by email and just tell which are the fixings in your MIP start? Then I could try to figure out what happens. This all seems very weird at first glance.


    #CPLEXOptimizers
    #DecisionOptimization


  • 5.  Re: How complete does a MIP start solution have to be

    Posted 06/08/18 07:54 AM

    Originally posted by: PetBe


    Thanks DanielJunglas for your answer,

     

    About the gap: Yes, the best bound is 0.

    About the MIP starts: I got an answer from GAMS support and here is what I understood out of it: They say that if you do not assign a value to some discrete variables for a Mip Start their default value is 0. Because of this my initial MIP Start solution (with values for 2 out of 3 discrete variables) is considered infeasible for a Mip Start. If you however set the initial value (not fix it) of the missing discrete variable to a certain value, all discrete variable levels are considered for the MIP start and this is why the solution is then accepted because CPLEX/GAMS finds appropitate values for the third discrete variable.


    #CPLEXOptimizers
    #DecisionOptimization


  • 6.  Re: How complete does a MIP start solution have to be

    Posted 06/08/18 08:02 AM

    OK, if I understand correctly then this is an "issue" somewhere in GAMS and there is nothing CPLEX team can do. Please correct me if I got this wrong and we still have to do something to get your code working.


    #CPLEXOptimizers
    #DecisionOptimization