Hi Chris,

> 
> > NEW: The bound perturbation technique was implemented in the primal
> > simplex solver (now this feature is enabled by default).
> 
> I did some testing and it seems to work fine: I run most of the
> instances in the "Benchmark of Simplex LP solvers" by H. Mittelmann (
> http://plato.asu.edu/ftp/lpsimp.html ) and for many fewer iterations
> are needed now, while two more can be solved (neos2 and neos3).

Thank you very much for testing.

> 
> One thing I noticed is that in some cases primal feasibility is lost
> when removing the perturbation. The attached patch is a hack to
> continue using the dual simplex solver when this happens. This further
> improves solution times for some instances and allows two more to be
> solved (self and stat96v1). I'm not suggesting to add this patch as
> is, just sending it for easy testing.
> 

Yes, switching to the dual simplex in this case is a natural choice,
because the perturbed lp being optimal is dual feasible and removing
perturbation keeps dual feasibility since objective coefficients are not
changed. However, such feature needs some additional options, namely: 
i) if the primal simplex detects primal infeasibility, it should return
rather than continue the search starting from phase I; and ii) in the
dual simplex perturbation should be disabled.

Besides, there remain some questions, e.g. how to perturb/relax bounds
for basic fixed variables. Currently only one (lower or upper) bound is
relaxed, so the fixed variable turns into a double-bounded one. This,
however, guarantees that the feasible region of the original lp is a
proper subset of the feasible region of the perturbed lp.

Best regards,

Andrew Makhorin


_______________________________________________
Help-glpk mailing list
Help-glpk@gnu.org
https://lists.gnu.org/mailman/listinfo/help-glpk

Reply via email to