glpk-hs-0.3.4: Comprehensive GLPK linear programming bindings

Safe HaskellNone

Data.LinearProgram.GLPK.Solver

Contents

Description

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 Ints and Doubles, so using those types in your linear program is recommended.

Synopsis

Solver options

data GLPOpts Source

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.

data RowValue v c Source

Constructors

RowVal 

Fields

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]))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 Cuts Source

Constructors

GMI 
MIR 
Cov 
Clq 

Instances