Opened 15 years ago
Last modified 6 years ago
#345 new enhancement
Obtaining and storing the LP solution
Reported by: | Peter Kovacs | Owned by: | Alpar Juttner |
---|---|---|---|
Priority: | major | Milestone: | LEMON 1.5 release |
Component: | core | Version: | hg main |
Keywords: | Cc: | ||
Revision id: |
Description (last modified by )
It would be nice if the LP and MIP solver interfaces provided functions for obtaining the LP solution at once. We could use a class that can store the solution efficiently, i.e. it should store variable-value pairs for the non-zero valued variables.
This ticket is a follow-up of #326.
Change History (6)
comment:1 follow-up: 2 Changed 15 years ago by
Description: | modified (diff) |
---|
comment:2 Changed 15 years ago by
Replying to kpeter:
Another important question is the names of the functions that can be used to obtain the primal/dual solution.
Currently, primal()
and dual()
functions are used for other purposes. We could use primalSolution()
and dualSolution()
, and maybe solution()
in MipSolver
, but it would be a bit confusing, because we already have sol()
functions.
comment:3 follow-up: 4 Changed 15 years ago by
A minor clarification. Ideally, the classification should not be according to whether a variable is zero or not but according to whether it is in the basis, or it is at one of the variable bounds.
So the proposal 2. is out of question. If this Solution
class will reflect the above, then it deserves being a separate class. Otherwise it does not.
comment:4 Changed 15 years ago by
Replying to alpar:
... then it deserves being a separate class. Otherwise it does not.
I don't think we could state this without doubt. In fact, I prefer the second proposal.
comment:5 Changed 12 years ago by
Milestone: | LEMON 1.3 release → LEMON 1.4 release |
---|
comment:6 Changed 6 years ago by
Milestone: | LEMON 1.4 release → LEMON 1.5 release |
---|
Two possiblities were discussed in #326 (see details and reasons there).
Expr
type for this purpose, since its implementation is suitable for that (it stores column-value pairs). However, it would be strange, because the name of the class and its members reflects the other purpose for which the class can be used. Now it is used only for storing linear expressions, i.e. certain coefficients are assigned to the variables, and all namings correspond to this usage.Solution
for this purpose, which could use the same or similar implementation asExpr
, but its members would have names that are more suitable for this purpose (e.g. value instead of coefficient). This class could be a wrapper forExpr
or have a separate implementation. However, both ways would make the code maintenance harder.Of course,
DualExpr
orDualSolution
could be used for stroing the dual solution.Another important question is the names of the functions that can be used to obtain the primal/dual solution.