Package  Description 

org.jamesframework.core.factory 
Miscellaneous factory interfaces.

org.jamesframework.core.problems 
Highlevel problem specification.

org.jamesframework.core.search 
Highlevel search templates.

org.jamesframework.core.search.algo 
Algorithm implementations.

org.jamesframework.core.search.algo.exh 
Exhaustive search and components.

org.jamesframework.core.search.algo.tabu 
Tabu search and components (including tabu memory specification).

org.jamesframework.core.search.algo.vns 
Variable neighbourhood searches and components.

org.jamesframework.core.subset 
Predefined subset problem.

Modifier and Type  Method and Description 

Search<SolutionType> 
SearchFactory.create(Problem<SolutionType> problem)
Create a search, given the problem to solve.

LocalSearch<SolutionType> 
LocalSearchFactory.create(Problem<SolutionType> problem)
Create a local search, given the problem to solve.

MetropolisSearch<SolutionType> 
MetropolisSearchFactory.create(Problem<SolutionType> problem,
Neighbourhood<? super SolutionType> neighbourhood,
double temperature)
Create a Metropolis search, given the problem to solve,
the applied neighbourhood and the desired temperature.

Modifier and Type  Class and Description 

class 
GenericProblem<SolutionType extends Solution,DataType>
A generic problem is fully based on delegation of its responsabilities, by separating data from the objective,
constraints (if any) and random solution generation.

Modifier and Type  Method and Description 

Problem<SolutionType> 
Search.getProblem()
Get the problem being solved, as specified at construction.

Constructor and Description 

LocalSearch(Problem<SolutionType> problem)
Create a new local search to solve the given problem, with default name "LocalSearch".

LocalSearch(String name,
Problem<SolutionType> problem)
Create a new local search to solve the given problem, with a custom name.

MultiNeighbourhoodSearch(Problem<SolutionType> problem,
List<? extends Neighbourhood<? super SolutionType>> neighs)
Create a new multi neighbourhood search, specifying the problem to be solved and the neighbourhoods used to
modify the current solution.

MultiNeighbourhoodSearch(String name,
Problem<SolutionType> problem,
List<? extends Neighbourhood<? super SolutionType>> neighs)
Create a new multi neighbourhood search, specifying the problem to be solved, the neighbourhoods used to
modify the current solution, and a custom search name.

NeighbourhoodSearch(Problem<SolutionType> problem)
Create a new neighbourhood search to solve the given problem, with default name "NeighbourhoodSearch".

NeighbourhoodSearch(String name,
Problem<SolutionType> problem)
Create a new neighbourhood search to solve the given problem, with a custom name.

Search(Problem<SolutionType> problem)
Creates a search to solve the given problem, with default search name "Search".

Search(String name,
Problem<SolutionType> problem)
Creates a search to solve the given problem, with a custom search name.

SingleNeighbourhoodSearch(Problem<SolutionType> problem,
Neighbourhood<? super SolutionType> neighbourhood)
Create a new single neighbourhood search, specifying the problem to be solved and the neighbourhood used to
modify the current solution.

SingleNeighbourhoodSearch(String name,
Problem<SolutionType> problem,
Neighbourhood<? super SolutionType> neighbourhood)
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.

Constructor and Description 

BasicParallelSearch(Problem<SolutionType> problem)
Creates a new basic parallel search, specifying the problem to solve.

BasicParallelSearch(String name,
Problem<SolutionType> problem)
Creates a new basic parallel search, specifying the problem to solve and a custom search name.

MetropolisSearch(Problem<SolutionType> problem,
Neighbourhood<? super SolutionType> neighbourhood,
double temperature)
Creates a new Metropolis search, specifying the problem to solve, the applied neighbourhood and the temperature.

MetropolisSearch(String name,
Problem<SolutionType> problem,
Neighbourhood<? super SolutionType> neighbourhood,
double temperature)
Creates a new Metropolis search, specifying the problem to solve, the applied neighbourhood and temperature,
and a custom search name.

ParallelTempering(Problem<SolutionType> problem,
Neighbourhood<? super SolutionType> neighbourhood,
int numReplicas,
double minTemperature,
double maxTemperature)
Creates a new parallel tempering algorithm, specifying the problem to solve,
the neighbourhood used in each replica, the number of replicas, and the minimum
and maximum temperature.

ParallelTempering(Problem<SolutionType> problem,
Neighbourhood<? super SolutionType> neighbourhood,
int numReplicas,
double minTemperature,
double maxTemperature,
MetropolisSearchFactory<SolutionType> metropolisFactory)
Creates a new parallel tempering algorithm, specifying the problem to solve,
the neighbourhood used in each replica, the number of replicas, the minimum
and maximum temperature, and a custom Metropolis search factory.

ParallelTempering(String name,
Problem<SolutionType> problem,
Neighbourhood<? super SolutionType> neighbourhood,
int numReplicas,
double minTemperature,
double maxTemperature,
MetropolisSearchFactory<SolutionType> metropolisFactory)
Creates a new parallel tempering algorithm, specifying the problem to solve,
the neighbourhood used in each replica, the number of replicas, the minimum
and maximum temperature, a custom search name, and a custom Metropolis search
factory.

PipedLocalSearch(Problem<SolutionType> problem,
List<LocalSearch<SolutionType>> pipeline)
Creates a new piped local search, specifying the problem to solve and a list of local searches to
be executed in the pipeline, in the given order.

PipedLocalSearch(String name,
Problem<SolutionType> problem,
List<LocalSearch<SolutionType>> pipeline)
Creates a new piped local search, specifying the problem to solve, a list of local searches to
be executed in the pipeline in the given order, and a custom search name.

RandomDescent(Problem<SolutionType> problem,
Neighbourhood<? super SolutionType> neighbourhood)
Creates a new random descent search, specifying the problem to solve and the neighbourhood used to
modify the current solution.

RandomDescent(String name,
Problem<SolutionType> problem,
Neighbourhood<? super SolutionType> neighbourhood)
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(Problem<SolutionType> problem)
Create a random search, given the problem to solve.

RandomSearch(String name,
Problem<SolutionType> problem)
Create a random search, given the problem to solve and a custom search name.

SteepestDescent(Problem<SolutionType> problem,
Neighbourhood<? super SolutionType> neighbourhood)
Creates a new steepest descent search, specifying the problem to solve and the neighbourhood used to
modify the current solution.

SteepestDescent(String name,
Problem<SolutionType> problem,
Neighbourhood<? super SolutionType> neighbourhood)
Creates a new steepest descent search, specifying the problem to solve, the neighbourhood used to
modify the current solution, and a custom search name.

Constructor and Description 

ExhaustiveSearch(Problem<SolutionType> problem,
SolutionIterator<? extends SolutionType> solutionIterator)
Create an exhaustive search algorithm to solve the given problem, using the given solution iterator to generate
possible solutions, with default search name "ExhaustiveSearch".

ExhaustiveSearch(String name,
Problem<SolutionType> problem,
SolutionIterator<? extends SolutionType> solutionIterator)
Create an exhaustive search algorithm to solve the given problem, using the given solution iterator to generate
possible solutions, with a custom search name.

Constructor and Description 

TabuSearch(Problem<SolutionType> problem,
Neighbourhood<? super SolutionType> neighbourhood,
TabuMemory<SolutionType> tabuMemory)
Creates a new tabu search, specifying the problem to solve, the neighbourhood used to modify the current
solution and the applied tabu memory.

TabuSearch(String name,
Problem<SolutionType> problem,
Neighbourhood<? super SolutionType> neighbourhood,
TabuMemory<SolutionType> tabuMemory)
Creates a new tabu search, specifying the problem to solve, the neighbourhood used to modify the current
solution, the applied tabu memory and a custom search name.

Constructor and Description 

ReducedVariableNeighbourhoodSearch(Problem<SolutionType> problem,
List<? extends Neighbourhood<? super SolutionType>> neighs)
Creates a new reduced variable neighbourhood search, specifying the problem to solve and the neighbourhoods
used to modify the current solution.

ReducedVariableNeighbourhoodSearch(String name,
Problem<SolutionType> problem,
List<? extends Neighbourhood<? super SolutionType>> neighs)
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 name,
Problem<SolutionType> problem,
List<? extends Neighbourhood<? super SolutionType>> neighs,
boolean cycleNeighbourhoods)
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).

VariableNeighbourhoodDescent(Problem<SolutionType> problem,
List<? extends Neighbourhood<? super SolutionType>> neighs)
Creates a new variable neighbourhood descent search, specifying the problem to solve and the neighbourhoods
used to modify the current solution.

VariableNeighbourhoodDescent(String name,
Problem<SolutionType> problem,
List<? extends Neighbourhood<? super SolutionType>> neighs)
Creates a new variable neighbourhood descent search, specifying the problem to solve, the neighbourhoods used
to modify the current solution, and a custom search name.

VariableNeighbourhoodSearch(Problem<SolutionType> problem,
List<? extends Neighbourhood<? super SolutionType>> shakingNeighs,
List<? extends Neighbourhood<? super SolutionType>> vndNeighs)
Creates a new variable neighbourhood search, specifying the problem to solve, the neighbourhoods used for shaking
and the neighbourhoods used by the default variable neighbourhood descent algorithm applied after shaking.

VariableNeighbourhoodSearch(Problem<SolutionType> problem,
List<? extends Neighbourhood<? super SolutionType>> shakingNeighs,
LocalSearchFactory<SolutionType> localSearchFactory)
Creates a new variable neighbourhood search, specifying the problem to solve, the neighbourhoods used for
shaking, and a factory to create instances of a custom local search algorithm \(L\) to be applied after
shaking.

VariableNeighbourhoodSearch(String name,
Problem<SolutionType> problem,
List<? extends Neighbourhood<? super SolutionType>> shakingNeighs,
LocalSearchFactory<SolutionType> localSearchFactory)
Creates a new variable neighbourhood search, specifying the problem to solve, the neighbourhoods used for
shaking in VNS, a factory to create instances of a custom local search algorithm \(L\) to be applied to
modify solutions obtained after shaking, and a custom search name.

Modifier and Type  Class and Description 

class 
SubsetProblem<DataType extends IntegerIdentifiedData>
Highlevel subset problem consisting of data, an objective and possibly some constraints (see
GenericProblem ). 
Copyright © 2016. All rights reserved.