Decision Optimization

Decision Optimization

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

 View Only
  • 1.  How to insert a known LP upper bound and/or IP lower bound in an MILP.

    Posted Thu March 31, 2011 10:48 AM

    Originally posted by: bindasmariner


    I have tried inserting as a constraint, but it does not help much in terms of time. Is there an option in the settings file (.ops) to incorporate such known bounds?
    #DecisionOptimization
    #OPLusingCPLEXOptimizer


  • 2.  Re: How to insert a known LP upper bound and/or IP lower bound in an MILP.

    Posted Thu March 31, 2011 12:06 PM

    Originally posted by: SystemAdmin


    Can you please be more precise?
    #DecisionOptimization
    #OPLusingCPLEXOptimizer


  • 3.  Re: How to insert a known LP upper bound and/or IP lower bound in an MILP.

    Posted Fri April 01, 2011 01:55 AM

    Originally posted by: bindasmariner


    I am trying to solve a MILP, with objective being maximized. I know from experimentation that the integer lower bound to the objective function is 5.50. Also when I ran the code for a good length of time the LP relaxation dropped to 9.75.

    So now I know that the optimal solution to my problem lies between UB of 9.75 and LB of 5.50. I want to know if it possible to incorporate this information in the program, so that when I run it for the next time the solution time is less.

    Thanks and Regards
    #DecisionOptimization
    #OPLusingCPLEXOptimizer


  • 4.  Re: How to insert a known LP upper bound and/or IP lower bound in an MILP.

    Posted Thu March 31, 2011 08:49 PM

    Originally posted by: SystemAdmin


    I believe what you are looking for is 'Lower cutoff'/'Upper cutoff' parameters that are available under Mixed Integer Programming > Tolerances. These paramaters would have similar effect as posting constraints for lower/upper bound on objective of a maximization/minimization problem.

    If you know integer feasible solution corresponding to the objective then you might want to try warm starting using IloOplCplexVectors. There is a warmstart example provided in the distribution that illustrates that.

    Regards,
    Faisal
    #DecisionOptimization
    #OPLusingCPLEXOptimizer


  • 5.  Re: How to insert a known LP upper bound and/or IP lower bound in an MILP.

    Posted Fri April 01, 2011 02:06 AM

    Originally posted by: bindasmariner


    Thanks Faisal. I have tried running the maximization MILP after modifying the upper/lower cutoffs as 9.75 and 5.5 in the MILP>tolerances section of my .opf file. I would like to show you the starting engine log of the run:

    Node Left Objective IInf Best Integer Best Node ItCnt Gap

    0 0 17.8591 45 17.8591 126
    0 0 14.9167 48 Cuts: 98 296
    0 0 14.9167 48 Cuts: 52 412
    0 0 14.9167 40 Cuts: 45 534
    0 0 14.9167 38 Cuts: 20 657
    0 2 14.9167 38 14.7500 657
    100 66 infeasible 14.7500 5732
    200 122 12.5510 25 14.7500 9312
    300 181 13.7500 29 14.7500 12780
    400 256 14.6429 28 14.7500 15957
    500 317 infeasible 14.7500 19487
    600 316 13.7500 23 14.7500 26240
    700 335 infeasible 14.7500 31647
    800 336 13.6262 27 14.7500 38991
    900 329 12.4583 22 14.7500 45476
    1000 319 13.9892 13 14.7500 53821
    Elapsed time = 28.34 sec. (tree size = 0.17 MB, solutions = 0)
    I guess this method is not working as an upper/lower bound, otherwise why would the LP solution start with 17 or 14. it should directly jump to 9.75 and below.

    I will surely try the warm-start method as suggested.

    Regards
    Saurabh
    #DecisionOptimization
    #OPLusingCPLEXOptimizer


  • 6.  Re: How to insert a known LP upper bound and/or IP lower bound in an MILP.

    Posted Fri April 01, 2011 01:00 PM

    Originally posted by: SystemAdmin


    The cut off parameters are for cutting off integer feasible solution. And you would use only one of them depending on whether it is a maximization or, minimization problem. There are no integer feasible solution in CPLEX log you posted so, I don't think there is anything wrong with seting.

    Since, CPLEX seems to be having difficulty finding integer feasible solution, warm-starting with a known solution should help.

    Regards,
    Faisal
    #DecisionOptimization
    #OPLusingCPLEXOptimizer