Noah Gilmore
Noah Gilmore

Reputation: 1379

What does this GLPK output with a hashtag/pound sign mean?

I created a linear programming model using Pyomo, which I'm trying to solve via GPLK. If it matters, it's a spreadsheet assignment problem, where every variable is a binary variable representing whether a given value is assigned to a cell, and there are various constraints around the values that can be next to each other, or in the same row/column.

I've constructed a GLPK model solver, and I get the following output:

GLPSOL--GLPK LP/MIP Solver 5.0
Parameter(s) specified in the command line:
 --write /var/folders/yp/hmw586496pj8v9zp7ppp3l700000gn/T/tmpvtnfn_iv.glpk.raw
 --wglp /var/folders/yp/hmw586496pj8v9zp7ppp3l700000gn/T/tmpe0uaptkn.glpk.glp
 --cpxlp /var/folders/yp/hmw586496pj8v9zp7ppp3l700000gn/T/tmpf8yewqh7.pyomo.lp
Reading problem data from '/var/folders/yp/hmw586496pj8v9zp7ppp3l700000gn/T/tmpf8yewqh7.pyomo.lp'...
/var/folders/yp/hmw586496pj8v9zp7ppp3l700000gn/T/tmpf8yewqh7.pyomo.lp:502560: warning: lower bound of variable 'x4' redefined
/var/folders/yp/hmw586496pj8v9zp7ppp3l700000gn/T/tmpf8yewqh7.pyomo.lp:502560: warning: upper bound of variable 'x4' redefined
10588 rows, 46593 columns, 424192 non-zeros
46592 integer variables, all of which are binary
549152 lines were read
Writing problem data to '/var/folders/yp/hmw586496pj8v9zp7ppp3l700000gn/T/tmpe0uaptkn.glpk.glp'...
489470 lines were written
GLPK Integer Optimizer 5.0
10588 rows, 46593 columns, 424192 non-zeros
46592 integer variables, all of which are binary
Preprocessing...
10512 rows, 46592 columns, 414464 non-zeros
46592 integer variables, all of which are binary
Scaling...
 A: min|aij| =  1.000e+00  max|aij| =  1.000e+00  ratio =  1.000e+00
Problem data seem to be well scaled
Constructing initial basis...
Size of triangular part is 10288
Solving LP relaxation...
GLPK Simplex Optimizer 5.0
10512 rows, 46592 columns, 414464 non-zeros
      0: obj =   1.000000000e+00 inf =   1.450e+04 (2363)
   6003: obj =   1.000000000e+00 inf =   4.250e+03 (1475) 42
   9813: obj =   1.000000000e+00 inf =   1.870e+03 (985) 32
  12350: obj =   1.000000000e+00 inf =   1.099e+03 (736) 22
  15254: obj =   1.000000000e+00 inf =   4.584e+02 (430) 25
  17268: obj =   1.000000000e+00 inf =   2.229e+02 (291) 17
  19975: obj =   1.000000000e+00 inf =   8.880e+01 (160) 23
  22203: obj =   1.000000000e+00 inf =   3.636e+01 (76) 19
  24542: obj =   1.000000000e+00 inf =   5.658e+00 (13) 20
  26492: obj =   1.000000000e+00 inf =   3.551e-12 (0) 17
OPTIMAL LP SOLUTION FOUND
Integer optimization begins...
Long-step dual simplex will be used
+ 26492: mip =     not found yet >=              -inf        (1; 0)
+ 27874: mip =     not found yet >=   1.000000000e+00        (1; 0)
+ 29066: mip =     not found yet >=   1.000000000e+00        (1; 0)
+ 29942: mip =     not found yet >=   1.000000000e+00        (1; 0)
+ 30973: mip =     not found yet >=   1.000000000e+00        (1; 0)
+ 31553: mip =     not found yet >=   1.000000000e+00        (1; 0)
+ 32561: mip =     not found yet >=   1.000000000e+00        (1; 0)
+ 33012: mip =     not found yet >=   1.000000000e+00        (1; 0)
+ 33440: mip =     not found yet >=   1.000000000e+00        (1; 0)
Time used: 63.5 secs.  Memory used: 79.7 Mb.
+ 33770: mip =     not found yet >=   1.000000000e+00        (1; 0)
+ 34119: mip =     not found yet >=   1.000000000e+00        (1; 0)
+ 34326: mip =     not found yet >=   1.000000000e+00        (1; 0)
+ 34714: mip =     not found yet >=   1.000000000e+00        (1; 0)
+ 35057: mip =     not found yet >=   1.000000000e+00        (1; 0)
+ 35538: mip =     not found yet >=   1.000000000e+00        (1; 0)
+ 35965: mip =     not found yet >=   1.000000000e+00        (1; 0)
+ 36289: mip =     not found yet >=   1.000000000e+00        (1; 0)
Time used: 133.3 secs.  Memory used: 79.7 Mb.
+ 36547: mip =     not found yet >=   1.000000000e+00        (1; 0)
+ 36913: mip =     not found yet >=   1.000000000e+00        (1; 0)
+ 37121: mip =     not found yet >=   1.000000000e+00        (1; 0)
+ 37384: mip =     not found yet >=   1.000000000e+00        (2; 0)
+ 38345: mip =     not found yet >=   1.000000000e+00        (2; 0)
+ 38815: mip =     not found yet >=   1.000000000e+00        (3; 0)
Time used: 200.8 secs.  Memory used: 91.3 Mb.
+ 39471: mip =     not found yet >=   1.000000000e+00        (4; 0)
+ 39897: mip =     not found yet >=   1.000000000e+00        (5; 0)
+ 40402: mip =     not found yet >=   1.000000000e+00        (6; 0)
+ 40891: mip =     not found yet >=   1.000000000e+00        (7; 0)
+ 41212: mip =     not found yet >=   1.000000000e+00        (8; 0)
Time used: 264.2 secs.  Memory used: 91.3 Mb.
+ 41608: mip =     not found yet >=   1.000000000e+00        (9; 0)
+ 42023: mip =     not found yet >=   1.000000000e+00        (10; 0)
+ 42428: mip =     not found yet >=   1.000000000e+00        (11; 0)
+ 42815: mip =     not found yet >=   1.000000000e+00        (12; 0)
+ 43310: mip =     not found yet >=   1.000000000e+00        (13; 0)
Time used: 327.3 secs.  Memory used: 91.4 Mb.
+ 44064: mip =     not found yet >=   1.000000000e+00        (14; 0)
+ 44655: mip =     not found yet >=   1.000000000e+00        (15; 0)
+ 45010: mip =     not found yet >=   1.000000000e+00        (16; 0)
+ 45479: mip =     not found yet >=   1.000000000e+00        (17; 0)
+ 46202: mip =     not found yet >=   1.000000000e+00        (18; 0)
Time used: 392.6 secs.  Memory used: 91.5 Mb.
+ 46612: mip =     not found yet >=   1.000000000e+00        (19; 0)
+ 47506: mip =     not found yet >=   1.000000000e+00        (20; 0)
+ 48143: mip =     not found yet >=   1.000000000e+00        (21; 0)
+ 48628: mip =     not found yet >=   1.000000000e+00        (22; 0)
+ 49578: mip =     not found yet >=   1.000000000e+00        (23; 0)
Time used: 459.6 secs.  Memory used: 91.5 Mb.
+ 50042: mip =     not found yet >=   1.000000000e+00        (24; 0)
+ 50620: mip =     not found yet >=   1.000000000e+00        (25; 0)
+ 51444: mip =     not found yet >=   1.000000000e+00        (26; 0)
+ 52243: mip =     not found yet >=   1.000000000e+00        (27; 0)
+ 52554: mip =     not found yet >=   1.000000000e+00        (28; 0)
Time used: 523.9 secs.  Memory used: 91.6 Mb.
+ 53372: mip =     not found yet >=   1.000000000e+00        (29; 0)
+ 53796: mip =     not found yet >=   1.000000000e+00        (30; 0)
+ 54262: mip =     not found yet >=   1.000000000e+00        (31; 0)
+ 54830: mip =     not found yet >=   1.000000000e+00        (32; 0)
+ 55877: mip =     not found yet >=   1.000000000e+00        (32; 0)
+ 56256: mip =     not found yet >=   1.000000000e+00        (33; 0)
Time used: 593.4 secs.  Memory used: 91.7 Mb.
# 59603: obj =   9.999759071e-01 inf =   0.000e+00 (7009) 26 93%
# 61374: obj =   9.999756977e-01 inf =   0.000e+00 (6832) 13 100%
# 63318: obj =   9.999789211e-01 inf =   0.000e+00 (6524) 15 100%
# 65276: obj =   9.999813305e-01 inf =   0.000e+00 (6388) 14 100%
# 67228: obj =   9.999826273e-01 inf =   0.000e+00 (6384) 15 100%
# 69204: obj =   9.999840106e-01 inf =   0.000e+00 (6194) 15 100%
# 71250: obj =   9.999845683e-01 inf =   0.000e+00 (6159) 15 100%
# 73329: obj =   9.999843489e-01 inf =   0.000e+00 (6179) 16 100%
# 75374: obj =   9.999852864e-01 inf =   0.000e+00 (6072) 15 100%
# 77463: obj =   9.999864687e-01 inf =   0.000e+00 (5983) 16 100%
# 79515: obj =   9.999882485e-01 inf =   0.000e+00 (5981) 15 100%
# 81650: obj =   9.999881987e-01 inf =   0.000e+00 (5822) 16 100%
# 83774: obj =   9.999876911e-01 inf =   0.000e+00 (5967) 16 100%
# 85704: obj =   9.999876434e-01 inf =   0.000e+00 (5953) 15 100%
# 87829: obj =   9.999894100e-01 inf =   0.000e+00 (5894) 15 100%
# 89866: obj =   9.999899356e-01 inf =   0.000e+00 (5773) 15 100%
# 91950: obj =   9.999892071e-01 inf =   0.000e+00 (5872) 16 100%
# 94085: obj =   9.999892919e-01 inf =   0.000e+00 (5784) 16 100%
... continues like this indefinitely, with slightly different obj values, for many many hours

I'm not experienced at linear optimization, but I understand all the output up until the lines starting with a pound symbol (#). My understanding is that it ran the long-step dual simplex algorithm to find the solution to the mixed-integer problem which took 593.4 seconds, and then...what is it doing? I haven't been able to find any documentation online, e.g. on the GLPK Terminal Output Page, about what these logs mean. Would love to be pointed at some documentation so that I can better understand what the GLPK solver is doing.

Upvotes: 0

Views: 8

Answers (0)

Related Questions