[Coin-discuss] GLPK AND SYMPHONY not getting the same solutions

Ted Ralphs tkralphs at lehigh.edu
Wed Oct 19 12:44:18 EDT 2005


Hi Andrew,

Under the heading "BOUNDS Section" and the subheading "Default Bounds,"
the OSL manual says the following:

"For integer variables, the default bounds on columns are 0 and 1.
(WARNING, if you want a very large bound for an integer variable,
explicitly set it to 1020. DO NOT specify a value larger than 1020, or
leave the value unspecified, thinking that the result will be "unbounded.")"

Hope this clarifies things. Perhaps John Forrest could comment.

Cheers,

Ted

Andrew Makhorin wrote:
>>Yes, this is exactly the problem. According to the MPS standard, any
>>integer variable without bounds is assumed to be binary. The COIN MPS
>>reader complies with this standard, but not all readers do (GLPKs reader
>>does not, for instance).
> 
> 
> OSL documentation says (chapter "Passing Your Model Using Mathematical
> Programming System (MPS) Format", section "Integer Data"):
> 
>         General Integer Variables
>             
>         For general integer variables, the following indicates the
>         various values you may use for the fields:
> 
>         If you are defining general integer variables, field 1 must
>         be blank and field 5 must contain the value 'INTORG'
>         (including the quotation marks) in the record that denotes
>         the start of integer variables. In the record that denotes
>         the end of integer variables, field 1 must be blank and
>         field 5 must contain the value 'INTEND'.
>             
>         You can select any name for field 2 as long as it is
>         different from the preceding and following column names.
>             
>         Field 4, although ignored, must be blank in free format.
>             
>         All variables between the INTORG and INTEND markers are
>         taken as integer variables if the intunit parameter in
>         the call to EKKMPS is nonzero.
> 
> And this is clarified by the following example:
> 
>         The following is an example of defining general integer
>         variables:
> 
> *234567890123456789012345678901234567890123456789012345678901234567890
> COLUMNS
>     COL01     OBJ                1.0
>     COL01     ROW01              3.0   ROW05              5.6
>     COL02     ROW01              1.0   ROW02              2.0
> *
> *  Mark COL03 and COL04 as integer
> *
>     INT1      'MARKER'                 'INTORG'
>     COL03     ROW02              1.1   ROW03              1.0
>     COL04     ROW01             -2.0   ROW04              2.8
>     INT1END   'MARKER'                 'INTEND'
> *
>     COL05     OBJ                2.0
>     COL05     ROW01             -1.0   ROW05              1.0
>     COL06     ROW03              1.0
>     COL07     ROW04             -1.2
>     COL08     OBJ               -1.0
>     COL08     ROW01             -1.0   ROW05              1.9
>     
>         Here, the columns named COL03 and COL04 must take on integer
>         values.
> 
> I didn't find any points that "any integer variable without bounds is
> assumed to be binary".
> 
> Andrew Makhorin,
> maintainer of glpk
> 
> (Sorry, if my message sent twice due to incorrect clock settings.)


-- 
Dr. Ted Ralphs
Assistant Professor
Industrial and Systems Engineering
Lehigh University
(610)758-4784
tkralphs at lehigh.edu
www.lehigh.edu/~tkr2



More information about the Coin-discuss mailing list