Re: [eclipse-clp-users] Q: Linear Programming with Disjunction constraints

From: Mark Wallace <mark.wallace_at_infotech.monash.edu.au>
Date: Sat, 26 Apr 2008 13:26:16 +1000
Hi Kim and Kish,

>Kim Lai wrote:
> > hi, I found a strange behavior about the big-M constraints in eplex.
> > Two code snippet with the same logic result in different opt solution.
> > For code 1:
> > => [A1, A2, A3] = [0, 0.2, 0] , Cost = 2.5
> > For code 2:
> > => [A1, A2, A3] = [ 0, 0.1, 2.6], Cost = 3.9
>...
> >
> > Is there any thing that I misunderstand or need to set up ?
> >
>
>  
>
Actually what is wrong about the model is that the decision variables 
are unbounded:

>    Vars = [A1, A2, A3 ],   Vars $:: 0..inf,             

so it doesn't matter how big your bigM is it can't be big enough!
Just set
Vars = [A1, A2, A3 ],   Vars $:: 0.0..1000000.0,  
and you get the same answer from both code 1 and code 2.

It is an error in the ECLiPSe/eplex software that eplex returns a 
non-optimal solution in your case: logically the optimal
solution should not have been excluded just because your decision 
variables were unbounded.
 
Curiously if M is set to 1million, the following equations can be 
satisfied (which they should be - just set B2=1):
  A3 - A2 $=< -0.2 + 
(1-B2)*M,                                                                                                         

    (A3 - A2) + B2*M $>= 2.5,

  A3 - A2 $=< 
-0.2,                                                                                                         

  A3 - A2 + M $>= 2.5,

but if M is increased to 10million, then ECLiPSe says no.
This is a bug, but I'm not sure if it's in ECLiPSe or the external 
linear solver!

    Cheers
        Mark   

-- 
Mark Wallace
Faculty of Information Technology
Monash University
Building 63, 
Clayton
Vic 3800
Australia
Tel: +61 3 9905 1367
Fax: +61 3 9905 8731
Received on Fri Apr 25 2008 - 20:26:23 CEST

This archive was generated by hypermail 2.2.0 : Thu Feb 02 2012 - 02:31:58 CET