Package | Description |
---|---|
org.jamesframework.core.subset |
Predefined subset problem.
|
org.jamesframework.core.subset.algo.exh |
Exhaustive search components for subset selection.
|
org.jamesframework.core.subset.algo.tabu |
Tabu search components for subset selection.
|
org.jamesframework.core.subset.neigh |
Subset selection neighbourhoods.
|
org.jamesframework.core.subset.neigh.adv |
Advanced subset selection neighbourhoods.
|
org.jamesframework.core.subset.neigh.moves |
Subset moves generated by the provided subset neighbourhoods.
|
Modifier and Type | Method and Description |
---|---|
SubsetSolution |
SubsetSolution.copy()
Create a deep copy of this subset solution, obtained through the copy constructor.
|
SubsetSolution |
SubsetProblem.createEmptySubsetSolution()
Creates an empty subset solution in which no IDs are selected.
|
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).
|
SubsetValidation |
SubsetProblem.validate(SubsetSolution solution)
Validate a subset solution.
|
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).
|
Constructor and Description |
---|
SubsetSolution(SubsetSolution sol)
Copy constructor.
|
Constructor and Description |
---|
SubsetProblem(DataType data,
Objective<? super SubsetSolution,? super DataType> objective)
Creates a subset problem without subset size limits.
|
SubsetProblem(DataType data,
Objective<? super SubsetSolution,? super DataType> objective,
int fixedSubsetSize)
Creates a subset problem with fixed subset size.
|
SubsetProblem(DataType data,
Objective<? super SubsetSolution,? super DataType> objective,
int minSubsetSize,
int maxSubsetSize)
Creates a new subset problem with given data, objective and minimum/maximum subset size.
|
SubsetProblem(DataType data,
Objective<? super SubsetSolution,? super DataType> objective,
int minSubsetSize,
int maxSubsetSize,
boolean orderIDs)
Creates a new subset problem with given data, objective and minimum/maximum subset size.
|
SubsetProblem(DataType data,
Objective<? super SubsetSolution,? super DataType> objective,
int minSubsetSize,
int maxSubsetSize,
Comparator<Integer> orderOfIDs)
Creates a new subset problem with given data, objective and minimum/maximum subset size.
|
Modifier and Type | Method and Description |
---|---|
SubsetSolution |
SubsetSolutionIterator.next()
Generate the next subset solution.
|
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 | 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 | Method and Description |
---|---|
protected Set<Integer> |
SubsetNeighbourhood.getAddCandidates(SubsetSolution currentSolution)
Infer the set of IDs that may be added to the selection in the given subset solution.
|
List<SubsetMove> |
SingleSwapNeighbourhood.getAllMoves(SubsetSolution solution)
Generates a list of all possible swap moves that transform the given subset solution by removing a single ID from
the current selection and replacing it with a new ID which is currently not selected.
|
List<SubsetMove> |
SinglePerturbationNeighbourhood.getAllMoves(SubsetSolution solution)
Generate all valid swap, deletion and addition moves that transform the given subset solution into
a neighbour within the minimum and maximum allowed subset size.
|
List<SubsetMove> |
SingleDeletionNeighbourhood.getAllMoves(SubsetSolution solution)
Generates a list of all possible deletion moves that remove a single ID from the selection of a given
subset solution.
|
List<SubsetMove> |
SingleAdditionNeighbourhood.getAllMoves(SubsetSolution solution)
Generates a list of all possible addition moves that add a single ID to the selection of a given
subset solution.
|
SubsetMove |
SingleSwapNeighbourhood.getRandomMove(SubsetSolution solution,
Random rnd)
Generates a random swap move for the given subset solution that removes a single ID from the set of currently selected IDs,
and replaces it with a random ID taken from the set of currently unselected IDs.
|
SubsetMove |
SinglePerturbationNeighbourhood.getRandomMove(SubsetSolution solution,
Random rnd)
Generates a random swap, deletion or addition move that transforms the given subset solution into
a neighbour within the minimum and maximum allowed subset size.
|
SubsetMove |
SingleDeletionNeighbourhood.getRandomMove(SubsetSolution solution,
Random rnd)
Generates a random deletion move for the given subset solution that removes a single ID from the selection.
|
SubsetMove |
SingleAdditionNeighbourhood.getRandomMove(SubsetSolution solution,
Random rnd)
Generates a random addition move for the given subset solution that adds a single ID to the selection.
|
protected Set<Integer> |
SubsetNeighbourhood.getRemoveCandidates(SubsetSolution currentSolution)
Infer the set of IDs that may be removed from the selection in the given subset solution.
|
Modifier and Type | Method and Description |
---|---|
List<SubsetMove> |
MultiSwapNeighbourhood.getAllMoves(SubsetSolution solution)
Generates the list of all possible moves that perform 1 up to \(k\) swaps, where \(k\) is the maximum number
of swaps specified at construction.
|
List<SubsetMove> |
MultiDeletionNeighbourhood.getAllMoves(SubsetSolution solution)
Generates the list of all possible moves that perform 1 up to \(k\) deletions, where \(k\) is the maximum number
of deletions specified at construction.
|
List<SubsetMove> |
MultiAdditionNeighbourhood.getAllMoves(SubsetSolution solution)
Generates the list of all possible moves that perform 1 up to \(k\) additions, where \(k\) is the maximum number
of additions specified at construction.
|
List<SubsetMove> |
DisjointMultiSwapNeighbourhood.getAllMoves(SubsetSolution solution)
Generates the list of all possible moves that perform exactly \(k\) swaps, where \(k\) is the desired number
of swaps specified at construction.
|
List<SubsetMove> |
DisjointMultiDeletionNeighbourhood.getAllMoves(SubsetSolution solution)
Generates the list of all possible moves that perform \(k\) deletions, where \(k\) is the fixed number
specified at construction.
|
List<SubsetMove> |
DisjointMultiAdditionNeighbourhood.getAllMoves(SubsetSolution solution)
Generates the list of all possible moves that perform \(k\) additions, where \(k\) is the fixed number
specified at construction.
|
SubsetMove |
MultiSwapNeighbourhood.getRandomMove(SubsetSolution solution,
Random rnd)
Generates a move for the given subset solution that removes a random subset of IDs from the current selection
and replaces them with an equally large random subset of the currently unselected IDs.
|
SubsetMove |
MultiDeletionNeighbourhood.getRandomMove(SubsetSolution solution,
Random rnd)
Generates a move for the given subset solution that deselects a random subset of currently selected IDs.
|
SubsetMove |
MultiAdditionNeighbourhood.getRandomMove(SubsetSolution solution,
Random rnd)
Generates a move for the given subset solution that adds a random subset of currently unselected IDs to the
selection.
|
SubsetMove |
DisjointMultiSwapNeighbourhood.getRandomMove(SubsetSolution solution,
Random rnd)
Generates a move for the given subset solution that removes a random subset of \(k\) IDs from the current
selection and replaces them with an equally large random subset of the currently unselected IDs, where
\(k\) is the number of swaps specified at construction.
|
SubsetMove |
DisjointMultiDeletionNeighbourhood.getRandomMove(SubsetSolution solution,
Random rnd)
Generates a move for the given subset solution that deselects a random subset of currently selected IDs.
|
SubsetMove |
DisjointMultiAdditionNeighbourhood.getRandomMove(SubsetSolution solution,
Random rnd)
Generates a move for the given subset solution that selects a random subset of currently unselected IDs.
|
Modifier and Type | Method and Description |
---|---|
void |
SwapMove.apply(SubsetSolution solution)
Apply this swap move to a given subset solution.
|
void |
GeneralSubsetMove.apply(SubsetSolution solution)
Apply this move to a given subset solution.
|
void |
DeletionMove.apply(SubsetSolution solution)
Apply this deletion move to the given subset solution.
|
void |
AdditionMove.apply(SubsetSolution solution)
Apply this addition move to the given subset solution.
|
void |
SwapMove.undo(SubsetSolution solution)
Undo this swap move after it has been successfully applied to the given subset solution,
by removing the newly added ID and re-adding the deleted ID.
|
void |
GeneralSubsetMove.undo(SubsetSolution solution)
Undo this move after it has been successfully applied to the given subset solution,
by removing all added IDs and adding all removed IDs.
|
void |
DeletionMove.undo(SubsetSolution solution)
Undo this deletion move after it has been successfully applied to the given subset solution, by re-adding the
deleted ID to the selection.
|
void |
AdditionMove.undo(SubsetSolution solution)
Undo this addition move after it has been successfully applied to the given subset solution, by removing the newly added ID
from the selection.
|
Copyright © 2016. All rights reserved.