scalation.minima

IntegerNLP

class IntegerNLP extends AnyRef

This class solves Integer Non-Linear Programming (INLP) and Mixed Integer Linear Non-Programming (MINLP) problems recursively using the Simplex algorithm. First, an NLP problem is solved. If the optimal solution vector x is entirely integer valued, the INLP is solved. If not, pick the first x_j that is not integer valued. Define two new NLP problems which bound x_j to the integer below and above, respectively. Branch by solving each of these NLP problems in turn. Prune by not exploring branches less optimal than the currently best integer solution. This technique is referred to as Branch and Bound. An exclusion set may be optionally provided for MINLP problems.

Given an objective function f(x) and a constraint function g(x), find values for the solution/decision vector 'x' that minimize the objective function f(x), while satisfying the constraint function, i.e.,

minimize f(x) subject to g(x) <= 0, some x_i must integer-valued

Make b_i negative to indicate a ">=" constraint

Linear Supertypes
AnyRef, Any
Ordering
  1. Alphabetic
  2. By inheritance
Inherited
  1. IntegerNLP
  2. AnyRef
  3. Any
  1. Hide All
  2. Show all
Learn more about member selection
Visibility
  1. Public
  2. All

Instance Constructors

  1. new IntegerNLP(f: (VectorD) ⇒ Double, n: Int, g: (VectorD) ⇒ Double = null, excl: Set[Int] = scala.this.Predef.Set.apply[Int]())

    f

    the objective function to be minimized

    g

    the constraint function to be satisfied, if any

    excl

    the set of variables to be excluded from the integer requirement

Value Members

  1. final def !=(arg0: AnyRef): Boolean

    Definition Classes
    AnyRef
  2. final def !=(arg0: Any): Boolean

    Definition Classes
    Any
  3. final def ##(): Int

    Definition Classes
    AnyRef → Any
  4. final def ==(arg0: AnyRef): Boolean

    Definition Classes
    AnyRef
  5. final def ==(arg0: Any): Boolean

    Definition Classes
    Any
  6. def addConstraint(j: Int, le: Boolean, bound: Double): Boolean

    Add a new constraint to the current set of bounding constraints: x_j - bound <= 0 or x_j - bound >= 0 (e.

    Add a new constraint to the current set of bounding constraints: x_j - bound <= 0 or x_j - bound >= 0 (e.g., x_1 - 2 <= 0 or x_0 - 4 >= 0).

    j

    the index of variable x_j

    le

    whether it is a "less than or equal to" (le) constraint

    bound

    the bounding value

  7. final def asInstanceOf[T0]: T0

    Definition Classes
    Any
  8. def clone(): AnyRef

    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  9. final def eq(arg0: AnyRef): Boolean

    Definition Classes
    AnyRef
  10. def equals(arg0: Any): Boolean

    Definition Classes
    AnyRef → Any
  11. def finalize(): Unit

    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  12. def fractionalVar(x: VectorD): Int

    Return j such that x_j has a fractional (non-integer) value, -1 otherwise.

    Return j such that x_j has a fractional (non-integer) value, -1 otherwise. Make sure that j is not in the exclusion list.

    x

    the vector to check

  13. var g: (VectorD) ⇒ Double

    the constraint function to be satisfied, if any

  14. def g0(x: VectorD): Double

  15. def gBounds(x: VectorD): Double

    Add up all the violation of bounds constraints.

    Add up all the violation of bounds constraints.

    x

    the current point

  16. final def getClass(): Class[_]

    Definition Classes
    AnyRef → Any
  17. def hashCode(): Int

    Definition Classes
    AnyRef → Any
  18. final def isInstanceOf[T0]: Boolean

    Definition Classes
    Any
  19. final def ne(arg0: AnyRef): Boolean

    Definition Classes
    AnyRef
  20. final def notify(): Unit

    Definition Classes
    AnyRef
  21. final def notifyAll(): Unit

    Definition Classes
    AnyRef
  22. def solution: (VectorD, Double)

    Return the optimal (minimal) integer solution.

  23. def solve(x0: VectorD, dp: Int): Unit

    Solve the Mixed Integer Nonlinear Linear Programming (MINLP) problem by using Branch and Bound and an NLP Algorithm (e.

    Solve the Mixed Integer Nonlinear Linear Programming (MINLP) problem by using Branch and Bound and an NLP Algorithm (e.g., QuasiNewton), recursively.

    dp

    the current depth of recursion

  24. final def synchronized[T0](arg0: ⇒ T0): T0

    Definition Classes
    AnyRef
  25. def toString(): String

    Definition Classes
    AnyRef → Any
  26. final def wait(): Unit

    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  27. final def wait(arg0: Long, arg1: Int): Unit

    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  28. final def wait(arg0: Long): Unit

    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  29. val x_ge: VectorD

  30. val x_le: VectorD

Inherited from AnyRef

Inherited from Any

Ungrouped