Package | Description |
---|---|
org.jamesframework.core.problems |
High-level problem specification.
|
org.jamesframework.core.problems.constraints |
Constraint interfaces.
|
org.jamesframework.core.problems.objectives |
Interfaces of objectives and produced evaluations.
|
org.jamesframework.core.search |
High-level search templates.
|
org.jamesframework.core.search.algo.tabu |
Tabu search and components (including tabu memory specification).
|
org.jamesframework.core.search.cache |
Caches used by searches for efficient move evaluation and validation.
|
org.jamesframework.core.search.neigh |
Neighbourhoods and components.
|
org.jamesframework.core.subset |
Predefined subset problem.
|
org.jamesframework.core.subset.algo.tabu |
Tabu search components for subset selection.
|
org.jamesframework.core.subset.neigh.moves |
Subset moves generated by the provided subset neighbourhoods.
|
Modifier and Type | Method and Description |
---|---|
default Evaluation |
Problem.evaluate(Move<? super SolutionType> move,
SolutionType curSolution,
Evaluation curEvaluation)
Evaluates a move that will be applied to the current solution of a local search (delta evaluation).
|
Evaluation |
GenericProblem.evaluate(Move<? super SolutionType> move,
SolutionType curSolution,
Evaluation curEvaluation)
Evaluate a move (delta evaluation) by taking into account both the evaluation of the modified solution and
the penalizing constraints (if any).
|
default Validation |
Problem.validate(Move<? super SolutionType> move,
SolutionType curSolution,
Validation curValidation)
Validates a move that will be applied to the current solution of a local search (delta validation).
|
Validation |
GenericProblem.validate(Move<? super SolutionType> move,
SolutionType curSolution,
Validation curValidation)
Validate a move by checking all mandatory constraints (delta validation).
|
Modifier and Type | Method and Description |
---|---|
default <ActualSolutionType extends SolutionType> |
PenalizingConstraint.validate(Move<? super ActualSolutionType> move,
ActualSolutionType curSolution,
Validation curValidation,
DataType data)
Validates a move that will be applied to the current solution of a local search (delta validation).
|
default <ActualSolutionType extends SolutionType> |
Constraint.validate(Move<? super ActualSolutionType> move,
ActualSolutionType curSolution,
Validation curValidation,
DataType data)
Validates a move that will be applied to the current solution of a local search (delta validation).
|
Modifier and Type | Method and Description |
---|---|
default <ActualSolutionType extends SolutionType> |
Objective.evaluate(Move<? super ActualSolutionType> move,
ActualSolutionType curSolution,
Evaluation curEvaluation,
DataType data)
Evaluates a move that will be applied to the current solution of a local search (delta evaluation).
|
Modifier and Type | Method and Description |
---|---|
protected Move<? super SolutionType> |
NeighbourhoodSearch.getBestMove(Collection<? extends Move<? super SolutionType>> moves,
boolean requireImprovement,
Predicate<? super Move<? super SolutionType>>... filters)
Get the best valid move among a collection of possible moves.
|
Modifier and Type | Method and Description |
---|---|
protected boolean |
NeighbourhoodSearch.accept(Move<? super SolutionType> move)
Accept the given move by applying it to the current solution.
|
protected Evaluation |
NeighbourhoodSearch.evaluate(Move<? super SolutionType> move)
Evaluates a move to be applied to the current solution.
|
protected boolean |
NeighbourhoodSearch.isImprovement(Move<? super SolutionType> move)
Checks whether applying the given move to the current solution yields a valid improvement.
|
protected void |
NeighbourhoodSearch.reject(Move<? super SolutionType> move)
Reject the given move.
|
protected Validation |
NeighbourhoodSearch.validate(Move<? super SolutionType> move)
Validates a move to be applied to the current solution.
|
Modifier and Type | Method and Description |
---|---|
protected Move<? super SolutionType> |
NeighbourhoodSearch.getBestMove(Collection<? extends Move<? super SolutionType>> moves,
boolean requireImprovement,
Predicate<? super Move<? super SolutionType>>... filters)
Get the best valid move among a collection of possible moves.
|
Modifier and Type | Method and Description |
---|---|
protected boolean |
TabuSearch.accept(Move<? super SolutionType> move)
Overrides acceptance of a move to update the tabu memory by registering the newly visited solution.
|
boolean |
TabuMemory.isTabu(Move<? super SolutionType> move,
SolutionType currentSolution)
Indicates whether the given move is tabu, considering the current solution to which it will be applied
and the current state of the tabu memory.
|
boolean |
FullTabuMemory.isTabu(Move<? super SolutionType> move,
SolutionType currentSolution)
Verifies whether the given move is tabu by applying it to the current solution and checking if the obtained
neighbour is currently contained in the tabu memory.
|
void |
TabuMemory.registerVisitedSolution(SolutionType visitedSolution,
Move<? super SolutionType> appliedMove)
Register a newly visited solution in the tabu memory.
|
void |
FullTabuMemory.registerVisitedSolution(SolutionType visitedSolution,
Move<? super SolutionType> appliedMove)
A newly visited solution is registered by storing a deep copy of this solution in the full tabu memory.
|
Modifier and Type | Method and Description |
---|---|
void |
SingleEvaluatedMoveCache.cacheMoveEvaluation(Move<?> move,
Evaluation evaluation)
Cache the given evaluation, discarding any previously cached evaluations.
|
void |
EvaluatedMoveCache.cacheMoveEvaluation(Move<?> move,
Evaluation evaluation)
Request to cache the evaluation (see
Problem.evaluate(Solution) ) of the neighbouring
solution which is obtained by applying the given move to the current solution. |
void |
SingleEvaluatedMoveCache.cacheMoveValidation(Move<?> move,
Validation validation)
Cache validation of the given move, discarding any previously cached value.
|
void |
EvaluatedMoveCache.cacheMoveValidation(Move<?> move,
Validation validation)
Request to cache the validation (see
Problem.validate(Solution) ) of the neighbouring
solution which is obtained by applying the given move to the current solution. |
Evaluation |
SingleEvaluatedMoveCache.getCachedMoveEvaluation(Move<?> move)
Retrieve a cached evaluation, if still available.
|
Evaluation |
EvaluatedMoveCache.getCachedMoveEvaluation(Move<?> move)
Retrieve the cached evaluation (see
Problem.evaluate(Solution) ) of the neighbouring
solution which is obtained by applying the given move to the current solution, if available. |
Validation |
SingleEvaluatedMoveCache.getCachedMoveValidation(Move<?> move)
Retrieve a cached validation, if still available.
|
Validation |
EvaluatedMoveCache.getCachedMoveValidation(Move<?> move)
Retrieve the cached validation (see
Problem.validate(Solution) ) of the neighbouring
solution which is obtained by applying the given move to the current solution, if available. |
Modifier and Type | Method and Description |
---|---|
default Move<? super SolutionType> |
Neighbourhood.getRandomMove(SolutionType solution)
Generates a random move, using a default source of randomness.
|
Move<? super SolutionType> |
Neighbourhood.getRandomMove(SolutionType solution,
Random rnd)
Generates a move that transforms the given solution into a random neighbour
contained in this specific neighbourhood.
|
Modifier and Type | Method and Description |
---|---|
List<? extends Move<? super SolutionType>> |
Neighbourhood.getAllMoves(SolutionType solution)
Get a list of all moves that can be applied to the given solution to transform
it into each of the neighbouring solutions contained in this specific neighbourhood.
|
Modifier and Type | Method and Description |
---|---|
SubsetValidation |
SubsetProblem.validate(Move<? super SubsetSolution> move,
SubsetSolution curSolution,
Validation curValidation)
Validate a move to be applied to the current subset solution of a local search (delta validation).
|
Modifier and Type | Method and Description |
---|---|
boolean |
IDBasedSubsetTabuMemory.isTabu(Move<? super SubsetSolution> move,
SubsetSolution currentSolution)
A move is considered tabu if any involved ID (added or deleted) is currently contained in the tabu memory.
|
void |
IDBasedSubsetTabuMemory.registerVisitedSolution(SubsetSolution visitedSolution,
Move<? super SubsetSolution> appliedMove)
Registers an applied subset move by storing all involved IDs (added or deleted) in the tabu memory.
|
Modifier and Type | Interface and Description |
---|---|
interface |
SubsetMove
General interface of a subset move that adds a number of IDs to the selection and/or
removes a number of IDs.
|
Modifier and Type | Class and Description |
---|---|
class |
AbstractSubsetMove
Abstract subset move that contains general behaviour such as
AbstractSubsetMove.equals(Object) and AbstractSubsetMove.hashCode() . |
class |
AdditionMove
Simple subset move that adds a single ID to the current selection.
|
class |
DeletionMove
Simple subset move that removes a single ID from the current selection.
|
class |
GeneralSubsetMove
A general subset move may simultaneously add and/or remove
several IDs to/from the current selection of a subset solution.
|
class |
SwapMove
Simple subset move that removes a single ID from the current selection
and replaces it with a new ID which was previously not selected.
|
Copyright © 2016. All rights reserved.