00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038 #ifndef MOEOIBEA_H_
00039 #define MOEOIBEA_H_
00040
00041
00042 #include <eoBreed.h>
00043 #include <eoContinue.h>
00044 #include <eoEvalFunc.h>
00045 #include <eoGenContinue.h>
00046 #include <eoGeneralBreeder.h>
00047 #include <eoGenOp.h>
00048 #include <eoPopEvalFunc.h>
00049 #include <eoSGAGenOp.h>
00050 #include <algo/moeoEA.h>
00051 #include <diversity/moeoDummyDiversityAssignment.h>
00052 #include <fitness/moeoIndicatorBasedFitnessAssignment.h>
00053 #include <metric/moeoNormalizedSolutionVsSolutionBinaryMetric.h>
00054 #include <replacement/moeoEnvironmentalReplacement.h>
00055 #include <selection/moeoDetTournamentSelect.h>
00056
00062 template < class MOEOT >
00063 class moeoIBEA : public moeoEA < MOEOT >
00064 {
00065 public:
00066
00068 typedef typename MOEOT::ObjectiveVector ObjectiveVector;
00069
00070
00079 moeoIBEA (unsigned int _maxGen, eoEvalFunc < MOEOT > & _eval, eoGenOp < MOEOT > & _op, moeoNormalizedSolutionVsSolutionBinaryMetric < ObjectiveVector, double > & _metric, const double _kappa=0.05) :
00080 defaultGenContinuator(_maxGen), continuator(defaultGenContinuator), popEval(_eval), select(2),
00081 fitnessAssignment(_metric, _kappa), replace(fitnessAssignment, dummyDiversityAssignment), genBreed(select, _op), breed(genBreed)
00082 {}
00083
00084
00093 moeoIBEA (unsigned int _maxGen, eoEvalFunc < MOEOT > & _eval, eoTransform < MOEOT > & _op, moeoNormalizedSolutionVsSolutionBinaryMetric < ObjectiveVector, double > & _metric, const double _kappa=0.05) :
00094 defaultGenContinuator(_maxGen), continuator(defaultGenContinuator), popEval(_eval), select(2),
00095 fitnessAssignment(_metric, _kappa), replace(fitnessAssignment, dummyDiversityAssignment), genBreed(select, _op), breed(genBreed)
00096 {}
00097
00098
00110 moeoIBEA (unsigned int _maxGen, eoEvalFunc < MOEOT > & _eval, eoQuadOp < MOEOT > & _crossover, double _pCross, eoMonOp < MOEOT > & _mutation, double _pMut, moeoNormalizedSolutionVsSolutionBinaryMetric < ObjectiveVector, double > & _metric, const double _kappa=0.05) :
00111 defaultGenContinuator(_maxGen), continuator(defaultGenContinuator), popEval(_eval), select (2),
00112 fitnessAssignment(_metric, _kappa), replace (fitnessAssignment, dummyDiversityAssignment), defaultSGAGenOp(_crossover, _pCross, _mutation, _pMut),
00113 genBreed (select, defaultSGAGenOp), breed (genBreed)
00114 {}
00115
00116
00125 moeoIBEA (eoContinue < MOEOT > & _continuator, eoEvalFunc < MOEOT > & _eval, eoGenOp < MOEOT > & _op, moeoNormalizedSolutionVsSolutionBinaryMetric < ObjectiveVector, double > & _metric, const double _kappa=0.05) :
00126 continuator(_continuator), popEval(_eval), select(2),
00127 fitnessAssignment(_metric, _kappa), replace(fitnessAssignment, dummyDiversityAssignment), genBreed(select, _op), breed(genBreed)
00128 {}
00129
00130
00139 moeoIBEA (eoContinue < MOEOT > & _continuator, eoEvalFunc < MOEOT > & _eval, eoTransform < MOEOT > & _op, moeoNormalizedSolutionVsSolutionBinaryMetric < ObjectiveVector, double > & _metric, const double _kappa=0.05) :
00140 continuator(_continuator), popEval(_eval), select(2),
00141 fitnessAssignment(_metric, _kappa), replace(fitnessAssignment, dummyDiversityAssignment), genBreed(select, _op), breed(genBreed)
00142 {}
00143
00144
00149 virtual void operator () (eoPop < MOEOT > &_pop)
00150 {
00151 eoPop < MOEOT > offspring, empty_pop;
00152 popEval (empty_pop, _pop);
00153
00154 fitnessAssignment(_pop);
00155 dummyDiversityAssignment(_pop);
00156 do
00157 {
00158
00159 breed (_pop, offspring);
00160
00161 popEval (_pop, offspring);
00162
00163 replace (_pop, offspring);
00164 } while (continuator (_pop));
00165 }
00166
00167
00168 protected:
00169
00171 eoGenContinue < MOEOT > defaultGenContinuator;
00173 eoContinue < MOEOT > & continuator;
00175 eoPopLoopEval < MOEOT > popEval;
00177 moeoDetTournamentSelect < MOEOT > select;
00179 moeoIndicatorBasedFitnessAssignment < MOEOT > fitnessAssignment;
00181 moeoDummyDiversityAssignment < MOEOT > dummyDiversityAssignment;
00183 moeoEnvironmentalReplacement < MOEOT > replace;
00185 eoSGAGenOp < MOEOT > defaultSGAGenOp;
00187 eoGeneralBreeder < MOEOT > genBreed;
00189 eoBreed < MOEOT > & breed;
00190
00191 };
00192
00193 #endif