Sunday, March 6, 2011

solving an LP with a QP code such as IPOPT

1. If you have a large LP problem as in this case then solve it with an
LP code designed for large-scale problems (at least sparse) because
there is a lot of extra over-head in managing the Hessian, etc. in the
algorithm when it is not required.  I have done this is the past with an
internal simplex-based SQP having it solve a large LP and it is not
appropriate do to this - it makes both parties look bad.

2. My experience with LP_SOLVE is that it is *very* slow to transfer the
sparse Jacobian or LP matrix to its internal data structures and it is
also not that efficient for solving problems with > 100,000 rows/columns
(medium-sized).  I have also used GNU LP Kit and it is faster to
transfer the model to the solver but both suffer from the fact that they
are only appropriate for medium sized problems.  I am also a very big
user of FICO Xpress solving LP, QP, MILP and SLP problems in the
1,000,000 row/column range (before presolve) and I would expected your
problem to take < 1-hour after its presolve would run in < 5-minutes.

3. If you are comparing a Ford-Fulkerson approach then actually what you
need to use is a dual-simplex method because it is more like a
network-LP.  Before a presolve with dual reductions (AMPL only does
primal reductions) I would expect an interior-point to work better for
such a large-scale max-flow problem.  However, after presolve with dual
reductions, I would expect the dual-simplex to be better.

No comments:

Post a Comment