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

John J Forrest jjforre at us.ibm.com
Wed Nov 19 09:38:20 EST 2003


Jean-Sebastien,

Life is not so simple.  The original MPSX standard used markers in the 
COLUMNS section but most modern codes find UI and BV to be more elegant 
and intuitive.  But UI has to have some value as blank would mean 0.0.

I think there has to be some arbitrary value as doubles can only go up to 
1.0e17 before adding 1.0 makes no difference - and that would completely 
mess up any algorithm.

I could go back to markers but it is not logical to mix the two types and 
it would look ugly.

There has been discussion on replacing MPS format and that is probably the 
correct place to get it right.

John Forrest





Jean-Sebastien Roy <js at jeannot.org> 
Sent by: coin-lpsolver-admin at www-124.southbury.usf.ibm.com
11/17/2003 02:18 PM

To
John J Forrest/Watson/IBM at IBMUS
cc
coin-lpsolver at www-124.southbury.usf.ibm.com
Subject
Re: [Coin-lpsolver] Problem when writting mps files with integer 
constraints






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
_______________________________________________
Coin-lpsolver mailing list
Coin-lpsolver at www-124.ibm.com
http://www-124.ibm.com/developerworks/oss/mailman/listinfo/coin-lpsolver

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://list.coin-or.org/pipermail/clp/attachments/20031119/62e80690/attachment.html>


More information about the Clp mailing list