Reputation: 1379
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