In Tabu search a tabu move is still considered if it yields an improvement over the best known solution. Currently the following aspiration criterion is applied to filter the collection of moves:
m -> !tabuMemory.isTabu(m, getCurrentSolution())
|| computeDelta(evaluate(m), getBestSolutionEvaluation()) > 0
The current implementation is not incorrect, since all moves are validated in getBestMove anyway, but the suggested change might improve clarity (and is not slower because the validation is cached).
In Tabu search a tabu move is still considered if it yields an improvement over the best known solution. Currently the following aspiration criterion is applied to filter the collection of moves:
Consider to change to
The current implementation is not incorrect, since all moves are validated in
getBestMove
anyway, but the suggested change might improve clarity (and is not slower because the validation is cached).