Decision Optimization

Decision Optimization

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

 View Only
  • 1.  cplexbilp tollerance

    Posted Wed February 05, 2014 07:09 AM

    Originally posted by: giask1


    I use this call to cplexbilp from matlab

    rhs_b1=1.90.*ones(length(beq),1);

    rhs_b2=1.90.*ones(length(beq),1);

    %solves the binary integer programming problem min f*x.

    [X,fval,exit_flag,output]=…

    cplexbilp(f_min,[Aeq;-Aeq],[(beq+rhs_b1(:));-(beq-rhs_b2(:))],[ ],[],X_guess,options);% Aineq*x < & > bineq.

     

    Instead of the simpler:

     

    [X,fval,exit_flag,output]=…

    cplexbilp(f_min,[],[],Aeq,beq,X_guess,options); % Aeq*x = bineq

     

    this because I have not find the way to control the tolerance on the equality constraints

    %options.mip.tolerances.absmipgap=2; % ????

     

    everything works perfectly but I guess that my workaround (with a larger matrix of coefficients) makes the problem computationally heavier.

    Any suggestion? Thank you in advance. g


    #CPLEXOptimizers
    #DecisionOptimization


  • 2.  Re: cplexbilp tollerance

    Posted Thu February 06, 2014 03:02 AM

    Do I understand correctly: you want to allow each equality constraint to be violated by up to 1.9?


    #CPLEXOptimizers
    #DecisionOptimization


  • 3.  Re: cplexbilp tollerance

    Posted Thu February 06, 2014 03:11 AM

    Originally posted by: giask1


    Daniel, you understant correctly :  I like to allow equality constraints violation.

    options.mip.tolerance.absmipgap      does not seem to work . is it the right parameter to set ? 

    thank you , gian

     

     


    #CPLEXOptimizers
    #DecisionOptimization


  • 4.  Re: cplexbilp tollerance

    Posted Thu February 06, 2014 04:21 AM

    No, absolute MIP gap is not the right parameter to use, see its documentation here.

    In fact, I don't think that violations in that order of magnitude should be handled by fiddling with tolerances. Instead you should just build up your model to allow for the desired slack.

    An alternative to turning all equality constraints into inequalities would be do add to each equation an additional variable that can take values in [-1.9,1.9]. This would allow for the desired slack in the equations. If that works better/faster than the formulation with all inequalities may depend on your concrete model/data.


    #CPLEXOptimizers
    #DecisionOptimization


  • 5.  Re: cplexbilp tollerance

    Posted Thu February 06, 2014 10:38 AM

    Originally posted by: Mark L. Stone


    Yes, as I think Danie is suggesting, why not specify the "equalities", for which you desire to allow a large violation, as (2-sided if desired) inequalities, with the desired violation built into the inequalities?  So these are really inequalities (maybe 2 sided), not equalities.


    #CPLEXOptimizers
    #DecisionOptimization