bug-glpk
[Top][All Lists]
Advanced

[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 ...







reply via email to

[Prev in Thread] Current Thread [Next in Thread]