Decision Optimization

Decision Optimization

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

 View Only
Expand all | Collapse all

Help please!! Absurdity in a Relaxed LP: WHY Dual objective equal to ZERO in all iterations?

  • 1.  Help please!! Absurdity in a Relaxed LP: WHY Dual objective equal to ZERO in all iterations?

    Posted Thu February 19, 2015 09:38 AM

    Originally posted by: Zak86


    Hi Cplex users,

     

    Anyone may help me in this problem please ?

    I have to minimize sum( x[i] ) where i in [1 .. N ] and x[ ] a binary array variable ( the output solution variable ) .

    The, binary LP, original problem (x[] binary)  gives me a logic solution with an optimal status and value = to 7 .

     

    However, when relaxing the problem ( just to put x[ ] continuous in [0 1] using, in JAVA,  IloConversion conversion1 = cplex.conversion(x, IloNumVarType.Float); cplex.add(conversion1);  and without any other modification on constraints ) ,it gives me also optimal solution status, however with  a value = to zero .

     

    This latter "Relaxed" Solution value ( zero )  is really absurd !  First, because i have a very clear constraint in which we must have at least one x[i] <> 0 . Second,  (even without considering this constraint) ,  if the Zero solution is the optimal one, the original binary problem must give this solution.

     

    Note that when i read the output message, Cplex uses, automatically, the branch and bound/cuts method for the binary LP and uses the dual SIMPLEX for the relaxed LP. 

     

    These are the ends of the output log of the 1) ORIGINAL LP and 2) RELAXED LP .

     

    1) OUTPUT log for the original LP ( x binary in { 0 , 1 } ):

     

    Elapsed time = 12.76 sec. (5572.86 ticks, tree = 1.23 MB, solutions = 3)
       2313   355        cutoff              7.0000        5.8042   144000   17.08%
    Cover cuts applied:  56
    Implied bound cuts applied:  62
    Flow cuts applied:  4
    Mixed integer rounding cuts applied:  18
    Zero-half cuts applied:  11
    Root node processing (before b&c):
      Real time             =    5.24 sec. (2120.75 ticks)
    Parallel b&c, 4 threads:
      Real time             =   10.76 sec. (4851.85 ticks)
      Sync time (average)   =    0.00 sec.
      Wait time (average)   =    0.00 sec.
                              ------------
    Total (root+branch&cut) =   16.00 sec. (6972.60 ticks)
     
    Solution pool: 3 solutions saved.
     
    MIP - Integer optimal solution:  Objective =  7.0000000000e+00
    Solution time =   16.03 sec.  Iterations = 154949  Nodes = 2749
    Deterministic time = 6972.60 ticks  (434.96 ticks/sec)

    2) OUTPUT log for the RELAXED LP ( x continous in [ 0 , 1 ] ):

    Reinitializing dual norms . . .

    Markowitz threshold set to 0.1
    Iteration log . . .
    Iteration:     1   Dual objective     =             0.000000
    Markowitz threshold set to 0.99999
    .......
    ........
    Iteration:    37   Dual objective     =             0.000000
    Iteration:    38   Dual objective     =             0.000000
    Iteration:    39   Dual objective     =             0.000000
    Iteration:    40   Dual objective     =             0.000000
     
    Dual simplex solved model.
    Maximum unscaled bound infeasibility = 0.846065.

    Dual simplex - Optimal:  Objective =  0.0000000000e+00

    Solution time =    1.03 sec.  Iterations = 62 (0)
    Deterministic time = 709.00 ticks  (688.03 ticks/sec)

    THANK YOU VERY MUCH FOR YOUR HELP !!

    Zak,

     


    #CPLEXOptimizers
    #DecisionOptimization


  • 2.  Re: Help please!! Absurdity in a Relaxed LP: WHY Dual objective equal to ZERO in all iterations?

    Posted Tue February 24, 2015 01:56 AM

    Like I said here, it is perfectly fine for the relaxed problem to have a better objective than the original problem. The fact that the constraint x[i]>0 does not seem to have an effect may be due to bad numerics, see my other post for more details.


    #CPLEXOptimizers
    #DecisionOptimization


  • 3.  Re: Help please!! Absurdity in a Relaxed LP: WHY Dual objective equal to ZERO in all iterations?

    Posted Tue February 24, 2015 04:32 AM

    Originally posted by: Zak86


    Yes Daniel, Thank you;.

    I see your other answer. However, please how do you see this coefficient of the order of .....e+308?

    is it in the .sav or .prm file ? What command de you make exactly to read the file and see this value ?

    Indeed, in the simple console of Eclipse , i see only a 0-value.

    Thank you,

    Zak


    #CPLEXOptimizers
    #DecisionOptimization


  • 4.  Re: Help please!! Absurdity in a Relaxed LP: WHY Dual objective equal to ZERO in all iterations?

    Posted Wed February 25, 2015 01:16 AM

    I found the ...e+308 using the interactive optimizer:

    CPLEX> read model.sav
    CPLEX> disp prob stats

    This displays minimal and maximal coefficients etc.


    #CPLEXOptimizers
    #DecisionOptimization