

PREV CLASS NEXT CLASS  FRAMES NO FRAMES  
SUMMARY: NESTED  FIELD  CONSTR  METHOD  DETAIL: FIELD  CONSTR  METHOD 
java.lang.Object hu.birot.OTKit.performance.CoolingScheduleExamples
public class CoolingScheduleExamples
This class returns instances of CoolingSchedules. Unless you write your own implementation of the CoolingSchedule interface, you will create a cooling schedule by employing one of the static methods below.
Field Summary  

static double 
EPSILON
A constant used to avoid errors due to inexact floating point arithmetic. 
Constructor Summary  

CoolingScheduleExamples()

Method Summary  

static CoolingSchedule 
exponential(double t_max,
double t_min,
double q)
This static method creates a CoolingSchedule for traditional simulated annealing: the realvalued temperature is reduced from t_max to (and including) t_min, each time multiplying it by q. 
static CoolingSchedule 
exponential(double t_max,
double t_min,
double q,
int repeat)
This static method creates a CoolingSchedule for traditional simulated annealing: the realvalued temperature is reduced from t_max to (and including) t_min, each time multiplying it by q. 
static CoolingSchedule 
exponentialNM(double t_max,
double q,
int notmoved)
This static method creates a CoolingSchedule for traditional simulated annealing: the realvalued temperature is reduced from t_max by multiplying it by q each time, as long as the counter Temperature.unmoved has not reached notmoved. 
static CoolingSchedule 
exponentialNM(double t_max,
double q,
int notmoved,
int repeat)
This static method creates a CoolingSchedule for traditional simulated annealing: the realvalued temperature is reduced from t_max by multiplying it each time by q, as long as the counter Temperature.unmoved has not reached notmoved. 
static CoolingSchedule 
linear(double t_max,
double t_min,
double t_step)
This static method creates a CoolingSchedule for traditional simulated annealing: the realvalued temperature is reduced from t_max to (and including) t_min by steps t_step. 
static CoolingSchedule 
linear(double t_max,
double t_min,
double t_step,
int repeat)
This static method creates a CoolingSchedule for traditional simulated annealing: the realvalued temperature is reduced from t_max to (and including) t_min by steps t_step. 
static CoolingSchedule 
linearNM(double t_max,
double t_step,
int notmoved)
This static method creates a CoolingSchedule for traditional simulated annealing: the realvalued temperature is reduced from t_max by steps t_step, as long as the counter Temperature.unmoved has not reached notmoved. 
static CoolingSchedule 
linearNM(double t_max,
double t_step,
int notmoved,
int repeat)
This static method creates a CoolingSchedule for traditional simulated annealing: the realvalued temperature is reduced from t_max by steps t_step, as long as the counter Temperature.unmoved has not reached notmoved. 
static CoolingSchedule 
saot(double k_max,
double k_min,
double k_step,
double t_max,
double t_min,
double t_step)
This static method creates a CoolingSchedule for SAOT style simulated annealing. 
static CoolingSchedule 
saot(double k_max,
double k_min,
double k_step,
double t_max,
double t_min,
double t_step,
int repeat)
This static method creates a CoolingSchedule for SAOT style simulated annealing. 
static CoolingSchedule 
saotNM(double k_max,
double k_step,
double t_max,
double t_min,
double t_step,
int notmoved)
This static method creates a CoolingSchedule for SAOT style simulated annealing. 
static CoolingSchedule 
saotNM(double k_max,
double k_step,
double t_max,
double t_min,
double t_step,
int notmoved,
int repeat)
This static method creates a CoolingSchedule for SAOT style simulated annealing. 
Methods inherited from class java.lang.Object 

clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait 
Field Detail 

public static final double EPSILON
A constant used to avoid errors due to inexact floating point arithmetic. If the difference of two values of type double is less than EPSILON, then they are considered equal.
EPSILON = 10^(9) = 0.000000001.
The need to use EPSILON arises whenever t_step or k_step is not an integer. In such cases the stopping condition(s) of the loop(s) can be affected by inaccuracies in floating point arithmetic.
Constructor Detail 

public CoolingScheduleExamples()
Method Detail 

public static CoolingSchedule linear(double t_max, double t_min, double t_step)
Method CoolingSchedule.initial will return t_max, method CoolingSchedule.next(t) will return tt_step, and method CoolingSchedule.stop(t) will return true only if t < t_min.
t_max
 : Initial temperature.t_min
 : Final temperature.t_step
 : Steps for decreasing the temperature (linearly).
public static CoolingSchedule linear(double t_max, double t_min, double t_step, int repeat)
Method CoolingSchedule.initial will return t_max, method CoolingSchedule.next(t) will return tt_step, and method CoolingSchedule.stop(t) will return true only if t < t_min. Additionally, the same value of the temperature is used repeat number of times (that is, the counter of the temperature is decreased, instead of the temperature itself).
t_max
 : Initial temperature.t_min
 : Final temperature.t_step
 : Steps for decreasing the temperature (linearly).repeat
 : The number of iterations per value
of temperature (must be a positive integer, otherwise
you may get infinite loops and other troubles).
public static CoolingSchedule exponential(double t_max, double t_min, double q)
Method CoolingSchedule.initial will return t_max, method CoolingSchedule.next(t) will return temperature q*t, and method CoolingSchedule.stop(t) will return true only if t < t_min.
t_max
 : Initial temperature.t_min
 : Final temperature.q
 : Steps for decreasing the temperature (exponentially).
public static CoolingSchedule exponential(double t_max, double t_min, double q, int repeat)
Method CoolingSchedule.initial will return t_max, method CoolingSchedule.next(t) will return q*t, and method CoolingSchedule.stop(t) will return true only if t < t_min. Additionally, the same value of the temperature is used repeat number of times (that is, the counter of the temperature is decreased, instead of the temperature itself).
t_max
 : Initial temperature.t_min
 : Final temperature.q
 : Steps for decreasing the temperature (exponentially).repeat
 : The number of iterations per value
of temperature (must be a positive integer, otherwise
you may get infinite loops and other troubles).
public static CoolingSchedule saot(double k_max, double k_min, double k_step, double t_max, double t_min, double t_step, int repeat)
Method CoolingSchedule.initial will return t_max, method CoolingSchedule.next(t) will return tt_step, and method CoolingSchedule.stop(t) will return true only if K < k_min. Additionally, the same value of the temperature is used repeat number of times (that is, the counter of the temperature is decreased, instead of the temperature itself).
Note that while the internal loop does not reach t_min, the external loop does reach k_min.
k_max
 : Initial temperature range in the external loop.k_min
 : Final temperature range in the external loop.k_step
 : Steps for decreasing the temperature
range in the external loop.t_max
 : Initial temperature in the internal loop.t_min
 : Final temperature in the internal loop is higher than t_min.t_step
 : Steps for decreasing the temperature
in the internal loop.repeat
 : The number of iterations per value
of temperature (must be a positive integer, otherwise
you may get infinite loops and other troubles). Optional.
public static CoolingSchedule saot(double k_max, double k_min, double k_step, double t_max, double t_min, double t_step)
Method CoolingSchedule.initial will return t_max, method CoolingSchedule.next(t) will return tt_step, and method CoolingSchedule.stop(t) will return true only if t < t_min. Additionally, the same value of the temperature is used repeat number of times (that is, the counter of the temperature is decreased, instead of the temperature itself).
Note that while the internal loop does not reach t_min, the external loop does reach k_min.
k_max
 : Initial temperature range in the external loop.k_min
 : Final temperature range in the external loop.k_step
 : Steps for decreasing the temperature
range in the external loop.t_max
 : Initial temperature in the internal loop.t_min
 : Final temperature in the internal loop is higher than t_min.t_step
 : Steps for decreasing the temperature
in the internal loop.
public static CoolingSchedule linearNM(double t_max, double t_step, int notmoved)
Method CoolingSchedule.initial will return t_max, method CoolingSchedule.next(t) will return tt_step, and method CoolingSchedule.stop(t) will return true only if t < t_min.
t_max
 : Initial temperature.t_step
 : Steps for decreasing the temperature.notmoved
 : The value that the counter has to reach.
public static CoolingSchedule linearNM(double t_max, double t_step, int notmoved, int repeat)
Method CoolingSchedule.initial will return t_max, method CoolingSchedule.next(t) will return tt_step, and method CoolingSchedule.stop(t) will return true only if t < t_min. Additionally, the same value of the temperature is used repeat number of times (that is, the counter of the temperature is decreased, instead of the temperature itself).
t_max
 : Initial temperature.t_step
 : Steps for decreasing the temperature.notmoved
 : The value that the counter has to reach.repeat
 : The number of iterations per value
of temperature (must be a positive integer, otherwise
you may get infinite loops and other troubles).
public static CoolingSchedule exponentialNM(double t_max, double q, int notmoved)
Method CoolingSchedule.initial will return t_max, method CoolingSchedule.next(t) will return tt_step, and method CoolingSchedule.stop(t) will return true only if t < t_min.
t_max
 : Initial temperature.q
 : Steps for decreasing the temperature exponentially.notmoved
 : The value that the counter has to reach.
public static CoolingSchedule exponentialNM(double t_max, double q, int notmoved, int repeat)
Method CoolingSchedule.initial will return t_max, method CoolingSchedule.next(t) will return tt_step, and method CoolingSchedule.stop(t) will return true only if t < t_min. Additionally, the same value of the temperature is used repeat number of times (that is, the counter of the temperature is decreased, instead of the temperature itself).
t_max
 : Initial temperature.q
 : Steps for decreasing the temperature exponentially.notmoved
 : The value that the counter has to reach.repeat
 : The number of iterations per value
of temperature (must be a positive integer, otherwise
you may get infinite loops and other troubles).
public static CoolingSchedule saotNM(double k_max, double k_step, double t_max, double t_min, double t_step, int notmoved, int repeat)
Method CoolingSchedule.initial will return t_max, method CoolingSchedule.next(t) will return tt_step, and method CoolingSchedule.stop(t) will return true only if t < t_min. Additionally, the same value of the temperature is used repeat number of times (that is, the counter of the temperature is decreased, instead of the temperature itself).
k_max
 : Initial temperature range in the external loop.k_step
 : Steps for decreasing the temperature
range in the external loop.t_max
 : Initial temperature in the internal loop.t_min
 : Final temperature in the internal loop.t_step
 : Steps for decreasing the temperature
in the internal loop.notmoved
 : The value that the counter has to reach.repeat
 : The number of iterations per value
of temperature (must be a positive integer, otherwise
you may get infinite loops and other troubles). Optional.
public static CoolingSchedule saotNM(double k_max, double k_step, double t_max, double t_min, double t_step, int notmoved)
Method CoolingSchedule.initial will return t_max, method CoolingSchedule.next(t) will return tt_step, and method CoolingSchedule.stop(t) will return true only if t < t_min. Additionally, the same value of the temperature is used repeat number of times (that is, the counter of the temperature is decreased, instead of the temperature itself).
k_max
 : Initial temperature range in the external loop.k_step
 : Steps for decreasing the temperature
range in the external loop.t_max
 : Initial temperature in the internal loop.t_min
 : Final temperature in the internal loop.t_step
 : Steps for decreasing the temperature
in the internal loop.notmoved
 : The value that the counter has to reach.


PREV CLASS NEXT CLASS  FRAMES NO FRAMES  
SUMMARY: NESTED  FIELD  CONSTR  METHOD  DETAIL: FIELD  CONSTR  METHOD 