TabuSearch

scalation.optimization.TabuSearch
class TabuSearch(f: VectorD => Double, g: VectorD => Double, maxStep: Double)

The TabuSearch class performs tabu search to find minima of functions defined on double vector domains z^n. Tabu search will not re-visit points already deemed sub-optimal.

minimize f(x) subject to g(x) <= 0, x in Z^n

Value parameters

f

the objective function to be minimize (f maps an double vector to a double)

g

the constraint function to be satisfied, if any

maxStep

the maximum/starting step size (make larger for larger domains)

Attributes

Graph
Supertypes
class Object
trait Matchable
class Any

Members list

Type members

Types

type Vec_Func = (VectorD, Double)

Value members

Concrete methods

def fg(x: VectorD): 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.

Value parameters

x

the coordinate values of the current point

Attributes

def minNeighbor(x_f0: Vec_Func, i: Int, step: Double): Vec_Func

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.

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.

Value parameters

i

the i-th dimension or coordinate (facilitates recursion)

step

examine points that are this far away

x_f0

the current pair (the point and its functional value)

Attributes

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.

Value parameters

x

the starting point for the search

Attributes