LinearProgram

DSL for LinearPrograms. Not thread-safe per instance. Make multiple instances

Basic example:

val lp = new LP
import lp._
val x = new Positive("x")
val y = new Positive("y")

val result = maximize ( (3 * x+ 4 * y)
subjectTo( x <= 3, y <= 1))

result.valueOf(x) // 3

Companion:
object
class Object
trait Matchable
class Any

Type members

Classlikes

case class Binary(name: String) extends Variable
sealed trait Constraint
case object EQ extends Relation
sealed trait Expression extends Problem

Anything that can be built up from adding/subtracting/dividing and multiplying by constants

Anything that can be built up from adding/subtracting/dividing and multiplying by constants

case object GTE extends Relation
case class Integer(name: String) extends Variable
case object LTE extends Relation
sealed trait Problem
case class Real(name: String) extends Variable
sealed abstract class Relation(val operator: String)
case class Result(result: DenseVector[Double], problem: Problem)
sealed trait Variable extends Expression

Value members

Concrete methods

def maximize(expression: Expression): Problem
def maximize(objective: Problem)(implicit solver: Solver): Result
def minimize(expression: Expression): Problem
def minimize(objective: Problem)(implicit solver: Solver): Result