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