Andrew, > Also attached is a model in free mps format that illustrates the effect. > (This model looks "innocent", but it has some pathological properties > that makes it very hard to solve with glpk.)
This model is quite useful to demonstrate issues with the solver. With glpk compiled using "-O1 -msse3 -mfpmath=sse" on a 32 bit system with gcc 4.6.1 and running: glpsol --bestp --nointopt water.mps I was able to reproduce an error that was reported earlier: http://lists.gnu.org/archive/html/bug-glpk/2016-01/msg00000.html The last lines of output were: Integer optimization begins... + 198: mip = not found yet >= -inf (1; 0) Error: unable to factorize the basis matrix (1) Constructing initial basis... Size of triangular part is 521 + 23751: mip = not found yet >= 8.372570868e+004 (916; 2246) + 49757: mip = not found yet >= 8.372570868e+004 (1518; 4753) + 75846: mip = not found yet >= 8.372570868e+004 (2031; 7453) Assertion failed: tcol[csa->p] != 0.0 Error detected in file simplex/spydual.c at line 999 Moreover, when running: glpsol --pcost --cuts water.mps the solver goes starts cycling. The last lines of output in this case were: Integer optimization begins... Gomory's cuts enabled MIR cuts enabled Cover cuts enabled Clique cuts enabled Constructing conflict graph... Conflict graph has 63 + 0 = 63 vertices + 218: mip = not found yet >= -inf (1; 0) Cuts on level 0: gmi = 10; mir = 31; + 16665: mip = not found yet >= 1.152053280e+005 (693; 32) Warning: numerical instability (dual simplex, phase II) 166000: obj = 1.343528712e+009 inf = 1.593e+007 (27) 166500: obj = 1.343528712e+009 inf = 1.593e+007 (27) 167000: obj = 1.343528712e+009 inf = 1.593e+007 (27) 167500: obj = 1.343528712e+009 inf = 1.593e+007 (27) 168000: obj = 1.343528712e+009 inf = 1.593e+007 (27) 168500: obj = 1.343528712e+009 inf = 1.593e+007 (27) 169000: obj = 1.343528712e+009 inf = 1.593e+007 (27) ... Cycling also happens with glpk compiled with -O1 only, with the same command line, but at a different point: Integer optimization begins... Gomory's cuts enabled MIR cuts enabled Cover cuts enabled Clique cuts enabled Constructing conflict graph... Conflict graph has 63 + 0 = 63 vertices + 219: mip = not found yet >= -inf (1; 0) Cuts on level 0: gmi = 7; mir = 26; Error: unable to factorize the basis matrix (1) Constructing initial basis... Size of triangular part is 438 Error: basis matrix is singular to working precision (cond = 1.56e+019) 182500: obj = 2.344435065e+018 inf = 8.057e+016 (22) 183000: obj = 2.344435065e+018 inf = 8.057e+016 (22) 183500: obj = 2.344435065e+018 inf = 8.057e+016 (22) 184000: obj = 2.344435065e+018 inf = 8.057e+016 (22) 184500: obj = 2.344435065e+018 inf = 8.057e+016 (22) 185000: obj = 2.344435065e+018 inf = 8.057e+016 (22) ... Best Regards, Chris Matrakidis _______________________________________________ Bug-glpk mailing list [email protected] https://lists.gnu.org/mailman/listinfo/bug-glpk
