[Numeric] Announcement: Fast linear programming with comfort-glpk and coinor-clp
Henning Thielemann
lemming at henning-thielemann.de
Sun May 14 17:14:51 UTC 2023
I happily released two other numeric packages based on the comfort-array
types. These are bindings to fast numeric linear programming solvers:
https://hackage.haskell.org/package/comfort-glpk
https://hackage.haskell.org/package/coinor-clp
The first one is (another) binding to GLPK and the second one is a binding
to COIN-OR/CLP. I guess this is the first Haskell binding to COIN-OR/CLP,
at all. I found that the COIN-OR solver is not as simply structured as
GLPK and the examples miss the simple use cases, but its performance is
much better than that of GLPK and its interior point solver
(Method.initialBarrierSolve) just works, in contrast to the one of GLPK.
Warm start of solvers is supported by according monadic interfaces.
Both packages use the same types to describe linear programming problems,
thus you can describe your problem once and then simply choose the
appropriate solver. The types are exported by the package
linear-programming.
The flexible array shapes provided by comfort-array help a lot to
structure the problem variables. This saves you from the need to manually
work with integer indices. You can concatenate array shapes with (::+) and
establish Cartesian products with (,) and define array shapes that are
compatible with nested tuples (e.g. Shape.NestedTuple ((X,X),(X,X,X))) or
define arrays with indices of any Enum type (Shape.Enumeration).
More information about the Numeric
mailing list