package lp

  1. Overview
  2. Docs
Legend:
Page
Library
Module
Module type
Parameter
Class
Class type
Source

ocaml-lp : LP and MIP modeling in OCaml

This library is a modeling tool for Linear Programming (LP) and Mixed Integer Programming (MIP). The model can be exported to CPLEX LP file format, which can be loaded by various solvers. Importing models from LP file is also supported.

Example

let problem =
  let open Lp in
  let x = var "x" in
  let y = var "y" in
  let c0 = [x; c 1.2 * y] <$ [c 5.0] in
  let c1 = [c 2.0 * x; y] <$ [c 1.2] in
  let obj = Obj.Min [x; y] in
  let cnstrs = [c0; c1] in
  (obj, cnstrs)

let () =
   if Lp.validate problem then
       Lp.write "my_problem.lp" problem
   else ()

Status

Currently only basic subset of LP file format is supported. (There is no standard of LP file, though.)

supported

  • Single objective (linear and quadratic)
  • Constraints (linear and quadratic)
  • Bounds
  • Variable types (General Integers and Binary Integers)

not-supported

  • Semi-continuous variables
  • Multi-objective
  • Lazy constraint
  • Special ordered set (SOS)
  • Piecewise-linear objective and constraint
  • General Constraint
  • Scenario

References

Some references to LP file format.

License

MIT

OCaml

Innovation. Community. Security.