> 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. _______________________________________________ Help-glpk mailing list [email protected] http://lists.gnu.org/mailman/listinfo/help-glpk
