Quadratix is a student project that assigns a place to a set of machines using quadratic assignement methods.
In this document, the type P
denotes the parameter type of the fitness function, that can be any elements (bits, combination, number,
...). R
represents the return type of the fitness function. It is often a number (integer or real).
Classes for General Purposes:
-
ISearch
: Interface that implements thesearch
function. It must be used by all classes that use an optimisation search. -
NumberOperations<T>
: Interface that implements methods to use an object as a number, with different operations:plus()
minus()
multiply()
divide()
getZero()
: The neutral element or the vector space. TheT
represents the type of the number-like object.
-
MathFunction<P, R>
: Interface that inherits fromFunction
. It add the methodFunction<R, P> invert();
in addition toR apply(T t)
.invert()
return the inverse of the function defined byapply()
. -
ElementaryFunction<P>
: Interface that inherits fromMathFunction<P, P>
. It represents an endomorph function. It also add a static method to get the identity.
Classes for Tabu Search:
-
TabuList<P, R>
: Class that inherits fromArrayList<Function<P, R>>
. It is a list with a fixed size, defined when it is constructed: When the list is at full capacity, and a new element is added, it will overwrite the first element. The elements listed are only functions (through the interfaceFunction
). Be careful not to get confuse betweensize()
which is the actual size of the list (exactly like inList
), andgetFixedSize()
, which is the fixed length of the list.size()
≤getFixedSize()
. -
Tabu<P, R>
: Class that implement the tabu search. The functionssearch()
and its overload search the optimal point in the space of solution. -
Bits
: Class that represents an array of bits. -
Combination
: Class that represents a combination of number. -
BitLengthExceededException
: Exception thrown when an invalid size of bits have been given inBits
.