class IntegerLocalSearch extends AnyRef
The IntegerLocalSearch
class performs local search to find minima of functions
defined on integer vector domains (z^n).
minimize f(x) subject to g(x) <= 0, x in Z^n
- Alphabetic
- By Inheritance
- IntegerLocalSearch
- AnyRef
- Any
- Hide All
- Show All
- Public
- Protected
Instance Constructors
- new IntegerLocalSearch(f: (VectorI) => Double, g: (VectorI) => Double = null, maxStep: Int = 5)
- f
the objective function to be minimize ('f' maps an integer vector to a double)
- g
the constraint function to be satisfied, if any
- maxStep
the maximum/starting step size (make larger for larger domains)
Type Members
- type Vec_Func = (VectorI, Double)
Pair consisting of an integer vector and its functional value (a double)
Value Members
- def fg(x: VectorI): Double
The objective function 'f' re-scaled by a weighted penalty, if constrained.
The objective function 'f' re-scaled by a weighted penalty, if constrained.
- x
the coordinate values of the current point
- def minNeighbor(x_f0: Vec_Func, i: Int, step: Int = 1): Vec_Func
Find a minimal neighbor of the current point 'x' that is a distance step away.
Find a minimal neighbor of the current point 'x' that is a distance step away. Let 'x' be the current point with 'y' being a step down and 'x' being a step up in dimension 'i'. Recurse to handle all of the dimensions.
- x_f0
the current pair (the point and its functional value)
- i
the 'i'th dimension or coordinate (facilitates recursion)
- step
examine points that are this far away
- def solve(x: VectorI): Vec_Func
Solve the minimization problem by repeatedly moving to a minimal neighbor until there is no improvement.
Solve the minimization problem by repeatedly moving to a minimal neighbor until there is no improvement.
- x
the starting point for the search