Safe Haskell | None |
---|
Interface between the Haskell representation of a linear programming problem, a value of type LP
, and
the GLPK solver. The options available to the solver correspond naturally with GLPK's available options,
so to find the meaning of any particular option, consult the GLPK documentation.
The option of which solver to use -- the general LP solver, which solves a problem over the reals, or the
MIP solver, which allows variables to be restricted to integers -- can be made by choosing the appropriate
constructor for GLPOpts
.
The marshalling from Haskell to C is specialized for Int
s and Double
s, so using those types in your
linear program is recommended.
- data GLPOpts
- simplexDefaults :: GLPOpts
- mipDefaults :: GLPOpts
- glpSolveVars :: (Ord v, Real c) => GLPOpts -> LP v c -> IO (ReturnCode, Maybe (Double, Map v Double))
- data RowValue v c = RowVal {
- row :: !(Constraint v c)
- rowVal :: !Double
- glpSolveAll :: (Ord v, Real c) => GLPOpts -> LP v c -> IO (ReturnCode, Maybe (Double, Map v Double, [RowValue v c]))
- data ReturnCode
- = Success
- | InvalidBasis
- | SingularMatrix
- | IllConditionedMatrix
- | InvalidBounds
- | SolverFailed
- | ObjLowerLimReached
- | ObjUpperLimReached
- | IterLimReached
- | TimeLimReached
- | NoPrimalFeasible
- | NoDualFeasible
- | RootLPOptMissing
- | SearchTerminated
- | MipGapTolReached
- | NoPrimDualFeasSolution
- | NoConvergence
- | NumericalInstability
- | InvalidData
- | ResultOutOfRange
- data MsgLev
- data BranchingTechnique
- data BacktrackTechnique
- = DepthFirst
- | BreadthFirst
- | LocBound
- | ProjHeur
- data Preprocessing
- data Cuts
Solver options
Options available for customizing GLPK operations. This also determines which kind of solving is performed -- relaxed LP, or MIP.
Running the solver
glpSolveVars :: (Ord v, Real c) => GLPOpts -> LP v c -> IO (ReturnCode, Maybe (Double, Map v Double))Source
Solves the linear or mixed integer programming problem. Returns the value of the objective function, and the values of the variables.
glpSolveAll :: (Ord v, Real c) => GLPOpts -> LP v c -> IO (ReturnCode, Maybe (Double, Map v Double, [RowValue v c]))Source
Solves the linear or mixed integer programming problem. Returns the value of the objective function, the values of the variables, and the values of any labeled rows.
GLPK enumerations
data ReturnCode Source
data BranchingTechnique Source
data BacktrackTechnique Source
data Preprocessing Source