LibCudaOptimize  1.0
IOptimizer Class Reference

Base Optimizer Class. More...

#include <IOptimizer.h>

Inheritance diagram for IOptimizer:

List of all members.

Public Member Functions

 IOptimizer (EvalFuncPtr fPtr=NULL, unsigned int dn=PROBLEM_DIMENSIONS, unsigned int sn=NUM_SETS, unsigned int pn=NUM_SOLUTIONS)
 Create the optimizers. See setParams.
virtual bool init ()
 Initialize the optimizer.
virtual void free ()
 Free memory.
virtual void optimize ()
 Launch the optimization.
void setParams (EvalFuncPtr fPtr=NULL, unsigned int dn=PROBLEM_DIMENSIONS, unsigned int sn=NUM_SETS, unsigned int pn=NUM_SOLUTIONS)
 Set parameters used in the optimization.
void setTerminationFlags (TERMINATION_FLAGS f)
 Set the criteria for stopping the optimization.
void setGenerations (unsigned int gn)
 set maximum number of generations if TERMINATE_GENS is set (see setTerminationFlags)
void setFunctionEvals (unsigned int fn)
 set maximum number of function evaluations if TERMINATE_EVALS is set (see setTerminationFlags)
void setStoppingTime (float st)
 set limit of time if TERMINATE_TIME is set (see setTerminationFlags)
void setStoppingFitness (float f)
 set limit fitness value if TERMINATE_FIT is set (see setTerminationFlags)
void setStoppingFitness (unsigned int sId, float f)
 set limit fitness value to a single set if TERMINATE_FIT is set (see setTerminationFlags)
void setNumberOfSets (unsigned int sn)
 set number of sets involved in the optimization process
void setNumberOfSolutions (unsigned int pn)
 set number of solutions for each set
void setProblemDimension (unsigned int dn)
 set the number of the dimensions of the problem
void setEvalFuncPtr (EvalFuncPtr evalPtr)
 set the fitness function
void setBounds (float2 bounds)
 set bounds for all sets
void setBounds (unsigned int sId, float2 bounds)
 set bounds for a single set
void setBounds (unsigned int sId, unsigned int dId, float2 bounds)
 set bounds for a single dimension in a single set
void setVerbosity (LOG_LEVEL verb)
 set verbosity of the log
void setOptimizationType (OPTIMUM ot)
 receives a OPTIMUM representing if the optimum of the function is the maximum or the minimum
void setHostFitnessEvaluation (bool on)
 set this to true if the fitness evaluation will happen on host side: in this way the host pointer will always be updated
void setFileOutput (std::string f)
 set the file chosen for the log
void resetFileOutput ()
 set the stderr for log output
const SolutionSetgetSolutionSet () const
 Get a constant copy of the solution set.
unsigned int getNumberOfSets () const
 get number of sets
unsigned int getNumberOfSolutions () const
 get number of solutions in a set
unsigned int getProblemDimension () const
 get problem dimension
unsigned int getFunctionEvals () const
 get number of evaluations used as a termination criteria
unsigned int getCurrentEvals () const
 get number of evaluations performed in the optimization so far
unsigned int getCurrentGeneration () const
 get number of generations performed in the optimization so far
TERMINATION_FLAGS getTerminationFlags () const
 get termination flags
float getElapsedTime () const
 get time passed from the beginning of optimization
virtual float * getBestFitnesses ()
 get a pointer to best fitnesses of all sets
virtual float getBestFitness (unsigned int sid)
 get value of the best fitness for set indicated by the index sid
virtual float * getBestSolution ()
 get best solutions of all sets
virtual float * getBestSolution (unsigned int sid)
 get best solution of the set indicated by the index sid
bool isHostFitnessEvaluation () const
 returns true if the fitness evaluation will happen on host side

Protected Member Functions

virtual void initSolutions (dim3 initializationGrid, dim3 initializationBlock)=0
 Initialize solutions.
virtual void step (dim3 initializationGrid, dim3 initializationBlock)=0
 Generate solutions for subsequent fitnessEvaluation.
virtual void fitnessEvaluation (dim3 initializationGrid, dim3 initializationBlock, bool first=false)=0
 Evaluate solutions.
virtual void update (dim3 initializationGrid, dim3 initializationBlock, bool first=false)=0
 Update population according to the algorithm and the results of fitnessEvaluation.
virtual void findBest ()
 Updates global best fitnesses, indexes in SolutionSet device memory.

Detailed Description

Base Optimizer Class.

To override this class you need to implement at least 4 methods:
initSolutions
step
fitnessEvaluation
update

Definition at line 71 of file IOptimizer.h.


Member Function Documentation

virtual void IOptimizer::fitnessEvaluation ( dim3  initializationGrid,
dim3  initializationBlock,
bool  first = false 
) [protected, pure virtual]

Evaluate solutions.

Parameters:
initializationGridorganization of the CUDA blocks
initializationBlockorganization of the CUDA threads
firstit signals if it is the first evaluation of the optimization

Implemented in PSO_Optimizer, DE_Optimizer, and SW_Optimizer.

const SolutionSet* IOptimizer::getSolutionSet ( ) const [inline]

Get a constant copy of the solution set.

Returns:
copy of the solution set

Definition at line 220 of file IOptimizer.h.

virtual void IOptimizer::initSolutions ( dim3  initializationGrid,
dim3  initializationBlock 
) [protected, pure virtual]

Initialize solutions.

Parameters:
initializationGridorganization of the CUDA blocks
initializationBlockorganization of the CUDA threads

Implemented in PSO_Optimizer, DE_Optimizer, and SW_Optimizer.

void IOptimizer::setParams ( EvalFuncPtr  fPtr = NULL,
unsigned int  dn = PROBLEM_DIMENSIONS,
unsigned int  sn = NUM_SETS,
unsigned int  pn = NUM_SOLUTIONS 
) [inline]

Set parameters used in the optimization.

Parameters:
fPtras instance of EvalFuncPtr representing the fitness function
dnproblem dimension
snnumber of the sets that will run in the optimization
pnnumber of solutions for each set

Definition at line 165 of file IOptimizer.h.

Set the criteria for stopping the optimization.

More than one criterion can be set using | (or) operator. Possible values are TERMINATE_EVALS (use number of function evaluations), TERMINATE_GENS (number of generations), TERMINATE_FIT (value of fitness), TERMINATE_TIME (time)

Parameters:
fthe termination flags

Definition at line 182 of file IOptimizer.h.

virtual void IOptimizer::step ( dim3  initializationGrid,
dim3  initializationBlock 
) [protected, pure virtual]

Generate solutions for subsequent fitnessEvaluation.

Parameters:
initializationGridorganization of the CUDA blocks
initializationBlockorganization of the CUDA threads

Implemented in PSO_Optimizer, DE_Optimizer, and SW_Optimizer.

virtual void IOptimizer::update ( dim3  initializationGrid,
dim3  initializationBlock,
bool  first = false 
) [protected, pure virtual]

Update population according to the algorithm and the results of fitnessEvaluation.

Parameters:
initializationGridorganization of the CUDA blocks
initializationBlockorganization of the CUDA threads
firstit signals if it is the first evaluation of the optimization

Implemented in PSO_Optimizer, DE_Optimizer, and SW_Optimizer.


The documentation for this class was generated from the following file:
 All Classes Files Functions Variables Enumerations Enumerator Defines