[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Help-glpk] control parameters and round-off error
From: |
Andrew Makhorin |
Subject: |
Re: [Help-glpk] control parameters and round-off error |
Date: |
Mon, 14 Jan 2008 21:34:00 +0300 |
> I faced the following problem. I repeatedly call glp_simplex on the
> same lp object (only continuous variables) after manipulating the
> objective function. The objective function value i get seems to be a
> bit inaccurate (say the third digit seems to be incorrect).
Try using lpx_check_kkt to check lp solution accuracy. The objective
may be inaccurate also due to reduced cost tolerance which is 1e-7 by
default. Besides, if the objective coefficients are too small (much
less than 1.0), it would be desired to scale them.
> As the
> computation involves several thousand iterations, probably this is due
> to the accumulation of round-off errors. I always check the returned
> value of glp_get_status and it is GLP_OPT.
> Can i set the solver to automatically refactor the basis matrix
> (probably with stricter tolerances) if it is needed?
> Which parameters should be changed to set stricter tolerances?
Try changing the factorization control parameters before the first
call to glp_simplex:
glp_bfcp parm;
glp_get_bfcp(lp, &parm);
parm.type = GLP_BF_GR;
parm.nrs_max = 20; /* or even 10 */
> I am OK with a slower solution process if the values are more precise.
> Is it possible to obtain some kind of estimate on the error of the
> objective function value?
> My LP problem is supposed to be badly scaled. I call
> lpx_scale_prob(lp); before calling glp_simplex however i do not know
> if it is enough or not.
> Should i change the scaling parameter?
If you think that a new row/column added to the instance is badly
scaled, you can change its scale factor with glp_set_rii (for row)
or with glp_set_sjj (for column).
For more details please see the reference manual.