initial commit
This commit is contained in:
47
methods.h
Executable file
47
methods.h
Executable file
@@ -0,0 +1,47 @@
|
||||
#ifndef METHODS_H
|
||||
#define METHODS_H
|
||||
|
||||
#include"models.h"
|
||||
|
||||
/*
|
||||
* Optimization Methods
|
||||
*/
|
||||
|
||||
class OptimizationMethod{
|
||||
public:
|
||||
//Virtual Constructor & Destructor for any optimization method
|
||||
OptimizationMethod(){};
|
||||
OptimizationMethod(Model* A):ToAdjust(A){};
|
||||
virtual ~OptimizationMethod(){};
|
||||
//Virtual initialisation, execution, finalisation for any optimization method
|
||||
virtual void initialise(){}; //Initialise attributes using values stored in the method header file
|
||||
virtual void execute(){}; //Execute the optimization of the model
|
||||
virtual void finalise() const = 0; //Export the model parameters and display the optimized model
|
||||
protected:
|
||||
Model* ToAdjust;
|
||||
};
|
||||
|
||||
// Simulated Annealing
|
||||
|
||||
class SimulatedAnnealing : public OptimizationMethod{
|
||||
public:
|
||||
//Constructor & Destructor specific to this method
|
||||
SimulatedAnnealing();
|
||||
SimulatedAnnealing(Model*);
|
||||
SimulatedAnnealing(Model*,double,double,double,double,int,int);
|
||||
~SimulatedAnnealing(){};
|
||||
//Initialisation, execution and finalisation for this method
|
||||
void initialise();
|
||||
void execute();
|
||||
void finalise() const ;
|
||||
private:
|
||||
double ampl; //Variation amplitude to get Neighbor
|
||||
double temp; //Current temperature of the system
|
||||
double t_end; //Freezing temperature
|
||||
double cooling; //Cooling ratio
|
||||
int length; //Number of iteration for the same value of temperature
|
||||
int max_f; //Max number of unsuccessful iterations
|
||||
int current_f; //Current number of unsuccessful iteration combo
|
||||
};
|
||||
|
||||
#endif
|
||||
Reference in New Issue
Block a user