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

Matthew Saltzman mjs at ces.clemson.edu
Wed Nov 19 10:29:09 EST 2003


On Wed, 19 Nov 2003, John J Forrest wrote:

> 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

John-

I have a copy of some pages from the MPSX/370 V2 Program Reference Manual.
On p276, it discusses "MIP/370 CONVERT Data" and contains the following:
After describing the designation of integer variables with markers, it
says

	Each integer variable is always given finite upper and lower
	bounds.  This is either done explicitly or the system does it by
	default.  Default values are 0 for the lower bound and 1 for the
	upper bound.

The paragraph has a change bar in the left margin.

It seems like this should work for BV and UI designators in the BOUNDS
section as well as for markers.  To specify a variable as general integer
in the BOUNDS section, one would need to specify either LI or UI or both.
Failing to specify a UI would result in an upper bound of 1 (to conform to
the MPSX spec above) or to a system-specified upper bound, whichever we
decide is "right".  (The CPLEX manual suggests that no UI means no upper
bound, but it should probably mean the internal integer max upper bound,
whatever that is.  The XPRESS manual doesn't specify the default UI
value.)  When writing out, if the upper bound has the default value (1 or
the system max value), then just don't write it out.

I can't recall now where I saw it--I assume it's in the manual, but it's
not on my photocopies--but I'm pretty sure I once read that the max value
for an integer upper bound in MPSX/370 was 32767.

Useful?

		Matt



>
> 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
>
>

-- 
		Matthew Saltzman

Clemson University Math Sciences
mjs AT clemson DOT edu
http://www.math.clemson.edu/~mjs



More information about the Clp mailing list