- GeneralSubsetMove - Class in org.jamesframework.core.search.neigh.subset.adv
-
A general subset move adds and/or removes several IDs at once to/from the current selection
of a subset solution.
- GeneralSubsetMove(Set<Integer>, Set<Integer>) - Constructor for class org.jamesframework.core.search.neigh.subset.adv.GeneralSubsetMove
-
Creates a general subset move, indicating which IDs are to be added to and removed from
the current selection when being applied to a given subset solution.
- getAddedID() - Method in class org.jamesframework.core.search.neigh.subset.AdditionMove
-
Returns the added ID.
- getAddedID() - Method in class org.jamesframework.core.search.neigh.subset.SwapMove
-
Returns the added ID.
- getAddedIDs() - Method in class org.jamesframework.core.search.neigh.subset.AdditionMove
-
Returns an unmodifiable singleton containing the only added ID.
- getAddedIDs() - Method in class org.jamesframework.core.search.neigh.subset.adv.GeneralSubsetMove
-
Returns an unmodifiable view of the set of IDs added to the selection when applying
this move to a subset solution.
- getAddedIDs() - Method in class org.jamesframework.core.search.neigh.subset.DeletionMove
-
Returns an unmodifiable empty set, as no IDs are added.
- getAddedIDs() - Method in interface org.jamesframework.core.search.neigh.subset.SubsetMove
-
Get the set of IDs that are added to the selection by applying this move to a subset solution.
- getAddedIDs() - Method in class org.jamesframework.core.search.neigh.subset.SwapMove
-
Returns an unmodifiable singleton containing the only added ID.
- getAllIDs() - Method in class org.jamesframework.core.problems.solutions.SubsetSolution
-
Returns an unmodifiable view of the set of all IDs.
- getAllMoves(SolutionType) - Method in interface org.jamesframework.core.search.neigh.Neighbourhood
-
Get a set 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.
- getAllMoves(SubsetSolution) - Method in class org.jamesframework.core.search.neigh.subset.adv.DisjointMultiSwapNeighbourhood
-
Generates the set of all possible moves that perform exactly \(k\) swaps, where \(k\) is the desired number
of swaps specified at construction.
- getAllMoves(SubsetSolution) - Method in class org.jamesframework.core.search.neigh.subset.adv.MultiSwapNeighbourhood
-
Generates the set of all possible moves that perform 1 up to \(k\) swaps, where \(k\) is the maximum number
of swaps specified at construction.
- getAllMoves(SubsetSolution) - Method in class org.jamesframework.core.search.neigh.subset.SinglePerturbationNeighbourhood
-
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.
- getAllMoves(SubsetSolution) - Method in class org.jamesframework.core.search.neigh.subset.SingleSwapNeighbourhood
-
Generates a set 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.
- getBestSolution() - Method in class org.jamesframework.core.search.Search
-
Returns the best solution found so far.
- getBestSolutionEvaluation() - Method in class org.jamesframework.core.search.Search
-
Get the evaluation of the best solution found so far.
- getCachedMoveEvaluation(Move<?>) - Method in interface org.jamesframework.core.search.cache.EvaluatedMoveCache
-
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.
- getCachedMoveEvaluation(Move<?>) - Method in class org.jamesframework.core.search.cache.SingleEvaluatedMoveCache
-
Retrieve a cached evaluation, if still available.
- getCachedMoveRejection(Move<?>) - Method in interface org.jamesframework.core.search.cache.EvaluatedMoveCache
-
Retrieve cached rejection (see
Problem.evaluate(Solution)) of the neighbouring
solution which is obtained by applying the given move to the current solution, if available.
- getCachedMoveRejection(Move<?>) - Method in class org.jamesframework.core.search.cache.SingleEvaluatedMoveCache
-
Retrieve cached rejection, if still available.
- getCurrentSolution() - Method in class org.jamesframework.core.search.LocalSearch
-
Returns the current solution.
- getCurrentSolutionEvaluation() - Method in class org.jamesframework.core.search.LocalSearch
-
Get the evaluation of the current solution.
- getData() - Method in class org.jamesframework.core.problems.ProblemWithData
-
Get the underlying data.
- getDeletedID() - Method in class org.jamesframework.core.search.neigh.subset.DeletionMove
-
Returns the deleted ID.
- getDeletedID() - Method in class org.jamesframework.core.search.neigh.subset.SwapMove
-
Returns the deleted ID.
- getDeletedIDs() - Method in class org.jamesframework.core.search.neigh.subset.AdditionMove
-
Returns an unmodifiable empty set, as no IDs are deleted by this move.
- getDeletedIDs() - Method in class org.jamesframework.core.search.neigh.subset.adv.GeneralSubsetMove
-
Returns an unmodifiable view of the set of IDs removed from the selection when applying
this move to a subset solution.
- getDeletedIDs() - Method in class org.jamesframework.core.search.neigh.subset.DeletionMove
-
Returns an unmodifiable singleton, containing the only deleted ID.
- getDeletedIDs() - Method in interface org.jamesframework.core.search.neigh.subset.SubsetMove
-
Get the set of IDs that are removed from the selection by applying this move to a subset solution.
- getDeletedIDs() - Method in class org.jamesframework.core.search.neigh.subset.SwapMove
-
Returns an unmodifiable singleton containing the only deleted ID.
- getID() - Method in class org.jamesframework.core.search.Search
-
Get the unique ID that has been assigned to this search.
- getIDs() - Method in interface org.jamesframework.core.problems.datatypes.SubsetData
-
Get the set of integer IDs corresponding to the underlying entities from which a subset is to be selected.
- getL() - Method in class org.jamesframework.core.search.algo.LRSubsetSearch
-
Get \(L\): the number of additions performed in every search step.
- getLocalSearchFactory() - Method in class org.jamesframework.core.search.algo.vns.VariableNeighbourhoodSearch
-
Get the factory used to create instances of the local search algorithm which is applied to modify
solutions obtained after shaking.
- getMaxSubsetSize() - Method in interface org.jamesframework.core.problems.SubsetProblem
-
The maximum size of the subset to be selected.
- getMaxSubsetSize() - Method in class org.jamesframework.core.problems.SubsetProblemWithData
-
Get the maximum subset size.
- getMaxSubsetSize() - Method in class org.jamesframework.core.search.neigh.subset.SinglePerturbationNeighbourhood
-
Get the maximum subset size specified at construction.
- getMinDelta() - Method in class org.jamesframework.core.search.Search
-
Get the minimum improvement in evaluation of a new best known solution over the previous best known solution,
found during the current (or last) run.
- getMinSubsetSize() - Method in interface org.jamesframework.core.problems.SubsetProblem
-
The minimum size of the subset to be selected.
- getMinSubsetSize() - Method in class org.jamesframework.core.problems.SubsetProblemWithData
-
Get the minimum subset size.
- getMinSubsetSize() - Method in class org.jamesframework.core.search.neigh.subset.SinglePerturbationNeighbourhood
-
Get the minimum subset size specified at construction.
- getMoveWithLargestDelta(Collection<? extends Move<? super SolutionType>>, boolean) - Method in class org.jamesframework.core.search.NeighbourhoodSearch
-
- getName() - Method in class org.jamesframework.core.search.Search
-
Get the name that has been assigned to this search.
- getNeighbourhood() - Method in class org.jamesframework.core.search.SingleNeighbourhoodSearch
-
Get the neighbourhood used to modify the current solution.
- getNeighbourhoods() - Method in class org.jamesframework.core.search.MultiNeighbourhoodSearch
-
Get the list of neighbourhoods used to modify the current solution.
- getNumAcceptedMoves() - Method in class org.jamesframework.core.search.NeighbourhoodSearch
-
Get the number of moves accepted during the current (or last) run.
- getNumAdded() - Method in class org.jamesframework.core.search.neigh.subset.AdditionMove
-
Always return 1, as a single ID is added.
- getNumAdded() - Method in class org.jamesframework.core.search.neigh.subset.adv.GeneralSubsetMove
-
Returns the number of added IDs.
- getNumAdded() - Method in class org.jamesframework.core.search.neigh.subset.DeletionMove
-
Always returns 0, as no IDs are added.
- getNumAdded() - Method in interface org.jamesframework.core.search.neigh.subset.SubsetMove
-
Returns the number of added IDs, possibly 0.
- getNumAdded() - Method in class org.jamesframework.core.search.neigh.subset.SwapMove
-
Always returns 1.
- getNumDeleted() - Method in class org.jamesframework.core.search.neigh.subset.AdditionMove
-
Always returns 0, as no IDs are deleted.
- getNumDeleted() - Method in class org.jamesframework.core.search.neigh.subset.adv.GeneralSubsetMove
-
Returns the number of removed IDs.
- getNumDeleted() - Method in class org.jamesframework.core.search.neigh.subset.DeletionMove
-
Always returns 1, as a single ID is deleted.
- getNumDeleted() - Method in interface org.jamesframework.core.search.neigh.subset.SubsetMove
-
Returns the number of deleted IDs, possibly 0.
- getNumDeleted() - Method in class org.jamesframework.core.search.neigh.subset.SwapMove
-
Always return 1.
- getNumRejectedMoves() - Method in class org.jamesframework.core.search.NeighbourhoodSearch
-
Get the number of moves rejected during the current (or last) run.
- getNumSelectedIDs() - Method in class org.jamesframework.core.problems.solutions.SubsetSolution
-
Get the number of IDs which are currently selected.
- getNumUnselectedIDs() - Method in class org.jamesframework.core.problems.solutions.SubsetSolution
-
Get the number of IDs which are currently unselected.
- getObjective() - Method in class org.jamesframework.core.problems.ProblemWithData
-
Get the objective function.
- getProblem() - Method in class org.jamesframework.core.search.algo.LRSubsetSearch
-
Returns the subset problem that is being solved.
- getProblem() - Method in class org.jamesframework.core.search.Search
-
Get the problem being solved, as specified at construction.
- getR() - Method in class org.jamesframework.core.search.algo.LRSubsetSearch
-
Get \(R\): the number of deletions performed in every search step.
- getRandomElement(Set<? extends T>, Random) - Static method in class org.jamesframework.core.util.SetUtilities
-
Select a random element from a given set (uniformly distributed).
- getRandomMove(SolutionType) - Method in interface org.jamesframework.core.search.neigh.Neighbourhood
-
Generates a move that transforms the given solution into a random neighbour
contained in this specific neighbourhood.
- getRandomMove(SubsetSolution) - Method in class org.jamesframework.core.search.neigh.subset.adv.DisjointMultiSwapNeighbourhood
-
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.
- getRandomMove(SubsetSolution) - Method in class org.jamesframework.core.search.neigh.subset.adv.MultiSwapNeighbourhood
-
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.
- getRandomMove(SubsetSolution) - Method in class org.jamesframework.core.search.neigh.subset.SinglePerturbationNeighbourhood
-
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.
- getRandomMove(SubsetSolution) - Method in class org.jamesframework.core.search.neigh.subset.SingleSwapNeighbourhood
-
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.
- getRandomSubset(Set<? extends T>, int, Random) - Static method in class org.jamesframework.core.util.SetUtilities
-
Selects a random subset of a specific size from a given set (uniformly distributed).
- getReplicas() - Method in class org.jamesframework.core.search.algo.ParallelTempering
-
Get the list of Metropolis replicas used by this parallel tempering algorithm.
- getReplicaSteps() - Method in class org.jamesframework.core.search.algo.ParallelTempering
-
Get the number of steps performed by each replica in every iteration of the global parallel tempering
algorithm, before considering solution swaps.
- getRuntime() - Method in class org.jamesframework.core.search.Search
-
Get the runtime of the current (or last) run, in milliseconds.
- getSearches() - Method in class org.jamesframework.core.search.algo.BasicParallelSearch
-
Get a list of all searches that have been added to this parallel search for concurrent execution.
- getSelectedIDs() - Method in class org.jamesframework.core.problems.solutions.SubsetSolution
-
Returns an unmodifiable view of the set of currently selected IDs.
- getSolution() - Method in exception org.jamesframework.core.exceptions.SolutionModificationException
-
Returns the solution that was being modified when this exception occurred.
- getStatus() - Method in class org.jamesframework.core.search.Search
-
Get the current search status.
- getStatusLock() - Method in class org.jamesframework.core.search.Search
-
Returns a lock to be acquired when executing blocks of code that can not be interrupted by a status update.
- getSteps() - Method in class org.jamesframework.core.search.Search
-
Get the number of completed steps during the current (or last) run.
- getStepsWithoutImprovement() - Method in class org.jamesframework.core.search.Search
-
Get the number of consecutive steps completed during the current (or last) run, without finding
any further improvement.
- getTemperature() - Method in class org.jamesframework.core.search.algo.MetropolisSearch
-
Get the temperature \(T\) of the system.
- getTemperatureScaleFactor() - Method in class org.jamesframework.core.search.algo.MetropolisSearch
-
Get the temperature scale factor \(k\) of the system.
- getTimeWithoutImprovement() - Method in class org.jamesframework.core.search.Search
-
Get the amount of time elapsed during the current (or last) run, without finding any further improvement
(in milliseconds).
- getTotalNumIDs() - Method in class org.jamesframework.core.problems.solutions.SubsetSolution
-
Get the total number of IDs.
- getUnselectedIDs() - Method in class org.jamesframework.core.problems.solutions.SubsetSolution
-
Returns an unmodifiable view of the set of currently non selected IDs.
- getViolatedConstraints(SolutionType) - Method in class org.jamesframework.core.problems.ProblemWithData
-
Returns a set of all violated constraints (both rejecting and penalizing constraints).
- IDBasedSubsetTabuMemory - Class in org.jamesframework.core.search.algo.tabu
-
An ID based subset tabu memory keeps track of recently added and deleted IDs (recently applied moves) and does not
allow that these IDs are added nor deleted to/from the current solution as long as they are contained in the limited
size tabu memory.
- IDBasedSubsetTabuMemory(int) - Constructor for class org.jamesframework.core.search.algo.tabu.IDBasedSubsetTabuMemory
-
Creates an ID based subset tabu memory with specified size.
- incNumAcceptedMoves(long) - Method in class org.jamesframework.core.search.NeighbourhoodSearch
-
Increase the number of accepted moves with the given value.
- incNumRejectedMoves(long) - Method in class org.jamesframework.core.search.NeighbourhoodSearch
-
Increase the number of rejected moves with the given value.
- IncompatibleSearchListenerException - Exception in org.jamesframework.core.exceptions
-
Exception thrown when an incompatible search listener is attached to a search.
- IncompatibleSearchListenerException() - Constructor for exception org.jamesframework.core.exceptions.IncompatibleSearchListenerException
-
Creates a new instance without detail message.
- IncompatibleSearchListenerException(String) - Constructor for exception org.jamesframework.core.exceptions.IncompatibleSearchListenerException
-
Constructs an instance with the specified detail message.
- IncompatibleSearchListenerException(Throwable) - Constructor for exception org.jamesframework.core.exceptions.IncompatibleSearchListenerException
-
Constructs an instance with the specified cause.
- IncompatibleSearchListenerException(String, Throwable) - Constructor for exception org.jamesframework.core.exceptions.IncompatibleSearchListenerException
-
Constructs an instance with the specified detail message and cause.
- IncompatibleStopCriterionException - Exception in org.jamesframework.core.exceptions
-
Exception thrown when an incompatible stop criterion is attached to a search.
- IncompatibleStopCriterionException() - Constructor for exception org.jamesframework.core.exceptions.IncompatibleStopCriterionException
-
Creates a new instance without detail message.
- IncompatibleStopCriterionException(String) - Constructor for exception org.jamesframework.core.exceptions.IncompatibleStopCriterionException
-
Constructs an instance with the specified detail message.
- IncompatibleStopCriterionException(Throwable) - Constructor for exception org.jamesframework.core.exceptions.IncompatibleStopCriterionException
-
Constructs an instance with the specified cause.
- IncompatibleStopCriterionException(String, Throwable) - Constructor for exception org.jamesframework.core.exceptions.IncompatibleStopCriterionException
-
Constructs an instance with the specified detail message and cause.
- IncompatibleTabuMemoryException - Exception in org.jamesframework.core.exceptions
-
Exception thrown when an incompatible tabu memory is used for tabu search.
- IncompatibleTabuMemoryException() - Constructor for exception org.jamesframework.core.exceptions.IncompatibleTabuMemoryException
-
Creates a new instance without detail message.
- IncompatibleTabuMemoryException(String) - Constructor for exception org.jamesframework.core.exceptions.IncompatibleTabuMemoryException
-
Constructs an instance with the specified detail message.
- IncompatibleTabuMemoryException(Throwable) - Constructor for exception org.jamesframework.core.exceptions.IncompatibleTabuMemoryException
-
Constructs an instance with the specified cause.
- IncompatibleTabuMemoryException(String, Throwable) - Constructor for exception org.jamesframework.core.exceptions.IncompatibleTabuMemoryException
-
Constructs an instance with the specified detail message and cause.
- INVALID_DELTA - Static variable in class org.jamesframework.core.util.JamesConstants
-
Indicates an invalid delta (amount of improvement).
- INVALID_MOVE_COUNT - Static variable in class org.jamesframework.core.util.JamesConstants
-
Indicates an invalid number of moves.
- INVALID_STEP_COUNT - Static variable in class org.jamesframework.core.util.JamesConstants
-
Indicates an invalid number of steps.
- INVALID_TIME_SPAN - Static variable in class org.jamesframework.core.util.JamesConstants
-
Used to indicate an invalid time span.
- INVALID_TIMESTAMP - Static variable in class org.jamesframework.core.util.JamesConstants
-
Used to indicate an invalid timestamp, for example belonging to an event which has not yet occurred.
- isImprovement(Move<? super SolutionType>) - Method in class org.jamesframework.core.search.NeighbourhoodSearch
-
Checks whether the given move leads to an improvement when being applied to the current solution.
- isMinimizing() - Method in class org.jamesframework.core.problems.objectives.MinMaxObjective
-
- isMinimizing() - Method in interface org.jamesframework.core.problems.objectives.Objective
-
Check whether the objective is minimizing.
- isMinimizing() - Method in interface org.jamesframework.core.problems.Problem
-
Indicates whether scores are being minimized or maximized.
- isMinimizing() - Method in class org.jamesframework.core.problems.ProblemWithData
-
Indicates whether the underlying objective is minimizing.
- isSameSolution(Solution) - Method in class org.jamesframework.core.problems.solutions.Solution
-
Checks whether this solution is conceptually equal to an other, given solution.
- isSameSolution(Solution) - Method in class org.jamesframework.core.problems.solutions.SubsetSolution
-
Checks if the given solution is also a subset solution which is conceptually equal to this subset solution.
- isSatisfied(SolutionType, DataType) - Method in interface org.jamesframework.core.problems.constraints.Constraint
-
Checks whether a given solution satisfies the imposed constraint, based on
the given underlying data.
- isSorted() - Method in class org.jamesframework.core.problems.solutions.SubsetSolution
-
Indicates whether IDs are stored in sorted sets.
- isTabu(Move<? super SolutionType>, SolutionType) - Method in class org.jamesframework.core.search.algo.tabu.FullTabuMemory
-
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.
- isTabu(Move<? super SubsetSolution>, SubsetSolution) - Method in class org.jamesframework.core.search.algo.tabu.IDBasedSubsetTabuMemory
-
A move is considered tabu if any involved ID (added or deleted) is currently contained in the tabu memory.
- isTabu(Move<? super SolutionType>, SolutionType) - Method in interface org.jamesframework.core.search.algo.tabu.TabuMemory
-
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.
- RandomDescent<SolutionType extends Solution> - Class in org.jamesframework.core.search.algo
-
Basic random descent algorithm.
- RandomDescent(Problem<SolutionType>, Neighbourhood<? super SolutionType>) - Constructor for class org.jamesframework.core.search.algo.RandomDescent
-
Creates a new random descent search, specifying the problem to solve and the neighbourhood used to
modify the current solution.
- RandomDescent(String, Problem<SolutionType>, Neighbourhood<? super SolutionType>) - Constructor for class org.jamesframework.core.search.algo.RandomDescent
-
Creates a new random descent search, specifying the problem to solve, the neighbourhood used to
modify the current solution, and a custom search name.
- RandomSearch<SolutionType extends Solution> - Class in org.jamesframework.core.search.algo
-
The random search algorithm iteratively samples a random solution and checks
whether a new best solution has been found, in every search step.
- RandomSearch(Problem<SolutionType>) - Constructor for class org.jamesframework.core.search.algo.RandomSearch
-
Create a random search, given the problem to solve.
- RandomSearch(String, Problem<SolutionType>) - Constructor for class org.jamesframework.core.search.algo.RandomSearch
-
Create a random search, given the problem to solve and a custom search name.
- ReducedVariableNeighbourhoodSearch<SolutionType extends Solution> - Class in org.jamesframework.core.search.algo.vns
-
Reduced variable neighbourhood search (RVNS) algorithm.
- ReducedVariableNeighbourhoodSearch(Problem<SolutionType>, List<? extends Neighbourhood<? super SolutionType>>) - Constructor for class org.jamesframework.core.search.algo.vns.ReducedVariableNeighbourhoodSearch
-
Creates a new reduced variable neighbourhood search, specifying the problem to solve and the neighbourhoods
used to modify the current solution.
- ReducedVariableNeighbourhoodSearch(String, Problem<SolutionType>, List<? extends Neighbourhood<? super SolutionType>>) - Constructor for class org.jamesframework.core.search.algo.vns.ReducedVariableNeighbourhoodSearch
-
Creates a new reduced variable neighbourhood search, specifying the problem to solve, the neighbourhoods used
to modify the current solution, and a custom search name.
- ReducedVariableNeighbourhoodSearch(String, Problem<SolutionType>, List<? extends Neighbourhood<? super SolutionType>>, boolean) - Constructor for class org.jamesframework.core.search.algo.vns.ReducedVariableNeighbourhoodSearch
-
Creates a new reduced variable neighbourhood search, specifying the problem to solve, the neighbourhoods used
to modify the current solution, and a custom search name; also, it is indicated whether neighbourhoods should
be applied cyclically or not (by default, they are).
- registerVisitedSolution(SolutionType, Move<? super SolutionType>) - Method in class org.jamesframework.core.search.algo.tabu.FullTabuMemory
-
A newly visited solution is registered by storing a deep copy of this solution in the full tabu memory.
- registerVisitedSolution(SubsetSolution, Move<? super SubsetSolution>) - Method in class org.jamesframework.core.search.algo.tabu.IDBasedSubsetTabuMemory
-
Registers an applied subset move by storing all involved IDs (added or deleted) in the tabu memory.
- registerVisitedSolution(SolutionType, Move<? super SolutionType>) - Method in interface org.jamesframework.core.search.algo.tabu.TabuMemory
-
Register a newly visited solution in the tabu memory.
- rejectMove() - Method in class org.jamesframework.core.search.NeighbourhoodSearch
-
Indicate that a move was rejected.
- rejectSolution(SolutionType) - Method in interface org.jamesframework.core.problems.Problem
-
Indicates whether the given solution should be rejected during search,
regardless of its evaluation.
- rejectSolution(SolutionType) - Method in class org.jamesframework.core.problems.ProblemWithData
-
Checks whether any of the specified rejecting constraints are violated.
- rejectSolution(SubsetSolution, boolean) - Method in interface org.jamesframework.core.problems.SubsetProblem
-
Checks whether the given subset solution is to be rejected, possibly ignoring its current size.
- rejectSolution(SubsetSolution) - Method in class org.jamesframework.core.problems.SubsetProblemWithData
-
Checks whether the given subset solution is rejected.
- rejectSolution(SubsetSolution, boolean) - Method in class org.jamesframework.core.problems.SubsetProblemWithData
-
Checks whether the given subset solution is rejected.
- remove() - Method in class org.jamesframework.core.search.algo.tabu.FastLimitedQueue
-
Retrieves and removes the head of the queue, or returns null if the queue is empty.
- remove(StopCriterion) - Method in class org.jamesframework.core.search.stopcriteria.StopCriterionChecker
-
Remove a stop criterion.
- removePenalizingConstraint(PenalizingConstraint<? super SolutionType, ? super DataType>) - Method in class org.jamesframework.core.problems.ProblemWithData
-
Remove a penalizing constraint.
- removeRejectingConstraint(Constraint<? super SolutionType, ? super DataType>) - Method in class org.jamesframework.core.problems.ProblemWithData
-
Remove a rejecting constraint.
- removeSearch(Search<SolutionType>) - Method in class org.jamesframework.core.search.algo.BasicParallelSearch
-
Remove the given search from the parallel algorithm, if it had been added before.
- removeSearchListener(SearchListener<? super SolutionType>) - Method in class org.jamesframework.core.search.LocalSearch
-
Remove the given search listener.
- removeSearchListener(SearchListener<? super SolutionType>) - Method in class org.jamesframework.core.search.Search
-
Remove the given search listener.
- removeStopCriterion(StopCriterion) - Method in class org.jamesframework.core.search.Search
-
Removes a stop criterion.
- RouletteSelector<E> - Class in org.jamesframework.core.util
-
A selection object which simulates a roulette wheel where all items have a weight expressing the
size of their section of the wheel.
- RouletteSelector(Random) - Constructor for class org.jamesframework.core.util.RouletteSelector
-
Create a roulette selector.
- run() - Method in class org.jamesframework.core.search.Search
-
- Search<SolutionType extends Solution> - Class in org.jamesframework.core.search
-
General abstract search used to solve a problem with the specified solution type.
- Search(Problem<SolutionType>) - Constructor for class org.jamesframework.core.search.Search
-
Creates a search to solve the given problem, with default search name "Search".
- Search(String, Problem<SolutionType>) - Constructor for class org.jamesframework.core.search.Search
-
Creates a search to solve the given problem, with a custom search name.
- searchDisposed() - Method in class org.jamesframework.core.search.algo.BasicParallelSearch
-
When disposing a basic parallel search, each of the searches that have been added to the parallel
algorithm are disposed and the thread pool used for concurrent search execution is released.
- searchDisposed() - Method in class org.jamesframework.core.search.algo.ParallelTempering
-
When disposing a parallel tempering search, it will dispose each contained Metropolis replica and will
shut down the thread pool used for concurrent execution of replicas.
- searchDisposed() - Method in class org.jamesframework.core.search.algo.PipedLocalSearch
-
When disposing a piped local search, all searches in the pipeline are also disposed.
- searchDisposed() - Method in class org.jamesframework.core.search.Search
-
This method is called when a search is disposed, immediately before the search status is updated to DISPOSED.
- SearchException - Exception in org.jamesframework.core.exceptions
-
Exception thrown during search, whenever a fatal error occurs.
- SearchException() - Constructor for exception org.jamesframework.core.exceptions.SearchException
-
Creates a new instance without detail message.
- SearchException(String) - Constructor for exception org.jamesframework.core.exceptions.SearchException
-
Constructs an instance with the specified detail message.
- SearchException(Throwable) - Constructor for exception org.jamesframework.core.exceptions.SearchException
-
Constructs an instance with the specified cause.
- SearchException(String, Throwable) - Constructor for exception org.jamesframework.core.exceptions.SearchException
-
Constructs an instance with the specified detail message and cause.
- SearchListener<SolutionType extends Solution> - Interface in org.jamesframework.core.search.listeners
-
Interface of a listener which may be attached to a search with the specified solution type (or a more specific solution type).
- searchShouldStop(Search<?>) - Method in class org.jamesframework.core.search.stopcriteria.MaxRuntime
-
Checks whether the maximum runtime has been exceeded for the given search.
- searchShouldStop(Search<?>) - Method in class org.jamesframework.core.search.stopcriteria.MaxSteps
-
Checks whether the maximum number of steps has been exceeded for the given search.
- searchShouldStop(Search<?>) - Method in class org.jamesframework.core.search.stopcriteria.MaxStepsWithoutImprovement
-
Checks whether the maximum number of steps without finding improvement has been exceeded for the given search.
- searchShouldStop(Search<?>) - Method in class org.jamesframework.core.search.stopcriteria.MaxTimeWithoutImprovement
-
Checks whether the maximum time without finding improvements has been exceeded for the given search.
- searchShouldStop(Search<?>) - Method in class org.jamesframework.core.search.stopcriteria.MinDelta
-
Checks whether the minimum delta observed during the current run of the given
search is still above the required minimum.
- searchShouldStop(Search<?>) - Method in interface org.jamesframework.core.search.stopcriteria.StopCriterion
-
Checks the stop condition for a given search.
- searchStarted() - Method in class org.jamesframework.core.search.algo.BasicParallelSearch
-
When the search is started, it is verified whether at least one subsearch has been added.
- searchStarted() - Method in class org.jamesframework.core.search.algo.LRSubsetSearch
-
When the search is started for the first time, and no custom initial solution has been set,
an empty or full subset solution is created depending on whether \(L \gt R\) or \(R \gt L\),
respectively, to be repeatedly modified during search.
- searchStarted(Search<? extends SolutionType>) - Method in class org.jamesframework.core.search.listeners.EmptySearchListener
-
- searchStarted(Search<? extends SolutionType>) - Method in interface org.jamesframework.core.search.listeners.SearchListener
-
Fired when the search has started.
- searchStarted() - Method in class org.jamesframework.core.search.LocalSearch
-
When the search is started, a random initial solution is generated if none has been specified.
- searchStarted() - Method in class org.jamesframework.core.search.NeighbourhoodSearch
-
When a neighbourhood search is started, the number of accepted and rejected moves is reset to zero.
- searchStarted() - Method in class org.jamesframework.core.search.Search
-
This method is called when a search run is started, to perform initialization and/or validation of the search
configuration.
- SearchStatus - Enum in org.jamesframework.core.search
-
Enumeration of possible search statuses.
- searchStep() - Method in class org.jamesframework.core.search.algo.BasicParallelSearch
-
This algorithm consists of a single search step only, in which (1) the contained subsearches are executed in
parallel, (2) the main search waits until they terminate and (3) the main search stops.
- searchStep() - Method in class org.jamesframework.core.search.algo.exh.ExhaustiveSearch
-
In every search step it is verified whether there are more solution to be generated using the solution iterator.
- searchStep() - Method in class org.jamesframework.core.search.algo.LRSubsetSearch
-
In every search step, the \(L\) best additions and \(R\) best deletions of a single item are performed.
- searchStep() - Method in class org.jamesframework.core.search.algo.MetropolisSearch
-
Creates a random neighbour of the current solution and accepts it if it improves over the current solution,
or if
\[
e^{\frac{\Delta E}{kT}} > R(0,1)
\]
where \(\Delta E\) is the difference between the evaluation of the neighbour and that of the current solution,
\(T\) is the temperature of the system, \(k\) is a constant scale factor, and \(R(0,1)\) is a random number
in the interval \([0,1]\).
- searchStep() - Method in class org.jamesframework.core.search.algo.ParallelTempering
-
Perform a search step, in which every replica performs several steps and solutions of adjacent replicas may be swapped.
- searchStep() - Method in class org.jamesframework.core.search.algo.PipedLocalSearch
-
Executes all local searches in the pipeline, where the best solution of the previous search is used as initial
solution for the next search.
- searchStep() - Method in class org.jamesframework.core.search.algo.RandomDescent
-
Creates a random neighbour of the current solution and accepts it if it improves over the current solution.
- searchStep() - Method in class org.jamesframework.core.search.algo.RandomSearch
-
In every search step, a random solution is created and the best solution might be updated accordingly.
- searchStep() - Method in class org.jamesframework.core.search.algo.SteepestDescent
-
Investigates all neighbours of the current solution and adopts the best one as the new current solution,
if it is an improvement.
- searchStep() - Method in class org.jamesframework.core.search.algo.tabu.TabuSearch
-
In every step, all neighbours of the current solution are inspected and the best valid, non tabu neighbour is
adopted as the new current solution, if any.
- searchStep() - Method in class org.jamesframework.core.search.algo.vns.ReducedVariableNeighbourhoodSearch
-
Samples a random neighbour of the current solution, using the k-th neighbourhood, and accepts it as the new
current solution if it is an improvement.
- searchStep() - Method in class org.jamesframework.core.search.algo.vns.VariableNeighbourhoodDescent
-
Investigates all neighbours of the current solution, using the k-th neighbourhood, and adopts the best one
as the new current solution, if it is an improvement.
- searchStep() - Method in class org.jamesframework.core.search.algo.vns.VariableNeighbourhoodSearch
-
Performs a step of VNS.
- searchStep() - Method in class org.jamesframework.core.search.Search
-
This method is iteratively called while the search is running and should be implemented in every specific
search according to the corresponding search strategy.
- searchStopped(Search<? extends SolutionType>) - Method in class org.jamesframework.core.search.listeners.EmptySearchListener
-
- searchStopped(Search<? extends SolutionType>) - Method in interface org.jamesframework.core.search.listeners.SearchListener
-
Fired when the search has stopped.
- searchStopped() - Method in class org.jamesframework.core.search.Search
-
This method is called when a search run has completed and may be used to perform some finalization.
- select(int) - Method in class org.jamesframework.core.problems.solutions.SubsetSolution
-
Select the given ID.
- select(List<E>, List<Double>) - Method in class org.jamesframework.core.util.RouletteSelector
-
Select an item from a given list by roulette selection, where each item has a weight expressing
the size of its share of the roulette wheel.
- selectAll(Collection<Integer>) - Method in class org.jamesframework.core.problems.solutions.SubsetSolution
-
Select all IDs contained in the given collection.
- selectAll() - Method in class org.jamesframework.core.problems.solutions.SubsetSolution
-
Select all IDs.
- setCurrentSolution(SolutionType) - Method in class org.jamesframework.core.search.algo.ParallelTempering
-
Set a custom current solution, of which a copy is passed to each replica.
- setCurrentSolution(SolutionType) - Method in class org.jamesframework.core.search.algo.tabu.TabuSearch
-
Updates the tabu memory when a custom current/initial solution is set.
- setCurrentSolution(SolutionType) - Method in class org.jamesframework.core.search.LocalSearch
-
Sets the current solution.
- setCycleNeighbourhoods(boolean) - Method in class org.jamesframework.core.search.algo.vns.ReducedVariableNeighbourhoodSearch
-
Indicates whether neighbourhoods should be applied cyclically or not, when all neighbourhoods have been
successively applied without finding any improvements.
- setData(DataType) - Method in class org.jamesframework.core.problems.ProblemWithData
-
Set new underlying data.
- setData(DataType) - Method in class org.jamesframework.core.problems.SubsetProblemWithData
-
Set new subset data, verifying that the data is not null.
- setEvaluatedMoveCache(EvaluatedMoveCache) - Method in class org.jamesframework.core.search.NeighbourhoodSearch
-
Sets a custom evaluated move cache, which is used to avoid repeated evaluation or validation of the same move
from the same current solution.
- setLocalSearchFactory(LocalSearchFactory<SolutionType>) - Method in class org.jamesframework.core.search.algo.vns.VariableNeighbourhoodSearch
-
Set a custom factory to create instances of the local search algorithm to be applied to modify solutions
obtained after shaking.
- setMaximizing() - Method in class org.jamesframework.core.problems.objectives.MinMaxObjective
-
Turn this objective into a maximizing objective.
- setMaxSubsetSize(int) - Method in class org.jamesframework.core.problems.SubsetProblemWithData
-
Set the maximum subset size.
- setMinimizing() - Method in class org.jamesframework.core.problems.objectives.MinMaxObjective
-
Turn this objective into a minimizing objective.
- setMinSubsetSize(int) - Method in class org.jamesframework.core.problems.SubsetProblemWithData
-
Set the minimum subset size.
- setNeighbourhood(Neighbourhood<? super SolutionType>) - Method in class org.jamesframework.core.search.algo.ParallelTempering
-
Set the same neighbourhood for each replica.
- setNeighbourhood(Neighbourhood<? super SolutionType>) - Method in class org.jamesframework.core.search.SingleNeighbourhoodSearch
-
Sets the neighbourhood used to modify the current solution.
- setNeighbourhoods(List<Neighbourhood<? super SolutionType>>) - Method in class org.jamesframework.core.search.MultiNeighbourhoodSearch
-
Sets the list of neighbourhoods used to modify the current solution.
- setObjective(Objective<? super SolutionType, ? super DataType>) - Method in class org.jamesframework.core.problems.ProblemWithData
-
Set a new objective function.
- setPeriod(long, TimeUnit) - Method in class org.jamesframework.core.search.stopcriteria.StopCriterionChecker
-
Set the period between consecutive stop criterion checks.
- setReplicaSteps(int) - Method in class org.jamesframework.core.search.algo.ParallelTempering
-
Sets the number of steps performed by each replica in every iteration of the global parallel tempering
algorithm, before considering solution swaps.
- setStopCriterionCheckPeriod(long, TimeUnit) - Method in class org.jamesframework.core.search.Search
-
Instructs the search to check its stop criteria at regular intervals separated by the given period.
- setTabuMemory(TabuMemory<SolutionType>) - Method in class org.jamesframework.core.search.algo.tabu.TabuSearch
-
Set the tabu memory.
- setTemperature(double) - Method in class org.jamesframework.core.search.algo.MetropolisSearch
-
Set the temperature (\(T > 0\)).
- setTemperatureScaleFactor(double) - Method in class org.jamesframework.core.search.algo.MetropolisSearch
-
Set the temperature scale factor \(k > 0\).
- setTemperatureScaleFactor(double) - Method in class org.jamesframework.core.search.algo.ParallelTempering
-
Set the same temperature scale factor \(k > 0\) for each replica.
- SetUtilities - Class in org.jamesframework.core.util
-
Contains some utility functions for manipulating sets.
- SetUtilities() - Constructor for class org.jamesframework.core.util.SetUtilities
-
- SingleEvaluatedMoveCache - Class in org.jamesframework.core.search.cache
-
A single move cache only stores the last evaluation and validity that were offered to the cache.
- SingleEvaluatedMoveCache() - Constructor for class org.jamesframework.core.search.cache.SingleEvaluatedMoveCache
-
Create an empty single evaluated move cache.
- SingleNeighbourhoodSearch<SolutionType extends Solution> - Class in org.jamesframework.core.search
-
Abstract neighbourhood search that uses a single neighbourhood to modify the current solution.
- SingleNeighbourhoodSearch(Problem<SolutionType>, Neighbourhood<? super SolutionType>) - Constructor for class org.jamesframework.core.search.SingleNeighbourhoodSearch
-
Create a new single neighbourhood search, specifying the problem to be solved and the neighbourhood used to
modify the current solution.
- SingleNeighbourhoodSearch(String, Problem<SolutionType>, Neighbourhood<? super SolutionType>) - Constructor for class org.jamesframework.core.search.SingleNeighbourhoodSearch
-
Create a new single neighbourhood search, specifying the problem to be solved, the neighbourhood used to
modify the current solution, and a custom search name.
- SinglePerturbationNeighbourhood - Class in org.jamesframework.core.search.neigh.subset
-
- SinglePerturbationNeighbourhood(int, int) - Constructor for class org.jamesframework.core.search.neigh.subset.SinglePerturbationNeighbourhood
-
Creates a new single perturbation neighbourhood with given minimum and maximum subset size.
- SinglePerturbationNeighbourhood(int, int, Set<Integer>) - Constructor for class org.jamesframework.core.search.neigh.subset.SinglePerturbationNeighbourhood
-
Creates a new single perturbation neighbourhood with given minimum and maximum subset size,
providing a set of fixed IDs which are not allowed to be added, deleted nor swapped.
- SingleSwapNeighbourhood - Class in org.jamesframework.core.search.neigh.subset
-
A subset neighbourhood that generates swap moves only (see
SwapMove).
- SingleSwapNeighbourhood() - Constructor for class org.jamesframework.core.search.neigh.subset.SingleSwapNeighbourhood
-
Creates a basic single swap neighbourhood.
- SingleSwapNeighbourhood(Set<Integer>) - Constructor for class org.jamesframework.core.search.neigh.subset.SingleSwapNeighbourhood
-
Creates a single swap neighbourhood with a given set of fixed IDs which are not allowed to be swapped.
- size() - Method in class org.jamesframework.core.search.algo.tabu.FastLimitedQueue
-
Get the number of items contained in the queue.
- sizeLimit() - Method in class org.jamesframework.core.search.algo.tabu.FastLimitedQueue
-
Get the size limit of the queue.
- Solution - Class in org.jamesframework.core.problems.solutions
-
Represents an abstract solution.
- Solution() - Constructor for class org.jamesframework.core.problems.solutions.Solution
-
- SolutionCopyException - Exception in org.jamesframework.core.exceptions
-
Exception thrown when failing to create a deep copy of a solution.
- SolutionCopyException() - Constructor for exception org.jamesframework.core.exceptions.SolutionCopyException
-
Creates a new instance without detail message.
- SolutionCopyException(String) - Constructor for exception org.jamesframework.core.exceptions.SolutionCopyException
-
Constructs an instance with the specified detail message.
- SolutionCopyException(Throwable) - Constructor for exception org.jamesframework.core.exceptions.SolutionCopyException
-
Constructs an instance with the specified cause.
- SolutionCopyException(String, Throwable) - Constructor for exception org.jamesframework.core.exceptions.SolutionCopyException
-
Constructs an instance with the specified detail message and cause.
- SolutionIterator<SolutionType extends Solution> - Interface in org.jamesframework.core.search.algo.exh
-
Interface of a generic solution iterator that iterates through a collection of solutions.
- SolutionModificationException - Exception in org.jamesframework.core.exceptions
-
Exception thrown when trying to apply an invalid modification to a solution.
- SolutionModificationException(Solution) - Constructor for exception org.jamesframework.core.exceptions.SolutionModificationException
-
Creates a new instance without detail message.
- SolutionModificationException(String, Solution) - Constructor for exception org.jamesframework.core.exceptions.SolutionModificationException
-
Constructs an instance with the specified detail message.
- SolutionModificationException(Throwable, Solution) - Constructor for exception org.jamesframework.core.exceptions.SolutionModificationException
-
Constructs an instance with the specified cause.
- SolutionModificationException(String, Throwable, Solution) - Constructor for exception org.jamesframework.core.exceptions.SolutionModificationException
-
Constructs an instance with the specified detail message and cause.
- start() - Method in class org.jamesframework.core.search.algo.PipedLocalSearch
-
General start method is overriden so that search is automatically disposed when
Search.start() returns.
- start() - Method in class org.jamesframework.core.search.Search
-
Starts a search run and returns when this run has finished.
- startChecking() - Method in class org.jamesframework.core.search.stopcriteria.StopCriterionChecker
-
Start checking the stop criteria, in a separate background thread.
- statusChanged(Search<? extends SolutionType>, SearchStatus) - Method in class org.jamesframework.core.search.listeners.EmptySearchListener
-
- statusChanged(Search<? extends SolutionType>, SearchStatus) - Method in interface org.jamesframework.core.search.listeners.SearchListener
-
Fired when the search enters a new status.
- SteepestDescent<SolutionType extends Solution> - Class in org.jamesframework.core.search.algo
-
Steepest descent algorithm, also referred to as hill climbing.
- SteepestDescent(Problem<SolutionType>, Neighbourhood<? super SolutionType>) - Constructor for class org.jamesframework.core.search.algo.SteepestDescent
-
Creates a new steepest descent search, specifying the problem to solve and the neighbourhood used to
modify the current solution.
- SteepestDescent(String, Problem<SolutionType>, Neighbourhood<? super SolutionType>) - Constructor for class org.jamesframework.core.search.algo.SteepestDescent
-
Creates a new steepest descent search, specifying the problem to solve, the neighbourhood used to
modify the current solution, and a custom search name.
- stepCompleted(Search<? extends SolutionType>, long) - Method in class org.jamesframework.core.search.listeners.EmptySearchListener
-
- stepCompleted(Search<? extends SolutionType>, long) - Method in interface org.jamesframework.core.search.listeners.SearchListener
-
Fired when the search has completed a step.
- stop() - Method in class org.jamesframework.core.search.algo.BasicParallelSearch
-
When requesting to stop a basic parallel search, this request is propagated to each contained search.
- stop() - Method in class org.jamesframework.core.search.algo.PipedLocalSearch
-
When requesting to stop a piped local search, this request is propagated to each search in the pipeline.
- stop() - Method in class org.jamesframework.core.search.Search
-
Requests the search to stop.
- stopChecking() - Method in class org.jamesframework.core.search.stopcriteria.StopCriterionChecker
-
Instructs the stop criterion checker to stop checking.
- StopCriterion - Interface in org.jamesframework.core.search.stopcriteria
-
Interface of a stop criterion that may be attached to a search to terminate it when a certain condition is met.
- StopCriterionChecker - Class in org.jamesframework.core.search.stopcriteria
-
A stop criterion checker is responsible for checking the stop criteria of a given search, while this search is running.
- StopCriterionChecker(Search<?>) - Constructor for class org.jamesframework.core.search.stopcriteria.StopCriterionChecker
-
Create a stop criterion checker dedicated to checking the stop criteria of the given search.
- SubsetData - Interface in org.jamesframework.core.problems.datatypes
-
Represents data that corresponds to a subset selection problem.
- SubsetMove - Interface in org.jamesframework.core.search.neigh.subset
-
General interface of a subset move that adds a number of IDs to the selection and/or
removes a number of IDs.
- SubsetProblem - Interface in org.jamesframework.core.problems
-
Interface of a subset problem with solution type
SubsetSolution, extending the general
Problem interface.
- SubsetProblemWithData<DataType extends SubsetData> - Class in org.jamesframework.core.problems
-
Represents a subset problem with data of a given data type, implementing the interface
SubsetData, and with solution
type
SubsetSolution.
- SubsetProblemWithData(Objective<? super SubsetSolution, ? super DataType>, DataType, int, int, boolean) - Constructor for class org.jamesframework.core.problems.SubsetProblemWithData
-
Creates a new subset problem with given objective, data and minimum/maximum subset size.
- SubsetProblemWithData(Objective<? super SubsetSolution, ? super DataType>, DataType, int, int) - Constructor for class org.jamesframework.core.problems.SubsetProblemWithData
-
Creates a new subset problem with given objective, data and minimum/maximum subset size.
- SubsetProblemWithData(Objective<? super SubsetSolution, ? super DataType>, DataType, int) - Constructor for class org.jamesframework.core.problems.SubsetProblemWithData
-
Creates a subset problem with fixed subset size.
- SubsetSolution - Class in org.jamesframework.core.problems.solutions
-
Implements a generic subset solution based on IDs of selected entities.
- SubsetSolution(Set<Integer>) - Constructor for class org.jamesframework.core.problems.solutions.SubsetSolution
-
Creates a new subset solution given the set of all IDs, each corresponding to an underlying entity,
from which a subset is to be selected.
- SubsetSolution(Set<Integer>, Set<Integer>) - Constructor for class org.jamesframework.core.problems.solutions.SubsetSolution
-
Creates a new subset solution given the set of all IDs, and the set of currently selected IDs.
- SubsetSolution(Set<Integer>, boolean) - Constructor for class org.jamesframework.core.problems.solutions.SubsetSolution
-
Creates a new subset solution given the set of all IDs, each corresponding to an underlying entity,
from which a subset is to be selected.
- SubsetSolution(Set<Integer>, Set<Integer>, boolean) - Constructor for class org.jamesframework.core.problems.solutions.SubsetSolution
-
Creates a new subset solution given the set of all IDs, and the set of currently selected IDs.
- SubsetSolution(SubsetSolution) - Constructor for class org.jamesframework.core.problems.solutions.SubsetSolution
-
Copy constructor.
- SubsetSolutionIterator - Class in org.jamesframework.core.search.algo.exh
-
A subset solution iterator generates all possible subsets within a given size range, given a
set of IDs from which to select.
- SubsetSolutionIterator(Set<Integer>, int, int) - Constructor for class org.jamesframework.core.search.algo.exh.SubsetSolutionIterator
-
Create a subset solution iterator that generates all subsets within the given size range,
sampled from the given set of IDs.
- SubsetSolutionIterator(Set<Integer>, int) - Constructor for class org.jamesframework.core.search.algo.exh.SubsetSolutionIterator
-
Create a subset solution iterator that generates all subsets with a fixed size,
sampled from the given set of IDs.
- SwapMove - Class in org.jamesframework.core.search.neigh.subset
-
Simple subset move that removes a single ID from the current selection
and replaces it with a new ID which was previously not selected.
- SwapMove(int, int) - Constructor for class org.jamesframework.core.search.neigh.subset.SwapMove
-
Creates a new swap move with specified IDs to add to and remove from the current selection
when being applied to a given subset solution.