basics.algo
Class SearchStrategy

java.lang.Object
  extended by basics.algo.SearchStrategy

public class SearchStrategy
extends java.lang.Object


Nested Class Summary
static class SearchStrategy.DiscoveredSolution
           
 
Constructor Summary
SearchStrategy(SolutionSelector solutionSelector, SolutionAcceptor solutionAcceptor)
           
 
Method Summary
 void addModule(SearchStrategyModule module)
           
 void addModuleListener(SearchStrategyModuleListener moduleListener)
           
 java.lang.String getName()
           
 java.util.Collection<SearchStrategyModule> getSearchStrategyModules()
           
 SolutionAcceptor getSolutionAcceptor()
           
 SolutionSelector getSolutionSelector()
           
 SearchStrategy.DiscoveredSolution run(VehicleRoutingProblem vrp, java.util.Collection<VehicleRoutingProblemSolution> solutions)
          Runs the search-strategy and its according modules, and returns DiscoveredSolution.
 void setName(java.lang.String name)
           
 java.lang.String toString()
           
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

SearchStrategy

public SearchStrategy(SolutionSelector solutionSelector,
                      SolutionAcceptor solutionAcceptor)
Method Detail

getName

public java.lang.String getName()

setName

public void setName(java.lang.String name)

getSearchStrategyModules

public java.util.Collection<SearchStrategyModule> getSearchStrategyModules()

getSolutionSelector

public SolutionSelector getSolutionSelector()

getSolutionAcceptor

public SolutionAcceptor getSolutionAcceptor()

toString

public java.lang.String toString()
Overrides:
toString in class java.lang.Object

run

public SearchStrategy.DiscoveredSolution run(VehicleRoutingProblem vrp,
                                             java.util.Collection<VehicleRoutingProblemSolution> solutions)
Runs the search-strategy and its according modules, and returns DiscoveredSolution.

This involves three basic steps: 1) Selecting a solution from solutions (input parameter) according to SolutionSelector, 2) running the modules (SearchStrategyModule) on the selectedSolution and 3) accepting the new solution according to SolutionAcceptor.

Note that after 1) the selected solution is copied, thus the original solution is not modified.

Note also that 3) modifies the input parameter solutions by adding, removing, replacing the existing solutions or whatever is defined in the solutionAcceptor.

Parameters:
vrp -
solutions - which will be modified
Returns:
discoveredSolutin
See Also:
SolutionSelector, SearchStrategyModule, SolutionAcceptor

addModule

public void addModule(SearchStrategyModule module)

addModuleListener

public void addModuleListener(SearchStrategyModuleListener moduleListener)