mil.af.afit.uvr.solvers.tabusearch4uvr
Class TS4UVRSolver

java.lang.Object
  |
  +--mil.af.afit.uvr.HSolver
        |
        +--mil.af.afit.uvr.solvers.tabusearch4uvr.TS4UVRSolver

public class TS4UVRSolver
extends HSolver

This solver takes the list of starting solutions from the tour building heuristic and performs a tabu search on each one, starting with the best and ending with either the last or after a certain number of starting solutions have yielded no better answers.

A more detailed discussion of the tabu search used here can be found in Robert Harder's thesis, A Java Universal Vehicle Router in Support of Routing Unmanned Aerial Vehicles, from the Air Force Institute of Technology

This tabu search relies on the Java Tabu Search Package built by Robert Harder.

Since:
1.0
See Also:
HSolver

Field Summary
static java.lang.String LONG_DESCR
          Long description of the solver
static java.lang.String NAME
          Name of the solver
static java.lang.String SHORT_DESCR
          Short description of the solver
 
Constructor Summary
TS4UVRSolver()
           
 
Method Summary
static void err(java.lang.Exception e)
           
 HSolution getBestHSolution()
          Return the best solution found so far.
 java.lang.String getCredits()
          Credits for the solver (authors, etc).
protected  HEvaluator getHEvaluator()
           
 java.lang.String getLongDescription()
          Long description of the solver.
 java.lang.String getName()
          Name of the solver
 java.lang.String getShortDescription()
          Short description of the solver.
 java.lang.String getVersion()
          Version of the solver
 void initializeSolver(HSolution[] soln, HEvaluator evaluator, double requestedSolutionEffort, int numberOfThreads)
          Called when the HEngine has started solving.
 boolean isDebugging()
           
static void out(java.lang.Object obj)
           
 boolean requestsStartingSolutions()
          If true, the HEngine will generate a list of good starting solutions based on a heuristic developed by Gary Kinney for the Air Force Institute of Technology (www.afit.af.mil).
 void setDebugging(boolean state)
           
 void startSolving()
          Called when the HEngine is ready for the solver to start.
 void stopSolving()
          Stop the solver as soon as possible.
 
Methods inherited from class mil.af.afit.uvr.HSolver
addHSolverListener, fireNewBestSolutionEvent, fireSolverFinishedEvent, fireSolverPercentDoneEvent, fireSolverStartedEvent, getPercentDone, removeHSolverListener, setPercentDone
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

NAME

public static final java.lang.String NAME
Name of the solver

LONG_DESCR

public static final java.lang.String LONG_DESCR
Long description of the solver

SHORT_DESCR

public static final java.lang.String SHORT_DESCR
Short description of the solver
Constructor Detail

TS4UVRSolver

public TS4UVRSolver()
Method Detail

getHEvaluator

protected final HEvaluator getHEvaluator()

isDebugging

public final boolean isDebugging()

setDebugging

public final void setDebugging(boolean state)

getName

public java.lang.String getName()
Description copied from class: HSolver
Name of the solver
Overrides:
getName in class HSolver
Following copied from class: mil.af.afit.uvr.HSolver
Returns:
name of the solver

getShortDescription

public java.lang.String getShortDescription()
Description copied from class: HSolver
Short description of the solver. May be used for tooltips
Overrides:
getShortDescription in class HSolver
Following copied from class: mil.af.afit.uvr.HSolver
Returns:
short decription of the solver

getLongDescription

public java.lang.String getLongDescription()
Description copied from class: HSolver
Long description of the solver.
Overrides:
getLongDescription in class HSolver
Following copied from class: mil.af.afit.uvr.HSolver
Returns:
long decription of the solver

getCredits

public java.lang.String getCredits()
Description copied from class: HSolver
Credits for the solver (authors, etc).
Overrides:
getCredits in class HSolver
Following copied from class: mil.af.afit.uvr.HSolver
Returns:
credits for the solver

getVersion

public java.lang.String getVersion()
Description copied from class: HSolver
Version of the solver
Overrides:
getVersion in class HSolver
Following copied from class: mil.af.afit.uvr.HSolver
Returns:
version of the solver

requestsStartingSolutions

public boolean requestsStartingSolutions()
Description copied from class: HSolver
If true, the HEngine will generate a list of good starting solutions based on a heuristic developed by Gary Kinney for the Air Force Institute of Technology (www.afit.af.mil).
Overrides:
requestsStartingSolutions in class HSolver
Following copied from class: mil.af.afit.uvr.HSolver
Returns:
whether or not the solver would like starting solutions
See Also:
HEngine

getBestHSolution

public HSolution getBestHSolution()
Description copied from class: HSolver
Return the best solution found so far.
Overrides:
getBestHSolution in class HSolver
Following copied from class: mil.af.afit.uvr.HSolver
Returns:
the best solution
See Also:
HSolution

initializeSolver

public void initializeSolver(HSolution[] soln,
                             HEvaluator evaluator,
                             double requestedSolutionEffort,
                             int numberOfThreads)
Description copied from class: HSolver
Called when the HEngine has started solving. The solutions array will either be the starting solutions, if requested, or a single solution with all orders in the dummy tour.
Overrides:
initializeSolver in class HSolver
Following copied from class: mil.af.afit.uvr.HSolver
Parameters:
solutions - starting solution(s)
evaluator - evaluator to use with the solutions
requestedSolutionEffort - effort requested by the user in the range of zero to one
numberOfThreads - suggested number of threads to use
See Also:
HSolution, HEvaluator

startSolving

public void startSolving()
Description copied from class: HSolver
Called when the HEngine is ready for the solver to start. It is not necessary to return immediate control because the method is called from within a thread dedicated to calling this method.
Overrides:
startSolving in class HSolver

stopSolving

public final void stopSolving()
Description copied from class: HSolver
Stop the solver as soon as possible. Be sure to call fireSolverFinishedEvent.
Overrides:
stopSolving in class HSolver
Following copied from class: mil.af.afit.uvr.HSolver
See Also:
HSolverEvent

out

public static final void out(java.lang.Object obj)

err

public static final void err(java.lang.Exception e)