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

Andrew Makhorin mao at gnu.org
Tue Oct 18 13:44:08 EDT 2005


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




More information about the Coin-discuss mailing list