help-glpk
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Help-glpk] API usage : explicit scaling versus presolving


From: Andrew Makhorin
Subject: Re: [Help-glpk] API usage : explicit scaling versus presolving
Date: Thu, 14 Oct 2010 22:49:16 +0400

> I would like to confirm the following behavior.
> 
> Does electing to use the simplex presolver, namely:
> 
>   glp_smcp parmSimplex;
>   glp_init_smcp(&parmSimplex);
>   parmSimplex.presolve = GLP_ON;
>   ...
>   int solverRet = glp_simplex(prob, &parmSimplex);
> 
> negate the effect of (and the resources invested in)
> any previous scale call:
> 
>   glp_scale_prob(prob, GLP_SF_AUTO);
> 
> or basis call, for that matter:
> 
>   glp_adv_basis(prob, 0);

Yes. Scale factors as well as the current basis provided for the
original lp instance are not used on solving an internal lp instance
produced by the lp preprocessor. (I plan to allow the user to call the
preprocessor separately, in which case it would be possible to have more
control on the internal instance.)

> 
> Moreover, is it okay that the different scalings give different
> results (the logging from host application program is
> also shown).

Theoretically, scaling must not affect the optimal solution. If the
instance has multiple optima, the solver can report different optimal
points, but the optimal objective value must be the same (within working
precision) independently on scaling used.




reply via email to

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