Good Morning
We have an application that requires that we run hundreds of thousands (or even 
several million) slightly revised sparse LP problems per run.  These problems 
are not huge but are not trivial with constraint matrices with up to 10,000+ 
constraints and variables.  At each iteration we are changing from 1 to 0.01 
percent of the non-zero coefficients.

We have written a Fortran interface to the compiled glpk code and we have found 
that we can substantially decrease the total computation time by having the 
Fortran interface (1) loop through the LP problems, (2) pass the revised matrix 
coefficients directly into glpk, (3) pull the revised solutions and objective 
back into Fortran, and (4) having Fortran pass the results back to our R 
session upon completion of the LP runs.  Our current Fortran code passes the 
revised LP problem's entire set of non-zero constraint coefficients back into 
glpk at each iteration.

Is there a way (or would the glpk maintainers consider adding a way) that we 
could pass only the revised coefficients rather than having to pass the entire 
set of nonzero coefficients into glpk?

lpSolveAPI has the ability to pass only the revised coefficients into the 
problem, and as a result, using lpSolveAPI (directly from R) runs substantially 
faster than running glpkAPI (directly from R).  We have written a Fortran 
interface for both lpSolve and glpk and find that the Fortran-glpk interface 
improves performance substantially relative to using lpSolve.

With lpSolve, passing only the changed coefficients gives a performance boost 
relative to passing the complete set of nonzero coefficients at each iteration.
We are wanting to determine whether we could similarly decrease computation 
time for glpk by passing only the revised coefficients.


Joe Atwood

_______________________________________________
Help-glpk mailing list
[email protected]
https://lists.gnu.org/mailman/listinfo/help-glpk

Reply via email to