[Coin-lpsolver] Problem when writting mps files with integer constraints

Jean-Sebastien Roy js at jeannot.org
Mon Nov 17 14:18:45 EST 2003


On Mon, 17 Nov 2003 06:13:43 -0500
John J Forrest <jjforre at us.ibm.com> wrote:

> I have modified CoinMpsIO.cpp.  I can't remember whether we have had
> the discussion about the correct range of integer variables. 

(I do not remember seeing a discussion about this either.)

> I have modified the code so it reduces integer bounds to be between
> -INT_MAX and +INT_MAX. If anyone has other suggestions I can fix but I
> refuse to allow integer variables to go up to DBL_MAX!

Thanks for the fix !

While it seems reasonable not to allow integer variables up to DBL_MAX
(at least internaly), the resulting MPS file is quite strange with a
bound line: UI BOUND     C0000002  2.147484e+09
that introduce an articifial, implementation dependent (and which should
even be platform dependent) constant (2.147484e+09).
double floats can represent exact integers larger than that so even this
constant seems arbitrary to me.
Moreover, DBL_MAX is more a way to write +inf in the code than it is a
true bound (which is reflected by the absence of this value in the MPS
files : DBL_MAX upper bounded variables appears as unbound).
I'm absolutely no expert like you are about LP, but may adding such a
bound introduce scaling problems when solving the relaxed problem ?
FInally, introducing an arbitrary upper bound makes
analysing and manipulating (scaling for example) MPS files quite
difficult.

Wouldn't it be simpler to output the exact model input by the user, with
unbound, integer variables, even if internally, all these variables are
constrained to some platform dependent suitable range ?

Regards,

js



More information about the Clp mailing list