00001 #ifndef NSGAII_STEADY_MIES
00002 #define NSGAII_STEADY_MIES
00003
00004 #include "NSGAII_MIES.h"
00007 class NSGAII_Steady_MIES:virtual public NSGAII_MIES
00008 {
00009 public:
00010 NSGAII_Steady_MIES(unsigned n_r_, unsigned n_z_, unsigned n_d_, unsigned n_sigma_r_, unsigned n_sigma_z_, unsigned n_prob_, unsigned n_f_,
00011 unsigned mu_, unsigned rho_, unsigned kappa_, unsigned lambda_,
00012 vector<double>& lBound_r_, vector<double>& uBound_r_, vector<int>& lBound_z_, vector<int>& uBound_z_,
00013 vector<int>& lBound_d_, vector<int>& uBound_d_, double prob_min_, double prob_max_,
00014 bool disRec_r_, bool disRec_z_, bool disRec_sigma_r_, bool disRec_sigma_z_, bool disRec_prob_,
00015 bool selfAdaptation_, vector<int>& direction_,
00016 unsigned evaluations_, vector<double>& optimalF_,
00017 double initialSigma_r_, double initialSigma_z_, double initialProb_,
00018 ifstream* initialPopFile_, int randomSeed_, bool feedback_,
00019 unsigned timeOutValue_,
00020 unsigned selectDimension_, vector<unsigned>& selectFunction_,
00021 bool excludeParent_)
00022 :NSGAII_MIES(n_r_, n_z_, n_d_, n_sigma_r_, n_sigma_z_, n_prob_, n_f_,
00023 mu_, rho_, kappa_, lambda_,
00024 lBound_r_, uBound_r_, lBound_z_, uBound_z_,
00025 lBound_d_, uBound_d_, prob_min_, prob_max_,
00026 disRec_r_, disRec_z_, disRec_sigma_r_, disRec_sigma_z_, disRec_prob_,
00027 selfAdaptation_, direction_,
00028 evaluations_, optimalF_, initialSigma_r_, initialSigma_z_, initialProb_,
00029 initialPopFile_, randomSeed_, feedback_, timeOutValue_,
00030 selectDimension_, selectFunction_)
00031 {
00032 #ifdef DEBUG
00033 cout << "NSGAII_Steady_MIES::NSGAII_Steady_MIES()" << endl;
00034 #endif
00035
00036
00037
00038 if (rho > 1)
00039 excludeParent = excludeParent_;
00040 else
00041 excludeParent = false;
00042 }
00043 virtual ~NSGAII_Steady_MIES() {}
00044
00045 protected:
00047 bool excludeParent;
00048
00050 virtual void recombineMutate();
00051
00053 void select();
00054
00056 void preSelect();
00057
00059 virtual void prepComparisonScore(vector<Individual*>& Q) = 0;
00060
00062 virtual double calcComparisonScore(unsigned offspringIndex) = 0;
00063 };
00064
00065 #endif