[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Bug-glpk] Problem with GLPK 4.30 and later
From: |
Andrew Makhorin |
Subject: |
Re: [Bug-glpk] Problem with GLPK 4.30 and later |
Date: |
Wed, 3 Jun 2009 23:53:10 +0300 |
> Please forgive me if this is not in the correct format. If there is a
> better way to submit this report please advise me.
> A research group I work with has been using GLPK and CPLEX for the
> past four years to solve queueing network problems. Most of our work
> occurs during the summer. Recently I upgraded the version of GLPK we
> were using from 4.29 to 4.38 but noticed that some programs written in
> MathProg that used to work correctly (i.e. GLPK gave the same results as
> CPLEX) no longer did so.
> After a bit of work, I figured out:
> Version 4.29 and Verison 4.30 work okay, Version 4.31 and Version 4.38
> do not. I assume that the versions between 4.31 and 4.38 also fail, but
> I've not tested them.
> Attached is a MathProg program that illustrates the problem. I run
> with "glpsol --math seriesexp3bad.mod"
> The output from Version 4.30 isReading model section from seriesexp3bad.mod...
> Reading data section from seriesexp3bad.mod...
> 128 lines were read
> Display statement at line 31
> lambda = 1
> Lambda = 3.75
> B = 0.833333333333333
> Display statement at line 32
> i = 1
> c[1] = 1
> mu[1] = 1.5
> i = 2
> c[2] = 2
> mu[2] = 1.25
> Generating cost_per_hour...
> Generating Type_1...
> Generating Type10...
> Generating Type00...
> Generating Type1a...
> Generating Type1b...
> Generating Type2a1...
> Generating Type2a2...
> Generating Type2b...
> Generating Type4a...
> Generating Quadratic...
> Generating EXP2...
> Model has been successfully generated
> glp_simplex: original LP has 131 rows, 9 columns, 1074 non-zeros
> glp_simplex: presolved LP has 128 rows, 7 columns, 826 non-zeros
> lpx_adv_basis: size of triangular part = 128
> * 0: obj = 0.000000000e+00 infeas = 0.000e+00 (0)
> * 17: obj = 6.612454212e+00 infeas = 3.264e-14 (0)
> OPTIMAL SOLUTION FOUND
> Time used: 0.0 secs
> Memory used: 0.4 Mb (378322 bytes)
> The output from Version 4.38 isGLPSOL: GLPK LP/MIP Solver 4.38
> Reading model section from seriesexp3bad.mod...
> Reading data section from seriesexp3bad.mod...
> 128 lines were read
> Display statement at line 31
> lambda = 1
> Lambda = 3.75
> B = 0.833333333333333
> Display statement at line 32
> i = 1
> c[1] = 1
> mu[1] = 1.5
> i = 2
> c[2] = 2
> mu[2] = 1.25
> Generating cost_per_hour...
> Generating Type_1...
> Generating Type10...
> Generating Type00...
> Generating Type1a...
> Generating Type1b...
> Generating Type2a1...
> Generating Type2a2...
> Generating Type2b...
> Generating Type4a...
> Generating Quadratic...
> Generating EXP2...
> Model has been successfully generated
> glp_simplex: original LP has 131 rows, 9 columns, 1074 non-zeros
> glp_simplex: presolved LP has 128 rows, 7 columns, 826 non-zeros
> Scaling...
> A: min|aij| = 1.355e-20 max|aij| = 7.438e+01 ratio = 5.488e+21
> GM: min|aij| = 6.755e-06 max|aij| = 1.480e+05 ratio = 2.192e+10
> EQ: min|aij| = 4.563e-11 max|aij| = 1.000e+00 ratio = 2.192e+10
> Crashing...
> Size of triangular part = 128
> * 0: obj = 0.000000000e+00 infeas = 0.000e+00 (0)
> Warning: numerical instability (primal simplex, phase II)
> 6: obj = 5.142018849e+00 infeas = 7.140e-02 (0)
> * 30: obj = 5.172971112e+00 infeas = 4.714e-09 (0)
> Warning: numerical instability (primal simplex, phase II)
> 31: obj = 5.085248263e+00 infeas = 2.024e-01 (0)
> * 60: obj = 5.138363589e+00 infeas = 3.042e-09 (0)
> * 62: obj = 1.308182055e+01 infeas = 9.367e-08 (0)
> OPTIMAL SOLUTION FOUND
> Time used: 0.0 secs
> Memory used: 0.4 Mb (459402 bytes)
Thank you for your bug report.
The error is caused by tiny constraint/objective coefficients in the
original model (of order 1e-20 in the magnitude).
To avoid the error you need to disable the lp preprocessor as well as
automating scaling as follows:
glpsol --nopresol --noscale ...