### Re: Numerical instability warning

Andrew Makhorin <mao <at> gnu.org>

2011-03-07 14:06:36 GMT

> So if glp_check_kkt() indicates an inaccurate solution, I could resolve
> it with scaling. If I did that, would I need to reload the initial
> input matrix sent in via glp_load_matrix()? I'm assuming that the
> solver won't change any values in matrix sent in so that I wouldn't
> need to store a copy of this matrix to send in when re-solving.
You don't need to reload the matrix (until it has been changed) before
reoptimization, because its copy is stored in the problem object. Note
that scaling/unscaling the matrix doesn't affect original values of
constraint coefficients; the row/column scale factors are stored
separately and applied only internally by the solver routines, i.e. all
the problem data and solution components are stored in the problem
object in an original (unscaled) form.
>
> I also notice that glpk includes an interior-point solver. Does this
> solver have similar numerical stability issues?
Being a numerical procedure it may have numerical difficulties, but of
other sort.
> If it doesn't, then I
> could try it instead.
>
Probably, yes. Please note, however, that the glpk ip solver is not
perfect and not as robust as the simplex solver. Besides, currently it
includes no crossover procedure, so it is unable to provide a basic
solution.

(Continue reading)