-
Notifications
You must be signed in to change notification settings - Fork 5
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
3 changed files
with
41 additions
and
17 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,30 @@ | ||
0.3.2.3, 2018/11/13: | ||
* Fix pretty-printing bug: printed programs did not include final 'End' line, so cbc could not parse the programs | ||
* Relax the upper bound for containers dependency (contributed by @fumieval) | ||
* Update test dependencies | ||
* Update package description | ||
|
||
0.3.2.2, 2018/06/04: | ||
* Build -Wall clean with GHC 8.4.3 | ||
* Relax the upper bound for base dependency | ||
* Add missing semigroup instances (contributed by @fumieval) | ||
|
||
0.3.2.1, 2015/07/21: | ||
* Naive implementations of two solving algorithms: | ||
* Branch-and-bound algorithm for mixed programs | ||
* Simplex algorithm for relaxed (real) programs | ||
* Add tests to package description | ||
|
||
0.3.2.0, 2014/11/02: | ||
* Error handling for simplifier | ||
|
||
0.3.1.0, 2014/09/19: | ||
* Simplifier for Canon programs | ||
* Pretty-printer for Canon programs | ||
|
||
0.3.0.0, 2014/09/03: | ||
* Simplify Canonical representation | ||
* Add evaluator for Program representation | ||
|
||
0.1.0.0, 2014/06/04: | ||
* Initial release |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,19 +1,10 @@ | ||
limp | ||
==== | ||
|
||
Eventually, this will become a pure Haskell library for Linear Integer/Mixed Programming. | ||
This package provides two representations for linear programs: "Numeric.Limp.Program", which is what I expect end-users to use, and | ||
"Numeric.Limp.Canon", which is simpler, but would be less nice for writing linear programs. | ||
You can convert programs from the Program representation to the Canon representation using "Numeric.Limp.Canon.Convert", and then pretty-print the program using "Numeric.Limp.Canon.Pretty". | ||
|
||
So far, however, I only have a program representation. | ||
I think the program representation has some minor advantages over existing ones: we separate Z-valued variables (Int) from R-valued variables (Double), which should make retrieving values a little nicer. | ||
The Linear type for linear functions is also indexed over whether it is purely Z, or mixed. | ||
While linear programming generally only supports less-than-or-equal comparisons, an less-than on Z can be changed to <=+1. | ||
I'm not yet sure whether the added complication on Linear is worth this minor syntactic sugar, though. | ||
There is a very simple branch-and-bound solver in "Numeric.Limp.Solve.Branch.Simple", and a simplex solver for relaxed (real only) programs in "Numeric.Limp.Solve.Simplex.Maps". | ||
See the limp-cbc package for a simple external solver. | ||
|
||
|
||
|
||
To do | ||
=== | ||
Implement a Simplex-style algorithm for Canon. This probably won't be as fast as a real matrix-based simplex, but would be easy to implement. | ||
After both are implemented, we can check them against each other on random inputs. | ||
|
||
And lots more. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters