Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

AdvancedController Class Reference
[Experimental]

#include <lemon/simann.h>

Inherits ControllerBase.

Inheritance diagram for AdvancedController:

Inheritance graph
[legend]
List of all members.

Detailed Description

With this controller you can set the running time of the annealing process in advance. It works the following way: the controller measures a kind of divergence. The divergence is the difference of the average cost of the recently found solutions the cost of the best found one. In case this divergence is greater than a given threshold, then we decrease the annealing factor, that is we cool the system faster. In case the divergence is lower than the threshold, then we increase the temperature. The threshold is a function of the elapsed time which reaches zero at the desired end time.


Public Member Functions

 AdvancedController (double _end_time, double _alpha=0.2, double _beta=0.9, double _gamma=1.6, double _ann_fact=0.9999)
 Constructor.
void acceptEvent ()
 This is called when a neighbouring state gets accepted.
bool next ()
 Decides whether to continue the annealing process or not.
bool accept ()
 Decides whether to accept the current solution or not.

Public Attributes

double end_time
 The time at the end of the algorithm.
double start_time
 The time at the start of the algorithm.
double start_threshold
 Starting threshold.
double avg_cost
 Average cost of recent solutions.
double temp
 Temperature.
double ann_fact
 Annealing factor.
double init_ann_fact
 Initial annealing factor.


Constructor & Destructor Documentation

AdvancedController double  _end_time,
double  _alpha = 0.2,
double  _beta = 0.9,
double  _gamma = 1.6,
double  _ann_fact = 0.9999
[inline]
 

Parameters:
_end_time running time in seconds
_alpha parameter used to calculate the running average
_beta parameter used to decrease the annealing factor
_gamma parameter used to increase the temperature
_ann_fact initial annealing factor


The documentation for this class was generated from the following file:
Generated on Sat Aug 27 14:16:13 2005 for LEMON by  doxygen 1.4.4