mip01.gms : Test for known XPRESS bug

Description

In this test we run a smallish MIP.  XPRESS used to
return a bogus nonbasic status for some of the continous free vars,
resulting in a bad value for variable x43 in the model below

Contributed by Steve Dirkse, February 2005

   MIP written by GAMS Convert at 12/23/04 10:31:59

   Equation counts
       Total        E        G        L        N        X        C
         151       63       45       42        0        0        0

   Variable counts
                    x        b        i      s1s      s2s       sc       si
       Total     cont   binary  integer     sos1     sos2    scont     sint
         153      132       21        0        0        0        0        0
   FX      5        5        0        0        0        0        0        0

   Nonzero counts
       Total    const       NL      DLL
         490      490        0        0

   Solve m using MIP minimizing x108;


Small Model of Type : MIP


Category : GAMS Test library


Main file : mip01.gms

$title 'Test for known XPRESS bug' (MIP01,SEQ=215)

$ontext
In this test we run a smallish MIP.  XPRESS used to
return a bogus nonbasic status for some of the continous free vars,
resulting in a bad value for variable x43 in the model below

Contributed by Steve Dirkse, February 2005
$offtext

*  MIP written by GAMS Convert at 12/23/04 10:31:59
*
*  Equation counts
*      Total        E        G        L        N        X        C
*        151       63       45       42        0        0        0
*
*  Variable counts
*                   x        b        i      s1s      s2s       sc       si
*      Total     cont   binary  integer     sos1     sos2    scont     sint
*        153      132       21        0        0        0        0        0
*  FX      5        5        0        0        0        0        0        0
*
*  Nonzero counts
*      Total    const       NL      DLL
*        490      490        0        0
*
*  Solve m using MIP minimizing x108;


Variables  x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18,x19
          ,x20,x21,x22,x23,x24,x25,x26,x27,x28,x29,x30,x31,x32,x33,x34,x35,x36
          ,x37,x38,x39,x40,x41,x42,x43,x44,x45,b46,b47,b48,b49,b50,b51,b52,b53
          ,b54,b55,b56,b57,b58,b59,b60,b61,b62,b63,b64,b65,b66,x67,x68,x69,x70
          ,x71,x72,x73,x74,x75,x76,x77,x78,x79,x80,x81,x82,x83,x84,x85,x86,x87
          ,x88,x89,x90,x91,x92,x93,x94,x95,x96,x97,x98,x99,x100,x101,x102,x103
          ,x104,x105,x106,x107,x108,x109,x110,x111,x112,x113,x114,x115,x116
          ,x117,x118,x119,x120,x121,x122,x123,x124,x125,x126,x127,x128,x129
          ,x130,x131,x132,x133,x134,x135,x136,x137,x138,x139,x140,x141,x142
          ,x143,x144,x145,x146,x147,x148,x149,x150,x151,x152,x153;

Negative Variables  x68,x69,x71,x72,x74,x75,x77,x78,x79;

Positive Variables  x10,x11,x22,x67,x70,x73,x76,x80,x81,x83,x84,x86,x87,x89
          ,x90,x93,x96,x97,x98,x100,x101,x103,x104,x105,x106,x109,x110,x111
          ,x112,x113,x114,x115,x116,x117,x118,x119,x120,x121,x122,x123,x124
          ,x125,x126,x127,x128,x129,x130,x131,x132,x133,x134,x135,x136,x137
          ,x138,x139,x140,x141,x142,x143,x144,x145,x146,x147,x148,x149,x150
          ,x151,x152,x153;

Binary Variables  b46,b47,b48,b49,b50,b51,b52,b53,b54,b55,b56,b57,b58,b59,b60
          ,b61,b62,b63,b64,b65,b66;

Equations  e1,e2,e3,e4,e5,e6,e7,e8,e9,e10,e11,e12,e13,e14,e15,e16,e17,e18,e19
          ,e20,e21,e22,e23,e24,e25,e26,e27,e28,e29,e30,e31,e32,e33,e34,e35,e36
          ,e37,e38,e39,e40,e41,e42,e43,e44,e45,e46,e47,e48,e49,e50,e51,e52,e53
          ,e54,e55,e56,e57,e58,e59,e60,e61,e62,e63,e64,e65,e66,e67,e68,e69,e70
          ,e71,e72,e73,e74,e75,e76,e77,e78,e79,e80,e81,e82,e83,e84,e85,e86,e87
          ,e88,e89,e90,e91,e92,e93,e94,e95,e96,e97,e98,e99,e100,e101,e102,e103
          ,e104,e105,e106,e107,e108,e109,e110,e111,e112,e113,e114,e115,e116
          ,e117,e118,e119,e120,e121,e122,e123,e124,e125,e126,e127,e128,e129
          ,e130,e131,e132,e133,e134,e135,e136,e137,e138,e139,e140,e141,e142
          ,e143,e144,e145,e146,e147,e148,e149,e150,e151;


e1..  - 2.28*x73 - 2.28*x76 - 1.68*x80 - 1.68*x82 - 2.28*x85 + x107 =E= 0;

e2..  - x17 + x18 - x67 =E= 0;

e3..  - x6 + x7 - x68 =E= 0;

e4..  - x23 + x24 - x69 =E= 0;

e5..  - x10 - x11 + x12 + x13 - x70 =E= 0;

e6..  - x20 - x71 =E= 0;

e7..  - x3 - x4 + x5 - x72 =E= 0;

e8..  - x1 - x2 + x3 + x4 - x73 =E= 0;

e9..  - x7 + x8 - x74 =E= 0;

e10..  - x12 - x13 + x14 + x15 - x75 =E= 0;

e11..    x6 - x76 =E= 0;

e12..  - x19 + x20 - x77 =E= 0;

e13..  - x16 + x17 - x78 =E= 0;

e14..  - x24 - x79 =E= 0;

e15..  - x9 - x18 + x19 - x80 =E= 0;

e16..  - x22 + x23 - x81 =E= 0;

e17..    x10 + x11 - x82 =E= 0;

e18..  - x21 + x22 - x83 =E= 0;

e19..  - x14 - x15 + x16 + x21 - x84 =E= 0;

e20..    x1 + x2 - x85 =E= 0;

e21..  - x5 - x8 + x9 - x86 =E= 0;

e22..    0.171441607948668*x1 + 29.6475712987489*x25 + 8.99076279639865*x93
       - 8.99076279639865*x105 + x109 - x110 =E= 0.933492412620295;

e23..    0.171441601272821*x2 + 29.6475736076706*x26 + 8.99076279639865*x93
       - 8.99076279639865*x105 + x111 - x112 =E= 0.933492412620286;

e24..    0.608059438332994*x3 + 83.285226048484*x27 + 5.99384186426577*x92
       - 5.99384186426577*x93 - x113 + x114 =E= 5.54919541047039;

e25..    0.608059651973782*x4 + 83.2851675244689*x28 + 5.99384186426577*x92
       - 5.99384186426577*x93 - x115 + x116 =E= 5.54919541047829;

e26..    3.31225570710095*x5 + 205.467704811367*x29 - 1.38319427636902*x92
       + 1.38319427636902*x106 + x117 - x118 =E= 47.4783526503163;

e27..    0.912001255667401*x6 + 15.1621100827725*x30 + 0.0993769948466698*x88
       - 0.0993769948466698*x96 - x119 + x120 =E= 3.55120103838917;

e28..    0.000919458994335796*x7 + 0.0196405039299483*x31
       - 0.147352095807131*x88 + 0.147352095807131*x94 + x121 - x122
       =E= -0.000128857196643815;

e29..    1.02401253338158*x8 + 29.118376447065*x32 - 0.224905830442463*x94
       + 0.224905830442463*x106 + x123 - x124 =E= -5.52571969313141;

e30..    1.92072589956292*x9 + 79.8878462793372*x33 + 0.653873657919902*x100
       - 0.653873657919902*x106 + x125 - x126 =E= 17.1674483352018;

e31..    11.212740307335*x12 + 382.080065171013*x34 - 1.79815255927973*x90
       + 1.79815255927973*x95 + x127 - x128 =E= 219.173959455898;

e32..    1.31505154723441*x13 + 6.07687352689234*x35 - 0.0265962529480588*x90
       + 0.0265962529480588*x95 + x129 - x130 =E= 3.24177505045168;

e33..    5.8448830543316*x14 + 191.736473189268*x36 - 1.43852204742378*x95
       + 1.43852204742378*x104 + x131 - x132 =E= 80.9334760412807;

e34..    0.67247517674705*x15 + 3.16877725664789*x37 - 0.021277002358447*x95
       + 0.021277002358447*x104 + x133 - x134 =E= 1.19707707533436;

e35..    3.39936806740346*x16 + 181.872194406949*x38 + 0.856263123466538*x98
       - 0.856263123466538*x104 - x135 + x136 =E= 45.8438775562256;

e36..    2.0705203224792*x17 + 129.18595445796*x39 + 0.899076279639865*x87
       - 0.899076279639865*x98 - x137 + x138 =E= 23.5335338448435;

e37..    1.01884973395169*x18 + 157.904354074667*x40 - 7.19261023711892*x87
       + 7.19261023711892*x100 - x139 + x140 =E= 12.802865678784;

e38..    4.11626427812865*x19 + 504.631296788268*x41 + 3.59630511855946*x97
       - 3.59630511855946*x100 - x141 + x142 =E= 92.4677608161024;

e39..    4.84719203271307*x20 + 243.859456273986*x42 + 1.43852204742378*x91
       - 1.43852204742378*x97 - x143 + x144 =E= 75.6937508253697;

e40..    0.839534658280487*x21 + 4.58388107520205*x43 + 0.0509935163731392*x103
       - 0.0509935163731392*x104 + x145 - x146 =E= 1.79744371812274;

e41..    3.5361193480341*x23 + 4.58388107520205*x44 + 0.0016882734118691*x89
       - 0.0016882734118691*x101 - x147 + x148 =E= 7.57083158624364;

e42..    0.44721468857422*x24 + 3.68256103370239*x45 - 0.0275751323938619*x89
       + 0.0275751323938619*x99 - x149 + x150 =E= 0.858204991301027;

e43..  - 36.8878419417062*x10 + 7.19261023711892*x90 - 7.19261023711892*x102
       + x151 =G= -340.178220779075;

e44..  - 7.13615799159523*x11 + 0.106385011792235*x90 - 0.106385011792235*x102
       + x152 =G= -12.7311877202521;

e45..  - 4.28200003512473*x22 + 0.00636349209089121*x101
       - 0.00636349209089121*x103 + x153 =G= -4.58388107520205;

e46..    x25 - 2*b46 =E= -1;

e47..    x26 - 2*b47 =E= -1;

e48..    x27 - 2*b48 =E= -1;

e49..    x28 - 2*b49 =E= -1;

e50..    x29 - 2*b50 =E= -1;

e51..    x30 - 2*b51 =E= -1;

e52..    x31 - 2*b52 =E= -1;

e53..    x32 - 2*b53 =E= -1;

e54..    x33 - 2*b54 =E= -1;

e55..    x34 - 2*b55 =E= -1;

e56..    x35 - 2*b56 =E= -1;

e57..    x36 - 2*b57 =E= -1;

e58..    x37 - 2*b58 =E= -1;

e59..    x38 - 2*b59 =E= -1;

e60..    x39 - 2*b60 =E= -1;

e61..    x40 - 2*b61 =E= -1;

e62..    x41 - 2*b62 =E= -1;

e63..    x42 - 2*b63 =E= -1;

e64..    x43 - 2*b64 =E= -1;

e65..    x44 - 2*b65 =E= -1;

e66..    x45 - 2*b66 =E= -1;

e67..  - 5929*b46 - x93 + x105 =G= -5929;

e68..  - 5929*b47 - x93 + x105 =G= -5929;

e69..  - 6400*b48 - x92 + x93 =G= -6400;

e70..  - 6400*b49 - x92 + x93 =G= -6400;

e71..  - 5500*b50 + x92 - x106 =G= -5500;

e72..  - 6400*b51 - x88 + x96 =G= -6400;

e73..  - 5500*b52 + x88 - x94 =G= -5500;

e74..  - 5500*b53 + x94 - x106 =G= -5500;

e75..  - 4382.44*b54 - x100 + x106 =G= -4382.44;

e76..  - 4382.44*b55 + x90 - x95 =G= -4382.44;

e77..  - 4382.44*b56 + x90 - x95 =G= -4382.44;

e78..  - 3482.44*b57 + x95 - x104 =G= -3482.44;

e79..  - 3482.44*b58 + x95 - x104 =G= -3482.44;

e80..  - 4382.44*b59 - x98 + x104 =G= -4382.44;

e81..  - 4382.44*b60 - x87 + x98 =G= -4382.44;

e82..  - 4382.44*b61 + x87 - x100 =G= -4382.44;

e83..  - 4382.44*b62 - x97 + x100 =G= -4382.44;

e84..  - 4382.44*b63 - x91 + x97 =G= -4382.44;

e85..  - 4382.44*b64 - x103 + x104 =G= -4382.44;

e86..  - 4382.44*b65 - x89 + x101 =G= -4382.44;

e87..  - 4382.44*b66 + x89 - x99 =G= -4382.44;

e88..  - 5929*b46 - x93 + x105 =L= 0;

e89..  - 5929*b47 - x93 + x105 =L= 0;

e90..  - 5029*b48 - x92 + x93 =L= 0;

e91..  - 5029*b49 - x92 + x93 =L= 0;

e92..  - 6400*b50 + x92 - x106 =L= 0;

e93..  - 5029*b51 - x88 + x96 =L= 0;

e94..  - 5500*b52 + x88 - x94 =L= 0;

e95..  - 6400*b53 + x94 - x106 =L= 0;

e96..  - 6400*b54 - x100 + x106 =L= 0;

e97..  - 3482.44*b55 + x90 - x95 =L= 0;

e98..  - 3482.44*b56 + x90 - x95 =L= 0;

e99..  - 4382.44*b57 + x95 - x104 =L= 0;

e100..  - 4382.44*b58 + x95 - x104 =L= 0;

e101..  - 4382.44*b59 - x98 + x104 =L= 0;

e102..  - 4382.44*b60 - x87 + x98 =L= 0;

e103..  - 4382.44*b61 + x87 - x100 =L= 0;

e104..  - 4382.44*b62 - x97 + x100 =L= 0;

e105..  - 1882.44*b63 - x91 + x97 =L= 0;

e106..  - 4382.44*b64 - x103 + x104 =L= 0;

e107..  - 3969*b65 - x89 + x101 =L= 0;

e108..  - 3757.44*b66 + x89 - x99 =L= 0;

e109..    x1 - 230.881425454383*b46 =G= -230.881425454383;

e110..    x2 - 230.881425454383*b47 =G= -230.881425454383;

e111..    x3 - 195.858591670881*b48 =G= -195.858591670881;

e112..    x4 - 195.858591670881*b49 =G= -195.858591670881;

e113..    x5 - 87.2213765084548*b50 =G= -87.2213765084548;

e114..    x6 - 25.2192935471771*b51 =G= -25.2192935471771;

e115..    x7 - 28.4681669051455*b52 =G= -28.4681669051455;

e116..    x8 - 35.1707558553061*b53 =G= -35.1707558553061;

e117..    x9 - 53.5309450076729*b54 =G= -53.5309450076729;

e118..    x12 - 88.7710296317997*b55 =G= -88.7710296317997;

e119..    x13 - 10.7961327691767*b56 =G= -10.7961327691767;

e120..    x14 - 70.7782927092091*b57 =G= -70.7782927092091;

e121..    x15 - 8.6078966125965*b58 =G= -8.6078966125965;

e122..    x16 - 61.2578302162646*b59 =G= -61.2578302162646;

e123..    x17 - 62.7705970255575*b60 =G= -62.7705970255575;

e124..    x18 - 177.542059263599*b61 =G= -177.542059263599;

e125..    x19 - 125.541194051115*b62 =G= -125.541194051115;

e126..    x20 - 79.3992226757409*b63 =G= -79.3992226757409;

e127..    x21 - 14.9491145521834*b64 =G= -14.9491145521834;

e128..    x23 - 2.72006561154535*b65 =G= -2.72006561154535;

e129..    x24 - 10.9930142912741*b66 =G= -10.9930142912741;

e130..    x1 - 230.881425454383*b46 =L= 0;

e131..    x2 - 230.881425454383*b47 =L= 0;

e132..    x3 - 173.61748395652*b48 =L= 0;

e133..    x4 - 173.61748395652*b49 =L= 0;

e134..    x5 - 94.0874240733678*b50 =L= 0;

e135..    x6 - 22.3554670513479*b51 =L= 0;

e136..    x7 - 28.4681669051455*b52 =L= 0;

e137..    x8 - 37.939390016601*b53 =L= 0;

e138..    x9 - 64.6899637554959*b54 =L= 0;

e139..    x12 - 79.1325369145847*b55 =L= 0;

e140..    x13 - 9.62392098452798*b56 =L= 0;

e141..    x14 - 79.3992226757409*b57 =L= 0;

e142..    x15 - 9.65635470639685*b58 =L= 0;

e143..    x16 - 61.2578302162646*b59 =L= 0;

e144..    x17 - 62.7705970255575*b60 =L= 0;

e145..    x18 - 177.542059263599*b61 =L= 0;

e146..    x19 - 125.541194051115*b62 =L= 0;

e147..    x20 - 52.0377886055166*b63 =L= 0;

e148..    x21 - 14.9491145521834*b64 =L= 0;

e149..    x23 - 2.58858207745253*b65 =L= 0;

e150..    x24 - 10.1789933422708*b66 =L= 0;

e151..    x107 - x108 + 2.56805524313174E-11*x109 + 2.55391279970258E-11*x111
        + 2.01943285039219E-10*x113 + 1.97489763499426E-10*x115
        + 4.72458685501564E-9*x117 + 4.02476419666052E-10*x119
        + 2.8217280183436E-8*x121 + 3.60569518859414E-8*x123
        + 2.75669248700102E-8*x125 + 3.93809302190442E-8*x127
        + 1.96561974510839E-6*x129 + 5.46984377754984E-8*x131
        + 2.18934836443633E-6*x133 + 2.61864978361483E-8*x135
        + 3.32498218656729E-8*x137 + 5.23410981254842E-9*x139
        + 8.43370081030883E-9*x141 + 3.25600083985981E-8*x143
        + 2.61125935780483E-6*x145 + 1.35576920276201E-5*x147
        + 4.07028955496529E-7*x149 + 7.7348160445682E-9*x151
        + 6.60109445593242E-7*x152 + 1.92513685100548E-5*x153 =E= 0;

* set non default bounds

x67.up = 1.2;
x68.up = -4.034;
x69.up = -0.222;
x70.fx = 0;
x71.up = -15.616;
x72.up = -3.918;
x73.up = 8.4;
x74.up = -5.256;
x75.up = -6.385;
x76.up = 4.8;
x77.up = -6.848;
x78.up = -2.12;
x79.up = -1.919;
x80.up = 0.96;
x81.fx = 0;
x82.lo = 20.344; x82.up = 22.012;
x83.fx = 0;
x84.fx = 0;
x85.lo = 8.87; x85.up = 11.594;
x86.fx = 0;
x87.up = 4382.44;
x88.lo = 900; x88.up = 6400;
x89.up = 4382.44;
x90.up = 4382.44;
x91.lo = 2500; x91.up = 4382.44;
x92.lo = 900; x92.up = 6400;
x93.up = 5929;
x94.lo = 900; x94.up = 6400;
x95.lo = 900; x95.up = 4382.44;
x96.up = 5929;
x97.up = 4382.44;
x98.up = 4382.44;
x99.lo = 625; x99.up = 4382.44;
x100.up = 4382.44;
x101.up = 3969;
x102.lo = 2500; x102.up = 4382.44;
x103.up = 4382.44;
x104.up = 4382.44;
x105.up = 5929;
x106.up = 6400;

* set non default levels

x1.l = 5.44495833765043;
x2.l = 5.44495854967424;
x3.l = 9.12607396685365;
x4.l = 9.12607076043512;
x5.l = 14.3341447185162;
x6.l = 3.89385542653711;
x7.l = -0.140144582235448;
x8.l = -5.39614459100801;
x9.l = 8.93800012750823;
x10.l = 18.4439209708531;
x11.l = 3.56807899579761;
x12.l = 19.5468684236379;
x13.l = 2.46513154352711;
x14.l = 13.846893990685;
x15.l = 1.78010596781424;
x16.l = 13.4859999409369;
x17.l = 11.3659999321643;
x18.l = 12.5659999233912;
x19.l = 22.4640000175451;
x20.l = 15.6160000087726;
x21.l = 2.14100001756236;
x22.l = 2.14100001756236;
x23.l = 2.14100001756236;
x24.l = 1.91900000878124;
x25.l = 0.0157431514914628;
x26.l = 0.0157431502654026;
x27.l = 0.0333144044493556;
x28.l = 0.0333144278592461;
x29.l = 0.115537263371644;
x30.l = 0.11710774486541;
x31.l = -0.00328039436012971;
x32.l = -0.0948837189322137;
x33.l = 0.107447184614126;
x34.l = 0.286816795005778;
x35.l = 0.266730501803737;
x36.l = 0.211053939542816;
x37.l = 0.188886276689687;
x38.l = 0.126033222686167;
x39.l = 0.0910839492713656;
x40.l = 0.0405399387300305;
x41.l = 0.0916191300506078;
x42.l = 0.155199539894661;
x43.l = 0.19606133848526;
x44.l = 0.825810209955102;
x45.l = 0.116522846932723;
b46.l = 0.507871575745731;
b47.l = 0.507871575132701;
b48.l = 0.516657202224678;
b49.l = 0.516657213929623;
b50.l = 0.557768631685822;
b51.l = 0.558553872432705;
b52.l = 0.498359802819935;
b53.l = 0.452558140533893;
b54.l = 0.553723592307063;
b55.l = 0.643408397502889;
b56.l = 0.633365250901869;
b57.l = 0.605526969771408;
b58.l = 0.594443138344844;
b59.l = 0.563016611343083;
b60.l = 0.545541974635683;
b61.l = 0.520269969365015;
b62.l = 0.545809565025304;
b63.l = 0.577599769947331;
b64.l = 0.59803066924263;
b65.l = 0.912905104977551;
b66.l = 0.558261423466361;
x67.l = 1.19999999122682;
x68.l = -4.03400000877256;
x69.l = -0.222000008781126;
x71.l = -15.6160000087726;
x72.l = -3.91800000877253;
x73.l = 7.36222783968099;
x74.l = -5.25600000877256;
x75.l = -6.38500000877251;
x76.l = 3.89385542647227;
x77.l = -6.84800000877255;
x78.l = -2.12000000877252;
x79.l = -1.91900000878124;
x80.l = 0.959999966645751;
x82.l = 22.0119999666507;
x85.l = 10.8899168872668;
x87.l = 2909.59674752093;
x88.l = 2909.54928693577;
x89.l = 1595.41873634504;
x90.l = 3038.5290822919;
x91.l = 2869.54125150194;
x92.l = 2938.99681832198;
x93.l = 2939.4597263813;
x94.l = 2909.54972417826;
x95.l = 2977.58487634204;
x96.l = 2927.41660644888;
x97.l = 2895.85080684065;
x98.l = 2922.68436554071;
x99.l = 1579.8575238158;
x100.l = 2908.70674616843;
x101.l = 3837.6004609165;
x102.l = 2642.44041110422;
x103.l = 2931.82986493535;
x104.l = 2949.45410273583;
x105.l = 2939.51164035296;
x106.l = 2921.83424273046;
x107.l = 89.0858402375047;

* set non default marginals


Model m / all /;

m.limrow=0; m.limcol=0;

Solve m using MIP minimizing x108;

* check that this equation is not violated
* e64..    x43 - 2*b64 =E= -1;
* this was a problem with XPRESS,
* check PR XPRESS/60 or AB00710

abort$[round(x43.l - 2*b64.l + 1,5)] 'round(x43.l - 2*b64.l + 1,5) <> 0 ';